@effect-tui/react 0.1.3 → 0.1.4

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 (442) hide show
  1. package/dist/jsx-runtime.d.ts +13 -0
  2. package/dist/jsx-runtime.d.ts.map +1 -1
  3. package/dist/jsx-runtime.js.map +1 -1
  4. package/dist/src/codeblock.d.ts.map +1 -1
  5. package/dist/src/codeblock.js.map +1 -1
  6. package/dist/src/components/Divider.d.ts +18 -0
  7. package/dist/src/components/Divider.d.ts.map +1 -0
  8. package/dist/src/components/Divider.js +17 -0
  9. package/dist/src/components/Divider.js.map +1 -0
  10. package/dist/src/components/Markdown.d.ts +66 -0
  11. package/dist/src/components/Markdown.d.ts.map +1 -0
  12. package/dist/src/components/Markdown.js +226 -0
  13. package/dist/src/components/Markdown.js.map +1 -0
  14. package/dist/src/components/MultilineTextInput.d.ts +65 -0
  15. package/dist/src/components/MultilineTextInput.d.ts.map +1 -0
  16. package/dist/src/components/MultilineTextInput.js +607 -0
  17. package/dist/src/components/MultilineTextInput.js.map +1 -0
  18. package/dist/src/components/Overlay.d.ts +46 -0
  19. package/dist/src/components/Overlay.d.ts.map +1 -0
  20. package/dist/src/components/Overlay.js +11 -0
  21. package/dist/src/components/Overlay.js.map +1 -0
  22. package/dist/src/components/Static.d.ts +44 -0
  23. package/dist/src/components/Static.d.ts.map +1 -0
  24. package/dist/src/components/Static.js +53 -0
  25. package/dist/src/components/Static.js.map +1 -0
  26. package/dist/src/components/TextInput.d.ts +53 -0
  27. package/dist/src/components/TextInput.d.ts.map +1 -0
  28. package/dist/src/components/TextInput.js +210 -0
  29. package/dist/src/components/TextInput.js.map +1 -0
  30. package/dist/src/components/index.d.ts +7 -0
  31. package/dist/src/components/index.d.ts.map +1 -0
  32. package/dist/src/components/index.js +7 -0
  33. package/dist/src/components/index.js.map +1 -0
  34. package/dist/src/components/text-editing.d.ts +62 -0
  35. package/dist/src/components/text-editing.d.ts.map +1 -0
  36. package/dist/src/components/text-editing.js +385 -0
  37. package/dist/src/components/text-editing.js.map +1 -0
  38. package/dist/src/console/ConsoleCapture.d.ts +36 -0
  39. package/dist/src/console/ConsoleCapture.d.ts.map +1 -0
  40. package/dist/src/console/ConsoleCapture.js +210 -0
  41. package/dist/src/console/ConsoleCapture.js.map +1 -0
  42. package/dist/src/console/ConsolePopover.d.ts +18 -0
  43. package/dist/src/console/ConsolePopover.d.ts.map +1 -0
  44. package/dist/src/console/ConsolePopover.js +324 -0
  45. package/dist/src/console/ConsolePopover.js.map +1 -0
  46. package/dist/src/console/clipboard.d.ts +10 -0
  47. package/dist/src/console/clipboard.d.ts.map +1 -0
  48. package/dist/src/console/clipboard.js +74 -0
  49. package/dist/src/console/clipboard.js.map +1 -0
  50. package/dist/src/console/index.d.ts +5 -0
  51. package/dist/src/console/index.d.ts.map +1 -0
  52. package/dist/src/console/index.js +33 -0
  53. package/dist/src/console/index.js.map +1 -0
  54. package/dist/src/console/useConsole.d.ts +44 -0
  55. package/dist/src/console/useConsole.d.ts.map +1 -0
  56. package/dist/src/console/useConsole.js +91 -0
  57. package/dist/src/console/useConsole.js.map +1 -0
  58. package/dist/src/debug/DebugOverlay.d.ts +49 -0
  59. package/dist/src/debug/DebugOverlay.d.ts.map +1 -0
  60. package/dist/src/debug/DebugOverlay.js +438 -0
  61. package/dist/src/debug/DebugOverlay.js.map +1 -0
  62. package/dist/src/debug/DiagnosticsPanel.d.ts.map +1 -1
  63. package/dist/src/debug/DiagnosticsPanel.js.map +1 -1
  64. package/dist/src/dev/Toast.d.ts +19 -0
  65. package/dist/src/dev/Toast.d.ts.map +1 -0
  66. package/dist/src/dev/Toast.js +72 -0
  67. package/dist/src/dev/Toast.js.map +1 -0
  68. package/dist/src/dev/index.d.ts +2 -0
  69. package/dist/src/dev/index.d.ts.map +1 -0
  70. package/dist/src/dev/index.js +3 -0
  71. package/dist/src/dev/index.js.map +1 -0
  72. package/dist/src/dev.d.ts +114 -0
  73. package/dist/src/dev.d.ts.map +1 -0
  74. package/dist/src/dev.js +373 -0
  75. package/dist/src/dev.js.map +1 -0
  76. package/dist/src/highlight.d.ts +3 -3
  77. package/dist/src/highlight.d.ts.map +1 -1
  78. package/dist/src/highlight.js.map +1 -1
  79. package/dist/src/hmr-plugin.d.ts +2 -0
  80. package/dist/src/hmr-plugin.d.ts.map +1 -0
  81. package/dist/src/hmr-plugin.js +53 -0
  82. package/dist/src/hmr-plugin.js.map +1 -0
  83. package/dist/src/hooks/index.d.ts +4 -0
  84. package/dist/src/hooks/index.d.ts.map +1 -1
  85. package/dist/src/hooks/index.js +2 -0
  86. package/dist/src/hooks/index.js.map +1 -1
  87. package/dist/src/hooks/use-keyboard.d.ts +11 -0
  88. package/dist/src/hooks/use-keyboard.d.ts.map +1 -1
  89. package/dist/src/hooks/use-keyboard.js +22 -4
  90. package/dist/src/hooks/use-keyboard.js.map +1 -1
  91. package/dist/src/hooks/use-mouse.d.ts +24 -0
  92. package/dist/src/hooks/use-mouse.d.ts.map +1 -0
  93. package/dist/src/hooks/use-mouse.js +41 -0
  94. package/dist/src/hooks/use-mouse.js.map +1 -0
  95. package/dist/src/hooks/use-paste.d.ts +11 -0
  96. package/dist/src/hooks/use-paste.d.ts.map +1 -1
  97. package/dist/src/hooks/use-paste.js +17 -3
  98. package/dist/src/hooks/use-paste.js.map +1 -1
  99. package/dist/src/hooks/use-scroll.d.ts +79 -0
  100. package/dist/src/hooks/use-scroll.d.ts.map +1 -0
  101. package/dist/src/hooks/use-scroll.js +239 -0
  102. package/dist/src/hooks/use-scroll.js.map +1 -0
  103. package/dist/src/hooks/useFrameStats.js.map +1 -1
  104. package/dist/src/hosts/base.d.ts +62 -1
  105. package/dist/src/hosts/base.d.ts.map +1 -1
  106. package/dist/src/hosts/base.js +118 -5
  107. package/dist/src/hosts/base.js.map +1 -1
  108. package/dist/src/hosts/box.d.ts +7 -7
  109. package/dist/src/hosts/box.d.ts.map +1 -1
  110. package/dist/src/hosts/box.js +30 -23
  111. package/dist/src/hosts/box.js.map +1 -1
  112. package/dist/src/hosts/canvas.d.ts +8 -8
  113. package/dist/src/hosts/canvas.d.ts.map +1 -1
  114. package/dist/src/hosts/canvas.js +13 -22
  115. package/dist/src/hosts/canvas.js.map +1 -1
  116. package/dist/src/hosts/codeblock.d.ts +7 -7
  117. package/dist/src/hosts/codeblock.d.ts.map +1 -1
  118. package/dist/src/hosts/codeblock.js +11 -20
  119. package/dist/src/hosts/codeblock.js.map +1 -1
  120. package/dist/src/hosts/flex-container.d.ts +45 -0
  121. package/dist/src/hosts/flex-container.d.ts.map +1 -0
  122. package/dist/src/hosts/flex-container.js +90 -0
  123. package/dist/src/hosts/flex-container.js.map +1 -0
  124. package/dist/src/hosts/hstack.d.ts +6 -11
  125. package/dist/src/hosts/hstack.d.ts.map +1 -1
  126. package/dist/src/hosts/hstack.js +6 -41
  127. package/dist/src/hosts/hstack.js.map +1 -1
  128. package/dist/src/hosts/index.d.ts +4 -0
  129. package/dist/src/hosts/index.d.ts.map +1 -1
  130. package/dist/src/hosts/index.js +10 -0
  131. package/dist/src/hosts/index.js.map +1 -1
  132. package/dist/src/hosts/overlay-item.d.ts +32 -0
  133. package/dist/src/hosts/overlay-item.d.ts.map +1 -0
  134. package/dist/src/hosts/overlay-item.js +54 -0
  135. package/dist/src/hosts/overlay-item.js.map +1 -0
  136. package/dist/src/hosts/overlay.d.ts +30 -0
  137. package/dist/src/hosts/overlay.d.ts.map +1 -0
  138. package/dist/src/hosts/overlay.js +105 -0
  139. package/dist/src/hosts/overlay.js.map +1 -0
  140. package/dist/src/hosts/scroll.d.ts +56 -0
  141. package/dist/src/hosts/scroll.d.ts.map +1 -0
  142. package/dist/src/hosts/scroll.js +204 -0
  143. package/dist/src/hosts/scroll.js.map +1 -0
  144. package/dist/src/hosts/single-child.d.ts +16 -0
  145. package/dist/src/hosts/single-child.d.ts.map +1 -0
  146. package/dist/src/hosts/single-child.js +45 -0
  147. package/dist/src/hosts/single-child.js.map +1 -0
  148. package/dist/src/hosts/spacer.d.ts.map +1 -1
  149. package/dist/src/hosts/spacer.js +7 -3
  150. package/dist/src/hosts/spacer.js.map +1 -1
  151. package/dist/src/hosts/text.d.ts +9 -6
  152. package/dist/src/hosts/text.d.ts.map +1 -1
  153. package/dist/src/hosts/text.js +49 -22
  154. package/dist/src/hosts/text.js.map +1 -1
  155. package/dist/src/hosts/vstack.d.ts +6 -11
  156. package/dist/src/hosts/vstack.d.ts.map +1 -1
  157. package/dist/src/hosts/vstack.js +6 -41
  158. package/dist/src/hosts/vstack.js.map +1 -1
  159. package/dist/src/hosts/zstack.d.ts.map +1 -1
  160. package/dist/src/hosts/zstack.js +16 -5
  161. package/dist/src/hosts/zstack.js.map +1 -1
  162. package/dist/src/index.d.ts +9 -2
  163. package/dist/src/index.d.ts.map +1 -1
  164. package/dist/src/index.js +10 -2
  165. package/dist/src/index.js.map +1 -1
  166. package/dist/src/inline/index.d.ts.map +1 -1
  167. package/dist/src/inline/index.js.map +1 -1
  168. package/dist/src/motion/color-motion-value.d.ts.map +1 -1
  169. package/dist/src/motion/color-motion-value.js.map +1 -1
  170. package/dist/src/motion/color.d.ts +1 -29
  171. package/dist/src/motion/color.d.ts.map +1 -1
  172. package/dist/src/motion/color.js +2 -170
  173. package/dist/src/motion/color.js.map +1 -1
  174. package/dist/src/motion/color.test.js.map +1 -1
  175. package/dist/src/motion/event-emitter.d.ts.map +1 -1
  176. package/dist/src/motion/event-emitter.js.map +1 -1
  177. package/dist/src/motion/frame.js.map +1 -1
  178. package/dist/src/motion/hooks.d.ts.map +1 -1
  179. package/dist/src/motion/hooks.js +8 -3
  180. package/dist/src/motion/hooks.js.map +1 -1
  181. package/dist/src/motion/index.d.ts.map +1 -1
  182. package/dist/src/motion/index.js.map +1 -1
  183. package/dist/src/motion/motion-value.d.ts.map +1 -1
  184. package/dist/src/motion/motion-value.js.map +1 -1
  185. package/dist/src/motion/motion-value.test.js.map +1 -1
  186. package/dist/src/motion/spring-math.d.ts +6 -1
  187. package/dist/src/motion/spring-math.d.ts.map +1 -1
  188. package/dist/src/motion/spring-math.js +6 -1
  189. package/dist/src/motion/spring-math.js.map +1 -1
  190. package/dist/src/motion/types.d.ts.map +1 -1
  191. package/dist/src/motion/types.js.map +1 -1
  192. package/dist/src/profiler.js.map +1 -1
  193. package/dist/src/reconciler/host-config.d.ts +5 -5
  194. package/dist/src/reconciler/host-config.d.ts.map +1 -1
  195. package/dist/src/reconciler/host-config.js +43 -51
  196. package/dist/src/reconciler/host-config.js.map +1 -1
  197. package/dist/src/reconciler/noop-methods.d.ts +29 -0
  198. package/dist/src/reconciler/noop-methods.d.ts.map +1 -0
  199. package/dist/src/reconciler/noop-methods.js +43 -0
  200. package/dist/src/reconciler/noop-methods.js.map +1 -0
  201. package/dist/src/reconciler/types.d.ts +68 -14
  202. package/dist/src/reconciler/types.d.ts.map +1 -1
  203. package/dist/src/remote/Procedures.d.ts +22 -0
  204. package/dist/src/remote/Procedures.d.ts.map +1 -0
  205. package/dist/src/remote/Procedures.js +42 -0
  206. package/dist/src/remote/Procedures.js.map +1 -0
  207. package/dist/src/remote/Router.d.ts +20 -0
  208. package/dist/src/remote/Router.d.ts.map +1 -0
  209. package/dist/src/remote/Router.js +26 -0
  210. package/dist/src/remote/Router.js.map +1 -0
  211. package/dist/src/remote/Server.d.ts +6 -0
  212. package/dist/src/remote/Server.d.ts.map +1 -0
  213. package/dist/src/remote/Server.js +53 -0
  214. package/dist/src/remote/Server.js.map +1 -0
  215. package/dist/src/remote/index.d.ts +18 -0
  216. package/dist/src/remote/index.d.ts.map +1 -0
  217. package/dist/src/remote/index.js +74 -0
  218. package/dist/src/remote/index.js.map +1 -0
  219. package/dist/src/renderer/core/FrameBuilder.d.ts +18 -0
  220. package/dist/src/renderer/core/FrameBuilder.d.ts.map +1 -0
  221. package/dist/src/renderer/core/FrameBuilder.js +38 -0
  222. package/dist/src/renderer/core/FrameBuilder.js.map +1 -0
  223. package/dist/src/renderer/core/RendererState.d.ts +41 -0
  224. package/dist/src/renderer/core/RendererState.d.ts.map +1 -0
  225. package/dist/src/renderer/core/RendererState.js +70 -0
  226. package/dist/src/renderer/core/RendererState.js.map +1 -0
  227. package/dist/src/renderer/core/index.d.ts +3 -0
  228. package/dist/src/renderer/core/index.d.ts.map +1 -0
  229. package/dist/src/renderer/core/index.js +3 -0
  230. package/dist/src/renderer/core/index.js.map +1 -0
  231. package/dist/src/renderer/input/InputProcessor.d.ts +25 -0
  232. package/dist/src/renderer/input/InputProcessor.d.ts.map +1 -0
  233. package/dist/src/renderer/input/InputProcessor.js +81 -0
  234. package/dist/src/renderer/input/InputProcessor.js.map +1 -0
  235. package/dist/src/renderer/input/index.d.ts +2 -0
  236. package/dist/src/renderer/input/index.d.ts.map +1 -0
  237. package/dist/src/renderer/input/index.js +2 -0
  238. package/dist/src/renderer/input/index.js.map +1 -0
  239. package/dist/src/renderer/lifecycle/EventBus.d.ts +41 -0
  240. package/dist/src/renderer/lifecycle/EventBus.d.ts.map +1 -0
  241. package/dist/src/renderer/lifecycle/EventBus.js +78 -0
  242. package/dist/src/renderer/lifecycle/EventBus.js.map +1 -0
  243. package/dist/src/renderer/lifecycle/ResizeManager.d.ts +34 -0
  244. package/dist/src/renderer/lifecycle/ResizeManager.d.ts.map +1 -0
  245. package/dist/src/renderer/lifecycle/ResizeManager.js +47 -0
  246. package/dist/src/renderer/lifecycle/ResizeManager.js.map +1 -0
  247. package/dist/src/renderer/lifecycle/TerminalSetup.d.ts +36 -0
  248. package/dist/src/renderer/lifecycle/TerminalSetup.d.ts.map +1 -0
  249. package/dist/src/renderer/lifecycle/TerminalSetup.js +82 -0
  250. package/dist/src/renderer/lifecycle/TerminalSetup.js.map +1 -0
  251. package/dist/src/renderer/lifecycle/index.d.ts +4 -0
  252. package/dist/src/renderer/lifecycle/index.d.ts.map +1 -0
  253. package/dist/src/renderer/lifecycle/index.js +4 -0
  254. package/dist/src/renderer/lifecycle/index.js.map +1 -0
  255. package/dist/src/renderer/modes/FullscreenRenderer.d.ts +12 -0
  256. package/dist/src/renderer/modes/FullscreenRenderer.d.ts.map +1 -0
  257. package/dist/src/renderer/modes/FullscreenRenderer.js +52 -0
  258. package/dist/src/renderer/modes/FullscreenRenderer.js.map +1 -0
  259. package/dist/src/renderer/modes/InlineRenderer.d.ts +22 -0
  260. package/dist/src/renderer/modes/InlineRenderer.d.ts.map +1 -0
  261. package/dist/src/renderer/modes/InlineRenderer.js +154 -0
  262. package/dist/src/renderer/modes/InlineRenderer.js.map +1 -0
  263. package/dist/src/renderer/modes/RendererMode.d.ts +42 -0
  264. package/dist/src/renderer/modes/RendererMode.d.ts.map +1 -0
  265. package/dist/src/renderer/modes/RendererMode.js +2 -0
  266. package/dist/src/renderer/modes/RendererMode.js.map +1 -0
  267. package/dist/src/renderer/modes/StaticContentRenderer.d.ts +25 -0
  268. package/dist/src/renderer/modes/StaticContentRenderer.d.ts.map +1 -0
  269. package/dist/src/renderer/modes/StaticContentRenderer.js +47 -0
  270. package/dist/src/renderer/modes/StaticContentRenderer.js.map +1 -0
  271. package/dist/src/renderer/modes/index.d.ts +5 -0
  272. package/dist/src/renderer/modes/index.d.ts.map +1 -0
  273. package/dist/src/renderer/modes/index.js +4 -0
  274. package/dist/src/renderer/modes/index.js.map +1 -0
  275. package/dist/src/renderer-context.d.ts +9 -0
  276. package/dist/src/renderer-context.d.ts.map +1 -0
  277. package/dist/src/renderer-context.js +22 -0
  278. package/dist/src/renderer-context.js.map +1 -0
  279. package/dist/src/renderer-types.d.ts +103 -0
  280. package/dist/src/renderer-types.d.ts.map +1 -0
  281. package/dist/src/renderer-types.js +2 -0
  282. package/dist/src/renderer-types.js.map +1 -0
  283. package/dist/src/renderer.d.ts +4 -86
  284. package/dist/src/renderer.d.ts.map +1 -1
  285. package/dist/src/renderer.js +213 -384
  286. package/dist/src/renderer.js.map +1 -1
  287. package/dist/src/test/index.d.ts.map +1 -1
  288. package/dist/src/test/index.js.map +1 -1
  289. package/dist/src/test/mock-streams.d.ts.map +1 -1
  290. package/dist/src/test/mock-streams.js.map +1 -1
  291. package/dist/src/test/render-tui.d.ts.map +1 -1
  292. package/dist/src/test/render-tui.js +2 -5
  293. package/dist/src/test/render-tui.js.map +1 -1
  294. package/dist/src/trace/SpanTree.d.ts.map +1 -1
  295. package/dist/src/trace/SpanTree.js +21 -11
  296. package/dist/src/trace/SpanTree.js.map +1 -1
  297. package/dist/src/trace/format-value.d.ts +15 -0
  298. package/dist/src/trace/format-value.d.ts.map +1 -0
  299. package/dist/src/trace/format-value.js +77 -0
  300. package/dist/src/trace/format-value.js.map +1 -0
  301. package/dist/src/trace/index.d.ts.map +1 -1
  302. package/dist/src/trace/index.js.map +1 -1
  303. package/dist/src/trace/location.js +1 -1
  304. package/dist/src/trace/location.js.map +1 -1
  305. package/dist/src/trace/span-processor.d.ts.map +1 -1
  306. package/dist/src/trace/span-processor.js.map +1 -1
  307. package/dist/src/trace/span-state.d.ts +19 -2
  308. package/dist/src/trace/span-state.d.ts.map +1 -1
  309. package/dist/src/trace/span-state.js +62 -31
  310. package/dist/src/trace/span-state.js.map +1 -1
  311. package/dist/src/trace/tui-logger.js.map +1 -1
  312. package/dist/src/utils/border.d.ts +1 -1
  313. package/dist/src/utils/border.d.ts.map +1 -1
  314. package/dist/src/utils/border.js +6 -0
  315. package/dist/src/utils/border.js.map +1 -1
  316. package/dist/src/utils/flex-layout.d.ts +2 -1
  317. package/dist/src/utils/flex-layout.d.ts.map +1 -1
  318. package/dist/src/utils/flex-layout.js +22 -33
  319. package/dist/src/utils/flex-layout.js.map +1 -1
  320. package/dist/src/utils/index.d.ts +1 -1
  321. package/dist/src/utils/index.d.ts.map +1 -1
  322. package/dist/src/utils/index.js +1 -1
  323. package/dist/src/utils/index.js.map +1 -1
  324. package/dist/src/utils/padding.d.ts.map +1 -1
  325. package/dist/src/utils/padding.js.map +1 -1
  326. package/dist/src/utils/styles.d.ts +20 -1
  327. package/dist/src/utils/styles.d.ts.map +1 -1
  328. package/dist/src/utils/styles.js +36 -1
  329. package/dist/src/utils/styles.js.map +1 -1
  330. package/dist/src/visualize/index.d.ts +8 -19
  331. package/dist/src/visualize/index.d.ts.map +1 -1
  332. package/dist/src/visualize/index.js +11 -25
  333. package/dist/src/visualize/index.js.map +1 -1
  334. package/dist/tsconfig.tsbuildinfo +1 -1
  335. package/jsx-dev-runtime.ts +5 -0
  336. package/jsx-runtime.ts +54 -0
  337. package/package.json +124 -92
  338. package/src/codeblock.tsx +34 -34
  339. package/src/components/Divider.tsx +23 -0
  340. package/src/components/Markdown.tsx +380 -0
  341. package/src/components/MultilineTextInput.tsx +749 -0
  342. package/src/components/Overlay.tsx +56 -0
  343. package/src/components/Static.tsx +68 -0
  344. package/src/components/TextInput.tsx +285 -0
  345. package/src/components/index.ts +6 -0
  346. package/src/components/text-editing.ts +464 -0
  347. package/src/console/ConsoleCapture.ts +272 -0
  348. package/src/console/ConsolePopover.tsx +487 -0
  349. package/src/console/clipboard.ts +81 -0
  350. package/src/console/index.ts +42 -0
  351. package/src/console/useConsole.ts +129 -0
  352. package/src/debug/DebugOverlay.ts +557 -0
  353. package/src/debug/DiagnosticsPanel.tsx +27 -27
  354. package/src/dev/Toast.tsx +117 -0
  355. package/src/dev/index.ts +2 -0
  356. package/src/dev.tsx +489 -0
  357. package/src/highlight.ts +46 -46
  358. package/src/hmr-plugin.ts +61 -0
  359. package/src/hooks/index.ts +4 -0
  360. package/src/hooks/use-keyboard.ts +44 -24
  361. package/src/hooks/use-mouse.ts +51 -0
  362. package/src/hooks/use-paste.ts +21 -6
  363. package/src/hooks/use-scroll.ts +386 -0
  364. package/src/hooks/useFrameStats.ts +17 -17
  365. package/src/hosts/base.ts +180 -59
  366. package/src/hosts/box.ts +117 -94
  367. package/src/hosts/canvas.ts +137 -141
  368. package/src/hosts/codeblock.ts +117 -133
  369. package/src/hosts/flex-container.ts +124 -0
  370. package/src/hosts/hstack.ts +11 -59
  371. package/src/hosts/index.ts +24 -14
  372. package/src/hosts/overlay-item.ts +72 -0
  373. package/src/hosts/overlay.ts +125 -0
  374. package/src/hosts/scroll.ts +255 -0
  375. package/src/hosts/single-child.ts +52 -0
  376. package/src/hosts/spacer.ts +30 -26
  377. package/src/hosts/text.ts +198 -164
  378. package/src/hosts/vstack.ts +11 -59
  379. package/src/hosts/zstack.ts +79 -67
  380. package/src/index.ts +44 -19
  381. package/src/inline/index.tsx +123 -123
  382. package/src/motion/color-motion-value.ts +67 -67
  383. package/src/motion/color.test.ts +107 -107
  384. package/src/motion/color.ts +9 -190
  385. package/src/motion/event-emitter.ts +20 -20
  386. package/src/motion/frame.ts +35 -35
  387. package/src/motion/hooks.ts +144 -139
  388. package/src/motion/index.ts +10 -10
  389. package/src/motion/motion-value.test.ts +207 -207
  390. package/src/motion/motion-value.ts +112 -112
  391. package/src/motion/spring-math.ts +88 -83
  392. package/src/motion/types.ts +25 -25
  393. package/src/profiler.ts +50 -50
  394. package/src/reconciler/host-config.ts +152 -174
  395. package/src/reconciler/noop-methods.ts +55 -0
  396. package/src/reconciler/types.ts +112 -46
  397. package/src/remote/Procedures.ts +52 -0
  398. package/src/remote/Router.ts +58 -0
  399. package/src/remote/Server.ts +76 -0
  400. package/src/remote/index.ts +90 -0
  401. package/src/renderer/core/FrameBuilder.ts +49 -0
  402. package/src/renderer/core/RendererState.ts +80 -0
  403. package/src/renderer/core/index.ts +2 -0
  404. package/src/renderer/input/InputProcessor.ts +94 -0
  405. package/src/renderer/input/index.ts +1 -0
  406. package/src/renderer/lifecycle/EventBus.ts +90 -0
  407. package/src/renderer/lifecycle/ResizeManager.ts +65 -0
  408. package/src/renderer/lifecycle/TerminalSetup.ts +105 -0
  409. package/src/renderer/lifecycle/index.ts +3 -0
  410. package/src/renderer/modes/FullscreenRenderer.ts +53 -0
  411. package/src/renderer/modes/InlineRenderer.ts +178 -0
  412. package/src/renderer/modes/RendererMode.ts +46 -0
  413. package/src/renderer/modes/StaticContentRenderer.ts +56 -0
  414. package/src/renderer/modes/index.ts +4 -0
  415. package/src/renderer-context.ts +27 -0
  416. package/src/renderer-types.ts +109 -0
  417. package/src/renderer.ts +391 -642
  418. package/src/test/index.ts +5 -5
  419. package/src/test/mock-streams.ts +115 -115
  420. package/src/test/render-tui.ts +84 -87
  421. package/src/utils/border.ts +79 -73
  422. package/src/utils/flex-layout.ts +80 -93
  423. package/src/utils/index.ts +1 -1
  424. package/src/utils/padding.ts +27 -27
  425. package/src/utils/styles.ts +50 -7
  426. package/src/visualize/index.tsx +225 -240
  427. package/dist/src/output.d.ts +0 -47
  428. package/dist/src/output.d.ts.map +0 -1
  429. package/dist/src/output.js +0 -125
  430. package/dist/src/output.js.map +0 -1
  431. package/dist/src/terminal.d.ts +0 -37
  432. package/dist/src/terminal.d.ts.map +0 -1
  433. package/dist/src/terminal.js +0 -65
  434. package/dist/src/terminal.js.map +0 -1
  435. package/src/output.ts +0 -156
  436. package/src/terminal.ts +0 -67
  437. package/src/trace/SpanTree.tsx +0 -195
  438. package/src/trace/index.tsx +0 -205
  439. package/src/trace/location.ts +0 -90
  440. package/src/trace/span-processor.ts +0 -65
  441. package/src/trace/span-state.ts +0 -286
  442. package/src/trace/tui-logger.ts +0 -72
@@ -0,0 +1,5 @@
1
+ // Re-export React's jsx dev runtime functions
2
+ export { Fragment, jsxDEV } from "react/jsx-dev-runtime"
3
+
4
+ // Re-export JSX namespace from jsx-runtime
5
+ export type { JSX } from "./jsx-runtime.js"
package/jsx-runtime.ts ADDED
@@ -0,0 +1,54 @@
1
+ // Re-export React's jsx runtime functions
2
+ export { Fragment, jsx, jsxs } from "react/jsx-runtime"
3
+
4
+ // JSX types (namespace is type-only, but we export a dummy runtime value for bundlers)
5
+ import type * as React from "react"
6
+ import type { TextProps } from "./src/hosts/text.js"
7
+ import type { SpacerProps } from "./src/hosts/spacer.js"
8
+ import type { VStackProps } from "./src/hosts/vstack.js"
9
+ import type { HStackProps } from "./src/hosts/hstack.js"
10
+ import type { ZStackProps } from "./src/hosts/zstack.js"
11
+ import type { BoxProps } from "./src/hosts/box.js"
12
+ import type { CanvasProps } from "./src/hosts/canvas.js"
13
+ import type { CodeBlockProps } from "./src/hosts/codeblock.js"
14
+ import type { ScrollProps } from "./src/hosts/scroll.js"
15
+ import type { OverlayProps } from "./src/hosts/overlay.js"
16
+ import type { OverlayItemProps } from "./src/hosts/overlay-item.js"
17
+
18
+ // Runtime placeholder (the actual JSX namespace below is type-only)
19
+ const JSX = {}
20
+ export { JSX }
21
+
22
+ export declare namespace JSX {
23
+ export type Element = React.ReactNode
24
+
25
+ export interface ElementClass extends React.ComponentClass<any> {
26
+ render(): React.ReactNode
27
+ }
28
+
29
+ export interface ElementAttributesProperty {
30
+ props: {}
31
+ }
32
+
33
+ export interface ElementChildrenAttribute {
34
+ children: {}
35
+ }
36
+
37
+ export interface IntrinsicAttributes extends React.Attributes {}
38
+
39
+ // Extend React's intrinsic elements but override our custom ones
40
+ export interface IntrinsicElements extends React.JSX.IntrinsicElements {
41
+ // Our custom TUI elements (override any React conflicts)
42
+ text: TextProps & { children?: React.ReactNode }
43
+ spacer: SpacerProps
44
+ vstack: VStackProps & { children?: React.ReactNode; __static?: boolean }
45
+ hstack: HStackProps & { children?: React.ReactNode }
46
+ zstack: ZStackProps & { children?: React.ReactNode }
47
+ box: BoxProps & { children?: React.ReactNode }
48
+ canvas: CanvasProps
49
+ codeblock: CodeBlockProps
50
+ scroll: ScrollProps & { children?: React.ReactNode }
51
+ overlay: OverlayProps & { children?: React.ReactNode }
52
+ overlayItem: OverlayItemProps & { children?: React.ReactNode }
53
+ }
54
+ }
package/package.json CHANGED
@@ -1,94 +1,126 @@
1
1
  {
2
- "name": "@effect-tui/react",
3
- "version": "0.1.3",
4
- "description": "React bindings for @effect-tui/core",
5
- "type": "module",
6
- "files": [
7
- "dist",
8
- "src",
9
- "README.md",
10
- "LICENSE"
11
- ],
12
- "exports": {
13
- ".": {
14
- "import": "./dist/src/index.js",
15
- "types": "./dist/src/index.d.ts"
16
- },
17
- "./test": {
18
- "import": "./dist/src/test/index.js",
19
- "types": "./dist/src/test/index.d.ts"
20
- },
21
- "./visualize": {
22
- "import": "./dist/src/visualize/index.js",
23
- "types": "./dist/src/visualize/index.d.ts"
24
- },
25
- "./trace": {
26
- "import": "./dist/src/trace/index.js",
27
- "types": "./dist/src/trace/index.d.ts"
28
- },
29
- "./inline": {
30
- "import": "./dist/src/inline/index.js",
31
- "types": "./dist/src/inline/index.d.ts"
32
- },
33
- "./jsx-runtime": {
34
- "import": "./dist/jsx-runtime.js",
35
- "types": "./dist/jsx-runtime.d.ts"
36
- },
37
- "./jsx-dev-runtime": {
38
- "import": "./dist/jsx-dev-runtime.js",
39
- "types": "./dist/jsx-dev-runtime.d.ts"
40
- }
41
- },
42
- "types": "./dist/src/index.d.ts",
43
- "keywords": [
44
- "terminal",
45
- "tui",
46
- "effect",
47
- "react",
48
- "cli"
49
- ],
50
- "author": "Kit Langton",
51
- "license": "MIT",
52
- "repository": {
53
- "type": "git",
54
- "url": "https://github.com/kitlangton/effect-tui.git",
55
- "directory": "packages/effect-tui-react"
56
- },
57
- "homepage": "https://github.com/kitlangton/effect-tui",
58
- "bugs": "https://github.com/kitlangton/effect-tui/issues",
59
- "publishConfig": {
60
- "access": "public",
61
- "tag": "alpha"
62
- },
63
- "scripts": {
64
- "build": "tsc -p .",
65
- "typecheck": "tsc -p . --noEmit",
66
- "test": "vitest run",
67
- "test:watch": "vitest",
68
- "format": "biome format --write .",
69
- "format:check": "biome format .",
70
- "prepublishOnly": "bun run typecheck && bun run build"
71
- },
72
- "dependencies": {
73
- "@effect/opentelemetry": "^0.59.1",
74
- "@opentelemetry/api": "^1.9.0",
75
- "@opentelemetry/sdk-trace-base": "^2.2.0",
76
- "@effect-tui/core": "^0.1.0-alpha.1",
77
- "react-reconciler": "^0.33.0",
78
- "shiki": "^3.17.0"
79
- },
80
- "peerDependencies": {
81
- "effect": "^3.0.0",
82
- "react": "^18.0.0 || ^19.0.0"
83
- },
84
- "devDependencies": {
85
- "@effect/vitest": "^0.27.0",
86
- "@types/node": "^24.10.1",
87
- "@types/react": "^19.0.0",
88
- "@types/react-reconciler": "^0.32.3",
89
- "effect": "^3.19.8",
90
- "react": "^19.0.0",
91
- "typescript": "^5.9.3",
92
- "vitest": "^4.0.14"
93
- }
2
+ "name": "@effect-tui/react",
3
+ "version": "0.1.4",
4
+ "description": "React bindings for @effect-tui/core",
5
+ "type": "module",
6
+ "files": [
7
+ "dist",
8
+ "src",
9
+ "jsx-runtime.ts",
10
+ "jsx-dev-runtime.ts",
11
+ "README.md",
12
+ "LICENSE"
13
+ ],
14
+ "exports": {
15
+ ".": {
16
+ "bun": "./src/index.ts",
17
+ "import": "./dist/src/index.js",
18
+ "types": "./dist/src/index.d.ts"
19
+ },
20
+ "./test": {
21
+ "bun": "./src/test/index.ts",
22
+ "import": "./dist/src/test/index.js",
23
+ "types": "./dist/src/test/index.d.ts"
24
+ },
25
+ "./visualize": {
26
+ "bun": "./src/visualize/index.tsx",
27
+ "import": "./dist/src/visualize/index.js",
28
+ "types": "./dist/src/visualize/index.d.ts"
29
+ },
30
+ "./inline": {
31
+ "bun": "./src/inline/index.tsx",
32
+ "import": "./dist/src/inline/index.js",
33
+ "types": "./dist/src/inline/index.d.ts"
34
+ },
35
+ "./console": {
36
+ "bun": "./src/console/index.ts",
37
+ "import": "./dist/src/console/index.js",
38
+ "types": "./dist/src/console/index.d.ts"
39
+ },
40
+ "./remote": {
41
+ "bun": "./src/remote/index.ts",
42
+ "import": "./dist/src/remote/index.js",
43
+ "types": "./dist/src/remote/index.d.ts"
44
+ },
45
+ "./jsx-runtime": {
46
+ "bun": "./jsx-runtime.ts",
47
+ "import": "./dist/jsx-runtime.js",
48
+ "types": "./dist/jsx-runtime.d.ts"
49
+ },
50
+ "./jsx-dev-runtime": {
51
+ "bun": "./jsx-dev-runtime.ts",
52
+ "import": "./dist/jsx-dev-runtime.js",
53
+ "types": "./dist/jsx-dev-runtime.d.ts"
54
+ }
55
+ },
56
+ "types": "./dist/src/index.d.ts",
57
+ "keywords": [
58
+ "terminal",
59
+ "tui",
60
+ "effect",
61
+ "react",
62
+ "cli"
63
+ ],
64
+ "author": "Kit Langton",
65
+ "license": "MIT",
66
+ "repository": {
67
+ "type": "git",
68
+ "url": "https://github.com/kitlangton/effect-tui.git",
69
+ "directory": "packages/effect-tui-react"
70
+ },
71
+ "homepage": "https://github.com/kitlangton/effect-tui",
72
+ "bugs": "https://github.com/kitlangton/effect-tui/issues",
73
+ "publishConfig": {
74
+ "access": "public"
75
+ },
76
+ "scripts": {
77
+ "build": "tsc -p .",
78
+ "typecheck": "tsc -p . --noEmit",
79
+ "test": "vitest run",
80
+ "test:watch": "vitest",
81
+ "format": "biome format --write .",
82
+ "format:check": "biome format .",
83
+ "prepublishOnly": "bun run typecheck && bun run build"
84
+ },
85
+ "dependencies": {
86
+ "@effect-tui/core": "workspace:^",
87
+ "@effect/platform": "^0.94.0",
88
+ "@effect/platform-bun": "^0.87.0",
89
+ "@effect/rpc": "^0.73.0",
90
+ "@parcel/watcher": "^2.5.1",
91
+ "react-reconciler": "^0.33.0",
92
+ "shiki": "^3.20.0"
93
+ },
94
+ "peerDependencies": {
95
+ "effect": "^3.19.13",
96
+ "react": "^19.2.3",
97
+ "@effect/opentelemetry": "^0.60.0",
98
+ "@opentelemetry/api": "^1.9.0",
99
+ "@opentelemetry/sdk-trace-base": "^2.2.0"
100
+ },
101
+ "peerDependenciesMeta": {
102
+ "@effect/opentelemetry": {
103
+ "optional": true
104
+ },
105
+ "@opentelemetry/api": {
106
+ "optional": true
107
+ },
108
+ "@opentelemetry/sdk-trace-base": {
109
+ "optional": true
110
+ }
111
+ },
112
+ "devDependencies": {
113
+ "@effect/opentelemetry": "^0.60.0",
114
+ "@effect/vitest": "^0.27.0",
115
+ "@opentelemetry/api": "^1.9.0",
116
+ "@opentelemetry/sdk-trace-base": "^2.2.0",
117
+ "@types/bun": "^1.3.5",
118
+ "@types/node": "^25.0.3",
119
+ "@types/react": "^19.0.0",
120
+ "@types/react-reconciler": "^0.32.3",
121
+ "effect": "^3.19.13",
122
+ "react": "^19.2.3",
123
+ "typescript": "^5.9.3",
124
+ "vitest": "^4.0.16"
125
+ }
94
126
  }
package/src/codeblock.tsx CHANGED
@@ -4,44 +4,44 @@ import { highlightCode, toPlainLines, type HighlightLine } from "./highlight.js"
4
4
  import type { CodeBlockProps as HostCodeBlockProps } from "./hosts/codeblock.js"
5
5
 
6
6
  export interface CodeBlockProps extends Omit<HostCodeBlockProps, "lines"> {
7
- code: string
8
- language?: BundledLanguage
9
- theme?: BundledTheme
7
+ code: string
8
+ language?: BundledLanguage
9
+ theme?: BundledTheme
10
10
  }
11
11
 
12
12
  export function CodeBlock({
13
- code,
14
- language = "ts",
15
- theme = "nord",
16
- lineNumbers = true,
17
- padding = 1,
18
- background,
19
- ...rest
13
+ code,
14
+ language = "ts",
15
+ theme = "nord",
16
+ lineNumbers = true,
17
+ padding = 1,
18
+ background,
19
+ ...rest
20
20
  }: CodeBlockProps) {
21
- const [lines, setLines] = useState<HighlightLine[]>(() => toPlainLines(code))
21
+ const [lines, setLines] = useState<HighlightLine[]>(() => toPlainLines(code))
22
22
 
23
- useEffect(() => {
24
- let cancelled = false
25
- highlightCode(code, { lang: language, theme })
26
- .then((result) => {
27
- if (!cancelled) setLines(result)
28
- })
29
- .catch((err) => {
30
- console.warn("CodeBlock: highlighting failed, falling back to plain text", err)
31
- if (!cancelled) setLines(toPlainLines(code))
32
- })
33
- return () => {
34
- cancelled = true
35
- }
36
- }, [code, language, theme])
23
+ useEffect(() => {
24
+ let cancelled = false
25
+ highlightCode(code, { lang: language, theme })
26
+ .then((result) => {
27
+ if (!cancelled) setLines(result)
28
+ })
29
+ .catch((err) => {
30
+ console.warn("CodeBlock: highlighting failed, falling back to plain text", err)
31
+ if (!cancelled) setLines(toPlainLines(code))
32
+ })
33
+ return () => {
34
+ cancelled = true
35
+ }
36
+ }, [code, language, theme])
37
37
 
38
- return (
39
- <codeblock
40
- {...(rest as Record<string, unknown>)}
41
- lines={lines}
42
- lineNumbers={lineNumbers as boolean}
43
- padding={padding as HostCodeBlockProps["padding"]}
44
- background={background as HostCodeBlockProps["background"]}
45
- />
46
- )
38
+ return (
39
+ <codeblock
40
+ {...(rest as Record<string, unknown>)}
41
+ lines={lines}
42
+ lineNumbers={lineNumbers as boolean}
43
+ padding={padding as HostCodeBlockProps["padding"]}
44
+ background={background as HostCodeBlockProps["background"]}
45
+ />
46
+ )
47
47
  }
@@ -0,0 +1,23 @@
1
+ import { useTerminalSize } from "../renderer-context.js"
2
+ import { Colors, type Color } from "@effect-tui/core"
3
+
4
+ export interface DividerProps {
5
+ /** Character to use for the divider (default: "─") */
6
+ char?: string
7
+ /** Foreground color (default: gray) */
8
+ fg?: Color
9
+ }
10
+
11
+ /**
12
+ * A full-width horizontal divider line.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * <Divider />
17
+ * <Divider char="═" fg={Colors.brightBlue} />
18
+ * ```
19
+ */
20
+ export function Divider({ char = "─", fg = Colors.gray(12) }: DividerProps) {
21
+ const { width } = useTerminalSize()
22
+ return <text fg={fg}>{char.repeat(width)}</text>
23
+ }