@jrichman/ink 7.0.1-beta.8 → 7.0.1-beta.9

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.
@@ -1,19 +1,5 @@
1
- /**
2
- * @license
3
- * Copyright 2026 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
1
  import { type ReactNode } from 'react';
7
2
  import { type Region } from './output.js';
8
- /**
9
- * Renders a React node to an offline Region.
10
- * This is useful for measuring the size of a component before rendering it to the screen,
11
- * or caching complex static renders.
12
- *
13
- * @param node The React node to render.
14
- * @param options Configuration options, such as the `width` of the terminal.
15
- * @returns The cached Region containing the layout and rendered lines.
16
- */
17
3
  export declare const renderToRegion: (node: ReactNode, options: {
18
4
  width: number;
19
5
  }) => Region;
@@ -1,60 +1,61 @@
1
- /**
2
- * @license
3
- * Copyright 2026 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
1
  import React from 'react';
7
2
  import { LegacyRoot } from 'react-reconciler/constants.js';
3
+ import Yoga from 'yoga-layout';
8
4
  import reconciler from './reconciler.js';
9
5
  import { createNode } from './dom.js';
10
6
  import { renderToStatic } from './render-node-to-output.js';
11
7
  import { accessibilityContext } from './components/AccessibilityContext.js';
12
- /**
13
- * Renders a React node to an offline Region.
14
- * This is useful for measuring the size of a component before rendering it to the screen,
15
- * or caching complex static renders.
16
- *
17
- * @param node The React node to render.
18
- * @param options Configuration options, such as the `width` of the terminal.
19
- * @returns The cached Region containing the layout and rendered lines.
20
- */
8
+ const noop = () => { };
9
+ const renderPendingStaticRenderNodes = (node, width) => {
10
+ for (const child of node.childNodes) {
11
+ if (child.nodeName !== '#text') {
12
+ renderPendingStaticRenderNodes(child, width);
13
+ }
14
+ }
15
+ if (node.nodeName !== 'ink-static-render' || node.cachedRender) {
16
+ return;
17
+ }
18
+ const staticWidth = typeof node.style.width === 'number' ? node.style.width : width;
19
+ node.yogaNode?.setWidth(staticWidth);
20
+ node.yogaNode?.calculateLayout(undefined, undefined, Yoga.DIRECTION_LTR);
21
+ renderToStatic(node, {
22
+ calculateLayout: true,
23
+ skipStaticElements: false,
24
+ });
25
+ };
21
26
  export const renderToRegion = (node, options) => {
22
27
  const rootNode = createNode('ink-root');
23
28
  rootNode.yogaNode.setWidth(options.width);
24
29
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
25
- const container = reconciler.createContainer(rootNode, LegacyRoot, null, false, null, `id-${Math.random()}`, () => { }, () => { }, () => { }, () => { }, null);
30
+ const container = reconciler.createContainer(rootNode, LegacyRoot, null, false, null, `id-${Math.random()}`, noop, noop, noop, noop, null);
26
31
  const tree = (React.createElement(accessibilityContext.Provider, { value: { isScreenReaderEnabled: false } }, node));
27
- // In React 18, if we are inside a commit phase (e.g. useLayoutEffect), updateContainerSync might not be fully synchronous.
28
- // Using flushSync forces the reconciler to process the update immediately.
29
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, prefer-destructuring
30
- const flushSync = reconciler.flushSync;
31
- if (typeof flushSync === 'function') {
32
- flushSync(() => {
33
- reconciler.updateContainer(tree, container, null, () => { });
34
- });
35
- }
36
- else {
37
- // @ts-expect-error the types for `react-reconciler` are not up to date with the library.
38
- reconciler.updateContainerSync(tree, container, null, () => { });
39
- // @ts-expect-error the types for `react-reconciler` are not up to date with the library.
40
- reconciler.flushSyncWork();
41
- }
32
+ // @ts-expect-error the types for `react-reconciler` are not up to date with the library.
33
+ reconciler.updateContainerSync(tree, container, null, noop);
34
+ // @ts-expect-error the types for `react-reconciler` are not up to date with the library.
35
+ reconciler.flushSyncWork();
36
+ renderPendingStaticRenderNodes(rootNode, options.width);
42
37
  renderToStatic(rootNode, {
43
38
  calculateLayout: true,
44
39
  skipStaticElements: false,
45
40
  });
41
+ const triggerOnRendered = (n) => {
42
+ if (n.nodeName === 'ink-static-render' && n.cachedRender) {
43
+ n.internal_onRendered?.(n);
44
+ }
45
+ for (const child of n.childNodes) {
46
+ if (child.nodeName !== '#text') {
47
+ triggerOnRendered(child);
48
+ }
49
+ }
50
+ };
51
+ triggerOnRendered(rootNode);
52
+ // @ts-expect-error the types for `react-reconciler` are not up to date with the library.
53
+ reconciler.flushSyncWork();
46
54
  const region = rootNode.cachedRender;
47
- if (typeof flushSync === 'function') {
48
- flushSync(() => {
49
- reconciler.updateContainer(null, container, null, () => { });
50
- });
51
- }
52
- else {
53
- // @ts-expect-error the types for `react-reconciler` are not up to date with the library.
54
- reconciler.updateContainerSync(null, container, null, () => { });
55
- // @ts-expect-error the types for `react-reconciler` are not up to date with the library.
56
- reconciler.flushSyncWork();
57
- }
55
+ // @ts-expect-error the types for `react-reconciler` are not up to date with the library.
56
+ reconciler.updateContainerSync(null, container, null, noop);
57
+ // @ts-expect-error the types for `react-reconciler` are not up to date with the library.
58
+ reconciler.flushSyncWork();
58
59
  return region;
59
60
  };
60
61
  //# sourceMappingURL=render-to-region.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-to-region.js","sourceRoot":"","sources":["../src/render-to-region.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAuB,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,+BAA+B,CAAC;AACzD,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAC,oBAAoB,EAAC,MAAM,sCAAsC,CAAC;AAE1E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC7B,IAAe,EACf,OAAwB,EACf,EAAE;IACX,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE3C,mEAAmE;IACnE,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAC3C,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,EACrB,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,EACR,IAAI,CACJ,CAAC;IAEF,MAAM,IAAI,GAAG,CACZ,oBAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,qBAAqB,EAAE,KAAK,EAAC,IAClE,IAAI,CAC0B,CAChC,CAAC;IAEF,2HAA2H;IAC3H,2EAA2E;IAC3E,yFAAyF;IACzF,MAAM,SAAS,GAAI,UAAkB,CAAC,SAAS,CAAC;IAChD,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACrC,SAAS,CAAC,GAAG,EAAE;YACd,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,yFAAyF;QACzF,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAChE,yFAAyF;QACzF,UAAU,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAED,cAAc,CAAC,QAAQ,EAAE;QACxB,eAAe,EAAE,IAAI;QACrB,kBAAkB,EAAE,KAAK;KACzB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAa,CAAC;IAEtC,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACrC,SAAS,CAAC,GAAG,EAAE;YACd,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,yFAAyF;QACzF,UAAU,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAChE,yFAAyF;QACzF,UAAU,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC,CAAC"}
1
+ {"version":3,"file":"render-to-region.js","sourceRoot":"","sources":["../src/render-to-region.tsx"],"names":[],"mappings":"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"}
package/build/render.d.ts CHANGED
@@ -118,6 +118,13 @@ export type RenderOptions = {
118
118
  * @default false
119
119
  */
120
120
  stickyHeadersInBackbuffer?: boolean;
121
+ /**
122
+ * Maximum number of lines to keep in the terminal backbuffer.
123
+ * This is only supported when using `terminalBuffer` or `renderProcess`.
124
+ *
125
+ * @default 1000
126
+ */
127
+ maxScrollbackLength?: number;
121
128
  cacheToStyledCharacters?: boolean;
122
129
  trackSelection?: boolean;
123
130
  };
@@ -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;AAGnC,OAAO,GAAqD,MAAM,UAAU,CAAC;AAC7E,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAkMvC;;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,4BAA4B,EAAE,KAAK;QACnC,oBAAoB,EAAE,KAAK;QAC3B,yBAAyB,EAAE,KAAK;QAChC,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;QACrB,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;QAC7C,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC3B,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;AAGnC,OAAO,GAAqD,MAAM,UAAU,CAAC;AAC7E,OAAO,SAAS,MAAM,gBAAgB,CAAC;AA2MvC;;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,4BAA4B,EAAE,KAAK;QACnC,oBAAoB,EAAE,KAAK;QAC3B,yBAAyB,EAAE,KAAK;QAChC,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;QACrB,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;QAC7C,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC3B,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jrichman/ink",
3
- "version": "7.0.1-beta.8",
3
+ "version": "7.0.1-beta.9",
4
4
  "description": "React for CLI",
5
5
  "license": "MIT",
6
6
  "repository": "jacob314/ink",