@nuvin/ink 7.5.0-alpha → 7.7.0-alpha

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 (80) hide show
  1. package/build/allocated-seek.d.ts +21 -0
  2. package/build/allocated-seek.js +273 -0
  3. package/build/allocated-seek.js.map +1 -0
  4. package/build/ansi-tokenizer.js.map +1 -1
  5. package/build/components/App.d.ts +5 -1
  6. package/build/components/App.js +48 -10
  7. package/build/components/App.js.map +1 -1
  8. package/build/components/Box.d.ts +95 -0
  9. package/build/components/Box.js +176 -140
  10. package/build/components/Box.js.map +1 -1
  11. package/build/components/Transform.js +1 -1
  12. package/build/components/Transform.js.map +1 -1
  13. package/build/components/VLBox.d.ts +87 -0
  14. package/build/components/VLBox.js +5 -0
  15. package/build/components/VLBox.js.map +1 -0
  16. package/build/dom.d.ts +45 -1
  17. package/build/dom.js +5 -0
  18. package/build/dom.js.map +1 -1
  19. package/build/explicit-width-detection.d.ts +45 -0
  20. package/build/explicit-width-detection.js +172 -0
  21. package/build/explicit-width-detection.js.map +1 -0
  22. package/build/explicit-width.d.ts +1 -0
  23. package/build/explicit-width.js +114 -0
  24. package/build/explicit-width.js.map +1 -0
  25. package/build/hooks/use-input.js +3 -3
  26. package/build/hooks/use-input.js.map +1 -1
  27. package/build/index.d.ts +2 -0
  28. package/build/index.js +1 -0
  29. package/build/index.js.map +1 -1
  30. package/build/ink.d.ts +45 -2
  31. package/build/ink.js +691 -164
  32. package/build/ink.js.map +1 -1
  33. package/build/input-parser.d.ts +14 -1
  34. package/build/input-parser.js +74 -4
  35. package/build/input-parser.js.map +1 -1
  36. package/build/layout-metadata.d.ts +28 -0
  37. package/build/layout-metadata.js +302 -0
  38. package/build/layout-metadata.js.map +1 -0
  39. package/build/log-update.d.ts +16 -8
  40. package/build/log-update.js +439 -37
  41. package/build/log-update.js.map +1 -1
  42. package/build/measure-text.d.ts +1 -1
  43. package/build/measure-text.js +2 -2
  44. package/build/measure-text.js.map +1 -1
  45. package/build/output.d.ts +1 -0
  46. package/build/output.js +69 -28
  47. package/build/output.js.map +1 -1
  48. package/build/reconciler.js +84 -10
  49. package/build/reconciler.js.map +1 -1
  50. package/build/render-background.d.ts +2 -2
  51. package/build/render-background.js +33 -5
  52. package/build/render-background.js.map +1 -1
  53. package/build/render-border.d.ts +2 -2
  54. package/build/render-border.js +78 -34
  55. package/build/render-border.js.map +1 -1
  56. package/build/render-node-to-output.d.ts +7 -1
  57. package/build/render-node-to-output.js +118 -27
  58. package/build/render-node-to-output.js.map +1 -1
  59. package/build/render-to-string.js +2 -1
  60. package/build/render-to-string.js.map +1 -1
  61. package/build/render.d.ts +11 -0
  62. package/build/render.js.map +1 -1
  63. package/build/renderer.d.ts +1 -0
  64. package/build/renderer.js +10 -2
  65. package/build/renderer.js.map +1 -1
  66. package/build/styles.js.map +1 -1
  67. package/build/terminal-control.d.ts +6 -0
  68. package/build/terminal-control.js +124 -0
  69. package/build/terminal-control.js.map +1 -0
  70. package/build/terminal-paint.d.ts +38 -0
  71. package/build/terminal-paint.js +47 -0
  72. package/build/terminal-paint.js.map +1 -0
  73. package/build/wrap-text.d.ts +1 -1
  74. package/build/wrap-text.js +2 -2
  75. package/build/wrap-text.js.map +1 -1
  76. package/package.json +3 -1
  77. package/readme.md +98 -0
  78. package/build/reflow.d.ts +0 -12
  79. package/build/reflow.js +0 -47
  80. package/build/reflow.js.map +0 -1
package/build/renderer.js CHANGED
@@ -1,10 +1,12 @@
1
1
  import renderNodeToOutput, { renderNodeToScreenReaderOutput, } from './render-node-to-output.js';
2
2
  import Output from './output.js';
3
3
  import { paintSelection } from './paint-selection.js';
4
+ import { prepareLayoutMetadata } from './layout-metadata.js';
4
5
  let nextPaintEpoch = 0;
5
6
  const createPaintState = () => ({
6
7
  epoch: ++nextPaintEpoch,
7
8
  nextIndex: 0,
9
+ visitedCount: 0,
8
10
  });
9
11
  const renderer = (node, isScreenReaderEnabled, selection) => {
10
12
  if (node.yogaNode) {
@@ -23,16 +25,20 @@ const renderer = (node, isScreenReaderEnabled, selection) => {
23
25
  output,
24
26
  outputHeight,
25
27
  staticOutput: staticOutput ? `${staticOutput}\n` : '',
28
+ maxVisualWidth: 0,
26
29
  };
27
30
  }
31
+ prepareLayoutMetadata(node);
28
32
  const output = new Output({
29
33
  width: node.yogaNode.getComputedWidth(),
30
34
  height: node.yogaNode.getComputedHeight(),
31
35
  });
36
+ const paintState = createPaintState();
32
37
  renderNodeToOutput(node, output, {
33
38
  skipStaticElements: true,
34
- paintState: createPaintState(),
39
+ paintState,
35
40
  });
41
+ node.internal_lastRenderVisitCount = paintState.visitedCount;
36
42
  let staticOutput;
37
43
  if (node.staticNode?.yogaNode) {
38
44
  staticOutput = new Output({
@@ -46,7 +52,7 @@ const renderer = (node, isScreenReaderEnabled, selection) => {
46
52
  }
47
53
  // Selection applies to the main output only; static output is written
48
54
  // once and must never contain highlight styling.
49
- const { output: generatedOutput, height: outputHeight } = output.get(selection
55
+ const { output: generatedOutput, height: outputHeight, maxVisualWidth, } = output.get(selection
50
56
  ? {
51
57
  capturePlainRows: true,
52
58
  paint(grid, plainRows, maskRows) {
@@ -58,6 +64,7 @@ const renderer = (node, isScreenReaderEnabled, selection) => {
58
64
  return {
59
65
  output: generatedOutput,
60
66
  outputHeight,
67
+ maxVisualWidth,
61
68
  // Newline at the end is needed, because static output doesn't have one, so
62
69
  // interactive output will override last line of static output
63
70
  staticOutput: staticOutput ? `${staticOutput.get().output}\n` : '',
@@ -67,6 +74,7 @@ const renderer = (node, isScreenReaderEnabled, selection) => {
67
74
  output: '',
68
75
  outputHeight: 0,
69
76
  staticOutput: '',
77
+ maxVisualWidth: 0,
70
78
  };
71
79
  };
72
80
  export default renderer;
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAGA,OAAO,IAA6B,MAAM,aAAa,CAAC;AA6ZxD,MAAM,aAAa,GAAG;IACrB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC;IAC1B,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;CACf,CAAC;AAEX,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IACnE,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAE/C,IAAI,KAAK,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC5C,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9C,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAS;QACV,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE9B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,SAAS;QACV,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IACjE,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IAClE,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,eAAe,IAAI,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IAC/D,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CACjB,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC;IACH,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAED,IAAI,eAAe,IAAI,KAAK,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,KAAK,aAAa,EAAE,CAAC;YAC3C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,KAAK,gBAAgB,EAAE,CAAC;YAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC3D,CAAC;IACF,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACzD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,YAAY,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAED,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;QAC7B,yGAAyG;QACzG,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAChE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,KAAK,eAAe,EAAE,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,KAAK,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,KAAK,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAED,IAAI,gBAAgB,IAAI,KAAK,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,cAAc,KAAK,YAAY,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACpE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,KAAK,eAAe,EAAE,CAAC;YAC9C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,KAAK,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IACpE,IAAI,OAAO,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC;IACF,CAAC;IAED,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC;IACF,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC;IACF,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;IACF,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;IAED,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IAClE,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CACd,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAChE,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IACnE,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAChE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;QACjE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;QACjE,MAAM,UAAU,GACf,SAAS,KAAK,QAAQ;YACtB,SAAS,KAAK,QAAQ;YACtB,SAAS,KAAK,QAAQ;YACtB,SAAS,KAAK,QAAQ,CAAC;QAExB,IAAI,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACzB,IAAc,EACd,KAAa,EACb,YAAoB,EACb,EAAE;IACT,MAAM,gBAAgB,GACrB,aAAa,IAAI,KAAK;QACtB,WAAW,IAAI,KAAK;QACpB,cAAc,IAAI,KAAK;QACvB,YAAY,IAAI,KAAK;QACrB,aAAa,IAAI,KAAK,CAAC;IAExB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvB,OAAO;IACR,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,IAAI,CAAC,SAAS,CACb,IAAI,CAAC,QAAQ,EACb,YAAY,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAClD,CAAC;IACF,IAAI,CAAC,SAAS,CACb,IAAI,CAAC,WAAW,EAChB,YAAY,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CACrD,CAAC;IACF,IAAI,CAAC,SAAS,CACb,IAAI,CAAC,SAAS,EACd,YAAY,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CACnD,CAAC;IACF,IAAI,CAAC,SAAS,CACb,IAAI,CAAC,UAAU,EACf,YAAY,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CACpD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,IAAc,EAAE,KAAa,EAAQ,EAAE;IAC9D,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CACd,IAAc,EACd,QAAgB,EAAE,EAClB,eAAuB,KAAK,EACrB,EAAE;IACT,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC7C,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type TerminalControl = {
2
+ kind: 'csi' | 'osc' | 'string' | 'esc' | 'c0';
3
+ raw: string;
4
+ end: number;
5
+ };
6
+ export declare function readTerminalControl(text: string, start: number): TerminalControl | undefined;
@@ -0,0 +1,124 @@
1
+ const consumeCsiBody = (text, start) => {
2
+ let index = start;
3
+ while (index < text.length) {
4
+ const code = text.charCodeAt(index);
5
+ if (code < 0x30 || code > 0x3f) {
6
+ break;
7
+ }
8
+ index++;
9
+ }
10
+ while (index < text.length) {
11
+ const code = text.charCodeAt(index);
12
+ if (code < 0x20 || code > 0x2f) {
13
+ break;
14
+ }
15
+ index++;
16
+ }
17
+ if (index >= text.length) {
18
+ return undefined;
19
+ }
20
+ const final = text.charCodeAt(index);
21
+ if (final < 0x40 || final > 0x7e) {
22
+ return undefined;
23
+ }
24
+ return index - start + 1;
25
+ };
26
+ const consumeString = (text, start, isOsc, c1Introducer) => {
27
+ let index = start + (c1Introducer ? 1 : 2);
28
+ while (index < text.length) {
29
+ const code = text.charCodeAt(index);
30
+ if (isOsc && code === 0x07) {
31
+ return index - start + 1;
32
+ }
33
+ if (code === 0x9c) {
34
+ return index - start + 1;
35
+ }
36
+ if (code === 0x1b &&
37
+ index + 1 < text.length &&
38
+ text.charCodeAt(index + 1) === 0x5c) {
39
+ return index - start + 2;
40
+ }
41
+ index++;
42
+ }
43
+ return undefined;
44
+ };
45
+ const consumeEsc = (text, start) => {
46
+ if (start + 1 >= text.length) {
47
+ return undefined;
48
+ }
49
+ const next = text.charCodeAt(start + 1);
50
+ if (next === 0x5b) {
51
+ const body = consumeCsiBody(text, start + 2);
52
+ return body === undefined ? undefined : 2 + body;
53
+ }
54
+ if (next === 0x5d) {
55
+ return consumeString(text, start, true, false);
56
+ }
57
+ if (next === 0x50 || next === 0x5f || next === 0x5e || next === 0x58) {
58
+ return consumeString(text, start, false, false);
59
+ }
60
+ let index = start + 1;
61
+ while (index < text.length) {
62
+ const code = text.charCodeAt(index);
63
+ if (code >= 0x20 && code <= 0x2f) {
64
+ index++;
65
+ continue;
66
+ }
67
+ if (code >= 0x30 && code <= 0x7e) {
68
+ return index - start + 1;
69
+ }
70
+ return undefined;
71
+ }
72
+ return undefined;
73
+ };
74
+ const token = (kind, text, start, length) => ({
75
+ kind,
76
+ raw: text.slice(start, start + length),
77
+ end: start + length,
78
+ });
79
+ export function readTerminalControl(text, start) {
80
+ if (start >= text.length) {
81
+ return undefined;
82
+ }
83
+ const code = text.charCodeAt(start);
84
+ if (code === 0x1b) {
85
+ const length = consumeEsc(text, start);
86
+ if (length === undefined) {
87
+ return undefined;
88
+ }
89
+ const next = text.charCodeAt(start + 1);
90
+ if (next === 0x5b) {
91
+ return token('csi', text, start, length);
92
+ }
93
+ if (next === 0x5d) {
94
+ return token('osc', text, start, length);
95
+ }
96
+ if (next === 0x50 || next === 0x5f || next === 0x5e || next === 0x58) {
97
+ return token('string', text, start, length);
98
+ }
99
+ return token('esc', text, start, length);
100
+ }
101
+ if (code === 0x9b) {
102
+ const body = consumeCsiBody(text, start + 1);
103
+ if (body === undefined) {
104
+ return undefined;
105
+ }
106
+ return token('csi', text, start, 1 + body);
107
+ }
108
+ if (code === 0x9d ||
109
+ code === 0x90 ||
110
+ code === 0x9f ||
111
+ code === 0x9e ||
112
+ code === 0x98) {
113
+ const length = consumeString(text, start, code === 0x9d, true);
114
+ if (length === undefined) {
115
+ return undefined;
116
+ }
117
+ return token(code === 0x9d ? 'osc' : 'string', text, start, length);
118
+ }
119
+ if (code <= 0x1f || code === 0x7f || (code >= 0x80 && code <= 0x9f)) {
120
+ return token('c0', text, start, 1);
121
+ }
122
+ return undefined;
123
+ }
124
+ //# sourceMappingURL=terminal-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-control.js","sourceRoot":"","sources":["../src/terminal-control.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { type CursorPosition } from './cursor-helpers.js';
2
+ import { type PreparedSeekRow } from './allocated-seek.js';
3
+ export type PaintContext = {
4
+ strategy: 'raw' | 'osc66' | 'seek-viewport';
5
+ columns: number;
6
+ rows: number;
7
+ };
8
+ export declare function selectPaintStrategy(input: {
9
+ eligible: boolean;
10
+ capability: 'raw' | 'osc66' | 'fallback';
11
+ incremental: boolean;
12
+ outputHeight: number;
13
+ rows: number;
14
+ }): PaintContext['strategy'];
15
+ export type PhysicalFrame = {
16
+ context: PaintContext;
17
+ ownsViewport: boolean;
18
+ valid: boolean;
19
+ logicalRows: readonly string[];
20
+ allocatedWidths: readonly number[];
21
+ cursor: {
22
+ x: number;
23
+ y: number;
24
+ } | undefined;
25
+ };
26
+ export declare const decawmOff = "\u001B[?7l";
27
+ export declare const decawmOn = "\u001B[?7h";
28
+ export declare const eraseDisplayHome = "\u001B[2J\u001B[H";
29
+ export declare const hyperlinkClose = "\u001B]8;;\u001B\\";
30
+ export declare const sgrReset = "\u001B[0m";
31
+ export declare const seekViewportReset = "\u001B]8;;\u001B\\\u001B[0m\u001B[2J\u001B[H";
32
+ export declare const isSeekViewport: (context: PaintContext | undefined) => context is PaintContext;
33
+ export declare const isSeekPhysicalFrame: (frame: PhysicalFrame | undefined) => frame is PhysicalFrame;
34
+ export declare const isOwnedSeekViewport: (frame: PhysicalFrame | undefined) => frame is PhysicalFrame;
35
+ export declare const clampSeekCursor: (cursor: CursorPosition | undefined, columns: number, rows: number) => CursorPosition | undefined;
36
+ export declare const buildSeekCursorSequence: (cursor: CursorPosition | undefined, columns: number, rows: number, cursorWasShown: boolean) => string;
37
+ export declare const encodeSeekRows: (prepared: readonly PreparedSeekRow[], indexes: readonly number[], columns: number) => string;
38
+ export declare const wrapSeekPaint: (payload: string) => string;
@@ -0,0 +1,47 @@
1
+ import { hideCursorEscape, showCursorEscape, } from './cursor-helpers.js';
2
+ import { encodeSeekRow } from './allocated-seek.js';
3
+ export function selectPaintStrategy(input) {
4
+ if (!input.eligible || input.capability === 'raw')
5
+ return 'raw';
6
+ if (input.capability === 'osc66')
7
+ return 'osc66';
8
+ return input.incremental && input.outputHeight === input.rows
9
+ ? 'seek-viewport'
10
+ : 'raw';
11
+ }
12
+ export const decawmOff = '\u001B[?7l';
13
+ export const decawmOn = '\u001B[?7h';
14
+ export const eraseDisplayHome = '\u001B[2J\u001B[H';
15
+ export const hyperlinkClose = '\u001B]8;;\u001B\\';
16
+ export const sgrReset = '\u001B[0m';
17
+ export const seekViewportReset = `${hyperlinkClose}${sgrReset}${eraseDisplayHome}`;
18
+ export const isSeekViewport = (context) => context?.strategy === 'seek-viewport';
19
+ export const isSeekPhysicalFrame = (frame) => isSeekViewport(frame?.context);
20
+ export const isOwnedSeekViewport = (frame) => Boolean(frame?.valid && frame.ownsViewport && isSeekViewport(frame.context));
21
+ export const clampSeekCursor = (cursor, columns, rows) => {
22
+ if (cursor === undefined || columns < 1 || rows < 1) {
23
+ return undefined;
24
+ }
25
+ return {
26
+ x: Math.min(Math.max(cursor.x, 0), columns - 1),
27
+ y: Math.min(Math.max(cursor.y, 0), rows - 1),
28
+ };
29
+ };
30
+ const cup = (x, y) => `\u001B[${y + 1};${x + 1}H`;
31
+ export const buildSeekCursorSequence = (cursor, columns, rows, cursorWasShown) => {
32
+ const clamped = clampSeekCursor(cursor, columns, rows);
33
+ const hide = cursorWasShown || clamped === undefined ? hideCursorEscape : '';
34
+ if (clamped === undefined) {
35
+ return hide + cup(0, Math.max(0, rows - 1));
36
+ }
37
+ return hide + cup(clamped.x, clamped.y) + showCursorEscape;
38
+ };
39
+ export const encodeSeekRows = (prepared, indexes, columns) => {
40
+ let output = '';
41
+ for (const index of indexes) {
42
+ output += encodeSeekRow(prepared[index], index, columns);
43
+ }
44
+ return output;
45
+ };
46
+ export const wrapSeekPaint = (payload) => payload.length === 0 ? '' : `${decawmOff}${payload}${decawmOn}`;
47
+ //# sourceMappingURL=terminal-paint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-paint.js","sourceRoot":"","sources":["../src/terminal-paint.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type Styles } from './styles.js';
2
- export declare const WRAP_TEXT_CACHE_MAX = 256;
2
+ export declare const wrapTextCacheMax = 256;
3
3
  declare const wrapText: (text: string, maxWidth: number, wrapType: Styles["textWrap"]) => string;
4
4
  export declare const getWrapTextCacheSize: () => number;
5
5
  export default wrapText;
@@ -1,6 +1,6 @@
1
1
  import wrapAnsi from 'wrap-ansi';
2
2
  import cliTruncate from 'cli-truncate';
3
- export const WRAP_TEXT_CACHE_MAX = 256;
3
+ export const wrapTextCacheMax = 256;
4
4
  const cache = new Map();
5
5
  const wrapText = (text, maxWidth, wrapType) => {
6
6
  const cacheKey = JSON.stringify([text, maxWidth, wrapType]);
@@ -35,7 +35,7 @@ const wrapText = (text, maxWidth, wrapType) => {
35
35
  wrappedText = cliTruncate(text, maxWidth, { position });
36
36
  }
37
37
  cache.set(cacheKey, wrappedText);
38
- if (cache.size > WRAP_TEXT_CACHE_MAX) {
38
+ if (cache.size > wrapTextCacheMax) {
39
39
  const oldestKey = cache.keys().next().value;
40
40
  if (oldestKey !== undefined) {
41
41
  cache.delete(oldestKey);
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-text.js","sourceRoot":"","sources":["../src/wrap-text.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,WAAW,MAAM,cAAc,CAAC;AAGvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;AAExC,MAAM,QAAQ,GAAG,CAChB,IAAY,EACZ,QAAgB,EAChB,QAA4B,EACnB,EAAE;IACX,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,UAAU,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,IAAI,WAAW,GAAG,IAAI,CAAC;IAEvB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACzB,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE;YACtC,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,IAAI;SACV,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACzB,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE;YACtC,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,KAAK;SACf,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,QAAS,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,IAAI,QAAQ,GAA+B,KAAK,CAAC;QAEjD,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACpC,QAAQ,GAAG,QAAQ,CAAC;QACrB,CAAC;QAED,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YACnC,QAAQ,GAAG,OAAO,CAAC;QACpB,CAAC;QAED,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,GAAG,mBAAmB,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAC5C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED,OAAO,WAAW,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAE7D,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"wrap-text.js","sourceRoot":"","sources":["../src/wrap-text.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,WAAW,MAAM,cAAc,CAAC;AAGvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;AAExC,MAAM,QAAQ,GAAG,CAChB,IAAY,EACZ,QAAgB,EAChB,QAA4B,EACnB,EAAE;IACX,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,UAAU,EAAE,CAAC;QAChB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,IAAI,WAAW,GAAG,IAAI,CAAC;IAEvB,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACzB,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE;YACtC,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,IAAI;SACV,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACzB,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE;YACtC,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,KAAK;SACf,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,QAAS,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,IAAI,QAAQ,GAA+B,KAAK,CAAC;QAEjD,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACpC,QAAQ,GAAG,QAAQ,CAAC;QACrB,CAAC;QAED,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YACnC,QAAQ,GAAG,OAAO,CAAC;QACpB,CAAC;QAED,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,GAAG,gBAAgB,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAC5C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED,OAAO,WAAW,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAE7D,eAAe,QAAQ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuvin/ink",
3
- "version": "7.5.0-alpha",
3
+ "version": "7.7.0-alpha",
4
4
  "description": "React for CLI",
5
5
  "license": "MIT",
6
6
  "repository": "marschhuynh/ink",
@@ -27,6 +27,7 @@
27
27
  "typecheck": "tsc --noEmit",
28
28
  "example": "NODE_NO_WARNINGS=1 node --import=tsx",
29
29
  "benchmark": "NODE_NO_WARNINGS=1 node --import=tsx",
30
+ "benchmark:vlbox": "NODE_NO_WARNINGS=1 node --import=tsx benchmark/vlbox.tsx",
30
31
  "inspect": "react-devtools"
31
32
  },
32
33
  "files": [
@@ -87,6 +88,7 @@
87
88
  "@types/stack-utils": "^2.0.3",
88
89
  "@types/ws": "^8.18.1",
89
90
  "@vdemedes/prettier-config": "^2.0.1",
91
+ "@xterm/headless": "6.0.0",
90
92
  "ava": "^7.0.0",
91
93
  "boxen": "^8.0.1",
92
94
  "delay": "^7.0.0",
package/readme.md CHANGED
@@ -1400,6 +1400,54 @@ Background colors work with borders and padding:
1400
1400
 
1401
1401
  See example in [examples/box-backgrounds](examples/box-backgrounds/box-backgrounds.tsx).
1402
1402
 
1403
+ ### VLBox
1404
+
1405
+ `VLBox` accepts the same props and ref API as `Box`. When used with a bounded
1406
+ `overflow="scroll"` axis, it retains the full Yoga layout but culls off-screen
1407
+ paint work and scrolls without a React update. It does not virtualize mounting
1408
+ or provide input handling or a scrollbar.
1409
+
1410
+ #### Warm-scroll benchmark
1411
+
1412
+ The production-path benchmark mounts a 424×95 terminal fixture once under `Box`
1413
+ and once under `VLBox`, warms five imperative `scrollTo({y: current + 1})`
1414
+ steps, then measures at least 30 committed frames through `onRender` with
1415
+ `incrementalRendering: true`, `maxFps: 1000`, `interactive: true`, and
1416
+ `patchConsole: false` (never `debug: true`). Stderr is a separate stream so
1417
+ diagnostics cannot contaminate checkpoint stdout.
1418
+
1419
+ The large fixture is **6,000 mixed rows grouped into `SECTION_SIZE=25`
1420
+ retained subtrees** (sticky headers, nested clips, absolute children,
1421
+ markdown-like multi-`Text`, nested hosts). That is the supported
1422
+ retained-subtree benchmark shape: VLBox culls off-screen section chunks as
1423
+ units. It is **not** flat-list virtualization. A 6,000-row list of direct
1424
+ siblings still pays O(n) sibling probes before per-node cull.
1425
+
1426
+ ```sh
1427
+ npm run benchmark:vlbox -- --samples=30
1428
+ npm run benchmark:vlbox -- --samples=30 --release-check
1429
+ ```
1430
+
1431
+ Reported metrics:
1432
+
1433
+ - median / p95 `onRender.renderTime` (renderer/culling work)
1434
+ - median / p95 end-to-end wall time per step
1435
+ - per-step stdout-byte delta median / p95 / max (complete multi-chunk write-log delta for each measured frame)
1436
+ - maximum `internal_lastRenderVisitCount`
1437
+ - checkpoint ANSI parity at scroll offsets 1, 10, and 30 (isolated per-frame stdout delta, not cumulative write history)
1438
+ - VLBox layout-epoch delta across measured scrolls
1439
+
1440
+ Release gates (`--release-check`) use median `renderTime` only, and reject
1441
+ `--samples` below 30:
1442
+
1443
+ - `--samples >= 30`
1444
+ - VLBox large render median `<= 16 ms`
1445
+ - Box / VLBox large render speedup `>= 5x`
1446
+ - VLBox small-fixture render median within `10%` of Box
1447
+ - VLBox measured scrolls do not advance the layout epoch
1448
+ - VLBox large max visits `<= 600`
1449
+ - checkpoint frames match between Box and VLBox
1450
+
1403
1451
  ### `<Newline>`
1404
1452
 
1405
1453
  Adds one or more newline (`\n`) characters.
@@ -3005,6 +3053,56 @@ You can even inspect and change the props of components, and see the results imm
3005
3053
  > [!NOTE]
3006
3054
  > You must manually quit your CLI via <kbd>Ctrl</kbd>+<kbd>C</kbd> after you're done testing.
3007
3055
 
3056
+ ## Explicit terminal widths
3057
+
3058
+ Ink automatically negotiates [OSC 66 explicit grapheme widths](https://sw.kovidgoyal.net/kitty/text-sizing-protocol/) for eligible interactive terminals. When supported, Ink tells the terminal how many cells each eligible original grapheme occupies. Layout, wrapping, selection, and copy text remain unchanged.
3059
+
3060
+ Detection requires TTY output and a readable, raw-capable TTY input owned by an Ink input hook. A single 200 ms window starts with the first nonempty frame, including time spent waiting for raw-input readiness. Ink asks for private cursor-position reports, verifies column 1, and draws only in a cell reserved for its first frame. It does not home the cursor or add a probe newline. No reply, unsupported OSC 66, an unsafe initial position, or interrupted startup leaves OSC 66 unused. Eligible fullscreen incremental frames then use the allocated seek fallback below; other frames keep ordinary output. A terminal that ignores private cursor reports also skips OSC 66, even if it otherwise supports it.
3061
+
3062
+ During that window, dynamic updates coalesce to the latest pending frame; Static additions are retained in order. Disable explicit-width negotiation when every intermediate startup frame must be emitted immediately.
3063
+
3064
+ Redirected, noninteractive, debug, and screen-reader output skip detection and encoding. External stdout/stderr writes are not encoded. Ink-managed external writes, resize, clear, raw-input release, and unmount cancel pending detection safely. Use exclusive terminal-stream ownership during negotiation; unrelated direct writes or other consumers of physical stdin are outside Ink's input/output ownership. A fresh Ink instance negotiates again; there is no separate suspend/resume negotiation API.
3065
+
3066
+ To disable detection, OSC 66 encoding, and the seek fallback:
3067
+
3068
+ ```jsx
3069
+ render(<MyApp />, {explicitWidth: 'disabled'});
3070
+ ```
3071
+
3072
+ The default is `explicitWidth: 'auto'`. Environment overrides are captured once per instance:
3073
+
3074
+ ```sh
3075
+ INK_EXPLICIT_WIDTH=0 my-cli # Disable detection, OSC 66 encoding, and the seek fallback
3076
+ INK_EXPLICIT_WIDTH=1 my-cli # Force OSC 66 encoding without a probe (verified terminals only)
3077
+ ```
3078
+
3079
+ An explicit `explicitWidth: 'disabled'` option overrides both environment settings. With the variable unset (or another value), automatic detection is used. Force-on and force-off precedence is unchanged: `INK_EXPLICIT_WIDTH=1` still selects OSC 66 on an eligible TTY, and both the option and `INK_EXPLICIT_WIDTH=0` skip the new path too.
3080
+
3081
+ **Forcing `1` does not detect terminal support. Unsupported terminals may hide wrapped non-ASCII text.** Automatic OSC 66 fallback avoids that risk. It does not by itself fix width disagreements; the seek path below is a separate, bounded fallback.
3082
+
3083
+ ### Allocated seek fallback
3084
+
3085
+ When OSC 66 is not confirmed, Ink can keep fullscreen incremental frames on their allocated cell grid by seeking to each changed row and prefilling non-ASCII graphemes. Layout, wrapping, Ink-managed selection, and original copy text remain unchanged.
3086
+
3087
+ Seek painting is used only when all of the following hold at actual write time:
3088
+
3089
+ - `incrementalRendering: true`
3090
+ - interactive TTY output
3091
+ - debug and screen-reader modes are off
3092
+ - the dynamic frame height equals the current terminal row count
3093
+
3094
+ Inline incremental frames, frames shorter or taller than the viewport, Static output, redirected/noninteractive/debug/screen-reader output, and ordinary stdout/stderr writes keep the existing raw path. OSC 66 success and `INK_EXPLICIT_WIDTH=1` still take precedence on eligible TTYs.
3095
+
3096
+ Seeking can restore allocated cursor positions and overwrite excess paint. It cannot make an unsupported terminal shape a ZWJ sequence into one glyph. Split, clipped, incomplete, or erased portions of that glyph are accepted limits; damage to neighboring content or unintended row movement is not. Ink-managed copy still reads original grid text. Native terminal copy reads cells that may have been overwritten, so exact native copy is not guaranteed.
3097
+
3098
+ Seek frames skip the existing scroll-region shift optimization. Unchanged rows are still skipped. Extra absolute seeks, styled prefills, and full-viewport resize repaints are intentional costs, not a performance claim.
3099
+
3100
+ Before restoring a fullscreen seek frame after ordinary or Static output, Ink advances a blank viewport so that output can move into primary-screen history rather than being immediately overwritten at home. That conservative first version may add extra blank lines to primary-screen history around external output.
3101
+
3102
+ Physical terminal acceptance for this fallback is still pending. Completing source tests does not qualify a terminal. A failed OSC 66 probe does not by itself establish seek support.
3103
+
3104
+ Automated negotiation, parser, and seek-fallback tests use synthetic streams and a headless terminal model. Passing them does not prove physical glyph width, overwrite, resize, or copy behavior in a terminal emulator. Validate rendering in a real foreground terminal before treating a terminal as supported.
3105
+
3008
3106
  ## Screen Reader Support
3009
3107
 
3010
3108
  Ink has basic support for screen readers.
package/build/reflow.d.ts DELETED
@@ -1,12 +0,0 @@
1
- /**
2
- Number of rendered rows a soft-wrapped frame physically occupies on screen.
3
-
4
- Called on every render whose previous or next frame contains a row wider than
5
- the terminal (e.g. while a full-width bar is visible), so the count is
6
- memoized per (row, columns): during a scroll tick almost every row string was
7
- present in the previous frame at a different position, and wrap-ansi wrapping
8
- is line-local, making per-row counts composable into the full-frame count.
9
- */
10
- export declare const REFLOW_ROW_CACHE_MAX = 1024;
11
- export declare const getReflowedLineCount: (output: string, columns: number) => number;
12
- export declare const getReflowRowCacheSize: () => number;
package/build/reflow.js DELETED
@@ -1,47 +0,0 @@
1
- import wrapAnsi from 'wrap-ansi';
2
- /**
3
- Number of rendered rows a soft-wrapped frame physically occupies on screen.
4
-
5
- Called on every render whose previous or next frame contains a row wider than
6
- the terminal (e.g. while a full-width bar is visible), so the count is
7
- memoized per (row, columns): during a scroll tick almost every row string was
8
- present in the previous frame at a different position, and wrap-ansi wrapping
9
- is line-local, making per-row counts composable into the full-frame count.
10
- */
11
- export const REFLOW_ROW_CACHE_MAX = 1024;
12
- const rowLineCounts = new Map();
13
- const wrappedRowCount = (row, columns) => {
14
- const key = `${columns}\u0000${row}`;
15
- const cached = rowLineCounts.get(key);
16
- if (cached !== undefined) {
17
- // LRU touch: re-insert so the key becomes most recently used.
18
- rowLineCounts.delete(key);
19
- rowLineCounts.set(key, cached);
20
- return cached;
21
- }
22
- const count = wrapAnsi(row, columns, {
23
- trim: false,
24
- hard: true,
25
- wordWrap: false,
26
- }).split('\n').length;
27
- rowLineCounts.set(key, count);
28
- if (rowLineCounts.size > REFLOW_ROW_CACHE_MAX) {
29
- const oldestKey = rowLineCounts.keys().next().value;
30
- if (oldestKey !== undefined) {
31
- rowLineCounts.delete(oldestKey);
32
- }
33
- }
34
- return count;
35
- };
36
- export const getReflowedLineCount = (output, columns) => {
37
- if (output === '') {
38
- return 0;
39
- }
40
- let lineCount = 0;
41
- for (const row of output.split('\n')) {
42
- lineCount += wrappedRowCount(row, columns);
43
- }
44
- return lineCount;
45
- };
46
- export const getReflowRowCacheSize = () => rowLineCounts.size;
47
- //# sourceMappingURL=reflow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reflow.js","sourceRoot":"","sources":["../src/reflow.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC;;;;;;;;EAQE;AACF,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEhD,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,OAAe,EAAU,EAAE;IAChE,MAAM,GAAG,GAAG,GAAG,OAAO,SAAS,GAAG,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,8DAA8D;QAC9D,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE;QACpC,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,KAAK;KACf,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAEtB,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAE9B,IAAI,aAAa,CAAC,IAAI,GAAG,oBAAoB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACpD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC7B,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CACnC,MAAc,EACd,OAAe,EACN,EAAE;IACX,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QACnB,OAAO,CAAC,CAAC;IACV,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,SAAS,IAAI,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAW,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC"}