ink 6.7.0 → 7.0.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.
- package/build/ansi-tokenizer.d.ts +38 -0
- package/build/ansi-tokenizer.js +316 -0
- package/build/ansi-tokenizer.js.map +1 -0
- package/build/components/AnimationContext.d.ts +9 -0
- package/build/components/AnimationContext.js +13 -0
- package/build/components/AnimationContext.js.map +1 -0
- package/build/components/App.d.ts +5 -2
- package/build/components/App.js +192 -41
- package/build/components/App.js.map +1 -1
- package/build/components/AppContext.d.ts +33 -3
- package/build/components/AppContext.js +2 -1
- package/build/components/AppContext.js.map +1 -1
- package/build/components/Box.d.ts +16 -3
- package/build/components/ErrorBoundary.d.ts +2 -2
- package/build/components/ErrorOverview.js +6 -6
- package/build/components/ErrorOverview.js.map +1 -1
- package/build/components/Static.js.map +1 -1
- package/build/components/StdinContext.d.ts +7 -1
- package/build/components/StdinContext.js +1 -0
- package/build/components/StdinContext.js.map +1 -1
- package/build/components/Text.d.ts +1 -1
- package/build/components/Text.js +1 -1
- package/build/components/Text.js.map +1 -1
- package/build/components/Transform.d.ts +1 -1
- package/build/devtools-window-polyfill.js +7 -4
- package/build/devtools-window-polyfill.js.map +1 -1
- package/build/devtools.js +31 -6
- package/build/devtools.js.map +1 -1
- package/build/dom.d.ts +5 -1
- package/build/dom.js +25 -5
- package/build/dom.js.map +1 -1
- package/build/hooks/use-animation.d.ts +49 -0
- package/build/hooks/use-animation.js +87 -0
- package/build/hooks/use-animation.js.map +1 -0
- package/build/hooks/use-app.d.ts +5 -2
- package/build/hooks/use-app.js +1 -1
- package/build/hooks/use-box-metrics.d.ts +59 -0
- package/build/hooks/use-box-metrics.js +88 -0
- package/build/hooks/use-box-metrics.js.map +1 -0
- package/build/hooks/use-cursor.d.ts +1 -1
- package/build/hooks/use-cursor.js +1 -1
- package/build/hooks/use-focus-manager.d.ts +17 -2
- package/build/hooks/use-focus-manager.js +2 -1
- package/build/hooks/use-focus-manager.js.map +1 -1
- package/build/hooks/use-focus.d.ts +2 -1
- package/build/hooks/use-focus.js +5 -4
- package/build/hooks/use-focus.js.map +1 -1
- package/build/hooks/use-input.d.ts +2 -1
- package/build/hooks/use-input.js +82 -80
- package/build/hooks/use-input.js.map +1 -1
- package/build/hooks/use-is-screen-reader-enabled.d.ts +2 -1
- package/build/hooks/use-is-screen-reader-enabled.js +2 -1
- package/build/hooks/use-is-screen-reader-enabled.js.map +1 -1
- package/build/hooks/use-paste.d.ts +35 -0
- package/build/hooks/use-paste.js +62 -0
- package/build/hooks/use-paste.js.map +1 -0
- package/build/hooks/use-stderr.d.ts +1 -1
- package/build/hooks/use-stderr.js +1 -1
- package/build/hooks/use-stdin.d.ts +4 -2
- package/build/hooks/use-stdin.js +2 -1
- package/build/hooks/use-stdin.js.map +1 -1
- package/build/hooks/use-stdout.d.ts +1 -1
- package/build/hooks/use-stdout.js +1 -1
- package/build/hooks/use-window-size.d.ts +18 -0
- package/build/hooks/use-window-size.js +22 -0
- package/build/hooks/use-window-size.js.map +1 -0
- package/build/index.d.ts +10 -1
- package/build/index.js +5 -0
- package/build/index.js.map +1 -1
- package/build/ink.d.ts +55 -6
- package/build/ink.js +433 -162
- package/build/ink.js.map +1 -1
- package/build/input-parser.d.ts +10 -0
- package/build/input-parser.js +194 -0
- package/build/input-parser.js.map +1 -0
- package/build/log-update.d.ts +1 -0
- package/build/log-update.js +13 -1
- package/build/log-update.js.map +1 -1
- package/build/measure-element.d.ts +4 -0
- package/build/measure-element.js +4 -0
- package/build/measure-element.js.map +1 -1
- package/build/output.d.ts +1 -0
- package/build/output.js +63 -5
- package/build/output.js.map +1 -1
- package/build/parse-keypress.d.ts +1 -3
- package/build/parse-keypress.js +19 -17
- package/build/parse-keypress.js.map +1 -1
- package/build/reconciler.js +48 -19
- package/build/reconciler.js.map +1 -1
- package/build/render-border.js +29 -18
- package/build/render-border.js.map +1 -1
- package/build/render-to-string.d.ts +38 -0
- package/build/render-to-string.js +116 -0
- package/build/render-to-string.js.map +1 -0
- package/build/render.d.ts +69 -3
- package/build/render.js +18 -11
- package/build/render.js.map +1 -1
- package/build/sanitize-ansi.d.ts +2 -0
- package/build/sanitize-ansi.js +27 -0
- package/build/sanitize-ansi.js.map +1 -0
- package/build/squash-text-nodes.js +2 -1
- package/build/squash-text-nodes.js.map +1 -1
- package/build/styles.d.ts +78 -16
- package/build/styles.js +102 -31
- package/build/styles.js.map +1 -1
- package/build/utils.d.ts +9 -0
- package/build/utils.js +19 -0
- package/build/utils.js.map +1 -0
- package/build/wrap-text.js +7 -0
- package/build/wrap-text.js.map +1 -1
- package/build/write-synchronized.d.ts +1 -1
- package/build/write-synchronized.js +4 -2
- package/build/write-synchronized.js.map +1 -1
- package/package.json +40 -101
- package/readme.md +674 -56
- package/build/apply-styles.js +0 -175
- package/build/build-layout.js +0 -77
- package/build/calculate-wrapped-text.js +0 -53
- package/build/components/Color.js +0 -62
- package/build/experimental/apply-style.js +0 -140
- package/build/experimental/dom.js +0 -123
- package/build/experimental/output.js +0 -91
- package/build/experimental/reconciler.js +0 -141
- package/build/experimental/renderer.js +0 -81
- package/build/hooks/useInput.js +0 -38
- package/build/instance.js +0 -205
- package/build/options.d.ts +0 -52
- package/build/options.js +0 -2
- package/build/options.js.map +0 -1
- package/build/screen-reader-update.d.ts +0 -13
- package/build/screen-reader-update.js +0 -38
- package/build/screen-reader-update.js.map +0 -1
package/build/parse-keypress.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copied from https://github.com/enquirer/enquirer/blob/36785f3399a41cd61e9d28d1eb9c2fcd73d69b4c/lib/keypress.js
|
|
2
|
-
import { Buffer } from 'node:buffer';
|
|
3
2
|
import { kittyModifiers } from './kitty-keyboard.js';
|
|
3
|
+
const textDecoder = new TextDecoder();
|
|
4
4
|
const metaKeyCodeRe = /^(?:\x1b)([a-zA-Z0-9])$/;
|
|
5
5
|
const fnKeyRe = /^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/;
|
|
6
6
|
const keyName = {
|
|
@@ -9,6 +9,11 @@ const keyName = {
|
|
|
9
9
|
OQ: 'f2',
|
|
10
10
|
OR: 'f3',
|
|
11
11
|
OS: 'f4',
|
|
12
|
+
/* vt220-style ESC [ letter (e.g. Ctrl+F1 sends ESC [ 1 ; 5 P) */
|
|
13
|
+
'[P': 'f1',
|
|
14
|
+
'[Q': 'f2',
|
|
15
|
+
'[R': 'f3',
|
|
16
|
+
'[S': 'f4',
|
|
12
17
|
/* xterm/rxvt ESC [ number ~ */
|
|
13
18
|
'[11~': 'f1',
|
|
14
19
|
'[12~': 'f2',
|
|
@@ -163,7 +168,7 @@ const kittyCodepointNames = {
|
|
|
163
168
|
// 13 (return) and 32 (space) are handled before this lookup
|
|
164
169
|
// in parseKittyKeypress so they can be marked as printable.
|
|
165
170
|
9: 'tab',
|
|
166
|
-
127: '
|
|
171
|
+
127: 'backspace',
|
|
167
172
|
8: 'backspace',
|
|
168
173
|
57358: 'capslock',
|
|
169
174
|
57359: 'scrolllock',
|
|
@@ -265,8 +270,7 @@ function parseKittyModifiers(modifiers) {
|
|
|
265
270
|
return {
|
|
266
271
|
ctrl: !!(modifiers & kittyModifiers.ctrl),
|
|
267
272
|
shift: !!(modifiers & kittyModifiers.shift),
|
|
268
|
-
meta: !!(modifiers & kittyModifiers.meta),
|
|
269
|
-
option: !!(modifiers & kittyModifiers.alt),
|
|
273
|
+
meta: !!(modifiers & (kittyModifiers.meta | kittyModifiers.alt)),
|
|
270
274
|
super: !!(modifiers & kittyModifiers.super),
|
|
271
275
|
hyper: !!(modifiers & kittyModifiers.hyper),
|
|
272
276
|
capsLock: !!(modifiers & kittyModifiers.capsLock),
|
|
@@ -361,13 +365,13 @@ const parseKittySpecialKey = (s) => {
|
|
|
361
365
|
};
|
|
362
366
|
const parseKeypress = (s = '') => {
|
|
363
367
|
let parts;
|
|
364
|
-
if (
|
|
368
|
+
if (s instanceof Uint8Array) {
|
|
365
369
|
if (s[0] > 127 && s[1] === undefined) {
|
|
366
370
|
s[0] -= 128;
|
|
367
|
-
s = '\x1b' +
|
|
371
|
+
s = '\x1b' + textDecoder.decode(s);
|
|
368
372
|
}
|
|
369
373
|
else {
|
|
370
|
-
s =
|
|
374
|
+
s = textDecoder.decode(s);
|
|
371
375
|
}
|
|
372
376
|
}
|
|
373
377
|
else if (s !== undefined && typeof s !== 'string') {
|
|
@@ -392,7 +396,6 @@ const parseKeypress = (s = '') => {
|
|
|
392
396
|
ctrl: false,
|
|
393
397
|
meta: false,
|
|
394
398
|
shift: false,
|
|
395
|
-
option: false,
|
|
396
399
|
sequence: s,
|
|
397
400
|
raw: s,
|
|
398
401
|
isKittyProtocol: true,
|
|
@@ -404,16 +407,15 @@ const parseKeypress = (s = '') => {
|
|
|
404
407
|
ctrl: false,
|
|
405
408
|
meta: false,
|
|
406
409
|
shift: false,
|
|
407
|
-
option: false,
|
|
408
410
|
sequence: s,
|
|
409
411
|
raw: s,
|
|
410
412
|
};
|
|
411
413
|
key.sequence = key.sequence || s || key.name;
|
|
412
414
|
if (s === '\r' || s === '\x1b\r') {
|
|
413
|
-
// carriage return (or
|
|
415
|
+
// carriage return (or meta+return on macOS)
|
|
414
416
|
key.raw = undefined;
|
|
415
417
|
key.name = 'return';
|
|
416
|
-
key.
|
|
418
|
+
key.meta = s.length === 2;
|
|
417
419
|
}
|
|
418
420
|
else if (s === '\n') {
|
|
419
421
|
// enter, should have been called linefeed
|
|
@@ -429,9 +431,8 @@ const parseKeypress = (s = '') => {
|
|
|
429
431
|
key.meta = s.charAt(0) === '\x1b';
|
|
430
432
|
}
|
|
431
433
|
else if (s === '\x7f' || s === '\x1b\x7f') {
|
|
432
|
-
//
|
|
433
|
-
|
|
434
|
-
key.name = 'delete';
|
|
434
|
+
// backspace
|
|
435
|
+
key.name = 'backspace';
|
|
435
436
|
key.meta = s.charAt(0) === '\x1b';
|
|
436
437
|
}
|
|
437
438
|
else if (s === '\x1b' || s === '\x1b\x1b') {
|
|
@@ -463,13 +464,14 @@ const parseKeypress = (s = '') => {
|
|
|
463
464
|
}
|
|
464
465
|
else if ((parts = metaKeyCodeRe.exec(s))) {
|
|
465
466
|
// meta+character key
|
|
467
|
+
key.name = parts[1].toLowerCase();
|
|
466
468
|
key.meta = true;
|
|
467
469
|
key.shift = /^[A-Z]$/.test(parts[1]);
|
|
468
470
|
}
|
|
469
471
|
else if ((parts = fnKeyRe.exec(s))) {
|
|
470
472
|
const segs = [...s];
|
|
471
473
|
if (segs[0] === '\u001b' && segs[1] === '\u001b') {
|
|
472
|
-
key.
|
|
474
|
+
key.meta = true;
|
|
473
475
|
}
|
|
474
476
|
// ansi escape sequence
|
|
475
477
|
// reassemble the key code leaving out leading \x1b's,
|
|
@@ -480,10 +482,10 @@ const parseKeypress = (s = '') => {
|
|
|
480
482
|
const modifier = (parts[3] || parts[5] || 1) - 1;
|
|
481
483
|
// Parse the key modifier
|
|
482
484
|
key.ctrl = !!(modifier & 4);
|
|
483
|
-
key.meta = !!(modifier & 10);
|
|
485
|
+
key.meta = key.meta || !!(modifier & 10);
|
|
484
486
|
key.shift = !!(modifier & 1);
|
|
485
487
|
key.code = code;
|
|
486
|
-
key.name = keyName[code];
|
|
488
|
+
key.name = keyName[code] ?? '';
|
|
487
489
|
key.shift = isShiftKey(code) || key.shift;
|
|
488
490
|
key.ctrl = isCtrlKey(code) || key.ctrl;
|
|
489
491
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-keypress.js","sourceRoot":"","sources":["../src/parse-keypress.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-keypress.js","sourceRoot":"","sources":["../src/parse-keypress.ts"],"names":[],"mappings":"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"}
|
package/build/reconciler.js
CHANGED
|
@@ -3,31 +3,24 @@ import createReconciler from 'react-reconciler';
|
|
|
3
3
|
import { DefaultEventPriority, NoEventPriority, } from 'react-reconciler/constants.js';
|
|
4
4
|
import * as Scheduler from 'scheduler';
|
|
5
5
|
import Yoga from 'yoga-layout';
|
|
6
|
-
import { createContext } from 'react';
|
|
7
|
-
import { createTextNode, appendChildNode, insertBeforeNode, removeChildNode, setStyle, setTextNodeValue, createNode, setAttribute, } from './dom.js';
|
|
6
|
+
import { createContext, version as reactVersion } from 'react';
|
|
7
|
+
import { createTextNode, appendChildNode, insertBeforeNode, removeChildNode, emitLayoutListeners, setStyle, setTextNodeValue, createNode, setAttribute, } from './dom.js';
|
|
8
8
|
import applyStyles from './styles.js';
|
|
9
9
|
// We need to conditionally perform devtools connection to avoid
|
|
10
10
|
// accidentally breaking other third-party code.
|
|
11
11
|
// See https://github.com/vadimdemedes/ink/issues/384
|
|
12
|
+
// See https://github.com/vadimdemedes/ink/issues/648
|
|
12
13
|
if (process.env['DEV'] === 'true') {
|
|
14
|
+
// Intentionally no warning when the package is missing.
|
|
15
|
+
// DEV may be set for other reasons; devtools is opt-in via installing the package.
|
|
16
|
+
let isDevtoolsInstalled = false;
|
|
13
17
|
try {
|
|
14
|
-
|
|
18
|
+
import.meta.resolve('react-devtools-core');
|
|
19
|
+
isDevtoolsInstalled = true;
|
|
15
20
|
}
|
|
16
|
-
catch
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
The environment variable DEV is set to true, so Ink tried to import \`react-devtools-core\`,
|
|
20
|
-
but this failed as it was not installed. Debugging with React Devtools requires it.
|
|
21
|
-
|
|
22
|
-
To install use this command:
|
|
23
|
-
|
|
24
|
-
$ npm install --save-dev react-devtools-core
|
|
25
|
-
`.trim() + '\n');
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
// eslint-disable-next-line @typescript-eslint/only-throw-error
|
|
29
|
-
throw error;
|
|
30
|
-
}
|
|
21
|
+
catch { }
|
|
22
|
+
if (isDevtoolsInstalled) {
|
|
23
|
+
await import('./devtools.js');
|
|
31
24
|
}
|
|
32
25
|
}
|
|
33
26
|
const diff = (before, after) => {
|
|
@@ -62,6 +55,33 @@ const cleanupYogaNode = (node) => {
|
|
|
62
55
|
};
|
|
63
56
|
let currentUpdatePriority = NoEventPriority;
|
|
64
57
|
let currentRootNode;
|
|
58
|
+
async function loadPackageJson() {
|
|
59
|
+
const fs = await import('node:fs');
|
|
60
|
+
const content = fs.readFileSync(new URL('../package.json', import.meta.url), 'utf8');
|
|
61
|
+
const parsedContent = JSON.parse(content);
|
|
62
|
+
return {
|
|
63
|
+
name: parsedContent?.name,
|
|
64
|
+
version: parsedContent?.version,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
let packageInfo = {
|
|
68
|
+
name: 'ink',
|
|
69
|
+
version: reactVersion,
|
|
70
|
+
};
|
|
71
|
+
if (process.env['DEV'] === 'true') {
|
|
72
|
+
try {
|
|
73
|
+
const loaded = await loadPackageJson();
|
|
74
|
+
packageInfo = {
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
76
|
+
name: loaded.name || packageInfo.name,
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
78
|
+
version: loaded.version || packageInfo.version,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
console.warn('Failed to load package.json in development mode. Falling back to default renderer metadata.', error);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
65
85
|
export default createReconciler({
|
|
66
86
|
getRootHostContext: () => ({
|
|
67
87
|
isInsideText: false,
|
|
@@ -73,6 +93,7 @@ export default createReconciler({
|
|
|
73
93
|
if (typeof rootNode.onComputeLayout === 'function') {
|
|
74
94
|
rootNode.onComputeLayout();
|
|
75
95
|
}
|
|
96
|
+
emitLayoutListeners(rootNode);
|
|
76
97
|
// Since renders are throttled at the instance level and <Static> component children
|
|
77
98
|
// are rendered only once and then get deleted, we need an escape hatch to
|
|
78
99
|
// trigger an immediate render to ensure <Static> children are written to output before they get erased
|
|
@@ -184,6 +205,9 @@ export default createReconciler({
|
|
|
184
205
|
removeChildFromContainer(node, removeNode) {
|
|
185
206
|
removeChildNode(node, removeNode);
|
|
186
207
|
cleanupYogaNode(removeNode.yogaNode);
|
|
208
|
+
if (removeNode.internal_static && currentRootNode) {
|
|
209
|
+
currentRootNode.staticNode = undefined;
|
|
210
|
+
}
|
|
187
211
|
},
|
|
188
212
|
commitUpdate(node, _type, oldProps, newProps) {
|
|
189
213
|
if (currentRootNode && node.internal_static) {
|
|
@@ -212,7 +236,7 @@ export default createReconciler({
|
|
|
212
236
|
}
|
|
213
237
|
}
|
|
214
238
|
if (style && node.yogaNode) {
|
|
215
|
-
applyStyles(node.yogaNode, style);
|
|
239
|
+
applyStyles(node.yogaNode, style, newProps['style'] ?? {});
|
|
216
240
|
}
|
|
217
241
|
},
|
|
218
242
|
commitTextUpdate(node, _oldText, newText) {
|
|
@@ -221,6 +245,9 @@ export default createReconciler({
|
|
|
221
245
|
removeChild(node, removeNode) {
|
|
222
246
|
removeChildNode(node, removeNode);
|
|
223
247
|
cleanupYogaNode(removeNode.yogaNode);
|
|
248
|
+
if (removeNode.internal_static && currentRootNode) {
|
|
249
|
+
currentRootNode.staticNode = undefined;
|
|
250
|
+
}
|
|
224
251
|
},
|
|
225
252
|
setCurrentUpdatePriority(newPriority) {
|
|
226
253
|
currentUpdatePriority = newPriority;
|
|
@@ -260,5 +287,7 @@ export default createReconciler({
|
|
|
260
287
|
waitForCommitToBeReady() {
|
|
261
288
|
return null;
|
|
262
289
|
},
|
|
290
|
+
rendererPackageName: packageInfo.name,
|
|
291
|
+
rendererVersion: packageInfo.version,
|
|
263
292
|
});
|
|
264
293
|
//# sourceMappingURL=reconciler.js.map
|
package/build/reconciler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,gBAAqC,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACN,oBAAoB,EACpB,eAAe,GACf,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AACvC,OAAO,IAA6B,MAAM,aAAa,CAAC;AACxD,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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"}
|
package/build/render-border.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import cliBoxes from 'cli-boxes';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import colorize from './colorize.js';
|
|
4
|
+
const stylePiece = (segment, fg, bg, dim) => {
|
|
5
|
+
let styled = colorize(segment, fg, 'foreground');
|
|
6
|
+
styled = colorize(styled, bg, 'background');
|
|
7
|
+
if (dim) {
|
|
8
|
+
styled = chalk.dim(styled);
|
|
9
|
+
}
|
|
10
|
+
return styled;
|
|
11
|
+
};
|
|
4
12
|
const renderBorder = (x, y, node, output) => {
|
|
5
13
|
if (node.style.borderStyle) {
|
|
6
14
|
const width = node.yogaNode.getComputedWidth();
|
|
@@ -12,6 +20,11 @@ const renderBorder = (x, y, node, output) => {
|
|
|
12
20
|
const bottomBorderColor = node.style.borderBottomColor ?? node.style.borderColor;
|
|
13
21
|
const leftBorderColor = node.style.borderLeftColor ?? node.style.borderColor;
|
|
14
22
|
const rightBorderColor = node.style.borderRightColor ?? node.style.borderColor;
|
|
23
|
+
const topBorderBackgroundColor = node.style.borderTopBackgroundColor ?? node.style.borderBackgroundColor;
|
|
24
|
+
const bottomBorderBackgroundColor = node.style.borderBottomBackgroundColor ??
|
|
25
|
+
node.style.borderBackgroundColor;
|
|
26
|
+
const leftBorderBackgroundColor = node.style.borderLeftBackgroundColor ?? node.style.borderBackgroundColor;
|
|
27
|
+
const rightBorderBackgroundColor = node.style.borderRightBackgroundColor ?? node.style.borderBackgroundColor;
|
|
15
28
|
const dimTopBorderColor = node.style.borderTopDimColor ?? node.style.borderDimColor;
|
|
16
29
|
const dimBottomBorderColor = node.style.borderBottomDimColor ?? node.style.borderDimColor;
|
|
17
30
|
const dimLeftBorderColor = node.style.borderLeftDimColor ?? node.style.borderDimColor;
|
|
@@ -22,13 +35,11 @@ const renderBorder = (x, y, node, output) => {
|
|
|
22
35
|
const showRightBorder = node.style.borderRight !== false;
|
|
23
36
|
const contentWidth = width - (showLeftBorder ? 1 : 0) - (showRightBorder ? 1 : 0);
|
|
24
37
|
let topBorder = showTopBorder
|
|
25
|
-
?
|
|
38
|
+
? (showLeftBorder ? box.topLeft : '') +
|
|
26
39
|
box.top.repeat(contentWidth) +
|
|
27
|
-
(showRightBorder ? box.topRight : '')
|
|
40
|
+
(showRightBorder ? box.topRight : '')
|
|
28
41
|
: undefined;
|
|
29
|
-
|
|
30
|
-
topBorder = chalk.dim(topBorder);
|
|
31
|
-
}
|
|
42
|
+
topBorder &&= stylePiece(topBorder, topBorderColor, topBorderBackgroundColor, dimTopBorderColor);
|
|
32
43
|
let verticalBorderHeight = height;
|
|
33
44
|
if (showTopBorder) {
|
|
34
45
|
verticalBorderHeight -= 1;
|
|
@@ -36,30 +47,30 @@ const renderBorder = (x, y, node, output) => {
|
|
|
36
47
|
if (showBottomBorder) {
|
|
37
48
|
verticalBorderHeight -= 1;
|
|
38
49
|
}
|
|
39
|
-
let leftBorder =
|
|
40
|
-
if (
|
|
41
|
-
|
|
50
|
+
let leftBorder = '';
|
|
51
|
+
if (showLeftBorder) {
|
|
52
|
+
const one = stylePiece(box.left, leftBorderColor, leftBorderBackgroundColor, dimLeftBorderColor);
|
|
53
|
+
leftBorder = (one + '\n').repeat(verticalBorderHeight);
|
|
42
54
|
}
|
|
43
|
-
let rightBorder =
|
|
44
|
-
if (
|
|
45
|
-
|
|
55
|
+
let rightBorder = '';
|
|
56
|
+
if (showRightBorder) {
|
|
57
|
+
const one = stylePiece(box.right, rightBorderColor, rightBorderBackgroundColor, dimRightBorderColor);
|
|
58
|
+
rightBorder = (one + '\n').repeat(verticalBorderHeight);
|
|
46
59
|
}
|
|
47
60
|
let bottomBorder = showBottomBorder
|
|
48
|
-
?
|
|
61
|
+
? (showLeftBorder ? box.bottomLeft : '') +
|
|
49
62
|
box.bottom.repeat(contentWidth) +
|
|
50
|
-
(showRightBorder ? box.bottomRight : '')
|
|
63
|
+
(showRightBorder ? box.bottomRight : '')
|
|
51
64
|
: undefined;
|
|
52
|
-
|
|
53
|
-
bottomBorder = chalk.dim(bottomBorder);
|
|
54
|
-
}
|
|
65
|
+
bottomBorder &&= stylePiece(bottomBorder, bottomBorderColor, bottomBorderBackgroundColor, dimBottomBorderColor);
|
|
55
66
|
const offsetY = showTopBorder ? 1 : 0;
|
|
56
67
|
if (topBorder) {
|
|
57
68
|
output.write(x, y, topBorder, { transformers: [] });
|
|
58
69
|
}
|
|
59
|
-
if (
|
|
70
|
+
if (leftBorder) {
|
|
60
71
|
output.write(x, y + offsetY, leftBorder, { transformers: [] });
|
|
61
72
|
}
|
|
62
|
-
if (
|
|
73
|
+
if (rightBorder) {
|
|
63
74
|
output.write(x + width - 1, y + offsetY, rightBorder, {
|
|
64
75
|
transformers: [],
|
|
65
76
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-border.js","sourceRoot":"","sources":["../src/render-border.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,eAAe,CAAC;AAIrC,MAAM,YAAY,GAAG,CACpB,CAAS,EACT,CAAS,EACT,IAAa,EACb,MAAc,EACP,EAAE;IACT,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAS,CAAC,gBAAgB,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAS,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,GAAG,GACR,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,QAAQ;YACzC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAClC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAE3B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3E,MAAM,iBAAiB,GACtB,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACxD,MAAM,eAAe,GACpB,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACtD,MAAM,gBAAgB,GACrB,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAEvD,MAAM,iBAAiB,GACtB,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAE3D,MAAM,oBAAoB,GACzB,IAAI,CAAC,KAAK,CAAC,oBAAoB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAE9D,MAAM,kBAAkB,GACvB,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAE5D,MAAM,mBAAmB,GACxB,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAE7D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC;QACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC;QAEzD,MAAM,YAAY,GACjB,KAAK,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9D,IAAI,SAAS,GAAG,aAAa;YAC5B,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"render-border.js","sourceRoot":"","sources":["../src/render-border.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type RenderToStringOptions = {
|
|
3
|
+
/**
|
|
4
|
+
Width of the virtual terminal in columns.
|
|
5
|
+
|
|
6
|
+
@default 80
|
|
7
|
+
*/
|
|
8
|
+
columns?: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
Render a React element to a string synchronously. Unlike `render()`, this function does not write to stdout, does not set up any terminal event listeners, and returns the rendered output as a string.
|
|
12
|
+
|
|
13
|
+
Useful for generating documentation, writing output to files, testing, or any scenario where you need the rendered output as a string without starting a persistent terminal application.
|
|
14
|
+
|
|
15
|
+
**Notes:**
|
|
16
|
+
|
|
17
|
+
- Terminal-specific hooks (`useInput`, `useStdin`, `useStdout`, `useStderr`, `useApp`, `useFocus`, `useFocusManager`) return default no-op values since there is no terminal session. They will not throw, but they will not function as in a live terminal.
|
|
18
|
+
- `useEffect` callbacks will execute during rendering (due to synchronous rendering mode), but state updates they trigger will not affect the returned output, which reflects the initial render.
|
|
19
|
+
- `useLayoutEffect` callbacks fire synchronously during commit, so state updates they trigger **will** be reflected in the output.
|
|
20
|
+
- The `<Static>` component is supported — its output is prepended to the dynamic output.
|
|
21
|
+
- If a component throws during rendering, the error is propagated to the caller after cleanup.
|
|
22
|
+
|
|
23
|
+
@example
|
|
24
|
+
```
|
|
25
|
+
import {renderToString, Text, Box} from 'ink';
|
|
26
|
+
|
|
27
|
+
const output = renderToString(
|
|
28
|
+
<Box padding={1}>
|
|
29
|
+
<Text color="green">Hello World</Text>
|
|
30
|
+
</Box>,
|
|
31
|
+
{columns: 40}
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
console.log(output);
|
|
35
|
+
```
|
|
36
|
+
*/
|
|
37
|
+
declare const renderToString: (node: ReactNode, options?: RenderToStringOptions) => string;
|
|
38
|
+
export default renderToString;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import Yoga from 'yoga-layout';
|
|
2
|
+
import { LegacyRoot } from 'react-reconciler/constants.js';
|
|
3
|
+
import reconciler from './reconciler.js';
|
|
4
|
+
import renderer from './renderer.js';
|
|
5
|
+
import { createNode } from './dom.js';
|
|
6
|
+
/**
|
|
7
|
+
Render a React element to a string synchronously. Unlike `render()`, this function does not write to stdout, does not set up any terminal event listeners, and returns the rendered output as a string.
|
|
8
|
+
|
|
9
|
+
Useful for generating documentation, writing output to files, testing, or any scenario where you need the rendered output as a string without starting a persistent terminal application.
|
|
10
|
+
|
|
11
|
+
**Notes:**
|
|
12
|
+
|
|
13
|
+
- Terminal-specific hooks (`useInput`, `useStdin`, `useStdout`, `useStderr`, `useApp`, `useFocus`, `useFocusManager`) return default no-op values since there is no terminal session. They will not throw, but they will not function as in a live terminal.
|
|
14
|
+
- `useEffect` callbacks will execute during rendering (due to synchronous rendering mode), but state updates they trigger will not affect the returned output, which reflects the initial render.
|
|
15
|
+
- `useLayoutEffect` callbacks fire synchronously during commit, so state updates they trigger **will** be reflected in the output.
|
|
16
|
+
- The `<Static>` component is supported — its output is prepended to the dynamic output.
|
|
17
|
+
- If a component throws during rendering, the error is propagated to the caller after cleanup.
|
|
18
|
+
|
|
19
|
+
@example
|
|
20
|
+
```
|
|
21
|
+
import {renderToString, Text, Box} from 'ink';
|
|
22
|
+
|
|
23
|
+
const output = renderToString(
|
|
24
|
+
<Box padding={1}>
|
|
25
|
+
<Text color="green">Hello World</Text>
|
|
26
|
+
</Box>,
|
|
27
|
+
{columns: 40}
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
console.log(output);
|
|
31
|
+
```
|
|
32
|
+
*/
|
|
33
|
+
const renderToString = (node, options) => {
|
|
34
|
+
const columns = options?.columns ?? 80;
|
|
35
|
+
// Create a standalone root node — no stdout, stdin, or terminal bindings
|
|
36
|
+
const rootNode = createNode('ink-root');
|
|
37
|
+
// Capture static output from intermediate renders.
|
|
38
|
+
// The <Static> component uses useLayoutEffect to clear its children after
|
|
39
|
+
// the first commit. The reconciler's resetAfterCommit calls onImmediateRender
|
|
40
|
+
// when static content is dirty (and returns early, skipping the normal
|
|
41
|
+
// onRender callback), giving us a chance to capture it before it's cleared
|
|
42
|
+
// by the subsequent re-render.
|
|
43
|
+
let capturedStaticOutput = '';
|
|
44
|
+
rootNode.onComputeLayout = () => {
|
|
45
|
+
rootNode.yogaNode.setWidth(columns);
|
|
46
|
+
rootNode.yogaNode.calculateLayout(undefined, undefined, Yoga.DIRECTION_LTR);
|
|
47
|
+
};
|
|
48
|
+
rootNode.onImmediateRender = () => {
|
|
49
|
+
const { staticOutput } = renderer(rootNode, false);
|
|
50
|
+
if (staticOutput && staticOutput !== '\n') {
|
|
51
|
+
capturedStaticOutput += staticOutput;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
// Capture the first uncaught error so we can re-throw it after cleanup.
|
|
55
|
+
// React's reconciler catches component errors internally and reports them
|
|
56
|
+
// via onUncaughtError rather than letting them propagate. For a synchronous
|
|
57
|
+
// utility like renderToString, callers expect errors to throw.
|
|
58
|
+
let uncaughtError;
|
|
59
|
+
// Create a reconciler container in legacy (synchronous) mode.
|
|
60
|
+
// The four trailing callbacks are: onUncaughtError, onCaughtError,
|
|
61
|
+
// onRecoverableError, and onHostTransitionComplete.
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
63
|
+
const container = reconciler.createContainer(rootNode, LegacyRoot, null, false, null, 'render-to-string', (error) => {
|
|
64
|
+
uncaughtError ??= error;
|
|
65
|
+
}, () => { }, () => { }, () => { });
|
|
66
|
+
let teardownSucceeded = false;
|
|
67
|
+
try {
|
|
68
|
+
// Synchronously render the React tree into the container
|
|
69
|
+
reconciler.updateContainerSync(node, container, null, () => { });
|
|
70
|
+
reconciler.flushSyncWork();
|
|
71
|
+
// Yoga layout has already been calculated by onComputeLayout during commit.
|
|
72
|
+
// Render the DOM tree to a string — this captures the dynamic (non-static) output.
|
|
73
|
+
const { output } = renderer(rootNode, false);
|
|
74
|
+
// Tear down: unmount the tree so the reconciler cleans up child nodes
|
|
75
|
+
// and runs effect cleanup functions. Child Yoga nodes are freed by the
|
|
76
|
+
// reconciler's removeChildFromContainer → cleanupYogaNode → freeRecursive.
|
|
77
|
+
reconciler.updateContainerSync(null, container, null, () => { });
|
|
78
|
+
reconciler.flushSyncWork();
|
|
79
|
+
teardownSucceeded = true;
|
|
80
|
+
// Free the root yoga node itself (children already freed by reconciler)
|
|
81
|
+
rootNode.yogaNode.free();
|
|
82
|
+
// Re-throw after full cleanup so callers see the original error.
|
|
83
|
+
if (uncaughtError !== undefined) {
|
|
84
|
+
throw uncaughtError instanceof Error
|
|
85
|
+
? uncaughtError
|
|
86
|
+
: // eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
87
|
+
new Error(String(uncaughtError));
|
|
88
|
+
}
|
|
89
|
+
// The renderer appends a trailing newline to static output for terminal
|
|
90
|
+
// rendering (so dynamic output starts on a fresh line). Strip it here
|
|
91
|
+
// so renderToString returns clean output.
|
|
92
|
+
const normalizedStaticOutput = capturedStaticOutput.endsWith('\n')
|
|
93
|
+
? capturedStaticOutput.slice(0, -1)
|
|
94
|
+
: capturedStaticOutput;
|
|
95
|
+
if (normalizedStaticOutput && output) {
|
|
96
|
+
return normalizedStaticOutput + '\n' + output;
|
|
97
|
+
}
|
|
98
|
+
return normalizedStaticOutput || output;
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
// Ensure native Yoga memory is freed even if rendering or teardown threw.
|
|
102
|
+
// Yoga nodes are WASM-backed and not garbage collected.
|
|
103
|
+
if (!teardownSucceeded && rootNode.yogaNode) {
|
|
104
|
+
try {
|
|
105
|
+
// If reconciler teardown failed, some child nodes may not have been
|
|
106
|
+
// freed. Use freeRecursive to clean up the entire tree as best-effort.
|
|
107
|
+
rootNode.yogaNode.freeRecursive();
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
// Best-effort: node may already be partially freed
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
export default renderToString;
|
|
116
|
+
//# sourceMappingURL=render-to-string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-to-string.js","sourceRoot":"","sources":["../src/render-to-string.ts"],"names":[],"mappings":"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"}
|