@effect-tui/react 0.12.3 → 0.14.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 (170) hide show
  1. package/README.md +31 -7
  2. package/dist/jsx-runtime.d.ts +1 -2
  3. package/dist/jsx-runtime.d.ts.map +1 -1
  4. package/dist/src/components/Markdown.js +7 -7
  5. package/dist/src/components/Markdown.js.map +1 -1
  6. package/dist/src/components/MultilineTextInput.d.ts.map +1 -1
  7. package/dist/src/components/MultilineTextInput.js +11 -0
  8. package/dist/src/components/MultilineTextInput.js.map +1 -1
  9. package/dist/src/components/TextInput.d.ts.map +1 -1
  10. package/dist/src/components/TextInput.js +15 -0
  11. package/dist/src/components/TextInput.js.map +1 -1
  12. package/dist/src/dev.d.ts +22 -32
  13. package/dist/src/dev.d.ts.map +1 -1
  14. package/dist/src/dev.js +42 -96
  15. package/dist/src/dev.js.map +1 -1
  16. package/dist/src/hooks/index.d.ts +3 -0
  17. package/dist/src/hooks/index.d.ts.map +1 -1
  18. package/dist/src/hooks/index.js +1 -0
  19. package/dist/src/hooks/index.js.map +1 -1
  20. package/dist/src/hooks/use-mouse.d.ts +10 -1
  21. package/dist/src/hooks/use-mouse.d.ts.map +1 -1
  22. package/dist/src/hooks/use-mouse.js +10 -2
  23. package/dist/src/hooks/use-mouse.js.map +1 -1
  24. package/dist/src/hooks/use-paste.d.ts +13 -3
  25. package/dist/src/hooks/use-paste.d.ts.map +1 -1
  26. package/dist/src/hooks/use-paste.js +15 -5
  27. package/dist/src/hooks/use-paste.js.map +1 -1
  28. package/dist/src/hooks/use-scroll.d.ts +59 -24
  29. package/dist/src/hooks/use-scroll.d.ts.map +1 -1
  30. package/dist/src/hooks/use-scroll.js +238 -79
  31. package/dist/src/hooks/use-scroll.js.map +1 -1
  32. package/dist/src/hooks/use-shortcut.d.ts +16 -0
  33. package/dist/src/hooks/use-shortcut.d.ts.map +1 -0
  34. package/dist/src/hooks/use-shortcut.js +29 -0
  35. package/dist/src/hooks/use-shortcut.js.map +1 -0
  36. package/dist/src/hosts/base.d.ts +16 -0
  37. package/dist/src/hosts/base.d.ts.map +1 -1
  38. package/dist/src/hosts/base.js +30 -0
  39. package/dist/src/hosts/base.js.map +1 -1
  40. package/dist/src/hosts/box.d.ts.map +1 -1
  41. package/dist/src/hosts/box.js +7 -8
  42. package/dist/src/hosts/box.js.map +1 -1
  43. package/dist/src/hosts/canvas.d.ts.map +1 -1
  44. package/dist/src/hosts/canvas.js +5 -3
  45. package/dist/src/hosts/canvas.js.map +1 -1
  46. package/dist/src/hosts/codeblock.d.ts.map +1 -1
  47. package/dist/src/hosts/codeblock.js +5 -4
  48. package/dist/src/hosts/codeblock.js.map +1 -1
  49. package/dist/src/hosts/flex-container.d.ts.map +1 -1
  50. package/dist/src/hosts/flex-container.js +5 -8
  51. package/dist/src/hosts/flex-container.js.map +1 -1
  52. package/dist/src/hosts/index.d.ts +1 -1
  53. package/dist/src/hosts/index.d.ts.map +1 -1
  54. package/dist/src/hosts/index.js +2 -3
  55. package/dist/src/hosts/index.js.map +1 -1
  56. package/dist/src/hosts/overlay-item.js +2 -2
  57. package/dist/src/hosts/overlay-item.js.map +1 -1
  58. package/dist/src/hosts/overlay.d.ts.map +1 -1
  59. package/dist/src/hosts/overlay.js +6 -11
  60. package/dist/src/hosts/overlay.js.map +1 -1
  61. package/dist/src/hosts/scroll.d.ts +8 -0
  62. package/dist/src/hosts/scroll.d.ts.map +1 -1
  63. package/dist/src/hosts/scroll.js +50 -26
  64. package/dist/src/hosts/scroll.js.map +1 -1
  65. package/dist/src/hosts/spacer.d.ts.map +1 -1
  66. package/dist/src/hosts/spacer.js +1 -3
  67. package/dist/src/hosts/spacer.js.map +1 -1
  68. package/dist/src/hosts/text.d.ts +24 -45
  69. package/dist/src/hosts/text.d.ts.map +1 -1
  70. package/dist/src/hosts/text.js +69 -215
  71. package/dist/src/hosts/text.js.map +1 -1
  72. package/dist/src/hosts/zstack.d.ts.map +1 -1
  73. package/dist/src/hosts/zstack.js +4 -10
  74. package/dist/src/hosts/zstack.js.map +1 -1
  75. package/dist/src/index.d.ts +6 -4
  76. package/dist/src/index.d.ts.map +1 -1
  77. package/dist/src/index.js +3 -2
  78. package/dist/src/index.js.map +1 -1
  79. package/dist/src/reconciler/types.d.ts +2 -0
  80. package/dist/src/reconciler/types.d.ts.map +1 -1
  81. package/dist/src/renderer/core/FrameBuilder.d.ts.map +1 -1
  82. package/dist/src/renderer/core/FrameBuilder.js +2 -0
  83. package/dist/src/renderer/core/FrameBuilder.js.map +1 -1
  84. package/dist/src/renderer/input/InputProcessor.d.ts.map +1 -1
  85. package/dist/src/renderer/input/InputProcessor.js +13 -3
  86. package/dist/src/renderer/input/InputProcessor.js.map +1 -1
  87. package/dist/src/renderer/lifecycle/EventBus.d.ts +2 -2
  88. package/dist/src/renderer/lifecycle/EventBus.d.ts.map +1 -1
  89. package/dist/src/renderer/lifecycle/EventBus.js +13 -1
  90. package/dist/src/renderer/lifecycle/EventBus.js.map +1 -1
  91. package/dist/src/renderer/lifecycle/RenderCache.d.ts +3 -0
  92. package/dist/src/renderer/lifecycle/RenderCache.d.ts.map +1 -0
  93. package/dist/src/renderer/lifecycle/RenderCache.js +9 -0
  94. package/dist/src/renderer/lifecycle/RenderCache.js.map +1 -0
  95. package/dist/src/renderer/lifecycle/index.d.ts +1 -0
  96. package/dist/src/renderer/lifecycle/index.d.ts.map +1 -1
  97. package/dist/src/renderer/lifecycle/index.js +1 -0
  98. package/dist/src/renderer/lifecycle/index.js.map +1 -1
  99. package/dist/src/renderer-types.d.ts +9 -2
  100. package/dist/src/renderer-types.d.ts.map +1 -1
  101. package/dist/src/renderer.d.ts +13 -2
  102. package/dist/src/renderer.d.ts.map +1 -1
  103. package/dist/src/renderer.js +42 -11
  104. package/dist/src/renderer.js.map +1 -1
  105. package/dist/src/shortcuts.d.ts +15 -0
  106. package/dist/src/shortcuts.d.ts.map +1 -0
  107. package/dist/src/shortcuts.js +149 -0
  108. package/dist/src/shortcuts.js.map +1 -0
  109. package/dist/src/test/mock-streams.d.ts.map +1 -1
  110. package/dist/src/test/mock-streams.js +0 -3
  111. package/dist/src/test/mock-streams.js.map +1 -1
  112. package/dist/src/test/render-tui.d.ts.map +1 -1
  113. package/dist/src/test/render-tui.js +1 -0
  114. package/dist/src/test/render-tui.js.map +1 -1
  115. package/dist/src/utils/alignment.d.ts +4 -0
  116. package/dist/src/utils/alignment.d.ts.map +1 -1
  117. package/dist/src/utils/alignment.js +12 -0
  118. package/dist/src/utils/alignment.js.map +1 -1
  119. package/dist/src/utils/index.d.ts +3 -2
  120. package/dist/src/utils/index.d.ts.map +1 -1
  121. package/dist/src/utils/index.js +3 -2
  122. package/dist/src/utils/index.js.map +1 -1
  123. package/dist/src/utils/styles.d.ts +6 -1
  124. package/dist/src/utils/styles.d.ts.map +1 -1
  125. package/dist/src/utils/styles.js +9 -0
  126. package/dist/src/utils/styles.js.map +1 -1
  127. package/dist/src/utils/text-wrap.d.ts +10 -0
  128. package/dist/src/utils/text-wrap.d.ts.map +1 -0
  129. package/dist/src/utils/text-wrap.js +64 -0
  130. package/dist/src/utils/text-wrap.js.map +1 -0
  131. package/dist/tsconfig.tsbuildinfo +1 -1
  132. package/jsx-runtime.ts +1 -2
  133. package/package.json +2 -2
  134. package/src/components/Markdown.tsx +7 -7
  135. package/src/components/MultilineTextInput.tsx +14 -0
  136. package/src/components/TextInput.tsx +18 -0
  137. package/src/dev.tsx +59 -107
  138. package/src/hooks/index.ts +3 -0
  139. package/src/hooks/use-mouse.ts +19 -3
  140. package/src/hooks/use-paste.ts +24 -5
  141. package/src/hooks/use-scroll.ts +345 -105
  142. package/src/hooks/use-shortcut.ts +54 -0
  143. package/src/hosts/base.ts +35 -0
  144. package/src/hosts/box.ts +7 -8
  145. package/src/hosts/canvas.ts +5 -3
  146. package/src/hosts/codeblock.ts +5 -4
  147. package/src/hosts/flex-container.ts +5 -7
  148. package/src/hosts/index.ts +1 -4
  149. package/src/hosts/overlay-item.ts +2 -2
  150. package/src/hosts/overlay.ts +6 -12
  151. package/src/hosts/scroll.ts +55 -26
  152. package/src/hosts/spacer.ts +1 -3
  153. package/src/hosts/text.ts +89 -256
  154. package/src/hosts/zstack.ts +4 -11
  155. package/src/index.ts +19 -6
  156. package/src/reconciler/types.ts +3 -0
  157. package/src/renderer/core/FrameBuilder.ts +3 -0
  158. package/src/renderer/input/InputProcessor.ts +13 -3
  159. package/src/renderer/lifecycle/EventBus.ts +14 -4
  160. package/src/renderer/lifecycle/RenderCache.ts +13 -0
  161. package/src/renderer/lifecycle/index.ts +1 -0
  162. package/src/renderer-types.ts +10 -2
  163. package/src/renderer.ts +85 -14
  164. package/src/shortcuts.ts +180 -0
  165. package/src/test/mock-streams.ts +0 -3
  166. package/src/test/render-tui.ts +1 -0
  167. package/src/utils/alignment.ts +18 -0
  168. package/src/utils/index.ts +3 -1
  169. package/src/utils/styles.ts +18 -1
  170. package/src/utils/text-wrap.ts +66 -0
@@ -1,5 +1,5 @@
1
1
  import { displayWidth } from "@effect-tui/core";
2
- import { resolveInheritedBgStyle, styleIdFromProps } from "../utils/index.js";
2
+ import { resolveInheritedBgStyle, styleIdFromProps, wrapSpans } from "../utils/index.js";
3
3
  import { BaseHost, getInheritedBg } from "./base.js";
4
4
  export class TextHost extends BaseHost {
5
5
  fg;
@@ -18,7 +18,10 @@ export class TextHost extends BaseHost {
18
18
  cachedContent = null;
19
19
  // Cache for styled mode
20
20
  cachedStyledLines = null;
21
+ cachedSpans = null;
21
22
  hasSpans = false;
23
+ explicitSpans = null;
24
+ prepared = false;
22
25
  constructor(props, ctx) {
23
26
  super("text", props, ctx);
24
27
  this.updateProps(props);
@@ -84,105 +87,81 @@ export class TextHost extends BaseHost {
84
87
  }
85
88
  return spans;
86
89
  }
87
- /** Wrap spans into lines, breaking at word boundaries (same logic as StyledTextHost) */
88
- wrapSpans(spans, maxWidth) {
89
- const lines = [[]];
90
- let lineWidth = 0;
91
- for (const span of spans) {
92
- // Split span text into words (keeping whitespace as separate tokens)
93
- const tokens = span.text.split(/(\s+)/);
94
- for (const token of tokens) {
95
- if (!token)
96
- continue;
97
- const tokenWidth = displayWidth(token);
98
- const isWhitespace = /^\s+$/.test(token);
99
- if (lineWidth + tokenWidth <= maxWidth) {
100
- // Token fits on current line
101
- lines[lines.length - 1].push({ ...span, text: token });
102
- lineWidth += tokenWidth;
103
- }
104
- else if (isWhitespace) {
105
- // Skip whitespace at line break
106
- continue;
107
- }
108
- else if (tokenWidth <= maxWidth) {
109
- // Start new line with this token
110
- lines.push([{ ...span, text: token }]);
111
- lineWidth = tokenWidth;
112
- }
113
- else {
114
- // Token is longer than maxWidth - break by character
115
- let charLine = "";
116
- let charLineWidth = 0;
117
- for (const ch of token) {
118
- const chWidth = displayWidth(ch);
119
- if (lineWidth + charLineWidth + chWidth > maxWidth && (charLine || lineWidth > 0)) {
120
- if (charLine) {
121
- lines[lines.length - 1].push({ ...span, text: charLine });
122
- }
123
- lines.push([]);
124
- lineWidth = 0;
125
- charLine = ch;
126
- charLineWidth = chWidth;
127
- }
128
- else {
129
- charLine += ch;
130
- charLineWidth += chWidth;
131
- }
132
- }
133
- if (charLine) {
134
- lines[lines.length - 1].push({ ...span, text: charLine });
135
- lineWidth += charLineWidth;
136
- }
137
- }
138
- }
139
- }
140
- // Remove empty lines at the end
141
- while (lines.length > 0 && lines[lines.length - 1].length === 0) {
142
- lines.pop();
90
+ prepareContent() {
91
+ this.invalidateContent();
92
+ const useExplicitSpans = this.explicitSpans !== null;
93
+ if (useExplicitSpans) {
94
+ this.hasSpans = false;
95
+ this.cachedSpans = null;
96
+ this.prepared = true;
97
+ return;
143
98
  }
144
- return lines.length > 0 ? lines : [[]];
99
+ this.hasSpans = this.checkForSpans();
100
+ this.cachedSpans = this.hasSpans ? this.collectSpans() : null;
101
+ this.prepared = true;
102
+ }
103
+ ensurePrepared() {
104
+ if (this.prepared)
105
+ return;
106
+ this.prepareContent();
145
107
  }
146
108
  /** Invalidate content cache when children change */
147
109
  invalidateContent() {
148
110
  this.cachedContent = null;
149
111
  this.cachedLines = null;
150
112
  this.cachedStyledLines = null;
113
+ this.cachedSpans = null;
114
+ this.prepared = false;
151
115
  }
152
- measure(maxW, maxH) {
153
- // Invalidate content cache at start of measure (will be recomputed on demand)
116
+ prepareSelf() {
117
+ this.prepareContent();
118
+ }
119
+ appendChild(child) {
120
+ super.appendChild(child);
154
121
  this.invalidateContent();
155
- this.hasSpans = this.checkForSpans();
122
+ }
123
+ removeChild(child) {
124
+ super.removeChild(child);
125
+ this.invalidateContent();
126
+ }
127
+ insertBefore(child, before) {
128
+ super.insertBefore(child, before);
129
+ this.invalidateContent();
130
+ }
131
+ measure(maxW, maxH) {
132
+ const constrained = this.constrainProposal(maxW, maxH);
133
+ this.ensurePrepared();
134
+ const useExplicitSpans = this.explicitSpans !== null;
156
135
  // Styled mode: use span-aware rendering
157
- if (this.hasSpans) {
158
- const spans = this.collectSpans();
136
+ if (useExplicitSpans || this.hasSpans) {
137
+ const spans = useExplicitSpans ? this.explicitSpans : (this.cachedSpans ?? this.collectSpans());
159
138
  if (this.wrap) {
160
- this.cachedStyledLines = this.wrapSpans(spans, maxW);
161
- this.cachedWidth = maxW;
162
- const h = Math.min(this.cachedStyledLines.length, maxH);
139
+ this.cachedStyledLines = wrapSpans(spans, constrained.w);
140
+ this.cachedWidth = constrained.w;
141
+ const h = Math.min(this.cachedStyledLines.length, constrained.h);
163
142
  const w = this.cachedStyledLines.reduce((max, line) => Math.max(max, line.reduce((sum, span) => sum + displayWidth(span.text), 0)), 0);
164
- return { w, h };
143
+ return this.constrainResult({ w, h });
165
144
  }
166
145
  // Non-wrap styled mode
167
146
  const totalWidth = spans.reduce((sum, span) => sum + displayWidth(span.text), 0);
168
- return { w: Math.min(totalWidth, maxW), h: 1 };
147
+ return this.constrainResult({ w: Math.min(totalWidth, constrained.w), h: 1 });
169
148
  }
170
149
  // Simple mode: single style for all content
171
150
  const content = this.getContent();
172
151
  const rawLines = content.split("\n");
173
152
  if (this.wrap) {
174
153
  // Wrap mode: may span multiple lines. Cache result for render()
175
- this.cachedLines = rawLines.flatMap((line, idx) => idx < rawLines.length - 1 ? [...this.wrapText(line, maxW), ""] : this.wrapText(line, maxW));
176
- this.cachedWidth = maxW;
154
+ this.cachedLines = rawLines.flatMap((line, idx) => idx < rawLines.length - 1 ? [...this.wrapText(line, constrained.w), ""] : this.wrapText(line, constrained.w));
155
+ this.cachedWidth = constrained.w;
177
156
  const w = this.cachedLines.reduce((max, line) => Math.max(max, displayWidth(line)), 0);
178
- return { w, h: Math.min(this.cachedLines.length, maxH) };
157
+ return this.constrainResult({ w, h: Math.min(this.cachedLines.length, constrained.h) });
179
158
  }
180
159
  // Default: respect explicit newlines but do not wrap long words
181
160
  this.cachedLines = null;
182
- const widths = rawLines.map((line) => Math.min(displayWidth(line), maxW));
161
+ const widths = rawLines.map((line) => Math.min(displayWidth(line), constrained.w));
183
162
  const w = widths.reduce((max, val) => Math.max(max, val), 0);
184
- const h = Math.min(rawLines.length, maxH);
185
- return { w, h };
163
+ const h = Math.min(rawLines.length, constrained.h);
164
+ return this.constrainResult({ w, h });
186
165
  }
187
166
  /** Wrap text to fit within maxWidth, preferring word boundaries */
188
167
  wrapText(text, maxWidth) {
@@ -242,26 +221,30 @@ export class TextHost extends BaseHost {
242
221
  return result.length > 0 ? result : [""];
243
222
  }
244
223
  layout(rect) {
245
- super.layout(rect);
224
+ const layoutRect = this.layoutWithConstraints(rect);
246
225
  // Layout children (RawTextHost nodes) at same position
247
226
  for (const child of this.children) {
248
- child.layout(rect);
227
+ child.layout(layoutRect);
249
228
  }
250
229
  }
251
230
  render(buffer, palette) {
252
- if (!this.rect)
231
+ if (!this.rect) {
232
+ this.prepared = false;
253
233
  return;
234
+ }
235
+ this.ensurePrepared();
254
236
  // If text has no bg, inherit from parent box for proper highlight rendering
255
237
  const { value: bgValue, styleId: bgStyleId } = resolveInheritedBgStyle(palette, this.bg, this.parent);
256
238
  const inheritedBg = this.bg ?? getInheritedBg(this.parent);
239
+ const useExplicitSpans = this.explicitSpans !== null;
257
240
  // Styled mode: render with per-span styles
258
- if (this.hasSpans) {
259
- const spans = this.collectSpans();
241
+ if (useExplicitSpans || this.hasSpans) {
260
242
  const lines = this.wrap && this.cachedStyledLines && this.cachedWidth === this.rect.w
261
243
  ? this.cachedStyledLines
262
- : this.wrap
263
- ? this.wrapSpans(spans, this.rect.w)
264
- : [spans];
244
+ : (() => {
245
+ const spans = useExplicitSpans ? this.explicitSpans : (this.cachedSpans ?? this.collectSpans());
246
+ return this.wrap ? wrapSpans(spans, this.rect.w) : [spans];
247
+ })();
265
248
  for (let y = 0; y < Math.min(lines.length, this.rect.h); y++) {
266
249
  let x = this.rect.x;
267
250
  for (const span of lines[y]) {
@@ -283,6 +266,7 @@ export class TextHost extends BaseHost {
283
266
  x += displayWidth(span.text);
284
267
  }
285
268
  }
269
+ this.prepared = false;
286
270
  return;
287
271
  }
288
272
  // Simple mode: single style for all content
@@ -314,6 +298,7 @@ export class TextHost extends BaseHost {
314
298
  const lineWidth = Math.min(displayWidth(lines[i]), this.rect.w);
315
299
  buffer.drawText(this.rect.x, this.rect.y + i, lines[i], styleId, lineWidth);
316
300
  }
301
+ this.prepared = false;
317
302
  return;
318
303
  }
319
304
  // Default: render explicit newlines, clip to width/height
@@ -326,6 +311,7 @@ export class TextHost extends BaseHost {
326
311
  const lineWidth = Math.min(displayWidth(rawLines[i]), this.rect.w);
327
312
  buffer.drawText(this.rect.x, this.rect.y + i, rawLines[i], styleId, lineWidth);
328
313
  }
314
+ this.prepared = false;
329
315
  }
330
316
  updateProps(props) {
331
317
  super.updateProps(props);
@@ -343,6 +329,7 @@ export class TextHost extends BaseHost {
343
329
  this.strikethrough = Boolean(props.strikethrough);
344
330
  this.inverse = Boolean(props.inverse);
345
331
  this.wrap = Boolean(props.wrap);
332
+ this.explicitSpans = "spans" in props ? (props.spans ?? []) : null;
346
333
  }
347
334
  }
348
335
  /** Special host for raw text nodes (React text children) */
@@ -421,137 +408,4 @@ export class SpanHost extends BaseHost {
421
408
  this.inverse = props.inverse !== undefined ? Boolean(props.inverse) : Boolean(textStyle?.inverse);
422
409
  }
423
410
  }
424
- /**
425
- * Host for rendering multiple styled spans that wrap as a unit.
426
- * Unlike using hstack with multiple text elements, this properly
427
- * wraps styled inline text across lines.
428
- */
429
- export class StyledTextHost extends BaseHost {
430
- spans = [];
431
- fg;
432
- bg;
433
- wrap = false;
434
- // Cache wrapped lines - each line is an array of spans
435
- cachedLines = null;
436
- cachedWidth = 0;
437
- constructor(props, ctx) {
438
- super("styledtext", props, ctx);
439
- this.updateProps(props);
440
- }
441
- measure(maxW, maxH) {
442
- if (this.wrap) {
443
- this.cachedLines = this.wrapSpans(this.spans, maxW);
444
- this.cachedWidth = maxW;
445
- const h = Math.min(this.cachedLines.length, maxH);
446
- const w = this.cachedLines.reduce((max, line) => Math.max(max, line.reduce((sum, span) => sum + displayWidth(span.text), 0)), 0);
447
- return { w, h };
448
- }
449
- // Non-wrap mode: single line, may truncate
450
- const totalWidth = this.spans.reduce((sum, span) => sum + displayWidth(span.text), 0);
451
- return { w: Math.min(totalWidth, maxW), h: 1 };
452
- }
453
- /** Wrap spans into lines, breaking at word boundaries */
454
- wrapSpans(spans, maxWidth) {
455
- const lines = [[]];
456
- let lineWidth = 0;
457
- for (const span of spans) {
458
- // Split span text into words (keeping whitespace as separate tokens)
459
- const tokens = span.text.split(/(\s+)/);
460
- for (const token of tokens) {
461
- if (!token)
462
- continue;
463
- const tokenWidth = displayWidth(token);
464
- const isWhitespace = /^\s+$/.test(token);
465
- if (lineWidth + tokenWidth <= maxWidth) {
466
- // Token fits on current line
467
- lines[lines.length - 1].push({ ...span, text: token });
468
- lineWidth += tokenWidth;
469
- }
470
- else if (isWhitespace) {
471
- // Skip whitespace at line break
472
- continue;
473
- }
474
- else if (tokenWidth <= maxWidth) {
475
- // Start new line with this token
476
- lines.push([{ ...span, text: token }]);
477
- lineWidth = tokenWidth;
478
- }
479
- else {
480
- // Token is longer than maxWidth - break by character
481
- let charLine = "";
482
- let charLineWidth = 0;
483
- for (const ch of token) {
484
- const chWidth = displayWidth(ch);
485
- if (lineWidth + charLineWidth + chWidth > maxWidth && (charLine || lineWidth > 0)) {
486
- if (charLine) {
487
- lines[lines.length - 1].push({ ...span, text: charLine });
488
- }
489
- lines.push([]);
490
- lineWidth = 0;
491
- charLine = ch;
492
- charLineWidth = chWidth;
493
- }
494
- else {
495
- charLine += ch;
496
- charLineWidth += chWidth;
497
- }
498
- }
499
- if (charLine) {
500
- lines[lines.length - 1].push({ ...span, text: charLine });
501
- lineWidth += charLineWidth;
502
- }
503
- }
504
- }
505
- }
506
- // Remove empty lines at the end
507
- while (lines.length > 0 && lines[lines.length - 1].length === 0) {
508
- lines.pop();
509
- }
510
- return lines.length > 0 ? lines : [[]];
511
- }
512
- layout(rect) {
513
- super.layout(rect);
514
- }
515
- render(buffer, palette) {
516
- if (!this.rect)
517
- return;
518
- const inheritedBg = this.bg ?? getInheritedBg(this.parent);
519
- // Get lines to render
520
- const lines = this.wrap && this.cachedLines && this.cachedWidth === this.rect.w
521
- ? this.cachedLines
522
- : this.wrap
523
- ? this.wrapSpans(this.spans, this.rect.w)
524
- : [this.spans];
525
- for (let y = 0; y < Math.min(lines.length, this.rect.h); y++) {
526
- let x = this.rect.x;
527
- for (const span of lines[y]) {
528
- const styleId = styleIdFromProps(palette, {
529
- fg: span.fg ?? this.fg,
530
- bg: span.bg ?? inheritedBg,
531
- bold: span.bold,
532
- dimmed: span.dimmed,
533
- italic: span.italic,
534
- underline: span.underline,
535
- strikethrough: span.strikethrough,
536
- inverse: span.inverse,
537
- });
538
- const availableWidth = this.rect.w - (x - this.rect.x);
539
- if (availableWidth <= 0)
540
- break;
541
- const textWidth = Math.min(displayWidth(span.text), availableWidth);
542
- buffer.drawText(x, this.rect.y + y, span.text, styleId, textWidth);
543
- x += displayWidth(span.text);
544
- }
545
- }
546
- }
547
- updateProps(props) {
548
- super.updateProps(props);
549
- this.spans = props.spans ?? [];
550
- this.fg = props.fg;
551
- this.bg = props.bg;
552
- this.wrap = Boolean(props.wrap);
553
- // Invalidate cache when props change
554
- this.cachedLines = null;
555
- }
556
- }
557
411
  //# 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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"}
@@ -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;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,SAAS,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;QAAC,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAA;CACtF;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;IAiBjC,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,EAAoB,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,SAAS,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;QAAC,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;KAAE,CAAA;CACtF;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;IAUjC,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,4 +1,4 @@
1
- import { alignInRect } from "../utils/index.js";
1
+ import { alignedChildRect } from "../utils/index.js";
2
2
  import { BaseHost } from "./base.js";
3
3
  // Overlay children in the same rect, honoring alignment for each child.
4
4
  export class ZStackHost extends BaseHost {
@@ -29,17 +29,11 @@ export class ZStackHost extends BaseHost {
29
29
  return this.constrainResult(naturalSize);
30
30
  }
31
31
  layout(rect) {
32
- super.layout(rect);
32
+ const layoutRect = this.layoutWithConstraints(rect);
33
33
  for (let i = 0; i < this.children.length; i++) {
34
34
  const child = this.children[i];
35
- const size = this.cachedSizes[i] ?? child.measure(rect.w, rect.h);
36
- const { x, y } = alignInRect(rect, size, this.alignmentH, this.alignmentV);
37
- child.layout({
38
- x,
39
- y,
40
- w: Math.min(rect.w, size.w),
41
- h: Math.min(rect.h, size.h),
42
- });
35
+ const size = this.cachedSizes[i] ?? child.measure(layoutRect.w, layoutRect.h);
36
+ child.layout(alignedChildRect(layoutRect, size, this.alignmentH, this.alignmentV));
43
37
  }
44
38
  }
45
39
  render(buffer, palette) {
@@ -1 +1 @@
1
- {"version":3,"file":"zstack.js","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zstack.js","sourceRoot":"","sources":["../../../src/hosts/zstack.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,12 @@ export type { CodeBlockProps } from "./codeblock.js";
3
3
  export { CodeBlock } from "./codeblock.js";
4
4
  export { type ColumnProps, ListView, type ListViewProps, Markdown, type MarkdownProps, type MarkdownTheme, MultilineTextInput, type MultilineTextInputProps, Overlay, type OverlayItemProps, type OverlayProps, Static, type StaticProps, Table, type TableAlign, type TableProps, TextInput, type TextInputProps, } from "./components/index.js";
5
5
  export { DiagnosticsPanel } from "./debug/DiagnosticsPanel.js";
6
- export { autoHmr, type DevRenderOptions, type DevRenderResult, devMain, devRender, DevWrapper, type DevWrapperProps, hmr, hmrState, } from "./dev.js";
6
+ export { autoHmr, type DevOptions, type DevRuntime, DevWrapper, type DevWrapperProps, hmr, hmrState, } from "./dev.js";
7
7
  export { type HighlightLine, type HighlightToken, type HighlightTokenStyle, highlightCode, toPlainLines, } from "./highlight.js";
8
- export type { ScrollState, TimerStatus, TimerType, UseKeyboardOptions, UseMouseOptions, UseScrollOptions, UseScrollReturn, UseTimerConfig, UseTimerReturn, } from "./hooks/index.js";
9
- export { useKeyboard, useMouse, usePaste, useQuit, useScroll, useTimer } from "./hooks/index.js";
8
+ export type { ScrollState, ShortcutHandler, ShortcutMap, TimerStatus, TimerType, UseKeyboardOptions, UseMouseOptions, UsePasteOptions, UseShortcutOptions, UseScrollOptions, UseScrollReturn, UseTimerConfig, UseTimerReturn, } from "./hooks/index.js";
9
+ export type { Shortcut, ShortcutMatchOptions, ShortcutSpec } from "./shortcuts.js";
10
+ export { useKeyboard, useMouse, usePaste, useQuit, useScroll, useShortcut, useTimer } from "./hooks/index.js";
11
+ export { isKey } from "./shortcuts.js";
10
12
  export { useFrameStats } from "./hooks/useFrameStats.js";
11
13
  export type { BorderKind, BoxProps } from "./hosts/box.js";
12
14
  export type { CanvasProps, DrawContext } from "./hosts/canvas.js";
@@ -19,6 +21,6 @@ export type { ZStackProps } from "./hosts/zstack.js";
19
21
  export type { ColorInput, MotionValue, RGBA, SpringOptions } from "./motion/index.js";
20
22
  export { ColorMotionValue, motionValue, useAnimationFrame, useColorMotionValue, useColorSpring, useMotionValue, useMotionValueEvent, useSpring, useSpringRenderer, useSprings, } from "./motion/index.js";
21
23
  export type { CommonProps, HostContext, HostInstance, Rect, Size } from "./reconciler/types.js";
22
- export type { FrameStats, RendererOptions, RenderInstance, Root, TuiRenderer } from "./renderer.js";
24
+ export type { FrameStats, ImportMetaLike, PasteMsg, RenderInstance, RenderOptions, RendererOptions, Root, TuiRenderer, } from "./renderer.js";
23
25
  export { createRenderer, createRoot, RendererContext, render, useRenderer, useTerminalSize, } from "./renderer.js";
24
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EACN,KAAK,WAAW,EAChB,QAAQ,EACR,KAAK,aAAa,EAClB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,OAAO,EACP,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,SAAS,EACT,KAAK,cAAc,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,OAAO,EACN,OAAO,EACP,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,OAAO,EACP,SAAS,EACT,UAAU,EACV,KAAK,eAAe,EACpB,GAAG,EACH,QAAQ,GACR,MAAM,UAAU,CAAA;AAEjB,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,aAAa,EACb,YAAY,GACZ,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,GACd,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACjE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAErF,OAAO,EAEN,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,UAAU,GACV,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC/F,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEnG,OAAO,EACN,cAAc,EACd,UAAU,EACV,eAAe,EACf,MAAM,EACN,WAAW,EACX,eAAe,GACf,MAAM,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAA;AAChC,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EACN,KAAK,WAAW,EAChB,QAAQ,EACR,KAAK,aAAa,EAClB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,OAAO,EACP,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,SAAS,EACT,KAAK,cAAc,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,OAAO,EACN,OAAO,EACP,KAAK,UAAU,EACf,KAAK,UAAU,EACf,UAAU,EACV,KAAK,eAAe,EACpB,GAAG,EACH,QAAQ,GACR,MAAM,UAAU,CAAA;AAEjB,OAAO,EACN,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,aAAa,EACb,YAAY,GACZ,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,GACd,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,QAAQ,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElF,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC7G,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC1D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACjE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAErF,OAAO,EAEN,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,UAAU,GACV,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC/F,YAAY,EACX,UAAU,EACV,cAAc,EACd,QAAQ,EACR,cAAc,EACd,aAAa,EACb,eAAe,EACf,IAAI,EACJ,WAAW,GACX,MAAM,eAAe,CAAA;AAEtB,OAAO,EACN,cAAc,EACd,UAAU,EACV,eAAe,EACf,MAAM,EACN,WAAW,EACX,eAAe,GACf,MAAM,eAAe,CAAA"}
package/dist/src/index.js CHANGED
@@ -7,11 +7,12 @@ export { ListView, Markdown, MultilineTextInput, Overlay, Static, Table, TextInp
7
7
  // Debug
8
8
  export { DiagnosticsPanel } from "./debug/DiagnosticsPanel.js";
9
9
  // Development utilities (HMR)
10
- export { autoHmr, devMain, devRender, DevWrapper, hmr, hmrState, } from "./dev.js";
10
+ export { autoHmr, DevWrapper, hmr, hmrState, } from "./dev.js";
11
11
  // Highlight utilities
12
12
  export { highlightCode, toPlainLines, } from "./highlight.js";
13
13
  // Hooks
14
- export { useKeyboard, useMouse, usePaste, useQuit, useScroll, useTimer } from "./hooks/index.js";
14
+ export { useKeyboard, useMouse, usePaste, useQuit, useScroll, useShortcut, useTimer } from "./hooks/index.js";
15
+ export { isKey } from "./shortcuts.js";
15
16
  export { useFrameStats } from "./hooks/useFrameStats.js";
16
17
  // Motion (spring animations)
17
18
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,kBAAkB,CAAA;AAEhC,kCAAkC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,mBAAmB;AACnB,OAAO,EAEN,QAAQ,EAER,QAAQ,EAGR,kBAAkB,EAElB,OAAO,EAGP,MAAM,EAEN,KAAK,EAGL,SAAS,GAET,MAAM,uBAAuB,CAAA;AAC9B,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,8BAA8B;AAC9B,OAAO,EACN,OAAO,EAGP,OAAO,EACP,SAAS,EACT,UAAU,EAEV,GAAG,EACH,QAAQ,GACR,MAAM,UAAU,CAAA;AACjB,sBAAsB;AACtB,OAAO,EAIN,aAAa,EACb,YAAY,GACZ,MAAM,gBAAgB,CAAA;AAYvB,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAUxD,6BAA6B;AAC7B,OAAO;AACN,gBAAgB;AAChB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,UAAU,GACV,MAAM,mBAAmB,CAAA;AAI1B,WAAW;AACX,OAAO,EACN,cAAc,EACd,UAAU,EACV,eAAe,EACf,MAAM,EACN,WAAW,EACX,eAAe,GACf,MAAM,eAAe,CAAA;AAEtB,kEAAkE;AAClE,2DAA2D"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,kBAAkB,CAAA;AAEhC,kCAAkC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,mBAAmB;AACnB,OAAO,EAEN,QAAQ,EAER,QAAQ,EAGR,kBAAkB,EAElB,OAAO,EAGP,MAAM,EAEN,KAAK,EAGL,SAAS,GAET,MAAM,uBAAuB,CAAA;AAC9B,QAAQ;AACR,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,8BAA8B;AAC9B,OAAO,EACN,OAAO,EAGP,UAAU,EAEV,GAAG,EACH,QAAQ,GACR,MAAM,UAAU,CAAA;AACjB,sBAAsB;AACtB,OAAO,EAIN,aAAa,EACb,YAAY,GACZ,MAAM,gBAAgB,CAAA;AAiBvB,QAAQ;AACR,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC7G,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAUxD,6BAA6B;AAC7B,OAAO;AACN,gBAAgB;AAChB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,UAAU,GACV,MAAM,mBAAmB,CAAA;AAa1B,WAAW;AACX,OAAO,EACN,cAAc,EACd,UAAU,EACV,eAAe,EACf,MAAM,EACN,WAAW,EACX,eAAe,GACf,MAAM,eAAe,CAAA;AAEtB,kEAAkE;AAClE,2DAA2D"}
@@ -19,6 +19,8 @@ export interface HostInstance {
19
19
  layout(rect: Rect): void;
20
20
  /** Render to buffer */
21
21
  render(buffer: CellBuffer, palette: Palette): void;
22
+ /** Optional pre-frame hook for cache prep (called before measure/layout/render). */
23
+ prepareFrame?(): void;
22
24
  /** Update props from React */
23
25
  updateProps(props: Record<string, unknown>): void;
24
26
  /** Cleanup on unmount */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/reconciler/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGvE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAE1B,MAAM,WAAW,YAAY;IAC5B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IAEZ,qBAAqB;IACrB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,uBAAuB;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAA;IAExB,qDAAqD;IACrD,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAEjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,6CAA6C;IAC7C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAEzC,4CAA4C;IAC5C,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAExB,uBAAuB;IACvB,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAElD,8BAA8B;IAC9B,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAEjD,yBAAyB;IACzB,OAAO,IAAI,IAAI,CAAA;IAEf,gBAAgB;IAChB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAEtC,mBAAmB;IACnB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAEtC,kCAAkC;IAClC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,WAAW;IAC3B,aAAa,IAAI,IAAI,CAAA;IACrB,kFAAkF;IAClF,sBAAsB,CAAC,IAAI,IAAI,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAMzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAElF,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/reconciler/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGvE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAE1B,MAAM,WAAW,YAAY;IAC5B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IAEZ,qBAAqB;IACrB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,uBAAuB;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAA;IAExB,qDAAqD;IACrD,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAEjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB,6CAA6C;IAC7C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAEzC,4CAA4C;IAC5C,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAExB,uBAAuB;IACvB,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IAElD,oFAAoF;IACpF,YAAY,CAAC,IAAI,IAAI,CAAA;IAErB,8BAA8B;IAC9B,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAEjD,yBAAyB;IACzB,OAAO,IAAI,IAAI,CAAA;IAEf,gBAAgB;IAChB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAEtC,mBAAmB;IACnB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;IAEtC,kCAAkC;IAClC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;CAC7D;AAED,MAAM,WAAW,WAAW;IAC3B,aAAa,IAAI,IAAI,CAAA;IACrB,kFAAkF;IAClF,sBAAsB,CAAC,IAAI,IAAI,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,WAAW,WAAW;IAC3B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAMzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IAElF,6CAA6C;IAC7C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"FrameBuilder.d.ts","sourceRoot":"","sources":["../../../../src/renderer/core/FrameBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,qBAAa,YAAY;IACxB;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY;CA6B5G"}
1
+ {"version":3,"file":"FrameBuilder.d.ts","sourceRoot":"","sources":["../../../../src/renderer/core/FrameBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,qBAAa,YAAY;IACxB;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY;CAgC5G"}
@@ -9,6 +9,8 @@ export class FrameBuilder {
9
9
  * Returns timing information for each phase.
10
10
  */
11
11
  build(root, buffer, palette, width, height) {
12
+ // Pre-frame cache prep (optional)
13
+ root.prepareFrame?.();
12
14
  // Clear buffer
13
15
  let t = Prof.startPhase();
14
16
  const clearStart = performance.now();
@@ -1 +1 @@
1
- {"version":3,"file":"FrameBuilder.js","sourceRoot":"","sources":["../../../../src/renderer/core/FrameBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAA;AASzC;;GAEG;AACH,MAAM,OAAO,YAAY;IACxB;;;OAGG;IACH,KAAK,CAAC,IAAkB,EAAE,MAAkB,EAAE,OAAgB,EAAE,KAAa,EAAE,MAAc;QAC5F,eAAe;QACf,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACzB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACpC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACf,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAA;QAC9C,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAEzB,8BAA8B;QAC9B,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACrB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAA;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAE1B,SAAS;QACT,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACrB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAA;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAE1B,OAAO;YACN,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;SAChB,CAAA;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"FrameBuilder.js","sourceRoot":"","sources":["../../../../src/renderer/core/FrameBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,OAAO,KAAK,IAAI,MAAM,mBAAmB,CAAA;AASzC;;GAEG;AACH,MAAM,OAAO,YAAY;IACxB;;;OAGG;IACH,KAAK,CAAC,IAAkB,EAAE,MAAkB,EAAE,OAAgB,EAAE,KAAa,EAAE,MAAc;QAC5F,kCAAkC;QAClC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAA;QAErB,eAAe;QACf,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACzB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACpC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACf,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAA;QAC9C,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAEzB,8BAA8B;QAC9B,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACrB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAA;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAE1B,SAAS;QACT,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACrB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAA;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAE1B,OAAO;YACN,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;SAChB,CAAA;IACF,CAAC;CACD"}