@pilates/core 1.0.0-rc.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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +97 -0
  3. package/dist/algorithm/axis.d.ts +41 -0
  4. package/dist/algorithm/axis.d.ts.map +1 -0
  5. package/dist/algorithm/axis.js +72 -0
  6. package/dist/algorithm/axis.js.map +1 -0
  7. package/dist/algorithm/index.d.ts +12 -0
  8. package/dist/algorithm/index.d.ts.map +1 -0
  9. package/dist/algorithm/index.js +26 -0
  10. package/dist/algorithm/index.js.map +1 -0
  11. package/dist/algorithm/main-axis.d.ts +59 -0
  12. package/dist/algorithm/main-axis.d.ts.map +1 -0
  13. package/dist/algorithm/main-axis.js +704 -0
  14. package/dist/algorithm/main-axis.js.map +1 -0
  15. package/dist/algorithm/round.d.ts +20 -0
  16. package/dist/algorithm/round.d.ts.map +1 -0
  17. package/dist/algorithm/round.js +45 -0
  18. package/dist/algorithm/round.js.map +1 -0
  19. package/dist/edge.d.ts +23 -0
  20. package/dist/edge.d.ts.map +1 -0
  21. package/dist/edge.js +22 -0
  22. package/dist/edge.js.map +1 -0
  23. package/dist/index.d.ts +9 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +11 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/layout.d.ts +15 -0
  28. package/dist/layout.d.ts.map +1 -0
  29. package/dist/layout.js +4 -0
  30. package/dist/layout.js.map +1 -0
  31. package/dist/measure/ansi.d.ts +15 -0
  32. package/dist/measure/ansi.d.ts.map +1 -0
  33. package/dist/measure/ansi.js +118 -0
  34. package/dist/measure/ansi.js.map +1 -0
  35. package/dist/measure/grapheme.d.ts +43 -0
  36. package/dist/measure/grapheme.d.ts.map +1 -0
  37. package/dist/measure/grapheme.js +169 -0
  38. package/dist/measure/grapheme.js.map +1 -0
  39. package/dist/measure/index.d.ts +4 -0
  40. package/dist/measure/index.d.ts.map +1 -0
  41. package/dist/measure/index.js +4 -0
  42. package/dist/measure/index.js.map +1 -0
  43. package/dist/measure/range-search.d.ts +7 -0
  44. package/dist/measure/range-search.d.ts.map +1 -0
  45. package/dist/measure/range-search.js +22 -0
  46. package/dist/measure/range-search.js.map +1 -0
  47. package/dist/measure/tables.d.ts +16 -0
  48. package/dist/measure/tables.d.ts.map +1 -0
  49. package/dist/measure/tables.js +262 -0
  50. package/dist/measure/tables.js.map +1 -0
  51. package/dist/measure/width.d.ts +37 -0
  52. package/dist/measure/width.d.ts.map +1 -0
  53. package/dist/measure/width.js +96 -0
  54. package/dist/measure/width.js.map +1 -0
  55. package/dist/measure-func.d.ts +24 -0
  56. package/dist/measure-func.d.ts.map +1 -0
  57. package/dist/measure-func.js +18 -0
  58. package/dist/measure-func.js.map +1 -0
  59. package/dist/node.d.ts +96 -0
  60. package/dist/node.d.ts.map +1 -0
  61. package/dist/node.js +332 -0
  62. package/dist/node.js.map +1 -0
  63. package/dist/style.d.ts +53 -0
  64. package/dist/style.d.ts.map +1 -0
  65. package/dist/style.js +40 -0
  66. package/dist/style.js.map +1 -0
  67. package/package.json +46 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main-axis.js","sourceRoot":"","sources":["../../src/algorithm/main-axis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Integer-cell rounding pass.
3
+ *
4
+ * The flex algorithm computes layouts in floating-point space (a child with
5
+ * `flex: 1` in a row of three may end up at width 33.333…). Terminals can't
6
+ * render half a cell, so we round once at the end with two invariants:
7
+ *
8
+ * 1. Sibling boxes should butt cleanly. If A is at left 0 with width 33.33
9
+ * and B is at left 33.33 with width 33.33, naive rounding gives A.width
10
+ * 33 and B.left 33, but B's right edge ends up at 66 instead of 67.
11
+ * We instead round each box's *absolute* edges, then derive its width
12
+ * and height from the difference.
13
+ * 2. Children's relative positions are recomputed against the parent's
14
+ * newly-rounded absolute corner, so nested layouts stay consistent.
15
+ *
16
+ * This mirrors Yoga's "round to pixel grid" pass.
17
+ */
18
+ import type { Node } from '../node.js';
19
+ export declare function roundLayout(root: Node): void;
20
+ //# sourceMappingURL=round.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round.d.ts","sourceRoot":"","sources":["../../src/algorithm/round.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AASvC,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAI5C"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Integer-cell rounding pass.
3
+ *
4
+ * The flex algorithm computes layouts in floating-point space (a child with
5
+ * `flex: 1` in a row of three may end up at width 33.333…). Terminals can't
6
+ * render half a cell, so we round once at the end with two invariants:
7
+ *
8
+ * 1. Sibling boxes should butt cleanly. If A is at left 0 with width 33.33
9
+ * and B is at left 33.33 with width 33.33, naive rounding gives A.width
10
+ * 33 and B.left 33, but B's right edge ends up at 66 instead of 67.
11
+ * We instead round each box's *absolute* edges, then derive its width
12
+ * and height from the difference.
13
+ * 2. Children's relative positions are recomputed against the parent's
14
+ * newly-rounded absolute corner, so nested layouts stay consistent.
15
+ *
16
+ * This mirrors Yoga's "round to pixel grid" pass.
17
+ */
18
+ export function roundLayout(root) {
19
+ const absolutes = new Map();
20
+ collectAbsolutes(root, 0, 0, absolutes);
21
+ applyRounding(root, absolutes, 0, 0);
22
+ }
23
+ function collectAbsolutes(node, parentX, parentY, out) {
24
+ const x = parentX + node.layout.left;
25
+ const y = parentY + node.layout.top;
26
+ out.set(node, { x, y, w: node.layout.width, h: node.layout.height });
27
+ for (let i = 0; i < node.getChildCount(); i++) {
28
+ collectAbsolutes(node.getChild(i), x, y, out);
29
+ }
30
+ }
31
+ function applyRounding(node, abs, parentRoundedX, parentRoundedY) {
32
+ const my = abs.get(node);
33
+ const roundedX = Math.round(my.x);
34
+ const roundedY = Math.round(my.y);
35
+ const roundedR = Math.round(my.x + my.w);
36
+ const roundedB = Math.round(my.y + my.h);
37
+ node.layout.left = roundedX - parentRoundedX;
38
+ node.layout.top = roundedY - parentRoundedY;
39
+ node.layout.width = Math.max(0, roundedR - roundedX);
40
+ node.layout.height = Math.max(0, roundedB - roundedY);
41
+ for (let i = 0; i < node.getChildCount(); i++) {
42
+ applyRounding(node.getChild(i), abs, roundedX, roundedY);
43
+ }
44
+ }
45
+ //# sourceMappingURL=round.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round.js","sourceRoot":"","sources":["../../src/algorithm/round.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,MAAM,UAAU,WAAW,CAAC,IAAU;IACpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC7C,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACxC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAU,EACV,OAAe,EACf,OAAe,EACf,GAAyB;IAEzB,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACrC,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACpC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CACpB,IAAU,EACV,GAAyB,EACzB,cAAsB,EACtB,cAAsB;IAEtB,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,GAAG,cAAc,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,QAAQ,GAAG,cAAc,CAAC;IAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC;IAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
package/dist/edge.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Edge identifiers for setters that target one or more sides of a box
3
+ * (padding, margin, position).
4
+ *
5
+ * `All` writes to top + right + bottom + left.
6
+ * `Horizontal` writes to left + right.
7
+ * `Vertical` writes to top + bottom.
8
+ *
9
+ * Implemented as a frozen const-object rather than `enum` so that
10
+ * `verbatimModuleSyntax` works smoothly and tree-shaking sees plain
11
+ * numeric literals.
12
+ */
13
+ export declare const Edge: {
14
+ readonly Top: 0;
15
+ readonly Right: 1;
16
+ readonly Bottom: 2;
17
+ readonly Left: 3;
18
+ readonly Horizontal: 4;
19
+ readonly Vertical: 5;
20
+ readonly All: 6;
21
+ };
22
+ export type Edge = (typeof Edge)[keyof typeof Edge];
23
+ //# sourceMappingURL=edge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../src/edge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,IAAI;;;;;;;;CAQP,CAAC;AAEX,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,OAAO,IAAI,CAAC,CAAC"}
package/dist/edge.js ADDED
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Edge identifiers for setters that target one or more sides of a box
3
+ * (padding, margin, position).
4
+ *
5
+ * `All` writes to top + right + bottom + left.
6
+ * `Horizontal` writes to left + right.
7
+ * `Vertical` writes to top + bottom.
8
+ *
9
+ * Implemented as a frozen const-object rather than `enum` so that
10
+ * `verbatimModuleSyntax` works smoothly and tree-shaking sees plain
11
+ * numeric literals.
12
+ */
13
+ export const Edge = {
14
+ Top: 0,
15
+ Right: 1,
16
+ Bottom: 2,
17
+ Left: 3,
18
+ Horizontal: 4,
19
+ Vertical: 5,
20
+ All: 6,
21
+ };
22
+ //# sourceMappingURL=edge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge.js","sourceRoot":"","sources":["../src/edge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC;IACX,GAAG,EAAE,CAAC;CACE,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const VERSION = "1.0.0-rc.1";
2
+ export { Node } from './node.js';
3
+ export { Edge } from './edge.js';
4
+ export type { Align, Display, FlexDirection, FlexWrap, Justify, Length, PositionType, Style, } from './style.js';
5
+ export { MeasureMode } from './measure-func.js';
6
+ export type { MeasureFunc, MeasureSize } from './measure-func.js';
7
+ export type { ComputedLayout } from './layout.js';
8
+ export { cellWidth, graphemes, stringWidth, stripAnsi, type Grapheme } from './measure/index.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,eAAe,CAAC;AAGpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EACV,KAAK,EACL,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,EACN,YAAY,EACZ,KAAK,GACN,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGlE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ export const VERSION = '1.0.0-rc.1';
2
+ // Tree
3
+ export { Node } from './node.js';
4
+ // Style values
5
+ export { Edge } from './edge.js';
6
+ // Measure callback
7
+ export { MeasureMode } from './measure-func.js';
8
+ // Text measurement (re-exported from the measure module so consumers can
9
+ // build measure functions on top of our width tables).
10
+ export { cellWidth, graphemes, stringWidth, stripAnsi } from './measure/index.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;AAEpC,OAAO;AACP,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,eAAe;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAYjC,mBAAmB;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD,yEAAyE;AACzE,uDAAuD;AACvD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Computed layout values stored on each Node. These are written by
3
+ * `calculateLayout()` (M4 onwards) and read via `Node.getComputedLayout()`.
4
+ *
5
+ * All values are in integer terminal cells, relative to the parent node's
6
+ * top-left corner.
7
+ */
8
+ export interface ComputedLayout {
9
+ left: number;
10
+ top: number;
11
+ width: number;
12
+ height: number;
13
+ }
14
+ export declare function defaultLayout(): ComputedLayout;
15
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,IAAI,cAAc,CAE9C"}
package/dist/layout.js ADDED
@@ -0,0 +1,4 @@
1
+ export function defaultLayout() {
2
+ return { left: 0, top: 0, width: 0, height: 0 };
3
+ }
4
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../src/layout.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,aAAa;IAC3B,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAClD,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Strip ANSI escape sequences for measurement purposes.
3
+ *
4
+ * Handles the escape forms that show up in TTY output:
5
+ * - CSI sequences: ESC '[' ... <final byte 0x40-0x7E> (e.g. SGR colors)
6
+ * - OSC sequences: ESC ']' ... (BEL | ESC '\\' | ST 0x9C) (e.g. hyperlinks, titles)
7
+ * - Two-byte ESC: ESC <0x40-0x5F> (e.g. ESC = / ESC >)
8
+ * - DCS / SOS / PM / APC: ESC (P | X | ^ | _) ... ST (treated like OSC)
9
+ * - Bare 0x9B (CSI) and 0x9D (OSC) C1 controls
10
+ *
11
+ * Does NOT strip C0 control characters (BS, BEL, etc.) other than the escape
12
+ * itself — those are the caller's concern.
13
+ */
14
+ export declare function stripAnsi(input: string): string;
15
+ //# sourceMappingURL=ansi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ansi.d.ts","sourceRoot":"","sources":["../../src/measure/ansi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAYH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsE/C"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Strip ANSI escape sequences for measurement purposes.
3
+ *
4
+ * Handles the escape forms that show up in TTY output:
5
+ * - CSI sequences: ESC '[' ... <final byte 0x40-0x7E> (e.g. SGR colors)
6
+ * - OSC sequences: ESC ']' ... (BEL | ESC '\\' | ST 0x9C) (e.g. hyperlinks, titles)
7
+ * - Two-byte ESC: ESC <0x40-0x5F> (e.g. ESC = / ESC >)
8
+ * - DCS / SOS / PM / APC: ESC (P | X | ^ | _) ... ST (treated like OSC)
9
+ * - Bare 0x9B (CSI) and 0x9D (OSC) C1 controls
10
+ *
11
+ * Does NOT strip C0 control characters (BS, BEL, etc.) other than the escape
12
+ * itself — those are the caller's concern.
13
+ */
14
+ const ESC = 0x1b;
15
+ const BEL = 0x07;
16
+ const CSI_C1 = 0x9b;
17
+ const OSC_C1 = 0x9d;
18
+ const ST_C1 = 0x9c;
19
+ const DCS_C1 = 0x90;
20
+ const SOS_C1 = 0x98;
21
+ const PM_C1 = 0x9e;
22
+ const APC_C1 = 0x9f;
23
+ export function stripAnsi(input) {
24
+ if (input.length === 0)
25
+ return input;
26
+ let out = '';
27
+ let i = 0;
28
+ const len = input.length;
29
+ while (i < len) {
30
+ const cp = input.charCodeAt(i);
31
+ if (cp === ESC) {
32
+ const next = i + 1 < len ? input.charCodeAt(i + 1) : -1;
33
+ if (next === 0x5b /* '[' */ || next === CSI_C1) {
34
+ i = skipCsi(input, i + 2);
35
+ continue;
36
+ }
37
+ if (next === 0x5d /* ']' */) {
38
+ i = skipString(input, i + 2);
39
+ continue;
40
+ }
41
+ if (next === 0x50 /* P, DCS */ ||
42
+ next === 0x58 /* X, SOS */ ||
43
+ next === 0x5e /* ^, PM */ ||
44
+ next === 0x5f /* _, APC */) {
45
+ i = skipString(input, i + 2);
46
+ continue;
47
+ }
48
+ if (next >= 0x40 && next <= 0x5f) {
49
+ // ESC <Fe> — two-byte sequence (handled above for CSI/OSC; this is the rest)
50
+ i += 2;
51
+ continue;
52
+ }
53
+ if (next >= 0x20 && next <= 0x2f) {
54
+ // ESC <intermediate>* <final> — e.g. character set selection
55
+ let j = i + 2;
56
+ while (j < len) {
57
+ const c = input.charCodeAt(j);
58
+ if (c >= 0x30 && c <= 0x7e) {
59
+ j++;
60
+ break;
61
+ }
62
+ if (c >= 0x20 && c <= 0x2f) {
63
+ j++;
64
+ continue;
65
+ }
66
+ break;
67
+ }
68
+ i = j;
69
+ continue;
70
+ }
71
+ // Lone ESC — drop it.
72
+ i += 1;
73
+ continue;
74
+ }
75
+ if (cp === CSI_C1) {
76
+ i = skipCsi(input, i + 1);
77
+ continue;
78
+ }
79
+ if (cp === OSC_C1 || cp === DCS_C1 || cp === SOS_C1 || cp === PM_C1 || cp === APC_C1) {
80
+ i = skipString(input, i + 1);
81
+ continue;
82
+ }
83
+ out += input[i];
84
+ i++;
85
+ }
86
+ return out;
87
+ }
88
+ /** Skip a CSI body: parameters and intermediates, then a final byte 0x40..0x7E. */
89
+ function skipCsi(s, start) {
90
+ const len = s.length;
91
+ let i = start;
92
+ while (i < len) {
93
+ const c = s.charCodeAt(i);
94
+ if (c >= 0x40 && c <= 0x7e)
95
+ return i + 1;
96
+ i++;
97
+ }
98
+ return i;
99
+ }
100
+ /**
101
+ * Skip an OSC/DCS/SOS/PM/APC body until ST (ESC '\\' or 0x9C) or BEL.
102
+ * We accept BEL as an OSC terminator because xterm and most modern terminals do.
103
+ */
104
+ function skipString(s, start) {
105
+ const len = s.length;
106
+ let i = start;
107
+ while (i < len) {
108
+ const c = s.charCodeAt(i);
109
+ if (c === BEL || c === ST_C1)
110
+ return i + 1;
111
+ if (c === ESC && i + 1 < len && s.charCodeAt(i + 1) === 0x5c /* '\\' */) {
112
+ return i + 2;
113
+ }
114
+ i++;
115
+ }
116
+ return i;
117
+ }
118
+ //# sourceMappingURL=ansi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ansi.js","sourceRoot":"","sources":["../../src/measure/ansi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Grapheme cluster segmentation per UAX #29 (subset adequate for terminal text).
3
+ *
4
+ * Implements rules GB1, GB2, GB3, GB4, GB5, GB6, GB7, GB8, GB9, GB9a, GB9b,
5
+ * GB11 (extended pictographic + ZWJ + extended pictographic), GB12/GB13
6
+ * (regional indicator pairs), and GB999 (otherwise break).
7
+ *
8
+ * Operates on Unicode code points, not UTF-16 code units, so surrogate pairs
9
+ * are handled via String.prototype.codePointAt in the iterator.
10
+ */
11
+ export declare enum GBC {
12
+ Other = 0,
13
+ CR = 1,
14
+ LF = 2,
15
+ Control = 3,
16
+ Extend = 4,
17
+ ZWJ = 5,
18
+ Regional_Indicator = 6,
19
+ Prepend = 7,
20
+ SpacingMark = 8,
21
+ L = 9,
22
+ V = 10,
23
+ T = 11,
24
+ LV = 12,
25
+ LVT = 13,
26
+ ExtPict = 14
27
+ }
28
+ export declare function gbClass(cp: number): GBC;
29
+ /**
30
+ * Iterate grapheme clusters in `s`. Each yielded value is an object with the
31
+ * cluster string, its starting JS code-unit index, and the array of code points
32
+ * it contains. The code points are useful for downstream width calculations.
33
+ */
34
+ export declare function graphemes(s: string): Generator<Grapheme>;
35
+ export interface Grapheme {
36
+ /** The substring of the cluster, as originally encoded. */
37
+ text: string;
38
+ /** Starting JS code-unit index in the source string. */
39
+ start: number;
40
+ /** Code points in the cluster, in order. */
41
+ codepoints: number[];
42
+ }
43
+ //# sourceMappingURL=grapheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grapheme.d.ts","sourceRoot":"","sources":["../../src/measure/grapheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkBH,oBAAY,GAAG;IACb,KAAK,IAAI;IACT,EAAE,IAAI;IACN,EAAE,IAAI;IACN,OAAO,IAAI;IACX,MAAM,IAAI;IACV,GAAG,IAAI;IACP,kBAAkB,IAAI;IACtB,OAAO,IAAI;IACX,WAAW,IAAI;IACf,CAAC,IAAI;IACL,CAAC,KAAK;IACN,CAAC,KAAK;IACN,EAAE,KAAK;IACP,GAAG,KAAK;IAER,OAAO,KAAK;CACb;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG,CAgBvC;AAgFD;;;;GAIG;AACH,wBAAiB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAuCzD;AAED,MAAM,WAAW,QAAQ;IACvB,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Grapheme cluster segmentation per UAX #29 (subset adequate for terminal text).
3
+ *
4
+ * Implements rules GB1, GB2, GB3, GB4, GB5, GB6, GB7, GB8, GB9, GB9a, GB9b,
5
+ * GB11 (extended pictographic + ZWJ + extended pictographic), GB12/GB13
6
+ * (regional indicator pairs), and GB999 (otherwise break).
7
+ *
8
+ * Operates on Unicode code points, not UTF-16 code units, so surrogate pairs
9
+ * are handled via String.prototype.codePointAt in the iterator.
10
+ */
11
+ import { inRanges } from './range-search.js';
12
+ import { EXT_PICTOGRAPHIC_RANGES, GB_CONTROL, GB_EXTEND, GB_L, GB_LV, GB_LVT, GB_PREPEND, GB_REGIONAL_INDICATOR, GB_SPACINGMARK, GB_T, GB_V, GB_ZWJ, } from './tables.js';
13
+ export var GBC;
14
+ (function (GBC) {
15
+ GBC[GBC["Other"] = 0] = "Other";
16
+ GBC[GBC["CR"] = 1] = "CR";
17
+ GBC[GBC["LF"] = 2] = "LF";
18
+ GBC[GBC["Control"] = 3] = "Control";
19
+ GBC[GBC["Extend"] = 4] = "Extend";
20
+ GBC[GBC["ZWJ"] = 5] = "ZWJ";
21
+ GBC[GBC["Regional_Indicator"] = 6] = "Regional_Indicator";
22
+ GBC[GBC["Prepend"] = 7] = "Prepend";
23
+ GBC[GBC["SpacingMark"] = 8] = "SpacingMark";
24
+ GBC[GBC["L"] = 9] = "L";
25
+ GBC[GBC["V"] = 10] = "V";
26
+ GBC[GBC["T"] = 11] = "T";
27
+ GBC[GBC["LV"] = 12] = "LV";
28
+ GBC[GBC["LVT"] = 13] = "LVT";
29
+ // Synthetic — drives GB11.
30
+ GBC[GBC["ExtPict"] = 14] = "ExtPict";
31
+ })(GBC || (GBC = {}));
32
+ export function gbClass(cp) {
33
+ if (cp === 0x000d)
34
+ return GBC.CR;
35
+ if (cp === 0x000a)
36
+ return GBC.LF;
37
+ if (inRanges(cp, GB_CONTROL))
38
+ return GBC.Control;
39
+ if (inRanges(cp, GB_ZWJ))
40
+ return GBC.ZWJ;
41
+ if (inRanges(cp, GB_EXTEND))
42
+ return GBC.Extend;
43
+ if (inRanges(cp, GB_REGIONAL_INDICATOR))
44
+ return GBC.Regional_Indicator;
45
+ if (inRanges(cp, GB_PREPEND))
46
+ return GBC.Prepend;
47
+ if (inRanges(cp, GB_SPACINGMARK))
48
+ return GBC.SpacingMark;
49
+ if (inRanges(cp, GB_L))
50
+ return GBC.L;
51
+ if (inRanges(cp, GB_V))
52
+ return GBC.V;
53
+ if (inRanges(cp, GB_T))
54
+ return GBC.T;
55
+ if (inRanges(cp, GB_LV))
56
+ return GBC.LV;
57
+ if (inRanges(cp, GB_LVT))
58
+ return GBC.LVT;
59
+ if (inRanges(cp, EXT_PICTOGRAPHIC_RANGES))
60
+ return GBC.ExtPict;
61
+ return GBC.Other;
62
+ }
63
+ function freshState() {
64
+ return { gb11Armed: false, gb11Pictographic: false, riCount: 0 };
65
+ }
66
+ function shouldBreak(prev, next, state) {
67
+ // GB3: CR × LF
68
+ if (prev === GBC.CR && next === GBC.LF)
69
+ return false;
70
+ // GB4: (Control | CR | LF) ÷
71
+ if (prev === GBC.Control || prev === GBC.CR || prev === GBC.LF)
72
+ return true;
73
+ // GB5: ÷ (Control | CR | LF)
74
+ if (next === GBC.Control || next === GBC.CR || next === GBC.LF)
75
+ return true;
76
+ // GB6: L × (L | V | LV | LVT)
77
+ if (prev === GBC.L && (next === GBC.L || next === GBC.V || next === GBC.LV || next === GBC.LVT))
78
+ return false;
79
+ // GB7: (LV | V) × (V | T)
80
+ if ((prev === GBC.LV || prev === GBC.V) && (next === GBC.V || next === GBC.T))
81
+ return false;
82
+ // GB8: (LVT | T) × T
83
+ if ((prev === GBC.LVT || prev === GBC.T) && next === GBC.T)
84
+ return false;
85
+ // GB9: × (Extend | ZWJ)
86
+ if (next === GBC.Extend || next === GBC.ZWJ)
87
+ return false;
88
+ // GB9a: × SpacingMark
89
+ if (next === GBC.SpacingMark)
90
+ return false;
91
+ // GB9b: Prepend ×
92
+ if (prev === GBC.Prepend)
93
+ return false;
94
+ // GB11: \p{Extended_Pictographic} Extend* ZWJ × \p{Extended_Pictographic}
95
+ if (state.gb11Armed && next === GBC.ExtPict)
96
+ return false;
97
+ // GB12/13: regional indicators come in pairs.
98
+ if (prev === GBC.Regional_Indicator && next === GBC.Regional_Indicator) {
99
+ return state.riCount % 2 === 0;
100
+ }
101
+ // GB999: otherwise break.
102
+ return true;
103
+ }
104
+ function advanceState(state, cls) {
105
+ // GB11 state machine.
106
+ if (cls === GBC.ExtPict) {
107
+ state.gb11Pictographic = true;
108
+ state.gb11Armed = false;
109
+ }
110
+ else if (cls === GBC.Extend && state.gb11Pictographic) {
111
+ // stay armed-able
112
+ }
113
+ else if (cls === GBC.ZWJ && state.gb11Pictographic) {
114
+ state.gb11Armed = true;
115
+ state.gb11Pictographic = false;
116
+ }
117
+ else {
118
+ state.gb11Pictographic = false;
119
+ state.gb11Armed = false;
120
+ }
121
+ // GB12/13 RI parity.
122
+ if (cls === GBC.Regional_Indicator) {
123
+ state.riCount += 1;
124
+ }
125
+ else {
126
+ state.riCount = 0;
127
+ }
128
+ }
129
+ /**
130
+ * Iterate grapheme clusters in `s`. Each yielded value is an object with the
131
+ * cluster string, its starting JS code-unit index, and the array of code points
132
+ * it contains. The code points are useful for downstream width calculations.
133
+ */
134
+ export function* graphemes(s) {
135
+ if (s.length === 0)
136
+ return;
137
+ const len = s.length;
138
+ let i = 0;
139
+ let clusterStart = 0;
140
+ let clusterCps = [];
141
+ let prevClass = null;
142
+ const state = freshState();
143
+ while (i < len) {
144
+ const cp = s.codePointAt(i);
145
+ const step = cp > 0xffff ? 2 : 1;
146
+ const cls = gbClass(cp);
147
+ if (prevClass !== null && shouldBreak(prevClass, cls, state)) {
148
+ yield {
149
+ text: s.slice(clusterStart, i),
150
+ start: clusterStart,
151
+ codepoints: clusterCps,
152
+ };
153
+ clusterStart = i;
154
+ clusterCps = [];
155
+ // Reset the GB12/13 RI parity at every break.
156
+ state.riCount = 0;
157
+ }
158
+ clusterCps.push(cp);
159
+ advanceState(state, cls);
160
+ prevClass = cls;
161
+ i += step;
162
+ }
163
+ yield {
164
+ text: s.slice(clusterStart, len),
165
+ start: clusterStart,
166
+ codepoints: clusterCps,
167
+ };
168
+ }
169
+ //# sourceMappingURL=grapheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grapheme.js","sourceRoot":"","sources":["../../src/measure/grapheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,SAAS,EACT,IAAI,EACJ,KAAK,EACL,MAAM,EACN,UAAU,EACV,qBAAqB,EACrB,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,MAAM,GACP,MAAM,aAAa,CAAC;AAErB,MAAM,CAAN,IAAY,GAiBX;AAjBD,WAAY,GAAG;IACb,+BAAS,CAAA;IACT,yBAAM,CAAA;IACN,yBAAM,CAAA;IACN,mCAAW,CAAA;IACX,iCAAU,CAAA;IACV,2BAAO,CAAA;IACP,yDAAsB,CAAA;IACtB,mCAAW,CAAA;IACX,2CAAe,CAAA;IACf,uBAAK,CAAA;IACL,wBAAM,CAAA;IACN,wBAAM,CAAA;IACN,0BAAO,CAAA;IACP,4BAAQ,CAAA;IACR,2BAA2B;IAC3B,oCAAY,CAAA;AACd,CAAC,EAjBW,GAAG,KAAH,GAAG,QAiBd;AAED,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC,EAAE,CAAC;IACjC,IAAI,EAAE,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC,EAAE,CAAC;IACjC,IAAI,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IACjD,IAAI,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC;IACzC,IAAI,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;QAAE,OAAO,GAAG,CAAC,MAAM,CAAC;IAC/C,IAAI,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;QAAE,OAAO,GAAG,CAAC,kBAAkB,CAAC;IACvE,IAAI,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IACjD,IAAI,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;QAAE,OAAO,GAAG,CAAC,WAAW,CAAC;IACzD,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,EAAE,CAAC;IACvC,IAAI,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC;IACzC,IAAI,QAAQ,CAAC,EAAE,EAAE,uBAAuB,CAAC;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC9D,OAAO,GAAG,CAAC,KAAK,CAAC;AACnB,CAAC;AAkBD,SAAS,UAAU;IACjB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,WAAW,CAAC,IAAS,EAAE,IAAS,EAAE,KAAiB;IAC1D,eAAe;IACf,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IACrD,6BAA6B;IAC7B,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAC5E,6BAA6B;IAC7B,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAE5E,8BAA8B;IAC9B,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC;QAC7F,OAAO,KAAK,CAAC;IACf,0BAA0B;IAC1B,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5F,qBAAqB;IACrB,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzE,wBAAwB;IACxB,IAAI,IAAI,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAC1D,sBAAsB;IACtB,IAAI,IAAI,KAAK,GAAG,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC3C,kBAAkB;IAClB,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAEvC,0EAA0E;IAC1E,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,KAAK,GAAG,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE1D,8CAA8C;IAC9C,IAAI,IAAI,KAAK,GAAG,CAAC,kBAAkB,IAAI,IAAI,KAAK,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,0BAA0B;IAC1B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,KAAiB,EAAE,GAAQ;IAC/C,sBAAsB;IACtB,IAAI,GAAG,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC9B,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1B,CAAC;SAAM,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACxD,kBAAkB;IACpB,CAAC;SAAM,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QACrD,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC/B,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,qBAAqB;IACrB,IAAI,GAAG,KAAK,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACnC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,SAAS,CAAC,CAAC,SAAS,CAAC,CAAS;IAClC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE3B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,IAAI,SAAS,GAAe,IAAI,CAAC;IACjC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAE3B,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;QAExB,IAAI,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7D,MAAM;gBACJ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC9B,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,UAAU;aACvB,CAAC;YACF,YAAY,GAAG,CAAC,CAAC;YACjB,UAAU,GAAG,EAAE,CAAC;YAChB,8CAA8C;YAC9C,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QACpB,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzB,SAAS,GAAG,GAAG,CAAC;QAChB,CAAC,IAAI,IAAI,CAAC;IACZ,CAAC;IAED,MAAM;QACJ,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC;QAChC,KAAK,EAAE,YAAY;QACnB,UAAU,EAAE,UAAU;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { stripAnsi } from './ansi.js';
2
+ export { graphemes, type Grapheme } from './grapheme.js';
3
+ export { cellWidth, stringWidth } from './width.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/measure/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { stripAnsi } from './ansi.js';
2
+ export { graphemes } from './grapheme.js';
3
+ export { cellWidth, stringWidth } from './width.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/measure/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,EAAiB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}