@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
@@ -102,12 +102,9 @@ export function encodeKey(key) {
102
102
  case "tab":
103
103
  return Buffer.from([0x09]);
104
104
  case "enter":
105
- case "return":
106
105
  return Buffer.from([0x0d]);
107
106
  case "backspace":
108
107
  return Buffer.from([0x7f]);
109
- case "space":
110
- return Buffer.from([0x20]);
111
108
  }
112
109
  // Regular character
113
110
  if (text) {
@@ -1 +1 @@
1
- {"version":3,"file":"mock-streams.js","sourceRoot":"","sources":["../../../src/test/mock-streams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-streams.js","sourceRoot":"","sources":["../../../src/test/mock-streams.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"render-tui.d.ts","sourceRoot":"","sources":["../../../src/test/render-tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAc,EAAE,KAAK,YAAY,EAAY,MAAM,OAAO,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAmB,SAAS,EAAE,UAAU,EAAa,MAAM,mBAAmB,CAAA;AAErF,MAAM,WAAW,gBAAgB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC/B,kEAAkE;IAClE,YAAY,IAAI,MAAM,CAAA;IACtB,uDAAuD;IACvD,SAAS,IAAI,MAAM,CAAA;IACnB,6CAA6C;IAC7C,KAAK,IAAI,MAAM,EAAE,CAAA;IACjB,uBAAuB;IACvB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,uDAAuD;IACvD,KAAK,IAAI,IAAI,CAAA;IACb,kDAAkD;IAClD,OAAO,IAAI,IAAI,CAAA;IACf,iDAAiD;IACjD,MAAM,EAAE,UAAU,CAAA;IAClB,sDAAsD;IACtD,KAAK,EAAE,SAAS,CAAA;IAChB,8CAA8C;IAC9C,QAAQ,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;IAC3C,0BAA0B;IAC1B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAqF5F"}
1
+ {"version":3,"file":"render-tui.d.ts","sourceRoot":"","sources":["../../../src/test/render-tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAc,EAAE,KAAK,YAAY,EAAY,MAAM,OAAO,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAc,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAmB,SAAS,EAAE,UAAU,EAAa,MAAM,mBAAmB,CAAA;AAErF,MAAM,WAAW,gBAAgB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC/B,kEAAkE;IAClE,YAAY,IAAI,MAAM,CAAA;IACtB,uDAAuD;IACvD,SAAS,IAAI,MAAM,CAAA;IACnB,6CAA6C;IAC7C,KAAK,IAAI,MAAM,EAAE,CAAA;IACjB,uBAAuB;IACvB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,uDAAuD;IACvD,KAAK,IAAI,IAAI,CAAA;IACb,kDAAkD;IAClD,OAAO,IAAI,IAAI,CAAA;IACf,iDAAiD;IACjD,MAAM,EAAE,UAAU,CAAA;IAClB,sDAAsD;IACtD,KAAK,EAAE,SAAS,CAAA;IAChB,8CAA8C;IAC9C,QAAQ,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;IAC3C,0BAA0B;IAC1B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,eAAe,CAsF5F"}
@@ -30,6 +30,7 @@ export function renderTUI(element, options) {
30
30
  stdin: stdin,
31
31
  manualMode: true,
32
32
  skipTerminalSetup: true,
33
+ handleSignals: false,
33
34
  mode: options?.mode,
34
35
  diff: options?.diff,
35
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"render-tui.js","sourceRoot":"","sources":["../../../src/test/render-tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-tui.js","sourceRoot":"","sources":["../../../src/test/render-tui.ts"],"names":[],"mappings":"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"}
@@ -12,4 +12,8 @@ export declare function alignInRect(rect: Rect, size: Size, hAlign?: HAlign, vAl
12
12
  x: number;
13
13
  y: number;
14
14
  };
15
+ /**
16
+ * Calculate a child rect aligned within a container rect, clamped to container size.
17
+ */
18
+ export declare function alignedChildRect(rect: Rect, size: Size, hAlign?: HAlign, vAlign?: VAlign): Rect;
15
19
  //# sourceMappingURL=alignment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"alignment.d.ts","sourceRoot":"","sources":["../../../src/utils/alignment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAA;AACzE,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEhD;;;GAGG;AACH,wBAAgB,WAAW,CAC1B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,MAAM,GAAE,MAAiB,EACzB,MAAM,GAAE,MAAiB,GACvB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CA+B1B"}
1
+ {"version":3,"file":"alignment.d.ts","sourceRoot":"","sources":["../../../src/utils/alignment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAA;AACzE,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEhD;;;GAGG;AACH,wBAAgB,WAAW,CAC1B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,MAAM,GAAE,MAAiB,EACzB,MAAM,GAAE,MAAiB,GACvB;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CA+B1B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,MAAM,GAAE,MAAiB,EACzB,MAAM,GAAE,MAAiB,GACvB,IAAI,CAQN"}
@@ -34,4 +34,16 @@ export function alignInRect(rect, size, hAlign = "center", vAlign = "center") {
34
34
  }
35
35
  return { x, y };
36
36
  }
37
+ /**
38
+ * Calculate a child rect aligned within a container rect, clamped to container size.
39
+ */
40
+ export function alignedChildRect(rect, size, hAlign = "center", vAlign = "center") {
41
+ const { x, y } = alignInRect(rect, size, hAlign, vAlign);
42
+ return {
43
+ x,
44
+ y,
45
+ w: Math.min(rect.w, size.w),
46
+ h: Math.min(rect.h, size.h),
47
+ };
48
+ }
37
49
  //# sourceMappingURL=alignment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alignment.js","sourceRoot":"","sources":["../../../src/utils/alignment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,MAAM,UAAU,WAAW,CAC1B,IAAU,EACV,IAAU,EACV,SAAiB,QAAQ,EACzB,SAAiB,QAAQ;IAEzB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACd,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAEd,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACb,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YACV,MAAK;QACN,KAAK,QAAQ;YACZ,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC9C,MAAK;QACN,KAAK,OAAO,CAAC;QACb,KAAK,UAAU;YACd,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACzC,MAAK;IACP,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,KAAK;YACT,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YACV,MAAK;QACN,KAAK,QAAQ;YACZ,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC9C,MAAK;QACN,KAAK,QAAQ;YACZ,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACzC,MAAK;IACP,CAAC;IAED,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"alignment.js","sourceRoot":"","sources":["../../../src/utils/alignment.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,MAAM,UAAU,WAAW,CAC1B,IAAU,EACV,IAAU,EACV,SAAiB,QAAQ,EACzB,SAAiB,QAAQ;IAEzB,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACd,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IAEd,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,SAAS;YACb,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YACV,MAAK;QACN,KAAK,QAAQ;YACZ,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC9C,MAAK;QACN,KAAK,OAAO,CAAC;QACb,KAAK,UAAU;YACd,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACzC,MAAK;IACP,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,KAAK;YACT,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YACV,MAAK;QACN,KAAK,QAAQ;YACZ,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;YAC9C,MAAK;QACN,KAAK,QAAQ;YACZ,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACzC,MAAK;IACP,CAAC;IAED,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC/B,IAAU,EACV,IAAU,EACV,SAAiB,QAAQ,EACzB,SAAiB,QAAQ;IAEzB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACxD,OAAO;QACN,CAAC;QACD,CAAC;QACD,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;KAC3B,CAAA;AACF,CAAC"}
@@ -1,6 +1,7 @@
1
- export { alignInRect, type HAlign, type VAlign } from "./alignment.js";
1
+ export { alignInRect, alignedChildRect, type HAlign, type VAlign } from "./alignment.js";
2
2
  export { type BorderChars, type BorderKind, borderChars, type ClipRect, drawBorder, type TableBorderChars, tableBorderChars, } from "./border.js";
3
3
  export { type FlexAlignment, type FlexAxis, type FlexMeasureResult, layoutFlex, measureFlex } from "./flex-layout.js";
4
4
  export { type Padding, type PaddingInput, resolvePadding } from "./padding.js";
5
- export { resolveBgStyle, resolveInheritedBgStyle, type StyleInput, type StyleOptions, styleIdFromProps, styleSpecFromProps, toColorValue, } from "./styles.js";
5
+ export { fillRectWithInheritedBg, resolveBgStyle, resolveInheritedBgStyle, type StyleInput, type StyleOptions, styleIdFromProps, styleSpecFromProps, toColorValue, } from "./styles.js";
6
+ export { wrapSpans } from "./text-wrap.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACtE,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,WAAW,EACX,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,gBAAgB,EACrB,gBAAgB,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACrH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EACN,cAAc,EACd,uBAAuB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACZ,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACxF,OAAO,EACN,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,WAAW,EACX,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,gBAAgB,EACrB,gBAAgB,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACrH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EACN,uBAAuB,EACvB,cAAc,EACd,uBAAuB,EACvB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,6 +1,7 @@
1
- export { alignInRect } from "./alignment.js";
1
+ export { alignInRect, alignedChildRect } from "./alignment.js";
2
2
  export { borderChars, drawBorder, tableBorderChars, } from "./border.js";
3
3
  export { layoutFlex, measureFlex } from "./flex-layout.js";
4
4
  export { resolvePadding } from "./padding.js";
5
- export { resolveBgStyle, resolveInheritedBgStyle, styleIdFromProps, styleSpecFromProps, toColorValue, } from "./styles.js";
5
+ export { fillRectWithInheritedBg, resolveBgStyle, resolveInheritedBgStyle, styleIdFromProps, styleSpecFromProps, toColorValue, } from "./styles.js";
6
+ export { wrapSpans } from "./text-wrap.js";
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA4B,MAAM,gBAAgB,CAAA;AACtE,OAAO,EAGN,WAAW,EAEX,UAAU,EAEV,gBAAgB,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EAA6D,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACrH,OAAO,EAAmC,cAAc,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EACN,cAAc,EACd,uBAAuB,EAGvB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACZ,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAA4B,MAAM,gBAAgB,CAAA;AACxF,OAAO,EAGN,WAAW,EAEX,UAAU,EAEV,gBAAgB,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EAA6D,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACrH,OAAO,EAAmC,cAAc,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EACN,uBAAuB,EACvB,cAAc,EACd,uBAAuB,EAGvB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Style utilities for building palette-compatible style objects.
3
3
  */
4
- import { type Color, type ColorValue, type Palette, type StyleSpec } from "@effect-tui/core";
4
+ import type { CellBuffer, Color, ColorValue, Palette, StyleSpec } from "@effect-tui/core";
5
5
  export interface StyleOptions {
6
6
  fg?: ColorValue;
7
7
  bg?: ColorValue;
@@ -34,6 +34,7 @@ export declare function resolveBgStyle(palette: Palette, bg?: Color): {
34
34
  styleId: number;
35
35
  };
36
36
  import type { HostInstance } from "../reconciler/types.js";
37
+ import type { Rect } from "../reconciler/types.js";
37
38
  /**
38
39
  * Resolve background style, inheriting from parent if not explicitly set.
39
40
  * Common pattern used by hosts that need background color inheritance.
@@ -42,4 +43,8 @@ export declare function resolveInheritedBgStyle(palette: Palette, explicitBg: Co
42
43
  value?: ColorValue;
43
44
  styleId: number;
44
45
  };
46
+ /**
47
+ * Fill a rect with background color, inheriting from parent if needed.
48
+ */
49
+ export declare function fillRectWithInheritedBg(buffer: CellBuffer, palette: Palette, rect: Rect, explicitBg: Color | undefined, parent: HostInstance | null): void;
45
50
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAExG,MAAM,WAAW,YAAY;IAC5B,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,UAAU;IAC1B,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAGzE;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAe3E;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAE5E;AAED,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAIpG;AAGD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE1D;;;GAGG;AACH,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,KAAK,GAAG,SAAS,EAC7B,MAAM,EAAE,YAAY,GAAG,IAAI,GACzB;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAGzC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAGzF,MAAM,WAAW,YAAY;IAC5B,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,EAAE,CAAC,EAAE,UAAU,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,UAAU;IAC1B,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAGzE;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAe3E;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAE5E;AAED,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAIpG;AAGD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAElD;;;GAGG;AACH,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,KAAK,GAAG,SAAS,EAC7B,MAAM,EAAE,YAAY,GAAG,IAAI,GACzB;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAGzC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,KAAK,GAAG,SAAS,EAC7B,MAAM,EAAE,YAAY,GAAG,IAAI,GACzB,IAAI,CAIN"}
@@ -50,4 +50,13 @@ export function resolveInheritedBgStyle(palette, explicitBg, parent) {
50
50
  const bg = explicitBg ?? getInheritedBg(parent);
51
51
  return resolveBgStyle(palette, bg);
52
52
  }
53
+ /**
54
+ * Fill a rect with background color, inheriting from parent if needed.
55
+ */
56
+ export function fillRectWithInheritedBg(buffer, palette, rect, explicitBg, parent) {
57
+ if (rect.w <= 0 || rect.h <= 0)
58
+ return;
59
+ const { styleId } = resolveInheritedBgStyle(palette, explicitBg, parent);
60
+ buffer.fillRect(rect.x, rect.y, rect.w, rect.h, " ".codePointAt(0), styleId);
61
+ }
53
62
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAA6C,UAAU,EAAkB,MAAM,kBAAkB,CAAA;AAwBxG,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,CAAoB;IAChD,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACrC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IACnD,MAAM,IAAI,GAAc,EAAE,CAAA;IAC1B,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACjC,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAEjC,IAAI,EAAE,KAAK,SAAS;QAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IAClC,IAAI,EAAE,KAAK,SAAS;QAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IAClC,IAAI,KAAK,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAChC,IAAI,KAAK,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IACpC,IAAI,KAAK,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IACpC,IAAI,KAAK,CAAC,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IAC1C,IAAI,KAAK,CAAC,aAAa;QAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;IAClD,IAAI,KAAK,CAAC,OAAO;QAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IAEtC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACvD,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,KAAiB;IACnE,OAAO,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,EAAU;IAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IACnE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGjD;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACtC,OAAgB,EAChB,UAA6B,EAC7B,MAA2B;IAE3B,MAAM,EAAE,GAAG,UAAU,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;IAC/C,OAAO,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AACnC,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAwB7C,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAAC,CAAoB;IAChD,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACrC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACjD,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IACnD,MAAM,IAAI,GAAc,EAAE,CAAA;IAC1B,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACjC,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAEjC,IAAI,EAAE,KAAK,SAAS;QAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IAClC,IAAI,EAAE,KAAK,SAAS;QAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IAClC,IAAI,KAAK,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IAChC,IAAI,KAAK,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IACpC,IAAI,KAAK,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;IACpC,IAAI,KAAK,CAAC,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IAC1C,IAAI,KAAK,CAAC,aAAa;QAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;IAClD,IAAI,KAAK,CAAC,OAAO;QAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IAEtC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACvD,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,gBAAgB,CAAC,OAAgB,EAAE,KAAiB;IACnE,OAAO,OAAO,CAAC,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,EAAU;IAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IACnE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AAC1B,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAIjD;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACtC,OAAgB,EAChB,UAA6B,EAC7B,MAA2B;IAE3B,MAAM,EAAE,GAAG,UAAU,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;IAC/C,OAAO,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACtC,MAAkB,EAClB,OAAgB,EAChB,IAAU,EACV,UAA6B,EAC7B,MAA2B;IAE3B,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;QAAE,OAAM;IACtC,MAAM,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;IACxE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,CAAA;AAC9E,CAAC"}
@@ -0,0 +1,10 @@
1
+ type SpanLike = {
2
+ text: string;
3
+ };
4
+ /**
5
+ * Wrap spans into lines, breaking at word boundaries.
6
+ * Preserves span styling by cloning span objects with updated text.
7
+ */
8
+ export declare function wrapSpans<T extends SpanLike>(spans: T[], maxWidth: number): T[][];
9
+ export {};
10
+ //# sourceMappingURL=text-wrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-wrap.d.ts","sourceRoot":"","sources":["../../../src/utils/text-wrap.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhC;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAyDjF"}
@@ -0,0 +1,64 @@
1
+ import { displayWidth } from "@effect-tui/core";
2
+ /**
3
+ * Wrap spans into lines, breaking at word boundaries.
4
+ * Preserves span styling by cloning span objects with updated text.
5
+ */
6
+ export function wrapSpans(spans, maxWidth) {
7
+ const lines = [[]];
8
+ let lineWidth = 0;
9
+ for (const span of spans) {
10
+ // Split span text into words (keeping whitespace as separate tokens)
11
+ const tokens = span.text.split(/(\s+)/);
12
+ for (const token of tokens) {
13
+ if (!token)
14
+ continue;
15
+ const tokenWidth = displayWidth(token);
16
+ const isWhitespace = /^\s+$/.test(token);
17
+ if (lineWidth + tokenWidth <= maxWidth) {
18
+ // Token fits on current line
19
+ lines[lines.length - 1].push({ ...span, text: token });
20
+ lineWidth += tokenWidth;
21
+ }
22
+ else if (isWhitespace) {
23
+ // Skip whitespace at line break
24
+ continue;
25
+ }
26
+ else if (tokenWidth <= maxWidth) {
27
+ // Start new line with this token
28
+ lines.push([{ ...span, text: token }]);
29
+ lineWidth = tokenWidth;
30
+ }
31
+ else {
32
+ // Token is longer than maxWidth - break by character
33
+ let charLine = "";
34
+ let charLineWidth = 0;
35
+ for (const ch of token) {
36
+ const chWidth = displayWidth(ch);
37
+ if (lineWidth + charLineWidth + chWidth > maxWidth && (charLine || lineWidth > 0)) {
38
+ if (charLine) {
39
+ lines[lines.length - 1].push({ ...span, text: charLine });
40
+ }
41
+ lines.push([]);
42
+ lineWidth = 0;
43
+ charLine = ch;
44
+ charLineWidth = chWidth;
45
+ }
46
+ else {
47
+ charLine += ch;
48
+ charLineWidth += chWidth;
49
+ }
50
+ }
51
+ if (charLine) {
52
+ lines[lines.length - 1].push({ ...span, text: charLine });
53
+ lineWidth += charLineWidth;
54
+ }
55
+ }
56
+ }
57
+ }
58
+ // Remove empty lines at the end
59
+ while (lines.length > 0 && lines[lines.length - 1].length === 0) {
60
+ lines.pop();
61
+ }
62
+ return lines.length > 0 ? lines : [[]];
63
+ }
64
+ //# sourceMappingURL=text-wrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-wrap.js","sourceRoot":"","sources":["../../../src/utils/text-wrap.ts"],"names":[],"mappings":"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"}