@xincli/opentui-core 0.4.6 → 0.4.7
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/LICENSE +21 -0
- package/NativeSpanFeed.d.ts +52 -0
- package/README.md +0 -0
- package/Renderable.d.ts +346 -0
- package/animation/Timeline.d.ts +126 -0
- package/ansi.d.ts +17 -0
- package/audio.d.ts +89 -0
- package/buffer.d.ts +113 -0
- package/console.d.ts +146 -0
- package/edit-buffer.d.ts +97 -0
- package/editor-view.d.ts +72 -0
- package/index-m1y9e40w.js +10045 -0
- package/index-m1y9e40w.js.map +32 -0
- package/index-sqk4ajdf.js +16121 -0
- package/index-sqk4ajdf.js.map +58 -0
- package/index.d.ts +24 -0
- package/index.js +11709 -0
- package/index.js.map +35 -0
- package/lib/KeyHandler.d.ts +61 -0
- package/lib/RGBA.d.ts +42 -0
- package/lib/ascii.font.d.ts +508 -0
- package/lib/border.d.ts +51 -0
- package/lib/bunfs.d.ts +7 -0
- package/lib/clipboard.d.ts +15 -0
- package/lib/clock.d.ts +15 -0
- package/lib/data-paths.d.ts +26 -0
- package/lib/debounce.d.ts +42 -0
- package/lib/detect-links.d.ts +6 -0
- package/lib/env.d.ts +42 -0
- package/lib/extmarks-history.d.ts +17 -0
- package/lib/extmarks.d.ts +90 -0
- package/lib/hast-styled-text.d.ts +17 -0
- package/lib/index.d.ts +22 -0
- package/lib/keybinding.internal.d.ts +33 -0
- package/lib/objects-in-viewport.d.ts +24 -0
- package/lib/output.capture.d.ts +24 -0
- package/lib/parse.keypress-kitty.d.ts +3 -0
- package/lib/parse.keypress.d.ts +27 -0
- package/lib/parse.mouse.d.ts +30 -0
- package/lib/paste.d.ts +7 -0
- package/lib/queue.d.ts +15 -0
- package/lib/render-geometry.d.ts +8 -0
- package/lib/renderable.validations.d.ts +12 -0
- package/lib/scroll-acceleration.d.ts +43 -0
- package/lib/selection.d.ts +64 -0
- package/lib/singleton.d.ts +8 -0
- package/lib/stdin-parser.d.ts +90 -0
- package/lib/styled-text.d.ts +63 -0
- package/lib/terminal-capability-detection.d.ts +32 -0
- package/lib/terminal-palette.d.ts +65 -0
- package/lib/tree-sitter/assets/update.d.ts +12 -0
- package/lib/tree-sitter/client.d.ts +65 -0
- package/lib/tree-sitter/default-parsers.d.ts +2 -0
- package/lib/tree-sitter/download-utils.d.ts +21 -0
- package/lib/tree-sitter/index.d.ts +7 -0
- package/lib/tree-sitter/parser.worker.d.ts +1 -0
- package/lib/tree-sitter/parsers-config.d.ts +53 -0
- package/lib/tree-sitter/resolve-ft.d.ts +5 -0
- package/lib/tree-sitter/types.d.ts +185 -0
- package/lib/tree-sitter/update-assets.d.ts +3 -0
- package/lib/tree-sitter/update-assets.js +379 -0
- package/lib/tree-sitter/update-assets.js.map +12 -0
- package/lib/tree-sitter-styled-text.d.ts +16 -0
- package/lib/validate-dir-name.d.ts +1 -0
- package/lib/yoga.options.d.ts +32 -0
- package/native-event-worker-repro.worker.d.ts +1 -0
- package/package.json +52 -74
- package/parser.worker.js +1399 -0
- package/parser.worker.js.map +20 -0
- package/platform/ffi.d.ts +129 -0
- package/platform/runtime.d.ts +14 -0
- package/platform/test.d.ts +12 -0
- package/platform/worker.d.ts +26 -0
- package/platform/worker.node-test.d.ts +1 -0
- package/plugins/core-slot.d.ts +72 -0
- package/plugins/registry.d.ts +42 -0
- package/plugins/types.d.ts +34 -0
- package/post/effects.d.ts +147 -0
- package/post/filters.d.ts +65 -0
- package/post/matrices.d.ts +20 -0
- package/renderables/ASCIIFont.d.ts +52 -0
- package/renderables/Box.d.ts +85 -0
- package/renderables/Code.d.ts +97 -0
- package/renderables/Diff.d.ts +147 -0
- package/renderables/EditBufferRenderable.d.ts +238 -0
- package/renderables/FrameBuffer.d.ts +16 -0
- package/renderables/Input.d.ts +72 -0
- package/renderables/LineNumberRenderable.d.ts +78 -0
- package/renderables/Markdown.d.ts +255 -0
- package/renderables/ScrollBar.d.ts +77 -0
- package/renderables/ScrollBox.d.ts +128 -0
- package/renderables/Select.d.ts +122 -0
- package/renderables/Slider.d.ts +47 -0
- package/renderables/TabSelect.d.ts +98 -0
- package/renderables/Text.d.ts +36 -0
- package/renderables/TextBufferRenderable.d.ts +107 -0
- package/renderables/TextNode.d.ts +92 -0
- package/renderables/TextTable.d.ts +154 -0
- package/renderables/Textarea.d.ts +65 -0
- package/renderables/TimeToFirstDraw.d.ts +24 -0
- package/renderables/__tests__/renderable-test-utils.d.ts +12 -0
- package/renderables/composition/VRenderable.d.ts +16 -0
- package/renderables/composition/constructs.d.ts +35 -0
- package/renderables/composition/vnode.d.ts +46 -0
- package/renderables/index.d.ts +23 -0
- package/renderables/markdown-parser.d.ts +11 -0
- package/renderer-theme-mode.d.ts +29 -0
- package/renderer.d.ts +601 -0
- package/runtime-plugin-support-configure.d.ts +4 -0
- package/runtime-plugin-support-configure.js +36 -0
- package/runtime-plugin-support-configure.js.map +1 -0
- package/runtime-plugin-support-configure.node.js +15 -0
- package/runtime-plugin-support.d.ts +3 -0
- package/runtime-plugin-support.js +5 -0
- package/runtime-plugin-support.js.map +1 -0
- package/runtime-plugin-support.node.js +15 -0
- package/runtime-plugin.d.ts +16 -0
- package/runtime-plugin.js +473 -0
- package/runtime-plugin.js.map +1 -0
- package/runtime-plugin.node.js +15 -0
- package/syntax-style.d.ts +61 -0
- package/testing/bun-test-node.d.ts +87 -0
- package/testing/manual-clock.d.ts +17 -0
- package/testing/mock-keys.d.ts +81 -0
- package/testing/mock-mouse.d.ts +38 -0
- package/testing/mock-tree-sitter-client.d.ts +27 -0
- package/testing/spy.d.ts +7 -0
- package/testing/terminal-capabilities.d.ts +7 -0
- package/testing/test-recorder.d.ts +61 -0
- package/testing/test-renderer.d.ts +54 -0
- package/testing/test-streams.d.ts +12 -0
- package/testing.d.ts +8 -0
- package/testing.js +1004 -0
- package/testing.js.map +18 -0
- package/tests/yoga-upstream/tools/MeasureCounter.d.ts +16 -0
- package/tests/yoga-upstream/tools/utils.d.ts +11 -0
- package/text-buffer-view.d.ts +42 -0
- package/text-buffer.d.ts +66 -0
- package/types.d.ts +175 -0
- package/utils.d.ts +14 -0
- package/yoga.d.ts +437 -0
- package/yoga.js +193 -0
- package/yoga.js.map +9 -0
- package/zig-structs.d.ts +256 -0
- package/zig.d.ts +496 -0
- package/dev/keypress-debug-renderer.ts +0 -148
- package/dev/keypress-debug.ts +0 -43
- package/dev/print-env-vars.ts +0 -32
- package/dev/test-tmux-graphics-334.sh +0 -68
- package/dev/test-tmux-theme-queries.sh +0 -151
- package/dev/thai-debug-test.ts +0 -68
- package/dev/theme-mode.ts +0 -290
- package/docs/development.md +0 -144
- package/prebuilt/aarch64-android/libopentui.so +0 -0
- package/scripts/build-android.ts +0 -226
- package/scripts/build-native-termux.sh +0 -525
- package/scripts/build.ts +0 -530
- package/scripts/dist-test.ts +0 -312
- package/scripts/package-prebuilt.ts +0 -110
- package/scripts/publish.ts +0 -60
- package/scripts/test-node-hook.mjs +0 -16
- package/scripts/test-node.ts +0 -241
- package/scripts/vendor-deps.sh +0 -73
- package/src/NativeSpanFeed.ts +0 -375
- package/src/Renderable.ts +0 -1878
- package/src/__snapshots__/buffer.test.ts.snap +0 -28
- package/src/animation/Timeline.test.ts +0 -2709
- package/src/animation/Timeline.ts +0 -598
- package/src/ansi.ts +0 -22
- package/src/audio.ts +0 -479
- package/src/benchmark/attenuation-benchmark.ts +0 -81
- package/src/benchmark/audio-playback-benchmark.ts +0 -344
- package/src/benchmark/box-draw-benchmark.ts +0 -1042
- package/src/benchmark/colormatrix-benchmark.ts +0 -123
- package/src/benchmark/gain-benchmark.ts +0 -80
- package/src/benchmark/latest-all-bench-run.json +0 -707
- package/src/benchmark/latest-async-bench-run.json +0 -336
- package/src/benchmark/latest-default-bench-run.json +0 -657
- package/src/benchmark/latest-large-bench-run.json +0 -707
- package/src/benchmark/latest-quick-bench-run.json +0 -207
- package/src/benchmark/layout-benchmark.ts +0 -2547
- package/src/benchmark/markdown-benchmark.ts +0 -1796
- package/src/benchmark/native-span-feed-async-benchmark.ts +0 -355
- package/src/benchmark/native-span-feed-benchmark.md +0 -56
- package/src/benchmark/native-span-feed-benchmark.ts +0 -596
- package/src/benchmark/native-span-feed-compare.ts +0 -280
- package/src/benchmark/render-traversal-benchmark.ts +0 -928
- package/src/benchmark/text-buffer-render-benchmark.ts +0 -874
- package/src/benchmark/text-table-benchmark.ts +0 -948
- package/src/buffer.test.ts +0 -292
- package/src/buffer.ts +0 -564
- package/src/console.test.ts +0 -629
- package/src/console.ts +0 -1253
- package/src/edit-buffer.test.ts +0 -1852
- package/src/edit-buffer.ts +0 -417
- package/src/editor-view.test.ts +0 -1056
- package/src/editor-view.ts +0 -290
- package/src/index.ts +0 -25
- package/src/lib/KeyHandler.integration.test.ts +0 -292
- package/src/lib/KeyHandler.stopPropagation.test.ts +0 -289
- package/src/lib/KeyHandler.test.ts +0 -662
- package/src/lib/KeyHandler.ts +0 -222
- package/src/lib/RGBA.test.ts +0 -60
- package/src/lib/RGBA.ts +0 -343
- package/src/lib/ascii.font.ts +0 -330
- package/src/lib/border.test.ts +0 -83
- package/src/lib/border.ts +0 -170
- package/src/lib/bunfs.test.ts +0 -27
- package/src/lib/bunfs.ts +0 -18
- package/src/lib/clipboard.test.ts +0 -63
- package/src/lib/clipboard.ts +0 -41
- package/src/lib/clock.ts +0 -35
- package/src/lib/data-paths.test.ts +0 -133
- package/src/lib/data-paths.ts +0 -109
- package/src/lib/debounce.ts +0 -106
- package/src/lib/detect-links.test.ts +0 -98
- package/src/lib/detect-links.ts +0 -56
- package/src/lib/env.test.ts +0 -228
- package/src/lib/env.ts +0 -209
- package/src/lib/extmarks-history.ts +0 -51
- package/src/lib/extmarks-multiwidth.test.ts +0 -324
- package/src/lib/extmarks.test.ts +0 -3547
- package/src/lib/extmarks.ts +0 -861
- package/src/lib/fonts/block.json +0 -405
- package/src/lib/fonts/grid.json +0 -265
- package/src/lib/fonts/huge.json +0 -741
- package/src/lib/fonts/pallet.json +0 -314
- package/src/lib/fonts/shade.json +0 -591
- package/src/lib/fonts/slick.json +0 -321
- package/src/lib/fonts/tiny.json +0 -69
- package/src/lib/hast-styled-text.ts +0 -59
- package/src/lib/index.ts +0 -22
- package/src/lib/keybinding.internal.test.ts +0 -342
- package/src/lib/keybinding.internal.ts +0 -182
- package/src/lib/objects-in-viewport.test.ts +0 -789
- package/src/lib/objects-in-viewport.ts +0 -153
- package/src/lib/output.capture.ts +0 -58
- package/src/lib/parse.keypress-kitty.protocol.test.ts +0 -347
- package/src/lib/parse.keypress-kitty.test.ts +0 -712
- package/src/lib/parse.keypress-kitty.ts +0 -470
- package/src/lib/parse.keypress.test.ts +0 -2020
- package/src/lib/parse.keypress.ts +0 -480
- package/src/lib/parse.mouse.test.ts +0 -552
- package/src/lib/parse.mouse.ts +0 -232
- package/src/lib/paste.ts +0 -18
- package/src/lib/queue.ts +0 -65
- package/src/lib/render-geometry.ts +0 -36
- package/src/lib/renderable.validations.test.ts +0 -87
- package/src/lib/renderable.validations.ts +0 -83
- package/src/lib/scroll-acceleration.ts +0 -98
- package/src/lib/selection.ts +0 -261
- package/src/lib/singleton.ts +0 -34
- package/src/lib/stdin-parser.test.ts +0 -2439
- package/src/lib/stdin-parser.ts +0 -2007
- package/src/lib/styled-text.ts +0 -178
- package/src/lib/terminal-capability-detection.test.ts +0 -226
- package/src/lib/terminal-capability-detection.ts +0 -98
- package/src/lib/terminal-palette.test.ts +0 -954
- package/src/lib/terminal-palette.ts +0 -441
- package/src/lib/tree-sitter/assets/README.md +0 -119
- package/src/lib/tree-sitter/assets/update.ts +0 -360
- package/src/lib/tree-sitter/assets.d.ts +0 -9
- package/src/lib/tree-sitter/cache.test.ts +0 -291
- package/src/lib/tree-sitter/client.test.ts +0 -1434
- package/src/lib/tree-sitter/client.ts +0 -847
- package/src/lib/tree-sitter/default-parsers.ts +0 -133
- package/src/lib/tree-sitter/download-utils.ts +0 -148
- package/src/lib/tree-sitter/index.ts +0 -75
- package/src/lib/tree-sitter/parser.worker.ts +0 -1098
- package/src/lib/tree-sitter/parsers-config.ts +0 -81
- package/src/lib/tree-sitter/resolve-ft.test.ts +0 -55
- package/src/lib/tree-sitter/resolve-ft.ts +0 -189
- package/src/lib/tree-sitter/types.ts +0 -132
- package/src/lib/tree-sitter/update-assets.ts +0 -10
- package/src/lib/tree-sitter-styled-text.test.ts +0 -1253
- package/src/lib/tree-sitter-styled-text.ts +0 -314
- package/src/lib/validate-dir-name.ts +0 -55
- package/src/lib/yoga.options.test.ts +0 -628
- package/src/lib/yoga.options.ts +0 -346
- package/src/native-event-worker-repro.test.ts +0 -48
- package/src/native-event-worker-repro.worker.ts +0 -9
- package/src/native-handle.test.ts +0 -221
- package/src/platform/ffi.test.ts +0 -516
- package/src/platform/ffi.ts +0 -653
- package/src/platform/runtime.test.ts +0 -52
- package/src/platform/runtime.ts +0 -121
- package/src/platform/test.ts +0 -45
- package/src/platform/worker-handler-cleanup.fixture.ts +0 -12
- package/src/platform/worker-onmessage-startup.fixture.ts +0 -10
- package/src/platform/worker-startup.fixture.ts +0 -9
- package/src/platform/worker.node-test.ts +0 -153
- package/src/platform/worker.ts +0 -425
- package/src/plugins/core-slot.ts +0 -579
- package/src/plugins/registry.ts +0 -402
- package/src/plugins/types.ts +0 -46
- package/src/post/effects.ts +0 -948
- package/src/post/filters.ts +0 -512
- package/src/post/matrices.ts +0 -288
- package/src/renderables/ASCIIFont.ts +0 -219
- package/src/renderables/Box.test.ts +0 -474
- package/src/renderables/Box.ts +0 -353
- package/src/renderables/Code.test.ts +0 -2388
- package/src/renderables/Code.ts +0 -555
- package/src/renderables/Diff.regression.test.ts +0 -381
- package/src/renderables/Diff.test.ts +0 -3212
- package/src/renderables/Diff.ts +0 -1278
- package/src/renderables/EditBufferRenderable.test.ts +0 -288
- package/src/renderables/EditBufferRenderable.ts +0 -1152
- package/src/renderables/FrameBuffer.ts +0 -47
- package/src/renderables/Input.test.ts +0 -1310
- package/src/renderables/Input.ts +0 -273
- package/src/renderables/LineNumberRenderable.ts +0 -725
- package/src/renderables/Markdown.ts +0 -2144
- package/src/renderables/ScrollBar.ts +0 -423
- package/src/renderables/ScrollBox.ts +0 -903
- package/src/renderables/Select.test.ts +0 -1134
- package/src/renderables/Select.ts +0 -535
- package/src/renderables/Slider.test.ts +0 -456
- package/src/renderables/Slider.ts +0 -342
- package/src/renderables/TabSelect.test.ts +0 -238
- package/src/renderables/TabSelect.ts +0 -447
- package/src/renderables/Text.selection-buffer.test.ts +0 -118
- package/src/renderables/Text.test.ts +0 -2662
- package/src/renderables/Text.ts +0 -147
- package/src/renderables/TextBufferRenderable.ts +0 -504
- package/src/renderables/TextNode.test.ts +0 -1137
- package/src/renderables/TextNode.ts +0 -379
- package/src/renderables/TextTable.test.ts +0 -1411
- package/src/renderables/TextTable.ts +0 -1434
- package/src/renderables/Textarea.ts +0 -425
- package/src/renderables/TimeToFirstDraw.ts +0 -89
- package/src/renderables/__snapshots__/Code.test.ts.snap +0 -13
- package/src/renderables/__snapshots__/Diff.test.ts.snap +0 -785
- package/src/renderables/__snapshots__/Text.test.ts.snap +0 -421
- package/src/renderables/__snapshots__/TextTable.test.ts.snap +0 -215
- package/src/renderables/__tests__/Code.test.ts +0 -55
- package/src/renderables/__tests__/LineNumberRenderable.scrollbox-simple.test.ts +0 -144
- package/src/renderables/__tests__/LineNumberRenderable.scrollbox.test.ts +0 -827
- package/src/renderables/__tests__/LineNumberRenderable.test.ts +0 -1906
- package/src/renderables/__tests__/LineNumberRenderable.wrapping.test.ts +0 -85
- package/src/renderables/__tests__/Markdown.code-colors.test.ts +0 -288
- package/src/renderables/__tests__/Markdown.test.ts +0 -4175
- package/src/renderables/__tests__/MultiRenderable.selection.test.ts +0 -87
- package/src/renderables/__tests__/Textarea.buffer.test.ts +0 -683
- package/src/renderables/__tests__/Textarea.destroyed-events.test.ts +0 -675
- package/src/renderables/__tests__/Textarea.editing.test.ts +0 -2120
- package/src/renderables/__tests__/Textarea.error-handling.test.ts +0 -35
- package/src/renderables/__tests__/Textarea.events.test.ts +0 -738
- package/src/renderables/__tests__/Textarea.highlights.test.ts +0 -590
- package/src/renderables/__tests__/Textarea.keybinding.test.ts +0 -3275
- package/src/renderables/__tests__/Textarea.paste.test.ts +0 -357
- package/src/renderables/__tests__/Textarea.rendering.test.ts +0 -1927
- package/src/renderables/__tests__/Textarea.scroll.test.ts +0 -733
- package/src/renderables/__tests__/Textarea.selection.test.ts +0 -1589
- package/src/renderables/__tests__/Textarea.stress.test.ts +0 -670
- package/src/renderables/__tests__/Textarea.undo-redo.test.ts +0 -383
- package/src/renderables/__tests__/Textarea.visual-lines.test.ts +0 -310
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.code.test.ts.snap +0 -221
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox-simple.test.ts.snap +0 -89
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox.test.ts.snap +0 -457
- package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.test.ts.snap +0 -158
- package/src/renderables/__tests__/__snapshots__/Textarea.rendering.test.ts.snap +0 -387
- package/src/renderables/__tests__/markdown-parser.test.ts +0 -241
- package/src/renderables/__tests__/renderable-test-utils.ts +0 -60
- package/src/renderables/composition/README.md +0 -8
- package/src/renderables/composition/VRenderable.ts +0 -32
- package/src/renderables/composition/constructs.ts +0 -127
- package/src/renderables/composition/vnode.ts +0 -277
- package/src/renderables/index.ts +0 -23
- package/src/renderables/markdown-parser.ts +0 -79
- package/src/renderer-theme-mode.ts +0 -199
- package/src/renderer.ts +0 -4975
- package/src/runtime-plugin-support-configure.ts +0 -63
- package/src/runtime-plugin-support.ts +0 -13
- package/src/runtime-plugin.ts +0 -626
- package/src/specs/terminal-startup.md +0 -64
- package/src/syntax-style.test.ts +0 -841
- package/src/syntax-style.ts +0 -274
- package/src/testing/README.md +0 -219
- package/src/testing/bun-test-node.ts +0 -880
- package/src/testing/capture-spans.test.ts +0 -216
- package/src/testing/integration.test.ts +0 -276
- package/src/testing/manual-clock.ts +0 -117
- package/src/testing/mock-keys.test.ts +0 -1378
- package/src/testing/mock-keys.ts +0 -457
- package/src/testing/mock-mouse.test.ts +0 -218
- package/src/testing/mock-mouse.ts +0 -247
- package/src/testing/mock-tree-sitter-client.ts +0 -81
- package/src/testing/spy.ts +0 -13
- package/src/testing/terminal-capabilities.ts +0 -47
- package/src/testing/test-recorder.test.ts +0 -410
- package/src/testing/test-recorder.ts +0 -133
- package/src/testing/test-renderer.ts +0 -375
- package/src/testing/test-renderer.wait.test.ts +0 -278
- package/src/testing/test-streams.ts +0 -31
- package/src/testing.ts +0 -9
- package/src/tests/__snapshots__/absolute-positioning.snapshot.test.ts.snap +0 -481
- package/src/tests/__snapshots__/renderable.snapshot.test.ts.snap +0 -19
- package/src/tests/__snapshots__/scrollbox.test.ts.snap +0 -29
- package/src/tests/absolute-positioning.snapshot.test.ts +0 -638
- package/src/tests/allocator-stats.test.ts +0 -53
- package/src/tests/audio.test.ts +0 -303
- package/src/tests/destroy-during-render.test.ts +0 -200
- package/src/tests/destroy-on-exit.fixture.ts +0 -36
- package/src/tests/destroy-on-exit.test.ts +0 -62
- package/src/tests/ffi-borrowed-pointer-callsites.test.ts +0 -153
- package/src/tests/hover-cursor.test.ts +0 -98
- package/src/tests/native-backed-measurement-lifecycle.test.ts +0 -133
- package/src/tests/native-backed-measurement-parity.test.ts +0 -322
- package/src/tests/native-span-feed-async.test.ts +0 -173
- package/src/tests/native-span-feed-close.test.ts +0 -120
- package/src/tests/native-span-feed-coverage.test.ts +0 -227
- package/src/tests/native-span-feed-edge-cases.test.ts +0 -384
- package/src/tests/native-span-feed-use-after-free.test.ts +0 -45
- package/src/tests/opacity.test.ts +0 -123
- package/src/tests/renderable.snapshot.test.ts +0 -524
- package/src/tests/renderable.test.ts +0 -1851
- package/src/tests/renderer.clock.test.ts +0 -270
- package/src/tests/renderer.console-startup.test.ts +0 -2151
- package/src/tests/renderer.control.test.ts +0 -458
- package/src/tests/renderer.core-slot-binding.test.ts +0 -962
- package/src/tests/renderer.cursor.test.ts +0 -26
- package/src/tests/renderer.custom-stdout.test.ts +0 -1112
- package/src/tests/renderer.destroy-during-render.test.ts +0 -147
- package/src/tests/renderer.focus-restore.test.ts +0 -257
- package/src/tests/renderer.focus.test.ts +0 -329
- package/src/tests/renderer.idle.test.ts +0 -219
- package/src/tests/renderer.input.test.ts +0 -2615
- package/src/tests/renderer.kitty-flags.test.ts +0 -195
- package/src/tests/renderer.lifecycle.test.ts +0 -34
- package/src/tests/renderer.mouse.test.ts +0 -1315
- package/src/tests/renderer.notifications.test.ts +0 -27
- package/src/tests/renderer.palette.test.ts +0 -1199
- package/src/tests/renderer.remote.test.ts +0 -247
- package/src/tests/renderer.render-stats.test.ts +0 -146
- package/src/tests/renderer.scrollback-surface.test.ts +0 -474
- package/src/tests/renderer.selection.test.ts +0 -138
- package/src/tests/renderer.slot-registry.test.ts +0 -684
- package/src/tests/renderer.tracker.test.ts +0 -202
- package/src/tests/renderer.useMouse.test.ts +0 -83
- package/src/tests/runtime-plugin-node-modules-cycle.fixture.ts +0 -76
- package/src/tests/runtime-plugin-node-modules-import-like-string.fixture.ts +0 -48
- package/src/tests/runtime-plugin-node-modules-mjs.fixture.ts +0 -43
- package/src/tests/runtime-plugin-node-modules-no-bare-rewrite.fixture.ts +0 -67
- package/src/tests/runtime-plugin-node-modules-package-type-cache.fixture.ts +0 -72
- package/src/tests/runtime-plugin-node-modules-runtime-specifier.fixture.ts +0 -44
- package/src/tests/runtime-plugin-node-modules-scoped-package-bare-rewrite.fixture.ts +0 -85
- package/src/tests/runtime-plugin-path-alias.fixture.ts +0 -43
- package/src/tests/runtime-plugin-resolve-roots.fixture.ts +0 -65
- package/src/tests/runtime-plugin-support-configure.fixture.ts +0 -31
- package/src/tests/runtime-plugin-support-late-addition.fixture.ts +0 -17
- package/src/tests/runtime-plugin-support.fixture.ts +0 -11
- package/src/tests/runtime-plugin-support.test.ts +0 -54
- package/src/tests/runtime-plugin-windows-file-url.fixture.ts +0 -30
- package/src/tests/runtime-plugin.fixture.ts +0 -40
- package/src/tests/runtime-plugin.test.ts +0 -369
- package/src/tests/scrollbox-culling-bug.test.ts +0 -114
- package/src/tests/scrollbox-hitgrid-resize.test.ts +0 -136
- package/src/tests/scrollbox-hitgrid.test.ts +0 -909
- package/src/tests/scrollbox.test.ts +0 -1895
- package/src/tests/wrap-resize-perf.test.ts +0 -276
- package/src/tests/yoga-api-coverage.test.ts +0 -409
- package/src/tests/yoga-callback-stress.test.ts +0 -122
- package/src/tests/yoga-ffi.test.ts +0 -117
- package/src/tests/yoga-setters.test.ts +0 -921
- package/src/tests/yoga-upstream/YGAlignBaselineTest.test.ts +0 -124
- package/src/tests/yoga-upstream/YGComputedBorderTest.test.ts +0 -27
- package/src/tests/yoga-upstream/YGComputedMarginTest.test.ts +0 -27
- package/src/tests/yoga-upstream/YGComputedPaddingTest.test.ts +0 -27
- package/src/tests/yoga-upstream/YGDirtiedTest.test.ts +0 -157
- package/src/tests/yoga-upstream/YGErrataTest.test.ts +0 -40
- package/src/tests/yoga-upstream/YGFlexBasisAuto.test.ts +0 -23
- package/src/tests/yoga-upstream/YGHasNewLayout.test.ts +0 -81
- package/src/tests/yoga-upstream/YGMeasureCacheTest.test.ts +0 -31
- package/src/tests/yoga-upstream/YGMeasureTest.test.ts +0 -70
- package/src/tests/yoga-upstream/generated/YGAbsolutePositionTest.test.ts +0 -1864
- package/src/tests/yoga-upstream/generated/YGAlignContentTest.test.ts +0 -5829
- package/src/tests/yoga-upstream/generated/YGAlignItemsTest.test.ts +0 -2444
- package/src/tests/yoga-upstream/generated/YGAlignSelfTest.test.ts +0 -293
- package/src/tests/yoga-upstream/generated/YGAndroidNewsFeed.test.ts +0 -315
- package/src/tests/yoga-upstream/generated/YGAspectRatioTest.test.ts +0 -231
- package/src/tests/yoga-upstream/generated/YGAutoTest.test.ts +0 -347
- package/src/tests/yoga-upstream/generated/YGBorderTest.test.ts +0 -256
- package/src/tests/yoga-upstream/generated/YGBoxSizingTest.test.ts +0 -2747
- package/src/tests/yoga-upstream/generated/YGDimensionTest.test.ts +0 -129
- package/src/tests/yoga-upstream/generated/YGDisplayContentsTest.test.ts +0 -109
- package/src/tests/yoga-upstream/generated/YGDisplayTest.test.ts +0 -1097
- package/src/tests/yoga-upstream/generated/YGFlexDirectionTest.test.ts +0 -4562
- package/src/tests/yoga-upstream/generated/YGFlexTest.test.ts +0 -677
- package/src/tests/yoga-upstream/generated/YGFlexWrapTest.test.ts +0 -2071
- package/src/tests/yoga-upstream/generated/YGGapTest.test.ts +0 -3303
- package/src/tests/yoga-upstream/generated/YGIntrinsicSizeTest.test.ts +0 -582
- package/src/tests/yoga-upstream/generated/YGJustifyContentTest.test.ts +0 -2150
- package/src/tests/yoga-upstream/generated/YGMarginTest.test.ts +0 -1963
- package/src/tests/yoga-upstream/generated/YGMinMaxDimensionTest.test.ts +0 -1446
- package/src/tests/yoga-upstream/generated/YGPaddingTest.test.ts +0 -354
- package/src/tests/yoga-upstream/generated/YGPercentageTest.test.ts +0 -1760
- package/src/tests/yoga-upstream/generated/YGRoundingTest.test.ts +0 -1161
- package/src/tests/yoga-upstream/generated/YGSizeOverflowTest.test.ts +0 -207
- package/src/tests/yoga-upstream/generated/YGStaticPositionTest.test.ts +0 -6338
- package/src/tests/yoga-upstream/tools/MeasureCounter.ts +0 -54
- package/src/tests/yoga-upstream/tools/utils.ts +0 -81
- package/src/text-buffer-view.test.ts +0 -722
- package/src/text-buffer-view.ts +0 -193
- package/src/text-buffer.test.ts +0 -512
- package/src/text-buffer.ts +0 -250
- package/src/types.ts +0 -199
- package/src/utils.ts +0 -88
- package/src/yoga.ts +0 -1146
- package/src/zig/ansi.zig +0 -502
- package/src/zig/audio.zig +0 -1206
- package/src/zig/bench/README.md +0 -50
- package/src/zig/bench/buffer-color-blending_bench.zig +0 -350
- package/src/zig/bench/buffer-draw-box_bench.zig +0 -786
- package/src/zig/bench/buffer-draw-text-buffer_bench.zig +0 -894
- package/src/zig/bench/edit-buffer_bench.zig +0 -476
- package/src/zig/bench/editor-view_bench.zig +0 -169
- package/src/zig/bench/native-span-feed_bench.zig +0 -107
- package/src/zig/bench/rope-markers_bench.zig +0 -713
- package/src/zig/bench/rope_bench.zig +0 -514
- package/src/zig/bench/styled-text_bench.zig +0 -476
- package/src/zig/bench/text-buffer-coords_bench.zig +0 -362
- package/src/zig/bench/text-buffer-view_bench.zig +0 -459
- package/src/zig/bench/text-chunk-graphemes_bench.zig +0 -272
- package/src/zig/bench/utf8_bench.zig +0 -799
- package/src/zig/bench-utils.zig +0 -431
- package/src/zig/bench.zig +0 -223
- package/src/zig/buffer-methods.zig +0 -215
- package/src/zig/buffer.zig +0 -2515
- package/src/zig/build.zig +0 -700
- package/src/zig/build.zig.zon +0 -19
- package/src/zig/edit-buffer.zig +0 -900
- package/src/zig/editor-view.zig +0 -812
- package/src/zig/event-bus.zig +0 -28
- package/src/zig/event-emitter.zig +0 -65
- package/src/zig/file-logger.zig +0 -92
- package/src/zig/grapheme.zig +0 -838
- package/src/zig/handles.zig +0 -267
- package/src/zig/lib.zig +0 -2813
- package/src/zig/link.zig +0 -349
- package/src/zig/logger.zig +0 -43
- package/src/zig/mem-registry.zig +0 -126
- package/src/zig/miniaudio_shim.c +0 -21
- package/src/zig/native-renderable.zig +0 -112
- package/src/zig/native-span-feed-bench-lib.zig +0 -7
- package/src/zig/native-span-feed.zig +0 -747
- package/src/zig/renderer-output.zig +0 -677
- package/src/zig/renderer.zig +0 -2106
- package/src/zig/rope.zig +0 -1220
- package/src/zig/split-scrollback.zig +0 -88
- package/src/zig/syntax-style.zig +0 -174
- package/src/zig/terminal.zig +0 -1652
- package/src/zig/test.zig +0 -82
- package/src/zig/tests/README.md +0 -18
- package/src/zig/tests/ansi_test.zig +0 -18
- package/src/zig/tests/audio_test.zig +0 -439
- package/src/zig/tests/buffer-methods_test.zig +0 -1111
- package/src/zig/tests/buffer_test.zig +0 -2926
- package/src/zig/tests/edit-buffer-history_test.zig +0 -299
- package/src/zig/tests/edit-buffer_test.zig +0 -1688
- package/src/zig/tests/editor-view_test.zig +0 -3454
- package/src/zig/tests/event-emitter_test.zig +0 -249
- package/src/zig/tests/grapheme_test.zig +0 -1329
- package/src/zig/tests/handles_test.zig +0 -123
- package/src/zig/tests/link_test.zig +0 -220
- package/src/zig/tests/mem-registry_test.zig +0 -473
- package/src/zig/tests/memory_leak_regression_test.zig +0 -234
- package/src/zig/tests/native-renderable_test.zig +0 -16
- package/src/zig/tests/native-span-feed_test.zig +0 -1266
- package/src/zig/tests/renderer_test.zig +0 -2604
- package/src/zig/tests/rope-nested_test.zig +0 -712
- package/src/zig/tests/rope_fuzz_test.zig +0 -238
- package/src/zig/tests/rope_test.zig +0 -2362
- package/src/zig/tests/segment-merge.test.zig +0 -148
- package/src/zig/tests/split-scrollback_test.zig +0 -70
- package/src/zig/tests/syntax-style_test.zig +0 -558
- package/src/zig/tests/terminal_test.zig +0 -1489
- package/src/zig/tests/test-renderer.zig +0 -126
- package/src/zig/tests/text-buffer-drawing_test.zig +0 -3291
- package/src/zig/tests/text-buffer-highlights_test.zig +0 -706
- package/src/zig/tests/text-buffer-iterators_test.zig +0 -776
- package/src/zig/tests/text-buffer-segment_test.zig +0 -320
- package/src/zig/tests/text-buffer-selection_test.zig +0 -1056
- package/src/zig/tests/text-buffer-selection_viewport_test.zig +0 -358
- package/src/zig/tests/text-buffer-view_test.zig +0 -3672
- package/src/zig/tests/text-buffer_test.zig +0 -2191
- package/src/zig/tests/unicode-width-map.zon +0 -3909
- package/src/zig/tests/utf8_no_zwj_test.zig +0 -260
- package/src/zig/tests/utf8_test.zig +0 -4060
- package/src/zig/tests/utf8_wcwidth_cursor_test.zig +0 -267
- package/src/zig/tests/utf8_wcwidth_test.zig +0 -357
- package/src/zig/tests/word-wrap-editing_test.zig +0 -498
- package/src/zig/tests/wrap-cache-perf_test.zig +0 -113
- package/src/zig/tests/yoga_test.zig +0 -65
- package/src/zig/text-buffer-iterators.zig +0 -496
- package/src/zig/text-buffer-segment.zig +0 -403
- package/src/zig/text-buffer-view.zig +0 -1428
- package/src/zig/text-buffer.zig +0 -1272
- package/src/zig/utf8.zig +0 -1954
- package/src/zig/utils.zig +0 -12
- package/src/zig/uucode-stub.zig +0 -76
- package/src/zig/vendor/miniaudio/miniaudio.h +0 -93468
- package/src/zig/yoga.zig +0 -658
- package/src/zig-structs.ts +0 -381
- package/src/zig.ts +0 -5260
- package/tsconfig.build.json +0 -17
- package/tsconfig.json +0 -27
- package/tsconfig.node-test.json +0 -138
- /package/{src/lib/tree-sitter/assets → assets}/javascript/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/javascript/tree-sitter-javascript.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown/injections.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown/tree-sitter-markdown.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown_inline/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/markdown_inline/tree-sitter-markdown_inline.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/typescript/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/typescript/tree-sitter-typescript.wasm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/zig/highlights.scm +0 -0
- /package/{src/lib/tree-sitter/assets → assets}/zig/tree-sitter-zig.wasm +0 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { CliRenderer } from "../renderer.js";
|
|
2
|
+
import type { Plugin, PluginContext, PluginErrorEvent, PluginErrorReport, ResolvedSlotRenderer, SlotRenderer } from "./types.js";
|
|
3
|
+
export interface SlotRegistryOptions {
|
|
4
|
+
onPluginError?: (event: PluginErrorEvent) => void;
|
|
5
|
+
debugPluginErrors?: boolean;
|
|
6
|
+
maxPluginErrors?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class SlotRegistry<TNode, TSlots extends object, TContext extends PluginContext = PluginContext> {
|
|
9
|
+
private plugins;
|
|
10
|
+
private sortedPluginsCache;
|
|
11
|
+
private listeners;
|
|
12
|
+
private errorListeners;
|
|
13
|
+
private pluginErrors;
|
|
14
|
+
private registrationOrder;
|
|
15
|
+
private batchDepth;
|
|
16
|
+
private batchedNotify;
|
|
17
|
+
private rendererInstance;
|
|
18
|
+
private hostContext;
|
|
19
|
+
private options;
|
|
20
|
+
constructor(renderer: CliRenderer, context: TContext, options?: SlotRegistryOptions);
|
|
21
|
+
get renderer(): CliRenderer;
|
|
22
|
+
get context(): Readonly<TContext>;
|
|
23
|
+
configure(options: SlotRegistryOptions): void;
|
|
24
|
+
register(plugin: Plugin<TNode, TSlots, TContext>): () => void;
|
|
25
|
+
unregister(id: string): boolean;
|
|
26
|
+
updateOrder(id: string, order: number): boolean;
|
|
27
|
+
clear(): void;
|
|
28
|
+
subscribe(listener: () => void): () => void;
|
|
29
|
+
onPluginError(listener: (event: PluginErrorEvent) => void): () => void;
|
|
30
|
+
batch<T>(run: () => T): T;
|
|
31
|
+
getPluginErrors(): readonly PluginErrorEvent[];
|
|
32
|
+
clearPluginErrors(): void;
|
|
33
|
+
reportPluginError(report: PluginErrorReport): PluginErrorEvent;
|
|
34
|
+
resolve<K extends keyof TSlots>(slot: K): Array<SlotRenderer<TNode, TSlots[K], TContext>>;
|
|
35
|
+
resolveEntries<K extends keyof TSlots>(slot: K): Array<ResolvedSlotRenderer<TNode, TSlots[K], TContext>>;
|
|
36
|
+
private getSortedPlugins;
|
|
37
|
+
private syncPluginSortMetadata;
|
|
38
|
+
private invalidateSortedPluginsCache;
|
|
39
|
+
private notifyListeners;
|
|
40
|
+
private flushListeners;
|
|
41
|
+
}
|
|
42
|
+
export declare function createSlotRegistry<TNode, TSlots extends object, TContext extends PluginContext = PluginContext>(renderer: CliRenderer, key: string, context: TContext, options?: SlotRegistryOptions): SlotRegistry<TNode, TSlots, TContext>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { CliRenderer } from "../renderer.js";
|
|
2
|
+
export type PluginContext = object;
|
|
3
|
+
export type SlotMode = "append" | "replace" | "single_winner";
|
|
4
|
+
export type PluginErrorPhase = "setup" | "render" | "dispose" | "error_placeholder";
|
|
5
|
+
export type PluginErrorSource = "registry" | "core" | (string & {});
|
|
6
|
+
export interface PluginErrorEvent {
|
|
7
|
+
pluginId: string;
|
|
8
|
+
slot?: string;
|
|
9
|
+
phase: PluginErrorPhase;
|
|
10
|
+
source: PluginErrorSource;
|
|
11
|
+
error: Error;
|
|
12
|
+
timestamp: number;
|
|
13
|
+
}
|
|
14
|
+
export interface PluginErrorReport {
|
|
15
|
+
pluginId: string;
|
|
16
|
+
slot?: string;
|
|
17
|
+
phase: PluginErrorPhase;
|
|
18
|
+
source?: PluginErrorSource;
|
|
19
|
+
error: unknown;
|
|
20
|
+
}
|
|
21
|
+
export type SlotRenderer<TNode, TProps, TContext extends PluginContext = PluginContext> = (ctx: Readonly<TContext>, props: TProps) => TNode;
|
|
22
|
+
export interface Plugin<TNode, TSlots extends object, TContext extends PluginContext = PluginContext> {
|
|
23
|
+
id: string;
|
|
24
|
+
order?: number;
|
|
25
|
+
setup?: (ctx: Readonly<TContext>, renderer: CliRenderer) => void;
|
|
26
|
+
dispose?: () => void;
|
|
27
|
+
slots: {
|
|
28
|
+
[K in keyof TSlots]?: SlotRenderer<TNode, TSlots[K], TContext>;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export interface ResolvedSlotRenderer<TNode, TProps, TContext extends PluginContext = PluginContext> {
|
|
32
|
+
id: string;
|
|
33
|
+
renderer: SlotRenderer<TNode, TProps, TContext>;
|
|
34
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import type { OptimizedBuffer } from "../buffer.js";
|
|
2
|
+
export declare class DistortionEffect {
|
|
3
|
+
glitchChancePerSecond: number;
|
|
4
|
+
maxGlitchLines: number;
|
|
5
|
+
minGlitchDuration: number;
|
|
6
|
+
maxGlitchDuration: number;
|
|
7
|
+
maxShiftAmount: number;
|
|
8
|
+
shiftFlipRatio: number;
|
|
9
|
+
colorGlitchChance: number;
|
|
10
|
+
private lastGlitchTime;
|
|
11
|
+
private glitchDuration;
|
|
12
|
+
private activeGlitches;
|
|
13
|
+
constructor(options?: Partial<DistortionEffect>);
|
|
14
|
+
/**
|
|
15
|
+
* Applies the animated distortion/glitch effect to the buffer.
|
|
16
|
+
*/
|
|
17
|
+
apply(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Applies a vignette effect by darkening the corners, optimized with precomputation.
|
|
21
|
+
* Uses native colorMatrix with a zero matrix for attenuation.
|
|
22
|
+
*/
|
|
23
|
+
export declare class VignetteEffect {
|
|
24
|
+
private _strength;
|
|
25
|
+
private precomputedAttenuationCellMask;
|
|
26
|
+
private cachedWidth;
|
|
27
|
+
private cachedHeight;
|
|
28
|
+
private static zeroMatrix;
|
|
29
|
+
constructor(strength?: number);
|
|
30
|
+
set strength(newStrength: number);
|
|
31
|
+
get strength(): number;
|
|
32
|
+
private _computeFactors;
|
|
33
|
+
/**
|
|
34
|
+
* Applies the vignette effect using native colorMatrix with a zero matrix.
|
|
35
|
+
* The zero matrix maps all colors to black, and the attenuation cell masks
|
|
36
|
+
* control how much of the effect is applied (strength-based blending).
|
|
37
|
+
*/
|
|
38
|
+
apply(buffer: OptimizedBuffer): void;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Applies animated cloud shadows using Perlin noise.
|
|
42
|
+
* Darkens the background buffer based on procedural cloud density.
|
|
43
|
+
*/
|
|
44
|
+
export declare class CloudsEffect {
|
|
45
|
+
private noise;
|
|
46
|
+
private _scale;
|
|
47
|
+
private _speed;
|
|
48
|
+
private _density;
|
|
49
|
+
private _darkness;
|
|
50
|
+
private time;
|
|
51
|
+
constructor(scale?: number, speed?: number, density?: number, darkness?: number);
|
|
52
|
+
set scale(newScale: number);
|
|
53
|
+
get scale(): number;
|
|
54
|
+
set speed(newSpeed: number);
|
|
55
|
+
get speed(): number;
|
|
56
|
+
set density(newDensity: number);
|
|
57
|
+
get density(): number;
|
|
58
|
+
set darkness(newDarkness: number);
|
|
59
|
+
get darkness(): number;
|
|
60
|
+
/**
|
|
61
|
+
* Applies cloud shadow effect using Perlin noise mask with native colorMatrix.
|
|
62
|
+
* Uses FBM (Fractal Brownian Motion) for detailed clouds, offloaded to native code.
|
|
63
|
+
*/
|
|
64
|
+
apply(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Applies animated flames rising from the bottom using Perlin noise.
|
|
68
|
+
* Creates warm fire effect that fades as it rises.
|
|
69
|
+
*/
|
|
70
|
+
export declare class FlamesEffect {
|
|
71
|
+
private noise;
|
|
72
|
+
private _scale;
|
|
73
|
+
private _speed;
|
|
74
|
+
private _intensity;
|
|
75
|
+
private time;
|
|
76
|
+
constructor(scale?: number, speed?: number, intensity?: number);
|
|
77
|
+
set scale(newScale: number);
|
|
78
|
+
get scale(): number;
|
|
79
|
+
set speed(newSpeed: number);
|
|
80
|
+
get speed(): number;
|
|
81
|
+
set intensity(newIntensity: number);
|
|
82
|
+
get intensity(): number;
|
|
83
|
+
/**
|
|
84
|
+
* Applies flame effect rising from bottom using Perlin noise.
|
|
85
|
+
* Flames get cooler (redder) and fade as they rise.
|
|
86
|
+
*/
|
|
87
|
+
apply(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Applies a CRT rolling bar effect - a horizontal bar that slowly scans down the screen.
|
|
91
|
+
* Simulates the classic CRT monitor rolling bar artifact.
|
|
92
|
+
*/
|
|
93
|
+
export declare class CRTRollingBarEffect {
|
|
94
|
+
private _speed;
|
|
95
|
+
private _height;
|
|
96
|
+
private _intensity;
|
|
97
|
+
private _fadeDistance;
|
|
98
|
+
private position;
|
|
99
|
+
constructor(speed?: number, height?: number, intensity?: number, fadeDistance?: number);
|
|
100
|
+
set speed(newSpeed: number);
|
|
101
|
+
get speed(): number;
|
|
102
|
+
set height(newHeight: number);
|
|
103
|
+
get height(): number;
|
|
104
|
+
set intensity(newIntensity: number);
|
|
105
|
+
get intensity(): number;
|
|
106
|
+
set fadeDistance(newFadeDistance: number);
|
|
107
|
+
get fadeDistance(): number;
|
|
108
|
+
/**
|
|
109
|
+
* Applies the rolling bar effect to the buffer.
|
|
110
|
+
* Creates a smooth horizontal bar that scans down the screen with a bell-curve gradient.
|
|
111
|
+
* The bar has a bright center that smoothly fades to the edges.
|
|
112
|
+
*/
|
|
113
|
+
apply(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Applies animated rainbow colors to cells with white foreground.
|
|
117
|
+
* Cycles through HSV hue spectrum over time.
|
|
118
|
+
*/
|
|
119
|
+
export declare class RainbowTextEffect {
|
|
120
|
+
private _speed;
|
|
121
|
+
private _saturation;
|
|
122
|
+
private _value;
|
|
123
|
+
private _repeats;
|
|
124
|
+
private time;
|
|
125
|
+
constructor(speed?: number, saturation?: number, value?: number, repeats?: number);
|
|
126
|
+
set speed(newSpeed: number);
|
|
127
|
+
get speed(): number;
|
|
128
|
+
set saturation(newSaturation: number);
|
|
129
|
+
get saturation(): number;
|
|
130
|
+
set value(newValue: number);
|
|
131
|
+
get value(): number;
|
|
132
|
+
set repeats(newRepeats: number);
|
|
133
|
+
get repeats(): number;
|
|
134
|
+
/**
|
|
135
|
+
* Converts HSV color to RGB
|
|
136
|
+
* @param h - Hue [0, 1]
|
|
137
|
+
* @param s - Saturation [0, 1]
|
|
138
|
+
* @param v - Value [0, 1]
|
|
139
|
+
* @returns [r, g, b] each in [0, 1]
|
|
140
|
+
*/
|
|
141
|
+
private hsvToRgb;
|
|
142
|
+
/**
|
|
143
|
+
* Applies rainbow colors to cells with white foreground.
|
|
144
|
+
* White is defined as R, G, B all >= 0.9
|
|
145
|
+
*/
|
|
146
|
+
apply(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
147
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { OptimizedBuffer } from "../buffer.js";
|
|
2
|
+
/**
|
|
3
|
+
* Applies a scanline effect by darkening every nth row using native color matrix.
|
|
4
|
+
* Only affects the background buffer to maintain text readability.
|
|
5
|
+
*/
|
|
6
|
+
export declare function applyScanlines(buffer: OptimizedBuffer, strength?: number, step?: number): void;
|
|
7
|
+
/**
|
|
8
|
+
* Inverts the colors in the buffer using native color matrix.
|
|
9
|
+
* Uses negative matrix with alpha offset: output = 1.0 - input for each RGB channel.
|
|
10
|
+
*/
|
|
11
|
+
export declare function applyInvert(buffer: OptimizedBuffer, strength?: number): void;
|
|
12
|
+
/**
|
|
13
|
+
* Adds random noise to the buffer colors using colorMatrix with brightness matrix.
|
|
14
|
+
* Uses per-pixel random strength values to dim/brighten each cell.
|
|
15
|
+
*/
|
|
16
|
+
export declare function applyNoise(buffer: OptimizedBuffer, strength?: number): void;
|
|
17
|
+
/**
|
|
18
|
+
* Applies a simplified chromatic aberration effect.
|
|
19
|
+
*/
|
|
20
|
+
export declare function applyChromaticAberration(buffer: OptimizedBuffer, strength?: number): void;
|
|
21
|
+
/**
|
|
22
|
+
* Converts the buffer to ASCII art based on background brightness.
|
|
23
|
+
* Uses native colorMatrix for efficient color corrections.
|
|
24
|
+
*/
|
|
25
|
+
export declare function applyAsciiArt(buffer: OptimizedBuffer, ramp?: string, fgColor?: {
|
|
26
|
+
r: number;
|
|
27
|
+
g: number;
|
|
28
|
+
b: number;
|
|
29
|
+
}, bgColor?: {
|
|
30
|
+
r: number;
|
|
31
|
+
g: number;
|
|
32
|
+
b: number;
|
|
33
|
+
}): void;
|
|
34
|
+
/**
|
|
35
|
+
* Adjusts the brightness of the buffer using color matrix transformation.
|
|
36
|
+
* Brightness adds the brightness value to all RGB channels (additive brightness).
|
|
37
|
+
* If not provided, applies uniform brightness to entire buffer.
|
|
38
|
+
*/
|
|
39
|
+
export declare function applyBrightness(buffer: OptimizedBuffer, brightness?: number, cellMask?: Float32Array): void;
|
|
40
|
+
/**
|
|
41
|
+
* Adjusts the gain of the buffer using color matrix transformation.
|
|
42
|
+
* Gain multiplies all RGB channels by the gain factor (no clamping).
|
|
43
|
+
* If not provided, applies uniform gain to entire buffer.
|
|
44
|
+
*/
|
|
45
|
+
export declare function applyGain(buffer: OptimizedBuffer, gain?: number, cellMask?: Float32Array): void;
|
|
46
|
+
/**
|
|
47
|
+
* Applies a saturation adjustment to the buffer.
|
|
48
|
+
*/
|
|
49
|
+
export declare function applySaturation(buffer: OptimizedBuffer, cellMask?: Float32Array, strength?: number): void;
|
|
50
|
+
/**
|
|
51
|
+
* Applies a bloom effect based on bright areas (Simplified).
|
|
52
|
+
*/
|
|
53
|
+
export declare class BloomEffect {
|
|
54
|
+
private _threshold;
|
|
55
|
+
private _strength;
|
|
56
|
+
private _radius;
|
|
57
|
+
constructor(threshold?: number, strength?: number, radius?: number);
|
|
58
|
+
set threshold(newThreshold: number);
|
|
59
|
+
get threshold(): number;
|
|
60
|
+
set strength(newStrength: number);
|
|
61
|
+
get strength(): number;
|
|
62
|
+
set radius(newRadius: number);
|
|
63
|
+
get radius(): number;
|
|
64
|
+
apply(buffer: OptimizedBuffer): void;
|
|
65
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const SEPIA_MATRIX: Float32Array<ArrayBuffer>;
|
|
2
|
+
/**
|
|
3
|
+
* Colorblindness simulation and compensation filters using color matrix transformations.
|
|
4
|
+
*/
|
|
5
|
+
export declare const PROTANOPIA_SIM_MATRIX: Float32Array<ArrayBuffer>;
|
|
6
|
+
export declare const DEUTERANOPIA_SIM_MATRIX: Float32Array<ArrayBuffer>;
|
|
7
|
+
export declare const TRITANOPIA_SIM_MATRIX: Float32Array<ArrayBuffer>;
|
|
8
|
+
export declare const ACHROMATOPSIA_MATRIX: Float32Array<ArrayBuffer>;
|
|
9
|
+
export declare const PROTANOPIA_COMP_MATRIX: Float32Array<ArrayBuffer>;
|
|
10
|
+
export declare const DEUTERANOPIA_COMP_MATRIX: Float32Array<ArrayBuffer>;
|
|
11
|
+
export declare const TRITANOPIA_COMP_MATRIX: Float32Array<ArrayBuffer>;
|
|
12
|
+
/**
|
|
13
|
+
* Creative color effect matrices.
|
|
14
|
+
*/
|
|
15
|
+
export declare const TECHNICOLOR_MATRIX: Float32Array<ArrayBuffer>;
|
|
16
|
+
export declare const SOLARIZATION_MATRIX: Float32Array<ArrayBuffer>;
|
|
17
|
+
export declare const SYNTHWAVE_MATRIX: Float32Array<ArrayBuffer>;
|
|
18
|
+
export declare const GREENSCALE_MATRIX: Float32Array<ArrayBuffer>;
|
|
19
|
+
export declare const GRAYSCALE_MATRIX: Float32Array<ArrayBuffer>;
|
|
20
|
+
export declare const INVERT_MATRIX: Float32Array<ArrayBuffer>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type ASCIIFontName, type fonts } from "../lib/ascii.font.js";
|
|
2
|
+
import { type ColorInput } from "../lib/RGBA.js";
|
|
3
|
+
import { Selection, type LocalSelectionBounds } from "../lib/selection.js";
|
|
4
|
+
import type { RenderableOptions } from "../Renderable.js";
|
|
5
|
+
import type { RenderContext } from "../types.js";
|
|
6
|
+
import { FrameBufferRenderable } from "./FrameBuffer.js";
|
|
7
|
+
export interface ASCIIFontOptions extends Omit<RenderableOptions<ASCIIFontRenderable>, "width" | "height"> {
|
|
8
|
+
text?: string;
|
|
9
|
+
font?: ASCIIFontName;
|
|
10
|
+
color?: ColorInput | ColorInput[];
|
|
11
|
+
backgroundColor?: ColorInput;
|
|
12
|
+
selectionBg?: ColorInput;
|
|
13
|
+
selectionFg?: ColorInput;
|
|
14
|
+
selectable?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare class ASCIIFontRenderable extends FrameBufferRenderable {
|
|
17
|
+
selectable: boolean;
|
|
18
|
+
protected static readonly _defaultOptions: {
|
|
19
|
+
text: string;
|
|
20
|
+
font: "tiny";
|
|
21
|
+
color: string;
|
|
22
|
+
backgroundColor: string;
|
|
23
|
+
selectionBg: undefined;
|
|
24
|
+
selectionFg: undefined;
|
|
25
|
+
selectable: true;
|
|
26
|
+
};
|
|
27
|
+
protected _text: string;
|
|
28
|
+
protected _font: keyof typeof fonts;
|
|
29
|
+
protected _color: ColorInput | ColorInput[];
|
|
30
|
+
protected _backgroundColor: ColorInput;
|
|
31
|
+
protected _selectionBg: ColorInput | undefined;
|
|
32
|
+
protected _selectionFg: ColorInput | undefined;
|
|
33
|
+
protected lastLocalSelection: LocalSelectionBounds | null;
|
|
34
|
+
private selectionHelper;
|
|
35
|
+
constructor(ctx: RenderContext, options: ASCIIFontOptions);
|
|
36
|
+
get text(): string;
|
|
37
|
+
set text(value: string);
|
|
38
|
+
get font(): keyof typeof fonts;
|
|
39
|
+
set font(value: keyof typeof fonts);
|
|
40
|
+
get color(): ColorInput | ColorInput[];
|
|
41
|
+
set color(value: ColorInput | ColorInput[]);
|
|
42
|
+
get backgroundColor(): ColorInput;
|
|
43
|
+
set backgroundColor(value: ColorInput);
|
|
44
|
+
private updateDimensions;
|
|
45
|
+
shouldStartSelection(x: number, y: number): boolean;
|
|
46
|
+
onSelectionChanged(selection: Selection | null): boolean;
|
|
47
|
+
getSelectedText(): string;
|
|
48
|
+
hasSelection(): boolean;
|
|
49
|
+
protected onResize(width: number, height: number): void;
|
|
50
|
+
private renderFontToBuffer;
|
|
51
|
+
private renderSelectionHighlight;
|
|
52
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { type RenderableOptions, Renderable } from "../Renderable.js";
|
|
2
|
+
import type { OptimizedBuffer } from "../buffer.js";
|
|
3
|
+
import { type BorderCharacters, type BorderSides, type BorderSidesConfig, type BorderStyle } from "../lib/index.js";
|
|
4
|
+
import { type ColorInput, RGBA } from "../lib/RGBA.js";
|
|
5
|
+
import type { RenderContext } from "../types.js";
|
|
6
|
+
export interface BoxOptions<TRenderable extends Renderable = BoxRenderable> extends RenderableOptions<TRenderable> {
|
|
7
|
+
backgroundColor?: string | RGBA;
|
|
8
|
+
borderStyle?: BorderStyle;
|
|
9
|
+
border?: boolean | BorderSides[];
|
|
10
|
+
borderColor?: string | RGBA;
|
|
11
|
+
customBorderChars?: BorderCharacters;
|
|
12
|
+
shouldFill?: boolean;
|
|
13
|
+
title?: string;
|
|
14
|
+
titleColor?: string | RGBA;
|
|
15
|
+
titleAlignment?: "left" | "center" | "right";
|
|
16
|
+
bottomTitle?: string;
|
|
17
|
+
bottomTitleAlignment?: "left" | "center" | "right";
|
|
18
|
+
focusedBorderColor?: ColorInput;
|
|
19
|
+
focusable?: boolean;
|
|
20
|
+
gap?: number | `${number}%`;
|
|
21
|
+
rowGap?: number | `${number}%`;
|
|
22
|
+
columnGap?: number | `${number}%`;
|
|
23
|
+
}
|
|
24
|
+
export declare class BoxRenderable extends Renderable {
|
|
25
|
+
protected _backgroundColor: RGBA;
|
|
26
|
+
protected _border: boolean | BorderSides[];
|
|
27
|
+
protected _borderStyle: BorderStyle;
|
|
28
|
+
protected _borderColor: RGBA;
|
|
29
|
+
protected _focusedBorderColor: RGBA;
|
|
30
|
+
private _customBorderCharsObj;
|
|
31
|
+
protected _customBorderChars?: Uint32Array;
|
|
32
|
+
protected borderSides: BorderSidesConfig;
|
|
33
|
+
shouldFill: boolean;
|
|
34
|
+
protected _title?: string;
|
|
35
|
+
protected _titleColor?: RGBA;
|
|
36
|
+
protected _titleAlignment: "left" | "center" | "right";
|
|
37
|
+
protected _bottomTitle?: string;
|
|
38
|
+
protected _bottomTitleAlignment: "left" | "center" | "right";
|
|
39
|
+
protected _defaultOptions: {
|
|
40
|
+
backgroundColor: string;
|
|
41
|
+
borderStyle: "single";
|
|
42
|
+
border: false;
|
|
43
|
+
borderColor: string;
|
|
44
|
+
shouldFill: true;
|
|
45
|
+
titleAlignment: "left";
|
|
46
|
+
bottomTitleAlignment: "left";
|
|
47
|
+
focusedBorderColor: string;
|
|
48
|
+
};
|
|
49
|
+
constructor(ctx: RenderContext, options: BoxOptions);
|
|
50
|
+
private initializeBorder;
|
|
51
|
+
get customBorderChars(): BorderCharacters | undefined;
|
|
52
|
+
set customBorderChars(value: BorderCharacters | undefined);
|
|
53
|
+
get backgroundColor(): RGBA;
|
|
54
|
+
set backgroundColor(value: RGBA | string | undefined);
|
|
55
|
+
get border(): boolean | BorderSides[];
|
|
56
|
+
set border(value: boolean | BorderSides[]);
|
|
57
|
+
get borderStyle(): BorderStyle;
|
|
58
|
+
set borderStyle(value: BorderStyle);
|
|
59
|
+
get borderColor(): RGBA;
|
|
60
|
+
set borderColor(value: RGBA | string);
|
|
61
|
+
get focusedBorderColor(): RGBA;
|
|
62
|
+
set focusedBorderColor(value: RGBA | string);
|
|
63
|
+
get title(): string | undefined;
|
|
64
|
+
set title(value: string | undefined);
|
|
65
|
+
get titleColor(): RGBA | undefined;
|
|
66
|
+
set titleColor(value: string | RGBA | undefined);
|
|
67
|
+
get titleAlignment(): "left" | "center" | "right";
|
|
68
|
+
set titleAlignment(value: "left" | "center" | "right");
|
|
69
|
+
get bottomTitle(): string | undefined;
|
|
70
|
+
set bottomTitle(value: string | undefined);
|
|
71
|
+
get bottomTitleAlignment(): "left" | "center" | "right";
|
|
72
|
+
set bottomTitleAlignment(value: "left" | "center" | "right");
|
|
73
|
+
protected renderSelf(buffer: OptimizedBuffer): void;
|
|
74
|
+
protected getScissorRect(): {
|
|
75
|
+
x: number;
|
|
76
|
+
y: number;
|
|
77
|
+
width: number;
|
|
78
|
+
height: number;
|
|
79
|
+
};
|
|
80
|
+
private applyYogaBorders;
|
|
81
|
+
private applyYogaGap;
|
|
82
|
+
set gap(gap: number | `${number}%` | undefined);
|
|
83
|
+
set rowGap(rowGap: number | `${number}%` | undefined);
|
|
84
|
+
set columnGap(columnGap: number | `${number}%` | undefined);
|
|
85
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { type LineInfo, type RenderContext } from "../types.js";
|
|
2
|
+
import { StyledText } from "../lib/styled-text.js";
|
|
3
|
+
import { SyntaxStyle } from "../syntax-style.js";
|
|
4
|
+
import { TreeSitterClient } from "../lib/tree-sitter/index.js";
|
|
5
|
+
import { TextBufferRenderable, type TextBufferOptions } from "./TextBufferRenderable.js";
|
|
6
|
+
import type { OptimizedBuffer } from "../buffer.js";
|
|
7
|
+
import type { SimpleHighlight } from "../lib/tree-sitter/types.js";
|
|
8
|
+
import type { TextChunk } from "../text-buffer.js";
|
|
9
|
+
export interface HighlightContext {
|
|
10
|
+
content: string;
|
|
11
|
+
filetype: string;
|
|
12
|
+
syntaxStyle: SyntaxStyle;
|
|
13
|
+
}
|
|
14
|
+
export type OnHighlightCallback = (highlights: SimpleHighlight[], context: HighlightContext) => SimpleHighlight[] | undefined | Promise<SimpleHighlight[] | undefined>;
|
|
15
|
+
export interface ChunkRenderContext extends HighlightContext {
|
|
16
|
+
highlights: SimpleHighlight[];
|
|
17
|
+
}
|
|
18
|
+
export type OnChunksCallback = (chunks: TextChunk[], context: ChunkRenderContext) => TextChunk[] | undefined | Promise<TextChunk[] | undefined>;
|
|
19
|
+
export interface CodeOptions extends TextBufferOptions {
|
|
20
|
+
content?: string;
|
|
21
|
+
filetype?: string;
|
|
22
|
+
syntaxStyle: SyntaxStyle;
|
|
23
|
+
treeSitterClient?: TreeSitterClient;
|
|
24
|
+
conceal?: boolean;
|
|
25
|
+
drawUnstyledText?: boolean;
|
|
26
|
+
streaming?: boolean;
|
|
27
|
+
initialStyledText?: StyledText;
|
|
28
|
+
baseHighlight?: string;
|
|
29
|
+
onHighlight?: OnHighlightCallback;
|
|
30
|
+
onChunks?: OnChunksCallback;
|
|
31
|
+
}
|
|
32
|
+
export declare class CodeRenderable extends TextBufferRenderable {
|
|
33
|
+
private _content;
|
|
34
|
+
private _filetype?;
|
|
35
|
+
private _syntaxStyle;
|
|
36
|
+
private _isHighlighting;
|
|
37
|
+
private _treeSitterClient;
|
|
38
|
+
private _highlightsDirty;
|
|
39
|
+
private _highlightSnapshotId;
|
|
40
|
+
private _conceal;
|
|
41
|
+
private _drawUnstyledText;
|
|
42
|
+
private _shouldRenderTextBuffer;
|
|
43
|
+
private _streaming;
|
|
44
|
+
private _initialStyledText?;
|
|
45
|
+
private _hadInitialContent;
|
|
46
|
+
private _lastHighlights;
|
|
47
|
+
private _baseHighlight?;
|
|
48
|
+
private _onHighlight?;
|
|
49
|
+
private _onChunks?;
|
|
50
|
+
private _highlightingPromise;
|
|
51
|
+
private _renderedLineSources?;
|
|
52
|
+
private _mappedLineInfo?;
|
|
53
|
+
protected _contentDefaultOptions: {
|
|
54
|
+
content: string;
|
|
55
|
+
conceal: true;
|
|
56
|
+
drawUnstyledText: true;
|
|
57
|
+
streaming: false;
|
|
58
|
+
};
|
|
59
|
+
constructor(ctx: RenderContext, options: CodeOptions);
|
|
60
|
+
get content(): string;
|
|
61
|
+
set content(value: string);
|
|
62
|
+
get lineInfo(): LineInfo;
|
|
63
|
+
get wrapMode(): "none" | "char" | "word";
|
|
64
|
+
set wrapMode(value: "none" | "char" | "word");
|
|
65
|
+
protected onResize(width: number, height: number): void;
|
|
66
|
+
protected updateTextInfo(): void;
|
|
67
|
+
get filetype(): string | undefined;
|
|
68
|
+
set filetype(value: string | undefined);
|
|
69
|
+
get syntaxStyle(): SyntaxStyle;
|
|
70
|
+
set syntaxStyle(value: SyntaxStyle);
|
|
71
|
+
get conceal(): boolean;
|
|
72
|
+
set conceal(value: boolean);
|
|
73
|
+
get drawUnstyledText(): boolean;
|
|
74
|
+
set drawUnstyledText(value: boolean);
|
|
75
|
+
get streaming(): boolean;
|
|
76
|
+
set initialStyledText(value: StyledText | undefined);
|
|
77
|
+
set streaming(value: boolean);
|
|
78
|
+
get treeSitterClient(): TreeSitterClient;
|
|
79
|
+
set treeSitterClient(value: TreeSitterClient);
|
|
80
|
+
get onHighlight(): OnHighlightCallback | undefined;
|
|
81
|
+
get baseHighlight(): string | undefined;
|
|
82
|
+
set baseHighlight(value: string | undefined);
|
|
83
|
+
set onHighlight(value: OnHighlightCallback | undefined);
|
|
84
|
+
get onChunks(): OnChunksCallback | undefined;
|
|
85
|
+
set onChunks(value: OnChunksCallback | undefined);
|
|
86
|
+
get isHighlighting(): boolean;
|
|
87
|
+
get highlightingDone(): Promise<void>;
|
|
88
|
+
protected transformChunks(chunks: TextChunk[], context: ChunkRenderContext): Promise<TextChunk[]>;
|
|
89
|
+
private ensureVisibleTextBeforeHighlight;
|
|
90
|
+
private startHighlight;
|
|
91
|
+
private setRenderedLineSources;
|
|
92
|
+
private static isIdentityLineSources;
|
|
93
|
+
private static getMergedConcealLineRanges;
|
|
94
|
+
private getConcealLinesSourceMap;
|
|
95
|
+
getLineHighlights(lineIdx: number): import("../types.js").Highlight[];
|
|
96
|
+
protected renderSelf(buffer: OptimizedBuffer): void;
|
|
97
|
+
}
|