ink 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,24 @@ import { type Except } from 'type-fest';
3
3
  import { type Styles } from '../styles.js';
4
4
  import { type DOMElement } from '../dom.js';
5
5
  export type Props = Except<Styles, 'textWrap'> & {
6
+ /**
7
+ * Size of the gap between an element's columns.
8
+ *
9
+ * @default 0
10
+ */
11
+ readonly columnGap?: number;
12
+ /**
13
+ * Size of the gap between element's rows.
14
+ *
15
+ * @default 0
16
+ */
17
+ readonly rowGap?: number;
18
+ /**
19
+ * Size of the gap between an element's columns and rows. Shorthand for `columnGap` and `rowGap`.
20
+ *
21
+ * @default 0
22
+ */
23
+ readonly gap?: number;
6
24
  /**
7
25
  * Margin on all sides. Equivalent to setting `marginTop`, `marginBottom`, `marginLeft` and `marginRight`.
8
26
  *
@@ -39,11 +57,47 @@ export type Props = Except<Styles, 'textWrap'> & {
39
57
  * @default 0
40
58
  */
41
59
  readonly paddingY?: number;
60
+ /**
61
+ * Behavior for an element's overflow in both directions.
62
+ *
63
+ * @default 'visible'
64
+ */
65
+ readonly overflow?: 'visible' | 'hidden';
66
+ /**
67
+ * Behavior for an element's overflow in horizontal direction.
68
+ *
69
+ * @default 'visible'
70
+ */
71
+ readonly overflowX?: 'visible' | 'hidden';
72
+ /**
73
+ * Behavior for an element's overflow in vertical direction.
74
+ *
75
+ * @default 'visible'
76
+ */
77
+ readonly overflowY?: 'visible' | 'hidden';
42
78
  };
43
79
  /**
44
80
  * `<Box>` is an essential Ink component to build your layout. It's like `<div style="display: flex">` in the browser.
45
81
  */
46
82
  declare const Box: React.ForwardRefExoticComponent<Except<Styles, "textWrap"> & {
83
+ /**
84
+ * Size of the gap between an element's columns.
85
+ *
86
+ * @default 0
87
+ */
88
+ readonly columnGap?: number | undefined;
89
+ /**
90
+ * Size of the gap between element's rows.
91
+ *
92
+ * @default 0
93
+ */
94
+ readonly rowGap?: number | undefined;
95
+ /**
96
+ * Size of the gap between an element's columns and rows. Shorthand for `columnGap` and `rowGap`.
97
+ *
98
+ * @default 0
99
+ */
100
+ readonly gap?: number | undefined;
47
101
  /**
48
102
  * Margin on all sides. Equivalent to setting `marginTop`, `marginBottom`, `marginLeft` and `marginRight`.
49
103
  *
@@ -80,6 +134,24 @@ declare const Box: React.ForwardRefExoticComponent<Except<Styles, "textWrap"> &
80
134
  * @default 0
81
135
  */
82
136
  readonly paddingY?: number | undefined;
137
+ /**
138
+ * Behavior for an element's overflow in both directions.
139
+ *
140
+ * @default 'visible'
141
+ */
142
+ readonly overflow?: "visible" | "hidden" | undefined;
143
+ /**
144
+ * Behavior for an element's overflow in horizontal direction.
145
+ *
146
+ * @default 'visible'
147
+ */
148
+ readonly overflowX?: "visible" | "hidden" | undefined;
149
+ /**
150
+ * Behavior for an element's overflow in vertical direction.
151
+ *
152
+ * @default 'visible'
153
+ */
154
+ readonly overflowY?: "visible" | "hidden" | undefined;
83
155
  } & {
84
156
  children?: React.ReactNode;
85
157
  } & React.RefAttributes<DOMElement>>;
@@ -6,6 +6,8 @@ import React, { forwardRef } from 'react';
6
6
  const Box = forwardRef(({ children, ...style }, ref) => {
7
7
  const transformedStyle = {
8
8
  ...style,
9
+ columnGap: style.columnGap || style.gap || 0,
10
+ rowGap: style.rowGap || style.gap || 0,
9
11
  marginLeft: style.marginLeft || style.marginX || style.margin || 0,
10
12
  marginRight: style.marginRight || style.marginX || style.margin || 0,
11
13
  marginTop: style.marginTop || style.marginY || style.margin || 0,
@@ -13,12 +15,15 @@ const Box = forwardRef(({ children, ...style }, ref) => {
13
15
  paddingLeft: style.paddingLeft || style.paddingX || style.padding || 0,
14
16
  paddingRight: style.paddingRight || style.paddingX || style.padding || 0,
15
17
  paddingTop: style.paddingTop || style.paddingY || style.padding || 0,
16
- paddingBottom: style.paddingBottom || style.paddingY || style.padding || 0
18
+ paddingBottom: style.paddingBottom || style.paddingY || style.padding || 0,
19
+ overflowX: style.overflowX || style.overflow || 'visible',
20
+ overflowY: style.overflowY || style.overflow || 'visible'
17
21
  };
18
22
  return (React.createElement("ink-box", { ref: ref, style: transformedStyle }, children));
19
23
  });
20
24
  Box.displayName = 'Box';
21
25
  Box.defaultProps = {
26
+ flexWrap: 'nowrap',
22
27
  flexDirection: 'row',
23
28
  flexGrow: 0,
24
29
  flexShrink: 1
@@ -1 +1 @@
1
- {"version":3,"file":"Box.js","sourceRoot":"","sources":["../../src/components/Box.tsx"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,KAAK,EAAE,EAAC,UAAU,EAAyB,MAAM,OAAO,CAAC;AAiDhE;;GAEG;AACH,MAAM,GAAG,GAAG,UAAU,CACrB,CAAC,EAAC,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,GAAG,EAAE,EAAE;IAC7B,MAAM,gBAAgB,GAAG;QACxB,GAAG,KAAK;QACR,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAClE,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QACpE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAChE,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QACtE,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;QACtE,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;QACxE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;QACpE,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;KAC1E,CAAC;IAEF,OAAO,CACN,iCAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,IACxC,QAAQ,CACA,CACV,CAAC;AACH,CAAC,CACD,CAAC;AAEF,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;AAExB,GAAG,CAAC,YAAY,GAAG;IAClB,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;CACb,CAAC;AAEF,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"Box.js","sourceRoot":"","sources":["../../src/components/Box.tsx"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,OAAO,KAAK,EAAE,EAAC,UAAU,EAAyB,MAAM,OAAO,CAAC;AA2FhE;;GAEG;AACH,MAAM,GAAG,GAAG,UAAU,CACrB,CAAC,EAAC,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,GAAG,EAAE,EAAE;IAC7B,MAAM,gBAAgB,GAAG;QACxB,GAAG,KAAK;QACR,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;QAC5C,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC;QACtC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAClE,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QACpE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAChE,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QACtE,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;QACtE,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;QACxE,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;QACpE,aAAa,EACZ,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC;QAC5D,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS;QACzD,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS;KACzD,CAAC;IAEF,OAAO,CACN,iCAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,IACxC,QAAQ,CACA,CACV,CAAC;AACH,CAAC,CACD,CAAC;AAEF,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;AAExB,GAAG,CAAC,YAAY,GAAG;IAClB,QAAQ,EAAE,QAAQ;IAClB,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,CAAC;CACb,CAAC;AAEF,eAAe,GAAG,CAAC"}
package/build/dom.d.ts CHANGED
@@ -1,10 +1,9 @@
1
- /// <reference types="yoga-layout" />
2
- import Yoga from 'yoga-layout-prebuilt';
1
+ import { type Node as YogaNode } from 'yoga-wasm-web/auto';
3
2
  import { type Styles } from './styles.js';
4
3
  import { type OutputTransformer } from './render-node-to-output.js';
5
4
  type InkNode = {
6
5
  parentNode: DOMElement | undefined;
7
- yogaNode?: Yoga.YogaNode;
6
+ yogaNode?: YogaNode;
8
7
  internal_static?: boolean;
9
8
  style: Styles;
10
9
  };
@@ -18,6 +17,7 @@ export type DOMElement = {
18
17
  internal_transform?: OutputTransformer;
19
18
  isStaticDirty?: boolean;
20
19
  staticNode?: DOMElement;
20
+ onComputeLayout?: () => void;
21
21
  onRender?: () => void;
22
22
  onImmediateRender?: () => void;
23
23
  } & InkNode;
package/build/dom.js CHANGED
@@ -1,4 +1,5 @@
1
- import Yoga from 'yoga-layout-prebuilt';
1
+ // eslint-disable-next-line n/file-extension-in-import
2
+ import Yoga from 'yoga-wasm-web/auto';
2
3
  import measureText from './measure-text.js';
3
4
  import applyStyles from './styles.js';
4
5
  import wrapText from './wrap-text.js';
package/build/dom.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import Yoga from 'yoga-layout-prebuilt';
2
- declare const getMaxWidth: (yogaNode: Yoga.YogaNode) => number;
1
+ import { type Node as YogaNode } from 'yoga-wasm-web/auto';
2
+ declare const getMaxWidth: (yogaNode: YogaNode) => number;
3
3
  export default getMaxWidth;
@@ -1,4 +1,5 @@
1
- import Yoga from 'yoga-layout-prebuilt';
1
+ // eslint-disable-next-line n/file-extension-in-import
2
+ import Yoga from 'yoga-wasm-web/auto';
2
3
  const getMaxWidth = (yogaNode) => {
3
4
  return (yogaNode.getComputedWidth() -
4
5
  yogaNode.getComputedPadding(Yoga.EDGE_LEFT) -
@@ -1 +1 @@
1
- {"version":3,"file":"get-max-width.js","sourceRoot":"","sources":["../src/get-max-width.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,sBAAsB,CAAC;AAExC,MAAM,WAAW,GAAG,CAAC,QAAuB,EAAE,EAAE;IAC/C,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,sDAAsD;AACtD,OAAO,IAA6B,MAAM,oBAAoB,CAAC;AAE/D,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"}
package/build/ink.d.ts CHANGED
@@ -22,9 +22,11 @@ export default class Ink {
22
22
  private restoreConsole?;
23
23
  private readonly unsubscribeResize?;
24
24
  constructor(options: Options);
25
+ resized: () => void;
25
26
  resolveExitPromise: () => void;
26
27
  rejectExitPromise: (reason?: Error) => void;
27
28
  unsubscribeExit: () => void;
29
+ calculateLayout: () => void;
28
30
  onRender: () => void;
29
31
  render(node: ReactNode): void;
30
32
  writeToStdout(data: string): void;
package/build/ink.js CHANGED
@@ -1,11 +1,13 @@
1
1
  import process from 'node:process';
2
2
  import React from 'react';
3
- import { throttle } from 'lodash-es';
3
+ import throttle from 'lodash/throttle.js';
4
4
  import ansiEscapes from 'ansi-escapes';
5
5
  import originalIsCi from 'is-ci';
6
6
  import autoBind from 'auto-bind';
7
7
  import signalExit from 'signal-exit';
8
8
  import patchConsole from 'patch-console';
9
+ // eslint-disable-next-line n/file-extension-in-import
10
+ import Yoga from 'yoga-wasm-web/auto';
9
11
  import reconciler from './reconciler.js';
10
12
  import render from './renderer.js';
11
13
  import * as dom from './dom.js';
@@ -85,6 +87,15 @@ export default class Ink {
85
87
  writable: true,
86
88
  value: void 0
87
89
  });
90
+ Object.defineProperty(this, "resized", {
91
+ enumerable: true,
92
+ configurable: true,
93
+ writable: true,
94
+ value: () => {
95
+ this.calculateLayout();
96
+ this.onRender();
97
+ }
98
+ });
88
99
  Object.defineProperty(this, "resolveExitPromise", {
89
100
  enumerable: true,
90
101
  configurable: true,
@@ -103,6 +114,18 @@ export default class Ink {
103
114
  writable: true,
104
115
  value: () => { }
105
116
  });
117
+ Object.defineProperty(this, "calculateLayout", {
118
+ enumerable: true,
119
+ configurable: true,
120
+ writable: true,
121
+ value: () => {
122
+ // The 'columns' property can be undefined or 0 when not using a TTY.
123
+ // In that case we fall back to 80.
124
+ const terminalWidth = this.options.stdout.columns || 80;
125
+ this.rootNode.yogaNode.setWidth(terminalWidth);
126
+ this.rootNode.yogaNode.calculateLayout(undefined, undefined, Yoga.DIRECTION_LTR);
127
+ }
128
+ });
106
129
  Object.defineProperty(this, "onRender", {
107
130
  enumerable: true,
108
131
  configurable: true,
@@ -111,10 +134,7 @@ export default class Ink {
111
134
  if (this.isUnmounted) {
112
135
  return;
113
136
  }
114
- const { output, outputHeight, staticOutput } = render(this.rootNode,
115
- // The 'columns' property can be undefined or 0 when not using a TTY.
116
- // In that case we fall back to 80.
117
- this.options.stdout.columns || 80);
137
+ const { output, outputHeight, staticOutput } = render(this.rootNode);
118
138
  // If <Static> output isn't empty, it means new children have been added to it
119
139
  const hasStaticOutput = staticOutput && staticOutput !== '\n';
120
140
  if (this.options.debug) {
@@ -154,6 +174,7 @@ export default class Ink {
154
174
  autoBind(this);
155
175
  this.options = options;
156
176
  this.rootNode = dom.createNode('ink-root');
177
+ this.rootNode.onComputeLayout = this.calculateLayout;
157
178
  this.rootNode.onRender = options.debug
158
179
  ? this.onRender
159
180
  : throttle(this.onRender, 32, {
@@ -194,9 +215,9 @@ export default class Ink {
194
215
  this.patchConsole();
195
216
  }
196
217
  if (!isCi) {
197
- options.stdout.on('resize', this.onRender);
218
+ options.stdout.on('resize', this.resized);
198
219
  this.unsubscribeResize = () => {
199
- options.stdout.off('resize', this.onRender);
220
+ options.stdout.off('resize', this.resized);
200
221
  };
201
222
  }
202
223
  }
@@ -242,6 +263,7 @@ export default class Ink {
242
263
  if (this.isUnmounted) {
243
264
  return;
244
265
  }
266
+ this.calculateLayout();
245
267
  this.onRender();
246
268
  this.unsubscribeExit();
247
269
  if (typeof this.restoreConsole === 'function') {
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":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,KAAuB,MAAM,OAAO,CAAC;AAC5C,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAE1C,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,YAAY,MAAM,OAAO,CAAC;AACjC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,sDAAsD;AACtD,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,UAAU,MAAM,iBAAiB,CAAC;AACzC,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,SAA2B,MAAM,iBAAiB,CAAC;AAC1D,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,GAAG,MAAM,qBAAqB,CAAC;AAEtC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;AAClE,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAYtB,MAAM,CAAC,OAAO,OAAO,GAAG;IAgBvB,YAAY,OAAgB;QAf5B;;;;;WAAkC;QAClC;;;;;WAAgC;QAChC;;;;;WAAoE;QACpE,iFAAiF;QACjF;;;;;WAA6B;QAC7B;;;;;WAA2B;QAC3B;;;;;WAAsC;QACtC;;;;;WAA0C;QAC1C,uEAAuE;QACvE,wFAAwF;QACxF;;;;;WAAiC;QACjC;;;;;WAAoC;QACpC;;;;;WAAoC;QACpC;;;;;WAAgD;QA0EhD;;;;mBAAU,GAAG,EAAE;gBACd,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,CAAC;WAAC;QAEF;;;;mBAAiC,GAAG,EAAE,GAAE,CAAC;WAAC;QAC1C;;;;mBAA8C,GAAG,EAAE,GAAE,CAAC;WAAC;QACvD;;;;mBAA8B,GAAG,EAAE,GAAE,CAAC;WAAC;QAEvC;;;;mBAAkB,GAAG,EAAE;gBACtB,qEAAqE;gBACrE,mCAAmC;gBACnC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;gBAExD,IAAI,CAAC,QAAQ,CAAC,QAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAEhD,IAAI,CAAC,QAAQ,CAAC,QAAS,CAAC,eAAe,CACtC,SAAS,EACT,SAAS,EACT,IAAI,CAAC,aAAa,CAClB,CAAC;YACH,CAAC;WAAC;QAEF;;;;mBAAuB,GAAG,EAAE;gBAC3B,IAAI,IAAI,CAAC,WAAW,EAAE;oBACrB,OAAO;iBACP;gBAED,MAAM,EAAC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEnE,8EAA8E;gBAC9E,MAAM,eAAe,GAAG,YAAY,IAAI,YAAY,KAAK,IAAI,CAAC;gBAE9D,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBACvB,IAAI,eAAe,EAAE;wBACpB,IAAI,CAAC,gBAAgB,IAAI,YAAY,CAAC;qBACtC;oBAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC;oBAC1D,OAAO;iBACP;gBAED,IAAI,IAAI,EAAE;oBACT,IAAI,eAAe,EAAE;wBACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;qBACxC;oBAED,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;oBACzB,OAAO;iBACP;gBAED,IAAI,eAAe,EAAE;oBACpB,IAAI,CAAC,gBAAgB,IAAI,YAAY,CAAC;iBACtC;gBAED,IAAI,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;oBAC7C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACxB,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAC1D,CAAC;oBACF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;oBACzB,OAAO;iBACP;gBAED,0FAA0F;gBAC1F,IAAI,eAAe,EAAE;oBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;oBACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBACxC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBACjB;gBAED,IAAI,CAAC,eAAe,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;oBACnD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;iBAC1B;gBAED,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YAC1B,CAAC;WAAC;QAlJD,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAErD,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK;YACrC,CAAC,CAAC,IAAI,CAAC,QAAQ;YACf,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE;gBAC5B,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACb,CAAC,CAAC;QAEN,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChD,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK;YAChC,CAAC,CAAC,IAAI,CAAC,GAAG;YACV,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE;gBAC9B,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACb,CAAC,CAAC;QAEN,iFAAiF;QACjF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,iDAAiD;QACjD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAErB,uEAAuE;QACvE,wFAAwF;QACxF,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAE3B,mEAAmE;QACnE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,eAAe,CAC1C,IAAI,CAAC,QAAQ;QACb,cAAc;QACd,CAAC,EACD,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EAAE,GAAE,CAAC,EACR,IAAI,CACJ,CAAC;QAEF,6BAA6B;QAC7B,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAAC,UAAU,EAAE,KAAK,EAAC,CAAC,CAAC;QAErE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM,EAAE;YAClC,UAAU,CAAC,kBAAkB,CAAC;gBAC7B,UAAU,EAAE,CAAC;gBACb,2CAA2C;gBAC3C,4EAA4E;gBAC5E,OAAO,EAAE,SAAS;gBAClB,mBAAmB,EAAE,KAAK;aAC1B,CAAC,CAAC;SACH;QAED,IAAI,OAAO,CAAC,YAAY,EAAE;YACzB,IAAI,CAAC,YAAY,EAAE,CAAC;SACpB;QAED,IAAI,CAAC,IAAI,EAAE;YACV,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAE1C,IAAI,CAAC,iBAAiB,GAAG,GAAG,EAAE;gBAC7B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5C,CAAC,CAAC;SACF;IACF,CAAC;IA+ED,MAAM,CAAC,IAAe;QACrB,MAAM,IAAI,GAAG,CACZ,oBAAC,GAAG,IACH,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EACzB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAC3B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EACrC,MAAM,EAAE,IAAI,CAAC,OAAO,IAEnB,IAAI,CACA,CACN,CAAC;QAEF,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,aAAa,CAAC,IAAY;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO;SACP;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,OAAO;SACP;QAED,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO;SACP;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,IAAY;QACzB,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO;SACP;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YACnE,OAAO;SACP;QAED,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO;SACP;QAED,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;IAED,wDAAwD;IACxD,OAAO,CAAC,KAA6B;QACpC,IAAI,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO;SACP;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,UAAU,EAAE;YAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;SACtB;QAED,IAAI,OAAO,IAAI,CAAC,iBAAiB,KAAK,UAAU,EAAE;YACjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;SACzB;QAED,gEAAgE;QAChE,8CAA8C;QAC9C,IAAI,IAAI,EAAE;YACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;SAClD;aAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SAChB;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7D,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,KAAK,YAAY,KAAK,EAAE;YAC3B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SAC9B;aAAM;YACN,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC1B;IACF,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;gBAClC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;YACjC,CAAC,CAAC,CAAC;SACH;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACjC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;SACjB;IACF,CAAC;IAED,YAAY;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACvB,OAAO;SACP;QAED,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACnD,IAAI,MAAM,KAAK,QAAQ,EAAE;gBACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aACzB;YAED,IAAI,MAAM,KAAK,QAAQ,EAAE;gBACxB,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC;gBAEnE,IAAI,CAAC,cAAc,EAAE;oBACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;iBACzB;aACD;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;CACD"}
package/build/output.d.ts CHANGED
@@ -11,14 +11,22 @@ type Options = {
11
11
  width: number;
12
12
  height: number;
13
13
  };
14
+ type Clip = {
15
+ x1: number | undefined;
16
+ x2: number | undefined;
17
+ y1: number | undefined;
18
+ y2: number | undefined;
19
+ };
14
20
  export default class Output {
15
21
  width: number;
16
22
  height: number;
17
- private readonly writes;
23
+ private readonly operations;
18
24
  constructor(options: Options);
19
25
  write(x: number, y: number, text: string, options: {
20
26
  transformers: OutputTransformer[];
21
27
  }): void;
28
+ clip(clip: Clip): void;
29
+ unclip(): void;
22
30
  get(): {
23
31
  output: string;
24
32
  height: number;
package/build/output.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import sliceAnsi from 'slice-ansi';
2
2
  import stringWidth from 'string-width';
3
+ import widestLine from 'widest-line';
3
4
  export default class Output {
4
5
  constructor(options) {
5
6
  Object.defineProperty(this, "width", {
@@ -14,8 +15,7 @@ export default class Output {
14
15
  writable: true,
15
16
  value: void 0
16
17
  });
17
- // Initialize output array with a specific set of rows, so that margin/padding at the bottom is preserved
18
- Object.defineProperty(this, "writes", {
18
+ Object.defineProperty(this, "operations", {
19
19
  enumerable: true,
20
20
  configurable: true,
21
21
  writable: true,
@@ -30,32 +30,99 @@ export default class Output {
30
30
  if (!text) {
31
31
  return;
32
32
  }
33
- this.writes.push({ x, y, text, transformers });
33
+ this.operations.push({
34
+ type: 'write',
35
+ x,
36
+ y,
37
+ text,
38
+ transformers
39
+ });
40
+ }
41
+ clip(clip) {
42
+ this.operations.push({
43
+ type: 'clip',
44
+ clip
45
+ });
46
+ }
47
+ unclip() {
48
+ this.operations.push({
49
+ type: 'unclip'
50
+ });
34
51
  }
35
52
  get() {
53
+ // Initialize output array with a specific set of rows, so that margin/padding at the bottom is preserved
36
54
  const output = [];
37
55
  for (let y = 0; y < this.height; y++) {
38
56
  output.push(' '.repeat(this.width));
39
57
  }
40
- for (const write of this.writes) {
41
- const { x, y, text, transformers } = write;
42
- const lines = text.split('\n');
43
- let offsetY = 0;
44
- for (let line of lines) {
45
- const currentLine = output[y + offsetY];
46
- // Line can be missing if `text` is taller than height of pre-initialized `this.output`
47
- if (!currentLine) {
48
- continue;
58
+ const clips = [];
59
+ for (const operation of this.operations) {
60
+ if (operation.type === 'clip') {
61
+ clips.push(operation.clip);
62
+ }
63
+ if (operation.type === 'unclip') {
64
+ clips.pop();
65
+ }
66
+ if (operation.type === 'write') {
67
+ const { text, transformers } = operation;
68
+ let { x, y } = operation;
69
+ let lines = text.split('\n');
70
+ const clip = clips[clips.length - 1];
71
+ if (clip) {
72
+ const clipHorizontally = typeof clip?.x1 === 'number' && typeof clip?.x2 === 'number';
73
+ const clipVertically = typeof clip?.y1 === 'number' && typeof clip?.y2 === 'number';
74
+ // If text is positioned outside of clipping area altogether,
75
+ // skip to the next operation to avoid unnecessary calculations
76
+ if (clipHorizontally) {
77
+ const width = widestLine(text);
78
+ if (x + width < clip.x1 || x > clip.x2) {
79
+ continue;
80
+ }
81
+ }
82
+ if (clipVertically) {
83
+ const height = lines.length;
84
+ if (y + height < clip.y1 || y > clip.y2) {
85
+ continue;
86
+ }
87
+ }
88
+ if (clipHorizontally) {
89
+ lines = lines.map(line => {
90
+ const from = x < clip.x1 ? clip.x1 - x : 0;
91
+ const width = stringWidth(line);
92
+ const to = x + width > clip.x2 ? clip.x2 - x : width;
93
+ return sliceAnsi(line, from, to);
94
+ });
95
+ if (x < clip.x1) {
96
+ x = clip.x1;
97
+ }
98
+ }
99
+ if (clipVertically) {
100
+ const from = y < clip.y1 ? clip.y1 - y : 0;
101
+ const height = lines.length;
102
+ const to = y + height > clip.y2 ? clip.y2 - y : height;
103
+ lines = lines.slice(from, to);
104
+ if (y < clip.y1) {
105
+ y = clip.y1;
106
+ }
107
+ }
49
108
  }
50
- const width = stringWidth(line);
51
- for (const transformer of transformers) {
52
- line = transformer(line);
109
+ let offsetY = 0;
110
+ for (let line of lines) {
111
+ const currentLine = output[y + offsetY];
112
+ // Line can be missing if `text` is taller than height of pre-initialized `this.output`
113
+ if (!currentLine) {
114
+ continue;
115
+ }
116
+ const width = stringWidth(line);
117
+ for (const transformer of transformers) {
118
+ line = transformer(line);
119
+ }
120
+ output[y + offsetY] =
121
+ sliceAnsi(currentLine, 0, x) +
122
+ line +
123
+ sliceAnsi(currentLine, x + width);
124
+ offsetY++;
53
125
  }
54
- output[y + offsetY] =
55
- sliceAnsi(currentLine, 0, x) +
56
- line +
57
- sliceAnsi(currentLine, x + width);
58
- offsetY++;
59
126
  }
60
127
  }
61
128
  const generatedOutput = output.map(line => line.trimEnd()).join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,WAAW,MAAM,cAAc,CAAC;AAwBvC,MAAM,CAAC,OAAO,OAAO,MAAM;IAO1B,YAAY,OAAgB;QAN5B;;;;;WAAc;QACd;;;;;WAAe;QAEf,yGAAyG;QACzG;;;;mBAAoC,EAAE;WAAC;QAGtC,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC;QAEhC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,KAAK,CACJ,CAAS,EACT,CAAS,EACT,IAAY,EACZ,OAA4C;QAE5C,MAAM,EAAC,YAAY,EAAC,GAAG,OAAO,CAAC;QAE/B,IAAI,CAAC,IAAI,EAAE;YACV,OAAO;SACP;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAC,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG;QACF,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACpC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAChC,MAAM,EAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAC,GAAG,KAAK,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE;gBACvB,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;gBAExC,uFAAuF;gBACvF,IAAI,CAAC,WAAW,EAAE;oBACjB,SAAS;iBACT;gBAED,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;gBAEhC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;oBACvC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;iBACzB;gBAED,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;oBAClB,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;wBAC5B,IAAI;wBACJ,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;gBAEnC,OAAO,EAAE,CAAC;aACV;SACD;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtE,OAAO;YACN,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;IACH,CAAC;CACD"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import process from 'node:process';
2
2
  import createReconciler from 'react-reconciler';
3
3
  import { DefaultEventPriority } from 'react-reconciler/constants.js';
4
- import Yoga from 'yoga-layout-prebuilt';
4
+ // eslint-disable-next-line n/file-extension-in-import
5
+ import Yoga from 'yoga-wasm-web/auto';
5
6
  import { createTextNode, appendChildNode, insertBeforeNode, removeChildNode, setStyle, setTextNodeValue, createNode, setAttribute } from './dom.js';
6
7
  // We need to conditionally perform devtools connection to avoid
7
8
  // accidentally breaking other third-party code.
@@ -37,6 +38,9 @@ export default createReconciler({
37
38
  preparePortalMount: () => null,
38
39
  clearContainer: () => false,
39
40
  resetAfterCommit(rootNode) {
41
+ if (typeof rootNode.onComputeLayout === 'function') {
42
+ rootNode.onComputeLayout();
43
+ }
40
44
  // Since renders are throttled at the instance level and <Static> component children
41
45
  // are rendered only once and then get deleted, we need an escape hatch to
42
46
  // trigger an immediate render to ensure <Static> children are written to output before they get erased
@@ -157,6 +161,7 @@ export default createReconciler({
157
161
  const styleKeys = Object.keys(newStyle);
158
162
  for (const styleKey of styleKeys) {
159
163
  // Always include `borderColor` and `borderStyle` to ensure border is rendered,
164
+ // and `overflowX` and `overflowY` to ensure content is clipped,
160
165
  // otherwise resulting `updatePayload` may not contain them
161
166
  // if they weren't changed during this update
162
167
  if (styleKey === 'borderStyle' || styleKey === 'borderColor') {
@@ -169,6 +174,8 @@ export default createReconciler({
169
174
  newStyle.borderStyle;
170
175
  updatePayload['style'].borderColor =
171
176
  newStyle.borderColor;
177
+ updatePayload['style'].overflowX = newStyle.overflowX;
178
+ updatePayload['style'].overflowY = newStyle.overflowY;
172
179
  }
173
180
  if (newStyle[styleKey] !== oldStyle[styleKey]) {
174
181
  if (typeof updatePayload['style'] !== 'object') {
@@ -1 +1 @@
1
- {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import Yoga from 'yoga-layout-prebuilt';
2
1
  import widestLine from 'widest-line';
3
2
  import indentString from 'indent-string';
3
+ // eslint-disable-next-line n/file-extension-in-import
4
+ import Yoga from 'yoga-wasm-web/auto';
4
5
  import wrapText from './wrap-text.js';
5
6
  import getMaxWidth from './get-max-width.js';
6
7
  import squashTextNodes from './squash-text-nodes.js';
@@ -54,8 +55,31 @@ const renderNodeToOutput = (node, output, options) => {
54
55
  }
55
56
  return;
56
57
  }
58
+ let clipped = false;
57
59
  if (node.nodeName === 'ink-box') {
58
60
  renderBorder(x, y, node, output);
61
+ const clipHorizontally = node.style.overflowX === 'hidden';
62
+ const clipVertically = node.style.overflowY === 'hidden';
63
+ if (clipHorizontally || clipVertically) {
64
+ const x1 = clipHorizontally
65
+ ? x + yogaNode.getComputedBorder(Yoga.EDGE_LEFT)
66
+ : undefined;
67
+ const x2 = clipHorizontally
68
+ ? x +
69
+ yogaNode.getComputedWidth() -
70
+ yogaNode.getComputedBorder(Yoga.EDGE_RIGHT)
71
+ : undefined;
72
+ const y1 = clipVertically
73
+ ? y + yogaNode.getComputedBorder(Yoga.EDGE_TOP)
74
+ : undefined;
75
+ const y2 = clipVertically
76
+ ? y +
77
+ yogaNode.getComputedHeight() -
78
+ yogaNode.getComputedBorder(Yoga.EDGE_BOTTOM)
79
+ : undefined;
80
+ output.clip({ x1, x2, y1, y2 });
81
+ clipped = true;
82
+ }
59
83
  }
60
84
  if (node.nodeName === 'ink-root' || node.nodeName === 'ink-box') {
61
85
  for (const childNode of node.childNodes) {
@@ -66,6 +90,9 @@ const renderNodeToOutput = (node, output, options) => {
66
90
  skipStaticElements
67
91
  });
68
92
  }
93
+ if (clipped) {
94
+ output.unclip();
95
+ }
69
96
  }
70
97
  }
71
98
  };
@@ -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":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,sDAAsD;AACtD,OAAO,IAAI,MAAM,oBAAoB,CAAC;AACtC,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,WAAW,MAAM,oBAAoB,CAAC;AAC7C,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAI9C,kFAAkF;AAClF,8DAA8D;AAC9D,kFAAkF;AAClF,iDAAiD;AACjD,gGAAgG;AAChG,iEAAiE;AACjE,MAAM,kBAAkB,GAAG,CAAC,IAAgB,EAAE,IAAY,EAAU,EAAE;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;IAE9C,IAAI,QAAQ,EAAE;QACb,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC1D;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAIF,gGAAgG;AAChG,MAAM,kBAAkB,GAAG,CAC1B,IAAgB,EAChB,MAAc,EACd,OAKC,EACA,EAAE;IACH,MAAM,EACL,OAAO,GAAG,CAAC,EACX,OAAO,GAAG,CAAC,EACX,YAAY,GAAG,EAAE,EACjB,kBAAkB,EAClB,GAAG,OAAO,CAAC;IAEZ,IAAI,kBAAkB,IAAI,IAAI,CAAC,eAAe,EAAE;QAC/C,OAAO;KACP;IAED,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;IAExB,IAAI,QAAQ,EAAE;QACb,IAAI,QAAQ,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE;YAChD,OAAO;SACP;QAED,mEAAmE;QACnE,MAAM,CAAC,GAAG,OAAO,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,OAAO,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;QAE9C,gFAAgF;QAChF,uDAAuD;QACvD,IAAI,eAAe,GAAG,YAAY,CAAC;QAEnC,IAAI,OAAO,IAAI,CAAC,kBAAkB,KAAK,UAAU,EAAE;YAClD,eAAe,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,YAAY,CAAC,CAAC;SAC7D;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;YACjC,IAAI,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YAEjC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAEvC,IAAI,YAAY,GAAG,QAAQ,EAAE;oBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC;oBAC/C,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;iBAC1C;gBAED,IAAI,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAEtC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAC,YAAY,EAAE,eAAe,EAAC,CAAC,CAAC;aAC1D;YAED,OAAO;SACP;QAED,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAChC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAEjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC;YAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC;YAEzD,IAAI,gBAAgB,IAAI,cAAc,EAAE;gBACvC,MAAM,EAAE,GAAG,gBAAgB;oBAC1B,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC;oBAChD,CAAC,CAAC,SAAS,CAAC;gBAEb,MAAM,EAAE,GAAG,gBAAgB;oBAC1B,CAAC,CAAC,CAAC;wBACD,QAAQ,CAAC,gBAAgB,EAAE;wBAC3B,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC7C,CAAC,CAAC,SAAS,CAAC;gBAEb,MAAM,EAAE,GAAG,cAAc;oBACxB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC/C,CAAC,CAAC,SAAS,CAAC;gBAEb,MAAM,EAAE,GAAG,cAAc;oBACxB,CAAC,CAAC,CAAC;wBACD,QAAQ,CAAC,iBAAiB,EAAE;wBAC5B,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC;oBAC9C,CAAC,CAAC,SAAS,CAAC;gBAEb,MAAM,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC,CAAC;gBAC9B,OAAO,GAAG,IAAI,CAAC;aACf;SACD;QAED,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;YAChE,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE;gBACxC,kBAAkB,CAAC,SAAuB,EAAE,MAAM,EAAE;oBACnD,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;oBACV,YAAY,EAAE,eAAe;oBAC7B,kBAAkB;iBAClB,CAAC,CAAC;aACH;YAED,IAAI,OAAO,EAAE;gBACZ,MAAM,CAAC,MAAM,EAAE,CAAC;aAChB;SACD;KACD;AACF,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -4,5 +4,5 @@ type Result = {
4
4
  outputHeight: number;
5
5
  staticOutput: string;
6
6
  };
7
- declare const renderer: (node: DOMElement, terminalWidth: number) => Result;
7
+ declare const renderer: (node: DOMElement) => Result;
8
8
  export default renderer;
package/build/renderer.js CHANGED
@@ -1,10 +1,7 @@
1
- import Yoga from 'yoga-layout-prebuilt';
2
1
  import renderNodeToOutput from './render-node-to-output.js';
3
2
  import Output from './output.js';
4
- const renderer = (node, terminalWidth) => {
5
- node.yogaNode.setWidth(terminalWidth);
3
+ const renderer = (node) => {
6
4
  if (node.yogaNode) {
7
- node.yogaNode.calculateLayout(undefined, undefined, Yoga.DIRECTION_LTR);
8
5
  const output = new Output({
9
6
  width: node.yogaNode.getComputedWidth(),
10
7
  height: node.yogaNode.getComputedHeight()
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,sBAAsB,CAAC;AACxC,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,MAAM,MAAM,aAAa,CAAC;AASjC,MAAM,QAAQ,GAAG,CAAC,IAAgB,EAAE,aAAqB,EAAU,EAAE;IACpE,IAAI,CAAC,QAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEvC,IAAI,IAAI,CAAC,QAAQ,EAAE;QAClB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAExE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;SACzC,CAAC,CAAC;QAEH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAC,kBAAkB,EAAE,IAAI,EAAC,CAAC,CAAC;QAE7D,IAAI,YAAY,CAAC;QAEjB,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE;YAC9B,YAAY,GAAG,IAAI,MAAM,CAAC;gBACzB,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,EAAE;gBAClD,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,EAAE;aACpD,CAAC,CAAC;YAEH,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE;gBACjD,kBAAkB,EAAE,KAAK;aACzB,CAAC,CAAC;SACH;QAED,MAAM,EAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QAErE,OAAO;YACN,MAAM,EAAE,eAAe;YACvB,YAAY;YACZ,2EAA2E;YAC3E,8DAA8D;YAC9D,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE;SAClE,CAAC;KACF;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,EAAE;KAChB,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,MAAM,MAAM,aAAa,CAAC;AASjC,MAAM,QAAQ,GAAG,CAAC,IAAgB,EAAU,EAAE;IAC7C,IAAI,IAAI,CAAC,QAAQ,EAAE;QAClB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE;YACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;SACzC,CAAC,CAAC;QAEH,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAC,kBAAkB,EAAE,IAAI,EAAC,CAAC,CAAC;QAE7D,IAAI,YAAY,CAAC;QAEjB,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE;YAC9B,YAAY,GAAG,IAAI,MAAM,CAAC;gBACzB,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,EAAE;gBAClD,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,iBAAiB,EAAE;aACpD,CAAC,CAAC;YAEH,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE;gBACjD,kBAAkB,EAAE,KAAK;aACzB,CAAC,CAAC;SACH;QAED,MAAM,EAAC,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,EAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QAErE,OAAO;YACN,MAAM,EAAE,eAAe;YACvB,YAAY;YACZ,2EAA2E;YAC3E,8DAA8D;YAC9D,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE;SAClE,CAAC;KACF;IAED,OAAO;QACN,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,EAAE;KAChB,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
package/build/styles.d.ts CHANGED
@@ -1,10 +1,18 @@
1
- import { type YogaNode } from 'yoga-layout-prebuilt';
2
1
  import { type Boxes } from 'cli-boxes';
3
2
  import { type LiteralUnion } from 'type-fest';
4
3
  import { type ForegroundColorName } from 'chalk';
4
+ import { type Node as YogaNode } from 'yoga-wasm-web/auto';
5
5
  export type Styles = {
6
6
  readonly textWrap?: 'wrap' | 'end' | 'middle' | 'truncate-end' | 'truncate' | 'truncate-middle' | 'truncate-start';
7
7
  readonly position?: 'absolute' | 'relative';
8
+ /**
9
+ * Gap between element's columns.
10
+ */
11
+ readonly columnGap?: number;
12
+ /**
13
+ * Gap between element's rows.
14
+ */
15
+ readonly rowGap?: number;
8
16
  /**
9
17
  * Top margin.
10
18
  */
@@ -57,6 +65,11 @@ export type Styles = {
57
65
  * See [flex-basis](https://css-tricks.com/almanac/properties/f/flex-basis/).
58
66
  */
59
67
  readonly flexBasis?: number | string;
68
+ /**
69
+ * It defines whether the flex items are forced in a single line or can be flowed into multiple lines. If set to multiple lines, it also defines the cross-axis which determines the direction new lines are stacked in.
70
+ * See [flex-wrap](https://css-tricks.com/almanac/properties/f/flex-wrap/).
71
+ */
72
+ readonly flexWrap?: 'nowrap' | 'wrap' | 'wrap-reverse';
60
73
  /**
61
74
  * The align-items property defines the default behavior for how items are laid out along the cross axis (perpendicular to the main axis).
62
75
  * See [align-items](https://css-tricks.com/almanac/properties/a/align-items/).
@@ -104,6 +117,14 @@ export type Styles = {
104
117
  * Accepts the same values as `color` in <Text> component.
105
118
  */
106
119
  readonly borderColor?: LiteralUnion<ForegroundColorName, string>;
120
+ /**
121
+ * Behavior for an element's overflow in horizontal direction.
122
+ */
123
+ readonly overflowX?: 'visible' | 'hidden';
124
+ /**
125
+ * Behavior for an element's overflow in vertical direction.
126
+ */
127
+ readonly overflowY?: 'visible' | 'hidden';
107
128
  };
108
129
  declare const styles: (node: YogaNode, style?: Styles) => void;
109
130
  export default styles;
package/build/styles.js CHANGED
@@ -1,5 +1,5 @@
1
- /* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
2
- import Yoga from 'yoga-layout-prebuilt';
1
+ // eslint-disable-next-line n/file-extension-in-import
2
+ import Yoga from 'yoga-wasm-web/auto';
3
3
  const applyPositionStyles = (node, style) => {
4
4
  if ('position' in style) {
5
5
  node.setPositionType(style.position === 'absolute'
@@ -42,6 +42,17 @@ const applyFlexStyles = (node, style) => {
42
42
  if ('flexShrink' in style) {
43
43
  node.setFlexShrink(typeof style.flexShrink === 'number' ? style.flexShrink : 1);
44
44
  }
45
+ if ('flexWrap' in style) {
46
+ if (style.flexWrap === 'nowrap') {
47
+ node.setFlexWrap(Yoga.WRAP_NO_WRAP);
48
+ }
49
+ if (style.flexWrap === 'wrap') {
50
+ node.setFlexWrap(Yoga.WRAP_WRAP);
51
+ }
52
+ if (style.flexWrap === 'wrap-reverse') {
53
+ node.setFlexWrap(Yoga.WRAP_WRAP_REVERSE);
54
+ }
55
+ }
45
56
  if ('flexDirection' in style) {
46
57
  if (style.flexDirection === 'row') {
47
58
  node.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
@@ -168,6 +179,14 @@ const applyBorderStyles = (node, style) => {
168
179
  node.setBorder(Yoga.EDGE_RIGHT, borderWidth);
169
180
  }
170
181
  };
182
+ const applyGapStyles = (node, style) => {
183
+ if ('columnGap' in style) {
184
+ node.setGap(Yoga.GUTTER_COLUMN, style.columnGap ?? 0);
185
+ }
186
+ if ('rowGap' in style) {
187
+ node.setGap(Yoga.GUTTER_ROW, style.rowGap ?? 0);
188
+ }
189
+ };
171
190
  const styles = (node, style = {}) => {
172
191
  applyPositionStyles(node, style);
173
192
  applyMarginStyles(node, style);
@@ -176,6 +195,7 @@ const styles = (node, style = {}) => {
176
195
  applyDimensionStyles(node, style);
177
196
  applyDisplayStyles(node, style);
178
197
  applyBorderStyles(node, style);
198
+ applyGapStyles(node, style);
179
199
  };
180
200
  export default styles;
181
201
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ink",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "React for CLI",
5
5
  "license": "MIT",
6
6
  "repository": "vadimdemedes/ink",
@@ -51,26 +51,26 @@
51
51
  "code-excerpt": "^4.0.0",
52
52
  "indent-string": "^5.0.0",
53
53
  "is-ci": "^3.0.1",
54
- "lodash-es": "^4.17.21",
54
+ "lodash": "^4.17.21",
55
55
  "patch-console": "^2.0.0",
56
56
  "react-reconciler": "^0.29.0",
57
57
  "scheduler": "^0.23.0",
58
58
  "signal-exit": "^3.0.7",
59
- "slice-ansi": "^5.0.0",
59
+ "slice-ansi": "^6.0.0",
60
60
  "stack-utils": "^2.0.6",
61
61
  "string-width": "^5.1.2",
62
62
  "type-fest": "^0.12.0",
63
63
  "widest-line": "^4.0.1",
64
64
  "wrap-ansi": "^8.1.0",
65
65
  "ws": "^8.12.0",
66
- "yoga-layout-prebuilt": "^1.9.6"
66
+ "yoga-wasm-web": "~0.3.3"
67
67
  },
68
68
  "devDependencies": {
69
69
  "@faker-js/faker": "^7.6.0",
70
70
  "@sindresorhus/tsconfig": "3.0.1",
71
71
  "@types/benchmark": "^2.1.2",
72
72
  "@types/is-ci": "^2.0.0",
73
- "@types/lodash-es": "^4.17.6",
73
+ "@types/lodash": "^4.14.191",
74
74
  "@types/ms": "^0.7.31",
75
75
  "@types/node": "*",
76
76
  "@types/react": "^18.0.0",
package/readme.md CHANGED
@@ -127,6 +127,7 @@ Feel free to play around with the code and fork this repl at [https://repl.it/@v
127
127
  - [lrn](https://github.com/krychu/lrn) - Learning by repetition.
128
128
  - [turdle](https://github.com/mynameisankit/turdle) - Wordle game.
129
129
  - [Shopify CLI](https://github.com/Shopify/cli) - Build apps, themes, and storefronts for Shopify.
130
+ - [ToDesktop CLI](https://www.todesktop.com/electron) - An all-in-one platform for building Electron apps.
130
131
 
131
132
  ## Contents
132
133
 
@@ -580,6 +581,58 @@ Margin on all sides. Equivalent to setting `marginTop`, `marginBottom`, `marginL
580
581
  <Box margin={2}>Top, bottom, left and right</Box>
581
582
  ```
582
583
 
584
+ #### Gap
585
+
586
+ #### gap
587
+
588
+ Type: `number`\
589
+ Default: `0`
590
+
591
+ Size of the gap between an element's columns and rows. Shorthand for `columnGap` and `rowGap`.
592
+
593
+ ```jsx
594
+ <Box gap={1} width={3} flexWrap="wrap">
595
+ <Text>A</Text>
596
+ <Text>B</Text>
597
+ <Text>C</Text>
598
+ </Box>
599
+ // A B
600
+ //
601
+ // C
602
+ ```
603
+
604
+ #### columnGap
605
+
606
+ Type: `number`\
607
+ Default: `0`
608
+
609
+ Size of the gap between an element's columns.
610
+
611
+ ```jsx
612
+ <Box gap={1}>
613
+ <Text>A</Text>
614
+ <Text>B</Text>
615
+ </Box>
616
+ // A B
617
+ ```
618
+
619
+ #### rowGap
620
+
621
+ Type: `number`\
622
+ Default: `0`
623
+
624
+ Size of the gap between element's rows.
625
+
626
+ ```jsx
627
+ <Box flexDirection="column" gap={1}>
628
+ <Text>A</Text>
629
+ <Text>B</Text>
630
+ </Box>
631
+ // A
632
+ //
633
+ // B
634
+ ```
635
+
583
636
  #### Flex
584
637
 
585
638
  ##### flexGrow
@@ -681,6 +734,32 @@ See [flex-direction](https://css-tricks.com/almanac/properties/f/flex-direction/
681
734
  // X
682
735
  ```
683
736
 
737
+ ##### flexWrap
738
+
739
+ Type: `string`\
740
+ Allowed values: `nowrap` `wrap` `wrap-reverse`
741
+
742
+ See [flex-wrap](https://css-tricks.com/almanac/properties/f/flex-wrap/).
743
+
744
+ ```jsx
745
+ <Box width={2} flexWrap="wrap">
746
+ <Text>A</Text>
747
+ <Text>BC</Text>
748
+ </Box>
749
+ // A
750
+ // B C
751
+ ```
752
+
753
+ ```jsx
754
+ <Box flexDirection="column" height={2} flexWrap="wrap">
755
+ <Text>A</Text>
756
+ <Text>B</Text>
757
+ <Text>C</Text>
758
+ </Box>
759
+ // A C
760
+ // B
761
+ ```
762
+
684
763
  ##### alignItems
685
764
 
686
765
  Type: `string`\
@@ -821,6 +900,30 @@ Default: `flex`
821
900
 
822
901
  Set this property to `none` to hide the element.
823
902
 
903
+ ##### overflowX
904
+
905
+ Type: `string`\
906
+ Allowed values: `visible` `hidden`\
907
+ Default: `visible`
908
+
909
+ Behavior for an element's overflow in horizontal direction.
910
+
911
+ ##### overflowY
912
+
913
+ Type: `string`\
914
+ Allowed values: `visible` `hidden`\
915
+ Default: `visible`
916
+
917
+ Behavior for an element's overflow in vertical direction.
918
+
919
+ ##### overflow
920
+
921
+ Type: `string`\
922
+ Allowed values: `visible` `hidden`\
923
+ Default: `visible`
924
+
925
+ Shortcut for setting `overflowX` and `overflowY` at the same time.
926
+
824
927
  #### Borders
825
928
 
826
929
  ##### borderStyle
@@ -1833,17 +1936,17 @@ npm run example examples/[example name]
1833
1936
  # e.g. npm run example examples/borders
1834
1937
  ```
1835
1938
 
1836
- - [Jest](examples/jest/jest.js) - Implementation of basic Jest UI [(live demo)](https://ink-jest-demo.vadimdemedes.repl.run/).
1837
- - [Counter](examples/counter/counter.js) - Simple counter that increments every 100ms [(live demo)](https://ink-counter-demo.vadimdemedes.repl.run/).
1939
+ - [Jest](examples/jest/jest.tsx) - Implementation of basic Jest UI [(live demo)](https://ink-jest-demo.vadimdemedes.repl.run/).
1940
+ - [Counter](examples/counter/counter.tsx) - Simple counter that increments every 100ms [(live demo)](https://ink-counter-demo.vadimdemedes.repl.run/).
1838
1941
  - [Form with validation](https://github.com/final-form/rff-cli-example) - Manage form state using [Final Form](https://github.com/final-form/final-form#-final-form).
1839
- - [Borders](examples/borders/borders.js) - Add borders to `<Box>` component.
1840
- - [Suspense](examples/suspense/suspense.js) - Use React Suspense.
1841
- - [Table](examples/table/table.js) - Render a table with multiple columns and rows.
1842
- - [Focus management](examples/use-focus/use-focus.js) - Use `useFocus` hook to manage focus between components.
1843
- - [User input](examples/use-input/use-input.js) - Listen to user input.
1844
- - [Write to stdout](examples/use-stdout/use-stdout.js) - Write to stdout bypassing main Ink output.
1845
- - [Write to stderr](examples/use-stderr/use-stderr.js) - Write to stderr bypassing main Ink output.
1846
- - [Static](examples/static/static.js) - Use `<Static>` to render permanent output.
1942
+ - [Borders](examples/borders/borders.tsx) - Add borders to `<Box>` component.
1943
+ - [Suspense](examples/suspense/suspense.tsx) - Use React Suspense.
1944
+ - [Table](examples/table/table.tsx) - Render a table with multiple columns and rows.
1945
+ - [Focus management](examples/use-focus/use-focus.tsx) - Use `useFocus` hook to manage focus between components.
1946
+ - [User input](examples/use-input/use-input.tsx) - Listen to user input.
1947
+ - [Write to stdout](examples/use-stdout/use-stdout.tsx) - Write to stdout bypassing main Ink output.
1948
+ - [Write to stderr](examples/use-stderr/use-stderr.tsx) - Write to stderr bypassing main Ink output.
1949
+ - [Static](examples/static/static.tsx) - Use `<Static>` to render permanent output.
1847
1950
  - [Child process](examples/subprocess-output) - Render output from a child process.
1848
1951
 
1849
1952
  ## Maintainers