@effect-tui/react 0.16.0 → 2.0.1

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
@@ -52,6 +52,12 @@ export class BaseHost {
52
52
  parent = null;
53
53
  children = [];
54
54
  rect = null;
55
+ _layoutDirty = true;
56
+ _renderDirty = true;
57
+ _lastMeasureW = -1;
58
+ _lastMeasureH = -1;
59
+ _lastMeasuredSize = null;
60
+ _lastLayoutRect = null;
55
61
  // Greedy layout - expands to fill remaining space
56
62
  // undefined = not greedy (hug content)
57
63
  // true or 1 = 1 share
@@ -94,15 +100,34 @@ export class BaseHost {
94
100
  * Optional pre-frame hook. BaseHost will call prepareSelf() and then recurse into children.
95
101
  */
96
102
  prepareFrame() {
97
- this.prepareSelf();
103
+ this.ensurePrepared();
98
104
  for (const child of this.children) {
99
105
  child.prepareFrame?.();
100
106
  }
101
107
  }
102
108
  /** Override in subclasses to precompute caches once per frame. */
103
- prepareSelf() {
109
+ prepareSelf(_layoutDirty, _renderDirty) {
104
110
  // Default no-op
105
111
  }
112
+ ensurePrepared() {
113
+ if (!this._layoutDirty && !this._renderDirty)
114
+ return;
115
+ const layoutDirty = this._layoutDirty;
116
+ const renderDirty = this._renderDirty;
117
+ this._renderDirty = false;
118
+ this.prepareSelf(layoutDirty, renderDirty);
119
+ }
120
+ invalidateLayout() {
121
+ this._layoutDirty = true;
122
+ this._renderDirty = true;
123
+ this._lastMeasuredSize = null;
124
+ this.ctx.requestRender();
125
+ this.parent?.invalidateLayout?.();
126
+ }
127
+ invalidateRender() {
128
+ this._renderDirty = true;
129
+ this.ctx.requestRender();
130
+ }
106
131
  /**
107
132
  * Resolve a prop that may be a MotionValue/ColorMotionValue.
108
133
  * If it's a spring, subscribes to changes and returns current value.
@@ -168,7 +193,30 @@ export class BaseHost {
168
193
  }
169
194
  this._springSubscriptions.clear();
170
195
  }
196
+ measure(maxW, maxH) {
197
+ const constraintsUnchanged = this._lastMeasureW === maxW && this._lastMeasureH === maxH;
198
+ if (!this._layoutDirty && constraintsUnchanged && this._lastMeasuredSize) {
199
+ return this._lastMeasuredSize;
200
+ }
201
+ if (!constraintsUnchanged) {
202
+ this._layoutDirty = true;
203
+ }
204
+ const size = this.measureSelf(maxW, maxH);
205
+ this._lastMeasureW = maxW;
206
+ this._lastMeasureH = maxH;
207
+ this._lastMeasuredSize = size;
208
+ return size;
209
+ }
171
210
  layout(rect) {
211
+ const prev = this._lastLayoutRect;
212
+ const rectUnchanged = prev?.x === rect.x && prev?.y === rect.y && prev?.w === rect.w && prev?.h === rect.h;
213
+ if (!this._layoutDirty && rectUnchanged)
214
+ return;
215
+ this.layoutSelf(rect);
216
+ this._layoutDirty = false;
217
+ this._lastLayoutRect = this.rect ?? rect;
218
+ }
219
+ layoutSelf(rect) {
172
220
  this.layoutWithConstraints(rect);
173
221
  }
174
222
  /**
@@ -283,6 +331,7 @@ export class BaseHost {
283
331
  updateProps(props) {
284
332
  // Greedy layout - reset to undefined unless explicitly set
285
333
  // Subclasses like Spacer/Scroll set their own default before calling super
334
+ const prevGreedy = this.greedy;
286
335
  if ("greedy" in props) {
287
336
  const greedy = props.greedy;
288
337
  if (greedy === true) {
@@ -302,6 +351,12 @@ export class BaseHost {
302
351
  this.greedy = undefined;
303
352
  }
304
353
  // Frame constraints - only accept valid numbers (ignore strings like "100%")
354
+ const prevFrameWidth = this.frameWidth;
355
+ const prevFrameHeight = this.frameHeight;
356
+ const prevFrameMinWidth = this.frameMinWidth;
357
+ const prevFrameMaxWidth = this.frameMaxWidth;
358
+ const prevFrameMinHeight = this.frameMinHeight;
359
+ const prevFrameMaxHeight = this.frameMaxHeight;
305
360
  this.frameWidth = typeof props.width === "number" ? props.width : undefined;
306
361
  this.frameHeight = typeof props.height === "number" ? props.height : undefined;
307
362
  this.frameMinWidth = typeof props.minWidth === "number" ? props.minWidth : undefined;
@@ -310,6 +365,16 @@ export class BaseHost {
310
365
  this.frameMaxHeight = typeof props.maxHeight === "number" ? props.maxHeight : undefined;
311
366
  // onLayout callback
312
367
  this.onLayout = typeof props.onLayout === "function" ? props.onLayout : undefined;
368
+ const layoutChanged = prevGreedy !== this.greedy ||
369
+ prevFrameWidth !== this.frameWidth ||
370
+ prevFrameHeight !== this.frameHeight ||
371
+ prevFrameMinWidth !== this.frameMinWidth ||
372
+ prevFrameMaxWidth !== this.frameMaxWidth ||
373
+ prevFrameMinHeight !== this.frameMinHeight ||
374
+ prevFrameMaxHeight !== this.frameMaxHeight;
375
+ if (layoutChanged) {
376
+ this.invalidateLayout();
377
+ }
313
378
  }
314
379
  /**
315
380
  * Apply a default greedy value when the prop is omitted.
@@ -317,7 +382,11 @@ export class BaseHost {
317
382
  */
318
383
  applyGreedyDefault(props, fallback) {
319
384
  if (!("greedy" in props)) {
385
+ const prevGreedy = this.greedy;
320
386
  this.greedy = fallback;
387
+ if (prevGreedy !== this.greedy) {
388
+ this.invalidateLayout();
389
+ }
321
390
  }
322
391
  }
323
392
  destroy() {
@@ -328,6 +397,7 @@ export class BaseHost {
328
397
  appendChild(child) {
329
398
  this.children.push(child);
330
399
  child.parent = this;
400
+ this.invalidateLayout();
331
401
  }
332
402
  removeChild(child) {
333
403
  const idx = this.children.indexOf(child);
@@ -335,6 +405,7 @@ export class BaseHost {
335
405
  this.children.splice(idx, 1);
336
406
  child.parent = null;
337
407
  }
408
+ this.invalidateLayout();
338
409
  }
339
410
  insertBefore(child, before) {
340
411
  const existingIdx = this.children.indexOf(child);
@@ -349,6 +420,7 @@ export class BaseHost {
349
420
  this.children.push(child);
350
421
  }
351
422
  child.parent = this;
423
+ this.invalidateLayout();
352
424
  }
353
425
  /**
354
426
  * Render a child with optional clipping to its rect.
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/hosts/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/hosts/base.ts"],"names":[],"mappings":"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"}
@@ -33,8 +33,8 @@ export declare class BoxHost extends SingleChildHost {
33
33
  private get borderThickness();
34
34
  private get insetX();
35
35
  private get insetY();
36
- measure(maxW: number, maxH: number): Size;
37
- layout(rect: Rect): void;
36
+ protected measureSelf(maxW: number, maxH: number): Size;
37
+ protected layoutSelf(rect: Rect): void;
38
38
  render(buffer: CellBuffer, palette: Palette): void;
39
39
  updateProps(props: Record<string, unknown>): void;
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../../src/hosts/box.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EACN,KAAK,UAAU,EAIf,KAAK,OAAO,EACZ,KAAK,YAAY,EAIjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B,kFAAkF;AAClF,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,gBAAgB,CAAA;AAEhD,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC5C,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,EAAE,CAAC,EAAE,SAAS,CAAA;IACd,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,qBAAa,OAAQ,SAAQ,eAAe;IAC3C,OAAO,EAAE,OAAO,CAA2C;IAC3D,MAAM,EAAE,UAAU,CAAS;IAC3B,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,SAAS,UAAQ;IACjB,YAAY,UAAQ;gBAER,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW;IAK7C,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,MAAM,GAKjB;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IA0BhC,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAoBjC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IA4DzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAkB1D"}
1
+ {"version":3,"file":"box.d.ts","sourceRoot":"","sources":["../../../src/hosts/box.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAElE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EACN,KAAK,UAAU,EAIf,KAAK,OAAO,EACZ,KAAK,YAAY,EAIjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B,kFAAkF;AAClF,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,gBAAgB,CAAA;AAEhD,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC5C,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,EAAE,CAAC,EAAE,SAAS,CAAA;IACd,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,qBAAa,OAAQ,SAAQ,eAAe;IAC3C,OAAO,EAAE,OAAO,CAA2C;IAC3D,MAAM,EAAE,UAAU,CAAS;IAC3B,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,SAAS,UAAQ;IACjB,YAAY,UAAQ;gBAER,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW;IAK7C,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,MAAM,GAKjB;IAED,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;cA0BpC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAoB/C,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IA4DzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAqD1D"}
@@ -26,7 +26,7 @@ export class BoxHost extends SingleChildHost {
26
26
  const titleHeight = this.titleDivider && this.title && this.border !== "none" ? 2 : 0; // title row + divider
27
27
  return this.borderThickness + titleHeight + this.padding.top + this.padding.bottom + this.borderThickness;
28
28
  }
29
- measure(maxW, maxH) {
29
+ measureSelf(maxW, maxH) {
30
30
  // Apply frame constraints first
31
31
  const constrained = this.constrainProposal(maxW, maxH);
32
32
  const innerMaxW = Math.max(0, constrained.w - this.insetX);
@@ -47,7 +47,7 @@ export class BoxHost extends SingleChildHost {
47
47
  // Apply frame constraints to result
48
48
  return this.constrainResult(naturalSize);
49
49
  }
50
- layout(rect) {
50
+ layoutSelf(rect) {
51
51
  const layoutRect = this.layoutWithConstraints(rect);
52
52
  const t = this.borderThickness;
53
53
  // When titleDivider: title row (1) + divider line (1) = 2
@@ -120,6 +120,14 @@ export class BoxHost extends SingleChildHost {
120
120
  }
121
121
  updateProps(props) {
122
122
  super.updateProps(props);
123
+ const prevPadding = this.padding;
124
+ const prevBorder = this.border;
125
+ const prevBorderColor = this.borderColor;
126
+ const prevBg = this.bg;
127
+ const prevTitle = this.title;
128
+ const prevTitleColor = this.titleColor;
129
+ const prevTitleBold = this.titleBold;
130
+ const prevTitleDivider = this.titleDivider;
123
131
  this.padding = resolvePadding(props.padding);
124
132
  this.border = props.border ?? "none";
125
133
  // Color props support MotionValue/ColorMotionValue - auto-subscribe and animate
@@ -135,6 +143,25 @@ export class BoxHost extends SingleChildHost {
135
143
  });
136
144
  this.titleBold = Boolean(props.titleBold);
137
145
  this.titleDivider = Boolean(props.titleDivider);
146
+ const paddingChanged = prevPadding.top !== this.padding.top ||
147
+ prevPadding.right !== this.padding.right ||
148
+ prevPadding.bottom !== this.padding.bottom ||
149
+ prevPadding.left !== this.padding.left;
150
+ const layoutChanged = paddingChanged ||
151
+ prevBorder !== this.border ||
152
+ prevTitle !== this.title ||
153
+ prevTitleDivider !== this.titleDivider;
154
+ if (layoutChanged) {
155
+ this.invalidateLayout();
156
+ return;
157
+ }
158
+ const renderChanged = prevBorderColor !== this.borderColor ||
159
+ prevBg !== this.bg ||
160
+ prevTitleColor !== this.titleColor ||
161
+ prevTitleBold !== this.titleBold;
162
+ if (renderChanged) {
163
+ this.invalidateRender();
164
+ }
138
165
  }
139
166
  }
140
167
  //# sourceMappingURL=box.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"box.js","sourceRoot":"","sources":["../../../src/hosts/box.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"box.js","sourceRoot":"","sources":["../../../src/hosts/box.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,15 @@ export interface DrawContext {
8
8
  width: number;
9
9
  /** Canvas height in cells */
10
10
  height: number;
11
+ /** Resolve a style id for reuse across many draw calls */
12
+ style(opts?: {
13
+ fg?: Color;
14
+ bg?: Color;
15
+ bold?: boolean;
16
+ italic?: boolean;
17
+ underline?: boolean;
18
+ inverse?: boolean;
19
+ }): number;
11
20
  /** Draw text at position */
12
21
  text(x: number, y: number, str: string, opts?: {
13
22
  fg?: Color;
@@ -18,7 +27,7 @@ export interface DrawContext {
18
27
  inverse?: boolean;
19
28
  }): void;
20
29
  /** Fill rectangle with character */
21
- fill(x: number, y: number, w: number, h: number, char?: string, opts?: {
30
+ fillRect(x: number, y: number, w: number, h: number, char?: string, opts?: {
22
31
  fg?: Color;
23
32
  bg?: Color;
24
33
  bold?: boolean;
@@ -35,6 +44,17 @@ export interface DrawContext {
35
44
  }): void;
36
45
  /** Clear entire canvas */
37
46
  clear(): void;
47
+ /** Draw a single cell with a codepoint */
48
+ cell(x: number, y: number, cp: number, style?: number, width?: number): void;
49
+ /** Draw many single-cell codepoints efficiently */
50
+ cells(cells: Array<CanvasCell>): void;
51
+ }
52
+ export interface CanvasCell {
53
+ x: number;
54
+ y: number;
55
+ cp: number;
56
+ style?: number;
57
+ width?: number;
38
58
  }
39
59
  export interface CanvasProps extends CommonProps {
40
60
  /** Draw function called each render */
@@ -52,7 +72,7 @@ export declare class CanvasHost extends LeafHost {
52
72
  fixedHeight?: number;
53
73
  inheritBg: boolean;
54
74
  constructor(props: CanvasProps, ctx: HostContext);
55
- measure(maxW: number, maxH: number): Size;
75
+ protected measureSelf(maxW: number, maxH: number): Size;
56
76
  render(buffer: CellBuffer, palette: Palette): void;
57
77
  updateProps(props: Record<string, unknown>): void;
58
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../src/hosts/canvas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,EACN,KAAK,UAAU,EAOf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpC,YAAY,EAAE,UAAU,EAAE,CAAA;AAE1B,MAAM,WAAW,WAAW;IAC3B,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAA;IAEd,4BAA4B;IAC5B,IAAI,CACH,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,KAAK,CAAC;QAAC,EAAE,CAAC,EAAE,KAAK,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GACzG,IAAI,CAAA;IAEP,oCAAoC;IACpC,IAAI,CACH,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,KAAK,CAAC;QAAC,EAAE,CAAC,EAAE,KAAK,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GACzG,IAAI,CAAA;IAEP,oCAAoC;IACpC,GAAG,CACF,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,UAAU,CAAA;QACnB,WAAW,CAAC,EAAE,KAAK,CAAA;QACnB,EAAE,CAAC,EAAE,KAAK,CAAA;QACV,EAAE,CAAC,EAAE,KAAK,CAAA;KACV,GACC,IAAI,CAAA;IAEP,0BAA0B;IAC1B,KAAK,IAAI,IAAI,CAAA;CACb;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC/C,uCAAuC;IACvC,IAAI,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAA;IAChC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,SAAS,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,qBAAa,UAAW,SAAQ,QAAQ;IACvC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAW;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,UAAQ;gBAEL,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW;IAKhD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IASzC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAsGzC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAU1D"}
1
+ {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../../src/hosts/canvas.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { Colors } from "@effect-tui/core";
1
+ import { Colors, displayWidth } from "@effect-tui/core";
2
+ import * as Prof from "../profiler.js";
2
3
  import { borderChars, drawBorder, fillRectWithInheritedBg, resolveBgStyle, styleIdFromProps, toColorValue, } from "../utils/index.js";
3
4
  import { LeafHost } from "./leaf.js";
4
5
  export class CanvasHost extends LeafHost {
@@ -10,7 +11,7 @@ export class CanvasHost extends LeafHost {
10
11
  super("canvas", props, ctx);
11
12
  this.updateProps(props);
12
13
  }
13
- measure(maxW, maxH) {
14
+ measureSelf(maxW, maxH) {
14
15
  const constrained = this.constrainProposal(maxW, maxH);
15
16
  const size = {
16
17
  w: this.fixedWidth ?? constrained.w,
@@ -32,11 +33,23 @@ export class CanvasHost extends LeafHost {
32
33
  const ctx = {
33
34
  width: w,
34
35
  height: h,
36
+ style: (opts) => {
37
+ const effectiveBg = opts?.bg ?? (this.inheritBg ? inheritedBgValue : undefined);
38
+ return styleIdFromProps(palette, {
39
+ fg: opts?.fg,
40
+ bg: effectiveBg,
41
+ bold: opts?.bold,
42
+ italic: opts?.italic,
43
+ underline: opts?.underline,
44
+ inverse: opts?.inverse,
45
+ });
46
+ },
35
47
  text: (x, y, str, opts) => {
36
48
  const px = Math.round(ox + x);
37
49
  const py = Math.round(oy + y);
38
50
  // Use inherited bg when inheritBg is enabled and no explicit bg provided
39
51
  const effectiveBg = opts?.bg ?? (this.inheritBg ? inheritedBgValue : undefined);
52
+ const styleT = Prof.startPhase();
40
53
  const style = styleIdFromProps(palette, {
41
54
  fg: opts?.fg,
42
55
  bg: effectiveBg,
@@ -45,20 +58,42 @@ export class CanvasHost extends LeafHost {
45
58
  underline: opts?.underline,
46
59
  inverse: opts?.inverse,
47
60
  });
48
- let col = px;
49
- for (const char of str) {
50
- if (col >= ox + w)
51
- break;
52
- buffer.drawCP(col, py, char.codePointAt(0), style);
53
- col++;
61
+ Prof.endPhase("canvas.text.style", styleT);
62
+ const widthT = Prof.startPhase();
63
+ let textWidth = 0;
64
+ let asciiCp = null;
65
+ if (str.length === 1) {
66
+ const code = str.charCodeAt(0);
67
+ if (code >= 0x20 && code <= 0x7e) {
68
+ textWidth = 1;
69
+ asciiCp = code;
70
+ }
71
+ else {
72
+ textWidth = displayWidth(str);
73
+ }
74
+ }
75
+ else {
76
+ textWidth = displayWidth(str);
77
+ }
78
+ Prof.endPhase("canvas.text.width", widthT);
79
+ if (textWidth > 0) {
80
+ const drawT = Prof.startPhase();
81
+ if (asciiCp !== null) {
82
+ buffer.drawCP(px, py, asciiCp, style, 1);
83
+ }
84
+ else {
85
+ buffer.drawText(px, py, str, style, textWidth);
86
+ }
87
+ Prof.endPhase("canvas.text.draw", drawT);
54
88
  }
55
89
  },
56
- fill: (x, y, fw, fh, char = " ", opts) => {
90
+ fillRect: (x, y, fw, fh, char = " ", opts) => {
57
91
  const px = Math.round(ox + x);
58
92
  const py = Math.round(oy + y);
59
- const cp = char.codePointAt(0);
93
+ const cp = char.length > 0 ? char.codePointAt(0) : " ".codePointAt(0);
60
94
  // Use inherited bg when inheritBg is enabled and no explicit bg provided
61
95
  const effectiveBg = opts?.bg ?? (this.inheritBg ? inheritedBgValue : undefined);
96
+ const styleT = Prof.startPhase();
62
97
  const style = styleIdFromProps(palette, {
63
98
  fg: opts?.fg,
64
99
  bg: effectiveBg,
@@ -67,56 +102,80 @@ export class CanvasHost extends LeafHost {
67
102
  underline: opts?.underline,
68
103
  inverse: opts?.inverse,
69
104
  });
70
- for (let row = 0; row < fh; row++) {
71
- const yy = py + row;
72
- for (let col = 0; col < fw; col++) {
73
- const xx = px + col;
74
- buffer.drawCP(xx, yy, cp, style);
75
- }
76
- }
105
+ Prof.endPhase("canvas.fillRect.style", styleT);
106
+ const fillW = Math.ceil(fw);
107
+ const fillH = Math.ceil(fh);
108
+ const drawT = Prof.startPhase();
109
+ buffer.fillRect(px, py, fillW, fillH, cp, style);
110
+ Prof.endPhase("canvas.fillRect.draw", drawT);
77
111
  },
78
112
  box: (x, y, bw, bh, opts) => {
79
113
  const px = Math.round(ox + x);
80
114
  const py = Math.round(oy + y);
115
+ const boxW = Math.ceil(bw);
116
+ const boxH = Math.ceil(bh);
81
117
  const border = opts?.border ?? "none";
118
+ const bgStyleT = Prof.startPhase();
82
119
  const { value: bgValue, styleId: bgStyleId } = resolveBgStyle(palette, opts?.bg);
120
+ Prof.endPhase("canvas.box.bg.style", bgStyleT);
83
121
  // Fill background (with clipping)
84
122
  if (bgValue !== undefined) {
85
- for (let row = 0; row < bh; row++) {
86
- const yy = py + row;
87
- for (let col = 0; col < bw; col++) {
88
- const xx = px + col;
89
- buffer.drawCP(xx, yy, " ".codePointAt(0), bgStyleId);
90
- }
91
- }
123
+ const bgDrawT = Prof.startPhase();
124
+ buffer.fillRect(px, py, boxW, boxH, " ".codePointAt(0), bgStyleId);
125
+ Prof.endPhase("canvas.box.bg.draw", bgDrawT);
92
126
  }
93
127
  // Draw border (with clipping)
94
- if (border !== "none" && bw >= 2 && bh >= 2) {
128
+ if (border !== "none" && boxW >= 2 && boxH >= 2) {
129
+ const borderStyleT = Prof.startPhase();
95
130
  const chars = borderChars(border);
96
131
  const borderFg = toColorValue(opts?.borderColor) ?? toColorValue(opts?.fg) ?? Colors.ansi.gray(8);
97
132
  const borderStyle = palette.id({ fg: borderFg });
98
- drawBorder(buffer, px, py, bw, bh, chars, borderStyle, { ox, oy, w, h });
133
+ Prof.endPhase("canvas.box.border.style", borderStyleT);
134
+ const borderDrawT = Prof.startPhase();
135
+ drawBorder(buffer, px, py, boxW, boxH, chars, borderStyle, { ox, oy, w, h });
136
+ Prof.endPhase("canvas.box.border.draw", borderDrawT);
99
137
  }
100
138
  },
101
139
  clear: () => {
140
+ const clearT = Prof.startPhase();
102
141
  const style = palette.id({});
103
- for (let row = 0; row < h; row++) {
104
- for (let col = 0; col < w; col++) {
105
- buffer.drawCP(ox + col, oy + row, " ".codePointAt(0), style);
106
- }
142
+ buffer.fillRect(ox, oy, w, h, " ".codePointAt(0), style);
143
+ Prof.endPhase("canvas.clear", clearT);
144
+ },
145
+ cell: (x, y, cp, style = 0, width) => {
146
+ const px = Math.round(ox + x);
147
+ const py = Math.round(oy + y);
148
+ const drawT = Prof.startPhase();
149
+ buffer.drawCP(px, py, cp, style, width);
150
+ Prof.endPhase("canvas.cell.draw", drawT);
151
+ },
152
+ cells: (cells) => {
153
+ const drawT = Prof.startPhase();
154
+ const baseX = ox;
155
+ const baseY = oy;
156
+ for (const cell of cells) {
157
+ const px = Math.round(baseX + cell.x);
158
+ const py = Math.round(baseY + cell.y);
159
+ buffer.drawCP(px, py, cell.cp, cell.style ?? 0, cell.width);
107
160
  }
161
+ Prof.endPhase("canvas.cells.draw", drawT);
108
162
  },
109
163
  };
110
164
  buffer.withClip(ox, oy, w, h, () => {
111
165
  // Call user's draw function within the canvas clip region
166
+ const drawT = Prof.startPhase();
112
167
  this.draw(ctx);
168
+ Prof.endPhase("canvas.draw", drawT);
113
169
  });
114
170
  }
115
171
  updateProps(props) {
116
172
  super.updateProps(props);
173
+ const prevDraw = this.draw;
174
+ const prevWidth = this.fixedWidth;
175
+ const prevHeight = this.fixedHeight;
176
+ const prevInheritBg = this.inheritBg;
117
177
  if (props.draw !== undefined) {
118
178
  this.draw = props.draw;
119
- this.ctx.requestRender(); // trigger repaint when draw function changes
120
179
  }
121
180
  if (props.width !== undefined)
122
181
  this.fixedWidth = props.width;
@@ -124,6 +183,15 @@ export class CanvasHost extends LeafHost {
124
183
  this.fixedHeight = props.height;
125
184
  if (props.inheritBg !== undefined)
126
185
  this.inheritBg = props.inheritBg;
186
+ const layoutChanged = prevWidth !== this.fixedWidth || prevHeight !== this.fixedHeight;
187
+ if (layoutChanged) {
188
+ this.invalidateLayout();
189
+ return;
190
+ }
191
+ const renderChanged = prevDraw !== this.draw || prevInheritBg !== this.inheritBg;
192
+ if (renderChanged) {
193
+ this.invalidateRender();
194
+ }
127
195
  }
128
196
  }
129
197
  //# sourceMappingURL=canvas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../../src/hosts/canvas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../../src/hosts/canvas.ts"],"names":[],"mappings":"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"}