@effect-tui/react 0.15.2 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/src/components/ListView.d.ts +4 -4
- package/dist/src/components/ListView.d.ts.map +1 -1
- package/dist/src/components/ListView.js +16 -17
- package/dist/src/components/ListView.js.map +1 -1
- package/dist/src/console/ConsolePopover.d.ts +7 -1
- package/dist/src/console/ConsolePopover.d.ts.map +1 -1
- package/dist/src/console/ConsolePopover.js +55 -74
- package/dist/src/console/ConsolePopover.js.map +1 -1
- package/dist/src/debug/DebugOverlay.d.ts.map +1 -1
- package/dist/src/debug/DebugOverlay.js +3 -57
- package/dist/src/debug/DebugOverlay.js.map +1 -1
- package/dist/src/debug/DiagnosticsPanel.js +1 -1
- package/dist/src/debug/DiagnosticsPanel.js.map +1 -1
- package/dist/src/dev.d.ts +5 -117
- package/dist/src/dev.d.ts.map +1 -1
- package/dist/src/dev.js +3 -333
- package/dist/src/dev.js.map +1 -1
- package/dist/src/hooks/use-scroll.d.ts +31 -35
- package/dist/src/hooks/use-scroll.d.ts.map +1 -1
- package/dist/src/hooks/use-scroll.js +51 -90
- package/dist/src/hooks/use-scroll.js.map +1 -1
- package/dist/src/hosts/canvas.d.ts +2 -2
- package/dist/src/hosts/canvas.d.ts.map +1 -1
- package/dist/src/hosts/canvas.js +8 -10
- package/dist/src/hosts/canvas.js.map +1 -1
- package/dist/src/hosts/codeblock.d.ts +2 -2
- package/dist/src/hosts/codeblock.js +2 -2
- package/dist/src/hosts/flex-container.d.ts +1 -1
- package/dist/src/hosts/flex-container.d.ts.map +1 -1
- package/dist/src/hosts/flex-container.js +3 -3
- package/dist/src/hosts/flex-container.js.map +1 -1
- package/dist/src/hosts/index.d.ts +2 -1
- package/dist/src/hosts/index.d.ts.map +1 -1
- package/dist/src/hosts/index.js +2 -1
- package/dist/src/hosts/index.js.map +1 -1
- package/dist/src/hosts/layout-helpers.d.ts +10 -0
- package/dist/src/hosts/layout-helpers.d.ts.map +1 -0
- package/dist/src/hosts/layout-helpers.js +10 -0
- package/dist/src/hosts/layout-helpers.js.map +1 -0
- package/dist/src/hosts/leaf.d.ts +14 -0
- package/dist/src/hosts/leaf.d.ts.map +1 -0
- package/dist/src/hosts/leaf.js +31 -0
- package/dist/src/hosts/leaf.js.map +1 -0
- package/dist/src/hosts/overlay.d.ts.map +1 -1
- package/dist/src/hosts/overlay.js +4 -7
- package/dist/src/hosts/overlay.js.map +1 -1
- package/dist/src/hosts/scroll.d.ts +47 -24
- package/dist/src/hosts/scroll.d.ts.map +1 -1
- package/dist/src/hosts/scroll.js +68 -51
- package/dist/src/hosts/scroll.js.map +1 -1
- package/dist/src/hosts/spacer.d.ts +2 -2
- package/dist/src/hosts/spacer.js +2 -2
- package/dist/src/hosts/text.d.ts +2 -3
- package/dist/src/hosts/text.d.ts.map +1 -1
- package/dist/src/hosts/text.js +5 -61
- package/dist/src/hosts/text.js.map +1 -1
- package/dist/src/hosts/vstack.js +1 -1
- package/dist/src/hosts/vstack.js.map +1 -1
- package/dist/src/hosts/zstack.d.ts +1 -1
- package/dist/src/hosts/zstack.d.ts.map +1 -1
- package/dist/src/hosts/zstack.js +6 -6
- package/dist/src/hosts/zstack.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/internal/dev/hmr.d.ts +20 -0
- package/dist/src/internal/dev/hmr.d.ts.map +1 -0
- package/dist/src/internal/dev/hmr.js +93 -0
- package/dist/src/internal/dev/hmr.js.map +1 -0
- package/dist/src/internal/dev/runtime.d.ts +24 -0
- package/dist/src/internal/dev/runtime.d.ts.map +1 -0
- package/dist/src/internal/dev/runtime.js +135 -0
- package/dist/src/internal/dev/runtime.js.map +1 -0
- package/dist/src/internal/dev/ui.d.ts +13 -0
- package/dist/src/internal/dev/ui.d.ts.map +1 -0
- package/dist/src/internal/dev/ui.js +51 -0
- package/dist/src/internal/dev/ui.js.map +1 -0
- package/dist/src/internal/renderer/context.d.ts +9 -0
- package/dist/src/internal/renderer/context.d.ts.map +1 -0
- package/dist/src/internal/renderer/context.js +22 -0
- package/dist/src/internal/renderer/context.js.map +1 -0
- package/dist/src/internal/renderer/core/FrameBuilder.d.ts +18 -0
- package/dist/src/internal/renderer/core/FrameBuilder.d.ts.map +1 -0
- package/dist/src/internal/renderer/core/FrameBuilder.js +40 -0
- package/dist/src/internal/renderer/core/FrameBuilder.js.map +1 -0
- package/dist/src/internal/renderer/core/RendererState.d.ts +41 -0
- package/dist/src/internal/renderer/core/RendererState.d.ts.map +1 -0
- package/dist/src/internal/renderer/core/RendererState.js +70 -0
- package/dist/src/internal/renderer/core/RendererState.js.map +1 -0
- package/dist/src/internal/renderer/core/index.d.ts +3 -0
- package/dist/src/internal/renderer/core/index.d.ts.map +1 -0
- package/dist/src/internal/renderer/core/index.js +3 -0
- package/dist/src/internal/renderer/core/index.js.map +1 -0
- package/dist/src/internal/renderer/index.d.ts +40 -0
- package/dist/src/internal/renderer/index.d.ts.map +1 -0
- package/dist/src/internal/renderer/index.js +518 -0
- package/dist/src/internal/renderer/index.js.map +1 -0
- package/dist/src/internal/renderer/input/InputProcessor.d.ts +30 -0
- package/dist/src/internal/renderer/input/InputProcessor.d.ts.map +1 -0
- package/dist/src/internal/renderer/input/InputProcessor.js +122 -0
- package/dist/src/internal/renderer/input/InputProcessor.js.map +1 -0
- package/dist/src/internal/renderer/input/index.d.ts +2 -0
- package/dist/src/internal/renderer/input/index.d.ts.map +1 -0
- package/dist/src/internal/renderer/input/index.js +2 -0
- package/dist/src/internal/renderer/input/index.js.map +1 -0
- package/dist/src/internal/renderer/lifecycle/EventBus.d.ts +42 -0
- package/dist/src/internal/renderer/lifecycle/EventBus.d.ts.map +1 -0
- package/dist/src/internal/renderer/lifecycle/EventBus.js +97 -0
- package/dist/src/internal/renderer/lifecycle/EventBus.js.map +1 -0
- package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.d.ts +13 -0
- package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.d.ts.map +1 -0
- package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.js +111 -0
- package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.js.map +1 -0
- package/dist/src/internal/renderer/lifecycle/RenderCache.d.ts +3 -0
- package/dist/src/internal/renderer/lifecycle/RenderCache.d.ts.map +1 -0
- package/dist/src/internal/renderer/lifecycle/RenderCache.js +9 -0
- package/dist/src/internal/renderer/lifecycle/RenderCache.js.map +1 -0
- package/dist/src/internal/renderer/lifecycle/index.d.ts +4 -0
- package/dist/src/internal/renderer/lifecycle/index.d.ts.map +1 -0
- package/dist/src/internal/renderer/lifecycle/index.js +4 -0
- package/dist/src/internal/renderer/lifecycle/index.js.map +1 -0
- package/dist/src/internal/renderer/modes/FullscreenRenderer.d.ts +12 -0
- package/dist/src/internal/renderer/modes/FullscreenRenderer.d.ts.map +1 -0
- package/dist/src/internal/renderer/modes/FullscreenRenderer.js +54 -0
- package/dist/src/internal/renderer/modes/FullscreenRenderer.js.map +1 -0
- package/dist/src/internal/renderer/modes/InlineRenderer.d.ts +25 -0
- package/dist/src/internal/renderer/modes/InlineRenderer.d.ts.map +1 -0
- package/dist/src/internal/renderer/modes/InlineRenderer.js +166 -0
- package/dist/src/internal/renderer/modes/InlineRenderer.js.map +1 -0
- package/dist/src/internal/renderer/modes/RendererMode.d.ts +42 -0
- package/dist/src/internal/renderer/modes/RendererMode.d.ts.map +1 -0
- package/dist/src/internal/renderer/modes/RendererMode.js +2 -0
- package/dist/src/internal/renderer/modes/RendererMode.js.map +1 -0
- package/dist/src/internal/renderer/modes/StaticContentRenderer.d.ts +25 -0
- package/dist/src/internal/renderer/modes/StaticContentRenderer.d.ts.map +1 -0
- package/dist/src/internal/renderer/modes/StaticContentRenderer.js +49 -0
- package/dist/src/internal/renderer/modes/StaticContentRenderer.js.map +1 -0
- package/dist/src/internal/renderer/modes/index.d.ts +5 -0
- package/dist/src/internal/renderer/modes/index.d.ts.map +1 -0
- package/dist/src/internal/renderer/modes/index.js +4 -0
- package/dist/src/internal/renderer/modes/index.js.map +1 -0
- package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.d.ts +13 -0
- package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.d.ts.map +1 -0
- package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.js +75 -0
- package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.js.map +1 -0
- package/dist/src/internal/renderer/terminal/TerminalSetup.d.ts +29 -0
- package/dist/src/internal/renderer/terminal/TerminalSetup.d.ts.map +1 -0
- package/dist/src/internal/renderer/terminal/TerminalSetup.js +82 -0
- package/dist/src/internal/renderer/terminal/TerminalSetup.js.map +1 -0
- package/dist/src/internal/renderer/terminal/index.d.ts +3 -0
- package/dist/src/internal/renderer/terminal/index.d.ts.map +1 -0
- package/dist/src/internal/renderer/terminal/index.js +3 -0
- package/dist/src/internal/renderer/terminal/index.js.map +1 -0
- package/dist/src/internal/renderer/types.d.ts +118 -0
- package/dist/src/internal/renderer/types.d.ts.map +1 -0
- package/dist/src/internal/renderer/types.js +2 -0
- package/dist/src/internal/renderer/types.js.map +1 -0
- package/dist/src/renderer-context.d.ts +1 -8
- package/dist/src/renderer-context.d.ts.map +1 -1
- package/dist/src/renderer-context.js +1 -21
- package/dist/src/renderer-context.js.map +1 -1
- package/dist/src/renderer-types.d.ts +1 -115
- package/dist/src/renderer-types.d.ts.map +1 -1
- package/dist/src/renderer.d.ts +1 -31
- package/dist/src/renderer.d.ts.map +1 -1
- package/dist/src/renderer.js +1 -495
- package/dist/src/renderer.js.map +1 -1
- package/dist/src/test/render-tui.d.ts +3 -3
- package/dist/src/test/render-tui.d.ts.map +1 -1
- package/dist/src/test/render-tui.js +16 -9
- package/dist/src/test/render-tui.js.map +1 -1
- package/dist/src/utils/alignment.d.ts +1 -1
- package/dist/src/utils/alignment.d.ts.map +1 -1
- package/dist/src/utils/alignment.js +0 -2
- package/dist/src/utils/alignment.js.map +1 -1
- package/dist/src/utils/console-helpers.d.ts +19 -0
- package/dist/src/utils/console-helpers.d.ts.map +1 -0
- package/dist/src/utils/console-helpers.js +61 -0
- package/dist/src/utils/console-helpers.js.map +1 -0
- 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/styles.d.ts +8 -1
- package/dist/src/utils/styles.d.ts.map +1 -1
- package/dist/src/utils/styles.js +10 -8
- package/dist/src/utils/styles.js.map +1 -1
- package/dist/src/utils/text-wrap.d.ts +5 -0
- package/dist/src/utils/text-wrap.d.ts.map +1 -1
- package/dist/src/utils/text-wrap.js +110 -48
- package/dist/src/utils/text-wrap.js.map +1 -1
- package/dist/src/visualize/index.js +1 -1
- package/dist/src/visualize/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/components/ListView.tsx +21 -23
- package/src/console/ConsolePopover.tsx +124 -107
- package/src/debug/DebugOverlay.ts +15 -74
- package/src/debug/DiagnosticsPanel.tsx +1 -1
- package/src/dev.tsx +5 -458
- package/src/hooks/use-scroll.ts +85 -145
- package/src/hosts/canvas.ts +8 -11
- package/src/hosts/codeblock.ts +2 -2
- package/src/hosts/flex-container.ts +4 -4
- package/src/hosts/index.ts +10 -1
- package/src/hosts/layout-helpers.ts +20 -0
- package/src/hosts/leaf.ts +36 -0
- package/src/hosts/overlay.ts +11 -9
- package/src/hosts/scroll.ts +94 -69
- package/src/hosts/spacer.ts +2 -2
- package/src/hosts/text.ts +5 -58
- package/src/hosts/vstack.ts +1 -1
- package/src/hosts/zstack.ts +7 -7
- package/src/index.ts +1 -1
- package/src/internal/dev/hmr.ts +101 -0
- package/src/internal/dev/runtime.ts +170 -0
- package/src/internal/dev/ui.tsx +87 -0
- package/src/internal/renderer/context.ts +27 -0
- package/src/{renderer → internal/renderer}/core/FrameBuilder.ts +2 -2
- package/src/internal/renderer/index.ts +656 -0
- package/src/{renderer → internal/renderer}/input/InputProcessor.ts +10 -1
- package/src/{renderer → internal/renderer}/lifecycle/EventBus.ts +9 -1
- package/src/internal/renderer/lifecycle/ProcessLifecycle.ts +125 -0
- package/src/internal/renderer/lifecycle/index.ts +3 -0
- package/src/{renderer → internal/renderer}/modes/InlineRenderer.ts +5 -2
- package/src/{renderer → internal/renderer}/modes/RendererMode.ts +1 -1
- package/src/{renderer → internal/renderer}/modes/StaticContentRenderer.ts +5 -2
- package/src/internal/renderer/terminal/KeyboardCapabilityProbe.ts +91 -0
- package/src/{renderer/lifecycle → internal/renderer/terminal}/TerminalSetup.ts +4 -22
- package/src/internal/renderer/terminal/index.ts +2 -0
- package/src/internal/renderer/types.ts +125 -0
- package/src/renderer-context.ts +1 -27
- package/src/renderer-types.ts +10 -123
- package/src/renderer.ts +1 -619
- package/src/test/render-tui.ts +16 -10
- package/src/utils/alignment.ts +1 -3
- package/src/utils/console-helpers.ts +86 -0
- package/src/utils/index.ts +1 -1
- package/src/utils/styles.ts +16 -4
- package/src/utils/text-wrap.ts +139 -48
- package/src/visualize/index.tsx +1 -1
- package/src/renderer/lifecycle/ResizeManager.ts +0 -65
- package/src/renderer/lifecycle/index.ts +0 -4
- /package/src/{renderer → internal/renderer}/core/RendererState.ts +0 -0
- /package/src/{renderer → internal/renderer}/core/index.ts +0 -0
- /package/src/{renderer → internal/renderer}/input/index.ts +0 -0
- /package/src/{renderer → internal/renderer}/lifecycle/RenderCache.ts +0 -0
- /package/src/{renderer → internal/renderer}/modes/FullscreenRenderer.ts +0 -0
- /package/src/{renderer → internal/renderer}/modes/index.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/internal/dev/ui.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAwCzB,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,eAAe,mBAmC7D"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "@effect-tui/react/jsx-runtime";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { Overlay } from "../../components/Overlay.js";
|
|
4
|
+
import { ConsolePopover } from "../../console/ConsolePopover.js";
|
|
5
|
+
import { copyToClipboard, copyToClipboardSync } from "../../console/clipboard.js";
|
|
6
|
+
import { useConsole } from "../../console/useConsole.js";
|
|
7
|
+
import { ToastContainer, ToastProvider, useToast } from "../../dev/Toast.js";
|
|
8
|
+
import { useKeyboard } from "../../hooks/use-keyboard.js";
|
|
9
|
+
import { useRenderer } from "../renderer/context.js";
|
|
10
|
+
/**
|
|
11
|
+
* Internal component that handles screenshot with toast notification
|
|
12
|
+
*/
|
|
13
|
+
function ScreenshotHandler() {
|
|
14
|
+
const renderer = useRenderer();
|
|
15
|
+
const { show } = useToast();
|
|
16
|
+
useKeyboard((key) => {
|
|
17
|
+
// ~ (tilde) - screenshot
|
|
18
|
+
if (key.name === "char" && key.text === "~") {
|
|
19
|
+
const ansiOutput = renderer.getScreenshot();
|
|
20
|
+
if (!ansiOutput)
|
|
21
|
+
return;
|
|
22
|
+
// Copy actual content to clipboard
|
|
23
|
+
const copied = copyToClipboardSync(ansiOutput);
|
|
24
|
+
if (!copied) {
|
|
25
|
+
copyToClipboard(ansiOutput);
|
|
26
|
+
}
|
|
27
|
+
// Also save to file as backup
|
|
28
|
+
const tmpPath = `/tmp/tui-screenshot-${Date.now()}.txt`;
|
|
29
|
+
Bun.write(tmpPath, ansiOutput);
|
|
30
|
+
show("Screenshot copied!", "screenshot", 2500);
|
|
31
|
+
key.preventDefault?.();
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Wrapper component that provides dev mode features:
|
|
38
|
+
* - Debug console panel (` backtick to toggle)
|
|
39
|
+
* - Screenshot support (~ tilde) with toast notification
|
|
40
|
+
* - Auto-show console on errors
|
|
41
|
+
*/
|
|
42
|
+
export function DevWrapper({ children, mode }) {
|
|
43
|
+
const { visible } = useConsole({ autoShowOnError: true, initiallyVisible: false });
|
|
44
|
+
// Inline mode: content flows naturally in vstack
|
|
45
|
+
if (mode === "inline") {
|
|
46
|
+
return (_jsx(ToastProvider, { children: _jsxs("vstack", { children: [_jsx(ScreenshotHandler, {}), _jsx(ToastContainer, {}), children, visible && _jsx(ConsolePopover, { fixedHeight: 5, mode: "inline", showStatsTab: true })] }) }));
|
|
47
|
+
}
|
|
48
|
+
// Fullscreen mode: Overlay with toast/console positioned by alignment
|
|
49
|
+
return (_jsx(ToastProvider, { children: _jsxs(Overlay, { children: [_jsx(ScreenshotHandler, {}), children, visible && (_jsx(Overlay.Item, { alignment: { v: "bottom" }, children: _jsx(ConsolePopover, { fixedHeight: 12, showStatsTab: true }) })), _jsx(Overlay.Item, { alignment: { v: "top" }, children: _jsx(ToastContainer, {}) })] }) }));
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../../src/internal/dev/ui.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD;;GAEG;AACH,SAAS,iBAAiB;IACzB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAA;IAE3B,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,yBAAyB;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAA;YAC3C,IAAI,CAAC,UAAU;gBAAE,OAAM;YAEvB,mCAAmC;YACnC,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;YAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,eAAe,CAAC,UAAU,CAAC,CAAA;YAC5B,CAAC;YAED,8BAA8B;YAC9B,MAAM,OAAO,GAAG,uBAAuB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAA;YACvD,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAE9B,IAAI,CAAC,oBAAoB,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;YAC9C,GAAG,CAAC,cAAc,EAAE,EAAE,CAAA;QACvB,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACZ,CAAC;AAOD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAmB;IAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAA;IAElF,iDAAiD;IACjD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CACN,KAAC,aAAa,cACb,6BACC,KAAC,iBAAiB,KAAG,EACrB,KAAC,cAAc,KAAG,EACjB,QAAQ,EACR,OAAO,IAAI,KAAC,cAAc,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAC,QAAQ,EAAC,YAAY,SAAG,IACjE,GACM,CAChB,CAAA;IACF,CAAC;IAED,sEAAsE;IACtE,OAAO,CACN,KAAC,aAAa,cACb,MAAC,OAAO,eACP,KAAC,iBAAiB,KAAG,EACpB,QAAQ,EAER,OAAO,IAAI,CACX,KAAC,OAAO,CAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,YACvC,KAAC,cAAc,IAAC,WAAW,EAAE,EAAE,EAAE,YAAY,SAAG,GAClC,CACf,EACD,KAAC,OAAO,CAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,YACpC,KAAC,cAAc,KAAG,GACJ,IACN,GACK,CAChB,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TuiRenderer } from "./types.js";
|
|
2
|
+
export declare const RendererContext: import("react").Context<TuiRenderer | null>;
|
|
3
|
+
export declare function useRenderer(): TuiRenderer;
|
|
4
|
+
/** Hook that returns terminal size and re-renders on resize */
|
|
5
|
+
export declare function useTerminalSize(): {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/internal/renderer/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG7C,eAAO,MAAM,eAAe,6CAA0C,CAAA;AAEtE,wBAAgB,WAAW,IAAI,WAAW,CAMzC;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAWnE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createContext, useContext, useEffect, useState } from "react";
|
|
2
|
+
// Context for accessing renderer in components
|
|
3
|
+
export const RendererContext = createContext(null);
|
|
4
|
+
export function useRenderer() {
|
|
5
|
+
const renderer = useContext(RendererContext);
|
|
6
|
+
if (!renderer) {
|
|
7
|
+
throw new Error("useRenderer must be used within a TUI renderer");
|
|
8
|
+
}
|
|
9
|
+
return renderer;
|
|
10
|
+
}
|
|
11
|
+
/** Hook that returns terminal size and re-renders on resize */
|
|
12
|
+
export function useTerminalSize() {
|
|
13
|
+
const renderer = useRenderer();
|
|
14
|
+
const [size, setSize] = useState({ width: renderer.width, height: renderer.height });
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
return renderer.onResize((width, height) => {
|
|
17
|
+
setSize({ width, height });
|
|
18
|
+
});
|
|
19
|
+
}, [renderer]);
|
|
20
|
+
return size;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/internal/renderer/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGtE,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAqB,IAAI,CAAC,CAAA;AAEtE,MAAM,UAAU,WAAW;IAC1B,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;IAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,QAAQ,CAAA;AAChB,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,eAAe;IAC9B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAEpF,SAAS,CAAC,GAAG,EAAE;QACd,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,OAAO,IAAI,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CellBuffer, Palette } from "@effect-tui/core";
|
|
2
|
+
import type { HostInstance } from "../../../reconciler/types.js";
|
|
3
|
+
export interface FrameTimings {
|
|
4
|
+
clear: number;
|
|
5
|
+
layout: number;
|
|
6
|
+
render: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Handles the measure → layout → render pipeline for a single frame.
|
|
10
|
+
*/
|
|
11
|
+
export declare class FrameBuilder {
|
|
12
|
+
/**
|
|
13
|
+
* Execute the frame pipeline: clear buffer, measure, layout, and render.
|
|
14
|
+
* Returns timing information for each phase.
|
|
15
|
+
*/
|
|
16
|
+
build(root: HostInstance, buffer: CellBuffer, palette: Palette, width: number, height: number): FrameTimings;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=FrameBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/internal/renderer/core/FrameBuilder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEhE,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,qBAAa,YAAY;IACxB;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY;CAgC5G"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { performance } from "node:perf_hooks";
|
|
2
|
+
import * as Prof from "../../../profiler.js";
|
|
3
|
+
/**
|
|
4
|
+
* Handles the measure → layout → render pipeline for a single frame.
|
|
5
|
+
*/
|
|
6
|
+
export class FrameBuilder {
|
|
7
|
+
/**
|
|
8
|
+
* Execute the frame pipeline: clear buffer, measure, layout, and render.
|
|
9
|
+
* Returns timing information for each phase.
|
|
10
|
+
*/
|
|
11
|
+
build(root, buffer, palette, width, height) {
|
|
12
|
+
// Pre-frame cache prep (optional)
|
|
13
|
+
root.prepareFrame?.();
|
|
14
|
+
// Clear buffer
|
|
15
|
+
let t = Prof.startPhase();
|
|
16
|
+
const clearStart = performance.now();
|
|
17
|
+
buffer.clear(0);
|
|
18
|
+
const clearMs = performance.now() - clearStart;
|
|
19
|
+
Prof.endPhase("clear", t);
|
|
20
|
+
// Layout (measure + position)
|
|
21
|
+
t = Prof.startPhase();
|
|
22
|
+
const layoutStart = performance.now();
|
|
23
|
+
root.measure(width, height);
|
|
24
|
+
root.layout({ x: 0, y: 0, w: width, h: height });
|
|
25
|
+
const layoutMs = performance.now() - layoutStart;
|
|
26
|
+
Prof.endPhase("layout", t);
|
|
27
|
+
// Render
|
|
28
|
+
t = Prof.startPhase();
|
|
29
|
+
const renderStart = performance.now();
|
|
30
|
+
root.render(buffer, palette);
|
|
31
|
+
const renderMs = performance.now() - renderStart;
|
|
32
|
+
Prof.endPhase("render", t);
|
|
33
|
+
return {
|
|
34
|
+
clear: clearMs,
|
|
35
|
+
layout: layoutMs,
|
|
36
|
+
render: renderMs,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=FrameBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameBuilder.js","sourceRoot":"","sources":["../../../../../src/internal/renderer/core/FrameBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAA;AAS5C;;GAEG;AACH,MAAM,OAAO,YAAY;IACxB;;;OAGG;IACH,KAAK,CAAC,IAAkB,EAAE,MAAkB,EAAE,OAAgB,EAAE,KAAa,EAAE,MAAc;QAC5F,kCAAkC;QAClC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAA;QAErB,eAAe;QACf,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACzB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACpC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACf,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAA;QAC9C,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAEzB,8BAA8B;QAC9B,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACrB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACrC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAA;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAE1B,SAAS;QACT,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QACrB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;QACrC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAC5B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAA;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAE1B,OAAO;YACN,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;SAChB,CAAA;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CellBuffer, Palette } from "@effect-tui/core";
|
|
2
|
+
/**
|
|
3
|
+
* Mutable state for the renderer.
|
|
4
|
+
* Centralized to make state management explicit and easier to track.
|
|
5
|
+
*/
|
|
6
|
+
export declare class RendererState {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
lastWidth: number;
|
|
10
|
+
dirty: boolean;
|
|
11
|
+
running: boolean;
|
|
12
|
+
prevBuffer: CellBuffer | null;
|
|
13
|
+
nextBuffer: CellBuffer | null;
|
|
14
|
+
readonly palette: Palette;
|
|
15
|
+
loop: ReturnType<typeof setInterval> | null;
|
|
16
|
+
inputHandler: ((data: Buffer) => void) | null;
|
|
17
|
+
resizeHandler: (() => void) | null;
|
|
18
|
+
constructor(width: number, height: number);
|
|
19
|
+
/**
|
|
20
|
+
* Ensure buffers exist and are correctly sized.
|
|
21
|
+
* Call this at the start of each frame.
|
|
22
|
+
*/
|
|
23
|
+
ensureBuffers(width: number, height: number): void;
|
|
24
|
+
/**
|
|
25
|
+
* Swap prev and next buffers after rendering.
|
|
26
|
+
*/
|
|
27
|
+
swapBuffers(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Invalidate buffers (e.g., on resize).
|
|
30
|
+
*/
|
|
31
|
+
invalidateBuffers(): void;
|
|
32
|
+
/**
|
|
33
|
+
* Mark as needing render.
|
|
34
|
+
*/
|
|
35
|
+
markDirty(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Update dimensions.
|
|
38
|
+
*/
|
|
39
|
+
updateDimensions(width: number, height: number): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=RendererState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RendererState.d.ts","sourceRoot":"","sources":["../../../../../src/internal/renderer/core/RendererState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEtD;;;GAGG;AACH,qBAAa,aAAa;IAEzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IAGjB,KAAK,UAAO;IACZ,OAAO,UAAO;IAGd,UAAU,EAAE,UAAU,GAAG,IAAI,CAAO;IACpC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAO;IACpC,QAAQ,CAAC,OAAO,UAAgB;IAGhC,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAO;IAGlD,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAO;IACpD,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAO;gBAE7B,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAMzC;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IASlD;;OAEG;IACH,WAAW,IAAI,IAAI;IAMnB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAKzB;;OAEG;IACH,SAAS,IAAI,IAAI;IAIjB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAKrD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { CellBuffer, Palette } from "@effect-tui/core";
|
|
2
|
+
/**
|
|
3
|
+
* Mutable state for the renderer.
|
|
4
|
+
* Centralized to make state management explicit and easier to track.
|
|
5
|
+
*/
|
|
6
|
+
export class RendererState {
|
|
7
|
+
// Dimensions
|
|
8
|
+
width;
|
|
9
|
+
height;
|
|
10
|
+
lastWidth;
|
|
11
|
+
// Rendering flags
|
|
12
|
+
dirty = true;
|
|
13
|
+
running = true;
|
|
14
|
+
// Buffers (double-buffered for diffing)
|
|
15
|
+
prevBuffer = null;
|
|
16
|
+
nextBuffer = null;
|
|
17
|
+
palette = new Palette();
|
|
18
|
+
// Loop handle
|
|
19
|
+
loop = null;
|
|
20
|
+
// Event handler references for cleanup
|
|
21
|
+
inputHandler = null;
|
|
22
|
+
resizeHandler = null;
|
|
23
|
+
constructor(width, height) {
|
|
24
|
+
this.width = width;
|
|
25
|
+
this.height = height;
|
|
26
|
+
this.lastWidth = width;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Ensure buffers exist and are correctly sized.
|
|
30
|
+
* Call this at the start of each frame.
|
|
31
|
+
*/
|
|
32
|
+
ensureBuffers(width, height) {
|
|
33
|
+
if (!this.prevBuffer || !this.nextBuffer || this.prevBuffer.w !== width || this.prevBuffer.h !== height) {
|
|
34
|
+
this.prevBuffer = new CellBuffer(width, height);
|
|
35
|
+
this.nextBuffer = new CellBuffer(width, height);
|
|
36
|
+
this.prevBuffer.clear(0);
|
|
37
|
+
this.nextBuffer.clear(0);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Swap prev and next buffers after rendering.
|
|
42
|
+
*/
|
|
43
|
+
swapBuffers() {
|
|
44
|
+
const tmp = this.prevBuffer;
|
|
45
|
+
this.prevBuffer = this.nextBuffer;
|
|
46
|
+
this.nextBuffer = tmp;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Invalidate buffers (e.g., on resize).
|
|
50
|
+
*/
|
|
51
|
+
invalidateBuffers() {
|
|
52
|
+
this.prevBuffer = null;
|
|
53
|
+
this.nextBuffer = null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Mark as needing render.
|
|
57
|
+
*/
|
|
58
|
+
markDirty() {
|
|
59
|
+
this.dirty = true;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Update dimensions.
|
|
63
|
+
*/
|
|
64
|
+
updateDimensions(width, height) {
|
|
65
|
+
this.width = width;
|
|
66
|
+
this.height = height;
|
|
67
|
+
this.lastWidth = width;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=RendererState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RendererState.js","sourceRoot":"","sources":["../../../../../src/internal/renderer/core/RendererState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAEtD;;;GAGG;AACH,MAAM,OAAO,aAAa;IACzB,aAAa;IACb,KAAK,CAAQ;IACb,MAAM,CAAQ;IACd,SAAS,CAAQ;IAEjB,kBAAkB;IAClB,KAAK,GAAG,IAAI,CAAA;IACZ,OAAO,GAAG,IAAI,CAAA;IAEd,wCAAwC;IACxC,UAAU,GAAsB,IAAI,CAAA;IACpC,UAAU,GAAsB,IAAI,CAAA;IAC3B,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAEhC,cAAc;IACd,IAAI,GAA0C,IAAI,CAAA;IAElD,uCAAuC;IACvC,YAAY,GAAoC,IAAI,CAAA;IACpD,aAAa,GAAwB,IAAI,CAAA;IAEzC,YAAY,KAAa,EAAE,MAAc;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACvB,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,KAAa,EAAE,MAAc;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YACzG,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;YAC/C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACzB,CAAC;IACF,CAAC;IAED;;OAEG;IACH,WAAW;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAA;QACjC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,iBAAiB;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,SAAS;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IAClB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,KAAa,EAAE,MAAc;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACvB,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/renderer/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/renderer/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import type { RendererOptions, TuiRenderer } from "./types.js";
|
|
3
|
+
export { RendererContext, useRenderer, useTerminalSize } from "./context.js";
|
|
4
|
+
export type { FrameStats, PasteMsg, RendererOptions, TuiReadStream, TuiRenderer, TuiWriteStream, } from "./types.js";
|
|
5
|
+
export declare function createRenderer(options?: RendererOptions): TuiRenderer;
|
|
6
|
+
export interface Root {
|
|
7
|
+
render(element: ReactNode, sync?: boolean): void;
|
|
8
|
+
unmount(): void;
|
|
9
|
+
}
|
|
10
|
+
export declare function createRoot(renderer: TuiRenderer): Root;
|
|
11
|
+
export interface RenderInstance {
|
|
12
|
+
renderer: TuiRenderer;
|
|
13
|
+
root: Root;
|
|
14
|
+
rerender(element: ReactNode): void;
|
|
15
|
+
unmount(): void;
|
|
16
|
+
waitUntilExit(): Promise<void>;
|
|
17
|
+
/** Cleanly exit the application, restoring terminal state before process.exit() */
|
|
18
|
+
quit(code?: number): void;
|
|
19
|
+
}
|
|
20
|
+
export type ImportMetaLike = {
|
|
21
|
+
url: string;
|
|
22
|
+
main?: boolean;
|
|
23
|
+
};
|
|
24
|
+
type RenderBaseOptions = {
|
|
25
|
+
/** Render mode: fullscreen (default) or inline. */
|
|
26
|
+
mode?: RendererOptions["mode"];
|
|
27
|
+
};
|
|
28
|
+
type RenderDevOptions = RenderBaseOptions & {
|
|
29
|
+
/** Enable dev runtime (HMR, console overlay, remote control). */
|
|
30
|
+
dev: true;
|
|
31
|
+
/** Required in dev mode. */
|
|
32
|
+
importMeta: ImportMetaLike;
|
|
33
|
+
};
|
|
34
|
+
type RenderRuntimeOptions = RenderBaseOptions & {
|
|
35
|
+
/** Dev mode disabled (default). */
|
|
36
|
+
dev?: false | undefined;
|
|
37
|
+
};
|
|
38
|
+
export type RenderOptions = RenderDevOptions | RenderRuntimeOptions;
|
|
39
|
+
export declare function render(element: ReactNode, options?: RenderOptions): RenderInstance;
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/internal/renderer/index.ts"],"names":[],"mappings":"AAGA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAe7C,OAAO,KAAK,EAIX,eAAe,EAEf,WAAW,EAGX,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE5E,YAAY,EACX,UAAU,EACV,QAAQ,EACR,eAAe,EACf,aAAa,EACb,WAAW,EACX,cAAc,GACd,MAAM,YAAY,CAAA;AAInB,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,WAAW,CAoarE;AAED,MAAM,WAAW,IAAI;IACpB,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAChD,OAAO,IAAI,IAAI,CAAA;CACf;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CA+CtD;AAGD,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,WAAW,CAAA;IACrB,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAA;IAClC,OAAO,IAAI,IAAI,CAAA;IACf,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,mFAAmF;IACnF,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,iBAAiB,GAAG;IACxB,mDAAmD;IACnD,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;CAC9B,CAAA;AAED,KAAK,gBAAgB,GAAG,iBAAiB,GAAG;IAC3C,iEAAiE;IACjE,GAAG,EAAE,IAAI,CAAA;IACT,4BAA4B;IAC5B,UAAU,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,KAAK,oBAAoB,GAAG,iBAAiB,GAAG;IAC/C,mCAAmC;IACnC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,oBAAoB,CAAA;AAmEnE,wBAAgB,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CAqClF"}
|