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.
Files changed (132) hide show
  1. package/build/ansi-tokenizer.d.ts +38 -0
  2. package/build/ansi-tokenizer.js +316 -0
  3. package/build/ansi-tokenizer.js.map +1 -0
  4. package/build/components/AnimationContext.d.ts +9 -0
  5. package/build/components/AnimationContext.js +13 -0
  6. package/build/components/AnimationContext.js.map +1 -0
  7. package/build/components/App.d.ts +5 -2
  8. package/build/components/App.js +192 -41
  9. package/build/components/App.js.map +1 -1
  10. package/build/components/AppContext.d.ts +33 -3
  11. package/build/components/AppContext.js +2 -1
  12. package/build/components/AppContext.js.map +1 -1
  13. package/build/components/Box.d.ts +16 -3
  14. package/build/components/ErrorBoundary.d.ts +2 -2
  15. package/build/components/ErrorOverview.js +6 -6
  16. package/build/components/ErrorOverview.js.map +1 -1
  17. package/build/components/Static.js.map +1 -1
  18. package/build/components/StdinContext.d.ts +7 -1
  19. package/build/components/StdinContext.js +1 -0
  20. package/build/components/StdinContext.js.map +1 -1
  21. package/build/components/Text.d.ts +1 -1
  22. package/build/components/Text.js +1 -1
  23. package/build/components/Text.js.map +1 -1
  24. package/build/components/Transform.d.ts +1 -1
  25. package/build/devtools-window-polyfill.js +7 -4
  26. package/build/devtools-window-polyfill.js.map +1 -1
  27. package/build/devtools.js +31 -6
  28. package/build/devtools.js.map +1 -1
  29. package/build/dom.d.ts +5 -1
  30. package/build/dom.js +25 -5
  31. package/build/dom.js.map +1 -1
  32. package/build/hooks/use-animation.d.ts +49 -0
  33. package/build/hooks/use-animation.js +87 -0
  34. package/build/hooks/use-animation.js.map +1 -0
  35. package/build/hooks/use-app.d.ts +5 -2
  36. package/build/hooks/use-app.js +1 -1
  37. package/build/hooks/use-box-metrics.d.ts +59 -0
  38. package/build/hooks/use-box-metrics.js +88 -0
  39. package/build/hooks/use-box-metrics.js.map +1 -0
  40. package/build/hooks/use-cursor.d.ts +1 -1
  41. package/build/hooks/use-cursor.js +1 -1
  42. package/build/hooks/use-focus-manager.d.ts +17 -2
  43. package/build/hooks/use-focus-manager.js +2 -1
  44. package/build/hooks/use-focus-manager.js.map +1 -1
  45. package/build/hooks/use-focus.d.ts +2 -1
  46. package/build/hooks/use-focus.js +5 -4
  47. package/build/hooks/use-focus.js.map +1 -1
  48. package/build/hooks/use-input.d.ts +2 -1
  49. package/build/hooks/use-input.js +82 -80
  50. package/build/hooks/use-input.js.map +1 -1
  51. package/build/hooks/use-is-screen-reader-enabled.d.ts +2 -1
  52. package/build/hooks/use-is-screen-reader-enabled.js +2 -1
  53. package/build/hooks/use-is-screen-reader-enabled.js.map +1 -1
  54. package/build/hooks/use-paste.d.ts +35 -0
  55. package/build/hooks/use-paste.js +62 -0
  56. package/build/hooks/use-paste.js.map +1 -0
  57. package/build/hooks/use-stderr.d.ts +1 -1
  58. package/build/hooks/use-stderr.js +1 -1
  59. package/build/hooks/use-stdin.d.ts +4 -2
  60. package/build/hooks/use-stdin.js +2 -1
  61. package/build/hooks/use-stdin.js.map +1 -1
  62. package/build/hooks/use-stdout.d.ts +1 -1
  63. package/build/hooks/use-stdout.js +1 -1
  64. package/build/hooks/use-window-size.d.ts +18 -0
  65. package/build/hooks/use-window-size.js +22 -0
  66. package/build/hooks/use-window-size.js.map +1 -0
  67. package/build/index.d.ts +10 -1
  68. package/build/index.js +5 -0
  69. package/build/index.js.map +1 -1
  70. package/build/ink.d.ts +55 -6
  71. package/build/ink.js +433 -162
  72. package/build/ink.js.map +1 -1
  73. package/build/input-parser.d.ts +10 -0
  74. package/build/input-parser.js +194 -0
  75. package/build/input-parser.js.map +1 -0
  76. package/build/log-update.d.ts +1 -0
  77. package/build/log-update.js +13 -1
  78. package/build/log-update.js.map +1 -1
  79. package/build/measure-element.d.ts +4 -0
  80. package/build/measure-element.js +4 -0
  81. package/build/measure-element.js.map +1 -1
  82. package/build/output.d.ts +1 -0
  83. package/build/output.js +63 -5
  84. package/build/output.js.map +1 -1
  85. package/build/parse-keypress.d.ts +1 -3
  86. package/build/parse-keypress.js +19 -17
  87. package/build/parse-keypress.js.map +1 -1
  88. package/build/reconciler.js +48 -19
  89. package/build/reconciler.js.map +1 -1
  90. package/build/render-border.js +29 -18
  91. package/build/render-border.js.map +1 -1
  92. package/build/render-to-string.d.ts +38 -0
  93. package/build/render-to-string.js +116 -0
  94. package/build/render-to-string.js.map +1 -0
  95. package/build/render.d.ts +69 -3
  96. package/build/render.js +18 -11
  97. package/build/render.js.map +1 -1
  98. package/build/sanitize-ansi.d.ts +2 -0
  99. package/build/sanitize-ansi.js +27 -0
  100. package/build/sanitize-ansi.js.map +1 -0
  101. package/build/squash-text-nodes.js +2 -1
  102. package/build/squash-text-nodes.js.map +1 -1
  103. package/build/styles.d.ts +78 -16
  104. package/build/styles.js +102 -31
  105. package/build/styles.js.map +1 -1
  106. package/build/utils.d.ts +9 -0
  107. package/build/utils.js +19 -0
  108. package/build/utils.js.map +1 -0
  109. package/build/wrap-text.js +7 -0
  110. package/build/wrap-text.js.map +1 -1
  111. package/build/write-synchronized.d.ts +1 -1
  112. package/build/write-synchronized.js +4 -2
  113. package/build/write-synchronized.js.map +1 -1
  114. package/package.json +40 -101
  115. package/readme.md +674 -56
  116. package/build/apply-styles.js +0 -175
  117. package/build/build-layout.js +0 -77
  118. package/build/calculate-wrapped-text.js +0 -53
  119. package/build/components/Color.js +0 -62
  120. package/build/experimental/apply-style.js +0 -140
  121. package/build/experimental/dom.js +0 -123
  122. package/build/experimental/output.js +0 -91
  123. package/build/experimental/reconciler.js +0 -141
  124. package/build/experimental/renderer.js +0 -81
  125. package/build/hooks/useInput.js +0 -38
  126. package/build/instance.js +0 -205
  127. package/build/options.d.ts +0 -52
  128. package/build/options.js +0 -2
  129. package/build/options.js.map +0 -1
  130. package/build/screen-reader-update.d.ts +0 -13
  131. package/build/screen-reader-update.js +0 -38
  132. package/build/screen-reader-update.js.map +0 -1
@@ -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: 'delete',
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 (Buffer.isBuffer(s)) {
368
+ if (s instanceof Uint8Array) {
365
369
  if (s[0] > 127 && s[1] === undefined) {
366
370
  s[0] -= 128;
367
- s = '\x1b' + String(s);
371
+ s = '\x1b' + textDecoder.decode(s);
368
372
  }
369
373
  else {
370
- s = String(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 option+return on macOS)
415
+ // carriage return (or meta+return on macOS)
414
416
  key.raw = undefined;
415
417
  key.name = 'return';
416
- key.option = s.length === 2;
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
- // TODO(vadimdemedes): `enquirer` detects delete key as backspace, but I had to split them up to avoid breaking changes in Ink. Merge them back together in the next major version.
433
- // delete
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.option = true;
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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"}
@@ -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
- await import('./devtools.js');
18
+ import.meta.resolve('react-devtools-core');
19
+ isDevtoolsInstalled = true;
15
20
  }
16
- catch (error) {
17
- if (error.code === 'ERR_MODULE_NOT_FOUND') {
18
- console.warn(`
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
@@ -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,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
- ? colorize((showLeftBorder ? box.topLeft : '') +
38
+ ? (showLeftBorder ? box.topLeft : '') +
26
39
  box.top.repeat(contentWidth) +
27
- (showRightBorder ? box.topRight : ''), topBorderColor, 'foreground')
40
+ (showRightBorder ? box.topRight : '')
28
41
  : undefined;
29
- if (showTopBorder && dimTopBorderColor) {
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 = (colorize(box.left, leftBorderColor, 'foreground') + '\n').repeat(verticalBorderHeight);
40
- if (dimLeftBorderColor) {
41
- leftBorder = chalk.dim(leftBorder);
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 = (colorize(box.right, rightBorderColor, 'foreground') + '\n').repeat(verticalBorderHeight);
44
- if (dimRightBorderColor) {
45
- rightBorder = chalk.dim(rightBorder);
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
- ? colorize((showLeftBorder ? box.bottomLeft : '') +
61
+ ? (showLeftBorder ? box.bottomLeft : '') +
49
62
  box.bottom.repeat(contentWidth) +
50
- (showRightBorder ? box.bottomRight : ''), bottomBorderColor, 'foreground')
63
+ (showRightBorder ? box.bottomRight : '')
51
64
  : undefined;
52
- if (showBottomBorder && dimBottomBorderColor) {
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 (showLeftBorder) {
70
+ if (leftBorder) {
60
71
  output.write(x, y + offsetY, leftBorder, { transformers: [] });
61
72
  }
62
- if (showRightBorder) {
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":"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"}
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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"}