@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/visualize/index.tsx
CHANGED
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
import { useState, useEffect } from "react"
|
|
5
5
|
import { Cause, Context, Duration, Effect, Exit, Fiber, Layer, Option } from "effect"
|
|
6
|
-
import { Colors } from "@effect-tui/core"
|
|
6
|
+
import { Colors, ANSI } from "@effect-tui/core"
|
|
7
7
|
import { createRenderer, createRoot } from "../renderer.js"
|
|
8
|
-
import { ANSI } from "../terminal.js"
|
|
9
8
|
|
|
10
9
|
const SPINNER_FRAMES = ["⠋", "⠙", "⠸", "⠴", "⠦", "⠇"] as const
|
|
11
10
|
const SPIN_INTERVAL_MS = 80
|
|
@@ -15,180 +14,187 @@ const COMPLETION_DELAY_MS = 360
|
|
|
15
14
|
type VisualizerStatus = "pending" | "success" | "failure"
|
|
16
15
|
|
|
17
16
|
interface VisualizeOptions {
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
/** Show the result value below completion status */
|
|
18
|
+
showResult?: boolean
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
// Bridges Effect execution with React rendering
|
|
23
22
|
class VisualizerState {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
23
|
+
status: VisualizerStatus = "pending"
|
|
24
|
+
spinnerIndex = 0
|
|
25
|
+
elapsedMs = 0
|
|
26
|
+
errorSummary?: string
|
|
27
|
+
result?: unknown
|
|
28
|
+
showResult = false
|
|
29
|
+
private listeners = new Set<() => void>()
|
|
30
|
+
|
|
31
|
+
update(
|
|
32
|
+
patch: Partial<
|
|
33
|
+
Pick<VisualizerState, "status" | "spinnerIndex" | "elapsedMs" | "errorSummary" | "result" | "showResult">
|
|
34
|
+
>,
|
|
35
|
+
) {
|
|
36
|
+
Object.assign(this, patch)
|
|
37
|
+
this.listeners.forEach((l) => l())
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
subscribe(listener: () => void): () => void {
|
|
41
|
+
this.listeners.add(listener)
|
|
42
|
+
return () => this.listeners.delete(listener)
|
|
43
|
+
}
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
const formatDuration = (ms: number): string => Duration.format(Duration.millis(Math.max(0, Math.round(ms))))
|
|
48
47
|
|
|
49
48
|
const formatResult = (value: unknown): string => {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
49
|
+
if (value === undefined) return "undefined"
|
|
50
|
+
if (value === null) return "null"
|
|
51
|
+
if (typeof value === "string") return JSON.stringify(value)
|
|
52
|
+
if (typeof value === "number" || typeof value === "boolean") return String(value)
|
|
53
|
+
try {
|
|
54
|
+
return JSON.stringify(value)
|
|
55
|
+
} catch {
|
|
56
|
+
return String(value)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Type for Effect-style tagged errors */
|
|
61
|
+
interface TaggedError {
|
|
62
|
+
readonly _tag: string
|
|
63
|
+
readonly message?: string
|
|
59
64
|
}
|
|
60
65
|
|
|
61
66
|
const summarizeCause = (cause: Cause.Cause<unknown>): string => {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
const failure = Cause.failureOption(cause)
|
|
68
|
+
if (Option.isSome(failure)) {
|
|
69
|
+
const error = failure.value
|
|
70
|
+
if (error && typeof error === "object" && "_tag" in error && "message" in error) {
|
|
71
|
+
const tagged = error as TaggedError
|
|
72
|
+
const message = String(tagged.message ?? "").trim()
|
|
73
|
+
return message ? `${tagged._tag}: ${message}` : String(tagged._tag)
|
|
74
|
+
}
|
|
75
|
+
if (error && typeof error === "object" && "message" in error) {
|
|
76
|
+
return String((error as { message: unknown }).message)
|
|
77
|
+
}
|
|
78
|
+
return String(error)
|
|
79
|
+
}
|
|
80
|
+
const pretty = Cause.pretty(cause, { renderErrorCause: false })
|
|
81
|
+
const firstLine = pretty.split("\n").find((line: string) => line.trim().length > 0)
|
|
82
|
+
return firstLine ?? "Unknown failure"
|
|
77
83
|
}
|
|
78
84
|
|
|
79
85
|
function Visualizer({ state, label }: { state: VisualizerState; label: string }) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
86
|
+
const [, forceUpdate] = useState(0)
|
|
87
|
+
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
return state.subscribe(() => forceUpdate((n) => n + 1))
|
|
90
|
+
}, [state])
|
|
91
|
+
|
|
92
|
+
const elapsed = formatDuration(state.elapsedMs)
|
|
93
|
+
|
|
94
|
+
if (state.status === "pending") {
|
|
95
|
+
return (
|
|
96
|
+
<vstack>
|
|
97
|
+
<hstack spacing={1}>
|
|
98
|
+
<text fg={Colors.brightCyan}>{SPINNER_FRAMES[state.spinnerIndex]}</text>
|
|
99
|
+
<text bold fg={Colors.brightWhite}>
|
|
100
|
+
{label}
|
|
101
|
+
</text>
|
|
102
|
+
</hstack>
|
|
103
|
+
<text fg={Colors.gray(10)}>└ Running… {elapsed}</text>
|
|
104
|
+
</vstack>
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (state.status === "success") {
|
|
109
|
+
const showingResult = state.showResult && state.result !== undefined
|
|
110
|
+
return (
|
|
111
|
+
<vstack>
|
|
112
|
+
<hstack spacing={1}>
|
|
113
|
+
<text bold fg={Colors.brightGreen}>
|
|
114
|
+
✓
|
|
115
|
+
</text>
|
|
116
|
+
<text bold fg={Colors.brightGreen}>
|
|
117
|
+
{label}
|
|
118
|
+
</text>
|
|
119
|
+
</hstack>
|
|
120
|
+
{showingResult && <text fg={Colors.gray(20)}>├ {formatResult(state.result)}</text>}
|
|
121
|
+
<text fg={Colors.green}>
|
|
122
|
+
{showingResult ? "└" : "└"} Completed in {elapsed}
|
|
123
|
+
</text>
|
|
124
|
+
</vstack>
|
|
125
|
+
)
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// failure
|
|
129
|
+
return (
|
|
130
|
+
<vstack>
|
|
131
|
+
<hstack spacing={1}>
|
|
132
|
+
<text bold fg={Colors.brightRed}>
|
|
133
|
+
✗
|
|
134
|
+
</text>
|
|
135
|
+
<text bold fg={Colors.brightRed}>
|
|
136
|
+
{label}
|
|
137
|
+
</text>
|
|
138
|
+
</hstack>
|
|
139
|
+
<text fg={Colors.red}>├ {state.errorSummary ?? "Failed"}</text>
|
|
140
|
+
<text fg={Colors.red}>└ Failed after {elapsed}</text>
|
|
141
|
+
</vstack>
|
|
142
|
+
)
|
|
137
143
|
}
|
|
138
144
|
|
|
139
145
|
// ============================================================================
|
|
140
|
-
//
|
|
146
|
+
// TerminalState Service - manages terminal state across multiple visualize()
|
|
141
147
|
// ============================================================================
|
|
142
148
|
|
|
143
|
-
interface
|
|
144
|
-
|
|
145
|
-
|
|
149
|
+
interface TerminalStateService {
|
|
150
|
+
readonly stdout: NodeJS.WriteStream
|
|
151
|
+
readonly stdin: NodeJS.ReadStream
|
|
146
152
|
}
|
|
147
153
|
|
|
148
154
|
/**
|
|
149
155
|
* Service that manages terminal state for inline rendering.
|
|
150
156
|
* Hides cursor on acquire, shows cursor on release.
|
|
151
157
|
*/
|
|
152
|
-
export class
|
|
153
|
-
|
|
154
|
-
|
|
158
|
+
export class TerminalState extends Context.Tag("@effect-tui/react/TerminalState")<
|
|
159
|
+
TerminalState,
|
|
160
|
+
TerminalStateService
|
|
155
161
|
>() {}
|
|
156
162
|
|
|
157
163
|
/**
|
|
158
|
-
* Layer that provides
|
|
164
|
+
* Layer that provides TerminalState service.
|
|
159
165
|
* Manages terminal state: hides cursor on start, restores on finalize.
|
|
160
166
|
*/
|
|
161
|
-
export const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
167
|
+
export const TerminalStateLive: Layer.Layer<TerminalState> = Layer.scoped(
|
|
168
|
+
TerminalState,
|
|
169
|
+
Effect.gen(function* () {
|
|
170
|
+
const stdout = process.stdout
|
|
171
|
+
const stdin = process.stdin
|
|
172
|
+
|
|
173
|
+
// Setup: hide cursor, enable raw mode
|
|
174
|
+
stdout.write(ANSI.cursor.hide)
|
|
175
|
+
if (stdin.isTTY && stdin.setRawMode) {
|
|
176
|
+
stdin.setRawMode(true)
|
|
177
|
+
stdin.resume()
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Teardown on scope close: show cursor, disable raw mode, pause stdin
|
|
181
|
+
yield* Effect.addFinalizer(() =>
|
|
182
|
+
Effect.sync(() => {
|
|
183
|
+
stdout.write(ANSI.cursor.show)
|
|
184
|
+
if (stdin.isTTY && stdin.setRawMode) {
|
|
185
|
+
stdin.setRawMode(false)
|
|
186
|
+
}
|
|
187
|
+
// Pause stdin so Node can exit
|
|
188
|
+
stdin.pause()
|
|
189
|
+
}),
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
return { stdout, stdin }
|
|
193
|
+
}),
|
|
188
194
|
)
|
|
189
195
|
|
|
190
196
|
// ============================================================================
|
|
191
|
-
// visualize() - uses
|
|
197
|
+
// visualize() - uses TerminalState service
|
|
192
198
|
// ============================================================================
|
|
193
199
|
|
|
194
200
|
/**
|
|
@@ -196,110 +202,89 @@ export const InlineRendererLive: Layer.Layer<InlineRenderer> = Layer.scoped(
|
|
|
196
202
|
* Shows a spinner while running, then success/failure status.
|
|
197
203
|
* Returns the effect's result or propagates its error.
|
|
198
204
|
*
|
|
199
|
-
* Requires
|
|
205
|
+
* Requires TerminalState service (use TerminalStateLive layer).
|
|
200
206
|
*
|
|
201
207
|
* @example
|
|
202
208
|
* ```ts
|
|
203
209
|
* const program = Effect.gen(function* () {
|
|
204
210
|
* const result = yield* visualize("Fetching data", fetchData)
|
|
205
211
|
* yield* visualize("Processing", processData(result))
|
|
206
|
-
* }).pipe(Effect.provide(
|
|
212
|
+
* }).pipe(Effect.provide(TerminalStateLive))
|
|
207
213
|
* ```
|
|
208
214
|
*/
|
|
209
215
|
export const visualize = <A, E, R>(
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
): Effect.Effect<A, E, R |
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
// ============================================================================
|
|
287
|
-
// Convenience: self-contained visualize that provides its own layer
|
|
288
|
-
// ============================================================================
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* Self-contained visualize that manages its own terminal state.
|
|
292
|
-
* Use this for single visualize() calls. For multiple sequential calls,
|
|
293
|
-
* use visualize() with InlineRendererLive layer for better cursor handling.
|
|
294
|
-
*
|
|
295
|
-
* @example
|
|
296
|
-
* ```ts
|
|
297
|
-
* const result = yield* visualizeSingle("Fetching data", fetchData)
|
|
298
|
-
* ```
|
|
299
|
-
*/
|
|
300
|
-
export const visualizeSingle = <A, E, R>(
|
|
301
|
-
label: string,
|
|
302
|
-
effect: Effect.Effect<A, E, R>,
|
|
303
|
-
options?: VisualizeOptions,
|
|
304
|
-
): Effect.Effect<A, E, R> =>
|
|
305
|
-
Effect.scoped(visualize(label, effect, options).pipe(Effect.provide(InlineRendererLive))) as Effect.Effect<A, E, R>
|
|
216
|
+
label: string,
|
|
217
|
+
effect: Effect.Effect<A, E, R>,
|
|
218
|
+
options?: VisualizeOptions,
|
|
219
|
+
): Effect.Effect<A, E, R | TerminalState> =>
|
|
220
|
+
Effect.gen(function* () {
|
|
221
|
+
const { stdout, stdin } = yield* TerminalState
|
|
222
|
+
|
|
223
|
+
// Create renderer with skipTerminalSetup (Layer manages terminal state)
|
|
224
|
+
const renderer = createRenderer({
|
|
225
|
+
mode: "inline",
|
|
226
|
+
stdout,
|
|
227
|
+
stdin,
|
|
228
|
+
skipTerminalSetup: true,
|
|
229
|
+
})
|
|
230
|
+
const root = createRoot(renderer)
|
|
231
|
+
|
|
232
|
+
const state = new VisualizerState()
|
|
233
|
+
state.showResult = options?.showResult ?? false
|
|
234
|
+
|
|
235
|
+
// Mount React component
|
|
236
|
+
root.render(<Visualizer state={state} label={label} />)
|
|
237
|
+
|
|
238
|
+
// Spinner tick fiber
|
|
239
|
+
const startTime = Date.now()
|
|
240
|
+
const spinnerFiber = yield* Effect.fork(
|
|
241
|
+
Effect.forever(
|
|
242
|
+
Effect.gen(function* () {
|
|
243
|
+
yield* Effect.sleep(SPIN_INTERVAL_MS)
|
|
244
|
+
state.update({
|
|
245
|
+
spinnerIndex: (state.spinnerIndex + 1) % SPINNER_FRAMES.length,
|
|
246
|
+
})
|
|
247
|
+
renderer.requestRender()
|
|
248
|
+
}),
|
|
249
|
+
),
|
|
250
|
+
)
|
|
251
|
+
|
|
252
|
+
// High-frequency elapsed timer so duration display stays smooth
|
|
253
|
+
const elapsedFiber = yield* Effect.fork(
|
|
254
|
+
Effect.forever(
|
|
255
|
+
Effect.gen(function* () {
|
|
256
|
+
yield* Effect.sleep(ELAPSED_INTERVAL_MS)
|
|
257
|
+
state.update({ elapsedMs: Date.now() - startTime })
|
|
258
|
+
renderer.requestRender()
|
|
259
|
+
}),
|
|
260
|
+
),
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
// Run the actual effect
|
|
264
|
+
const exit = yield* Effect.exit(effect)
|
|
265
|
+
|
|
266
|
+
// Stop spinner, update state to final
|
|
267
|
+
yield* Fiber.interrupt(spinnerFiber)
|
|
268
|
+
yield* Fiber.interrupt(elapsedFiber)
|
|
269
|
+
const isSuccess = Exit.isSuccess(exit)
|
|
270
|
+
state.update(
|
|
271
|
+
isSuccess
|
|
272
|
+
? { status: "success", elapsedMs: Date.now() - startTime, result: exit.value }
|
|
273
|
+
: { status: "failure", elapsedMs: Date.now() - startTime, errorSummary: summarizeCause(exit.cause) },
|
|
274
|
+
)
|
|
275
|
+
renderer.requestRender()
|
|
276
|
+
renderer.flush() // Ensure final state is rendered
|
|
277
|
+
|
|
278
|
+
// Wait for completion animation
|
|
279
|
+
yield* Effect.sleep(COMPLETION_DELAY_MS)
|
|
280
|
+
|
|
281
|
+
// Stop renderer (doesn't touch terminal state since skipTerminalSetup)
|
|
282
|
+
renderer.stop()
|
|
283
|
+
|
|
284
|
+
// Write newline to advance cursor past the output
|
|
285
|
+
stdout.write("\n")
|
|
286
|
+
|
|
287
|
+
// Return result or propagate failure
|
|
288
|
+
if (Exit.isSuccess(exit)) return exit.value
|
|
289
|
+
return yield* Effect.failCause(exit.cause)
|
|
290
|
+
})
|
package/dist/src/output.d.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Output helpers for rendering CellBuffer to ANSI strings.
|
|
3
|
-
* Extracts common logic from renderer.ts rendering paths.
|
|
4
|
-
*/
|
|
5
|
-
import type { CellBuffer, Palette } from "@effect-tui/core";
|
|
6
|
-
/**
|
|
7
|
-
* Emit a row of cells as an ANSI string with run-length SGR encoding.
|
|
8
|
-
* Handles wide characters (cellWidth=0 continuations) and style changes.
|
|
9
|
-
*
|
|
10
|
-
* @param buffer - The cell buffer to read from
|
|
11
|
-
* @param palette - Palette for SGR code generation
|
|
12
|
-
* @param y - Row index
|
|
13
|
-
* @param width - Terminal width
|
|
14
|
-
* @param startX - Start column (default 0)
|
|
15
|
-
* @param endX - End column exclusive (default width)
|
|
16
|
-
* @returns ANSI string for the row (no cursor positioning, no trailing reset)
|
|
17
|
-
*/
|
|
18
|
-
export declare function emitRow(buffer: CellBuffer, palette: Palette, y: number, width: number, startX?: number, endX?: number): {
|
|
19
|
-
output: string;
|
|
20
|
-
lastStyle: number;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Emit a row and reset style if needed.
|
|
24
|
-
*/
|
|
25
|
-
export declare function emitRowWithReset(buffer: CellBuffer, palette: Palette, y: number, width: number, startX?: number, endX?: number): string;
|
|
26
|
-
/**
|
|
27
|
-
* Check if a row changed between two buffers.
|
|
28
|
-
*/
|
|
29
|
-
export declare function rowChanged(prev: CellBuffer, next: CellBuffer, y: number, width: number): boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Find the rightmost column with content (non-space or styled).
|
|
32
|
-
* Returns 0 if row is empty.
|
|
33
|
-
*/
|
|
34
|
-
export declare function rowContentWidth(buffer: CellBuffer, y: number, width: number): number;
|
|
35
|
-
/**
|
|
36
|
-
* Find the change window between two buffers for a row.
|
|
37
|
-
* Returns the leftmost and rightmost changed columns, or null if no changes.
|
|
38
|
-
*/
|
|
39
|
-
export declare function findChangeWindow(prev: CellBuffer, next: CellBuffer, y: number, width: number): {
|
|
40
|
-
left: number;
|
|
41
|
-
right: number;
|
|
42
|
-
} | null;
|
|
43
|
-
/**
|
|
44
|
-
* Find the last row with content in a buffer.
|
|
45
|
-
*/
|
|
46
|
-
export declare function contentHeight(buffer: CellBuffer, width: number, height: number): number;
|
|
47
|
-
//# sourceMappingURL=output.d.ts.map
|
package/dist/src/output.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/output.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE3D;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CACtB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,SAAI,EACV,IAAI,SAAQ,GACV;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CA6BvC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,MAAM,SAAI,EACV,IAAI,SAAQ,GACV,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAShG;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYpF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,UAAU,EAChB,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA2BxC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAUvF"}
|