@jrichman/ink 6.3.1 → 6.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/build/components/Box.d.ts +26 -2
  2. package/build/components/Box.js +8 -3
  3. package/build/components/Box.js.map +1 -1
  4. package/build/data-limited-lru-map.d.ts +19 -0
  5. package/build/data-limited-lru-map.js +51 -0
  6. package/build/data-limited-lru-map.js.map +1 -0
  7. package/build/devtools.d.ts +1 -1
  8. package/build/devtools.js +10 -1
  9. package/build/devtools.js.map +1 -1
  10. package/build/dom.d.ts +18 -6
  11. package/build/dom.js +25 -6
  12. package/build/dom.js.map +1 -1
  13. package/build/index.d.ts +4 -1
  14. package/build/index.js +4 -1
  15. package/build/index.js.map +1 -1
  16. package/build/ink.d.ts +15 -1
  17. package/build/ink.js +62 -12
  18. package/build/ink.js.map +1 -1
  19. package/build/measure-element.d.ts +0 -8
  20. package/build/measure-element.js +0 -50
  21. package/build/measure-element.js.map +1 -1
  22. package/build/measure-text.d.ts +11 -3
  23. package/build/measure-text.js +169 -13
  24. package/build/measure-text.js.map +1 -1
  25. package/build/output.d.ts +8 -2
  26. package/build/output.js +111 -61
  27. package/build/output.js.map +1 -1
  28. package/build/reconciler.js +24 -0
  29. package/build/reconciler.js.map +1 -1
  30. package/build/render-background.js +1 -1
  31. package/build/render-background.js.map +1 -1
  32. package/build/render-border.js +13 -5
  33. package/build/render-border.js.map +1 -1
  34. package/build/render-node-to-output.d.ts +2 -0
  35. package/build/render-node-to-output.js +233 -54
  36. package/build/render-node-to-output.js.map +1 -1
  37. package/build/render.d.ts +7 -3
  38. package/build/render.js +1 -0
  39. package/build/render.js.map +1 -1
  40. package/build/resize-observer.d.ts +22 -0
  41. package/build/resize-observer.js +59 -0
  42. package/build/resize-observer.js.map +1 -0
  43. package/build/scroll.d.ts +3 -0
  44. package/build/scroll.js +58 -1
  45. package/build/scroll.js.map +1 -1
  46. package/build/text-wrap.d.ts +6 -0
  47. package/build/text-wrap.js +130 -0
  48. package/build/text-wrap.js.map +1 -0
  49. package/package.json +6 -6
  50. package/readme.md +15 -1
  51. package/build/wrap-text.d.ts +0 -3
  52. package/build/wrap-text.js +0 -31
  53. package/build/wrap-text.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import colorize from './colorize.js';
2
2
  const renderBackground = (x, y, node, output) => {
3
- if (!node.style.backgroundColor) {
3
+ if (!node.internal_opaque && !node.style.backgroundColor) {
4
4
  return;
5
5
  }
6
6
  const width = node.yogaNode.getComputedWidth();
@@ -1 +1 @@
1
- {"version":3,"file":"render-background.js","sourceRoot":"","sources":["../src/render-background.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAIrC,MAAM,gBAAgB,GAAG,CACxB,CAAS,EACT,CAAS,EACT,IAAa,EACb,MAAc,EACP,EAAE;IACT,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QACjC,OAAO;IACR,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAS,CAAC,gBAAgB,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAS,CAAC,iBAAiB,EAAE,CAAC;IAElD,wDAAwD;IACxD,MAAM,eAAe,GACpB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,gBAAgB,GACrB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,eAAe,GACpB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,kBAAkB,GACvB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG,KAAK,GAAG,eAAe,GAAG,gBAAgB,CAAC;IAChE,MAAM,aAAa,GAAG,MAAM,GAAG,eAAe,GAAG,kBAAkB,CAAC;IAEpE,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO;IACR,CAAC;IAED,sCAAsC;IACtC,MAAM,cAAc,GAAG,QAAQ,CAC9B,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EACxB,IAAI,CAAC,KAAK,CAAC,eAAe,EAC1B,YAAY,CACZ,CAAC;IAEF,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,CACX,CAAC,GAAG,eAAe,EACnB,CAAC,GAAG,eAAe,GAAG,GAAG,EACzB,cAAc,EACd,EAAC,YAAY,EAAE,EAAE,EAAC,CAClB,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"render-background.js","sourceRoot":"","sources":["../src/render-background.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAIrC,MAAM,gBAAgB,GAAG,CACxB,CAAS,EACT,CAAS,EACT,IAAa,EACb,MAAc,EACP,EAAE;IACT,IAAI,CAAE,IAAmB,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1E,OAAO;IACR,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAS,CAAC,gBAAgB,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAS,CAAC,iBAAiB,EAAE,CAAC;IAElD,wDAAwD;IACxD,MAAM,eAAe,GACpB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,gBAAgB,GACrB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,eAAe,GACpB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,kBAAkB,GACvB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG,KAAK,GAAG,eAAe,GAAG,gBAAgB,CAAC;IAChE,MAAM,aAAa,GAAG,MAAM,GAAG,eAAe,GAAG,kBAAkB,CAAC;IAEpE,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO;IACR,CAAC;IAED,sCAAsC;IACtC,MAAM,cAAc,GAAG,QAAQ,CAC9B,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EACxB,IAAI,CAAC,KAAK,CAAC,eAAe,EAC1B,YAAY,CACZ,CAAC;IAEF,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,CACX,CAAC,GAAG,eAAe,EACnB,CAAC,GAAG,eAAe,GAAG,GAAG,EACzB,cAAc,EACd,EAAC,YAAY,EAAE,EAAE,EAAC,CAClB,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -57,15 +57,23 @@ const renderBorder = (x, y, node, output) => {
57
57
  output.write(x, y, topBorder, { transformers: [] });
58
58
  }
59
59
  if (showLeftBorder) {
60
- output.write(x, y + offsetY, leftBorder, { transformers: [] });
60
+ for (const [index, line] of leftBorder.split('\n').entries()) {
61
+ output.write(x, y + offsetY + index, line, {
62
+ transformers: [],
63
+ });
64
+ }
61
65
  }
62
66
  if (showRightBorder) {
63
- output.write(x + width - 1, y + offsetY, rightBorder, {
64
- transformers: [],
65
- });
67
+ for (const [index, line] of rightBorder.split('\n').entries()) {
68
+ output.write(x + width - 1, y + offsetY + index, line, {
69
+ transformers: [],
70
+ });
71
+ }
66
72
  }
67
73
  if (bottomBorder) {
68
- output.write(x, y + height - 1, bottomBorder, { transformers: [] });
74
+ output.write(x, y + height - 1, bottomBorder, {
75
+ transformers: [],
76
+ });
69
77
  }
70
78
  }
71
79
  };
@@ -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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"}
@@ -10,5 +10,7 @@ declare const renderNodeToOutput: (node: DOMElement, output: Output, options: {
10
10
  offsetY?: number;
11
11
  transformers?: OutputTransformer[];
12
12
  skipStaticElements: boolean;
13
+ nodeToSkip?: DOMElement;
14
+ isStickyRender?: boolean;
13
15
  }) => void;
14
16
  export default renderNodeToOutput;
@@ -1,32 +1,42 @@
1
- import widestLine from 'widest-line';
2
- import indentString from 'indent-string';
3
1
  import Yoga from 'yoga-layout';
4
- import wrapText from './wrap-text.js';
2
+ import { truncateStyledChars, wrapStyledChars } from './text-wrap.js';
5
3
  import getMaxWidth from './get-max-width.js';
6
4
  import squashTextNodes from './squash-text-nodes.js';
7
5
  import renderBorder from './render-border.js';
8
6
  import renderBackground from './render-background.js';
9
- import { getScrollHeight, getScrollWidth } from './measure-element.js';
10
7
  import colorize from './colorize.js';
8
+ import { measureStyledChars, splitStyledCharsByNewline, toStyledCharacters, } from './measure-text.js';
11
9
  // If parent container is `<Box>`, text nodes will be treated as separate nodes in
12
10
  // the tree and will have their own coordinates in the layout.
13
11
  // To ensure text nodes are aligned correctly, take X and Y of the first text node
14
12
  // and use it as offset for the rest of the nodes
15
13
  // Only first node is taken into account, because other text nodes can't have margin or padding,
16
14
  // so their coordinates will be relative to the first node anyway
17
- const applyPaddingToText = (node, text) => {
15
+ const applyPaddingToStyledChars = (node, lines) => {
18
16
  const yogaNode = node.childNodes[0]?.yogaNode;
19
17
  if (yogaNode) {
20
18
  const offsetX = yogaNode.getComputedLeft();
21
19
  const offsetY = yogaNode.getComputedTop();
22
- text = '\n'.repeat(offsetY) + indentString(text, offsetX);
20
+ const space = {
21
+ type: 'char',
22
+ value: ' ',
23
+ fullWidth: false,
24
+ styles: [],
25
+ };
26
+ const paddingLeft = Array.from({ length: offsetX }).map(() => space);
27
+ lines = lines.map(line => [...paddingLeft, ...line]);
28
+ const paddingTop = Array.from({ length: offsetY }).map(() => []);
29
+ lines.unshift(...paddingTop);
23
30
  }
24
- return text;
31
+ return lines;
25
32
  };
26
33
  export const renderNodeToScreenReaderOutput = (node, options = {}) => {
27
34
  if (options.skipStaticElements && node.internal_static) {
28
35
  return '';
29
36
  }
37
+ if (node.internalStickyAlternate) {
38
+ return '';
39
+ }
30
40
  if (node.yogaNode?.getDisplay() === Yoga.DISPLAY_NONE) {
31
41
  return '';
32
42
  }
@@ -71,10 +81,16 @@ export const renderNodeToScreenReaderOutput = (node, options = {}) => {
71
81
  };
72
82
  // After nodes are laid out, render each to output object, which later gets rendered to terminal
73
83
  const renderNodeToOutput = (node, output, options) => {
74
- const { offsetX = 0, offsetY = 0, transformers = [], skipStaticElements, } = options;
84
+ if (options.nodeToSkip === node) {
85
+ return;
86
+ }
87
+ const { offsetX = 0, offsetY = 0, transformers = [], skipStaticElements, isStickyRender = false, } = options;
75
88
  if (skipStaticElements && node.internal_static) {
76
89
  return;
77
90
  }
91
+ if (node.internalStickyAlternate && !isStickyRender) {
92
+ return;
93
+ }
78
94
  const { yogaNode } = node;
79
95
  if (yogaNode) {
80
96
  if (yogaNode.getDisplay() === Yoga.DISPLAY_NONE) {
@@ -83,6 +99,26 @@ const renderNodeToOutput = (node, output, options) => {
83
99
  // Left and top positions in Yoga are relative to their parent node
84
100
  const x = offsetX + yogaNode.getComputedLeft();
85
101
  const y = offsetY + yogaNode.getComputedTop();
102
+ const width = yogaNode.getComputedWidth();
103
+ const height = yogaNode.getComputedHeight();
104
+ const clip = output.getCurrentClip();
105
+ if (clip) {
106
+ const nodeLeft = x;
107
+ const nodeRight = x + width;
108
+ const nodeTop = y;
109
+ const nodeBottom = y + height;
110
+ const clipLeft = clip.x1 ?? -Infinity;
111
+ const clipRight = clip.x2 ?? Infinity;
112
+ const clipTop = clip.y1 ?? -Infinity;
113
+ const clipBottom = clip.y2 ?? Infinity;
114
+ const isVisible = nodeRight > clipLeft &&
115
+ nodeLeft < clipRight &&
116
+ nodeBottom > clipTop &&
117
+ nodeTop < clipBottom;
118
+ if (!isVisible) {
119
+ return;
120
+ }
121
+ }
86
122
  // Transformers are functions that transform final text output of each component
87
123
  // See Output class for logic that applies transformers
88
124
  let newTransformers = transformers;
@@ -90,16 +126,37 @@ const renderNodeToOutput = (node, output, options) => {
90
126
  newTransformers = [node.internal_transform, ...transformers];
91
127
  }
92
128
  if (node.nodeName === 'ink-text') {
93
- let text = squashTextNodes(node);
94
- if (text.length > 0) {
95
- const currentWidth = widestLine(text);
129
+ const styledChars = toStyledCharacters(squashTextNodes(node));
130
+ if (styledChars.length > 0) {
131
+ let lines = [];
132
+ const { width: currentWidth } = measureStyledChars(styledChars);
96
133
  const maxWidth = getMaxWidth(yogaNode);
97
134
  if (currentWidth > maxWidth) {
98
135
  const textWrap = node.style.textWrap ?? 'wrap';
99
- text = wrapText(text, maxWidth, textWrap);
136
+ if (textWrap.startsWith('truncate')) {
137
+ let position = 'end';
138
+ if (textWrap === 'truncate-middle') {
139
+ position = 'middle';
140
+ }
141
+ else if (textWrap === 'truncate-start') {
142
+ position = 'start';
143
+ }
144
+ lines = [truncateStyledChars(styledChars, maxWidth, { position })];
145
+ }
146
+ else {
147
+ lines = wrapStyledChars(styledChars, maxWidth);
148
+ }
149
+ }
150
+ else {
151
+ lines = splitStyledCharsByNewline(styledChars);
152
+ }
153
+ lines = applyPaddingToStyledChars(node, lines);
154
+ for (const [index, line] of lines.entries()) {
155
+ output.write(x, y + index, line, {
156
+ transformers: newTransformers,
157
+ lineIndex: index,
158
+ });
100
159
  }
101
- text = applyPaddingToText(node, text);
102
- output.write(x, y, text, { transformers: newTransformers });
103
160
  }
104
161
  return;
105
162
  }
@@ -109,6 +166,8 @@ const renderNodeToOutput = (node, output, options) => {
109
166
  let verticallyScrollable = false;
110
167
  let horizontallyScrollable = false;
111
168
  let isVerticalScrollbarVisible = false;
169
+ let activeStickyNode;
170
+ let nextStickyNode;
112
171
  if (node.nodeName === 'ink-box') {
113
172
  renderBackground(x, y, node, output);
114
173
  renderBorder(x, y, node, output);
@@ -118,16 +177,41 @@ const renderNodeToOutput = (node, output, options) => {
118
177
  verticallyScrollable = overflowY === 'scroll';
119
178
  horizontallyScrollable = overflowX === 'scroll';
120
179
  if (verticallyScrollable) {
121
- calculateVerticalScroll(node);
122
- childrenOffsetY -= node.internal_scrollTop ?? 0;
180
+ childrenOffsetY -= node.internal_scrollState?.scrollTop ?? 0;
181
+ const stickyNodes = getStickyDescendants(node);
182
+ if (stickyNodes.length > 0) {
183
+ const scrollTop = (node.internal_scrollState?.scrollTop ?? 0) +
184
+ yogaNode.getComputedBorder(Yoga.EDGE_TOP);
185
+ let activeStickyNodeIndex = -1;
186
+ for (const [index, stickyNode] of stickyNodes.entries()) {
187
+ if (stickyNode.yogaNode) {
188
+ const stickyNodeTop = getRelativeTop(stickyNode, node);
189
+ if (stickyNodeTop < scrollTop) {
190
+ const parent = stickyNode.parentNode;
191
+ if (parent?.yogaNode) {
192
+ const parentTop = getRelativeTop(parent, node);
193
+ const parentHeight = parent.yogaNode.getComputedHeight();
194
+ if (parentTop + parentHeight > scrollTop) {
195
+ activeStickyNode = stickyNode;
196
+ activeStickyNodeIndex = index;
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
202
+ if (activeStickyNodeIndex !== -1 &&
203
+ activeStickyNodeIndex + 1 < stickyNodes.length) {
204
+ nextStickyNode = stickyNodes[activeStickyNodeIndex + 1];
205
+ }
206
+ }
123
207
  }
124
208
  if (horizontallyScrollable) {
125
- calculateHorizontalScroll(node);
126
- childrenOffsetX -= node.internal_scrollLeft ?? 0;
209
+ childrenOffsetX -= node.internal_scrollState?.scrollLeft ?? 0;
127
210
  }
128
211
  isVerticalScrollbarVisible =
129
212
  verticallyScrollable &&
130
- (node.internal_scrollHeight ?? 0) > (node.internal_clientHeight ?? 0);
213
+ (node.internal_scrollState?.scrollHeight ?? 0) >
214
+ (node.internal_scrollState?.clientHeight ?? 0);
131
215
  const clipHorizontally = overflowX === 'hidden' || overflowX === 'scroll';
132
216
  const clipVertically = overflowY === 'hidden' || overflowY === 'scroll';
133
217
  if (clipHorizontally || clipVertically) {
@@ -158,6 +242,56 @@ const renderNodeToOutput = (node, output, options) => {
158
242
  offsetY: childrenOffsetY,
159
243
  transformers: newTransformers,
160
244
  skipStaticElements,
245
+ nodeToSkip: activeStickyNode,
246
+ isStickyRender,
247
+ });
248
+ }
249
+ if (activeStickyNode?.yogaNode) {
250
+ const alternateStickyNode = activeStickyNode.childNodes.find(childNode => childNode.internalStickyAlternate);
251
+ const nodeToRender = alternateStickyNode ?? activeStickyNode;
252
+ const nodeToRenderYogaNode = nodeToRender.yogaNode;
253
+ if (!nodeToRenderYogaNode) {
254
+ return;
255
+ }
256
+ const stickyYogaNode = activeStickyNode.yogaNode;
257
+ const borderTop = yogaNode.getComputedBorder(Yoga.EDGE_TOP);
258
+ const scrollTop = node.internal_scrollState?.scrollTop ?? 0;
259
+ const parent = activeStickyNode.parentNode;
260
+ const parentYogaNode = parent.yogaNode;
261
+ const parentTop = getRelativeTop(parent, node);
262
+ const parentHeight = parentYogaNode.getComputedHeight();
263
+ const parentBottom = parentTop + parentHeight;
264
+ const stickyNodeHeight = nodeToRenderYogaNode.getComputedHeight();
265
+ const maxStickyTop = y - scrollTop + parentBottom - stickyNodeHeight;
266
+ const naturalStickyY = y - scrollTop + getRelativeTop(activeStickyNode, node);
267
+ const stuckStickyY = y + borderTop;
268
+ let finalStickyY = Math.min(Math.max(stuckStickyY, naturalStickyY), maxStickyTop);
269
+ if (nextStickyNode?.yogaNode) {
270
+ const nextStickyNodeTop = getRelativeTop(nextStickyNode, node);
271
+ const nextStickyNodeTopInViewport = y - scrollTop + nextStickyNodeTop;
272
+ if (nextStickyNodeTopInViewport < finalStickyY + stickyNodeHeight) {
273
+ finalStickyY = nextStickyNodeTopInViewport - stickyNodeHeight;
274
+ }
275
+ }
276
+ let offsetX;
277
+ let offsetY;
278
+ if (nodeToRender === alternateStickyNode) {
279
+ const parentAbsoluteX = x + getRelativeLeft(parent, node);
280
+ const stickyNodeAbsoluteX = parentAbsoluteX + stickyYogaNode.getComputedLeft();
281
+ offsetX = stickyNodeAbsoluteX;
282
+ offsetY = finalStickyY;
283
+ }
284
+ else {
285
+ const parentAbsoluteX = x + getRelativeLeft(parent, node);
286
+ offsetX = parentAbsoluteX;
287
+ offsetY = finalStickyY - stickyYogaNode.getComputedTop();
288
+ }
289
+ renderNodeToOutput(nodeToRender, output, {
290
+ offsetX,
291
+ offsetY,
292
+ transformers: newTransformers,
293
+ skipStaticElements,
294
+ isStickyRender: true,
161
295
  });
162
296
  }
163
297
  if (clipped) {
@@ -176,49 +310,88 @@ const renderNodeToOutput = (node, output, options) => {
176
310
  }
177
311
  }
178
312
  };
179
- function calculateVerticalScroll(node) {
180
- const { yogaNode } = node;
181
- if (!yogaNode) {
182
- return;
313
+ function getStickyDescendants(node) {
314
+ const stickyDescendants = [];
315
+ for (const child of node.childNodes) {
316
+ if (child.nodeName === '#text') {
317
+ continue;
318
+ }
319
+ const domChild = child;
320
+ if (domChild.internalStickyAlternate) {
321
+ continue;
322
+ }
323
+ if (domChild.internalSticky) {
324
+ stickyDescendants.push(domChild);
325
+ }
326
+ else {
327
+ const overflow = domChild.style.overflow ?? 'visible';
328
+ const overflowX = domChild.style.overflowX ?? overflow;
329
+ const overflowY = domChild.style.overflowY ?? overflow;
330
+ const isScrollable = overflowX === 'scroll' || overflowY === 'scroll';
331
+ if (!isScrollable && domChild.childNodes) {
332
+ stickyDescendants.push(...getStickyDescendants(domChild));
333
+ }
334
+ }
183
335
  }
184
- const clientHeight = yogaNode.getComputedHeight() -
185
- yogaNode.getComputedBorder(Yoga.EDGE_TOP) -
186
- yogaNode.getComputedBorder(Yoga.EDGE_BOTTOM);
187
- const scrollHeight = getScrollHeight(node);
188
- const scrollTop = Math.max(0, Math.min(node.style.scrollTop ?? 0, scrollHeight - clientHeight));
189
- node.internal_scrollTop = scrollTop;
190
- node.internal_scrollHeight = scrollHeight;
191
- node.internal_clientHeight = clientHeight;
336
+ return stickyDescendants;
192
337
  }
193
- function calculateHorizontalScroll(node) {
194
- const { yogaNode } = node;
195
- if (!yogaNode) {
196
- return;
338
+ function getRelativeTop(node, ancestor) {
339
+ if (!node.yogaNode) {
340
+ return 0;
197
341
  }
198
- const clientWidth = yogaNode.getComputedWidth() -
199
- yogaNode.getComputedBorder(Yoga.EDGE_LEFT) -
200
- yogaNode.getComputedBorder(Yoga.EDGE_RIGHT);
201
- const scrollWidth = getScrollWidth(node);
202
- let scrollLeft = node.style.scrollLeft ?? 0;
203
- scrollLeft = Math.max(0, Math.min(scrollLeft, scrollWidth - clientWidth));
204
- node.internal_scrollLeft = scrollLeft;
205
- node.internal_scrollWidth = scrollWidth;
206
- node.internal_clientWidth = clientWidth;
342
+ let top = node.yogaNode.getComputedTop();
343
+ let parent = node.parentNode;
344
+ while (parent && parent !== ancestor) {
345
+ if (parent.yogaNode) {
346
+ top += parent.yogaNode.getComputedTop();
347
+ if (parent.nodeName === 'ink-box') {
348
+ const overflow = parent.style.overflow ?? 'visible';
349
+ const overflowY = parent.style.overflowY ?? overflow;
350
+ if (overflowY === 'scroll') {
351
+ top -= parent.internal_scrollState?.scrollTop ?? 0;
352
+ }
353
+ }
354
+ }
355
+ parent = parent.parentNode;
356
+ }
357
+ return top;
358
+ }
359
+ function getRelativeLeft(node, ancestor) {
360
+ if (!node.yogaNode) {
361
+ return 0;
362
+ }
363
+ let left = node.yogaNode.getComputedLeft();
364
+ let parent = node.parentNode;
365
+ while (parent && parent !== ancestor) {
366
+ if (parent.yogaNode) {
367
+ left += parent.yogaNode.getComputedLeft();
368
+ if (parent.nodeName === 'ink-box') {
369
+ const overflow = parent.style.overflow ?? 'visible';
370
+ const overflowX = parent.style.overflowX ?? overflow;
371
+ if (overflowX === 'scroll') {
372
+ left -= parent.internal_scrollState?.scrollLeft ?? 0;
373
+ }
374
+ }
375
+ }
376
+ parent = parent.parentNode;
377
+ }
378
+ return left;
207
379
  }
208
- function renderScrollbar(node, x, y, output, axis, options = {}) {
380
+ function renderScrollbar(node, output, options) {
381
+ const { x, y, axis } = options;
209
382
  const { yogaNode } = node;
210
383
  if (!yogaNode) {
211
384
  return;
212
385
  }
213
386
  const clientDimension = axis === 'vertical'
214
- ? (node.internal_clientHeight ?? 0)
215
- : (node.internal_clientWidth ?? 0);
387
+ ? (node.internal_scrollState?.clientHeight ?? 0)
388
+ : (node.internal_scrollState?.clientWidth ?? 0);
216
389
  const scrollDimension = axis === 'vertical'
217
- ? (node.internal_scrollHeight ?? 0)
218
- : (node.internal_scrollWidth ?? 0);
390
+ ? (node.internal_scrollState?.scrollHeight ?? 0)
391
+ : (node.internal_scrollState?.scrollWidth ?? 0);
219
392
  const scrollPosition = axis === 'vertical'
220
- ? (node.internal_scrollTop ?? 0)
221
- : (node.internal_scrollLeft ?? 0);
393
+ ? (node.internal_scrollState?.scrollTop ?? 0)
394
+ : (node.internal_scrollState?.scrollLeft ?? 0);
222
395
  if (scrollDimension <= clientDimension) {
223
396
  return;
224
397
  }
@@ -279,16 +452,22 @@ function renderScrollbar(node, x, y, output, axis, options = {}) {
279
452
  : '▐'; // Right half of the cell is filled
280
453
  const outputX = axis === 'vertical' ? scrollbarX : scrollbarX + index;
281
454
  const outputY = axis === 'vertical' ? scrollbarY + index : scrollbarY;
282
- output.write(outputX, outputY, colorize(colorize(char, thumbColor, 'foreground'), node.style.backgroundColor, 'background'), { transformers: [] });
455
+ output.write(outputX, outputY, colorize(char, thumbColor, 'foreground'), {
456
+ transformers: [],
457
+ preserveBackgroundColor: true,
458
+ });
283
459
  }
284
460
  }
285
461
  }
286
462
  function renderVerticalScrollbar(node, x, y, output) {
287
- renderScrollbar(node, x, y, output, 'vertical');
463
+ renderScrollbar(node, output, { x, y, axis: 'vertical' });
288
464
  }
289
465
  // eslint-disable-next-line max-params
290
466
  function renderHorizontalScrollbar(node, x, y, output, { verticallyScrollable }) {
291
- renderScrollbar(node, x, y, output, 'horizontal', {
467
+ renderScrollbar(node, output, {
468
+ x,
469
+ y,
470
+ axis: 'horizontal',
292
471
  verticallyScrollable,
293
472
  });
294
473
  }
@@ -1 +1 @@
1
- {"version":3,"file":"render-node-to-output.js","sourceRoot":"","sources":["../src/render-node-to-output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-node-to-output.js","sourceRoot":"","sources":["../src/render-node-to-output.ts"],"names":[],"mappings":"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"}
package/build/render.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import Ink from './ink.js';
2
+ import Ink, { type RenderMetrics } from './ink.js';
3
3
  export type RenderOptions = {
4
4
  /**
5
5
  Output stream where app will be rendered.
@@ -37,9 +37,9 @@ export type RenderOptions = {
37
37
  */
38
38
  patchConsole?: boolean;
39
39
  /**
40
- Function to call after each render.
40
+ Runs the given callback after each render and re-render.
41
41
  */
42
- onRender?: (renderTime: number) => void;
42
+ onRender?: (metrics: RenderMetrics) => void;
43
43
  /**
44
44
  Enable screen reader support. See https://github.com/vadimdemedes/ink/blob/master/readme.md#screen-reader-support
45
45
 
@@ -79,6 +79,10 @@ export type Instance = {
79
79
  Clear output.
80
80
  */
81
81
  clear: () => void;
82
+ /**
83
+ * Manually recalculate layout.
84
+ */
85
+ recalculateLayout: Ink['recalculateLayout'];
82
86
  };
83
87
  /**
84
88
  Mount a component and render the output.
package/build/render.js CHANGED
@@ -27,6 +27,7 @@ const render = (node, options) => {
27
27
  waitUntilExit: instance.waitUntilExit,
28
28
  cleanup: () => instances.delete(inkOptions.stdout),
29
29
  clear: instance.clear,
30
+ recalculateLayout: instance.recalculateLayout,
30
31
  };
31
32
  };
32
33
  export default render;
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,GAAiC,MAAM,UAAU,CAAC;AACzD,OAAO,SAAS,MAAM,gBAAgB,CAAC;AA0FvC;;EAEE;AACF,MAAM,MAAM,GAAG,CACd,IAAe,EACf,OAA4C,EACjC,EAAE;IACb,MAAM,UAAU,GAAe;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,KAAK;QACtB,GAAG,UAAU,CAAC,OAAO,CAAC;KACtB,CAAC;IAEF,MAAM,QAAQ,GAAQ,WAAW,CAChC,UAAU,CAAC,MAAM,EACjB,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CACzB,CAAC;IAEF,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEtB,OAAO;QACN,QAAQ,EAAE,QAAQ,CAAC,MAAM;QACzB,OAAO;YACN,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;QACD,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAClD,KAAK,EAAE,QAAQ,CAAC,KAAK;KACrB,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC;AAEtB,MAAM,UAAU,GAAG,CAClB,SAAyD,EAAE,EAC3C,EAAE;IAClB,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;QAC9B,OAAO;YACN,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;SACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CACnB,MAA0B,EAC1B,cAAyB,EACnB,EAAE;IACR,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAErC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,QAAQ,GAAG,cAAc,EAAE,CAAC;QAC5B,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,GAAqD,MAAM,UAAU,CAAC;AAC7E,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAsGvC;;EAEE;AACF,MAAM,MAAM,GAAG,CACd,IAAe,EACf,OAA4C,EACjC,EAAE;IACb,MAAM,UAAU,GAAe;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,KAAK;QACZ,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI;QAClB,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,KAAK;QACtB,GAAG,UAAU,CAAC,OAAO,CAAC;KACtB,CAAC;IAEF,MAAM,QAAQ,GAAQ,WAAW,CAChC,UAAU,CAAC,MAAM,EACjB,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CACzB,CAAC;IAEF,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEtB,OAAO;QACN,QAAQ,EAAE,QAAQ,CAAC,MAAM;QACzB,OAAO;YACN,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;QACD,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QAClD,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;KAC7C,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC;AAEtB,MAAM,UAAU,GAAG,CAClB,SAAyD,EAAE,EAC3C,EAAE;IAClB,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;QAC9B,OAAO;YACN,MAAM;YACN,KAAK,EAAE,OAAO,CAAC,KAAK;SACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CACnB,MAA0B,EAC1B,cAAyB,EACnB,EAAE;IACR,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAErC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,QAAQ,GAAG,cAAc,EAAE,CAAC;QAC5B,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { type DOMElement } from './dom.js';
2
+ export type ResizeObserverCallback = (entries: ResizeObserverEntry[], observer: ResizeObserver) => void;
3
+ export declare class ResizeObserverEntry {
4
+ readonly target: DOMElement;
5
+ readonly contentRect: {
6
+ width: number;
7
+ height: number;
8
+ };
9
+ constructor(target: DOMElement, contentRect: {
10
+ width: number;
11
+ height: number;
12
+ });
13
+ }
14
+ export default class ResizeObserver {
15
+ private readonly callback;
16
+ private readonly observedElements;
17
+ constructor(callback: ResizeObserverCallback);
18
+ observe(element: DOMElement): void;
19
+ unobserve(element: DOMElement): void;
20
+ disconnect(): void;
21
+ internalTrigger(entries: ResizeObserverEntry[]): void;
22
+ }