@effect-tui/react 0.1.1 → 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.
- package/dist/jsx-runtime.d.ts +13 -0
- package/dist/jsx-runtime.d.ts.map +1 -1
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/src/codeblock.d.ts.map +1 -1
- package/dist/src/codeblock.js.map +1 -1
- package/dist/src/components/Divider.d.ts +18 -0
- package/dist/src/components/Divider.d.ts.map +1 -0
- package/dist/src/components/Divider.js +17 -0
- package/dist/src/components/Divider.js.map +1 -0
- package/dist/src/components/Markdown.d.ts +66 -0
- package/dist/src/components/Markdown.d.ts.map +1 -0
- package/dist/src/components/Markdown.js +226 -0
- package/dist/src/components/Markdown.js.map +1 -0
- package/dist/src/components/MultilineTextInput.d.ts +65 -0
- package/dist/src/components/MultilineTextInput.d.ts.map +1 -0
- package/dist/src/components/MultilineTextInput.js +607 -0
- package/dist/src/components/MultilineTextInput.js.map +1 -0
- package/dist/src/components/Overlay.d.ts +46 -0
- package/dist/src/components/Overlay.d.ts.map +1 -0
- package/dist/src/components/Overlay.js +11 -0
- package/dist/src/components/Overlay.js.map +1 -0
- package/dist/src/components/Static.d.ts +44 -0
- package/dist/src/components/Static.d.ts.map +1 -0
- package/dist/src/components/Static.js +53 -0
- package/dist/src/components/Static.js.map +1 -0
- package/dist/src/components/TextInput.d.ts +53 -0
- package/dist/src/components/TextInput.d.ts.map +1 -0
- package/dist/src/components/TextInput.js +210 -0
- package/dist/src/components/TextInput.js.map +1 -0
- package/dist/src/components/index.d.ts +7 -0
- package/dist/src/components/index.d.ts.map +1 -0
- package/dist/src/components/index.js +7 -0
- package/dist/src/components/index.js.map +1 -0
- package/dist/src/components/text-editing.d.ts +62 -0
- package/dist/src/components/text-editing.d.ts.map +1 -0
- package/dist/src/components/text-editing.js +385 -0
- package/dist/src/components/text-editing.js.map +1 -0
- package/dist/src/console/ConsoleCapture.d.ts +36 -0
- package/dist/src/console/ConsoleCapture.d.ts.map +1 -0
- package/dist/src/console/ConsoleCapture.js +210 -0
- package/dist/src/console/ConsoleCapture.js.map +1 -0
- package/dist/src/console/ConsolePopover.d.ts +18 -0
- package/dist/src/console/ConsolePopover.d.ts.map +1 -0
- package/dist/src/console/ConsolePopover.js +324 -0
- package/dist/src/console/ConsolePopover.js.map +1 -0
- package/dist/src/console/clipboard.d.ts +10 -0
- package/dist/src/console/clipboard.d.ts.map +1 -0
- package/dist/src/console/clipboard.js +74 -0
- package/dist/src/console/clipboard.js.map +1 -0
- package/dist/src/console/index.d.ts +5 -0
- package/dist/src/console/index.d.ts.map +1 -0
- package/dist/src/console/index.js +33 -0
- package/dist/src/console/index.js.map +1 -0
- package/dist/src/console/useConsole.d.ts +44 -0
- package/dist/src/console/useConsole.d.ts.map +1 -0
- package/dist/src/console/useConsole.js +91 -0
- package/dist/src/console/useConsole.js.map +1 -0
- package/dist/src/debug/DebugOverlay.d.ts +49 -0
- package/dist/src/debug/DebugOverlay.d.ts.map +1 -0
- package/dist/src/debug/DebugOverlay.js +438 -0
- package/dist/src/debug/DebugOverlay.js.map +1 -0
- package/dist/src/debug/DiagnosticsPanel.d.ts.map +1 -1
- package/dist/src/debug/DiagnosticsPanel.js.map +1 -1
- package/dist/src/dev/Toast.d.ts +19 -0
- package/dist/src/dev/Toast.d.ts.map +1 -0
- package/dist/src/dev/Toast.js +72 -0
- package/dist/src/dev/Toast.js.map +1 -0
- package/dist/src/dev/index.d.ts +2 -0
- package/dist/src/dev/index.d.ts.map +1 -0
- package/dist/src/dev/index.js +3 -0
- package/dist/src/dev/index.js.map +1 -0
- package/dist/src/dev.d.ts +114 -0
- package/dist/src/dev.d.ts.map +1 -0
- package/dist/src/dev.js +373 -0
- package/dist/src/dev.js.map +1 -0
- package/dist/src/highlight.d.ts +3 -3
- package/dist/src/highlight.d.ts.map +1 -1
- package/dist/src/highlight.js.map +1 -1
- package/dist/src/hmr-plugin.d.ts +2 -0
- package/dist/src/hmr-plugin.d.ts.map +1 -0
- package/dist/src/hmr-plugin.js +53 -0
- package/dist/src/hmr-plugin.js.map +1 -0
- package/dist/src/hooks/index.d.ts +4 -0
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +2 -0
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/use-keyboard.d.ts +11 -0
- package/dist/src/hooks/use-keyboard.d.ts.map +1 -1
- package/dist/src/hooks/use-keyboard.js +22 -4
- package/dist/src/hooks/use-keyboard.js.map +1 -1
- package/dist/src/hooks/use-mouse.d.ts +24 -0
- package/dist/src/hooks/use-mouse.d.ts.map +1 -0
- package/dist/src/hooks/use-mouse.js +41 -0
- package/dist/src/hooks/use-mouse.js.map +1 -0
- package/dist/src/hooks/use-paste.d.ts +11 -0
- package/dist/src/hooks/use-paste.d.ts.map +1 -1
- package/dist/src/hooks/use-paste.js +17 -3
- package/dist/src/hooks/use-paste.js.map +1 -1
- package/dist/src/hooks/use-scroll.d.ts +79 -0
- package/dist/src/hooks/use-scroll.d.ts.map +1 -0
- package/dist/src/hooks/use-scroll.js +239 -0
- package/dist/src/hooks/use-scroll.js.map +1 -0
- package/dist/src/hooks/useFrameStats.js.map +1 -1
- package/dist/src/hosts/base.d.ts +62 -1
- package/dist/src/hosts/base.d.ts.map +1 -1
- package/dist/src/hosts/base.js +118 -5
- package/dist/src/hosts/base.js.map +1 -1
- package/dist/src/hosts/box.d.ts +7 -7
- package/dist/src/hosts/box.d.ts.map +1 -1
- package/dist/src/hosts/box.js +31 -26
- package/dist/src/hosts/box.js.map +1 -1
- package/dist/src/hosts/canvas.d.ts +8 -8
- package/dist/src/hosts/canvas.d.ts.map +1 -1
- package/dist/src/hosts/canvas.js +13 -22
- package/dist/src/hosts/canvas.js.map +1 -1
- package/dist/src/hosts/codeblock.d.ts +7 -7
- package/dist/src/hosts/codeblock.d.ts.map +1 -1
- package/dist/src/hosts/codeblock.js +11 -20
- package/dist/src/hosts/codeblock.js.map +1 -1
- package/dist/src/hosts/flex-container.d.ts +45 -0
- package/dist/src/hosts/flex-container.d.ts.map +1 -0
- package/dist/src/hosts/flex-container.js +90 -0
- package/dist/src/hosts/flex-container.js.map +1 -0
- package/dist/src/hosts/hstack.d.ts +6 -11
- package/dist/src/hosts/hstack.d.ts.map +1 -1
- package/dist/src/hosts/hstack.js +6 -41
- package/dist/src/hosts/hstack.js.map +1 -1
- package/dist/src/hosts/index.d.ts +4 -0
- package/dist/src/hosts/index.d.ts.map +1 -1
- package/dist/src/hosts/index.js +10 -0
- package/dist/src/hosts/index.js.map +1 -1
- package/dist/src/hosts/overlay-item.d.ts +32 -0
- package/dist/src/hosts/overlay-item.d.ts.map +1 -0
- package/dist/src/hosts/overlay-item.js +54 -0
- package/dist/src/hosts/overlay-item.js.map +1 -0
- package/dist/src/hosts/overlay.d.ts +30 -0
- package/dist/src/hosts/overlay.d.ts.map +1 -0
- package/dist/src/hosts/overlay.js +105 -0
- package/dist/src/hosts/overlay.js.map +1 -0
- package/dist/src/hosts/scroll.d.ts +56 -0
- package/dist/src/hosts/scroll.d.ts.map +1 -0
- package/dist/src/hosts/scroll.js +204 -0
- package/dist/src/hosts/scroll.js.map +1 -0
- package/dist/src/hosts/single-child.d.ts +16 -0
- package/dist/src/hosts/single-child.d.ts.map +1 -0
- package/dist/src/hosts/single-child.js +45 -0
- package/dist/src/hosts/single-child.js.map +1 -0
- package/dist/src/hosts/spacer.d.ts.map +1 -1
- package/dist/src/hosts/spacer.js +7 -3
- package/dist/src/hosts/spacer.js.map +1 -1
- package/dist/src/hosts/text.d.ts +9 -6
- package/dist/src/hosts/text.d.ts.map +1 -1
- package/dist/src/hosts/text.js +49 -22
- package/dist/src/hosts/text.js.map +1 -1
- package/dist/src/hosts/vstack.d.ts +6 -11
- package/dist/src/hosts/vstack.d.ts.map +1 -1
- package/dist/src/hosts/vstack.js +6 -41
- package/dist/src/hosts/vstack.js.map +1 -1
- package/dist/src/hosts/zstack.d.ts.map +1 -1
- package/dist/src/hosts/zstack.js +16 -5
- package/dist/src/hosts/zstack.js.map +1 -1
- package/dist/src/index.d.ts +9 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +10 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/inline/index.d.ts.map +1 -1
- package/dist/src/inline/index.js.map +1 -1
- package/dist/src/motion/color-motion-value.d.ts.map +1 -1
- package/dist/src/motion/color-motion-value.js.map +1 -1
- package/dist/src/motion/color.d.ts +1 -29
- package/dist/src/motion/color.d.ts.map +1 -1
- package/dist/src/motion/color.js +2 -170
- package/dist/src/motion/color.js.map +1 -1
- package/dist/src/motion/color.test.js.map +1 -1
- package/dist/src/motion/event-emitter.d.ts.map +1 -1
- package/dist/src/motion/event-emitter.js.map +1 -1
- package/dist/src/motion/frame.js.map +1 -1
- package/dist/src/motion/hooks.d.ts.map +1 -1
- package/dist/src/motion/hooks.js +8 -3
- package/dist/src/motion/hooks.js.map +1 -1
- package/dist/src/motion/index.d.ts.map +1 -1
- package/dist/src/motion/index.js.map +1 -1
- package/dist/src/motion/motion-value.d.ts.map +1 -1
- package/dist/src/motion/motion-value.js.map +1 -1
- package/dist/src/motion/motion-value.test.js.map +1 -1
- package/dist/src/motion/spring-math.d.ts +6 -1
- package/dist/src/motion/spring-math.d.ts.map +1 -1
- package/dist/src/motion/spring-math.js +6 -1
- package/dist/src/motion/spring-math.js.map +1 -1
- package/dist/src/motion/types.d.ts.map +1 -1
- package/dist/src/motion/types.js.map +1 -1
- package/dist/src/profiler.js.map +1 -1
- package/dist/src/reconciler/host-config.d.ts +5 -5
- package/dist/src/reconciler/host-config.d.ts.map +1 -1
- package/dist/src/reconciler/host-config.js +43 -51
- package/dist/src/reconciler/host-config.js.map +1 -1
- package/dist/src/reconciler/noop-methods.d.ts +29 -0
- package/dist/src/reconciler/noop-methods.d.ts.map +1 -0
- package/dist/src/reconciler/noop-methods.js +43 -0
- package/dist/src/reconciler/noop-methods.js.map +1 -0
- package/dist/src/reconciler/types.d.ts +68 -14
- package/dist/src/reconciler/types.d.ts.map +1 -1
- package/dist/src/remote/Procedures.d.ts +22 -0
- package/dist/src/remote/Procedures.d.ts.map +1 -0
- package/dist/src/remote/Procedures.js +42 -0
- package/dist/src/remote/Procedures.js.map +1 -0
- package/dist/src/remote/Router.d.ts +20 -0
- package/dist/src/remote/Router.d.ts.map +1 -0
- package/dist/src/remote/Router.js +26 -0
- package/dist/src/remote/Router.js.map +1 -0
- package/dist/src/remote/Server.d.ts +6 -0
- package/dist/src/remote/Server.d.ts.map +1 -0
- package/dist/src/remote/Server.js +53 -0
- package/dist/src/remote/Server.js.map +1 -0
- package/dist/src/remote/index.d.ts +18 -0
- package/dist/src/remote/index.d.ts.map +1 -0
- package/dist/src/remote/index.js +74 -0
- package/dist/src/remote/index.js.map +1 -0
- package/dist/src/renderer/core/FrameBuilder.d.ts +18 -0
- package/dist/src/renderer/core/FrameBuilder.d.ts.map +1 -0
- package/dist/src/renderer/core/FrameBuilder.js +38 -0
- package/dist/src/renderer/core/FrameBuilder.js.map +1 -0
- package/dist/src/renderer/core/RendererState.d.ts +41 -0
- package/dist/src/renderer/core/RendererState.d.ts.map +1 -0
- package/dist/src/renderer/core/RendererState.js +70 -0
- package/dist/src/renderer/core/RendererState.js.map +1 -0
- package/dist/src/renderer/core/index.d.ts +3 -0
- package/dist/src/renderer/core/index.d.ts.map +1 -0
- package/dist/src/renderer/core/index.js +3 -0
- package/dist/src/renderer/core/index.js.map +1 -0
- package/dist/src/renderer/input/InputProcessor.d.ts +25 -0
- package/dist/src/renderer/input/InputProcessor.d.ts.map +1 -0
- package/dist/src/renderer/input/InputProcessor.js +81 -0
- package/dist/src/renderer/input/InputProcessor.js.map +1 -0
- package/dist/src/renderer/input/index.d.ts +2 -0
- package/dist/src/renderer/input/index.d.ts.map +1 -0
- package/dist/src/renderer/input/index.js +2 -0
- package/dist/src/renderer/input/index.js.map +1 -0
- package/dist/src/renderer/lifecycle/EventBus.d.ts +41 -0
- package/dist/src/renderer/lifecycle/EventBus.d.ts.map +1 -0
- package/dist/src/renderer/lifecycle/EventBus.js +78 -0
- package/dist/src/renderer/lifecycle/EventBus.js.map +1 -0
- package/dist/src/renderer/lifecycle/ResizeManager.d.ts +34 -0
- package/dist/src/renderer/lifecycle/ResizeManager.d.ts.map +1 -0
- package/dist/src/renderer/lifecycle/ResizeManager.js +47 -0
- package/dist/src/renderer/lifecycle/ResizeManager.js.map +1 -0
- package/dist/src/renderer/lifecycle/TerminalSetup.d.ts +36 -0
- package/dist/src/renderer/lifecycle/TerminalSetup.d.ts.map +1 -0
- package/dist/src/renderer/lifecycle/TerminalSetup.js +82 -0
- package/dist/src/renderer/lifecycle/TerminalSetup.js.map +1 -0
- package/dist/src/renderer/lifecycle/index.d.ts +4 -0
- package/dist/src/renderer/lifecycle/index.d.ts.map +1 -0
- package/dist/src/renderer/lifecycle/index.js +4 -0
- package/dist/src/renderer/lifecycle/index.js.map +1 -0
- package/dist/src/renderer/modes/FullscreenRenderer.d.ts +12 -0
- package/dist/src/renderer/modes/FullscreenRenderer.d.ts.map +1 -0
- package/dist/src/renderer/modes/FullscreenRenderer.js +52 -0
- package/dist/src/renderer/modes/FullscreenRenderer.js.map +1 -0
- package/dist/src/renderer/modes/InlineRenderer.d.ts +22 -0
- package/dist/src/renderer/modes/InlineRenderer.d.ts.map +1 -0
- package/dist/src/renderer/modes/InlineRenderer.js +154 -0
- package/dist/src/renderer/modes/InlineRenderer.js.map +1 -0
- package/dist/src/renderer/modes/RendererMode.d.ts +42 -0
- package/dist/src/renderer/modes/RendererMode.d.ts.map +1 -0
- package/dist/src/renderer/modes/RendererMode.js +2 -0
- package/dist/src/renderer/modes/RendererMode.js.map +1 -0
- package/dist/src/renderer/modes/StaticContentRenderer.d.ts +25 -0
- package/dist/src/renderer/modes/StaticContentRenderer.d.ts.map +1 -0
- package/dist/src/renderer/modes/StaticContentRenderer.js +47 -0
- package/dist/src/renderer/modes/StaticContentRenderer.js.map +1 -0
- package/dist/src/renderer/modes/index.d.ts +5 -0
- package/dist/src/renderer/modes/index.d.ts.map +1 -0
- package/dist/src/renderer/modes/index.js +4 -0
- package/dist/src/renderer/modes/index.js.map +1 -0
- package/dist/src/renderer-context.d.ts +9 -0
- package/dist/src/renderer-context.d.ts.map +1 -0
- package/dist/src/renderer-context.js +22 -0
- package/dist/src/renderer-context.js.map +1 -0
- package/dist/src/renderer-types.d.ts +103 -0
- package/dist/src/renderer-types.d.ts.map +1 -0
- package/dist/src/renderer-types.js +2 -0
- package/dist/src/renderer-types.js.map +1 -0
- package/dist/src/renderer.d.ts +4 -86
- package/dist/src/renderer.d.ts.map +1 -1
- package/dist/src/renderer.js +213 -384
- package/dist/src/renderer.js.map +1 -1
- package/dist/src/test/index.d.ts.map +1 -1
- package/dist/src/test/index.js.map +1 -1
- package/dist/src/test/mock-streams.d.ts.map +1 -1
- package/dist/src/test/mock-streams.js.map +1 -1
- package/dist/src/test/render-tui.d.ts.map +1 -1
- package/dist/src/test/render-tui.js +2 -5
- package/dist/src/test/render-tui.js.map +1 -1
- package/dist/src/trace/SpanTree.d.ts.map +1 -1
- package/dist/src/trace/SpanTree.js +21 -11
- package/dist/src/trace/SpanTree.js.map +1 -1
- package/dist/src/trace/format-value.d.ts +15 -0
- package/dist/src/trace/format-value.d.ts.map +1 -0
- package/dist/src/trace/format-value.js +77 -0
- package/dist/src/trace/format-value.js.map +1 -0
- package/dist/src/trace/index.d.ts.map +1 -1
- package/dist/src/trace/index.js.map +1 -1
- package/dist/src/trace/location.js +1 -1
- package/dist/src/trace/location.js.map +1 -1
- package/dist/src/trace/span-processor.d.ts.map +1 -1
- package/dist/src/trace/span-processor.js.map +1 -1
- package/dist/src/trace/span-state.d.ts +19 -2
- package/dist/src/trace/span-state.d.ts.map +1 -1
- package/dist/src/trace/span-state.js +62 -31
- package/dist/src/trace/span-state.js.map +1 -1
- package/dist/src/trace/tui-logger.js.map +1 -1
- package/dist/src/utils/border.d.ts +1 -1
- package/dist/src/utils/border.d.ts.map +1 -1
- package/dist/src/utils/border.js +6 -0
- package/dist/src/utils/border.js.map +1 -1
- package/dist/src/utils/flex-layout.d.ts +2 -1
- package/dist/src/utils/flex-layout.d.ts.map +1 -1
- package/dist/src/utils/flex-layout.js +22 -33
- package/dist/src/utils/flex-layout.js.map +1 -1
- package/dist/src/utils/index.d.ts +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +1 -1
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/padding.d.ts.map +1 -1
- package/dist/src/utils/padding.js.map +1 -1
- package/dist/src/utils/styles.d.ts +20 -1
- package/dist/src/utils/styles.d.ts.map +1 -1
- package/dist/src/utils/styles.js +36 -1
- package/dist/src/utils/styles.js.map +1 -1
- package/dist/src/visualize/index.d.ts +8 -19
- package/dist/src/visualize/index.d.ts.map +1 -1
- package/dist/src/visualize/index.js +11 -25
- package/dist/src/visualize/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/jsx-dev-runtime.ts +5 -0
- package/jsx-runtime.ts +54 -0
- package/package.json +124 -92
- package/src/codeblock.tsx +34 -34
- package/src/components/Divider.tsx +23 -0
- package/src/components/Markdown.tsx +380 -0
- package/src/components/MultilineTextInput.tsx +749 -0
- package/src/components/Overlay.tsx +56 -0
- package/src/components/Static.tsx +68 -0
- package/src/components/TextInput.tsx +285 -0
- package/src/components/index.ts +6 -0
- package/src/components/text-editing.ts +464 -0
- package/src/console/ConsoleCapture.ts +272 -0
- package/src/console/ConsolePopover.tsx +487 -0
- package/src/console/clipboard.ts +81 -0
- package/src/console/index.ts +42 -0
- package/src/console/useConsole.ts +129 -0
- package/src/debug/DebugOverlay.ts +557 -0
- package/src/debug/DiagnosticsPanel.tsx +27 -27
- package/src/dev/Toast.tsx +117 -0
- package/src/dev/index.ts +2 -0
- package/src/dev.tsx +489 -0
- package/src/highlight.ts +46 -46
- package/src/hmr-plugin.ts +61 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/use-keyboard.ts +44 -24
- package/src/hooks/use-mouse.ts +51 -0
- package/src/hooks/use-paste.ts +21 -6
- package/src/hooks/use-scroll.ts +386 -0
- package/src/hooks/useFrameStats.ts +17 -17
- package/src/hosts/base.ts +180 -59
- package/src/hosts/box.ts +117 -96
- package/src/hosts/canvas.ts +137 -141
- package/src/hosts/codeblock.ts +117 -133
- package/src/hosts/flex-container.ts +124 -0
- package/src/hosts/hstack.ts +11 -59
- package/src/hosts/index.ts +24 -14
- package/src/hosts/overlay-item.ts +72 -0
- package/src/hosts/overlay.ts +125 -0
- package/src/hosts/scroll.ts +255 -0
- package/src/hosts/single-child.ts +52 -0
- package/src/hosts/spacer.ts +30 -26
- package/src/hosts/text.ts +198 -164
- package/src/hosts/vstack.ts +11 -59
- package/src/hosts/zstack.ts +79 -67
- package/src/index.ts +44 -19
- package/src/inline/index.tsx +123 -123
- package/src/motion/color-motion-value.ts +67 -67
- package/src/motion/color.test.ts +107 -107
- package/src/motion/color.ts +9 -190
- package/src/motion/event-emitter.ts +20 -20
- package/src/motion/frame.ts +35 -35
- package/src/motion/hooks.ts +144 -139
- package/src/motion/index.ts +10 -10
- package/src/motion/motion-value.test.ts +207 -207
- package/src/motion/motion-value.ts +112 -112
- package/src/motion/spring-math.ts +88 -83
- package/src/motion/types.ts +25 -25
- package/src/profiler.ts +50 -50
- package/src/reconciler/host-config.ts +152 -174
- package/src/reconciler/noop-methods.ts +55 -0
- package/src/reconciler/types.ts +112 -46
- package/src/remote/Procedures.ts +52 -0
- package/src/remote/Router.ts +58 -0
- package/src/remote/Server.ts +76 -0
- package/src/remote/index.ts +90 -0
- package/src/renderer/core/FrameBuilder.ts +49 -0
- package/src/renderer/core/RendererState.ts +80 -0
- package/src/renderer/core/index.ts +2 -0
- package/src/renderer/input/InputProcessor.ts +94 -0
- package/src/renderer/input/index.ts +1 -0
- package/src/renderer/lifecycle/EventBus.ts +90 -0
- package/src/renderer/lifecycle/ResizeManager.ts +65 -0
- package/src/renderer/lifecycle/TerminalSetup.ts +105 -0
- package/src/renderer/lifecycle/index.ts +3 -0
- package/src/renderer/modes/FullscreenRenderer.ts +53 -0
- package/src/renderer/modes/InlineRenderer.ts +178 -0
- package/src/renderer/modes/RendererMode.ts +46 -0
- package/src/renderer/modes/StaticContentRenderer.ts +56 -0
- package/src/renderer/modes/index.ts +4 -0
- package/src/renderer-context.ts +27 -0
- package/src/renderer-types.ts +109 -0
- package/src/renderer.ts +391 -642
- package/src/test/index.ts +5 -5
- package/src/test/mock-streams.ts +115 -115
- package/src/test/render-tui.ts +84 -87
- package/src/utils/border.ts +79 -73
- package/src/utils/flex-layout.ts +80 -93
- package/src/utils/index.ts +1 -1
- package/src/utils/padding.ts +27 -27
- package/src/utils/styles.ts +50 -7
- package/src/visualize/index.tsx +225 -240
- package/dist/src/output.d.ts +0 -47
- package/dist/src/output.d.ts.map +0 -1
- package/dist/src/output.js +0 -125
- package/dist/src/output.js.map +0 -1
- package/dist/src/terminal.d.ts +0 -37
- package/dist/src/terminal.d.ts.map +0 -1
- package/dist/src/terminal.js +0 -65
- package/dist/src/terminal.js.map +0 -1
- package/src/output.ts +0 -156
- package/src/terminal.ts +0 -67
- package/src/trace/SpanTree.tsx +0 -195
- package/src/trace/index.tsx +0 -205
- package/src/trace/location.ts +0 -90
- package/src/trace/span-processor.ts +0 -65
- package/src/trace/span-state.ts +0 -286
- package/src/trace/tui-logger.ts +0 -72
package/src/index.ts
CHANGED
|
@@ -12,37 +12,43 @@ export {
|
|
|
12
12
|
} from "./renderer.js"
|
|
13
13
|
export type { TuiRenderer, RendererOptions, Root, FrameStats, RenderInstance } from "./renderer.js"
|
|
14
14
|
|
|
15
|
-
//
|
|
15
|
+
// CodeBlock (syntax highlighting)
|
|
16
16
|
export { CodeBlock } from "./codeblock.js"
|
|
17
17
|
export type { CodeBlockProps } from "./codeblock.js"
|
|
18
18
|
|
|
19
19
|
// Highlight utilities
|
|
20
20
|
export {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
highlightCode,
|
|
22
|
+
toPlainLines,
|
|
23
|
+
type HighlightLine,
|
|
24
|
+
type HighlightToken,
|
|
25
|
+
type HighlightTokenStyle,
|
|
26
26
|
} from "./highlight.js"
|
|
27
27
|
|
|
28
28
|
// Hooks
|
|
29
|
-
export { useKeyboard, usePaste } from "./hooks/index.js"
|
|
29
|
+
export { useKeyboard, useMouse, usePaste, useScroll } from "./hooks/index.js"
|
|
30
30
|
export { useFrameStats } from "./hooks/useFrameStats.js"
|
|
31
|
-
export type {
|
|
31
|
+
export type {
|
|
32
|
+
UseKeyboardOptions,
|
|
33
|
+
UseMouseOptions,
|
|
34
|
+
UseScrollOptions,
|
|
35
|
+
UseScrollReturn,
|
|
36
|
+
ScrollState,
|
|
37
|
+
} from "./hooks/index.js"
|
|
32
38
|
|
|
33
39
|
// Motion (spring animations)
|
|
34
40
|
export {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
useMotionValue,
|
|
42
|
+
useSpring,
|
|
43
|
+
useSprings,
|
|
44
|
+
useSpringRenderer,
|
|
45
|
+
useMotionValueEvent,
|
|
46
|
+
useAnimationFrame,
|
|
47
|
+
motionValue,
|
|
48
|
+
// Color springs
|
|
49
|
+
ColorMotionValue,
|
|
50
|
+
useColorMotionValue,
|
|
51
|
+
useColorSpring,
|
|
46
52
|
} from "./motion/index.js"
|
|
47
53
|
export type { SpringOptions, MotionValue, RGBA, ColorInput } from "./motion/index.js"
|
|
48
54
|
|
|
@@ -55,9 +61,28 @@ export type { HStackProps } from "./hosts/hstack.js"
|
|
|
55
61
|
export type { ZStackProps } from "./hosts/zstack.js"
|
|
56
62
|
export type { BoxProps, BorderKind } from "./hosts/box.js"
|
|
57
63
|
export type { CanvasProps, DrawContext } from "./hosts/canvas.js"
|
|
64
|
+
export type { ScrollProps } from "./hosts/scroll.js"
|
|
58
65
|
|
|
59
66
|
// Debug
|
|
60
67
|
export { DiagnosticsPanel } from "./debug/DiagnosticsPanel.js"
|
|
61
68
|
|
|
69
|
+
// Input components
|
|
70
|
+
export { TextInput, type TextInputProps } from "./components/index.js"
|
|
71
|
+
export { MultilineTextInput, type MultilineTextInputProps } from "./components/index.js"
|
|
72
|
+
export { Markdown, type MarkdownProps, type MarkdownTheme } from "./components/index.js"
|
|
73
|
+
export { Static, type StaticProps } from "./components/index.js"
|
|
74
|
+
export { Overlay, type OverlayProps, type OverlayItemProps } from "./components/index.js"
|
|
75
|
+
|
|
76
|
+
// Development utilities (HMR)
|
|
77
|
+
export {
|
|
78
|
+
devRender,
|
|
79
|
+
devMain,
|
|
80
|
+
hmr,
|
|
81
|
+
hmrState,
|
|
82
|
+
autoHmr,
|
|
83
|
+
type DevRenderOptions,
|
|
84
|
+
type DevRenderResult,
|
|
85
|
+
} from "./dev.js"
|
|
86
|
+
|
|
62
87
|
// JSX types are provided via jsxImportSource: "@effect-tui/react"
|
|
63
88
|
// See jsx-runtime.ts at package root for the JSX namespace
|
package/src/inline/index.tsx
CHANGED
|
@@ -17,145 +17,145 @@ const SPINNER = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇",
|
|
|
17
17
|
type TaskStatus = "pending" | "running" | "success" | "failure"
|
|
18
18
|
|
|
19
19
|
interface TaskEntry {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
label: string
|
|
21
|
+
status: TaskStatus
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
interface TaskListProps {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
tasks: TaskEntry[]
|
|
26
|
+
spinnerIndex: number
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
function TaskList({ tasks, spinnerIndex }: TaskListProps) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
30
|
+
return (
|
|
31
|
+
<vstack>
|
|
32
|
+
{tasks.map((task, i) => {
|
|
33
|
+
const icon =
|
|
34
|
+
task.status === "running"
|
|
35
|
+
? SPINNER[spinnerIndex % SPINNER.length]
|
|
36
|
+
: task.status === "success"
|
|
37
|
+
? "✓"
|
|
38
|
+
: task.status === "failure"
|
|
39
|
+
? "✗"
|
|
40
|
+
: "○"
|
|
41
|
+
|
|
42
|
+
const color =
|
|
43
|
+
task.status === "running"
|
|
44
|
+
? Colors.brightYellow
|
|
45
|
+
: task.status === "success"
|
|
46
|
+
? Colors.brightGreen
|
|
47
|
+
: task.status === "failure"
|
|
48
|
+
? Colors.brightRed
|
|
49
|
+
: Colors.gray(10)
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<hstack key={i} spacing={1}>
|
|
53
|
+
<text bold fg={color}>
|
|
54
|
+
{icon}
|
|
55
|
+
</text>
|
|
56
|
+
<text fg={task.status === "pending" ? Colors.gray(10) : undefined}>{task.label}</text>
|
|
57
|
+
</hstack>
|
|
58
|
+
)
|
|
59
|
+
})}
|
|
60
|
+
</vstack>
|
|
61
|
+
)
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
export interface TaskOptions<A> {
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
/** Format the result to append to the label on success */
|
|
66
|
+
formatResult?: (result: A) => string
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
// Service definition
|
|
70
70
|
export interface InlineRenderer {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Wrap an effect with inline progress visualization.
|
|
73
|
+
* Shows a spinner while running, checkmark on success, X on failure.
|
|
74
|
+
*/
|
|
75
|
+
readonly task: <A, E, R>(
|
|
76
|
+
label: string,
|
|
77
|
+
effect: Effect.Effect<A, E, R>,
|
|
78
|
+
options?: TaskOptions<A>,
|
|
79
|
+
) => Effect.Effect<A, E, R>
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
export const InlineRenderer = Context.GenericTag<InlineRenderer>("@effect-tui/react/InlineRenderer")
|
|
83
83
|
|
|
84
84
|
// Create the live layer
|
|
85
85
|
export const InlineRendererLive: Layer.Layer<InlineRenderer> = Layer.scoped(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
86
|
+
InlineRenderer,
|
|
87
|
+
Effect.gen(function* () {
|
|
88
|
+
// Create renderer in inline mode
|
|
89
|
+
const renderer = createRenderer({ mode: "inline" })
|
|
90
|
+
const root = createRoot(renderer)
|
|
91
|
+
|
|
92
|
+
// Session state - accumulate all tasks
|
|
93
|
+
const tasks: TaskEntry[] = []
|
|
94
|
+
let spinnerIndex = 0
|
|
95
|
+
let intervalId: ReturnType<typeof setInterval> | null = null
|
|
96
|
+
|
|
97
|
+
const render = () => {
|
|
98
|
+
root.render(<TaskList tasks={[...tasks]} spinnerIndex={spinnerIndex} />)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const startSpinner = (label: string) => {
|
|
102
|
+
tasks.push({ label, status: "running" })
|
|
103
|
+
spinnerIndex = 0
|
|
104
|
+
render()
|
|
105
|
+
|
|
106
|
+
intervalId = setInterval(() => {
|
|
107
|
+
spinnerIndex = (spinnerIndex + 1) % SPINNER.length
|
|
108
|
+
render()
|
|
109
|
+
}, 80)
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const stopSpinner = (status: "success" | "failure", labelSuffix?: string) => {
|
|
113
|
+
if (intervalId) {
|
|
114
|
+
clearInterval(intervalId)
|
|
115
|
+
intervalId = null
|
|
116
|
+
}
|
|
117
|
+
// Update last task status
|
|
118
|
+
if (tasks.length > 0) {
|
|
119
|
+
tasks[tasks.length - 1].status = status
|
|
120
|
+
if (labelSuffix) {
|
|
121
|
+
tasks[tasks.length - 1].label += labelSuffix
|
|
122
|
+
}
|
|
123
|
+
render()
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Cleanup on scope close
|
|
128
|
+
yield* Effect.addFinalizer(() =>
|
|
129
|
+
Effect.sync(() => {
|
|
130
|
+
if (intervalId) clearInterval(intervalId)
|
|
131
|
+
root.unmount()
|
|
132
|
+
}),
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
return InlineRenderer.of({
|
|
136
|
+
task: <A, E, R>(
|
|
137
|
+
label: string,
|
|
138
|
+
effect: Effect.Effect<A, E, R>,
|
|
139
|
+
options?: TaskOptions<A>,
|
|
140
|
+
): Effect.Effect<A, E, R> =>
|
|
141
|
+
Effect.gen(function* () {
|
|
142
|
+
startSpinner(label)
|
|
143
|
+
|
|
144
|
+
const result = yield* effect.pipe(Effect.either)
|
|
145
|
+
|
|
146
|
+
if (Either.isRight(result)) {
|
|
147
|
+
const suffix = options?.formatResult ? ` → ${options.formatResult(result.right)}` : ""
|
|
148
|
+
stopSpinner("success", suffix)
|
|
149
|
+
yield* Effect.sleep(50)
|
|
150
|
+
return result.right
|
|
151
|
+
} else {
|
|
152
|
+
stopSpinner("failure")
|
|
153
|
+
yield* Effect.sleep(50)
|
|
154
|
+
return yield* Effect.fail(result.left)
|
|
155
|
+
}
|
|
156
|
+
}),
|
|
157
|
+
})
|
|
158
|
+
}),
|
|
159
159
|
)
|
|
160
160
|
|
|
161
161
|
/**
|
|
@@ -175,7 +175,7 @@ export const InlineRendererLive: Layer.Layer<InlineRenderer> = Layer.scoped(
|
|
|
175
175
|
* ```
|
|
176
176
|
*/
|
|
177
177
|
export const task = <A, E, R>(
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
label: string,
|
|
179
|
+
effect: Effect.Effect<A, E, R>,
|
|
180
|
+
options?: TaskOptions<A>,
|
|
181
181
|
): Effect.Effect<A, E, R | InlineRenderer> => Effect.flatMap(InlineRenderer, (r) => r.task(label, effect, options))
|
|
@@ -12,79 +12,79 @@ import type { SpringOptions } from "./types.js"
|
|
|
12
12
|
* Each channel (r, g, b, a) is animated independently with the same spring config.
|
|
13
13
|
*/
|
|
14
14
|
export class ColorMotionValue extends EventEmitter<RGBA> {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
private rMv: MotionValue<number>
|
|
16
|
+
private gMv: MotionValue<number>
|
|
17
|
+
private bMv: MotionValue<number>
|
|
18
|
+
private aMv: MotionValue<number>
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
constructor(initial: ColorInput) {
|
|
21
|
+
super()
|
|
22
|
+
const rgba = parseColor(initial)
|
|
23
|
+
this.rMv = new MotionValue(rgba.r)
|
|
24
|
+
this.gMv = new MotionValue(rgba.g)
|
|
25
|
+
this.bMv = new MotionValue(rgba.b)
|
|
26
|
+
this.aMv = new MotionValue(rgba.a)
|
|
27
|
+
}
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
/** Get current RGBA value */
|
|
30
|
+
get(): RGBA {
|
|
31
|
+
return {
|
|
32
|
+
r: Math.round(Math.max(0, Math.min(255, this.rMv.get()))),
|
|
33
|
+
g: Math.round(Math.max(0, Math.min(255, this.gMv.get()))),
|
|
34
|
+
b: Math.round(Math.max(0, Math.min(255, this.bMv.get()))),
|
|
35
|
+
a: Math.max(0, Math.min(1, this.aMv.get())),
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
/** Set color immediately (no animation) */
|
|
40
|
+
jump(color: ColorInput) {
|
|
41
|
+
const rgba = parseColor(color)
|
|
42
|
+
this.rMv.jump(rgba.r)
|
|
43
|
+
this.gMv.jump(rgba.g)
|
|
44
|
+
this.bMv.jump(rgba.b)
|
|
45
|
+
this.aMv.jump(rgba.a)
|
|
46
|
+
this.notify("change", this.get())
|
|
47
|
+
}
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
/** Set target color and animate with spring */
|
|
50
|
+
set(color: ColorInput, options?: SpringOptions) {
|
|
51
|
+
const rgba = parseColor(color)
|
|
52
|
+
this.rMv.set(rgba.r, options)
|
|
53
|
+
this.gMv.set(rgba.g, options)
|
|
54
|
+
this.bMv.set(rgba.b, options)
|
|
55
|
+
this.aMv.set(rgba.a, options)
|
|
56
|
+
}
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
/** Check if any channel is animating */
|
|
59
|
+
isAnimating(): boolean {
|
|
60
|
+
return this.rMv.isAnimating() || this.gMv.isAnimating() || this.bMv.isAnimating() || this.aMv.isAnimating()
|
|
61
|
+
}
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
/** Stop all channel animations */
|
|
64
|
+
stop() {
|
|
65
|
+
this.rMv.stop()
|
|
66
|
+
this.gMv.stop()
|
|
67
|
+
this.bMv.stop()
|
|
68
|
+
this.aMv.stop()
|
|
69
|
+
}
|
|
70
70
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
/** Destroy and clean up */
|
|
72
|
+
destroy() {
|
|
73
|
+
this.rMv.destroy()
|
|
74
|
+
this.gMv.destroy()
|
|
75
|
+
this.bMv.destroy()
|
|
76
|
+
this.aMv.destroy()
|
|
77
|
+
this.clearSubscribers()
|
|
78
|
+
}
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
80
|
+
/** Subscribe internal motion values to a callback (used by hooks) */
|
|
81
|
+
_subscribeChannels(callback: () => void): () => void {
|
|
82
|
+
const unsubs = [
|
|
83
|
+
this.rMv.on("change", callback),
|
|
84
|
+
this.gMv.on("change", callback),
|
|
85
|
+
this.bMv.on("change", callback),
|
|
86
|
+
this.aMv.on("change", callback),
|
|
87
|
+
]
|
|
88
|
+
return () => unsubs.forEach((u) => u())
|
|
89
|
+
}
|
|
90
90
|
}
|