@effect-tui/react 0.15.2 → 0.16.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 (249) hide show
  1. package/README.md +2 -2
  2. package/dist/src/components/ListView.d.ts +4 -4
  3. package/dist/src/components/ListView.d.ts.map +1 -1
  4. package/dist/src/components/ListView.js +16 -17
  5. package/dist/src/components/ListView.js.map +1 -1
  6. package/dist/src/console/ConsolePopover.d.ts +7 -1
  7. package/dist/src/console/ConsolePopover.d.ts.map +1 -1
  8. package/dist/src/console/ConsolePopover.js +55 -74
  9. package/dist/src/console/ConsolePopover.js.map +1 -1
  10. package/dist/src/debug/DebugOverlay.d.ts.map +1 -1
  11. package/dist/src/debug/DebugOverlay.js +3 -57
  12. package/dist/src/debug/DebugOverlay.js.map +1 -1
  13. package/dist/src/debug/DiagnosticsPanel.js +1 -1
  14. package/dist/src/debug/DiagnosticsPanel.js.map +1 -1
  15. package/dist/src/dev.d.ts +5 -117
  16. package/dist/src/dev.d.ts.map +1 -1
  17. package/dist/src/dev.js +3 -333
  18. package/dist/src/dev.js.map +1 -1
  19. package/dist/src/hooks/use-scroll.d.ts +31 -35
  20. package/dist/src/hooks/use-scroll.d.ts.map +1 -1
  21. package/dist/src/hooks/use-scroll.js +51 -90
  22. package/dist/src/hooks/use-scroll.js.map +1 -1
  23. package/dist/src/hosts/canvas.d.ts +2 -2
  24. package/dist/src/hosts/canvas.d.ts.map +1 -1
  25. package/dist/src/hosts/canvas.js +8 -10
  26. package/dist/src/hosts/canvas.js.map +1 -1
  27. package/dist/src/hosts/codeblock.d.ts +2 -2
  28. package/dist/src/hosts/codeblock.js +2 -2
  29. package/dist/src/hosts/flex-container.d.ts +1 -1
  30. package/dist/src/hosts/flex-container.d.ts.map +1 -1
  31. package/dist/src/hosts/flex-container.js +3 -3
  32. package/dist/src/hosts/flex-container.js.map +1 -1
  33. package/dist/src/hosts/index.d.ts +2 -1
  34. package/dist/src/hosts/index.d.ts.map +1 -1
  35. package/dist/src/hosts/index.js +2 -1
  36. package/dist/src/hosts/index.js.map +1 -1
  37. package/dist/src/hosts/layout-helpers.d.ts +10 -0
  38. package/dist/src/hosts/layout-helpers.d.ts.map +1 -0
  39. package/dist/src/hosts/layout-helpers.js +10 -0
  40. package/dist/src/hosts/layout-helpers.js.map +1 -0
  41. package/dist/src/hosts/leaf.d.ts +14 -0
  42. package/dist/src/hosts/leaf.d.ts.map +1 -0
  43. package/dist/src/hosts/leaf.js +31 -0
  44. package/dist/src/hosts/leaf.js.map +1 -0
  45. package/dist/src/hosts/overlay.d.ts.map +1 -1
  46. package/dist/src/hosts/overlay.js +4 -7
  47. package/dist/src/hosts/overlay.js.map +1 -1
  48. package/dist/src/hosts/scroll.d.ts +47 -24
  49. package/dist/src/hosts/scroll.d.ts.map +1 -1
  50. package/dist/src/hosts/scroll.js +68 -51
  51. package/dist/src/hosts/scroll.js.map +1 -1
  52. package/dist/src/hosts/spacer.d.ts +2 -2
  53. package/dist/src/hosts/spacer.js +2 -2
  54. package/dist/src/hosts/text.d.ts +2 -3
  55. package/dist/src/hosts/text.d.ts.map +1 -1
  56. package/dist/src/hosts/text.js +5 -61
  57. package/dist/src/hosts/text.js.map +1 -1
  58. package/dist/src/hosts/vstack.js +1 -1
  59. package/dist/src/hosts/vstack.js.map +1 -1
  60. package/dist/src/hosts/zstack.d.ts +1 -1
  61. package/dist/src/hosts/zstack.d.ts.map +1 -1
  62. package/dist/src/hosts/zstack.js +6 -6
  63. package/dist/src/hosts/zstack.js.map +1 -1
  64. package/dist/src/index.d.ts +1 -1
  65. package/dist/src/index.d.ts.map +1 -1
  66. package/dist/src/internal/dev/hmr.d.ts +20 -0
  67. package/dist/src/internal/dev/hmr.d.ts.map +1 -0
  68. package/dist/src/internal/dev/hmr.js +93 -0
  69. package/dist/src/internal/dev/hmr.js.map +1 -0
  70. package/dist/src/internal/dev/runtime.d.ts +24 -0
  71. package/dist/src/internal/dev/runtime.d.ts.map +1 -0
  72. package/dist/src/internal/dev/runtime.js +135 -0
  73. package/dist/src/internal/dev/runtime.js.map +1 -0
  74. package/dist/src/internal/dev/ui.d.ts +13 -0
  75. package/dist/src/internal/dev/ui.d.ts.map +1 -0
  76. package/dist/src/internal/dev/ui.js +51 -0
  77. package/dist/src/internal/dev/ui.js.map +1 -0
  78. package/dist/src/internal/renderer/context.d.ts +9 -0
  79. package/dist/src/internal/renderer/context.d.ts.map +1 -0
  80. package/dist/src/internal/renderer/context.js +22 -0
  81. package/dist/src/internal/renderer/context.js.map +1 -0
  82. package/dist/src/internal/renderer/core/FrameBuilder.d.ts +18 -0
  83. package/dist/src/internal/renderer/core/FrameBuilder.d.ts.map +1 -0
  84. package/dist/src/internal/renderer/core/FrameBuilder.js +40 -0
  85. package/dist/src/internal/renderer/core/FrameBuilder.js.map +1 -0
  86. package/dist/src/internal/renderer/core/RendererState.d.ts +41 -0
  87. package/dist/src/internal/renderer/core/RendererState.d.ts.map +1 -0
  88. package/dist/src/internal/renderer/core/RendererState.js +70 -0
  89. package/dist/src/internal/renderer/core/RendererState.js.map +1 -0
  90. package/dist/src/internal/renderer/core/index.d.ts +3 -0
  91. package/dist/src/internal/renderer/core/index.d.ts.map +1 -0
  92. package/dist/src/internal/renderer/core/index.js +3 -0
  93. package/dist/src/internal/renderer/core/index.js.map +1 -0
  94. package/dist/src/internal/renderer/index.d.ts +40 -0
  95. package/dist/src/internal/renderer/index.d.ts.map +1 -0
  96. package/dist/src/internal/renderer/index.js +518 -0
  97. package/dist/src/internal/renderer/index.js.map +1 -0
  98. package/dist/src/internal/renderer/input/InputProcessor.d.ts +30 -0
  99. package/dist/src/internal/renderer/input/InputProcessor.d.ts.map +1 -0
  100. package/dist/src/internal/renderer/input/InputProcessor.js +122 -0
  101. package/dist/src/internal/renderer/input/InputProcessor.js.map +1 -0
  102. package/dist/src/internal/renderer/input/index.d.ts +2 -0
  103. package/dist/src/internal/renderer/input/index.d.ts.map +1 -0
  104. package/dist/src/internal/renderer/input/index.js +2 -0
  105. package/dist/src/internal/renderer/input/index.js.map +1 -0
  106. package/dist/src/internal/renderer/lifecycle/EventBus.d.ts +42 -0
  107. package/dist/src/internal/renderer/lifecycle/EventBus.d.ts.map +1 -0
  108. package/dist/src/internal/renderer/lifecycle/EventBus.js +97 -0
  109. package/dist/src/internal/renderer/lifecycle/EventBus.js.map +1 -0
  110. package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.d.ts +13 -0
  111. package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.d.ts.map +1 -0
  112. package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.js +111 -0
  113. package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.js.map +1 -0
  114. package/dist/src/internal/renderer/lifecycle/RenderCache.d.ts +3 -0
  115. package/dist/src/internal/renderer/lifecycle/RenderCache.d.ts.map +1 -0
  116. package/dist/src/internal/renderer/lifecycle/RenderCache.js +9 -0
  117. package/dist/src/internal/renderer/lifecycle/RenderCache.js.map +1 -0
  118. package/dist/src/internal/renderer/lifecycle/index.d.ts +4 -0
  119. package/dist/src/internal/renderer/lifecycle/index.d.ts.map +1 -0
  120. package/dist/src/internal/renderer/lifecycle/index.js +4 -0
  121. package/dist/src/internal/renderer/lifecycle/index.js.map +1 -0
  122. package/dist/src/internal/renderer/modes/FullscreenRenderer.d.ts +12 -0
  123. package/dist/src/internal/renderer/modes/FullscreenRenderer.d.ts.map +1 -0
  124. package/dist/src/internal/renderer/modes/FullscreenRenderer.js +54 -0
  125. package/dist/src/internal/renderer/modes/FullscreenRenderer.js.map +1 -0
  126. package/dist/src/internal/renderer/modes/InlineRenderer.d.ts +25 -0
  127. package/dist/src/internal/renderer/modes/InlineRenderer.d.ts.map +1 -0
  128. package/dist/src/internal/renderer/modes/InlineRenderer.js +166 -0
  129. package/dist/src/internal/renderer/modes/InlineRenderer.js.map +1 -0
  130. package/dist/src/internal/renderer/modes/RendererMode.d.ts +42 -0
  131. package/dist/src/internal/renderer/modes/RendererMode.d.ts.map +1 -0
  132. package/dist/src/internal/renderer/modes/RendererMode.js +2 -0
  133. package/dist/src/internal/renderer/modes/RendererMode.js.map +1 -0
  134. package/dist/src/internal/renderer/modes/StaticContentRenderer.d.ts +25 -0
  135. package/dist/src/internal/renderer/modes/StaticContentRenderer.d.ts.map +1 -0
  136. package/dist/src/internal/renderer/modes/StaticContentRenderer.js +49 -0
  137. package/dist/src/internal/renderer/modes/StaticContentRenderer.js.map +1 -0
  138. package/dist/src/internal/renderer/modes/index.d.ts +5 -0
  139. package/dist/src/internal/renderer/modes/index.d.ts.map +1 -0
  140. package/dist/src/internal/renderer/modes/index.js +4 -0
  141. package/dist/src/internal/renderer/modes/index.js.map +1 -0
  142. package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.d.ts +13 -0
  143. package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.d.ts.map +1 -0
  144. package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.js +75 -0
  145. package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.js.map +1 -0
  146. package/dist/src/internal/renderer/terminal/TerminalSetup.d.ts +29 -0
  147. package/dist/src/internal/renderer/terminal/TerminalSetup.d.ts.map +1 -0
  148. package/dist/src/internal/renderer/terminal/TerminalSetup.js +82 -0
  149. package/dist/src/internal/renderer/terminal/TerminalSetup.js.map +1 -0
  150. package/dist/src/internal/renderer/terminal/index.d.ts +3 -0
  151. package/dist/src/internal/renderer/terminal/index.d.ts.map +1 -0
  152. package/dist/src/internal/renderer/terminal/index.js +3 -0
  153. package/dist/src/internal/renderer/terminal/index.js.map +1 -0
  154. package/dist/src/internal/renderer/types.d.ts +118 -0
  155. package/dist/src/internal/renderer/types.d.ts.map +1 -0
  156. package/dist/src/internal/renderer/types.js +2 -0
  157. package/dist/src/internal/renderer/types.js.map +1 -0
  158. package/dist/src/renderer-context.d.ts +1 -8
  159. package/dist/src/renderer-context.d.ts.map +1 -1
  160. package/dist/src/renderer-context.js +1 -21
  161. package/dist/src/renderer-context.js.map +1 -1
  162. package/dist/src/renderer-types.d.ts +1 -115
  163. package/dist/src/renderer-types.d.ts.map +1 -1
  164. package/dist/src/renderer.d.ts +1 -31
  165. package/dist/src/renderer.d.ts.map +1 -1
  166. package/dist/src/renderer.js +1 -495
  167. package/dist/src/renderer.js.map +1 -1
  168. package/dist/src/test/render-tui.d.ts +3 -3
  169. package/dist/src/test/render-tui.d.ts.map +1 -1
  170. package/dist/src/test/render-tui.js +16 -9
  171. package/dist/src/test/render-tui.js.map +1 -1
  172. package/dist/src/utils/alignment.d.ts +1 -1
  173. package/dist/src/utils/alignment.d.ts.map +1 -1
  174. package/dist/src/utils/alignment.js +0 -2
  175. package/dist/src/utils/alignment.js.map +1 -1
  176. package/dist/src/utils/console-helpers.d.ts +19 -0
  177. package/dist/src/utils/console-helpers.d.ts.map +1 -0
  178. package/dist/src/utils/console-helpers.js +61 -0
  179. package/dist/src/utils/console-helpers.js.map +1 -0
  180. package/dist/src/utils/index.d.ts +1 -1
  181. package/dist/src/utils/index.d.ts.map +1 -1
  182. package/dist/src/utils/index.js +1 -1
  183. package/dist/src/utils/index.js.map +1 -1
  184. package/dist/src/utils/styles.d.ts +8 -1
  185. package/dist/src/utils/styles.d.ts.map +1 -1
  186. package/dist/src/utils/styles.js +10 -8
  187. package/dist/src/utils/styles.js.map +1 -1
  188. package/dist/src/utils/text-wrap.d.ts +5 -0
  189. package/dist/src/utils/text-wrap.d.ts.map +1 -1
  190. package/dist/src/utils/text-wrap.js +110 -48
  191. package/dist/src/utils/text-wrap.js.map +1 -1
  192. package/dist/src/visualize/index.js +1 -1
  193. package/dist/src/visualize/index.js.map +1 -1
  194. package/dist/tsconfig.tsbuildinfo +1 -1
  195. package/package.json +2 -2
  196. package/src/components/ListView.tsx +21 -23
  197. package/src/console/ConsolePopover.tsx +124 -107
  198. package/src/debug/DebugOverlay.ts +15 -74
  199. package/src/debug/DiagnosticsPanel.tsx +1 -1
  200. package/src/dev.tsx +5 -458
  201. package/src/hooks/use-scroll.ts +85 -145
  202. package/src/hosts/canvas.ts +8 -11
  203. package/src/hosts/codeblock.ts +2 -2
  204. package/src/hosts/flex-container.ts +4 -4
  205. package/src/hosts/index.ts +10 -1
  206. package/src/hosts/layout-helpers.ts +20 -0
  207. package/src/hosts/leaf.ts +36 -0
  208. package/src/hosts/overlay.ts +11 -9
  209. package/src/hosts/scroll.ts +94 -69
  210. package/src/hosts/spacer.ts +2 -2
  211. package/src/hosts/text.ts +5 -58
  212. package/src/hosts/vstack.ts +1 -1
  213. package/src/hosts/zstack.ts +7 -7
  214. package/src/index.ts +1 -1
  215. package/src/internal/dev/hmr.ts +101 -0
  216. package/src/internal/dev/runtime.ts +170 -0
  217. package/src/internal/dev/ui.tsx +87 -0
  218. package/src/internal/renderer/context.ts +27 -0
  219. package/src/{renderer → internal/renderer}/core/FrameBuilder.ts +2 -2
  220. package/src/internal/renderer/index.ts +656 -0
  221. package/src/{renderer → internal/renderer}/input/InputProcessor.ts +10 -1
  222. package/src/{renderer → internal/renderer}/lifecycle/EventBus.ts +9 -1
  223. package/src/internal/renderer/lifecycle/ProcessLifecycle.ts +125 -0
  224. package/src/internal/renderer/lifecycle/index.ts +3 -0
  225. package/src/{renderer → internal/renderer}/modes/InlineRenderer.ts +5 -2
  226. package/src/{renderer → internal/renderer}/modes/RendererMode.ts +1 -1
  227. package/src/{renderer → internal/renderer}/modes/StaticContentRenderer.ts +5 -2
  228. package/src/internal/renderer/terminal/KeyboardCapabilityProbe.ts +91 -0
  229. package/src/{renderer/lifecycle → internal/renderer/terminal}/TerminalSetup.ts +4 -22
  230. package/src/internal/renderer/terminal/index.ts +2 -0
  231. package/src/internal/renderer/types.ts +125 -0
  232. package/src/renderer-context.ts +1 -27
  233. package/src/renderer-types.ts +10 -123
  234. package/src/renderer.ts +1 -619
  235. package/src/test/render-tui.ts +16 -10
  236. package/src/utils/alignment.ts +1 -3
  237. package/src/utils/console-helpers.ts +86 -0
  238. package/src/utils/index.ts +1 -1
  239. package/src/utils/styles.ts +16 -4
  240. package/src/utils/text-wrap.ts +139 -48
  241. package/src/visualize/index.tsx +1 -1
  242. package/src/renderer/lifecycle/ResizeManager.ts +0 -65
  243. package/src/renderer/lifecycle/index.ts +0 -4
  244. /package/src/{renderer → internal/renderer}/core/RendererState.ts +0 -0
  245. /package/src/{renderer → internal/renderer}/core/index.ts +0 -0
  246. /package/src/{renderer → internal/renderer}/input/index.ts +0 -0
  247. /package/src/{renderer → internal/renderer}/lifecycle/RenderCache.ts +0 -0
  248. /package/src/{renderer → internal/renderer}/modes/FullscreenRenderer.ts +0 -0
  249. /package/src/{renderer → internal/renderer}/modes/index.ts +0 -0
@@ -0,0 +1,118 @@
1
+ import type { KeyMsg, MouseMsg } from "@effect-tui/core";
2
+ import type { HostContext, HostInstance } from "../../reconciler/types.js";
3
+ export type PasteMsg = {
4
+ type: "paste";
5
+ text: string;
6
+ /** Set by renderer to allow handlers to stop further propagation. */
7
+ defaultPrevented?: boolean;
8
+ preventDefault?: () => void;
9
+ };
10
+ /** Minimal write stream interface for renderer output */
11
+ export interface TuiWriteStream {
12
+ write(s: string): void;
13
+ columns: number;
14
+ rows: number;
15
+ on(event: string, cb: () => void): void;
16
+ removeListener(event: string, cb: () => void): void;
17
+ }
18
+ /** Minimal read stream interface for renderer input */
19
+ export interface TuiReadStream {
20
+ isTTY?: boolean;
21
+ setRawMode?(mode: boolean): void;
22
+ resume?(): void;
23
+ on(event: string, cb: (data: Buffer) => void): void;
24
+ removeListener(event: string, cb: (data: Buffer) => void): void;
25
+ }
26
+ export interface TuiRenderer {
27
+ /** Terminal width */
28
+ width: number;
29
+ /** Terminal height */
30
+ height: number;
31
+ /** Request a re-render */
32
+ requestRender(): void;
33
+ /** Subscribe to per-frame stats (if enabled). */
34
+ onFrameStats?(handler: (stats: FrameStats) => void): () => void;
35
+ /** Subscribe to keyboard events */
36
+ onKey(handler: (key: KeyMsg) => void): () => void;
37
+ /** Subscribe to mouse events (clicks, scroll, etc.) */
38
+ onMouse(handler: (mouse: MouseMsg) => void): () => void;
39
+ /** Subscribe to paste events (bracketed paste mode). */
40
+ onPaste?(handler: (paste: PasteMsg) => void): () => void;
41
+ /** Subscribe to resize events */
42
+ onResize(handler: (width: number, height: number) => void): () => void;
43
+ /** Stop the renderer */
44
+ stop(): void;
45
+ /** Manually trigger one render frame (only in manualMode) */
46
+ renderNow(): void;
47
+ /**
48
+ * Get the current screen as ANSI string (for screenshots/debugging).
49
+ * Returns the last rendered frame with all ANSI color codes intact.
50
+ */
51
+ getScreenshot(): string;
52
+ /** Dispatch a key event (for remote control) */
53
+ dispatchKey?(key: KeyMsg): void;
54
+ /** Dispatch a paste event (for remote control) */
55
+ dispatchPaste?(text: string): void;
56
+ /** Dispatch a resize event (for remote control) */
57
+ dispatchResize?(width: number, height: number): void;
58
+ }
59
+ /** Internal renderer type with container reference */
60
+ export interface TuiRendererInternal extends TuiRenderer {
61
+ _container: Container | null;
62
+ }
63
+ export interface Container {
64
+ root: HostInstance | null;
65
+ ctx: HostContext;
66
+ /** @internal Static content root node (for Static component) */
67
+ staticRoot?: HostInstance | null;
68
+ /** @internal Flag indicating static content needs flushing */
69
+ staticDirty?: boolean;
70
+ }
71
+ export interface RendererOptions {
72
+ fps?: number;
73
+ stdout?: NodeJS.WriteStream | TuiWriteStream;
74
+ stdin?: NodeJS.ReadStream | TuiReadStream;
75
+ /** Render mode: "fullscreen" uses alternate buffer, "inline" renders in-place */
76
+ mode?: "fullscreen" | "inline";
77
+ /** Exit the process on Ctrl+C unless preventDefault was called. Defaults to true. */
78
+ exitOnCtrlC?: boolean;
79
+ /** Handle SIGINT/SIGTERM and process exit cleanup. Defaults to true. */
80
+ handleSignals?: boolean;
81
+ /** Exit the process after handling SIGINT/SIGTERM. Defaults to true. */
82
+ exitOnSignal?: boolean;
83
+ /** Override exit codes for signals. Defaults: SIGINT=130, SIGTERM=143. */
84
+ signalExitCodes?: Partial<Record<"SIGINT" | "SIGTERM", number>>;
85
+ /** Enable diffed rendering (per-line). Defaults to true in runtime, false in manualMode (tests). */
86
+ diff?: boolean;
87
+ /** Skip automatic render loop. Call renderNow() manually to render frames. */
88
+ manualMode?: boolean;
89
+ /** Skip fullscreen/raw mode setup (for testing) */
90
+ skipTerminalSetup?: boolean;
91
+ /** Enable bracketed paste (default true). */
92
+ enablePaste?: boolean;
93
+ /** Enable mouse mode for scroll wheel events (default true in fullscreen). */
94
+ enableMouse?: boolean;
95
+ /** Enable Kitty/xterm keyboard protocols for enhanced modifier detection (default true). */
96
+ enableKittyKeyboard?: boolean;
97
+ /** Optional per-frame diagnostics hook. Called after each frame is written. */
98
+ debug?: {
99
+ onFrame?: (stats: FrameStats) => void;
100
+ };
101
+ }
102
+ export interface FrameStats {
103
+ mode: "fullscreen" | "inline";
104
+ width: number;
105
+ height: number;
106
+ contentHeight: number;
107
+ bytes: number;
108
+ frameMs: number;
109
+ phases: {
110
+ clear: number;
111
+ layout: number;
112
+ render: number;
113
+ diffMs: number;
114
+ write: number;
115
+ };
116
+ timestamp: number;
117
+ }
118
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/internal/renderer/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/internal/renderer/types.ts"],"names":[],"mappings":""}
@@ -1,9 +1,2 @@
1
- import type { TuiRenderer } from "./renderer-types.js";
2
- export declare const RendererContext: import("react").Context<TuiRenderer | null>;
3
- export declare function useRenderer(): TuiRenderer;
4
- /** Hook that returns terminal size and re-renders on resize */
5
- export declare function useTerminalSize(): {
6
- width: number;
7
- height: number;
8
- };
1
+ export { RendererContext, useRenderer, useTerminalSize } from "./internal/renderer/context.js";
9
2
  //# sourceMappingURL=renderer-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-context.d.ts","sourceRoot":"","sources":["../../src/renderer-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAGtD,eAAO,MAAM,eAAe,6CAA0C,CAAA;AAEtE,wBAAgB,WAAW,IAAI,WAAW,CAMzC;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAWnE"}
1
+ {"version":3,"file":"renderer-context.d.ts","sourceRoot":"","sources":["../../src/renderer-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA"}
@@ -1,22 +1,2 @@
1
- import { createContext, useContext, useEffect, useState } from "react";
2
- // Context for accessing renderer in components
3
- export const RendererContext = createContext(null);
4
- export function useRenderer() {
5
- const renderer = useContext(RendererContext);
6
- if (!renderer) {
7
- throw new Error("useRenderer must be used within a TUI renderer");
8
- }
9
- return renderer;
10
- }
11
- /** Hook that returns terminal size and re-renders on resize */
12
- export function useTerminalSize() {
13
- const renderer = useRenderer();
14
- const [size, setSize] = useState({ width: renderer.width, height: renderer.height });
15
- useEffect(() => {
16
- return renderer.onResize((width, height) => {
17
- setSize({ width, height });
18
- });
19
- }, [renderer]);
20
- return size;
21
- }
1
+ export { RendererContext, useRenderer, useTerminalSize } from "./internal/renderer/context.js";
22
2
  //# sourceMappingURL=renderer-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-context.js","sourceRoot":"","sources":["../../src/renderer-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGtE,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAqB,IAAI,CAAC,CAAA;AAEtE,MAAM,UAAU,WAAW;IAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,QAAQ,CAAA;AAChB,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,eAAe;IAC9B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAEpF,SAAS,CAAC,GAAG,EAAE;QACd,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,OAAO,IAAI,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"renderer-context.js","sourceRoot":"","sources":["../../src/renderer-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA"}
@@ -1,116 +1,2 @@
1
- import type { KeyMsg, MouseMsg } from "@effect-tui/core";
2
- import type { HostContext, HostInstance } from "./reconciler/types.js";
3
- export type PasteMsg = {
4
- type: "paste";
5
- text: string;
6
- /** Set by renderer to allow handlers to stop further propagation. */
7
- defaultPrevented?: boolean;
8
- preventDefault?: () => void;
9
- };
10
- /** Minimal write stream interface for renderer output */
11
- export interface TuiWriteStream {
12
- write(s: string): void;
13
- columns: number;
14
- rows: number;
15
- on(event: string, cb: () => void): void;
16
- removeListener(event: string, cb: () => void): void;
17
- }
18
- /** Minimal read stream interface for renderer input */
19
- export interface TuiReadStream {
20
- isTTY?: boolean;
21
- setRawMode?(mode: boolean): void;
22
- resume?(): void;
23
- on(event: string, cb: (data: Buffer) => void): void;
24
- removeListener(event: string, cb: (data: Buffer) => void): void;
25
- }
26
- export interface TuiRenderer {
27
- /** Terminal width */
28
- width: number;
29
- /** Terminal height */
30
- height: number;
31
- /** Request a re-render */
32
- requestRender(): void;
33
- /** Subscribe to per-frame stats (if enabled). */
34
- onFrameStats?(handler: (stats: FrameStats) => void): () => void;
35
- /** Subscribe to keyboard events */
36
- onKey(handler: (key: KeyMsg) => void): () => void;
37
- /** Subscribe to mouse events (clicks, scroll, etc.) */
38
- onMouse(handler: (mouse: MouseMsg) => void): () => void;
39
- /** Subscribe to paste events (bracketed paste mode). */
40
- onPaste?(handler: (paste: PasteMsg) => void): () => void;
41
- /** Subscribe to resize events */
42
- onResize(handler: (width: number, height: number) => void): () => void;
43
- /** Stop the renderer */
44
- stop(): void;
45
- /** Manually trigger one render frame (only in manualMode) */
46
- flush(): void;
47
- /**
48
- * Get the current screen as ANSI string (for screenshots/debugging).
49
- * Returns the last rendered frame with all ANSI color codes intact.
50
- */
51
- getScreenshot(): string;
52
- /** Dispatch a key event (for remote control) */
53
- dispatchKey?(key: KeyMsg): void;
54
- /** Dispatch a paste event (for remote control) */
55
- dispatchPaste?(text: string): void;
56
- /** Dispatch a resize event (for remote control) */
57
- dispatchResize?(width: number, height: number): void;
58
- }
59
- /** Internal renderer type with container reference */
60
- export interface TuiRendererInternal extends TuiRenderer {
61
- _container: Container | null;
62
- }
63
- export interface Container {
64
- root: HostInstance | null;
65
- ctx: HostContext;
66
- /** @internal Static content root node (for Static component) */
67
- staticRoot?: HostInstance | null;
68
- /** @internal Flag indicating static content needs flushing */
69
- staticDirty?: boolean;
70
- }
71
- export interface RendererOptions {
72
- fps?: number;
73
- stdout?: NodeJS.WriteStream | TuiWriteStream;
74
- stdin?: NodeJS.ReadStream | TuiReadStream;
75
- /** Render mode: "fullscreen" uses alternate buffer, "inline" renders in-place */
76
- mode?: "fullscreen" | "inline";
77
- /** Exit the process on Ctrl+C unless preventDefault was called. Defaults to true. */
78
- exitOnCtrlC?: boolean;
79
- /** Handle SIGINT/SIGTERM and process exit cleanup. Defaults to true. */
80
- handleSignals?: boolean;
81
- /** Exit the process after handling SIGINT/SIGTERM. Defaults to true. */
82
- exitOnSignal?: boolean;
83
- /** Override exit codes for signals. Defaults: SIGINT=130, SIGTERM=143. */
84
- signalExitCodes?: Partial<Record<"SIGINT" | "SIGTERM", number>>;
85
- /** Enable diffed rendering (per-line). Defaults to true in runtime, false in manualMode (tests). */
86
- diff?: boolean;
87
- /** Skip automatic render loop. Call flush() manually to render frames. */
88
- manualMode?: boolean;
89
- /** Skip fullscreen/raw mode setup (for testing) */
90
- skipTerminalSetup?: boolean;
91
- /** Enable bracketed paste (default true). */
92
- enablePaste?: boolean;
93
- /** Enable mouse mode for scroll wheel events (default true in fullscreen). */
94
- enableMouse?: boolean;
95
- /** Optional per-frame diagnostics hook. Called after each frame is written. */
96
- debug?: {
97
- onFrame?: (stats: FrameStats) => void;
98
- };
99
- }
100
- export interface FrameStats {
101
- mode: "fullscreen" | "inline";
102
- width: number;
103
- height: number;
104
- contentHeight: number;
105
- bytes: number;
106
- frameMs: number;
107
- phases: {
108
- clear: number;
109
- layout: number;
110
- render: number;
111
- diffAnsi: number;
112
- write: number;
113
- };
114
- timestamp: number;
115
- }
1
+ export type { Container, FrameStats, PasteMsg, RendererOptions, TuiReadStream, TuiRenderer, TuiRendererInternal, TuiWriteStream, } from "./internal/renderer/types.js";
116
2
  //# sourceMappingURL=renderer-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-types.d.ts","sourceRoot":"","sources":["../../src/renderer-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer-types.d.ts","sourceRoot":"","sources":["../../src/renderer-types.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,eAAe,EACf,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,cAAc,GACd,MAAM,8BAA8B,CAAA"}
@@ -1,32 +1,2 @@
1
- import { type ReactNode } from "react";
2
- import { type DevOptions } from "./dev.js";
3
- import type { RendererOptions, TuiRenderer } from "./renderer-types.js";
4
- export { RendererContext, useRenderer, useTerminalSize } from "./renderer-context.js";
5
- export type { FrameStats, PasteMsg, RendererOptions, TuiReadStream, TuiRenderer, TuiWriteStream, } from "./renderer-types.js";
6
- export declare function createRenderer(options?: RendererOptions): TuiRenderer;
7
- export interface Root {
8
- render(element: ReactNode, sync?: boolean): void;
9
- unmount(): void;
10
- }
11
- export declare function createRoot(renderer: TuiRenderer): Root;
12
- export interface RenderInstance {
13
- renderer: TuiRenderer;
14
- root: Root;
15
- rerender(element: ReactNode): void;
16
- unmount(): void;
17
- waitUntilExit(): Promise<void>;
18
- /** Cleanly exit the application, restoring terminal state before process.exit() */
19
- quit(code?: number): void;
20
- }
21
- export type ImportMetaLike = {
22
- url: string;
23
- main?: boolean;
24
- };
25
- export type RenderOptions = RendererOptions & DevOptions & {
26
- /** Enable dev runtime (HMR, console overlay, remote control). */
27
- dev?: boolean;
28
- /** Required when passing options. */
29
- importMeta: ImportMetaLike;
30
- };
31
- export declare function render(element: ReactNode, options?: RenderOptions): RenderInstance;
1
+ export * from "./internal/renderer/index.js";
32
2
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/renderer.ts"],"names":[],"mappings":"AAGA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAa7C,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,KAAK,EAIX,eAAe,EAEf,WAAW,EAGX,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAErF,YAAY,EACX,UAAU,EACV,QAAQ,EACR,eAAe,EACf,aAAa,EACb,WAAW,EACX,cAAc,GACd,MAAM,qBAAqB,CAAA;AAI5B,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CA6YrE;AAED,MAAM,WAAW,IAAI;IACpB,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAChD,OAAO,IAAI,IAAI,CAAA;CACf;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CA+CtD;AAGD,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,WAAW,CAAA;IACrB,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAA;IAClC,OAAO,IAAI,IAAI,CAAA;IACf,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,mFAAmF;IACnF,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,eAAe,GAC1C,UAAU,GAAG;IACZ,iEAAiE;IACjE,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,qCAAqC;IACrC,UAAU,EAAE,cAAc,CAAA;CAC1B,CAAA;AA+DF,wBAAgB,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CAuClF"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/renderer.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA"}