@adam26davidson/char-matrix-react 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/char-matrix/src/Element/ContainerElement.d.ts +28 -0
  2. package/dist/char-matrix/src/Element/ContainerElement.d.ts.map +1 -0
  3. package/dist/char-matrix/src/Element/ContainerElement.js +128 -0
  4. package/dist/char-matrix/src/Element/ContainerElement.js.map +1 -0
  5. package/dist/char-matrix/src/Element/Element.d.ts +31 -0
  6. package/dist/char-matrix/src/Element/Element.d.ts.map +1 -0
  7. package/dist/char-matrix/src/Element/Element.js +190 -0
  8. package/dist/char-matrix/src/Element/Element.js.map +1 -0
  9. package/dist/char-matrix/src/Element/ElementBase.d.ts +66 -0
  10. package/dist/char-matrix/src/Element/ElementBase.d.ts.map +1 -0
  11. package/dist/char-matrix/src/Element/ElementBase.js +167 -0
  12. package/dist/char-matrix/src/Element/ElementBase.js.map +1 -0
  13. package/dist/char-matrix/src/Element/ElementDrawing.d.ts +41 -0
  14. package/dist/char-matrix/src/Element/ElementDrawing.d.ts.map +1 -0
  15. package/dist/char-matrix/src/Element/ElementDrawing.js +232 -0
  16. package/dist/char-matrix/src/Element/ElementDrawing.js.map +1 -0
  17. package/dist/char-matrix/src/Element/ElementInteraction.d.ts +21 -0
  18. package/dist/char-matrix/src/Element/ElementInteraction.d.ts.map +1 -0
  19. package/dist/char-matrix/src/Element/ElementInteraction.js +110 -0
  20. package/dist/char-matrix/src/Element/ElementInteraction.js.map +1 -0
  21. package/dist/char-matrix/src/Element/ElementLayout.d.ts +25 -0
  22. package/dist/char-matrix/src/Element/ElementLayout.d.ts.map +1 -0
  23. package/dist/char-matrix/src/Element/ElementLayout.js +152 -0
  24. package/dist/char-matrix/src/Element/ElementLayout.js.map +1 -0
  25. package/dist/char-matrix/src/Element/ParentElement.d.ts +24 -0
  26. package/dist/char-matrix/src/Element/ParentElement.d.ts.map +1 -0
  27. package/dist/char-matrix/src/Element/ParentElement.js +58 -0
  28. package/dist/char-matrix/src/Element/ParentElement.js.map +1 -0
  29. package/dist/char-matrix/src/Element/TextElement.d.ts +28 -0
  30. package/dist/char-matrix/src/Element/TextElement.d.ts.map +1 -0
  31. package/dist/char-matrix/src/Element/TextElement.js +214 -0
  32. package/dist/char-matrix/src/Element/TextElement.js.map +1 -0
  33. package/dist/char-matrix/src/Element/TransitionSequence.d.ts +15 -0
  34. package/dist/char-matrix/src/Element/TransitionSequence.d.ts.map +1 -0
  35. package/dist/char-matrix/src/Element/TransitionSequence.js +113 -0
  36. package/dist/char-matrix/src/Element/TransitionSequence.js.map +1 -0
  37. package/dist/char-matrix/src/constants.d.ts +8 -0
  38. package/dist/char-matrix/src/constants.d.ts.map +1 -0
  39. package/dist/char-matrix/src/constants.js +8 -0
  40. package/dist/char-matrix/src/constants.js.map +1 -0
  41. package/dist/char-matrix/src/index.d.ts +22 -0
  42. package/dist/char-matrix/src/index.d.ts.map +1 -0
  43. package/dist/char-matrix/src/index.js +20 -0
  44. package/dist/char-matrix/src/index.js.map +1 -0
  45. package/dist/char-matrix/src/interfaces/ElementAnimationHandler.d.ts +29 -0
  46. package/dist/char-matrix/src/interfaces/ElementAnimationHandler.d.ts.map +1 -0
  47. package/dist/char-matrix/src/interfaces/ElementAnimationHandler.js +2 -0
  48. package/dist/char-matrix/src/interfaces/ElementAnimationHandler.js.map +1 -0
  49. package/dist/char-matrix/src/interfaces/RenderTarget.d.ts +17 -0
  50. package/dist/char-matrix/src/interfaces/RenderTarget.d.ts.map +1 -0
  51. package/dist/char-matrix/src/interfaces/RenderTarget.js +2 -0
  52. package/dist/char-matrix/src/interfaces/RenderTarget.js.map +1 -0
  53. package/dist/char-matrix/src/interfaces/SurfaceTransform.d.ts +16 -0
  54. package/dist/char-matrix/src/interfaces/SurfaceTransform.d.ts.map +1 -0
  55. package/dist/char-matrix/src/interfaces/SurfaceTransform.js +2 -0
  56. package/dist/char-matrix/src/interfaces/SurfaceTransform.js.map +1 -0
  57. package/dist/char-matrix/src/types/Axes.d.ts +5 -0
  58. package/dist/char-matrix/src/types/Axes.d.ts.map +1 -0
  59. package/dist/char-matrix/src/types/Axes.js +4 -0
  60. package/dist/char-matrix/src/types/Axes.js.map +1 -0
  61. package/dist/char-matrix/src/types/CharMatrix.d.ts +21 -0
  62. package/dist/char-matrix/src/types/CharMatrix.d.ts.map +1 -0
  63. package/dist/char-matrix/src/types/CharMatrix.js +89 -0
  64. package/dist/char-matrix/src/types/CharMatrix.js.map +1 -0
  65. package/dist/char-matrix/src/types/IntPoint.d.ts +21 -0
  66. package/dist/char-matrix/src/types/IntPoint.d.ts.map +1 -0
  67. package/dist/char-matrix/src/types/IntPoint.js +59 -0
  68. package/dist/char-matrix/src/types/IntPoint.js.map +1 -0
  69. package/dist/char-matrix/src/types/NormPoint.d.ts +10 -0
  70. package/dist/char-matrix/src/types/NormPoint.d.ts.map +1 -0
  71. package/dist/char-matrix/src/types/NormPoint.js +28 -0
  72. package/dist/char-matrix/src/types/NormPoint.js.map +1 -0
  73. package/dist/char-matrix/src/types/RealPoint.d.ts +21 -0
  74. package/dist/char-matrix/src/types/RealPoint.d.ts.map +1 -0
  75. package/dist/char-matrix/src/types/RealPoint.js +58 -0
  76. package/dist/char-matrix/src/types/RealPoint.js.map +1 -0
  77. package/dist/char-matrix/src/utils/Logging.d.ts +4 -0
  78. package/dist/char-matrix/src/utils/Logging.d.ts.map +1 -0
  79. package/dist/char-matrix/src/utils/Logging.js +8 -0
  80. package/dist/char-matrix/src/utils/Logging.js.map +1 -0
  81. package/dist/char-matrix/src/utils/MiscUtils.d.ts +7 -0
  82. package/dist/char-matrix/src/utils/MiscUtils.d.ts.map +1 -0
  83. package/dist/char-matrix/src/utils/MiscUtils.js +37 -0
  84. package/dist/char-matrix/src/utils/MiscUtils.js.map +1 -0
  85. package/dist/char-matrix/src/utils/Octant.d.ts +42 -0
  86. package/dist/char-matrix/src/utils/Octant.d.ts.map +1 -0
  87. package/dist/char-matrix/src/utils/Octant.js +98 -0
  88. package/dist/char-matrix/src/utils/Octant.js.map +1 -0
  89. package/dist/char-matrix-react/src/ReactComponentElement.d.ts +25 -0
  90. package/dist/char-matrix-react/src/ReactComponentElement.d.ts.map +1 -0
  91. package/dist/char-matrix-react/src/ReactComponentElement.js +66 -0
  92. package/dist/char-matrix-react/src/ReactComponentElement.js.map +1 -0
  93. package/dist/char-matrix-react/src/ReactNodeConfig.d.ts +12 -0
  94. package/dist/char-matrix-react/src/ReactNodeConfig.d.ts.map +1 -0
  95. package/dist/char-matrix-react/src/ReactNodeConfig.js +2 -0
  96. package/dist/char-matrix-react/src/ReactNodeConfig.js.map +1 -0
  97. package/dist/char-matrix-react/src/ReactRenderTarget.d.ts +10 -0
  98. package/dist/char-matrix-react/src/ReactRenderTarget.d.ts.map +1 -0
  99. package/dist/char-matrix-react/src/ReactRenderTarget.js +2 -0
  100. package/dist/char-matrix-react/src/ReactRenderTarget.js.map +1 -0
  101. package/dist/char-matrix-react/src/index.d.ts +5 -0
  102. package/dist/char-matrix-react/src/index.d.ts.map +1 -0
  103. package/dist/char-matrix-react/src/index.js +2 -0
  104. package/dist/char-matrix-react/src/index.js.map +1 -0
  105. package/package.json +35 -0
@@ -0,0 +1,16 @@
1
+ import { CharMatrix } from "../types/CharMatrix";
2
+ import { IntPoint } from "../types/IntPoint";
3
+ /**
4
+ * A transform applied to the character matrix before rendering.
5
+ * Transforms are chained: the output of one becomes the input of the next.
6
+ */
7
+ export interface SurfaceTransform {
8
+ /**
9
+ * Transform the source matrix and write results to the output matrix.
10
+ * @param source The input character matrix
11
+ * @param output The output character matrix to write to
12
+ * @param viewSize The dimensions of the view
13
+ */
14
+ transform(source: CharMatrix, output: CharMatrix, viewSize: IntPoint): void;
15
+ }
16
+ //# sourceMappingURL=SurfaceTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SurfaceTransform.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/interfaces/SurfaceTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC7E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SurfaceTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SurfaceTransform.js","sourceRoot":"","sources":["../../../../../char-matrix/src/interfaces/SurfaceTransform.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export type Axis = "x" | "y";
2
+ export declare const X: Axis;
3
+ export declare const Y: Axis;
4
+ export declare const AXES: Axis[];
5
+ //# sourceMappingURL=Axes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Axes.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/types/Axes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7B,eAAO,MAAM,CAAC,EAAE,IAAU,CAAC;AAC3B,eAAO,MAAM,CAAC,EAAE,IAAU,CAAC;AAC3B,eAAO,MAAM,IAAI,EAAE,IAAI,EAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const X = "x";
2
+ export const Y = "y";
3
+ export const AXES = ["x", "y"];
4
+ //# sourceMappingURL=Axes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Axes.js","sourceRoot":"","sources":["../../../../../char-matrix/src/types/Axes.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,CAAC,GAAS,GAAG,CAAC;AAC3B,MAAM,CAAC,MAAM,CAAC,GAAS,GAAG,CAAC;AAC3B,MAAM,CAAC,MAAM,IAAI,GAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { IntPoint } from "./IntPoint";
2
+ export declare class CharMatrix {
3
+ private matrix;
4
+ constructor(size: IntPoint);
5
+ getSize: () => IntPoint;
6
+ getRawMatrix: () => string[][];
7
+ getChar(location: IntPoint, offset?: IntPoint): string;
8
+ setChar(location: IntPoint, char: string, offset?: IntPoint): void;
9
+ clear(): void;
10
+ /**
11
+ * resizes the matrix and wipes all contents
12
+ * @param newSize the new size of the matrix
13
+ */
14
+ resize(newSize: IntPoint): void;
15
+ /**
16
+ * uses the provided function to map the contents of this matrix to another
17
+ * @param fn the function to apply to each character
18
+ */
19
+ map(fn: (char: string, location: IntPoint) => string, other: CharMatrix): void;
20
+ }
21
+ //# sourceMappingURL=CharMatrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CharMatrix.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/types/CharMatrix.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAc,MAAM,YAAY,CAAC;AAElD,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAa;gBAEf,IAAI,EAAE,QAAQ;IAMnB,OAAO,iBAEZ;IAEK,YAAY,mBAAqB;IAEjC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAE,QAAqB;IAezD,OAAO,CACZ,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,QAAqB;IAgBxB,KAAK;IAUZ;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,QAAQ;IAO/B;;;OAGG;IACI,GAAG,CACR,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,MAAM,EAChD,KAAK,EAAE,UAAU;CAWpB"}
@@ -0,0 +1,89 @@
1
+ import { SPACE_CHAR } from "../constants";
2
+ import { throttledWarn } from "../utils/Logging";
3
+ import { IntPoint, ZERO_POINT } from "./IntPoint";
4
+ export class CharMatrix {
5
+ constructor(size) {
6
+ Object.defineProperty(this, "matrix", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: void 0
11
+ });
12
+ Object.defineProperty(this, "getSize", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: () => {
17
+ return new IntPoint(this.matrix[0]?.length || 0, this.matrix.length);
18
+ }
19
+ });
20
+ Object.defineProperty(this, "getRawMatrix", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: () => this.matrix
25
+ });
26
+ this.matrix = new Array(size.getY())
27
+ .fill(null)
28
+ .map(() => new Array(size.getX()).fill(SPACE_CHAR));
29
+ }
30
+ getChar(location, offset = ZERO_POINT) {
31
+ const x = location.getX() + offset.getX();
32
+ const y = location.getY() + offset.getY();
33
+ if (x >= 0 &&
34
+ x < this.matrix[0].length &&
35
+ y >= 0 &&
36
+ y < this.matrix.length) {
37
+ return this.matrix[y][x];
38
+ }
39
+ throttledWarn(`attempting to get a character outside of matrix bounds`);
40
+ return SPACE_CHAR;
41
+ }
42
+ setChar(location, char, offset = ZERO_POINT) {
43
+ const x = location.getX() + offset.getX();
44
+ const y = location.getY() + offset.getY();
45
+ if (x >= 0 &&
46
+ x < this.matrix[0].length &&
47
+ y >= 0 &&
48
+ y < this.matrix.length) {
49
+ this.matrix[y][x] = char;
50
+ }
51
+ else {
52
+ throttledWarn(`attempting to set a character outside of matrix bounds`);
53
+ }
54
+ }
55
+ clear() {
56
+ console.log("clearing matrix");
57
+ const size = this.getSize();
58
+ for (let y = 0; y < size.getY(); y++) {
59
+ for (let x = 0; x < size.getX(); x++) {
60
+ this.setChar(new IntPoint(x, y), SPACE_CHAR);
61
+ }
62
+ }
63
+ }
64
+ /**
65
+ * resizes the matrix and wipes all contents
66
+ * @param newSize the new size of the matrix
67
+ */
68
+ resize(newSize) {
69
+ console.log("resizing matrix to", newSize.getX(), newSize.getY());
70
+ this.matrix = new Array(newSize.getY())
71
+ .fill(null)
72
+ .map(() => new Array(newSize.getX()).fill(SPACE_CHAR));
73
+ }
74
+ /**
75
+ * uses the provided function to map the contents of this matrix to another
76
+ * @param fn the function to apply to each character
77
+ */
78
+ map(fn, other) {
79
+ const size = this.getSize();
80
+ for (let y = 0; y < size.getY(); y++) {
81
+ for (let x = 0; x < size.getX(); x++) {
82
+ const location = new IntPoint(x, y);
83
+ const char = this.getChar(location);
84
+ other.setChar(location, fn(char, location));
85
+ }
86
+ }
87
+ }
88
+ }
89
+ //# sourceMappingURL=CharMatrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CharMatrix.js","sourceRoot":"","sources":["../../../../../char-matrix/src/types/CharMatrix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Axis } from "./Axes";
2
+ export declare class IntPoint {
3
+ private x;
4
+ private y;
5
+ constructor(x?: number, y?: number);
6
+ getX: () => number;
7
+ getY: () => number;
8
+ get: (a: Axis) => number;
9
+ set(a: Axis, v: number): void;
10
+ /**
11
+ * returns a new point that is the sum of this point and the given point
12
+ * @param p the point to be added to this point
13
+ * @returns a new point that is the sum of this point and the given point
14
+ */
15
+ add(p: IntPoint): IntPoint;
16
+ subtract(p: IntPoint): IntPoint;
17
+ copy(): IntPoint;
18
+ equals(p: IntPoint): boolean;
19
+ }
20
+ export declare const ZERO_POINT: IntPoint;
21
+ //# sourceMappingURL=IntPoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntPoint.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/types/IntPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,QAAQ,CAAC;AAEpC,qBAAa,QAAQ;IACnB,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,CAAC,CAAa;gBAEV,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAKjC,IAAI,eAAgB;IACpB,IAAI,eAAgB;IACpB,GAAG,MAAO,IAAI,YAAa;IAE3B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM;IAI7B;;;;OAIG;IACI,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAI1B,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAItC,IAAI;IAIJ,MAAM,CAAC,CAAC,EAAE,QAAQ;CAGnB;AAED,eAAO,MAAM,UAAU,UAAqB,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { X, Y } from "./Axes";
2
+ export class IntPoint {
3
+ constructor(x = 0, y = 0) {
4
+ Object.defineProperty(this, "x", {
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true,
8
+ value: 0
9
+ });
10
+ Object.defineProperty(this, "y", {
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true,
14
+ value: 0
15
+ });
16
+ Object.defineProperty(this, "getX", {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value: () => this.x
21
+ });
22
+ Object.defineProperty(this, "getY", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: true,
26
+ value: () => this.y
27
+ });
28
+ Object.defineProperty(this, "get", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: (a) => this[a]
33
+ });
34
+ this.set(X, x);
35
+ this.set(Y, y);
36
+ }
37
+ set(a, v) {
38
+ this[a] = Math.floor(v);
39
+ }
40
+ /**
41
+ * returns a new point that is the sum of this point and the given point
42
+ * @param p the point to be added to this point
43
+ * @returns a new point that is the sum of this point and the given point
44
+ */
45
+ add(p) {
46
+ return new IntPoint(this.x + p.x, this.y + p.y);
47
+ }
48
+ subtract(p) {
49
+ return new IntPoint(this.x - p.x, this.y - p.y);
50
+ }
51
+ copy() {
52
+ return new IntPoint(this.x, this.y);
53
+ }
54
+ equals(p) {
55
+ return this.x === p.x && this.y === p.y;
56
+ }
57
+ }
58
+ export const ZERO_POINT = new IntPoint(0, 0);
59
+ //# sourceMappingURL=IntPoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntPoint.js","sourceRoot":"","sources":["../../../../../char-matrix/src/types/IntPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,OAAO,QAAQ;IAInB,YAAY,IAAY,CAAC,EAAE,IAAY,CAAC;QAHhC;;;;mBAAY,CAAC;WAAC;QACd;;;;mBAAY,CAAC;WAAC;QAOf;;;;mBAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;WAAC;QACpB;;;;mBAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;WAAC;QACpB;;;;mBAAM,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;WAAC;QANhC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC;IAMM,GAAG,CAAC,CAAO,EAAE,CAAS;QAC3B,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,CAAW;QACpB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAEM,QAAQ,CAAC,CAAW;QACzB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI;QACF,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,CAAW;QAChB,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Axis } from "./Axes";
2
+ export declare class NormPoint {
3
+ private x;
4
+ private y;
5
+ constructor(x: number, y: number);
6
+ get(a: Axis): number;
7
+ set(a: Axis, v: number): void;
8
+ copy(): NormPoint;
9
+ }
10
+ //# sourceMappingURL=NormPoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NormPoint.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/types/NormPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,SAAS;IACpB,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,CAAC,CAAa;gBAEV,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAKzB,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM;IAIpB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM;IAI7B,IAAI;CAGL"}
@@ -0,0 +1,28 @@
1
+ export class NormPoint {
2
+ constructor(x, y) {
3
+ Object.defineProperty(this, "x", {
4
+ enumerable: true,
5
+ configurable: true,
6
+ writable: true,
7
+ value: 0
8
+ });
9
+ Object.defineProperty(this, "y", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: 0
14
+ });
15
+ this.set("x", x);
16
+ this.set("y", y);
17
+ }
18
+ get(a) {
19
+ return this[a];
20
+ }
21
+ set(a, v) {
22
+ this[a] = Math.max(0, Math.min(1, v));
23
+ }
24
+ copy() {
25
+ return new NormPoint(this.x, this.y);
26
+ }
27
+ }
28
+ //# sourceMappingURL=NormPoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NormPoint.js","sourceRoot":"","sources":["../../../../../char-matrix/src/types/NormPoint.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,SAAS;IAIpB,YAAY,CAAS,EAAE,CAAS;QAHxB;;;;mBAAY,CAAC;WAAC;QACd;;;;mBAAY,CAAC;WAAC;QAGpB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACnB,CAAC;IAEM,GAAG,CAAC,CAAO;QAChB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAEM,GAAG,CAAC,CAAO,EAAE,CAAS;QAC3B,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import { Axis } from "./Axes";
2
+ import { IntPoint } from "./IntPoint";
3
+ export declare class RealPoint {
4
+ private x;
5
+ private y;
6
+ constructor(x?: number, y?: number);
7
+ getX: () => number;
8
+ getY: () => number;
9
+ get: (a: Axis) => number;
10
+ set(a: Axis, v: number): void;
11
+ /**
12
+ * returns a new point that is the sum of this point and the given point
13
+ * @param p the point to be added to this point
14
+ * @returns a new point that is the sum of this point and the given point
15
+ */
16
+ add(p: RealPoint): RealPoint;
17
+ subtract(p: RealPoint | IntPoint): RealPoint;
18
+ copy(): RealPoint;
19
+ equals(p: RealPoint): boolean;
20
+ }
21
+ //# sourceMappingURL=RealPoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RealPoint.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/types/RealPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,qBAAa,SAAS;IACpB,OAAO,CAAC,CAAC,CAAa;IACtB,OAAO,CAAC,CAAC,CAAa;gBAEV,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAKjC,IAAI,eAAgB;IACpB,IAAI,eAAgB;IACpB,GAAG,MAAO,IAAI,YAAa;IAE3B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM;IAI7B;;;;OAIG;IACI,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS;IAI5B,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS;IAInD,IAAI;IAIJ,MAAM,CAAC,CAAC,EAAE,SAAS;CAGpB"}
@@ -0,0 +1,58 @@
1
+ import { X, Y } from "./Axes";
2
+ export class RealPoint {
3
+ constructor(x = 0, y = 0) {
4
+ Object.defineProperty(this, "x", {
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true,
8
+ value: 0
9
+ });
10
+ Object.defineProperty(this, "y", {
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true,
14
+ value: 0
15
+ });
16
+ Object.defineProperty(this, "getX", {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value: () => this.x
21
+ });
22
+ Object.defineProperty(this, "getY", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: true,
26
+ value: () => this.y
27
+ });
28
+ Object.defineProperty(this, "get", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: (a) => this[a]
33
+ });
34
+ this.set(X, x);
35
+ this.set(Y, y);
36
+ }
37
+ set(a, v) {
38
+ this[a] = v;
39
+ }
40
+ /**
41
+ * returns a new point that is the sum of this point and the given point
42
+ * @param p the point to be added to this point
43
+ * @returns a new point that is the sum of this point and the given point
44
+ */
45
+ add(p) {
46
+ return new RealPoint(this.x + p.x, this.y + p.y);
47
+ }
48
+ subtract(p) {
49
+ return new RealPoint(this.x - p.getX(), this.y - p.getY());
50
+ }
51
+ copy() {
52
+ return new RealPoint(this.x, this.y);
53
+ }
54
+ equals(p) {
55
+ return this.x === p.x && this.y === p.y;
56
+ }
57
+ }
58
+ //# sourceMappingURL=RealPoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RealPoint.js","sourceRoot":"","sources":["../../../../../char-matrix/src/types/RealPoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAGpC,MAAM,OAAO,SAAS;IAIpB,YAAY,IAAY,CAAC,EAAE,IAAY,CAAC;QAHhC;;;;mBAAY,CAAC;WAAC;QACd;;;;mBAAY,CAAC;WAAC;QAOf;;;;mBAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;WAAC;QACpB;;;;mBAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;WAAC;QACpB;;;;mBAAM,CAAC,CAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;WAAC;QANhC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,CAAC;IAMM,GAAG,CAAC,CAAO,EAAE,CAAS;QAC3B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,CAAY;QACrB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAEM,QAAQ,CAAC,CAAuB;QACrC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI;QACF,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,CAAY;QACjB,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import _ from "lodash";
2
+ export declare const throttledLog: _.DebouncedFuncLeading<(message: any) => void>;
3
+ export declare const throttledWarn: _.DebouncedFuncLeading<(message: any) => void>;
4
+ //# sourceMappingURL=Logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logging.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/Logging.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,eAAO,MAAM,YAAY,gDAElB,CAAC;AAER,eAAO,MAAM,aAAa,gDAEnB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import _ from "lodash";
2
+ export const throttledLog = _.throttle((message) => {
3
+ console.log(message);
4
+ }, 500);
5
+ export const throttledWarn = _.throttle((message) => {
6
+ console.warn(message);
7
+ }, 500);
8
+ //# sourceMappingURL=Logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logging.js","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/Logging.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;IACjD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC,EAAE,GAAG,CAAC,CAAC;AAER,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE;IAClD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC,EAAE,GAAG,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare function charsToPixelsY(numChars: number): number;
2
+ export declare function charsToPixelsX(numChars: number): number;
3
+ export declare function getPostIdFromTitle(title: string): string;
4
+ export declare function toBold(text: string): string;
5
+ export declare function toBoldChar(char: string): string;
6
+ export declare function toNotBoldChar(char: string): string;
7
+ //# sourceMappingURL=MiscUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiscUtils.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/MiscUtils.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG3C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAW/C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD"}
@@ -0,0 +1,37 @@
1
+ import { FONT_SIZE } from "../constants";
2
+ export function charsToPixelsY(numChars) {
3
+ return numChars * FONT_SIZE;
4
+ }
5
+ export function charsToPixelsX(numChars) {
6
+ return (numChars * FONT_SIZE) / 2;
7
+ }
8
+ export function getPostIdFromTitle(title) {
9
+ return title.replace(/\s+/g, "-").toLowerCase();
10
+ }
11
+ export function toBold(text) {
12
+ // Convert each character in text to its bold equivalent
13
+ return Array.from(text).map(toBoldChar).join("");
14
+ }
15
+ export function toBoldChar(char) {
16
+ // Check if the character is a letter
17
+ if (char.match(/[A-Z]/)) {
18
+ const boldCharValue = char.charCodeAt(0) + 0x1d400 - 0x41;
19
+ return String.fromCodePoint(boldCharValue);
20
+ }
21
+ else if (char.match(/[a-z]/)) {
22
+ const boldCharValue = char.charCodeAt(0) + 0x1d41a - 0x61;
23
+ return String.fromCodePoint(boldCharValue);
24
+ }
25
+ // If it's not a letter, return the original character
26
+ return char;
27
+ }
28
+ export function toNotBoldChar(char) {
29
+ // Check if the character is a bold letter by code point
30
+ const codePoint = char.codePointAt(0);
31
+ if (codePoint && codePoint >= 0x1d400 && codePoint <= 0x1d7ff) {
32
+ return String.fromCharCode(codePoint - 0x1d400);
33
+ }
34
+ // If it's not a bold letter, return the original character
35
+ return char;
36
+ }
37
+ //# sourceMappingURL=MiscUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MiscUtils.js","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/MiscUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,QAAQ,GAAG,SAAS,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,wDAAwD;IACxD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,qCAAqC;IACrC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;QAC1D,OAAO,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;QAC1D,OAAO,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;IACD,sDAAsD;IACtD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,wDAAwD;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,SAAS,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;QAC9D,OAAO,MAAM,CAAC,YAAY,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,2DAA2D;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Block Octant character utilities.
3
+ *
4
+ * Each character cell is a 2×4 grid of pixels (8 cells).
5
+ * Bit layout:
6
+ * bit0 bit1 (row 0, top)
7
+ * bit2 bit3 (row 1)
8
+ * bit4 bit5 (row 2)
9
+ * bit6 bit7 (row 3, bottom)
10
+ *
11
+ * Characters are encoded at U+1CD00-U+1CDE5 (230 chars),
12
+ * with 26 patterns pre-existing in other Unicode blocks.
13
+ */
14
+ /**
15
+ * Convert an 8-bit octant pattern to the corresponding Unicode character.
16
+ *
17
+ * @param bits 8-bit pattern (0-255) where each bit represents one cell
18
+ * in the 2×4 grid (bit 0 = top-left, bit 7 = bottom-right)
19
+ */
20
+ export declare function octantChar(bits: number): string;
21
+ /**
22
+ * Convert a 2×4 boolean grid to an octant character.
23
+ *
24
+ * @param grid Array of 4 rows, each an array of 2 booleans [left, right].
25
+ * grid[0] is the top row, grid[3] is the bottom row.
26
+ */
27
+ export declare function octantFromGrid(grid: [boolean, boolean][]): string;
28
+ /**
29
+ * Convert a 2×4 grid of pixel values to an octant character.
30
+ * Each value is treated as truthy/falsy.
31
+ *
32
+ * @param pixels Flat array of 8 values in row-major order:
33
+ * [row0left, row0right, row1left, row1right, row2left, row2right, row3left, row3right]
34
+ */
35
+ export declare function octantFromPixels(pixels: (boolean | number)[]): string;
36
+ /** Bit mask for left column of a row (0-3) */
37
+ export declare const OCTANT_LEFT: readonly [1, 4, 16, 64];
38
+ /** Bit mask for right column of a row (0-3) */
39
+ export declare const OCTANT_RIGHT: readonly [2, 8, 32, 128];
40
+ /** Bit mask for both columns of a row (0-3) */
41
+ export declare const OCTANT_ROW: readonly [3, 12, 48, 192];
42
+ //# sourceMappingURL=Octant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Octant.d.ts","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/Octant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAqCH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,CAQjE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAMrE;AAED,8CAA8C;AAC9C,eAAO,MAAM,WAAW,yBAAoC,CAAC;AAE7D,+CAA+C;AAC/C,eAAO,MAAM,YAAY,0BAAoC,CAAC;AAE9D,+CAA+C;AAC/C,eAAO,MAAM,UAAU,2BAAoC,CAAC"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Block Octant character utilities.
3
+ *
4
+ * Each character cell is a 2×4 grid of pixels (8 cells).
5
+ * Bit layout:
6
+ * bit0 bit1 (row 0, top)
7
+ * bit2 bit3 (row 1)
8
+ * bit4 bit5 (row 2)
9
+ * bit6 bit7 (row 3, bottom)
10
+ *
11
+ * Characters are encoded at U+1CD00-U+1CDE5 (230 chars),
12
+ * with 26 patterns pre-existing in other Unicode blocks.
13
+ */
14
+ /** The 26 pre-existing octant patterns and their codepoints */
15
+ const PRE_EXISTING = {
16
+ 0x00: 0x0020, // SPACE
17
+ 0x01: 0x1CEA8, // LEFT HALF UPPER ONE QUARTER
18
+ 0x02: 0x1CEAB, // RIGHT HALF UPPER ONE QUARTER
19
+ 0x03: 0x1FB82, // UPPER ONE QUARTER BLOCK
20
+ 0x05: 0x2598, // QUADRANT UPPER LEFT
21
+ 0x0A: 0x259D, // QUADRANT UPPER RIGHT
22
+ 0x0F: 0x2580, // UPPER HALF BLOCK
23
+ 0x14: 0x1FBE6, // MIDDLE LEFT ONE QUARTER BLOCK
24
+ 0x28: 0x1FBE7, // MIDDLE RIGHT ONE QUARTER BLOCK
25
+ 0x3F: 0x1FB85, // UPPER THREE QUARTERS BLOCK
26
+ 0x40: 0x1CEA3, // LEFT HALF LOWER ONE QUARTER
27
+ 0x50: 0x2596, // QUADRANT LOWER LEFT
28
+ 0x55: 0x258C, // LEFT HALF BLOCK
29
+ 0x5A: 0x259E, // QUADRANT UPPER RIGHT AND LOWER LEFT
30
+ 0x5F: 0x259B, // QUADRANT UL+UR+LL
31
+ 0x80: 0x1CEA0, // RIGHT HALF LOWER ONE QUARTER
32
+ 0xA0: 0x2597, // QUADRANT LOWER RIGHT
33
+ 0xA5: 0x259A, // QUADRANT UL+LR
34
+ 0xAA: 0x2590, // RIGHT HALF BLOCK
35
+ 0xAF: 0x259C, // QUADRANT UL+UR+LR
36
+ 0xC0: 0x2582, // LOWER ONE QUARTER BLOCK
37
+ 0xF0: 0x2584, // LOWER HALF BLOCK
38
+ 0xF5: 0x2599, // QUADRANT UL+LL+LR
39
+ 0xFA: 0x259F, // QUADRANT UR+LL+LR
40
+ 0xFC: 0x2586, // LOWER THREE QUARTERS BLOCK
41
+ 0xFF: 0x2588, // FULL BLOCK
42
+ };
43
+ /** Sorted pre-existing pattern values for offset calculation */
44
+ const PRE_EXISTING_SORTED = Object.keys(PRE_EXISTING)
45
+ .map(Number)
46
+ .sort((a, b) => a - b);
47
+ /**
48
+ * Convert an 8-bit octant pattern to the corresponding Unicode character.
49
+ *
50
+ * @param bits 8-bit pattern (0-255) where each bit represents one cell
51
+ * in the 2×4 grid (bit 0 = top-left, bit 7 = bottom-right)
52
+ */
53
+ export function octantChar(bits) {
54
+ if (bits in PRE_EXISTING) {
55
+ return String.fromCodePoint(PRE_EXISTING[bits]);
56
+ }
57
+ const skip = PRE_EXISTING_SORTED.filter((e) => e < bits).length;
58
+ return String.fromCodePoint(0x1CD00 + bits - skip);
59
+ }
60
+ /**
61
+ * Convert a 2×4 boolean grid to an octant character.
62
+ *
63
+ * @param grid Array of 4 rows, each an array of 2 booleans [left, right].
64
+ * grid[0] is the top row, grid[3] is the bottom row.
65
+ */
66
+ export function octantFromGrid(grid) {
67
+ let bits = 0;
68
+ for (let row = 0; row < 4; row++) {
69
+ const r = grid[row] ?? [false, false];
70
+ if (r[0])
71
+ bits |= 1 << (row * 2);
72
+ if (r[1])
73
+ bits |= 1 << (row * 2 + 1);
74
+ }
75
+ return octantChar(bits);
76
+ }
77
+ /**
78
+ * Convert a 2×4 grid of pixel values to an octant character.
79
+ * Each value is treated as truthy/falsy.
80
+ *
81
+ * @param pixels Flat array of 8 values in row-major order:
82
+ * [row0left, row0right, row1left, row1right, row2left, row2right, row3left, row3right]
83
+ */
84
+ export function octantFromPixels(pixels) {
85
+ let bits = 0;
86
+ for (let i = 0; i < 8; i++) {
87
+ if (pixels[i])
88
+ bits |= 1 << i;
89
+ }
90
+ return octantChar(bits);
91
+ }
92
+ /** Bit mask for left column of a row (0-3) */
93
+ export const OCTANT_LEFT = [0x01, 0x04, 0x10, 0x40];
94
+ /** Bit mask for right column of a row (0-3) */
95
+ export const OCTANT_RIGHT = [0x02, 0x08, 0x20, 0x80];
96
+ /** Bit mask for both columns of a row (0-3) */
97
+ export const OCTANT_ROW = [0x03, 0x0C, 0x30, 0xC0];
98
+ //# sourceMappingURL=Octant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Octant.js","sourceRoot":"","sources":["../../../../../char-matrix/src/utils/Octant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,+DAA+D;AAC/D,MAAM,YAAY,GAA2B;IAC3C,IAAI,EAAE,MAAM,EAAG,QAAQ;IACvB,IAAI,EAAE,OAAO,EAAE,8BAA8B;IAC7C,IAAI,EAAE,OAAO,EAAE,+BAA+B;IAC9C,IAAI,EAAE,OAAO,EAAE,0BAA0B;IACzC,IAAI,EAAE,MAAM,EAAG,sBAAsB;IACrC,IAAI,EAAE,MAAM,EAAG,uBAAuB;IACtC,IAAI,EAAE,MAAM,EAAG,mBAAmB;IAClC,IAAI,EAAE,OAAO,EAAE,gCAAgC;IAC/C,IAAI,EAAE,OAAO,EAAE,iCAAiC;IAChD,IAAI,EAAE,OAAO,EAAE,6BAA6B;IAC5C,IAAI,EAAE,OAAO,EAAE,8BAA8B;IAC7C,IAAI,EAAE,MAAM,EAAG,sBAAsB;IACrC,IAAI,EAAE,MAAM,EAAG,kBAAkB;IACjC,IAAI,EAAE,MAAM,EAAG,sCAAsC;IACrD,IAAI,EAAE,MAAM,EAAG,oBAAoB;IACnC,IAAI,EAAE,OAAO,EAAE,+BAA+B;IAC9C,IAAI,EAAE,MAAM,EAAG,uBAAuB;IACtC,IAAI,EAAE,MAAM,EAAG,iBAAiB;IAChC,IAAI,EAAE,MAAM,EAAG,mBAAmB;IAClC,IAAI,EAAE,MAAM,EAAG,oBAAoB;IACnC,IAAI,EAAE,MAAM,EAAG,0BAA0B;IACzC,IAAI,EAAE,MAAM,EAAG,mBAAmB;IAClC,IAAI,EAAE,MAAM,EAAG,oBAAoB;IACnC,IAAI,EAAE,MAAM,EAAG,oBAAoB;IACnC,IAAI,EAAE,MAAM,EAAG,6BAA6B;IAC5C,IAAI,EAAE,MAAM,EAAG,aAAa;CAC7B,CAAC;AAEF,gEAAgE;AAChE,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;KAClD,GAAG,CAAC,MAAM,CAAC;KACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,IAAI,IAAI,YAAY,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;IAChE,OAAO,MAAM,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAA0B;IACvD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA4B;IAC3D,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,CAAC,CAAC;YAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,8CAA8C;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAE7D,+CAA+C;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAE9D,+CAA+C;AAC/C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC"}