@jrichman/ink 6.6.8 → 7.0.0-beta

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 (78) hide show
  1. package/build/components/Box.js +7 -4
  2. package/build/components/Box.js.map +1 -1
  3. package/build/components/StaticRender.d.ts +1 -1
  4. package/build/components/StaticRender.js +19 -7
  5. package/build/components/StaticRender.js.map +1 -1
  6. package/build/dom.d.ts +8 -3
  7. package/build/dom.js +43 -13
  8. package/build/dom.js.map +1 -1
  9. package/build/get-max-width.js +1 -1
  10. package/build/get-max-width.js.map +1 -1
  11. package/build/ink.d.ts +1 -0
  12. package/build/ink.js +61 -5
  13. package/build/ink.js.map +1 -1
  14. package/build/measure-element.js +25 -16
  15. package/build/measure-element.js.map +1 -1
  16. package/build/measure-text.js +8 -3
  17. package/build/measure-text.js.map +1 -1
  18. package/build/output.d.ts +60 -2
  19. package/build/output.js +259 -66
  20. package/build/output.js.map +1 -1
  21. package/build/reconciler.js +36 -6
  22. package/build/reconciler.js.map +1 -1
  23. package/build/render-background.js +2 -2
  24. package/build/render-background.js.map +1 -1
  25. package/build/render-border.js +2 -2
  26. package/build/render-border.js.map +1 -1
  27. package/build/render-container.js +2 -4
  28. package/build/render-container.js.map +1 -1
  29. package/build/render-node-to-output.js +163 -40
  30. package/build/render-node-to-output.js.map +1 -1
  31. package/build/render-sticky.d.ts +3 -3
  32. package/build/render-sticky.js +18 -18
  33. package/build/render-sticky.js.map +1 -1
  34. package/build/renderer.d.ts +1 -0
  35. package/build/renderer.js +58 -14
  36. package/build/renderer.js.map +1 -1
  37. package/build/resize-observer.js +4 -4
  38. package/build/resize-observer.js.map +1 -1
  39. package/build/scroll.js +3 -3
  40. package/build/scroll.js.map +1 -1
  41. package/build/serialization.js +1 -1
  42. package/build/serialization.js.map +1 -1
  43. package/build/squash-text-nodes.js +15 -6
  44. package/build/squash-text-nodes.js.map +1 -1
  45. package/build/styled-line.d.ts +8 -0
  46. package/build/styled-line.js +438 -141
  47. package/build/styled-line.js.map +1 -1
  48. package/build/terminal-buffer.d.ts +1 -0
  49. package/build/terminal-buffer.js +198 -51
  50. package/build/terminal-buffer.js.map +1 -1
  51. package/build/tokenize.d.ts +1 -0
  52. package/build/tokenize.js +146 -0
  53. package/build/tokenize.js.map +1 -1
  54. package/build/worker/animation-controller.js +1 -1
  55. package/build/worker/animation-controller.js.map +1 -1
  56. package/build/worker/canvas.js +15 -3
  57. package/build/worker/canvas.js.map +1 -1
  58. package/build/worker/compositor.js +2 -1
  59. package/build/worker/compositor.js.map +1 -1
  60. package/build/worker/render-worker.d.ts +15 -5
  61. package/build/worker/render-worker.js +34 -28
  62. package/build/worker/render-worker.js.map +1 -1
  63. package/build/worker/scene-manager.d.ts +1 -1
  64. package/build/worker/scene-manager.js +28 -23
  65. package/build/worker/scene-manager.js.map +1 -1
  66. package/build/worker/scroll-optimizer.d.ts +1 -1
  67. package/build/worker/scroll-optimizer.js +3 -3
  68. package/build/worker/scroll-optimizer.js.map +1 -1
  69. package/build/worker/terminal-writer.d.ts +0 -1
  70. package/build/worker/terminal-writer.js +13 -8
  71. package/build/worker/terminal-writer.js.map +1 -1
  72. package/build/worker/worker-entry.js +1 -2
  73. package/build/worker/worker-entry.js.map +1 -1
  74. package/package.json +3 -3
  75. package/readme.md +27 -8
  76. package/build/wrap-text.d.ts +0 -6
  77. package/build/wrap-text.js +0 -120
  78. package/build/wrap-text.js.map +0 -1
@@ -7,6 +7,12 @@ import { backgroundContext } from './BackgroundContext.js';
7
7
  const Box = forwardRef(({ children, stickyChildren, backgroundColor, 'aria-label': ariaLabel, 'aria-hidden': ariaHidden, 'aria-role': role, 'aria-state': ariaState, sticky, opaque, scrollbar = true, stableScrollback = false, ...style }, ref) => {
8
8
  const { isScreenReaderEnabled } = useContext(accessibilityContext);
9
9
  const label = ariaLabel ? React.createElement("ink-text", null, ariaLabel) : undefined;
10
+ const accessibility = role || ariaState
11
+ ? {
12
+ role,
13
+ state: ariaState,
14
+ }
15
+ : undefined;
10
16
  if (isScreenReaderEnabled && ariaHidden) {
11
17
  return null;
12
18
  }
@@ -20,10 +26,7 @@ const Box = forwardRef(({ children, stickyChildren, backgroundColor, 'aria-label
20
26
  stableScrollback,
21
27
  overflowX: style.overflowX ?? style.overflow ?? 'visible',
22
28
  overflowY: style.overflowY ?? style.overflow ?? 'visible',
23
- }, internal_accessibility: {
24
- role,
25
- state: ariaState,
26
- }, sticky: sticky, opaque: opaque, scrollbar: scrollbar, stableScrollback: stableScrollback },
29
+ }, internal_accessibility: accessibility, sticky: sticky, opaque: opaque, scrollbar: scrollbar, stableScrollback: stableScrollback },
27
30
  isScreenReaderEnabled && label ? label : children,
28
31
  sticky && stickyChildren && !isScreenReaderEnabled && (React.createElement("ink-box", { internalStickyAlternate: true, style: {
29
32
  position: 'absolute',
@@ -1 +1 @@
1
- {"version":3,"file":"Box.js","sourceRoot":"","sources":["../../src/components/Box.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACb,UAAU,EACV,UAAU,GAGV,MAAM,OAAO,CAAC;AAIf,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAgFzD;;EAEE;AACF,MAAM,GAAG,GAAG,UAAU,CACrB,CACC,EACC,QAAQ,EACR,cAAc,EACd,eAAe,EACf,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,UAAU,EACzB,WAAW,EAAE,IAAI,EACjB,YAAY,EAAE,SAAS,EACvB,MAAM,EACN,MAAM,EACN,SAAS,GAAG,IAAI,EAChB,gBAAgB,GAAG,KAAK,EACxB,GAAG,KAAK,EACR,EACD,GAAG,EACF,EAAE;IACH,MAAM,EAAC,qBAAqB,EAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,sCAAW,SAAS,CAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,IAAI,qBAAqB,IAAI,UAAU,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,CAClB,iCACC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE;YACN,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,GAAG,KAAK;YACR,eAAe;YACf,gBAAgB;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS;YACzD,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS;SACzD,EACD,sBAAsB,EAAE;YACvB,IAAI;YACJ,KAAK,EAAE,SAAS;SAChB,EACD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB;QAEjC,qBAAqB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;QACjD,MAAM,IAAI,cAAc,IAAI,CAAC,qBAAqB,IAAI,CACtD,iCACC,uBAAuB,QACvB,KAAK,EAAE;gBACN,QAAQ,EAAE,UAAU;gBACpB,GAAG,KAAK;aACR,IAEA,cAAc,CACN,CACV,CACQ,CACV,CAAC;IAEF,yEAAyE;IACzE,IAAI,eAAe,EAAE,CAAC;QACrB,OAAO,CACN,oBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,eAAe,IAChD,UAAU,CACiB,CAC7B,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC,CACD,CAAC;AAEF,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;AAExB,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"Box.js","sourceRoot":"","sources":["../../src/components/Box.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACb,UAAU,EACV,UAAU,GAGV,MAAM,OAAO,CAAC;AAIf,OAAO,EAAC,oBAAoB,EAAC,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AAgFzD;;EAEE;AACF,MAAM,GAAG,GAAG,UAAU,CACrB,CACC,EACC,QAAQ,EACR,cAAc,EACd,eAAe,EACf,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,UAAU,EACzB,WAAW,EAAE,IAAI,EACjB,YAAY,EAAE,SAAS,EACvB,MAAM,EACN,MAAM,EACN,SAAS,GAAG,IAAI,EAChB,gBAAgB,GAAG,KAAK,EACxB,GAAG,KAAK,EACR,EACD,GAAG,EACF,EAAE;IACH,MAAM,EAAC,qBAAqB,EAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,sCAAW,SAAS,CAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,aAAa,GAClB,IAAI,IAAI,SAAS;QAChB,CAAC,CAAC;YACA,IAAI;YACJ,KAAK,EAAE,SAAS;SAChB;QACF,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,qBAAqB,IAAI,UAAU,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,CAClB,iCACC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE;YACN,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,KAAK;YACpB,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,GAAG,KAAK;YACR,eAAe;YACf,gBAAgB;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS;YACzD,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS;SACzD,EACD,sBAAsB,EAAE,aAAa,EACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB;QAEjC,qBAAqB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;QACjD,MAAM,IAAI,cAAc,IAAI,CAAC,qBAAqB,IAAI,CACtD,iCACC,uBAAuB,QACvB,KAAK,EAAE;gBACN,QAAQ,EAAE,UAAU;gBACpB,GAAG,KAAK;aACR,IAEA,cAAc,CACN,CACV,CACQ,CACV,CAAC;IAEF,yEAAyE;IACzE,IAAI,eAAe,EAAE,CAAC;QACrB,OAAO,CACN,oBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,eAAe,IAChD,UAAU,CACiB,CAC7B,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC,CACD,CAAC;AAEF,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;AAExB,eAAe,GAAG,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import React, { type ReactNode } from 'react';
2
2
  import { type Styles } from '../styles.js';
3
3
  export type Props = {
4
- readonly children: ReactNode;
4
+ readonly children: () => ReactNode;
5
5
  readonly width: number;
6
6
  readonly style?: Styles;
7
7
  };
@@ -1,7 +1,21 @@
1
- import React, { useRef, useEffect } from 'react';
2
- import { renderToStatic } from '../render-node-to-output.js';
1
+ import React, { useRef, useEffect, useState } from 'react';
2
+ import { markNodeAsDirty } from '../dom.js';
3
3
  export default function StaticRender({ children, width, style }) {
4
4
  const ref = useRef(null);
5
+ const [isRendered, setIsRendered] = useState(false);
6
+ const prevChildren = useRef(children);
7
+ let shouldRender = !isRendered;
8
+ if (children !== prevChildren.current) {
9
+ prevChildren.current = children;
10
+ shouldRender = true;
11
+ if (isRendered) {
12
+ setIsRendered(false);
13
+ }
14
+ if (ref.current) {
15
+ ref.current.cachedRender = undefined;
16
+ markNodeAsDirty(ref.current);
17
+ }
18
+ }
5
19
  useEffect(() => {
6
20
  const node = ref.current;
7
21
  return () => {
@@ -10,10 +24,8 @@ export default function StaticRender({ children, width, style }) {
10
24
  }
11
25
  };
12
26
  }, []);
13
- return (React.createElement("ink-static-render", { ref: ref, style: { ...style, width }, internalOnBeforeRender: (node) => {
14
- if (node && !node.cachedRender) {
15
- renderToStatic(node);
16
- }
17
- } }, children));
27
+ return (React.createElement("ink-static-render", { ref: ref, style: { ...style, width }, internal_onRendered: () => {
28
+ setIsRendered(true);
29
+ } }, shouldRender ? children() : null));
18
30
  }
19
31
  //# sourceMappingURL=StaticRender.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticRender.js","sourceRoot":"","sources":["../../src/components/StaticRender.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,MAAM,EAAE,SAAS,EAAiB,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAS3D,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAQ;IACnE,MAAM,GAAG,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;IAErC,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;QACzB,OAAO,GAAG,EAAE;YACX,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC/B,CAAC;QACF,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,2CACC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,EAAC,GAAG,KAAK,EAAE,KAAK,EAAC,EACxB,sBAAsB,EAAE,CAAC,IAAgB,EAAE,EAAE;YAC5C,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChC,cAAc,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACF,CAAC,IAEA,QAAQ,CACU,CACpB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"StaticRender.js","sourceRoot":"","sources":["../../src/components/StaticRender.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAiB,MAAM,OAAO,CAAC;AACzE,OAAO,EAAC,eAAe,EAAkB,MAAM,WAAW,CAAC;AAS3D,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAQ;IACnE,MAAM,GAAG,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;IACrC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEtC,IAAI,YAAY,GAAG,CAAC,UAAU,CAAC;IAE/B,IAAI,QAAQ,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;QACvC,YAAY,CAAC,OAAO,GAAG,QAAQ,CAAC;QAChC,YAAY,GAAG,IAAI,CAAC;QACpB,IAAI,UAAU,EAAE,CAAC;YAChB,aAAa,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,GAAG,CAAC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;YACrC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACF,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;QACzB,OAAO,GAAG,EAAE;YACX,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC/B,CAAC;QACF,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,2CACC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,EAAC,GAAG,KAAK,EAAE,KAAK,EAAC,EACxB,mBAAmB,EAAE,GAAG,EAAE;YACzB,aAAa,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,IAEA,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CACd,CACpB,CAAC;AACH,CAAC"}
package/build/dom.d.ts CHANGED
@@ -44,10 +44,11 @@ export type DOMElement = {
44
44
  internal_transform?: OutputTransformer;
45
45
  internal_terminalCursorFocus?: boolean;
46
46
  internal_terminalCursorPosition?: number;
47
- internalOnBeforeRender?: (node: DOMElement, options?: {
48
- trackSelection?: boolean;
49
- }) => void;
47
+ internal_onRendered?: () => void;
50
48
  cachedRender?: Region;
49
+ cachedRegion?: Region;
50
+ cachedRegionWithStatic?: Region;
51
+ regionCacheInitialized?: boolean;
51
52
  internal_accessibility?: {
52
53
  role?: 'button' | 'checkbox' | 'combobox' | 'list' | 'listbox' | 'listitem' | 'menu' | 'menuitem' | 'option' | 'progressbar' | 'radio' | 'radiogroup' | 'tab' | 'tablist' | 'table' | 'textbox' | 'timer' | 'toolbar';
53
54
  state?: {
@@ -63,6 +64,7 @@ export type DOMElement = {
63
64
  };
64
65
  };
65
66
  isStaticDirty?: boolean;
67
+ isYogaTreeDetached?: boolean;
66
68
  staticNode?: DOMElement;
67
69
  onComputeLayout?: () => void;
68
70
  onRender?: () => void;
@@ -108,6 +110,9 @@ export declare const setAttribute: (node: DOMElement, key: string, value: DOMNod
108
110
  export declare const setStyle: (node: DOMNode, style: Styles) => void;
109
111
  export declare const createTextNode: (text: string) => TextNode;
110
112
  export declare const setCachedRender: (node: DOMElement, cachedRender: Region) => void;
113
+ export declare const getCachedRegion: (node: DOMElement, skipStaticElements: boolean) => Region | undefined;
114
+ export declare const setCachedRegion: (node: DOMElement, cachedRegion: Region, skipStaticElements: boolean) => void;
115
+ export declare const markNodeAsDirty: (node?: DOMNode) => void;
111
116
  export declare const setTextNodeValue: (node: TextNode, text: string) => void;
112
117
  export declare const getPathToRoot: (node: DOMNode) => DOMNode[];
113
118
  export declare const isNodeSelectable: (node: DOMElement) => boolean;
package/build/dom.js CHANGED
@@ -34,9 +34,9 @@ export const appendChildNode = (node, childNode) => {
34
34
  if (childNode.yogaNode) {
35
35
  node.yogaNode?.insertChild(childNode.yogaNode, node.yogaNode.getChildCount());
36
36
  }
37
- if (node.nodeName === 'ink-text' || node.nodeName === 'ink-virtual-text') {
38
- markNodeAsDirty(node);
39
- }
37
+ markNodeAsDirty(node.nodeName === 'ink-static-render' && node.cachedRender
38
+ ? node.parentNode
39
+ : node);
40
40
  };
41
41
  export const insertBeforeNode = (node, newChildNode, beforeChildNode) => {
42
42
  if (newChildNode.parentNode) {
@@ -55,9 +55,9 @@ export const insertBeforeNode = (node, newChildNode, beforeChildNode) => {
55
55
  if (newChildNode.yogaNode) {
56
56
  node.yogaNode?.insertChild(newChildNode.yogaNode, node.yogaNode.getChildCount());
57
57
  }
58
- if (node.nodeName === 'ink-text' || node.nodeName === 'ink-virtual-text') {
59
- markNodeAsDirty(node);
60
- }
58
+ markNodeAsDirty(node.nodeName === 'ink-static-render' && node.cachedRender
59
+ ? node.parentNode
60
+ : node);
61
61
  };
62
62
  export const removeChildNode = (node, removeNode) => {
63
63
  if (removeNode.yogaNode) {
@@ -67,13 +67,13 @@ export const removeChildNode = (node, removeNode) => {
67
67
  }
68
68
  }
69
69
  removeNode.parentNode = undefined;
70
- if (node.nodeName === 'ink-text' || node.nodeName === 'ink-virtual-text') {
71
- markNodeAsDirty(node);
72
- }
73
70
  const index = node.childNodes.indexOf(removeNode);
74
71
  if (index >= 0) {
75
72
  node.childNodes.splice(index, 1);
76
73
  }
74
+ markNodeAsDirty(node.nodeName === 'ink-static-render' && node.cachedRender
75
+ ? node.parentNode
76
+ : node);
77
77
  };
78
78
  export const setAttribute = (node, key, value) => {
79
79
  if (key === 'internal_accessibility') {
@@ -110,7 +110,7 @@ const measureTextNode = function (node, width) {
110
110
  }
111
111
  const textWrap = node.style?.textWrap ?? 'wrap';
112
112
  const wrappedLines = textWrap === 'wrap' || textWrap.startsWith('truncate')
113
- ? wrapOrTruncateStyledChars(styledChars, width, textWrap)
113
+ ? wrapOrTruncateStyledChars(styledChars, Math.floor(width), textWrap)
114
114
  : [styledChars];
115
115
  const newWidth = widestLineFromStyledChars(wrappedLines);
116
116
  return { width: newWidth, height: wrappedLines.length };
@@ -129,12 +129,42 @@ export const setCachedRender = (node, cachedRender) => {
129
129
  while (node.yogaNode.getChildCount() > 0) {
130
130
  node.yogaNode.removeChild(node.yogaNode.getChild(0));
131
131
  }
132
+ node.isYogaTreeDetached = true;
132
133
  }
133
134
  };
134
- const markNodeAsDirty = (node) => {
135
+ export const getCachedRegion = (node, skipStaticElements) => skipStaticElements ? node.cachedRegion : node.cachedRegionWithStatic;
136
+ export const setCachedRegion = (node, cachedRegion, skipStaticElements) => {
137
+ if (skipStaticElements) {
138
+ node.cachedRegion = cachedRegion;
139
+ return;
140
+ }
141
+ node.cachedRegionWithStatic = cachedRegion;
142
+ };
143
+ const invalidateNodeCaches = (node) => {
144
+ let current = node;
145
+ while (current) {
146
+ if ('childNodes' in current) {
147
+ const shouldPreserveStaticCache = current !== node &&
148
+ current.nodeName === 'ink-static-render' &&
149
+ Boolean(current.cachedRender);
150
+ if (!shouldPreserveStaticCache) {
151
+ current.cachedRender = undefined;
152
+ current.cachedRegion = undefined;
153
+ current.cachedRegionWithStatic = undefined;
154
+ }
155
+ }
156
+ current = current.parentNode;
157
+ }
158
+ };
159
+ export const markNodeAsDirty = (node) => {
135
160
  // Mark closest Yoga node as dirty to measure text dimensions again
136
- const yogaNode = findClosestYogaNode(node);
137
- yogaNode?.markDirty();
161
+ if (node?.nodeName === '#text' ||
162
+ node?.nodeName === 'ink-text' ||
163
+ node?.nodeName === 'ink-virtual-text') {
164
+ const yogaNode = findClosestYogaNode(node);
165
+ yogaNode?.markDirty();
166
+ }
167
+ invalidateNodeCaches(node);
138
168
  };
139
169
  export const setTextNodeValue = (node, text) => {
140
170
  if (typeof text !== 'string') {
package/build/dom.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAAA,OAAO,IAA6B,MAAM,aAAa,CAAC;AAExD,OAAO,EACN,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAC,yBAAyB,EAAC,MAAM,gBAAgB,CAAC;AACzD,OAAO,eAAe,MAAM,wBAAwB,CAAC;AAyIrD,IAAI,SAAS,GAAG,CAAC,CAAC;AAElB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAsB,EAAc,EAAE;IAChE,MAAM,IAAI,GAAe;QACxB,QAAQ;QACR,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,QAAQ,KAAK,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAE1E,sBAAsB,EAAE,EAAE;QAC1B,cAAc,EAAE,KAAK;QACrB,uBAAuB,EAAE,KAAK;QAC9B,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,IAAI;QACvB,oBAAoB,EAAE,CAAC;QACvB,yBAAyB,EAAE,KAAK;QAChC,UAAU,EAAE,SAAS,EAAE;KACvB,CAAC;IAEF,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,IAAgB,EAChB,SAAqB,EACd,EAAE;IACT,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QAC1B,eAAe,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEhC,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,EAAE,WAAW,CACzB,SAAS,CAAC,QAAQ,EAClB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAC7B,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QAC1E,eAAe,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC/B,IAAgB,EAChB,YAAqB,EACrB,eAAwB,EACjB,EAAE;IACT,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;QAC7B,eAAe,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;IAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACvD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QAC/C,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO;IACR,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEnC,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,EAAE,WAAW,CACzB,YAAY,CAAC,QAAQ,EACrB,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAC7B,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QAC1E,eAAe,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,IAAgB,EAChB,UAAmB,EACZ,EAAE;IACT,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAEvD,IAAI,cAAc,EAAE,CAAC;YACpB,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;IAED,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;IAElC,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QAC1E,eAAe,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC3B,IAAgB,EAChB,GAAW,EACX,KAAuB,EAChB,EAAE;IACT,IAAI,GAAG,KAAK,wBAAwB,EAAE,CAAC;QACtC,IAAI,CAAC,sBAAsB,GAAG,KAA6C,CAAC;QAC5E,OAAO;IACR,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAE,KAAa,EAAQ,EAAE;IAC9D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAY,EAAE;IACxD,MAAM,IAAI,GAAa;QACtB,QAAQ,EAAE,OAAO;QACjB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,EAAE;KACT,CAAC;IAEF,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAE7B,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,UACvB,IAAa,EACb,KAAa;IAEb,MAAM,WAAW,GAAG,kBAAkB,CACrC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAClE,CAAC;IAEF,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEnD,4CAA4C;IAC5C,IAAI,UAAU,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;QAC/B,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,IAAI,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,MAAM,CAAC;IAChD,MAAM,YAAY,GACjB,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;QACrD,CAAC,CAAC,yBAAyB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC;QACzD,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAElB,MAAM,QAAQ,GAAG,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACzD,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAC,CAAC;AACvD,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,IAAc,EAAwB,EAAE;IACpE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAgB,EAAE,YAAoB,EAAE,EAAE;IACzE,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IAEjC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAc,EAAQ,EAAE;IAChD,mEAAmE;IACnE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC3C,QAAQ,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAc,EAAE,IAAY,EAAQ,EAAE;IACtE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAa,EAAa,EAAE;IACzD,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAwB,IAAI,CAAC;IAExC,OAAO,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAgB,EAAW,EAAE;IAC7D,IAAI,OAAO,GAA2B,IAAI,CAAC;IAE3C,OAAO,OAAO,EAAE,CAAC;QAChB,MAAM,EAAC,UAAU,EAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAEnC,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC"}
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import Yoga from 'yoga-layout';
2
2
  const getMaxWidth = (yogaNode) => {
3
- return (yogaNode.getComputedWidth() -
3
+ return Math.round(Math.min(yogaNode.getComputedWidth(), yogaNode.getParent()?.getComputedWidth() ?? yogaNode.getComputedWidth()) -
4
4
  yogaNode.getComputedPadding(Yoga.EDGE_LEFT) -
5
5
  yogaNode.getComputedPadding(Yoga.EDGE_RIGHT) -
6
6
  yogaNode.getComputedBorder(Yoga.EDGE_LEFT) -
@@ -1 +1 @@
1
- {"version":3,"file":"get-max-width.js","sourceRoot":"","sources":["../src/get-max-width.ts"],"names":[],"mappings":"AAAA,OAAO,IAA6B,MAAM,aAAa,CAAC;AAExD,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAE,EAAE;IAC1C,OAAO,CACN,QAAQ,CAAC,gBAAgB,EAAE;QAC3B,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3C,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5C,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1C,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAC3C,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"get-max-width.js","sourceRoot":"","sources":["../src/get-max-width.ts"],"names":[],"mappings":"AAAA,OAAO,IAA6B,MAAM,aAAa,CAAC;AAExD,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAE,EAAE;IAC1C,OAAO,IAAI,CAAC,KAAK,CAChB,IAAI,CAAC,GAAG,CACP,QAAQ,CAAC,gBAAgB,EAAE,EAC3B,QAAQ,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CACvE;QACA,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3C,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;QAC5C,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;QAC1C,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAC5C,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
package/build/ink.d.ts CHANGED
@@ -104,6 +104,7 @@ export default class Ink {
104
104
  * The goal is to remove this method making terminal buffer required.
105
105
  */
106
106
  private renderLegacy;
107
+ private prepareYogaTree;
107
108
  private markAllTextNodesDirty;
108
109
  private resetScrollbackPadding;
109
110
  private callOnRender;
package/build/ink.js CHANGED
@@ -9,10 +9,12 @@ import patchConsole from 'patch-console';
9
9
  import { LegacyRoot } from 'react-reconciler/constants.js';
10
10
  import Yoga from 'yoga-layout';
11
11
  import wrapAnsi from 'wrap-ansi';
12
+ import applyStyles from './styles.js';
12
13
  import reconciler from './reconciler.js';
13
14
  import render from './renderer.js';
14
15
  import * as dom from './dom.js';
15
16
  import logUpdate, { positionImeCursor } from './log-update.js';
17
+ import { renderToStatic } from './render-node-to-output.js';
16
18
  import instances from './instances.js';
17
19
  import App from './components/App.js';
18
20
  import { accessibilityContext as AccessibilityContext } from './components/AccessibilityContext.js';
@@ -190,17 +192,21 @@ export default class Ink {
190
192
  rejectExitPromise = () => { };
191
193
  unsubscribeExit = () => { };
192
194
  calculateLayout = () => {
195
+ const flushLayoutObservers = (node, isResized) => {
196
+ const observerEntries = new Map();
197
+ this.calculateLayoutAndTriggerObservers(node, observerEntries, isResized);
198
+ for (const [observer, entries] of observerEntries) {
199
+ observer.internalTrigger(entries);
200
+ }
201
+ };
202
+ this.prepareYogaTree(this.rootNode);
193
203
  // The 'columns' property can be undefined or 0 when not using a TTY.
194
204
  // In that case we fall back to 80.
195
205
  const terminalWidth = this.options.stdout.columns ?? 80;
196
206
  this.rootNode.yogaNode.setWidth(terminalWidth);
197
207
  this.rootNode.yogaNode.calculateLayout(undefined, undefined, Yoga.DIRECTION_LTR);
198
- const observerEntries = new Map();
199
- this.calculateLayoutAndTriggerObservers(this.rootNode, observerEntries, this.isTerminalResized);
208
+ flushLayoutObservers(this.rootNode, this.isTerminalResized);
200
209
  this.isTerminalResized = false;
201
- for (const [observer, entries] of observerEntries) {
202
- observer.internalTrigger(entries);
203
- }
204
210
  };
205
211
  calculateLayoutAndTriggerObservers(node, observerEntries, isTerminalResized = false) {
206
212
  if (node.nodeName === 'ink-box') {
@@ -241,6 +247,7 @@ export default class Ink {
241
247
  selection: this.selection,
242
248
  selectionStyle: this.options.selectionStyle,
243
249
  skipScrollbars: Boolean(this.terminalBuffer),
250
+ terminalBuffer: Boolean(this.terminalBuffer),
244
251
  });
245
252
  if (this.terminalBuffer && root) {
246
253
  await this.renderWithTerminalBuffer(root, cursorPosition);
@@ -546,7 +553,56 @@ export default class Ink {
546
553
  this.lastOutputHeight = outputHeight;
547
554
  this.lastCursorPosition = cursorPosition;
548
555
  }
556
+ prepareYogaTree(node) {
557
+ const flushLayoutObservers = (node, isResized) => {
558
+ const observerEntries = new Map();
559
+ this.calculateLayoutAndTriggerObservers(node, observerEntries, isResized);
560
+ for (const [observer, entries] of observerEntries) {
561
+ observer.internalTrigger(entries);
562
+ }
563
+ };
564
+ if (node.isYogaTreeDetached && !node.cachedRender && node.yogaNode) {
565
+ // Re-apply styles to revert any fixed width/height set by setCachedRender
566
+ node.yogaNode.setWidthAuto();
567
+ node.yogaNode.setHeightAuto();
568
+ applyStyles(node.yogaNode, node.style);
569
+ while (node.yogaNode.getChildCount() > 0) {
570
+ node.yogaNode.removeChild(node.yogaNode.getChild(0));
571
+ }
572
+ let yogaIndex = 0;
573
+ for (const child of node.childNodes) {
574
+ const domChild = child;
575
+ if (child.nodeName !== '#text' && domChild.yogaNode) {
576
+ node.yogaNode.insertChild(domChild.yogaNode, yogaIndex);
577
+ yogaIndex++;
578
+ }
579
+ }
580
+ node.isYogaTreeDetached = false;
581
+ this.markAllTextNodesDirty(node);
582
+ }
583
+ for (const child of node.childNodes) {
584
+ if (child.nodeName !== '#text') {
585
+ this.prepareYogaTree(child);
586
+ }
587
+ }
588
+ if (node.nodeName === 'ink-static-render' && !node.cachedRender) {
589
+ const terminalWidth = this.options.stdout.columns ?? 80;
590
+ const { width } = node.style;
591
+ if (node.yogaNode) {
592
+ node.yogaNode.setWidth(typeof width === 'number' ? width : terminalWidth);
593
+ node.yogaNode.calculateLayout(undefined, undefined, Yoga.DIRECTION_LTR);
594
+ }
595
+ flushLayoutObservers(node, false);
596
+ renderToStatic(node, {
597
+ skipStaticElements: false,
598
+ trackSelection: this.options.trackSelection,
599
+ });
600
+ }
601
+ }
549
602
  markAllTextNodesDirty(node) {
603
+ if (node.cachedRender) {
604
+ return;
605
+ }
550
606
  if (node.nodeName === 'ink-text' && node.yogaNode) {
551
607
  node.yogaNode.markDirty();
552
608
  }
package/build/ink.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ink.js","sourceRoot":"","sources":["../src/ink.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ink.js","sourceRoot":"","sources":["../src/ink.tsx"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@ import { processLayout } from './layout.js';
10
10
  Measure the dimensions of a particular `<Box>` element.
11
11
  */
12
12
  const measureElement = (node) => ({
13
- width: node.yogaNode?.getComputedWidth() ?? 0,
14
- height: node.yogaNode?.getComputedHeight() ?? 0,
13
+ width: Math.round(node.yogaNode?.getComputedWidth() ?? 0),
14
+ height: Math.round(node.yogaNode?.getComputedHeight() ?? 0),
15
15
  });
16
16
  /**
17
17
  * Get an element's inner width.
@@ -24,7 +24,7 @@ export const getInnerWidth = (node) => {
24
24
  const width = yogaNode.getComputedWidth() ?? 0;
25
25
  const borderLeft = yogaNode.getComputedBorder(Yoga.EDGE_LEFT);
26
26
  const borderRight = yogaNode.getComputedBorder(Yoga.EDGE_RIGHT);
27
- return width - borderLeft - borderRight;
27
+ return Math.round(width - borderLeft - borderRight);
28
28
  };
29
29
  /*
30
30
  * Get an element's inner height.
@@ -37,7 +37,7 @@ export const getInnerHeight = (node) => {
37
37
  const height = yogaNode.getComputedHeight() ?? 0;
38
38
  const borderTop = yogaNode.getComputedBorder(Yoga.EDGE_TOP);
39
39
  const borderBottom = yogaNode.getComputedBorder(Yoga.EDGE_BOTTOM);
40
- return height - borderTop - borderBottom;
40
+ return Math.round(height - borderTop - borderBottom);
41
41
  };
42
42
  /**
43
43
  * Get an element's position and dimensions relative to the root.
@@ -68,7 +68,12 @@ export const getBoundingBox = (node) => {
68
68
  }
69
69
  parent = parent.parentNode;
70
70
  }
71
- return { x, y, width, height };
71
+ return {
72
+ x: Math.round(x),
73
+ y: Math.round(y),
74
+ width: Math.round(width),
75
+ height: Math.round(height),
76
+ };
72
77
  };
73
78
  export function calculateScrollbarThumb(options) {
74
79
  const { scrollbarDimension, clientDimension, scrollDimension, scrollPosition, axis, } = options;
@@ -247,12 +252,12 @@ export const collectSortedFragments = (node) => {
247
252
  fragments.push({
248
253
  node: currentNode,
249
254
  text,
250
- x,
251
- y,
252
- visualX,
253
- visualY,
254
- width: currentNode.yogaNode?.getComputedWidth() ?? 0,
255
- height: currentNode.yogaNode?.getComputedHeight() ?? 0,
255
+ x: Math.round(x),
256
+ y: Math.round(y),
257
+ visualX: Math.round(visualX),
258
+ visualY: Math.round(visualY),
259
+ width: Math.round(currentNode.yogaNode?.getComputedWidth() ?? 0),
260
+ height: Math.round(currentNode.yogaNode?.getComputedHeight() ?? 0),
256
261
  });
257
262
  return { v: 0, h: 0, hasContent: true };
258
263
  }
@@ -331,7 +336,11 @@ export const collectSortedFragments = (node) => {
331
336
  }
332
337
  return a.x - b.x;
333
338
  });
334
- return { fragments, removedVertical: v, removedHorizontal: h };
339
+ return {
340
+ fragments,
341
+ removedVertical: Math.round(v),
342
+ removedHorizontal: Math.round(h),
343
+ };
335
344
  };
336
345
  export const getText = (node) => {
337
346
  if (node.nodeName === '#text') {
@@ -375,7 +384,7 @@ export const getText = (node) => {
375
384
  });
376
385
  // Trailing newlines
377
386
  const { removedVertical } = collectSortedFragments(node);
378
- const height = node.yogaNode?.getComputedHeight() ?? 0;
387
+ const height = Math.round(node.yogaNode?.getComputedHeight() ?? 0);
379
388
  const innerHeight = height - removedVertical;
380
389
  if (innerHeight > lineBottom) {
381
390
  state.result += '\n'.repeat(innerHeight - lineBottom);
@@ -594,7 +603,7 @@ export const getTextOffset = (node, x, y, options) => {
594
603
  if (state.trailingCandidate !== -1) {
595
604
  return state.trailingCandidate;
596
605
  }
597
- const height = node.yogaNode?.getComputedHeight() ?? 0;
606
+ const height = Math.round(node.yogaNode?.getComputedHeight() ?? 0);
598
607
  const innerHeight = height - removedVertical;
599
608
  if (innerHeight > state.lineBottom) {
600
609
  const gap = innerHeight - state.lineBottom;
@@ -803,7 +812,7 @@ export function getRelativeTop(node, ancestor) {
803
812
  if (ancestor !== undefined && parent !== ancestor) {
804
813
  return undefined;
805
814
  }
806
- return top;
815
+ return Math.round(top);
807
816
  }
808
817
  export function getRelativeLeft(node, ancestor) {
809
818
  if (!node.yogaNode || node === ancestor) {
@@ -820,6 +829,6 @@ export function getRelativeLeft(node, ancestor) {
820
829
  if (ancestor !== undefined && parent !== ancestor) {
821
830
  return undefined;
822
831
  }
823
- return left;
832
+ return Math.round(left);
824
833
  }
825
834
  //# sourceMappingURL=measure-element.js.map