@effect-tui/react 0.16.0 → 2.0.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.
Files changed (126) hide show
  1. package/README.md +9 -0
  2. package/dist/src/codeblock.d.ts +1 -1
  3. package/dist/src/codeblock.d.ts.map +1 -1
  4. package/dist/src/codeblock.js +2 -2
  5. package/dist/src/codeblock.js.map +1 -1
  6. package/dist/src/components/Markdown.js +3 -3
  7. package/dist/src/components/Markdown.js.map +1 -1
  8. package/dist/src/components/MultilineTextInput.d.ts.map +1 -1
  9. package/dist/src/components/MultilineTextInput.js +133 -305
  10. package/dist/src/components/MultilineTextInput.js.map +1 -1
  11. package/dist/src/components/TextInput.d.ts.map +1 -1
  12. package/dist/src/components/TextInput.js +51 -98
  13. package/dist/src/components/TextInput.js.map +1 -1
  14. package/dist/src/components/text-editing.d.ts +61 -0
  15. package/dist/src/components/text-editing.d.ts.map +1 -1
  16. package/dist/src/components/text-editing.js +131 -0
  17. package/dist/src/components/text-editing.js.map +1 -1
  18. package/dist/src/hosts/base.d.ts +13 -2
  19. package/dist/src/hosts/base.d.ts.map +1 -1
  20. package/dist/src/hosts/base.js +74 -2
  21. package/dist/src/hosts/base.js.map +1 -1
  22. package/dist/src/hosts/box.d.ts +2 -2
  23. package/dist/src/hosts/box.d.ts.map +1 -1
  24. package/dist/src/hosts/box.js +29 -2
  25. package/dist/src/hosts/box.js.map +1 -1
  26. package/dist/src/hosts/canvas.d.ts +22 -2
  27. package/dist/src/hosts/canvas.d.ts.map +1 -1
  28. package/dist/src/hosts/canvas.js +99 -31
  29. package/dist/src/hosts/canvas.js.map +1 -1
  30. package/dist/src/hosts/codeblock.d.ts +8 -10
  31. package/dist/src/hosts/codeblock.d.ts.map +1 -1
  32. package/dist/src/hosts/codeblock.js +36 -33
  33. package/dist/src/hosts/codeblock.js.map +1 -1
  34. package/dist/src/hosts/flex-container.d.ts +2 -2
  35. package/dist/src/hosts/flex-container.d.ts.map +1 -1
  36. package/dist/src/hosts/flex-container.js +17 -2
  37. package/dist/src/hosts/flex-container.js.map +1 -1
  38. package/dist/src/hosts/index.d.ts +1 -1
  39. package/dist/src/hosts/index.d.ts.map +1 -1
  40. package/dist/src/hosts/index.js.map +1 -1
  41. package/dist/src/hosts/overlay-item.d.ts +2 -2
  42. package/dist/src/hosts/overlay-item.d.ts.map +1 -1
  43. package/dist/src/hosts/overlay-item.js +7 -2
  44. package/dist/src/hosts/overlay-item.js.map +1 -1
  45. package/dist/src/hosts/overlay.d.ts +2 -2
  46. package/dist/src/hosts/overlay.d.ts.map +1 -1
  47. package/dist/src/hosts/overlay.js +2 -2
  48. package/dist/src/hosts/overlay.js.map +1 -1
  49. package/dist/src/hosts/scroll.d.ts +7 -2
  50. package/dist/src/hosts/scroll.d.ts.map +1 -1
  51. package/dist/src/hosts/scroll.js +126 -45
  52. package/dist/src/hosts/scroll.js.map +1 -1
  53. package/dist/src/hosts/single-child.d.ts.map +1 -1
  54. package/dist/src/hosts/single-child.js +2 -0
  55. package/dist/src/hosts/single-child.js.map +1 -1
  56. package/dist/src/hosts/spacer.d.ts +1 -1
  57. package/dist/src/hosts/spacer.d.ts.map +1 -1
  58. package/dist/src/hosts/spacer.js +6 -1
  59. package/dist/src/hosts/spacer.js.map +1 -1
  60. package/dist/src/hosts/text.d.ts +20 -15
  61. package/dist/src/hosts/text.d.ts.map +1 -1
  62. package/dist/src/hosts/text.js +104 -71
  63. package/dist/src/hosts/text.js.map +1 -1
  64. package/dist/src/hosts/zstack.d.ts +2 -2
  65. package/dist/src/hosts/zstack.d.ts.map +1 -1
  66. package/dist/src/hosts/zstack.js +7 -2
  67. package/dist/src/hosts/zstack.js.map +1 -1
  68. package/dist/src/index.d.ts +1 -1
  69. package/dist/src/index.d.ts.map +1 -1
  70. package/dist/src/internal/renderer/index.d.ts.map +1 -1
  71. package/dist/src/internal/renderer/index.js +41 -16
  72. package/dist/src/internal/renderer/index.js.map +1 -1
  73. package/dist/src/internal/renderer/types.d.ts +4 -0
  74. package/dist/src/internal/renderer/types.d.ts.map +1 -1
  75. package/dist/src/motion/hooks.d.ts +1 -1
  76. package/dist/src/motion/hooks.js +1 -1
  77. package/dist/src/reconciler/host-config.js +2 -2
  78. package/dist/src/reconciler/host-config.js.map +1 -1
  79. package/dist/src/reconciler/types.d.ts +5 -1
  80. package/dist/src/reconciler/types.d.ts.map +1 -1
  81. package/dist/src/utils/border.d.ts +1 -1
  82. package/dist/src/utils/border.d.ts.map +1 -1
  83. package/dist/src/utils/border.js +2 -0
  84. package/dist/src/utils/border.js.map +1 -1
  85. package/dist/src/utils/index.d.ts +2 -1
  86. package/dist/src/utils/index.d.ts.map +1 -1
  87. package/dist/src/utils/index.js +2 -1
  88. package/dist/src/utils/index.js.map +1 -1
  89. package/dist/src/utils/text-layout.d.ts +22 -0
  90. package/dist/src/utils/text-layout.d.ts.map +1 -0
  91. package/dist/src/utils/text-layout.js +37 -0
  92. package/dist/src/utils/text-layout.js.map +1 -0
  93. package/dist/src/utils/text-wrap.d.ts +26 -1
  94. package/dist/src/utils/text-wrap.d.ts.map +1 -1
  95. package/dist/src/utils/text-wrap.js +106 -11
  96. package/dist/src/utils/text-wrap.js.map +1 -1
  97. package/dist/tsconfig.tsbuildinfo +1 -1
  98. package/package.json +2 -2
  99. package/src/codeblock.tsx +2 -2
  100. package/src/components/Markdown.tsx +3 -3
  101. package/src/components/MultilineTextInput.tsx +138 -344
  102. package/src/components/TextInput.tsx +54 -99
  103. package/src/components/text-editing.ts +180 -0
  104. package/src/hosts/base.ts +86 -3
  105. package/src/hosts/box.ts +37 -2
  106. package/src/hosts/canvas.ts +120 -31
  107. package/src/hosts/codeblock.ts +46 -33
  108. package/src/hosts/flex-container.ts +21 -2
  109. package/src/hosts/index.ts +1 -1
  110. package/src/hosts/overlay-item.ts +8 -2
  111. package/src/hosts/overlay.ts +2 -2
  112. package/src/hosts/scroll.ts +142 -45
  113. package/src/hosts/single-child.ts +2 -0
  114. package/src/hosts/spacer.ts +6 -1
  115. package/src/hosts/text.ts +122 -75
  116. package/src/hosts/zstack.ts +7 -2
  117. package/src/index.ts +1 -1
  118. package/src/internal/renderer/index.ts +53 -20
  119. package/src/internal/renderer/types.ts +4 -0
  120. package/src/motion/hooks.ts +1 -1
  121. package/src/reconciler/host-config.ts +2 -2
  122. package/src/reconciler/types.ts +7 -1
  123. package/src/utils/border.ts +11 -1
  124. package/src/utils/index.ts +15 -1
  125. package/src/utils/text-layout.ts +65 -0
  126. package/src/utils/text-wrap.ts +135 -13
@@ -1,5 +1,5 @@
1
1
  import { displayWidth } from "@effect-tui/core";
2
- import { resolveInheritedBgStyle, styleIdFromProps, wrapSpans, wrapText } from "../utils/index.js";
2
+ import { resolveInheritedBgStyle, splitSpansByNewline, spansDisplayWidth, styleIdFromProps, wrapSpansByLine, wrapText, } from "../utils/index.js";
3
3
  import { BaseHost, getInheritedBg } from "./base.js";
4
4
  import { LeafHost } from "./leaf.js";
5
5
  export class TextHost extends BaseHost {
@@ -15,6 +15,7 @@ export class TextHost extends BaseHost {
15
15
  // Cache wrapped lines between measure() and render()
16
16
  cachedLines = null;
17
17
  cachedWidth = 0;
18
+ cachedStyledWrap = false;
18
19
  // Cache content to avoid rescanning children each frame
19
20
  cachedContent = null;
20
21
  // Cache for styled mode
@@ -22,7 +23,6 @@ export class TextHost extends BaseHost {
22
23
  cachedSpans = null;
23
24
  hasSpans = false;
24
25
  explicitSpans = null;
25
- prepared = false;
26
26
  constructor(props, ctx) {
27
27
  super("text", props, ctx);
28
28
  this.updateProps(props);
@@ -56,15 +56,6 @@ export class TextHost extends BaseHost {
56
56
  if (child.content) {
57
57
  spans.push({
58
58
  text: child.content,
59
- // Inherit TextHost's styles
60
- fg: this.fg,
61
- bg: this.bg,
62
- bold: this.bold,
63
- dimmed: this.dimmed,
64
- italic: this.italic,
65
- underline: this.underline,
66
- strikethrough: this.strikethrough,
67
- inverse: this.inverse,
68
59
  });
69
60
  }
70
61
  }
@@ -73,15 +64,15 @@ export class TextHost extends BaseHost {
73
64
  if (content) {
74
65
  spans.push({
75
66
  text: content,
76
- // Span's styles, falling back to TextHost's
77
- fg: child.fg ?? this.fg,
78
- bg: child.bg ?? this.bg,
79
- bold: child.bold || this.bold,
80
- dimmed: child.dimmed || this.dimmed,
81
- italic: child.italic || this.italic,
82
- underline: child.underline || this.underline,
83
- strikethrough: child.strikethrough || this.strikethrough,
84
- inverse: child.inverse || this.inverse,
67
+ // Span's styles (TextHost applies fallbacks at render time)
68
+ fg: child.fg,
69
+ bg: child.bg,
70
+ bold: child.bold,
71
+ dimmed: child.dimmed,
72
+ italic: child.italic,
73
+ underline: child.underline,
74
+ strikethrough: child.strikethrough,
75
+ inverse: child.inverse,
85
76
  });
86
77
  }
87
78
  }
@@ -89,47 +80,43 @@ export class TextHost extends BaseHost {
89
80
  return spans;
90
81
  }
91
82
  prepareContent() {
92
- this.invalidateContent();
93
83
  const useExplicitSpans = this.explicitSpans !== null;
94
84
  if (useExplicitSpans) {
95
85
  this.hasSpans = false;
96
86
  this.cachedSpans = null;
97
- this.prepared = true;
98
87
  return;
99
88
  }
100
89
  this.hasSpans = this.checkForSpans();
101
90
  this.cachedSpans = this.hasSpans ? this.collectSpans() : null;
102
- this.prepared = true;
103
91
  }
104
- ensurePrepared() {
105
- if (this.prepared)
106
- return;
107
- this.prepareContent();
108
- }
109
- /** Invalidate content cache when children change */
110
- invalidateContent() {
92
+ /** Reset content-related caches (text/spans/wrap). */
93
+ resetContentCaches() {
111
94
  this.cachedContent = null;
112
95
  this.cachedLines = null;
113
96
  this.cachedStyledLines = null;
97
+ this.cachedStyledWrap = false;
114
98
  this.cachedSpans = null;
115
- this.prepared = false;
116
99
  }
117
- prepareSelf() {
100
+ prepareSelf(_layoutDirty, _renderDirty) {
118
101
  this.prepareContent();
119
102
  }
103
+ invalidateLayout() {
104
+ this.resetContentCaches();
105
+ super.invalidateLayout();
106
+ }
120
107
  appendChild(child) {
108
+ this.resetContentCaches();
121
109
  super.appendChild(child);
122
- this.invalidateContent();
123
110
  }
124
111
  removeChild(child) {
112
+ this.resetContentCaches();
125
113
  super.removeChild(child);
126
- this.invalidateContent();
127
114
  }
128
115
  insertBefore(child, before) {
116
+ this.resetContentCaches();
129
117
  super.insertBefore(child, before);
130
- this.invalidateContent();
131
118
  }
132
- measure(maxW, maxH) {
119
+ measureSelf(maxW, maxH) {
133
120
  const constrained = this.constrainProposal(maxW, maxH);
134
121
  this.ensurePrepared();
135
122
  const useExplicitSpans = this.explicitSpans !== null;
@@ -137,15 +124,21 @@ export class TextHost extends BaseHost {
137
124
  if (useExplicitSpans || this.hasSpans) {
138
125
  const spans = useExplicitSpans ? this.explicitSpans : (this.cachedSpans ?? this.collectSpans());
139
126
  if (this.wrap) {
140
- this.cachedStyledLines = wrapSpans(spans, constrained.w);
127
+ this.cachedStyledLines = wrapSpansByLine(spans, constrained.w);
141
128
  this.cachedWidth = constrained.w;
129
+ this.cachedStyledWrap = true;
142
130
  const h = Math.min(this.cachedStyledLines.length, constrained.h);
143
- const w = this.cachedStyledLines.reduce((max, line) => Math.max(max, line.reduce((sum, span) => sum + displayWidth(span.text), 0)), 0);
131
+ const w = this.cachedStyledLines.reduce((max, line) => Math.max(max, spansDisplayWidth(line)), 0);
144
132
  return this.constrainResult({ w, h });
145
133
  }
146
- // Non-wrap styled mode
147
- const totalWidth = spans.reduce((sum, span) => sum + displayWidth(span.text), 0);
148
- return this.constrainResult({ w: Math.min(totalWidth, constrained.w), h: 1 });
134
+ // Non-wrap styled mode (preserve explicit newlines)
135
+ const lines = splitSpansByNewline(spans);
136
+ this.cachedStyledLines = lines;
137
+ this.cachedWidth = constrained.w;
138
+ this.cachedStyledWrap = false;
139
+ const maxLineWidth = lines.reduce((max, line) => Math.max(max, spansDisplayWidth(line)), 0);
140
+ const h = Math.min(lines.length, constrained.h);
141
+ return this.constrainResult({ w: Math.min(maxLineWidth, constrained.w), h });
149
142
  }
150
143
  // Simple mode: single style for all content
151
144
  const content = this.getContent();
@@ -164,7 +157,7 @@ export class TextHost extends BaseHost {
164
157
  const h = Math.min(rawLines.length, constrained.h);
165
158
  return this.constrainResult({ w, h });
166
159
  }
167
- layout(rect) {
160
+ layoutSelf(rect) {
168
161
  const layoutRect = this.layoutWithConstraints(rect);
169
162
  // Layout children (RawTextHost nodes) at same position
170
163
  for (const child of this.children) {
@@ -172,10 +165,8 @@ export class TextHost extends BaseHost {
172
165
  }
173
166
  }
174
167
  render(buffer, palette) {
175
- if (!this.rect) {
176
- this.prepared = false;
168
+ if (!this.rect)
177
169
  return;
178
- }
179
170
  this.ensurePrepared();
180
171
  // If text has no bg, inherit from parent box for proper highlight rendering
181
172
  const { value: bgValue, styleId: bgStyleId } = resolveInheritedBgStyle(palette, this.bg, this.parent);
@@ -183,11 +174,11 @@ export class TextHost extends BaseHost {
183
174
  const useExplicitSpans = this.explicitSpans !== null;
184
175
  // Styled mode: render with per-span styles
185
176
  if (useExplicitSpans || this.hasSpans) {
186
- const lines = this.wrap && this.cachedStyledLines && this.cachedWidth === this.rect.w
177
+ const lines = this.cachedStyledLines && this.cachedWidth === this.rect.w && this.cachedStyledWrap === this.wrap
187
178
  ? this.cachedStyledLines
188
179
  : (() => {
189
180
  const spans = useExplicitSpans ? this.explicitSpans : (this.cachedSpans ?? this.collectSpans());
190
- return this.wrap ? wrapSpans(spans, this.rect.w) : [spans];
181
+ return this.wrap ? wrapSpansByLine(spans, this.rect.w) : splitSpansByNewline(spans);
191
182
  })();
192
183
  for (let y = 0; y < Math.min(lines.length, this.rect.h); y++) {
193
184
  let x = this.rect.x;
@@ -195,12 +186,12 @@ export class TextHost extends BaseHost {
195
186
  const spanStyleId = styleIdFromProps(palette, {
196
187
  fg: span.fg ?? this.fg,
197
188
  bg: span.bg ?? inheritedBg,
198
- bold: span.bold,
199
- dimmed: span.dimmed,
200
- italic: span.italic,
201
- underline: span.underline,
202
- strikethrough: span.strikethrough,
203
- inverse: span.inverse,
189
+ bold: span.bold ?? this.bold,
190
+ dimmed: span.dimmed ?? this.dimmed,
191
+ italic: span.italic ?? this.italic,
192
+ underline: span.underline ?? this.underline,
193
+ strikethrough: span.strikethrough ?? this.strikethrough,
194
+ inverse: span.inverse ?? this.inverse,
204
195
  });
205
196
  const availableWidth = this.rect.w - (x - this.rect.x);
206
197
  if (availableWidth <= 0)
@@ -210,7 +201,6 @@ export class TextHost extends BaseHost {
210
201
  x += displayWidth(span.text);
211
202
  }
212
203
  }
213
- this.prepared = false;
214
204
  return;
215
205
  }
216
206
  // Simple mode: single style for all content
@@ -242,7 +232,6 @@ export class TextHost extends BaseHost {
242
232
  const lineWidth = Math.min(displayWidth(lines[i]), this.rect.w);
243
233
  buffer.drawText(this.rect.x, this.rect.y + i, lines[i], styleId, lineWidth);
244
234
  }
245
- this.prepared = false;
246
235
  return;
247
236
  }
248
237
  // Default: render explicit newlines, clip to width/height
@@ -255,10 +244,19 @@ export class TextHost extends BaseHost {
255
244
  const lineWidth = Math.min(displayWidth(rawLines[i]), this.rect.w);
256
245
  buffer.drawText(this.rect.x, this.rect.y + i, rawLines[i], styleId, lineWidth);
257
246
  }
258
- this.prepared = false;
259
247
  }
260
248
  updateProps(props) {
261
249
  super.updateProps(props);
250
+ const prevFg = this.fg;
251
+ const prevBg = this.bg;
252
+ const prevBold = this.bold;
253
+ const prevDimmed = this.dimmed;
254
+ const prevItalic = this.italic;
255
+ const prevUnderline = this.underline;
256
+ const prevStrikethrough = this.strikethrough;
257
+ const prevInverse = this.inverse;
258
+ const prevWrap = this.wrap;
259
+ const prevExplicitSpans = this.explicitSpans;
262
260
  // Color props support MotionValue/ColorMotionValue - auto-subscribe and animate
263
261
  this.fg = this.resolveSpringProp("fg", props.fg, (v) => {
264
262
  this.fg = v;
@@ -274,6 +272,22 @@ export class TextHost extends BaseHost {
274
272
  this.inverse = Boolean(props.inverse);
275
273
  this.wrap = Boolean(props.wrap);
276
274
  this.explicitSpans = "spans" in props ? (props.spans ?? []) : null;
275
+ const layoutChanged = prevWrap !== this.wrap || prevExplicitSpans !== this.explicitSpans;
276
+ if (layoutChanged) {
277
+ this.invalidateLayout();
278
+ return;
279
+ }
280
+ const renderChanged = prevFg !== this.fg ||
281
+ prevBg !== this.bg ||
282
+ prevBold !== this.bold ||
283
+ prevDimmed !== this.dimmed ||
284
+ prevItalic !== this.italic ||
285
+ prevUnderline !== this.underline ||
286
+ prevStrikethrough !== this.strikethrough ||
287
+ prevInverse !== this.inverse;
288
+ if (renderChanged) {
289
+ this.invalidateRender();
290
+ }
277
291
  }
278
292
  }
279
293
  /** Special host for raw text nodes (React text children) */
@@ -283,7 +297,7 @@ export class RawTextHost extends LeafHost {
283
297
  super("rawtext", {}, ctx);
284
298
  this.content = text;
285
299
  }
286
- measure(maxW, _maxH) {
300
+ measureSelf(maxW, _maxH) {
287
301
  const w = Math.min(displayWidth(this.content), maxW);
288
302
  return { w, h: 1 };
289
303
  }
@@ -299,6 +313,7 @@ export class RawTextHost extends LeafHost {
299
313
  }
300
314
  updateText(text) {
301
315
  this.content = text;
316
+ this.parent?.invalidateLayout?.();
302
317
  }
303
318
  updateProps(_props) {
304
319
  // Raw text has no props
@@ -313,12 +328,12 @@ export class RawTextHost extends LeafHost {
313
328
  export class SpanHost extends BaseHost {
314
329
  fg;
315
330
  bg;
316
- bold = false;
317
- dimmed = false;
318
- italic = false;
319
- underline = false;
320
- strikethrough = false;
321
- inverse = false;
331
+ bold;
332
+ dimmed;
333
+ italic;
334
+ underline;
335
+ strikethrough;
336
+ inverse;
322
337
  constructor(props, ctx) {
323
338
  super("span", props, ctx);
324
339
  this.updateProps(props);
@@ -330,7 +345,19 @@ export class SpanHost extends BaseHost {
330
345
  .map((c) => c.content)
331
346
  .join("");
332
347
  }
333
- measure(_maxW, _maxH) {
348
+ appendChild(child) {
349
+ super.appendChild(child);
350
+ this.parent?.invalidateLayout?.();
351
+ }
352
+ removeChild(child) {
353
+ super.removeChild(child);
354
+ this.parent?.invalidateLayout?.();
355
+ }
356
+ insertBefore(child, before) {
357
+ super.insertBefore(child, before);
358
+ this.parent?.invalidateLayout?.();
359
+ }
360
+ measureSelf(_maxW, _maxH) {
334
361
  // Span doesn't measure independently - parent TextHost handles layout
335
362
  return { w: 0, h: 0 };
336
363
  }
@@ -343,13 +370,19 @@ export class SpanHost extends BaseHost {
343
370
  // Individual props override textStyle object
344
371
  this.fg = props.fg !== undefined ? props.fg : textStyle?.fg;
345
372
  this.bg = props.bg !== undefined ? props.bg : textStyle?.bg;
346
- this.bold = props.bold !== undefined ? Boolean(props.bold) : Boolean(textStyle?.bold);
347
- this.dimmed = props.dimmed !== undefined ? Boolean(props.dimmed) : Boolean(textStyle?.dimmed);
348
- this.italic = props.italic !== undefined ? Boolean(props.italic) : Boolean(textStyle?.italic);
349
- this.underline = props.underline !== undefined ? Boolean(props.underline) : Boolean(textStyle?.underline);
350
- this.strikethrough =
351
- props.strikethrough !== undefined ? Boolean(props.strikethrough) : Boolean(textStyle?.strikethrough);
352
- this.inverse = props.inverse !== undefined ? Boolean(props.inverse) : Boolean(textStyle?.inverse);
373
+ this.bold = props.bold !== undefined ? Boolean(props.bold) : textStyle?.bold;
374
+ this.dimmed = props.dimmed !== undefined ? Boolean(props.dimmed) : textStyle?.dimmed;
375
+ this.italic = props.italic !== undefined ? Boolean(props.italic) : textStyle?.italic;
376
+ this.underline = props.underline !== undefined ? Boolean(props.underline) : textStyle?.underline;
377
+ this.strikethrough = props.strikethrough !== undefined ? Boolean(props.strikethrough) : textStyle?.strikethrough;
378
+ this.inverse = props.inverse !== undefined ? Boolean(props.inverse) : textStyle?.inverse;
379
+ this.invalidateLayout();
380
+ }
381
+ invalidateLayout() {
382
+ this.parent?.invalidateLayout?.();
383
+ }
384
+ invalidateRender() {
385
+ this.parent?.invalidateRender?.();
353
386
  }
354
387
  }
355
388
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/hosts/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/hosts/text.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,8 @@ export declare class ZStackHost extends BaseHost {
13
13
  alignmentV: VAlign;
14
14
  private cachedSizes;
15
15
  constructor(props: ZStackProps, ctx: HostContext);
16
- measure(maxW: number, maxH: number): Size;
17
- layout(rect: Rect): void;
16
+ protected measureSelf(maxW: number, maxH: number): Size;
17
+ protected layoutSelf(rect: Rect): void;
18
18
  render(buffer: CellBuffer, palette: Palette): void;
19
19
  updateProps(props: Record<string, unknown>): void;
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zstack.d.ts","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGpC,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,SAAS,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QAAC,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAA;CAChF;AAGD,qBAAa,UAAW,SAAQ,QAAQ;IACvC,UAAU,EAAE,MAAM,CAAW;IAC7B,UAAU,EAAE,MAAM,CAAW;IAC7B,OAAO,CAAC,WAAW,CAAa;gBAEpB,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW;IAKhD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAwBhC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IASjC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAQ1D"}
1
+ {"version":3,"file":"zstack.d.ts","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAGpC,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,SAAS,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;QAAC,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAA;CAChF;AAGD,qBAAa,UAAW,SAAQ,QAAQ;IACvC,UAAU,EAAE,MAAM,CAAW;IAC7B,UAAU,EAAE,MAAM,CAAW;IAC7B,OAAO,CAAC,WAAW,CAAa;gBAEpB,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW;IAKhD,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;cAwBpC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAS/C,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAa1D"}
@@ -10,7 +10,7 @@ export class ZStackHost extends BaseHost {
10
10
  super("zstack", props, ctx);
11
11
  this.updateProps(props);
12
12
  }
13
- measure(maxW, maxH) {
13
+ measureSelf(maxW, maxH) {
14
14
  // Apply frame constraints to what we propose to children
15
15
  const constrained = this.constrainProposal(maxW, maxH);
16
16
  let maxChildW = 0;
@@ -29,7 +29,7 @@ export class ZStackHost extends BaseHost {
29
29
  // Apply frame constraints to what we report to parent
30
30
  return this.constrainResult(naturalSize);
31
31
  }
32
- layout(rect) {
32
+ layoutSelf(rect) {
33
33
  const layoutRect = this.layoutWithConstraints(rect);
34
34
  layoutAlignedChildren(layoutRect, this.children, this.cachedSizes, () => ({
35
35
  h: this.alignmentH,
@@ -43,6 +43,8 @@ export class ZStackHost extends BaseHost {
43
43
  }
44
44
  updateProps(props) {
45
45
  super.updateProps(props);
46
+ const prevH = this.alignmentH;
47
+ const prevV = this.alignmentV;
46
48
  if (props.alignment !== undefined) {
47
49
  const a = props.alignment;
48
50
  if (a?.h)
@@ -50,6 +52,9 @@ export class ZStackHost extends BaseHost {
50
52
  if (a?.v)
51
53
  this.alignmentV = a.v;
52
54
  }
55
+ if (prevH !== this.alignmentH || prevV !== this.alignmentV) {
56
+ this.invalidateLayout();
57
+ }
53
58
  }
54
59
  }
55
60
  //# sourceMappingURL=zstack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zstack.js","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"AAEA,OAAO,EAA4B,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAM3D,wEAAwE;AACxE,MAAM,OAAO,UAAW,SAAQ,QAAQ;IACvC,UAAU,GAAW,QAAQ,CAAA;IAC7B,UAAU,GAAW,QAAQ,CAAA;IACrB,WAAW,GAAW,EAAE,CAAA;IAEhC,YAAY,KAAkB,EAAE,GAAgB;QAC/C,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,WAAW,CAAC,KAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAY;QACjC,yDAAyD;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAEtD,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;QAErB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;YACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC3B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;YACvC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QACxC,CAAC;QAED,MAAM,WAAW,GAAG;YACnB,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC;YACrC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC;SACrC,CAAA;QAED,sDAAsD;QACtD,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;IACzC,CAAC;IAEQ,MAAM,CAAC,IAAU;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;QAEnD,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;YACzE,CAAC,EAAE,IAAI,CAAC,UAAU;YAClB,CAAC,EAAE,IAAI,CAAC,UAAU;SAClB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,MAAkB,EAAE,OAAgB;QAC1C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACjD,CAAC;IACF,CAAC;IAEQ,WAAW,CAAC,KAA8B;QAClD,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACxB,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAqC,CAAA;YACrD,IAAI,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAI,CAAC,EAAE,CAAC;gBAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"zstack.js","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export { useKeyboard, useMouse, usePaste, useQuit, useScroll, useShortcut, useTi
11
11
  export { isKey } from "./shortcuts.js";
12
12
  export { useFrameStats } from "./hooks/useFrameStats.js";
13
13
  export type { BorderKind, BoxProps } from "./hosts/box.js";
14
- export type { CanvasProps, DrawContext } from "./hosts/canvas.js";
14
+ export type { CanvasCell, CanvasProps, DrawContext } from "./hosts/canvas.js";
15
15
  export type { HStackProps } from "./hosts/hstack.js";
16
16
  export type { ScrollAlign, ScrollAlignX, ScrollAlignY, ScrollAxis, ScrollLayoutChange, ScrollProps } from "./hosts/scroll.js";
17
17
  export type { SpacerProps } from "./hosts/spacer.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/renderer/index.ts"],"names":[],"mappings":"AAGA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAe7C,OAAO,KAAK,EAIX,eAAe,EAEf,WAAW,EAGX,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE5E,YAAY,EACX,UAAU,EACV,QAAQ,EACR,eAAe,EACf,aAAa,EACb,WAAW,EACX,cAAc,GACd,MAAM,YAAY,CAAA;AAInB,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAoarE;AAED,MAAM,WAAW,IAAI;IACpB,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAChD,OAAO,IAAI,IAAI,CAAA;CACf;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CA+CtD;AAGD,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,WAAW,CAAA;IACrB,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAA;IAClC,OAAO,IAAI,IAAI,CAAA;IACf,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,mFAAmF;IACnF,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,iBAAiB,GAAG;IACxB,mDAAmD;IACnD,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;CAC9B,CAAA;AAED,KAAK,gBAAgB,GAAG,iBAAiB,GAAG;IAC3C,iEAAiE;IACjE,GAAG,EAAE,IAAI,CAAA;IACT,4BAA4B;IAC5B,UAAU,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,KAAK,oBAAoB,GAAG,iBAAiB,GAAG;IAC/C,mCAAmC;IACnC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,oBAAoB,CAAA;AAmEnE,wBAAgB,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CAqClF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/renderer/index.ts"],"names":[],"mappings":"AASA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAe7C,OAAO,KAAK,EAIX,eAAe,EAEf,WAAW,EAGX,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE5E,YAAY,EACX,UAAU,EACV,QAAQ,EACR,eAAe,EACf,aAAa,EACb,WAAW,EACX,cAAc,GACd,MAAM,YAAY,CAAA;AAInB,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CA+brE;AAED,MAAM,WAAW,IAAI;IACpB,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAChD,OAAO,IAAI,IAAI,CAAA;CACf;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CA+CtD;AAGD,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,WAAW,CAAA;IACrB,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAA;IAClC,OAAO,IAAI,IAAI,CAAA;IACf,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,mFAAmF;IACnF,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,iBAAiB,GAAG;IACxB,mDAAmD;IACnD,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;CAC9B,CAAA;AAED,KAAK,gBAAgB,GAAG,iBAAiB,GAAG;IAC3C,iEAAiE;IACjE,GAAG,EAAE,IAAI,CAAA;IACT,4BAA4B;IAC5B,UAAU,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,KAAK,oBAAoB,GAAG,iBAAiB,GAAG;IAC/C,mCAAmC;IACnC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,oBAAoB,CAAA;AAmEnE,wBAAgB,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CAqClF"}
@@ -1,6 +1,6 @@
1
1
  import { performance } from "node:perf_hooks";
2
2
  import { fileURLToPath } from "node:url";
3
- import { ANSI, bufferToString } from "@effect-tui/core";
3
+ import { ANSI, bufferToString, setEmojiWidth, } from "@effect-tui/core";
4
4
  import React, {} from "react";
5
5
  import { createTerminalWriter, writeToTerminal } from "../../console/ConsoleCapture.js";
6
6
  import { DEFAULT_FPS } from "../../constants.js";
@@ -18,6 +18,7 @@ import { startDevRuntime } from "../dev/runtime.js";
18
18
  export { RendererContext, useRenderer, useTerminalSize } from "./context.js";
19
19
  export function createRenderer(options) {
20
20
  const fps = options?.fps ?? DEFAULT_FPS;
21
+ const exitOnRenderError = options?.exitOnRenderError ?? true;
21
22
  // Use custom stdout if provided, otherwise use process.stdout with bypassed capture
22
23
  let stdout;
23
24
  if (options?.stdout) {
@@ -59,6 +60,8 @@ export function createRenderer(options) {
59
60
  const enableMouse = options?.enableMouse ?? mode === "fullscreen";
60
61
  const enableKittyKeyboard = options?.enableKittyKeyboard;
61
62
  const debugHook = options?.debug?.onFrame;
63
+ const emojiWidthOption = options?.emojiWidth;
64
+ const envEmojiWidth = process.env.TUI_EMOJI_WIDTH ?? process.env.EFFECT_TUI_EMOJI_WIDTH ?? process.env.EMOJI_WIDTH;
62
65
  const keyboardProbe = !skipTerminalSetup && enableKittyKeyboard !== false
63
66
  ? createKeyboardCapabilityProbe({
64
67
  stdout,
@@ -73,6 +76,12 @@ export function createRenderer(options) {
73
76
  },
74
77
  })
75
78
  : null;
79
+ if (emojiWidthOption === 1 || emojiWidthOption === 2) {
80
+ setEmojiWidth(emojiWidthOption);
81
+ }
82
+ else if (envEmojiWidth === "1" || envEmojiWidth === "2") {
83
+ setEmojiWidth(envEmojiWidth === "1" ? 1 : 2);
84
+ }
76
85
  // Initialize state
77
86
  const state = new RendererState(stdout.columns || 80, stdout.rows || 24);
78
87
  const events = new EventBus();
@@ -88,6 +97,29 @@ export function createRenderer(options) {
88
97
  const renderMode = mode === "fullscreen" ? new FullscreenRenderer() : new InlineRenderer();
89
98
  // Static content renderer (inline mode only)
90
99
  const staticRenderer = mode === "inline" ? new StaticContentRenderer(stdout, state.palette) : null;
100
+ let renderer;
101
+ let cleanedUp = false;
102
+ const cleanup = () => {
103
+ if (cleanedUp)
104
+ return;
105
+ cleanedUp = true;
106
+ renderer.stop();
107
+ };
108
+ const handleRenderError = (err) => {
109
+ const error = err instanceof Error ? err : new Error(String(err));
110
+ cleanup();
111
+ writeToTerminal(`\n[effect-tui] Render error:\n${error.stack || error.message}\n`);
112
+ if (exitOnRenderError)
113
+ process.exit(1);
114
+ };
115
+ const filterInput = keyboardProbe
116
+ ? (input) => {
117
+ let output = input;
118
+ if (keyboardProbe)
119
+ output = keyboardProbe.handleInput(output);
120
+ return output;
121
+ }
122
+ : undefined;
91
123
  // Input processing
92
124
  const inputProcessor = new InputProcessor({
93
125
  exitOnCtrlC,
@@ -107,7 +139,7 @@ export function createRenderer(options) {
107
139
  renderer.stop();
108
140
  requestExit(0);
109
141
  },
110
- filterInput: keyboardProbe ? (input) => keyboardProbe.handleInput(input) : undefined,
142
+ filterInput,
111
143
  });
112
144
  const handleInlineFullRerender = () => {
113
145
  if (mode !== "inline" || !staticRenderer)
@@ -243,8 +275,7 @@ export function createRenderer(options) {
243
275
  events.dispatchFrame(stats);
244
276
  }
245
277
  catch (err) {
246
- console.error("[effect-tui] Render error:", err);
247
- state.markDirty();
278
+ handleRenderError(err);
248
279
  }
249
280
  };
250
281
  const applyResize = (width, height, renderNow) => {
@@ -265,7 +296,7 @@ export function createRenderer(options) {
265
296
  let onUnhandledRejection = null;
266
297
  let unregisterProcessHandlers = null;
267
298
  // Build renderer object
268
- const renderer = {
299
+ renderer = {
269
300
  get width() {
270
301
  return state.width;
271
302
  },
@@ -331,13 +362,14 @@ export function createRenderer(options) {
331
362
  };
332
363
  // Terminal setup
333
364
  terminal.setup();
365
+ // Input handling
366
+ state.inputHandler = (data) => inputProcessor.process(data);
367
+ stdin.on("data", state.inputHandler);
334
368
  keyboardProbe?.start();
369
+ // No emoji width probing.
335
370
  if (!keyboardProbe && !skipTerminalSetup) {
336
371
  stdout.write(ANSI.modifyOtherKeys.enable);
337
372
  }
338
- // Input handling
339
- state.inputHandler = (data) => inputProcessor.process(data);
340
- stdin.on("data", state.inputHandler);
341
373
  // Resize handling
342
374
  state.resizeHandler = () => {
343
375
  const newWidth = stdout.columns || 80;
@@ -360,13 +392,6 @@ export function createRenderer(options) {
360
392
  }
361
393
  // Process exit handlers - ensure terminal is restored on any exit
362
394
  // These handlers are critical for proper cleanup when process.exit() is called
363
- let cleanedUp = false;
364
- const cleanup = () => {
365
- if (cleanedUp)
366
- return;
367
- cleanedUp = true;
368
- renderer.stop();
369
- };
370
395
  if (handleSignals) {
371
396
  // Handle normal process exit (synchronous - runs before exit completes)
372
397
  onExit = () => cleanup();
@@ -406,7 +431,7 @@ export function createRenderer(options) {
406
431
  export function createRoot(renderer) {
407
432
  const hostContext = {
408
433
  requestRender: () => renderer.requestRender(),
409
- requestImmediateRender: () => renderer.renderNow(),
434
+ requestRenderNow: () => renderer.renderNow(),
410
435
  };
411
436
  const container = {
412
437
  root: null,