ink 3.2.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/build/colorize.d.ts +3 -3
  2. package/build/colorize.js +30 -35
  3. package/build/colorize.js.map +1 -1
  4. package/build/components/App.d.ts +12 -12
  5. package/build/components/App.js +287 -208
  6. package/build/components/App.js.map +1 -1
  7. package/build/components/AppContext.d.ts +2 -2
  8. package/build/components/AppContext.js +5 -6
  9. package/build/components/AppContext.js.map +1 -1
  10. package/build/components/Box.d.ts +77 -5
  11. package/build/components/Box.js +20 -38
  12. package/build/components/Box.js.map +1 -1
  13. package/build/components/ErrorOverview.d.ts +5 -5
  14. package/build/components/ErrorOverview.js +40 -58
  15. package/build/components/ErrorOverview.js.map +1 -1
  16. package/build/components/FocusContext.d.ts +2 -2
  17. package/build/components/FocusContext.js +13 -14
  18. package/build/components/FocusContext.js.map +1 -1
  19. package/build/components/Newline.d.ts +4 -5
  20. package/build/components/Newline.js +4 -9
  21. package/build/components/Newline.js.map +1 -1
  22. package/build/components/Spacer.d.ts +2 -3
  23. package/build/components/Spacer.js +5 -10
  24. package/build/components/Spacer.js.map +1 -1
  25. package/build/components/Static.d.ts +5 -9
  26. package/build/components/Static.js +12 -33
  27. package/build/components/Static.js.map +1 -1
  28. package/build/components/StderrContext.d.ts +4 -4
  29. package/build/components/StderrContext.js +7 -7
  30. package/build/components/StderrContext.js.map +1 -1
  31. package/build/components/StdinContext.d.ts +4 -4
  32. package/build/components/StdinContext.js +8 -7
  33. package/build/components/StdinContext.js.map +1 -1
  34. package/build/components/StdoutContext.d.ts +4 -4
  35. package/build/components/StdoutContext.js +7 -7
  36. package/build/components/StdoutContext.js.map +1 -1
  37. package/build/components/Text.d.ts +9 -10
  38. package/build/components/Text.js +14 -29
  39. package/build/components/Text.js.map +1 -1
  40. package/build/components/Transform.d.ts +4 -5
  41. package/build/components/Transform.js +4 -11
  42. package/build/components/Transform.js.map +1 -1
  43. package/build/devtools-window-polyfill.js +3 -8
  44. package/build/devtools-window-polyfill.js.map +1 -1
  45. package/build/devtools.d.ts +1 -1
  46. package/build/devtools.js +6 -6
  47. package/build/devtools.js.map +1 -1
  48. package/build/dom.d.ts +17 -20
  49. package/build/dom.js +35 -47
  50. package/build/dom.js.map +1 -1
  51. package/build/get-max-width.d.ts +3 -3
  52. package/build/get-max-width.js +8 -11
  53. package/build/get-max-width.js.map +1 -1
  54. package/build/hooks/use-app.d.ts +1 -1
  55. package/build/hooks/use-app.js +4 -9
  56. package/build/hooks/use-app.js.map +1 -1
  57. package/build/hooks/use-focus-manager.d.ts +3 -3
  58. package/build/hooks/use-focus-manager.js +4 -9
  59. package/build/hooks/use-focus-manager.js.map +1 -1
  60. package/build/hooks/use-focus.d.ts +4 -4
  61. package/build/hooks/use-focus.js +11 -16
  62. package/build/hooks/use-focus.js.map +1 -1
  63. package/build/hooks/use-input.d.ts +5 -5
  64. package/build/hooks/use-input.js +13 -14
  65. package/build/hooks/use-input.js.map +1 -1
  66. package/build/hooks/use-stderr.d.ts +1 -1
  67. package/build/hooks/use-stderr.js +4 -9
  68. package/build/hooks/use-stderr.js.map +1 -1
  69. package/build/hooks/use-stdin.d.ts +1 -1
  70. package/build/hooks/use-stdin.js +4 -9
  71. package/build/hooks/use-stdin.js.map +1 -1
  72. package/build/hooks/use-stdout.d.ts +1 -1
  73. package/build/hooks/use-stdout.js +4 -9
  74. package/build/hooks/use-stdout.js.map +1 -1
  75. package/build/index.d.ts +27 -20
  76. package/build/index.js +15 -32
  77. package/build/index.js.map +1 -1
  78. package/build/ink.d.ts +6 -4
  79. package/build/ink.js +188 -99
  80. package/build/ink.js.map +1 -1
  81. package/build/instances.d.ts +4 -2
  82. package/build/instances.js +2 -3
  83. package/build/instances.js.map +1 -1
  84. package/build/log-update.d.ts +5 -6
  85. package/build/log-update.js +8 -12
  86. package/build/log-update.js.map +1 -1
  87. package/build/measure-element.d.ts +5 -5
  88. package/build/measure-element.js +5 -9
  89. package/build/measure-element.js.map +1 -1
  90. package/build/measure-text.d.ts +4 -4
  91. package/build/measure-text.js +7 -10
  92. package/build/measure-text.js.map +1 -1
  93. package/build/output.d.ts +12 -4
  94. package/build/output.js +108 -31
  95. package/build/output.js.map +1 -1
  96. package/build/reconciler.d.ts +1 -1
  97. package/build/reconciler.js +104 -76
  98. package/build/reconciler.js.map +1 -1
  99. package/build/render-border.d.ts +4 -4
  100. package/build/render-border.js +8 -12
  101. package/build/render-border.js.map +1 -1
  102. package/build/render-node-to-output.d.ts +3 -3
  103. package/build/render-node-to-output.js +44 -24
  104. package/build/render-node-to-output.js.map +1 -1
  105. package/build/render.d.ts +8 -8
  106. package/build/render.js +23 -20
  107. package/build/render.js.map +1 -1
  108. package/build/renderer.d.ts +5 -5
  109. package/build/renderer.js +9 -17
  110. package/build/renderer.js.map +1 -1
  111. package/build/squash-text-nodes.d.ts +1 -1
  112. package/build/squash-text-nodes.js +1 -3
  113. package/build/squash-text-nodes.js.map +1 -1
  114. package/build/styles.d.ts +30 -9
  115. package/build/styles.js +60 -46
  116. package/build/styles.js.map +1 -1
  117. package/build/wrap-text.d.ts +3 -3
  118. package/build/wrap-text.js +9 -12
  119. package/build/wrap-text.js.map +1 -1
  120. package/license +1 -1
  121. package/package.json +87 -67
  122. package/readme.md +202 -57
package/build/output.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { OutputTransformer } from './render-node-to-output';
1
+ import { type OutputTransformer } from './render-node-to-output.js';
2
2
  /**
3
3
  * "Virtual" output class
4
4
  *
@@ -7,18 +7,26 @@ import { OutputTransformer } from './render-node-to-output';
7
7
  *
8
8
  * Used to generate the final output of all nodes before writing it to actual output stream (e.g. stdout)
9
9
  */
10
- interface Options {
10
+ type Options = {
11
11
  width: number;
12
12
  height: number;
13
- }
13
+ };
14
+ type Clip = {
15
+ x1: number | undefined;
16
+ x2: number | undefined;
17
+ y1: number | undefined;
18
+ y2: number | undefined;
19
+ };
14
20
  export default class Output {
15
21
  width: number;
16
22
  height: number;
17
- private readonly writes;
23
+ private readonly operations;
18
24
  constructor(options: Options);
19
25
  write(x: number, y: number, text: string, options: {
20
26
  transformers: OutputTransformer[];
21
27
  }): void;
28
+ clip(clip: Clip): void;
29
+ unclip(): void;
22
30
  get(): {
23
31
  output: string;
24
32
  height: number;
package/build/output.js CHANGED
@@ -1,14 +1,26 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const slice_ansi_1 = __importDefault(require("slice-ansi"));
7
- const string_width_1 = __importDefault(require("string-width"));
8
- class Output {
1
+ import sliceAnsi from 'slice-ansi';
2
+ import stringWidth from 'string-width';
3
+ import widestLine from 'widest-line';
4
+ export default class Output {
9
5
  constructor(options) {
10
- // Initialize output array with a specific set of rows, so that margin/padding at the bottom is preserved
11
- this.writes = [];
6
+ Object.defineProperty(this, "width", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: void 0
11
+ });
12
+ Object.defineProperty(this, "height", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: void 0
17
+ });
18
+ Object.defineProperty(this, "operations", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: []
23
+ });
12
24
  const { width, height } = options;
13
25
  this.width = width;
14
26
  this.height = height;
@@ -18,41 +30,106 @@ class Output {
18
30
  if (!text) {
19
31
  return;
20
32
  }
21
- this.writes.push({ x, y, text, transformers });
33
+ this.operations.push({
34
+ type: 'write',
35
+ x,
36
+ y,
37
+ text,
38
+ transformers
39
+ });
40
+ }
41
+ clip(clip) {
42
+ this.operations.push({
43
+ type: 'clip',
44
+ clip
45
+ });
46
+ }
47
+ unclip() {
48
+ this.operations.push({
49
+ type: 'unclip'
50
+ });
22
51
  }
23
52
  get() {
53
+ // Initialize output array with a specific set of rows, so that margin/padding at the bottom is preserved
24
54
  const output = [];
25
55
  for (let y = 0; y < this.height; y++) {
26
56
  output.push(' '.repeat(this.width));
27
57
  }
28
- for (const write of this.writes) {
29
- const { x, y, text, transformers } = write;
30
- const lines = text.split('\n');
31
- let offsetY = 0;
32
- for (let line of lines) {
33
- const currentLine = output[y + offsetY];
34
- // Line can be missing if `text` is taller than height of pre-initialized `this.output`
35
- if (!currentLine) {
36
- continue;
58
+ const clips = [];
59
+ for (const operation of this.operations) {
60
+ if (operation.type === 'clip') {
61
+ clips.push(operation.clip);
62
+ }
63
+ if (operation.type === 'unclip') {
64
+ clips.pop();
65
+ }
66
+ if (operation.type === 'write') {
67
+ const { text, transformers } = operation;
68
+ let { x, y } = operation;
69
+ let lines = text.split('\n');
70
+ const clip = clips[clips.length - 1];
71
+ if (clip) {
72
+ const clipHorizontally = typeof clip?.x1 === 'number' && typeof clip?.x2 === 'number';
73
+ const clipVertically = typeof clip?.y1 === 'number' && typeof clip?.y2 === 'number';
74
+ // If text is positioned outside of clipping area altogether,
75
+ // skip to the next operation to avoid unnecessary calculations
76
+ if (clipHorizontally) {
77
+ const width = widestLine(text);
78
+ if (x + width < clip.x1 || x > clip.x2) {
79
+ continue;
80
+ }
81
+ }
82
+ if (clipVertically) {
83
+ const height = lines.length;
84
+ if (y + height < clip.y1 || y > clip.y2) {
85
+ continue;
86
+ }
87
+ }
88
+ if (clipHorizontally) {
89
+ lines = lines.map(line => {
90
+ const from = x < clip.x1 ? clip.x1 - x : 0;
91
+ const width = stringWidth(line);
92
+ const to = x + width > clip.x2 ? clip.x2 - x : width;
93
+ return sliceAnsi(line, from, to);
94
+ });
95
+ if (x < clip.x1) {
96
+ x = clip.x1;
97
+ }
98
+ }
99
+ if (clipVertically) {
100
+ const from = y < clip.y1 ? clip.y1 - y : 0;
101
+ const height = lines.length;
102
+ const to = y + height > clip.y2 ? clip.y2 - y : height;
103
+ lines = lines.slice(from, to);
104
+ if (y < clip.y1) {
105
+ y = clip.y1;
106
+ }
107
+ }
37
108
  }
38
- const width = string_width_1.default(line);
39
- for (const transformer of transformers) {
40
- line = transformer(line);
109
+ let offsetY = 0;
110
+ for (let line of lines) {
111
+ const currentLine = output[y + offsetY];
112
+ // Line can be missing if `text` is taller than height of pre-initialized `this.output`
113
+ if (!currentLine) {
114
+ continue;
115
+ }
116
+ const width = stringWidth(line);
117
+ for (const transformer of transformers) {
118
+ line = transformer(line);
119
+ }
120
+ output[y + offsetY] =
121
+ sliceAnsi(currentLine, 0, x) +
122
+ line +
123
+ sliceAnsi(currentLine, x + width);
124
+ offsetY++;
41
125
  }
42
- output[y + offsetY] =
43
- slice_ansi_1.default(currentLine, 0, x) +
44
- line +
45
- slice_ansi_1.default(currentLine, x + width);
46
- offsetY++;
47
126
  }
48
127
  }
49
- // eslint-disable-next-line unicorn/prefer-trim-start-end
50
- const generatedOutput = output.map(line => line.trimRight()).join('\n');
128
+ const generatedOutput = output.map(line => line.trimEnd()).join('\n');
51
129
  return {
52
130
  output: generatedOutput,
53
131
  height: output.length
54
132
  };
55
133
  }
56
134
  }
57
- exports.default = Output;
58
135
  //# sourceMappingURL=output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":";;;;;AAAA,4DAAmC;AACnC,gEAAuC;AAwBvC,MAAqB,MAAM;IAO1B,YAAY,OAAgB;QAH5B,yGAAyG;QACxF,WAAM,GAAa,EAAE,CAAC;QAGtC,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC;QAEhC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,KAAK,CACJ,CAAS,EACT,CAAS,EACT,IAAY,EACZ,OAA4C;QAE5C,MAAM,EAAC,YAAY,EAAC,GAAG,OAAO,CAAC;QAE/B,IAAI,CAAC,IAAI,EAAE;YACV,OAAO;SACP;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG;QACF,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACpC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAChC,MAAM,EAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAC,GAAG,KAAK,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;gBACvB,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;gBAExC,uFAAuF;gBACvF,IAAI,CAAC,WAAW,EAAE;oBACjB,SAAS;iBACT;gBAED,MAAM,KAAK,GAAG,sBAAW,CAAC,IAAI,CAAC,CAAC;gBAEhC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;oBACvC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;iBACzB;gBAED,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;oBAClB,oBAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;wBAC5B,IAAI;wBACJ,oBAAS,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;gBAEnC,OAAO,EAAE,CAAC;aACV;SACD;QAED,yDAAyD;QACzD,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExE,OAAO;YACN,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;IACH,CAAC;CACD;AAxED,yBAwEC"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,UAAU,MAAM,aAAa,CAAC;AA2CrC,MAAM,CAAC,OAAO,OAAO,MAAM;IAM1B,YAAY,OAAgB;QAL5B;;;;;WAAc;QACd;;;;;WAAe;QAEf;;;;mBAA2C,EAAE;WAAC;QAG7C,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC;QAEhC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,KAAK,CACJ,CAAS,EACT,CAAS,EACT,IAAY,EACZ,OAA4C;QAE5C,MAAM,EAAC,YAAY,EAAC,GAAG,OAAO,CAAC;QAE/B,IAAI,CAAC,IAAI,EAAE;YACV,OAAO;SACP;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,OAAO;YACb,CAAC;YACD,CAAC;YACD,IAAI;YACJ,YAAY;SACZ,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAU;QACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,MAAM;YACZ,IAAI;SACJ,CAAC,CAAC;IACJ,CAAC;IAED,MAAM;QACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,QAAQ;SACd,CAAC,CAAC;IACJ,CAAC;IAED,GAAG;QACF,yGAAyG;QACzG,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACpC;QAED,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;YACxC,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;gBAC9B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC3B;YAED,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAChC,KAAK,CAAC,GAAG,EAAE,CAAC;aACZ;YAED,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC/B,MAAM,EAAC,IAAI,EAAE,YAAY,EAAC,GAAG,SAAS,CAAC;gBACvC,IAAI,EAAC,CAAC,EAAE,CAAC,EAAC,GAAG,SAAS,CAAC;gBACvB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE7B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAErC,IAAI,IAAI,EAAE;oBACT,MAAM,gBAAgB,GACrB,OAAO,IAAI,EAAE,EAAE,KAAK,QAAQ,IAAI,OAAO,IAAI,EAAE,EAAE,KAAK,QAAQ,CAAC;oBAE9D,MAAM,cAAc,GACnB,OAAO,IAAI,EAAE,EAAE,KAAK,QAAQ,IAAI,OAAO,IAAI,EAAE,EAAE,KAAK,QAAQ,CAAC;oBAE9D,6DAA6D;oBAC7D,+DAA+D;oBAC/D,IAAI,gBAAgB,EAAE;wBACrB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;wBAE/B,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,EAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAG,EAAE;4BACzC,SAAS;yBACT;qBACD;oBAED,IAAI,cAAc,EAAE;wBACnB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;wBAE5B,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,EAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAG,EAAE;4BAC1C,SAAS;yBACT;qBACD;oBAED,IAAI,gBAAgB,EAAE;wBACrB,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;4BACxB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;4BAChC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;4BAEvD,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;wBAClC,CAAC,CAAC,CAAC;wBAEH,IAAI,CAAC,GAAG,IAAI,CAAC,EAAG,EAAE;4BACjB,CAAC,GAAG,IAAI,CAAC,EAAG,CAAC;yBACb;qBACD;oBAED,IAAI,cAAc,EAAE;wBACnB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;wBAC5B,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;wBAEzD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAE9B,IAAI,CAAC,GAAG,IAAI,CAAC,EAAG,EAAE;4BACjB,CAAC,GAAG,IAAI,CAAC,EAAG,CAAC;yBACb;qBACD;iBACD;gBAED,IAAI,OAAO,GAAG,CAAC,CAAC;gBAEhB,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;oBACvB,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;oBAExC,uFAAuF;oBACvF,IAAI,CAAC,WAAW,EAAE;wBACjB,SAAS;qBACT;oBAED,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;oBAEhC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;wBACvC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;qBACzB;oBAED,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;wBAClB,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;4BAC5B,IAAI;4BACJ,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBAEnC,OAAO,EAAE,CAAC;iBACV;aACD;SACD;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtE,OAAO;YACN,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;IACH,CAAC;CACD"}
@@ -1,4 +1,4 @@
1
1
  import createReconciler from 'react-reconciler';
2
- import { TextNode, DOMElement } from './dom';
2
+ import { type TextNode, type DOMElement } from './dom.js';
3
3
  declare const _default: createReconciler.Reconciler<DOMElement, DOMElement, TextNode, DOMElement, unknown>;
4
4
  export default _default;
@@ -1,36 +1,46 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const scheduler_1 = require("scheduler");
7
- const react_reconciler_1 = __importDefault(require("react-reconciler"));
8
- const yoga_layout_prebuilt_1 = __importDefault(require("yoga-layout-prebuilt"));
9
- const dom_1 = require("./dom");
1
+ import process from 'node:process';
2
+ import createReconciler from 'react-reconciler';
3
+ import { DefaultEventPriority } from 'react-reconciler/constants.js';
4
+ // eslint-disable-next-line n/file-extension-in-import
5
+ import Yoga from 'yoga-wasm-web/auto';
6
+ import { createTextNode, appendChildNode, insertBeforeNode, removeChildNode, setStyle, setTextNodeValue, createNode, setAttribute } from './dom.js';
10
7
  // We need to conditionally perform devtools connection to avoid
11
8
  // accidentally breaking other third-party code.
12
9
  // See https://github.com/vadimdemedes/ink/issues/384
13
- if (process.env.DEV === 'true') {
14
- // eslint-disable-next-line import/no-unassigned-import
15
- require('./devtools');
10
+ if (process.env['DEV'] === 'true') {
11
+ try {
12
+ await import('./devtools.js');
13
+ // eslint-disable-next-line @typescript-eslint/no-implicit-any-catch
14
+ }
15
+ catch (error) {
16
+ if (error.code === 'MODULE_NOT_FOUND') {
17
+ console.warn(`
18
+ Debugging with React Devtools requires \`react-devtools-core\` dependency to be installed.
19
+
20
+ $ npm install --save-dev react-devtools-core
21
+ `.trim() + '\n');
22
+ }
23
+ else {
24
+ // eslint-disable-next-line @typescript-eslint/no-throw-literal
25
+ throw error;
26
+ }
27
+ }
16
28
  }
17
29
  const cleanupYogaNode = (node) => {
18
- node === null || node === void 0 ? void 0 : node.unsetMeasureFunc();
19
- node === null || node === void 0 ? void 0 : node.freeRecursive();
30
+ node?.unsetMeasureFunc();
31
+ node?.freeRecursive();
20
32
  };
21
- exports.default = react_reconciler_1.default({
22
- // @ts-ignore
23
- schedulePassiveEffects: scheduler_1.unstable_scheduleCallback,
24
- cancelPassiveEffects: scheduler_1.unstable_cancelCallback,
25
- now: Date.now,
33
+ export default createReconciler({
26
34
  getRootHostContext: () => ({
27
35
  isInsideText: false
28
36
  }),
29
37
  prepareForCommit: () => null,
30
38
  preparePortalMount: () => null,
31
39
  clearContainer: () => false,
32
- shouldDeprioritizeSubtree: () => false,
33
- resetAfterCommit: rootNode => {
40
+ resetAfterCommit(rootNode) {
41
+ if (typeof rootNode.onComputeLayout === 'function') {
42
+ rootNode.onComputeLayout();
43
+ }
34
44
  // Since renders are throttled at the instance level and <Static> component children
35
45
  // are rendered only once and then get deleted, we need an escape hatch to
36
46
  // trigger an immediate render to ensure <Static> children are written to output before they get erased
@@ -45,7 +55,7 @@ exports.default = react_reconciler_1.default({
45
55
  rootNode.onRender();
46
56
  }
47
57
  },
48
- getChildHostContext: (parentHostContext, type) => {
58
+ getChildHostContext(parentHostContext, type) {
49
59
  const previousIsInsideText = parentHostContext.isInsideText;
50
60
  const isInsideText = type === 'ink-text' || type === 'ink-virtual-text';
51
61
  if (previousIsInsideText === isInsideText) {
@@ -54,59 +64,58 @@ exports.default = react_reconciler_1.default({
54
64
  return { isInsideText };
55
65
  },
56
66
  shouldSetTextContent: () => false,
57
- createInstance: (originalType, newProps, _root, hostContext) => {
67
+ createInstance(originalType, newProps, _root, hostContext) {
58
68
  if (hostContext.isInsideText && originalType === 'ink-box') {
59
69
  throw new Error(`<Box> can’t be nested inside <Text> component`);
60
70
  }
61
71
  const type = originalType === 'ink-text' && hostContext.isInsideText
62
72
  ? 'ink-virtual-text'
63
73
  : originalType;
64
- const node = dom_1.createNode(type);
74
+ const node = createNode(type);
65
75
  for (const [key, value] of Object.entries(newProps)) {
66
76
  if (key === 'children') {
67
77
  continue;
68
78
  }
69
- else if (key === 'style') {
70
- dom_1.setStyle(node, value);
79
+ if (key === 'style') {
80
+ setStyle(node, value);
81
+ continue;
71
82
  }
72
- else if (key === 'internal_transform') {
83
+ if (key === 'internal_transform') {
73
84
  node.internal_transform = value;
85
+ continue;
74
86
  }
75
- else if (key === 'internal_static') {
87
+ if (key === 'internal_static') {
76
88
  node.internal_static = true;
89
+ continue;
77
90
  }
78
- else {
79
- dom_1.setAttribute(node, key, value);
80
- }
91
+ setAttribute(node, key, value);
81
92
  }
82
93
  return node;
83
94
  },
84
- createTextInstance: (text, _root, hostContext) => {
95
+ createTextInstance(text, _root, hostContext) {
85
96
  if (!hostContext.isInsideText) {
86
97
  throw new Error(`Text string "${text}" must be rendered inside <Text> component`);
87
98
  }
88
- return dom_1.createTextNode(text);
99
+ return createTextNode(text);
89
100
  },
90
- resetTextContent: () => { },
91
- hideTextInstance: node => {
92
- dom_1.setTextNodeValue(node, '');
101
+ resetTextContent() { },
102
+ hideTextInstance(node) {
103
+ setTextNodeValue(node, '');
93
104
  },
94
- unhideTextInstance: (node, text) => {
95
- dom_1.setTextNodeValue(node, text);
105
+ unhideTextInstance(node, text) {
106
+ setTextNodeValue(node, text);
96
107
  },
97
108
  getPublicInstance: instance => instance,
98
- hideInstance: node => {
99
- var _a;
100
- (_a = node.yogaNode) === null || _a === void 0 ? void 0 : _a.setDisplay(yoga_layout_prebuilt_1.default.DISPLAY_NONE);
109
+ hideInstance(node) {
110
+ node.yogaNode?.setDisplay(Yoga.DISPLAY_NONE);
101
111
  },
102
- unhideInstance: node => {
103
- var _a;
104
- (_a = node.yogaNode) === null || _a === void 0 ? void 0 : _a.setDisplay(yoga_layout_prebuilt_1.default.DISPLAY_FLEX);
112
+ unhideInstance(node) {
113
+ node.yogaNode?.setDisplay(Yoga.DISPLAY_FLEX);
105
114
  },
106
- appendInitialChild: dom_1.appendChildNode,
107
- appendChild: dom_1.appendChildNode,
108
- insertBefore: dom_1.insertBeforeNode,
109
- finalizeInitialChildren: (node, _type, _props, rootNode) => {
115
+ appendInitialChild: appendChildNode,
116
+ appendChild: appendChildNode,
117
+ insertBefore: insertBeforeNode,
118
+ finalizeInitialChildren(node, _type, _props, rootNode) {
110
119
  if (node.internal_static) {
111
120
  rootNode.isStaticDirty = true;
112
121
  // Save reference to <Static> node to skip traversal of entire
@@ -115,14 +124,27 @@ exports.default = react_reconciler_1.default({
115
124
  }
116
125
  return false;
117
126
  },
127
+ isPrimaryRenderer: true,
118
128
  supportsMutation: true,
119
- appendChildToContainer: dom_1.appendChildNode,
120
- insertInContainerBefore: dom_1.insertBeforeNode,
121
- removeChildFromContainer: (node, removeNode) => {
122
- dom_1.removeChildNode(node, removeNode);
129
+ supportsPersistence: false,
130
+ supportsHydration: false,
131
+ scheduleTimeout: setTimeout,
132
+ cancelTimeout: clearTimeout,
133
+ noTimeout: -1,
134
+ getCurrentEventPriority: () => DefaultEventPriority,
135
+ beforeActiveInstanceBlur() { },
136
+ afterActiveInstanceBlur() { },
137
+ detachDeletedInstance() { },
138
+ getInstanceFromNode: () => null,
139
+ prepareScopeUpdate() { },
140
+ getInstanceFromScope: () => null,
141
+ appendChildToContainer: appendChildNode,
142
+ insertInContainerBefore: insertBeforeNode,
143
+ removeChildFromContainer(node, removeNode) {
144
+ removeChildNode(node, removeNode);
123
145
  cleanupYogaNode(removeNode.yogaNode);
124
146
  },
125
- prepareUpdate: (node, _type, oldProps, newProps, rootNode) => {
147
+ prepareUpdate(node, _type, oldProps, newProps, rootNode) {
126
148
  if (node.internal_static) {
127
149
  rootNode.isStaticDirty = true;
128
150
  }
@@ -131,32 +153,37 @@ exports.default = react_reconciler_1.default({
131
153
  for (const key of keys) {
132
154
  if (newProps[key] !== oldProps[key]) {
133
155
  const isStyle = key === 'style' &&
134
- typeof newProps.style === 'object' &&
135
- typeof oldProps.style === 'object';
156
+ typeof newProps['style'] === 'object' &&
157
+ typeof oldProps['style'] === 'object';
136
158
  if (isStyle) {
137
- const newStyle = newProps.style;
138
- const oldStyle = oldProps.style;
159
+ const newStyle = newProps['style'];
160
+ const oldStyle = oldProps['style'];
139
161
  const styleKeys = Object.keys(newStyle);
140
162
  for (const styleKey of styleKeys) {
141
163
  // Always include `borderColor` and `borderStyle` to ensure border is rendered,
164
+ // and `overflowX` and `overflowY` to ensure content is clipped,
142
165
  // otherwise resulting `updatePayload` may not contain them
143
166
  // if they weren't changed during this update
144
167
  if (styleKey === 'borderStyle' || styleKey === 'borderColor') {
145
- if (typeof updatePayload.style !== 'object') {
168
+ if (typeof updatePayload['style'] !== 'object') {
146
169
  // Linter didn't like `= {} as Style`
147
170
  const style = {};
148
- updatePayload.style = style;
171
+ updatePayload['style'] = style;
149
172
  }
150
- updatePayload.style.borderStyle = newStyle.borderStyle;
151
- updatePayload.style.borderColor = newStyle.borderColor;
173
+ updatePayload['style'].borderStyle =
174
+ newStyle.borderStyle;
175
+ updatePayload['style'].borderColor =
176
+ newStyle.borderColor;
177
+ updatePayload['style'].overflowX = newStyle.overflowX;
178
+ updatePayload['style'].overflowY = newStyle.overflowY;
152
179
  }
153
180
  if (newStyle[styleKey] !== oldStyle[styleKey]) {
154
- if (typeof updatePayload.style !== 'object') {
181
+ if (typeof updatePayload['style'] !== 'object') {
155
182
  // Linter didn't like `= {} as Style`
156
183
  const style = {};
157
- updatePayload.style = style;
184
+ updatePayload['style'] = style;
158
185
  }
159
- updatePayload.style[styleKey] = newStyle[styleKey];
186
+ updatePayload['style'][styleKey] = newStyle[styleKey];
160
187
  }
161
188
  }
162
189
  continue;
@@ -166,30 +193,31 @@ exports.default = react_reconciler_1.default({
166
193
  }
167
194
  return updatePayload;
168
195
  },
169
- commitUpdate: (node, updatePayload) => {
196
+ commitUpdate(node, updatePayload) {
170
197
  for (const [key, value] of Object.entries(updatePayload)) {
171
198
  if (key === 'children') {
172
199
  continue;
173
200
  }
174
- else if (key === 'style') {
175
- dom_1.setStyle(node, value);
201
+ if (key === 'style') {
202
+ setStyle(node, value);
203
+ continue;
176
204
  }
177
- else if (key === 'internal_transform') {
205
+ if (key === 'internal_transform') {
178
206
  node.internal_transform = value;
207
+ continue;
179
208
  }
180
- else if (key === 'internal_static') {
209
+ if (key === 'internal_static') {
181
210
  node.internal_static = true;
211
+ continue;
182
212
  }
183
- else {
184
- dom_1.setAttribute(node, key, value);
185
- }
213
+ setAttribute(node, key, value);
186
214
  }
187
215
  },
188
- commitTextUpdate: (node, _oldText, newText) => {
189
- dom_1.setTextNodeValue(node, newText);
216
+ commitTextUpdate(node, _oldText, newText) {
217
+ setTextNodeValue(node, newText);
190
218
  },
191
- removeChild: (node, removeNode) => {
192
- dom_1.removeChildNode(node, removeNode);
219
+ removeChild(node, removeNode) {
220
+ removeChildNode(node, removeNode);
193
221
  cleanupYogaNode(removeNode.yogaNode);
194
222
  }
195
223
  });
@@ -1 +1 @@
1
- {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DOMNode } from './dom';
2
- import Output from './output';
3
- declare const _default: (x: number, y: number, node: DOMNode, output: Output) => void;
4
- export default _default;
1
+ import { type DOMNode } from './dom.js';
2
+ import type Output from './output.js';
3
+ declare const renderBorder: (x: number, y: number, node: DOMNode, output: Output) => void;
4
+ export default renderBorder;
@@ -1,23 +1,19 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const cli_boxes_1 = __importDefault(require("cli-boxes"));
7
- const colorize_1 = __importDefault(require("./colorize"));
8
- exports.default = (x, y, node, output) => {
1
+ import cliBoxes from 'cli-boxes';
2
+ import colorize from './colorize.js';
3
+ const renderBorder = (x, y, node, output) => {
9
4
  if (typeof node.style.borderStyle === 'string') {
10
5
  const width = node.yogaNode.getComputedWidth();
11
6
  const height = node.yogaNode.getComputedHeight();
12
7
  const color = node.style.borderColor;
13
- const box = cli_boxes_1.default[node.style.borderStyle];
14
- const topBorder = colorize_1.default(box.topLeft + box.horizontal.repeat(width - 2) + box.topRight, color, 'foreground');
15
- const verticalBorder = (colorize_1.default(box.vertical, color, 'foreground') + '\n').repeat(height - 2);
16
- const bottomBorder = colorize_1.default(box.bottomLeft + box.horizontal.repeat(width - 2) + box.bottomRight, color, 'foreground');
8
+ const box = cliBoxes[node.style.borderStyle];
9
+ const topBorder = colorize(box.topLeft + box.top.repeat(width - 2) + box.topRight, color, 'foreground');
10
+ const verticalBorder = (colorize(box.left, color, 'foreground') + '\n').repeat(height - 2);
11
+ const bottomBorder = colorize(box.bottomLeft + box.bottom.repeat(width - 2) + box.bottomRight, color, 'foreground');
17
12
  output.write(x, y, topBorder, { transformers: [] });
18
13
  output.write(x, y + 1, verticalBorder, { transformers: [] });
19
14
  output.write(x + width - 1, y + 1, verticalBorder, { transformers: [] });
20
15
  output.write(x, y + height - 1, bottomBorder, { transformers: [] });
21
16
  }
22
17
  };
18
+ export default renderBorder;
23
19
  //# sourceMappingURL=render-border.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-border.js","sourceRoot":"","sources":["../src/render-border.ts"],"names":[],"mappings":";;;;;AAAA,0DAAiC;AACjC,0DAAkC;AAIlC,kBAAe,CAAC,CAAS,EAAE,CAAS,EAAE,IAAa,EAAE,MAAc,EAAQ,EAAE;IAC5E,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAS,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAS,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACrC,MAAM,GAAG,GAAG,mBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE7C,MAAM,SAAS,GAAG,kBAAQ,CACzB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,EAC7D,KAAK,EACL,YAAY,CACZ,CAAC;QAEF,MAAM,cAAc,GAAG,CACtB,kBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,GAAG,IAAI,CAClD,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAErB,MAAM,YAAY,GAAG,kBAAQ,CAC5B,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,EACnE,KAAK,EACL,YAAY,CACZ,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAC,YAAY,EAAE,EAAE,EAAC,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,EAAC,YAAY,EAAE,EAAE,EAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,EAAC,YAAY,EAAE,EAAE,EAAC,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,YAAY,EAAE,EAAC,YAAY,EAAE,EAAE,EAAC,CAAC,CAAC;KAClE;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"render-border.js","sourceRoot":"","sources":["../src/render-border.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,QAAQ,MAAM,eAAe,CAAC;AAIrC,MAAM,YAAY,GAAG,CACpB,CAAS,EACT,CAAS,EACT,IAAa,EACb,MAAc,EACP,EAAE;IACT,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAS,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAS,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE7C,MAAM,SAAS,GAAG,QAAQ,CACzB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,EACtD,KAAK,EACL,YAAY,CACZ,CAAC;QAEF,MAAM,cAAc,GAAG,CACtB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,GAAG,IAAI,CAC9C,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAErB,MAAM,YAAY,GAAG,QAAQ,CAC5B,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,WAAW,EAC/D,KAAK,EACL,YAAY,CACZ,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAC,YAAY,EAAE,EAAE,EAAC,CAAC,CAAC;QAClD,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,EAAC,YAAY,EAAE,EAAE,EAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,EAAC,YAAY,EAAE,EAAE,EAAC,CAAC,CAAC;QACvE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,YAAY,EAAE,EAAC,YAAY,EAAE,EAAE,EAAC,CAAC,CAAC;KAClE;AACF,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,6 +1,6 @@
1
- import { DOMElement } from './dom';
2
- import Output from './output';
3
- export declare type OutputTransformer = (s: string) => string;
1
+ import { type DOMElement } from './dom.js';
2
+ import type Output from './output.js';
3
+ export type OutputTransformer = (s: string) => string;
4
4
  declare const renderNodeToOutput: (node: DOMElement, output: Output, options: {
5
5
  offsetX?: number;
6
6
  offsetY?: number;