@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.
Files changed (619) hide show
  1. package/LICENSE +21 -0
  2. package/NativeSpanFeed.d.ts +52 -0
  3. package/README.md +0 -0
  4. package/Renderable.d.ts +346 -0
  5. package/animation/Timeline.d.ts +126 -0
  6. package/ansi.d.ts +17 -0
  7. package/audio.d.ts +89 -0
  8. package/buffer.d.ts +113 -0
  9. package/console.d.ts +146 -0
  10. package/edit-buffer.d.ts +97 -0
  11. package/editor-view.d.ts +72 -0
  12. package/index-m1y9e40w.js +10045 -0
  13. package/index-m1y9e40w.js.map +32 -0
  14. package/index-sqk4ajdf.js +16121 -0
  15. package/index-sqk4ajdf.js.map +58 -0
  16. package/index.d.ts +24 -0
  17. package/index.js +11709 -0
  18. package/index.js.map +35 -0
  19. package/lib/KeyHandler.d.ts +61 -0
  20. package/lib/RGBA.d.ts +42 -0
  21. package/lib/ascii.font.d.ts +508 -0
  22. package/lib/border.d.ts +51 -0
  23. package/lib/bunfs.d.ts +7 -0
  24. package/lib/clipboard.d.ts +15 -0
  25. package/lib/clock.d.ts +15 -0
  26. package/lib/data-paths.d.ts +26 -0
  27. package/lib/debounce.d.ts +42 -0
  28. package/lib/detect-links.d.ts +6 -0
  29. package/lib/env.d.ts +42 -0
  30. package/lib/extmarks-history.d.ts +17 -0
  31. package/lib/extmarks.d.ts +90 -0
  32. package/lib/hast-styled-text.d.ts +17 -0
  33. package/lib/index.d.ts +22 -0
  34. package/lib/keybinding.internal.d.ts +33 -0
  35. package/lib/objects-in-viewport.d.ts +24 -0
  36. package/lib/output.capture.d.ts +24 -0
  37. package/lib/parse.keypress-kitty.d.ts +3 -0
  38. package/lib/parse.keypress.d.ts +27 -0
  39. package/lib/parse.mouse.d.ts +30 -0
  40. package/lib/paste.d.ts +7 -0
  41. package/lib/queue.d.ts +15 -0
  42. package/lib/render-geometry.d.ts +8 -0
  43. package/lib/renderable.validations.d.ts +12 -0
  44. package/lib/scroll-acceleration.d.ts +43 -0
  45. package/lib/selection.d.ts +64 -0
  46. package/lib/singleton.d.ts +8 -0
  47. package/lib/stdin-parser.d.ts +90 -0
  48. package/lib/styled-text.d.ts +63 -0
  49. package/lib/terminal-capability-detection.d.ts +32 -0
  50. package/lib/terminal-palette.d.ts +65 -0
  51. package/lib/tree-sitter/assets/update.d.ts +12 -0
  52. package/lib/tree-sitter/client.d.ts +65 -0
  53. package/lib/tree-sitter/default-parsers.d.ts +2 -0
  54. package/lib/tree-sitter/download-utils.d.ts +21 -0
  55. package/lib/tree-sitter/index.d.ts +7 -0
  56. package/lib/tree-sitter/parser.worker.d.ts +1 -0
  57. package/lib/tree-sitter/parsers-config.d.ts +53 -0
  58. package/lib/tree-sitter/resolve-ft.d.ts +5 -0
  59. package/lib/tree-sitter/types.d.ts +185 -0
  60. package/lib/tree-sitter/update-assets.d.ts +3 -0
  61. package/lib/tree-sitter/update-assets.js +379 -0
  62. package/lib/tree-sitter/update-assets.js.map +12 -0
  63. package/lib/tree-sitter-styled-text.d.ts +16 -0
  64. package/lib/validate-dir-name.d.ts +1 -0
  65. package/lib/yoga.options.d.ts +32 -0
  66. package/native-event-worker-repro.worker.d.ts +1 -0
  67. package/package.json +52 -74
  68. package/parser.worker.js +1399 -0
  69. package/parser.worker.js.map +20 -0
  70. package/platform/ffi.d.ts +129 -0
  71. package/platform/runtime.d.ts +14 -0
  72. package/platform/test.d.ts +12 -0
  73. package/platform/worker.d.ts +26 -0
  74. package/platform/worker.node-test.d.ts +1 -0
  75. package/plugins/core-slot.d.ts +72 -0
  76. package/plugins/registry.d.ts +42 -0
  77. package/plugins/types.d.ts +34 -0
  78. package/post/effects.d.ts +147 -0
  79. package/post/filters.d.ts +65 -0
  80. package/post/matrices.d.ts +20 -0
  81. package/renderables/ASCIIFont.d.ts +52 -0
  82. package/renderables/Box.d.ts +85 -0
  83. package/renderables/Code.d.ts +97 -0
  84. package/renderables/Diff.d.ts +147 -0
  85. package/renderables/EditBufferRenderable.d.ts +238 -0
  86. package/renderables/FrameBuffer.d.ts +16 -0
  87. package/renderables/Input.d.ts +72 -0
  88. package/renderables/LineNumberRenderable.d.ts +78 -0
  89. package/renderables/Markdown.d.ts +255 -0
  90. package/renderables/ScrollBar.d.ts +77 -0
  91. package/renderables/ScrollBox.d.ts +128 -0
  92. package/renderables/Select.d.ts +122 -0
  93. package/renderables/Slider.d.ts +47 -0
  94. package/renderables/TabSelect.d.ts +98 -0
  95. package/renderables/Text.d.ts +36 -0
  96. package/renderables/TextBufferRenderable.d.ts +107 -0
  97. package/renderables/TextNode.d.ts +92 -0
  98. package/renderables/TextTable.d.ts +154 -0
  99. package/renderables/Textarea.d.ts +65 -0
  100. package/renderables/TimeToFirstDraw.d.ts +24 -0
  101. package/renderables/__tests__/renderable-test-utils.d.ts +12 -0
  102. package/renderables/composition/VRenderable.d.ts +16 -0
  103. package/renderables/composition/constructs.d.ts +35 -0
  104. package/renderables/composition/vnode.d.ts +46 -0
  105. package/renderables/index.d.ts +23 -0
  106. package/renderables/markdown-parser.d.ts +11 -0
  107. package/renderer-theme-mode.d.ts +29 -0
  108. package/renderer.d.ts +601 -0
  109. package/runtime-plugin-support-configure.d.ts +4 -0
  110. package/runtime-plugin-support-configure.js +36 -0
  111. package/runtime-plugin-support-configure.js.map +1 -0
  112. package/runtime-plugin-support-configure.node.js +15 -0
  113. package/runtime-plugin-support.d.ts +3 -0
  114. package/runtime-plugin-support.js +5 -0
  115. package/runtime-plugin-support.js.map +1 -0
  116. package/runtime-plugin-support.node.js +15 -0
  117. package/runtime-plugin.d.ts +16 -0
  118. package/runtime-plugin.js +473 -0
  119. package/runtime-plugin.js.map +1 -0
  120. package/runtime-plugin.node.js +15 -0
  121. package/syntax-style.d.ts +61 -0
  122. package/testing/bun-test-node.d.ts +87 -0
  123. package/testing/manual-clock.d.ts +17 -0
  124. package/testing/mock-keys.d.ts +81 -0
  125. package/testing/mock-mouse.d.ts +38 -0
  126. package/testing/mock-tree-sitter-client.d.ts +27 -0
  127. package/testing/spy.d.ts +7 -0
  128. package/testing/terminal-capabilities.d.ts +7 -0
  129. package/testing/test-recorder.d.ts +61 -0
  130. package/testing/test-renderer.d.ts +54 -0
  131. package/testing/test-streams.d.ts +12 -0
  132. package/testing.d.ts +8 -0
  133. package/testing.js +1004 -0
  134. package/testing.js.map +18 -0
  135. package/tests/yoga-upstream/tools/MeasureCounter.d.ts +16 -0
  136. package/tests/yoga-upstream/tools/utils.d.ts +11 -0
  137. package/text-buffer-view.d.ts +42 -0
  138. package/text-buffer.d.ts +66 -0
  139. package/types.d.ts +175 -0
  140. package/utils.d.ts +14 -0
  141. package/yoga.d.ts +437 -0
  142. package/yoga.js +193 -0
  143. package/yoga.js.map +9 -0
  144. package/zig-structs.d.ts +256 -0
  145. package/zig.d.ts +496 -0
  146. package/dev/keypress-debug-renderer.ts +0 -148
  147. package/dev/keypress-debug.ts +0 -43
  148. package/dev/print-env-vars.ts +0 -32
  149. package/dev/test-tmux-graphics-334.sh +0 -68
  150. package/dev/test-tmux-theme-queries.sh +0 -151
  151. package/dev/thai-debug-test.ts +0 -68
  152. package/dev/theme-mode.ts +0 -290
  153. package/docs/development.md +0 -144
  154. package/prebuilt/aarch64-android/libopentui.so +0 -0
  155. package/scripts/build-android.ts +0 -226
  156. package/scripts/build-native-termux.sh +0 -525
  157. package/scripts/build.ts +0 -530
  158. package/scripts/dist-test.ts +0 -312
  159. package/scripts/package-prebuilt.ts +0 -110
  160. package/scripts/publish.ts +0 -60
  161. package/scripts/test-node-hook.mjs +0 -16
  162. package/scripts/test-node.ts +0 -241
  163. package/scripts/vendor-deps.sh +0 -73
  164. package/src/NativeSpanFeed.ts +0 -375
  165. package/src/Renderable.ts +0 -1878
  166. package/src/__snapshots__/buffer.test.ts.snap +0 -28
  167. package/src/animation/Timeline.test.ts +0 -2709
  168. package/src/animation/Timeline.ts +0 -598
  169. package/src/ansi.ts +0 -22
  170. package/src/audio.ts +0 -479
  171. package/src/benchmark/attenuation-benchmark.ts +0 -81
  172. package/src/benchmark/audio-playback-benchmark.ts +0 -344
  173. package/src/benchmark/box-draw-benchmark.ts +0 -1042
  174. package/src/benchmark/colormatrix-benchmark.ts +0 -123
  175. package/src/benchmark/gain-benchmark.ts +0 -80
  176. package/src/benchmark/latest-all-bench-run.json +0 -707
  177. package/src/benchmark/latest-async-bench-run.json +0 -336
  178. package/src/benchmark/latest-default-bench-run.json +0 -657
  179. package/src/benchmark/latest-large-bench-run.json +0 -707
  180. package/src/benchmark/latest-quick-bench-run.json +0 -207
  181. package/src/benchmark/layout-benchmark.ts +0 -2547
  182. package/src/benchmark/markdown-benchmark.ts +0 -1796
  183. package/src/benchmark/native-span-feed-async-benchmark.ts +0 -355
  184. package/src/benchmark/native-span-feed-benchmark.md +0 -56
  185. package/src/benchmark/native-span-feed-benchmark.ts +0 -596
  186. package/src/benchmark/native-span-feed-compare.ts +0 -280
  187. package/src/benchmark/render-traversal-benchmark.ts +0 -928
  188. package/src/benchmark/text-buffer-render-benchmark.ts +0 -874
  189. package/src/benchmark/text-table-benchmark.ts +0 -948
  190. package/src/buffer.test.ts +0 -292
  191. package/src/buffer.ts +0 -564
  192. package/src/console.test.ts +0 -629
  193. package/src/console.ts +0 -1253
  194. package/src/edit-buffer.test.ts +0 -1852
  195. package/src/edit-buffer.ts +0 -417
  196. package/src/editor-view.test.ts +0 -1056
  197. package/src/editor-view.ts +0 -290
  198. package/src/index.ts +0 -25
  199. package/src/lib/KeyHandler.integration.test.ts +0 -292
  200. package/src/lib/KeyHandler.stopPropagation.test.ts +0 -289
  201. package/src/lib/KeyHandler.test.ts +0 -662
  202. package/src/lib/KeyHandler.ts +0 -222
  203. package/src/lib/RGBA.test.ts +0 -60
  204. package/src/lib/RGBA.ts +0 -343
  205. package/src/lib/ascii.font.ts +0 -330
  206. package/src/lib/border.test.ts +0 -83
  207. package/src/lib/border.ts +0 -170
  208. package/src/lib/bunfs.test.ts +0 -27
  209. package/src/lib/bunfs.ts +0 -18
  210. package/src/lib/clipboard.test.ts +0 -63
  211. package/src/lib/clipboard.ts +0 -41
  212. package/src/lib/clock.ts +0 -35
  213. package/src/lib/data-paths.test.ts +0 -133
  214. package/src/lib/data-paths.ts +0 -109
  215. package/src/lib/debounce.ts +0 -106
  216. package/src/lib/detect-links.test.ts +0 -98
  217. package/src/lib/detect-links.ts +0 -56
  218. package/src/lib/env.test.ts +0 -228
  219. package/src/lib/env.ts +0 -209
  220. package/src/lib/extmarks-history.ts +0 -51
  221. package/src/lib/extmarks-multiwidth.test.ts +0 -324
  222. package/src/lib/extmarks.test.ts +0 -3547
  223. package/src/lib/extmarks.ts +0 -861
  224. package/src/lib/fonts/block.json +0 -405
  225. package/src/lib/fonts/grid.json +0 -265
  226. package/src/lib/fonts/huge.json +0 -741
  227. package/src/lib/fonts/pallet.json +0 -314
  228. package/src/lib/fonts/shade.json +0 -591
  229. package/src/lib/fonts/slick.json +0 -321
  230. package/src/lib/fonts/tiny.json +0 -69
  231. package/src/lib/hast-styled-text.ts +0 -59
  232. package/src/lib/index.ts +0 -22
  233. package/src/lib/keybinding.internal.test.ts +0 -342
  234. package/src/lib/keybinding.internal.ts +0 -182
  235. package/src/lib/objects-in-viewport.test.ts +0 -789
  236. package/src/lib/objects-in-viewport.ts +0 -153
  237. package/src/lib/output.capture.ts +0 -58
  238. package/src/lib/parse.keypress-kitty.protocol.test.ts +0 -347
  239. package/src/lib/parse.keypress-kitty.test.ts +0 -712
  240. package/src/lib/parse.keypress-kitty.ts +0 -470
  241. package/src/lib/parse.keypress.test.ts +0 -2020
  242. package/src/lib/parse.keypress.ts +0 -480
  243. package/src/lib/parse.mouse.test.ts +0 -552
  244. package/src/lib/parse.mouse.ts +0 -232
  245. package/src/lib/paste.ts +0 -18
  246. package/src/lib/queue.ts +0 -65
  247. package/src/lib/render-geometry.ts +0 -36
  248. package/src/lib/renderable.validations.test.ts +0 -87
  249. package/src/lib/renderable.validations.ts +0 -83
  250. package/src/lib/scroll-acceleration.ts +0 -98
  251. package/src/lib/selection.ts +0 -261
  252. package/src/lib/singleton.ts +0 -34
  253. package/src/lib/stdin-parser.test.ts +0 -2439
  254. package/src/lib/stdin-parser.ts +0 -2007
  255. package/src/lib/styled-text.ts +0 -178
  256. package/src/lib/terminal-capability-detection.test.ts +0 -226
  257. package/src/lib/terminal-capability-detection.ts +0 -98
  258. package/src/lib/terminal-palette.test.ts +0 -954
  259. package/src/lib/terminal-palette.ts +0 -441
  260. package/src/lib/tree-sitter/assets/README.md +0 -119
  261. package/src/lib/tree-sitter/assets/update.ts +0 -360
  262. package/src/lib/tree-sitter/assets.d.ts +0 -9
  263. package/src/lib/tree-sitter/cache.test.ts +0 -291
  264. package/src/lib/tree-sitter/client.test.ts +0 -1434
  265. package/src/lib/tree-sitter/client.ts +0 -847
  266. package/src/lib/tree-sitter/default-parsers.ts +0 -133
  267. package/src/lib/tree-sitter/download-utils.ts +0 -148
  268. package/src/lib/tree-sitter/index.ts +0 -75
  269. package/src/lib/tree-sitter/parser.worker.ts +0 -1098
  270. package/src/lib/tree-sitter/parsers-config.ts +0 -81
  271. package/src/lib/tree-sitter/resolve-ft.test.ts +0 -55
  272. package/src/lib/tree-sitter/resolve-ft.ts +0 -189
  273. package/src/lib/tree-sitter/types.ts +0 -132
  274. package/src/lib/tree-sitter/update-assets.ts +0 -10
  275. package/src/lib/tree-sitter-styled-text.test.ts +0 -1253
  276. package/src/lib/tree-sitter-styled-text.ts +0 -314
  277. package/src/lib/validate-dir-name.ts +0 -55
  278. package/src/lib/yoga.options.test.ts +0 -628
  279. package/src/lib/yoga.options.ts +0 -346
  280. package/src/native-event-worker-repro.test.ts +0 -48
  281. package/src/native-event-worker-repro.worker.ts +0 -9
  282. package/src/native-handle.test.ts +0 -221
  283. package/src/platform/ffi.test.ts +0 -516
  284. package/src/platform/ffi.ts +0 -653
  285. package/src/platform/runtime.test.ts +0 -52
  286. package/src/platform/runtime.ts +0 -121
  287. package/src/platform/test.ts +0 -45
  288. package/src/platform/worker-handler-cleanup.fixture.ts +0 -12
  289. package/src/platform/worker-onmessage-startup.fixture.ts +0 -10
  290. package/src/platform/worker-startup.fixture.ts +0 -9
  291. package/src/platform/worker.node-test.ts +0 -153
  292. package/src/platform/worker.ts +0 -425
  293. package/src/plugins/core-slot.ts +0 -579
  294. package/src/plugins/registry.ts +0 -402
  295. package/src/plugins/types.ts +0 -46
  296. package/src/post/effects.ts +0 -948
  297. package/src/post/filters.ts +0 -512
  298. package/src/post/matrices.ts +0 -288
  299. package/src/renderables/ASCIIFont.ts +0 -219
  300. package/src/renderables/Box.test.ts +0 -474
  301. package/src/renderables/Box.ts +0 -353
  302. package/src/renderables/Code.test.ts +0 -2388
  303. package/src/renderables/Code.ts +0 -555
  304. package/src/renderables/Diff.regression.test.ts +0 -381
  305. package/src/renderables/Diff.test.ts +0 -3212
  306. package/src/renderables/Diff.ts +0 -1278
  307. package/src/renderables/EditBufferRenderable.test.ts +0 -288
  308. package/src/renderables/EditBufferRenderable.ts +0 -1152
  309. package/src/renderables/FrameBuffer.ts +0 -47
  310. package/src/renderables/Input.test.ts +0 -1310
  311. package/src/renderables/Input.ts +0 -273
  312. package/src/renderables/LineNumberRenderable.ts +0 -725
  313. package/src/renderables/Markdown.ts +0 -2144
  314. package/src/renderables/ScrollBar.ts +0 -423
  315. package/src/renderables/ScrollBox.ts +0 -903
  316. package/src/renderables/Select.test.ts +0 -1134
  317. package/src/renderables/Select.ts +0 -535
  318. package/src/renderables/Slider.test.ts +0 -456
  319. package/src/renderables/Slider.ts +0 -342
  320. package/src/renderables/TabSelect.test.ts +0 -238
  321. package/src/renderables/TabSelect.ts +0 -447
  322. package/src/renderables/Text.selection-buffer.test.ts +0 -118
  323. package/src/renderables/Text.test.ts +0 -2662
  324. package/src/renderables/Text.ts +0 -147
  325. package/src/renderables/TextBufferRenderable.ts +0 -504
  326. package/src/renderables/TextNode.test.ts +0 -1137
  327. package/src/renderables/TextNode.ts +0 -379
  328. package/src/renderables/TextTable.test.ts +0 -1411
  329. package/src/renderables/TextTable.ts +0 -1434
  330. package/src/renderables/Textarea.ts +0 -425
  331. package/src/renderables/TimeToFirstDraw.ts +0 -89
  332. package/src/renderables/__snapshots__/Code.test.ts.snap +0 -13
  333. package/src/renderables/__snapshots__/Diff.test.ts.snap +0 -785
  334. package/src/renderables/__snapshots__/Text.test.ts.snap +0 -421
  335. package/src/renderables/__snapshots__/TextTable.test.ts.snap +0 -215
  336. package/src/renderables/__tests__/Code.test.ts +0 -55
  337. package/src/renderables/__tests__/LineNumberRenderable.scrollbox-simple.test.ts +0 -144
  338. package/src/renderables/__tests__/LineNumberRenderable.scrollbox.test.ts +0 -827
  339. package/src/renderables/__tests__/LineNumberRenderable.test.ts +0 -1906
  340. package/src/renderables/__tests__/LineNumberRenderable.wrapping.test.ts +0 -85
  341. package/src/renderables/__tests__/Markdown.code-colors.test.ts +0 -288
  342. package/src/renderables/__tests__/Markdown.test.ts +0 -4175
  343. package/src/renderables/__tests__/MultiRenderable.selection.test.ts +0 -87
  344. package/src/renderables/__tests__/Textarea.buffer.test.ts +0 -683
  345. package/src/renderables/__tests__/Textarea.destroyed-events.test.ts +0 -675
  346. package/src/renderables/__tests__/Textarea.editing.test.ts +0 -2120
  347. package/src/renderables/__tests__/Textarea.error-handling.test.ts +0 -35
  348. package/src/renderables/__tests__/Textarea.events.test.ts +0 -738
  349. package/src/renderables/__tests__/Textarea.highlights.test.ts +0 -590
  350. package/src/renderables/__tests__/Textarea.keybinding.test.ts +0 -3275
  351. package/src/renderables/__tests__/Textarea.paste.test.ts +0 -357
  352. package/src/renderables/__tests__/Textarea.rendering.test.ts +0 -1927
  353. package/src/renderables/__tests__/Textarea.scroll.test.ts +0 -733
  354. package/src/renderables/__tests__/Textarea.selection.test.ts +0 -1589
  355. package/src/renderables/__tests__/Textarea.stress.test.ts +0 -670
  356. package/src/renderables/__tests__/Textarea.undo-redo.test.ts +0 -383
  357. package/src/renderables/__tests__/Textarea.visual-lines.test.ts +0 -310
  358. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.code.test.ts.snap +0 -221
  359. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox-simple.test.ts.snap +0 -89
  360. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox.test.ts.snap +0 -457
  361. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.test.ts.snap +0 -158
  362. package/src/renderables/__tests__/__snapshots__/Textarea.rendering.test.ts.snap +0 -387
  363. package/src/renderables/__tests__/markdown-parser.test.ts +0 -241
  364. package/src/renderables/__tests__/renderable-test-utils.ts +0 -60
  365. package/src/renderables/composition/README.md +0 -8
  366. package/src/renderables/composition/VRenderable.ts +0 -32
  367. package/src/renderables/composition/constructs.ts +0 -127
  368. package/src/renderables/composition/vnode.ts +0 -277
  369. package/src/renderables/index.ts +0 -23
  370. package/src/renderables/markdown-parser.ts +0 -79
  371. package/src/renderer-theme-mode.ts +0 -199
  372. package/src/renderer.ts +0 -4975
  373. package/src/runtime-plugin-support-configure.ts +0 -63
  374. package/src/runtime-plugin-support.ts +0 -13
  375. package/src/runtime-plugin.ts +0 -626
  376. package/src/specs/terminal-startup.md +0 -64
  377. package/src/syntax-style.test.ts +0 -841
  378. package/src/syntax-style.ts +0 -274
  379. package/src/testing/README.md +0 -219
  380. package/src/testing/bun-test-node.ts +0 -880
  381. package/src/testing/capture-spans.test.ts +0 -216
  382. package/src/testing/integration.test.ts +0 -276
  383. package/src/testing/manual-clock.ts +0 -117
  384. package/src/testing/mock-keys.test.ts +0 -1378
  385. package/src/testing/mock-keys.ts +0 -457
  386. package/src/testing/mock-mouse.test.ts +0 -218
  387. package/src/testing/mock-mouse.ts +0 -247
  388. package/src/testing/mock-tree-sitter-client.ts +0 -81
  389. package/src/testing/spy.ts +0 -13
  390. package/src/testing/terminal-capabilities.ts +0 -47
  391. package/src/testing/test-recorder.test.ts +0 -410
  392. package/src/testing/test-recorder.ts +0 -133
  393. package/src/testing/test-renderer.ts +0 -375
  394. package/src/testing/test-renderer.wait.test.ts +0 -278
  395. package/src/testing/test-streams.ts +0 -31
  396. package/src/testing.ts +0 -9
  397. package/src/tests/__snapshots__/absolute-positioning.snapshot.test.ts.snap +0 -481
  398. package/src/tests/__snapshots__/renderable.snapshot.test.ts.snap +0 -19
  399. package/src/tests/__snapshots__/scrollbox.test.ts.snap +0 -29
  400. package/src/tests/absolute-positioning.snapshot.test.ts +0 -638
  401. package/src/tests/allocator-stats.test.ts +0 -53
  402. package/src/tests/audio.test.ts +0 -303
  403. package/src/tests/destroy-during-render.test.ts +0 -200
  404. package/src/tests/destroy-on-exit.fixture.ts +0 -36
  405. package/src/tests/destroy-on-exit.test.ts +0 -62
  406. package/src/tests/ffi-borrowed-pointer-callsites.test.ts +0 -153
  407. package/src/tests/hover-cursor.test.ts +0 -98
  408. package/src/tests/native-backed-measurement-lifecycle.test.ts +0 -133
  409. package/src/tests/native-backed-measurement-parity.test.ts +0 -322
  410. package/src/tests/native-span-feed-async.test.ts +0 -173
  411. package/src/tests/native-span-feed-close.test.ts +0 -120
  412. package/src/tests/native-span-feed-coverage.test.ts +0 -227
  413. package/src/tests/native-span-feed-edge-cases.test.ts +0 -384
  414. package/src/tests/native-span-feed-use-after-free.test.ts +0 -45
  415. package/src/tests/opacity.test.ts +0 -123
  416. package/src/tests/renderable.snapshot.test.ts +0 -524
  417. package/src/tests/renderable.test.ts +0 -1851
  418. package/src/tests/renderer.clock.test.ts +0 -270
  419. package/src/tests/renderer.console-startup.test.ts +0 -2151
  420. package/src/tests/renderer.control.test.ts +0 -458
  421. package/src/tests/renderer.core-slot-binding.test.ts +0 -962
  422. package/src/tests/renderer.cursor.test.ts +0 -26
  423. package/src/tests/renderer.custom-stdout.test.ts +0 -1112
  424. package/src/tests/renderer.destroy-during-render.test.ts +0 -147
  425. package/src/tests/renderer.focus-restore.test.ts +0 -257
  426. package/src/tests/renderer.focus.test.ts +0 -329
  427. package/src/tests/renderer.idle.test.ts +0 -219
  428. package/src/tests/renderer.input.test.ts +0 -2615
  429. package/src/tests/renderer.kitty-flags.test.ts +0 -195
  430. package/src/tests/renderer.lifecycle.test.ts +0 -34
  431. package/src/tests/renderer.mouse.test.ts +0 -1315
  432. package/src/tests/renderer.notifications.test.ts +0 -27
  433. package/src/tests/renderer.palette.test.ts +0 -1199
  434. package/src/tests/renderer.remote.test.ts +0 -247
  435. package/src/tests/renderer.render-stats.test.ts +0 -146
  436. package/src/tests/renderer.scrollback-surface.test.ts +0 -474
  437. package/src/tests/renderer.selection.test.ts +0 -138
  438. package/src/tests/renderer.slot-registry.test.ts +0 -684
  439. package/src/tests/renderer.tracker.test.ts +0 -202
  440. package/src/tests/renderer.useMouse.test.ts +0 -83
  441. package/src/tests/runtime-plugin-node-modules-cycle.fixture.ts +0 -76
  442. package/src/tests/runtime-plugin-node-modules-import-like-string.fixture.ts +0 -48
  443. package/src/tests/runtime-plugin-node-modules-mjs.fixture.ts +0 -43
  444. package/src/tests/runtime-plugin-node-modules-no-bare-rewrite.fixture.ts +0 -67
  445. package/src/tests/runtime-plugin-node-modules-package-type-cache.fixture.ts +0 -72
  446. package/src/tests/runtime-plugin-node-modules-runtime-specifier.fixture.ts +0 -44
  447. package/src/tests/runtime-plugin-node-modules-scoped-package-bare-rewrite.fixture.ts +0 -85
  448. package/src/tests/runtime-plugin-path-alias.fixture.ts +0 -43
  449. package/src/tests/runtime-plugin-resolve-roots.fixture.ts +0 -65
  450. package/src/tests/runtime-plugin-support-configure.fixture.ts +0 -31
  451. package/src/tests/runtime-plugin-support-late-addition.fixture.ts +0 -17
  452. package/src/tests/runtime-plugin-support.fixture.ts +0 -11
  453. package/src/tests/runtime-plugin-support.test.ts +0 -54
  454. package/src/tests/runtime-plugin-windows-file-url.fixture.ts +0 -30
  455. package/src/tests/runtime-plugin.fixture.ts +0 -40
  456. package/src/tests/runtime-plugin.test.ts +0 -369
  457. package/src/tests/scrollbox-culling-bug.test.ts +0 -114
  458. package/src/tests/scrollbox-hitgrid-resize.test.ts +0 -136
  459. package/src/tests/scrollbox-hitgrid.test.ts +0 -909
  460. package/src/tests/scrollbox.test.ts +0 -1895
  461. package/src/tests/wrap-resize-perf.test.ts +0 -276
  462. package/src/tests/yoga-api-coverage.test.ts +0 -409
  463. package/src/tests/yoga-callback-stress.test.ts +0 -122
  464. package/src/tests/yoga-ffi.test.ts +0 -117
  465. package/src/tests/yoga-setters.test.ts +0 -921
  466. package/src/tests/yoga-upstream/YGAlignBaselineTest.test.ts +0 -124
  467. package/src/tests/yoga-upstream/YGComputedBorderTest.test.ts +0 -27
  468. package/src/tests/yoga-upstream/YGComputedMarginTest.test.ts +0 -27
  469. package/src/tests/yoga-upstream/YGComputedPaddingTest.test.ts +0 -27
  470. package/src/tests/yoga-upstream/YGDirtiedTest.test.ts +0 -157
  471. package/src/tests/yoga-upstream/YGErrataTest.test.ts +0 -40
  472. package/src/tests/yoga-upstream/YGFlexBasisAuto.test.ts +0 -23
  473. package/src/tests/yoga-upstream/YGHasNewLayout.test.ts +0 -81
  474. package/src/tests/yoga-upstream/YGMeasureCacheTest.test.ts +0 -31
  475. package/src/tests/yoga-upstream/YGMeasureTest.test.ts +0 -70
  476. package/src/tests/yoga-upstream/generated/YGAbsolutePositionTest.test.ts +0 -1864
  477. package/src/tests/yoga-upstream/generated/YGAlignContentTest.test.ts +0 -5829
  478. package/src/tests/yoga-upstream/generated/YGAlignItemsTest.test.ts +0 -2444
  479. package/src/tests/yoga-upstream/generated/YGAlignSelfTest.test.ts +0 -293
  480. package/src/tests/yoga-upstream/generated/YGAndroidNewsFeed.test.ts +0 -315
  481. package/src/tests/yoga-upstream/generated/YGAspectRatioTest.test.ts +0 -231
  482. package/src/tests/yoga-upstream/generated/YGAutoTest.test.ts +0 -347
  483. package/src/tests/yoga-upstream/generated/YGBorderTest.test.ts +0 -256
  484. package/src/tests/yoga-upstream/generated/YGBoxSizingTest.test.ts +0 -2747
  485. package/src/tests/yoga-upstream/generated/YGDimensionTest.test.ts +0 -129
  486. package/src/tests/yoga-upstream/generated/YGDisplayContentsTest.test.ts +0 -109
  487. package/src/tests/yoga-upstream/generated/YGDisplayTest.test.ts +0 -1097
  488. package/src/tests/yoga-upstream/generated/YGFlexDirectionTest.test.ts +0 -4562
  489. package/src/tests/yoga-upstream/generated/YGFlexTest.test.ts +0 -677
  490. package/src/tests/yoga-upstream/generated/YGFlexWrapTest.test.ts +0 -2071
  491. package/src/tests/yoga-upstream/generated/YGGapTest.test.ts +0 -3303
  492. package/src/tests/yoga-upstream/generated/YGIntrinsicSizeTest.test.ts +0 -582
  493. package/src/tests/yoga-upstream/generated/YGJustifyContentTest.test.ts +0 -2150
  494. package/src/tests/yoga-upstream/generated/YGMarginTest.test.ts +0 -1963
  495. package/src/tests/yoga-upstream/generated/YGMinMaxDimensionTest.test.ts +0 -1446
  496. package/src/tests/yoga-upstream/generated/YGPaddingTest.test.ts +0 -354
  497. package/src/tests/yoga-upstream/generated/YGPercentageTest.test.ts +0 -1760
  498. package/src/tests/yoga-upstream/generated/YGRoundingTest.test.ts +0 -1161
  499. package/src/tests/yoga-upstream/generated/YGSizeOverflowTest.test.ts +0 -207
  500. package/src/tests/yoga-upstream/generated/YGStaticPositionTest.test.ts +0 -6338
  501. package/src/tests/yoga-upstream/tools/MeasureCounter.ts +0 -54
  502. package/src/tests/yoga-upstream/tools/utils.ts +0 -81
  503. package/src/text-buffer-view.test.ts +0 -722
  504. package/src/text-buffer-view.ts +0 -193
  505. package/src/text-buffer.test.ts +0 -512
  506. package/src/text-buffer.ts +0 -250
  507. package/src/types.ts +0 -199
  508. package/src/utils.ts +0 -88
  509. package/src/yoga.ts +0 -1146
  510. package/src/zig/ansi.zig +0 -502
  511. package/src/zig/audio.zig +0 -1206
  512. package/src/zig/bench/README.md +0 -50
  513. package/src/zig/bench/buffer-color-blending_bench.zig +0 -350
  514. package/src/zig/bench/buffer-draw-box_bench.zig +0 -786
  515. package/src/zig/bench/buffer-draw-text-buffer_bench.zig +0 -894
  516. package/src/zig/bench/edit-buffer_bench.zig +0 -476
  517. package/src/zig/bench/editor-view_bench.zig +0 -169
  518. package/src/zig/bench/native-span-feed_bench.zig +0 -107
  519. package/src/zig/bench/rope-markers_bench.zig +0 -713
  520. package/src/zig/bench/rope_bench.zig +0 -514
  521. package/src/zig/bench/styled-text_bench.zig +0 -476
  522. package/src/zig/bench/text-buffer-coords_bench.zig +0 -362
  523. package/src/zig/bench/text-buffer-view_bench.zig +0 -459
  524. package/src/zig/bench/text-chunk-graphemes_bench.zig +0 -272
  525. package/src/zig/bench/utf8_bench.zig +0 -799
  526. package/src/zig/bench-utils.zig +0 -431
  527. package/src/zig/bench.zig +0 -223
  528. package/src/zig/buffer-methods.zig +0 -215
  529. package/src/zig/buffer.zig +0 -2515
  530. package/src/zig/build.zig +0 -700
  531. package/src/zig/build.zig.zon +0 -19
  532. package/src/zig/edit-buffer.zig +0 -900
  533. package/src/zig/editor-view.zig +0 -812
  534. package/src/zig/event-bus.zig +0 -28
  535. package/src/zig/event-emitter.zig +0 -65
  536. package/src/zig/file-logger.zig +0 -92
  537. package/src/zig/grapheme.zig +0 -838
  538. package/src/zig/handles.zig +0 -267
  539. package/src/zig/lib.zig +0 -2813
  540. package/src/zig/link.zig +0 -349
  541. package/src/zig/logger.zig +0 -43
  542. package/src/zig/mem-registry.zig +0 -126
  543. package/src/zig/miniaudio_shim.c +0 -21
  544. package/src/zig/native-renderable.zig +0 -112
  545. package/src/zig/native-span-feed-bench-lib.zig +0 -7
  546. package/src/zig/native-span-feed.zig +0 -747
  547. package/src/zig/renderer-output.zig +0 -677
  548. package/src/zig/renderer.zig +0 -2106
  549. package/src/zig/rope.zig +0 -1220
  550. package/src/zig/split-scrollback.zig +0 -88
  551. package/src/zig/syntax-style.zig +0 -174
  552. package/src/zig/terminal.zig +0 -1652
  553. package/src/zig/test.zig +0 -82
  554. package/src/zig/tests/README.md +0 -18
  555. package/src/zig/tests/ansi_test.zig +0 -18
  556. package/src/zig/tests/audio_test.zig +0 -439
  557. package/src/zig/tests/buffer-methods_test.zig +0 -1111
  558. package/src/zig/tests/buffer_test.zig +0 -2926
  559. package/src/zig/tests/edit-buffer-history_test.zig +0 -299
  560. package/src/zig/tests/edit-buffer_test.zig +0 -1688
  561. package/src/zig/tests/editor-view_test.zig +0 -3454
  562. package/src/zig/tests/event-emitter_test.zig +0 -249
  563. package/src/zig/tests/grapheme_test.zig +0 -1329
  564. package/src/zig/tests/handles_test.zig +0 -123
  565. package/src/zig/tests/link_test.zig +0 -220
  566. package/src/zig/tests/mem-registry_test.zig +0 -473
  567. package/src/zig/tests/memory_leak_regression_test.zig +0 -234
  568. package/src/zig/tests/native-renderable_test.zig +0 -16
  569. package/src/zig/tests/native-span-feed_test.zig +0 -1266
  570. package/src/zig/tests/renderer_test.zig +0 -2604
  571. package/src/zig/tests/rope-nested_test.zig +0 -712
  572. package/src/zig/tests/rope_fuzz_test.zig +0 -238
  573. package/src/zig/tests/rope_test.zig +0 -2362
  574. package/src/zig/tests/segment-merge.test.zig +0 -148
  575. package/src/zig/tests/split-scrollback_test.zig +0 -70
  576. package/src/zig/tests/syntax-style_test.zig +0 -558
  577. package/src/zig/tests/terminal_test.zig +0 -1489
  578. package/src/zig/tests/test-renderer.zig +0 -126
  579. package/src/zig/tests/text-buffer-drawing_test.zig +0 -3291
  580. package/src/zig/tests/text-buffer-highlights_test.zig +0 -706
  581. package/src/zig/tests/text-buffer-iterators_test.zig +0 -776
  582. package/src/zig/tests/text-buffer-segment_test.zig +0 -320
  583. package/src/zig/tests/text-buffer-selection_test.zig +0 -1056
  584. package/src/zig/tests/text-buffer-selection_viewport_test.zig +0 -358
  585. package/src/zig/tests/text-buffer-view_test.zig +0 -3672
  586. package/src/zig/tests/text-buffer_test.zig +0 -2191
  587. package/src/zig/tests/unicode-width-map.zon +0 -3909
  588. package/src/zig/tests/utf8_no_zwj_test.zig +0 -260
  589. package/src/zig/tests/utf8_test.zig +0 -4060
  590. package/src/zig/tests/utf8_wcwidth_cursor_test.zig +0 -267
  591. package/src/zig/tests/utf8_wcwidth_test.zig +0 -357
  592. package/src/zig/tests/word-wrap-editing_test.zig +0 -498
  593. package/src/zig/tests/wrap-cache-perf_test.zig +0 -113
  594. package/src/zig/tests/yoga_test.zig +0 -65
  595. package/src/zig/text-buffer-iterators.zig +0 -496
  596. package/src/zig/text-buffer-segment.zig +0 -403
  597. package/src/zig/text-buffer-view.zig +0 -1428
  598. package/src/zig/text-buffer.zig +0 -1272
  599. package/src/zig/utf8.zig +0 -1954
  600. package/src/zig/utils.zig +0 -12
  601. package/src/zig/uucode-stub.zig +0 -76
  602. package/src/zig/vendor/miniaudio/miniaudio.h +0 -93468
  603. package/src/zig/yoga.zig +0 -658
  604. package/src/zig-structs.ts +0 -381
  605. package/src/zig.ts +0 -5260
  606. package/tsconfig.build.json +0 -17
  607. package/tsconfig.json +0 -27
  608. package/tsconfig.node-test.json +0 -138
  609. /package/{src/lib/tree-sitter/assets → assets}/javascript/highlights.scm +0 -0
  610. /package/{src/lib/tree-sitter/assets → assets}/javascript/tree-sitter-javascript.wasm +0 -0
  611. /package/{src/lib/tree-sitter/assets → assets}/markdown/highlights.scm +0 -0
  612. /package/{src/lib/tree-sitter/assets → assets}/markdown/injections.scm +0 -0
  613. /package/{src/lib/tree-sitter/assets → assets}/markdown/tree-sitter-markdown.wasm +0 -0
  614. /package/{src/lib/tree-sitter/assets → assets}/markdown_inline/highlights.scm +0 -0
  615. /package/{src/lib/tree-sitter/assets → assets}/markdown_inline/tree-sitter-markdown_inline.wasm +0 -0
  616. /package/{src/lib/tree-sitter/assets → assets}/typescript/highlights.scm +0 -0
  617. /package/{src/lib/tree-sitter/assets → assets}/typescript/tree-sitter-typescript.wasm +0 -0
  618. /package/{src/lib/tree-sitter/assets → assets}/zig/highlights.scm +0 -0
  619. /package/{src/lib/tree-sitter/assets → assets}/zig/tree-sitter-zig.wasm +0 -0
package/zig.d.ts ADDED
@@ -0,0 +1,496 @@
1
+ import { type FFICallbackInstance, type Pointer } from "./platform/ffi.js";
2
+ import { type CursorStyle, type CursorStyleOptions, type TargetChannel, type DebugOverlayCorner, type WidthMethod, type TerminalCapabilities, type Highlight, type LineInfo } from "./types.js";
3
+ export type { LineInfo, AllocatorStats, BuildOptions, NativeRenderStats };
4
+ import { RGBA } from "./lib/RGBA.js";
5
+ import { OptimizedBuffer } from "./buffer.js";
6
+ import { TextBuffer } from "./text-buffer.js";
7
+ import type { NativeSpanFeedOptions, NativeSpanFeedStats, ReserveInfo, AudioCreateOptions, AudioStartOptions, AudioVoiceOptions, AudioStats, BuildOptions, AllocatorStats, NativeRenderStats } from "./zig-structs.js";
8
+ export type NativeHandle<T extends string> = Pointer & {
9
+ readonly __nativeHandle: T;
10
+ };
11
+ export type RendererHandle = NativeHandle<"renderer">;
12
+ export type OptimizedBufferHandle = NativeHandle<"optimized_buffer">;
13
+ export type TextBufferHandle = NativeHandle<"text_buffer">;
14
+ export type TextBufferViewHandle = NativeHandle<"text_buffer_view">;
15
+ export type EditBufferHandle = NativeHandle<"edit_buffer">;
16
+ export type EditorViewHandle = NativeHandle<"editor_view">;
17
+ export type SyntaxStyleHandle = NativeHandle<"syntax_style">;
18
+ export type EventSinkHandle = NativeHandle<"event_sink">;
19
+ export type AudioEngineHandle = NativeHandle<"audio_engine">;
20
+ export type NativeRenderableHandle = NativeHandle<"native_renderable">;
21
+ export declare enum LogLevel {
22
+ Error = 0,
23
+ Warn = 1,
24
+ Info = 2,
25
+ Debug = 3
26
+ }
27
+ /**
28
+ * VisualCursor represents a cursor position with both visual and logical coordinates.
29
+ * Visual coordinates (visualRow, visualCol) are VIEWPORT-RELATIVE.
30
+ * This means visualRow=0 is the first visible line in the viewport, not the first line in the document.
31
+ * Logical coordinates (logicalRow, logicalCol) are document-absolute.
32
+ */
33
+ export interface VisualCursor {
34
+ visualRow: number;
35
+ visualCol: number;
36
+ logicalRow: number;
37
+ logicalCol: number;
38
+ offset: number;
39
+ }
40
+ export interface LogicalCursor {
41
+ row: number;
42
+ col: number;
43
+ offset: number;
44
+ }
45
+ export interface CursorState {
46
+ x: number;
47
+ y: number;
48
+ visible: boolean;
49
+ style: CursorStyle;
50
+ blinking: boolean;
51
+ color: RGBA;
52
+ }
53
+ export type NativeSpanFeedEventHandler = (eventId: number, arg0: Pointer, arg1: number | bigint) => void;
54
+ export type NativeBufferedOutput = "stdout" | "memory";
55
+ export interface NativeRendererCreateOptions {
56
+ remote?: boolean;
57
+ feedPtr?: Pointer | null;
58
+ bufferedOutput?: NativeBufferedOutput;
59
+ }
60
+ export interface NativeRenderOperationResult {
61
+ renderOffset: number;
62
+ status: number;
63
+ }
64
+ export interface NativeYogaLayout {
65
+ left: number;
66
+ top: number;
67
+ right: number;
68
+ bottom: number;
69
+ width: number;
70
+ height: number;
71
+ }
72
+ export type NativeYogaMeasureCallback = (node: Pointer | null, width: number, widthMode: number, height: number, heightMode: number) => void;
73
+ export type NativeYogaDirtiedCallback = (node: Pointer | null) => void;
74
+ export declare const NativeMeasureTargetKind: {
75
+ readonly None: 0;
76
+ readonly TextBufferView: 1;
77
+ readonly EditorView: 2;
78
+ };
79
+ export type NativeMeasureTargetKind = (typeof NativeMeasureTargetKind)[keyof typeof NativeMeasureTargetKind];
80
+ export type NativeMeasureTargetHandle = TextBufferViewHandle | EditorViewHandle;
81
+ export interface AudioEngineLib {
82
+ createAudioEngine: (options?: AudioCreateOptions | null) => AudioEngineHandle | null;
83
+ destroyAudioEngine: (engine: AudioEngineHandle) => void;
84
+ audioRefreshPlaybackDevices: (engine: AudioEngineHandle) => number;
85
+ audioGetPlaybackDeviceCount: (engine: AudioEngineHandle) => number;
86
+ audioGetPlaybackDeviceName: (engine: AudioEngineHandle, index: number) => string;
87
+ audioIsPlaybackDeviceDefault: (engine: AudioEngineHandle, index: number) => boolean;
88
+ audioSelectPlaybackDevice: (engine: AudioEngineHandle, index: number) => number;
89
+ audioClearPlaybackDeviceSelection: (engine: AudioEngineHandle) => void;
90
+ audioStart: (engine: AudioEngineHandle, options?: AudioStartOptions | null) => number;
91
+ audioStartMixer: (engine: AudioEngineHandle) => number;
92
+ audioStop: (engine: AudioEngineHandle) => number;
93
+ audioLoad: (engine: AudioEngineHandle, data: Uint8Array) => {
94
+ status: number;
95
+ soundId: number | null;
96
+ };
97
+ audioUnload: (engine: AudioEngineHandle, soundId: number) => number;
98
+ audioPlay: (engine: AudioEngineHandle, soundId: number, options?: AudioVoiceOptions) => {
99
+ status: number;
100
+ voiceId: number | null;
101
+ };
102
+ audioStopVoice: (engine: AudioEngineHandle, voiceId: number) => number;
103
+ audioSetVoiceGroup: (engine: AudioEngineHandle, voiceId: number, groupId: number) => number;
104
+ audioCreateGroup: (engine: AudioEngineHandle, name: string) => {
105
+ status: number;
106
+ groupId: number | null;
107
+ };
108
+ audioSetGroupVolume: (engine: AudioEngineHandle, groupId: number, volume: number) => number;
109
+ audioSetMasterVolume: (engine: AudioEngineHandle, volume: number) => number;
110
+ audioMixToBuffer: (engine: AudioEngineHandle, outBuffer: Float32Array, frameCount: number, channels: number) => number;
111
+ audioEnableTap: (engine: AudioEngineHandle, enabled: boolean, capacityFrames: number) => number;
112
+ audioReadTap: (engine: AudioEngineHandle, outBuffer: Float32Array, frameCount: number, channels: number) => {
113
+ status: number;
114
+ framesRead: number;
115
+ };
116
+ audioGetStats: (engine: AudioEngineHandle) => AudioStats | null;
117
+ }
118
+ export interface RenderLib extends AudioEngineLib {
119
+ createRenderer: (width: number, height: number, options?: NativeRendererCreateOptions) => RendererHandle | null;
120
+ setTerminalEnvVar: (renderer: RendererHandle, key: string, value: string) => boolean;
121
+ destroyRenderer: (renderer: RendererHandle) => void;
122
+ setUseThread: (renderer: RendererHandle, useThread: boolean) => void;
123
+ setClearOnShutdown: (renderer: RendererHandle, clear: boolean) => void;
124
+ setBackgroundColor: (renderer: RendererHandle, color: RGBA) => void;
125
+ setRenderOffset: (renderer: RendererHandle, offset: number) => void;
126
+ resetSplitScrollback: (renderer: RendererHandle, seedRows: number, pinnedRenderOffset: number) => number;
127
+ syncSplitScrollback: (renderer: RendererHandle, pinnedRenderOffset: number) => number;
128
+ getSplitOutputOffset: (renderer: RendererHandle, surfaceOffset: number) => number;
129
+ setPendingSplitFooterTransition: (renderer: RendererHandle, mode: number, sourceTopLine: number, sourceHeight: number, targetTopLine: number, targetHeight: number, scrollLines: number) => void;
130
+ clearPendingSplitFooterTransition: (renderer: RendererHandle) => void;
131
+ updateStats: (renderer: RendererHandle, time: number, fps: number, frameCallbackTime: number) => void;
132
+ updateMemoryStats: (renderer: RendererHandle, heapUsed: number, heapTotal: number, arrayBuffers: number) => void;
133
+ getRenderStats: (renderer: RendererHandle) => NativeRenderStats;
134
+ render: (renderer: RendererHandle, force: boolean) => number;
135
+ repaintSplitFooter: (renderer: RendererHandle, pinnedRenderOffset: number, force: boolean) => NativeRenderOperationResult;
136
+ commitSplitFooterSnapshot: (renderer: RendererHandle, snapshot: OptimizedBuffer, rowColumns: number, startOnNewLine: boolean, trailingNewline: boolean, pinnedRenderOffset: number, force: boolean, beginFrame?: boolean, finalizeFrame?: boolean) => NativeRenderOperationResult;
137
+ getNextBuffer: (renderer: RendererHandle) => OptimizedBuffer;
138
+ getCurrentBuffer: (renderer: RendererHandle) => OptimizedBuffer;
139
+ rendererSetPaletteState: (renderer: RendererHandle, palette: readonly RGBA[], defaultForeground: RGBA, defaultBackground: RGBA, paletteEpoch: number) => void;
140
+ createOptimizedBuffer: (width: number, height: number, widthMethod: WidthMethod, respectAlpha?: boolean, id?: string) => OptimizedBuffer;
141
+ destroyOptimizedBuffer: (bufferPtr: OptimizedBufferHandle) => void;
142
+ drawFrameBuffer: (targetBufferPtr: OptimizedBufferHandle, destX: number, destY: number, bufferPtr: OptimizedBufferHandle, sourceX?: number, sourceY?: number, sourceWidth?: number, sourceHeight?: number) => void;
143
+ getBufferWidth: (buffer: OptimizedBufferHandle) => number;
144
+ getBufferHeight: (buffer: OptimizedBufferHandle) => number;
145
+ bufferClear: (buffer: OptimizedBufferHandle, color: RGBA) => void;
146
+ bufferGetCharPtr: (buffer: OptimizedBufferHandle) => Pointer;
147
+ bufferGetFgPtr: (buffer: OptimizedBufferHandle) => Pointer;
148
+ bufferGetBgPtr: (buffer: OptimizedBufferHandle) => Pointer;
149
+ bufferGetAttributesPtr: (buffer: OptimizedBufferHandle) => Pointer;
150
+ bufferGetRespectAlpha: (buffer: OptimizedBufferHandle) => boolean;
151
+ bufferSetRespectAlpha: (buffer: OptimizedBufferHandle, respectAlpha: boolean) => void;
152
+ bufferGetId: (buffer: OptimizedBufferHandle) => string;
153
+ bufferGetRealCharSize: (buffer: OptimizedBufferHandle) => number;
154
+ bufferWriteResolvedChars: (buffer: OptimizedBufferHandle, outputBuffer: Uint8Array, addLineBreaks: boolean) => number;
155
+ bufferDrawText: (buffer: OptimizedBufferHandle, text: string, x: number, y: number, color: RGBA, bgColor?: RGBA, attributes?: number) => void;
156
+ bufferSetCellWithAlphaBlending: (buffer: OptimizedBufferHandle, x: number, y: number, char: string, color: RGBA, bgColor: RGBA, attributes?: number) => void;
157
+ bufferSetCell: (buffer: OptimizedBufferHandle, x: number, y: number, char: string, color: RGBA, bgColor: RGBA, attributes?: number) => void;
158
+ bufferFillRect: (buffer: OptimizedBufferHandle, x: number, y: number, width: number, height: number, color: RGBA) => void;
159
+ bufferColorMatrix: (buffer: OptimizedBufferHandle, matrixPtr: Pointer, cellMaskPtr: Pointer, cellMaskCount: number, strength: number, target: TargetChannel) => void;
160
+ bufferColorMatrixUniform: (buffer: OptimizedBufferHandle, matrixPtr: Pointer, strength: number, target: TargetChannel) => void;
161
+ bufferDrawSuperSampleBuffer: (buffer: OptimizedBufferHandle, x: number, y: number, pixelDataPtr: Pointer, pixelDataLength: number, format: "bgra8unorm" | "rgba8unorm", alignedBytesPerRow: number) => void;
162
+ bufferDrawPackedBuffer: (buffer: OptimizedBufferHandle, dataPtr: Pointer, dataLen: number, posX: number, posY: number, terminalWidthCells: number, terminalHeightCells: number) => void;
163
+ bufferDrawGrayscaleBuffer: (buffer: OptimizedBufferHandle, posX: number, posY: number, intensitiesPtr: Pointer, srcWidth: number, srcHeight: number, fg: RGBA | null, bg: RGBA | null) => void;
164
+ bufferDrawGrayscaleBufferSupersampled: (buffer: OptimizedBufferHandle, posX: number, posY: number, intensitiesPtr: Pointer, srcWidth: number, srcHeight: number, fg: RGBA | null, bg: RGBA | null) => void;
165
+ bufferDrawGrid: (buffer: OptimizedBufferHandle, borderChars: Uint32Array, borderFg: RGBA, borderBg: RGBA, columnOffsets: Int32Array, columnCount: number, rowOffsets: Int32Array, rowCount: number, options: {
166
+ drawInner: boolean;
167
+ drawOuter: boolean;
168
+ }) => void;
169
+ bufferDrawBox: (buffer: OptimizedBufferHandle, x: number, y: number, width: number, height: number, borderChars: Uint32Array, packedOptions: number, borderColor: RGBA, backgroundColor: RGBA, titleColor: RGBA, title: string | null, bottomTitle: string | null) => void;
170
+ bufferResize: (buffer: OptimizedBufferHandle, width: number, height: number) => void;
171
+ resizeRenderer: (renderer: RendererHandle, width: number, height: number) => void;
172
+ setCursorPosition: (renderer: RendererHandle, x: number, y: number, visible: boolean) => void;
173
+ setCursorColor: (renderer: RendererHandle, color: RGBA) => void;
174
+ getCursorState: (renderer: RendererHandle) => CursorState;
175
+ setCursorStyleOptions: (renderer: RendererHandle, options: CursorStyleOptions) => void;
176
+ setDebugOverlay: (renderer: RendererHandle, enabled: boolean, corner: DebugOverlayCorner) => void;
177
+ clearTerminal: (renderer: RendererHandle) => void;
178
+ setTerminalTitle: (renderer: RendererHandle, title: string) => void;
179
+ copyToClipboardOSC52: (renderer: RendererHandle, target: number, textUtf8: Uint8Array) => boolean;
180
+ clearClipboardOSC52: (renderer: RendererHandle, target: number) => boolean;
181
+ triggerNotification: (renderer: RendererHandle, message: string, title?: string) => boolean;
182
+ addToHitGrid: (renderer: RendererHandle, x: number, y: number, width: number, height: number, id: number) => void;
183
+ clearCurrentHitGrid: (renderer: RendererHandle) => void;
184
+ hitGridPushScissorRect: (renderer: RendererHandle, x: number, y: number, width: number, height: number) => void;
185
+ hitGridPopScissorRect: (renderer: RendererHandle) => void;
186
+ hitGridClearScissorRects: (renderer: RendererHandle) => void;
187
+ addToCurrentHitGridClipped: (renderer: RendererHandle, x: number, y: number, width: number, height: number, id: number) => void;
188
+ checkHit: (renderer: RendererHandle, x: number, y: number) => number;
189
+ getHitGridDirty: (renderer: RendererHandle) => boolean;
190
+ dumpHitGrid: (renderer: RendererHandle) => void;
191
+ dumpBuffers: (renderer: RendererHandle, timestamp?: number) => void;
192
+ dumpOutputBuffer: (renderer: RendererHandle, timestamp?: number) => void;
193
+ restoreTerminalModes: (renderer: RendererHandle) => void;
194
+ enableMouse: (renderer: RendererHandle, enableMovement: boolean) => void;
195
+ disableMouse: (renderer: RendererHandle) => void;
196
+ enableKittyKeyboard: (renderer: RendererHandle, flags: number) => void;
197
+ disableKittyKeyboard: (renderer: RendererHandle) => void;
198
+ setKittyKeyboardFlags: (renderer: RendererHandle, flags: number) => void;
199
+ getKittyKeyboardFlags: (renderer: RendererHandle) => number;
200
+ setupTerminal: (renderer: RendererHandle, useAlternateScreen: boolean) => void;
201
+ suspendRenderer: (renderer: RendererHandle) => void;
202
+ resumeRenderer: (renderer: RendererHandle) => void;
203
+ queryPixelResolution: (renderer: RendererHandle) => void;
204
+ queryThemeColors: (renderer: RendererHandle) => void;
205
+ writeOut: (renderer: RendererHandle, data: string | Uint8Array) => void;
206
+ yogaConfigCreate: () => Pointer;
207
+ yogaConfigFree: (config: Pointer) => void;
208
+ yogaConfigSetUseWebDefaults: (config: Pointer, enabled: boolean) => void;
209
+ yogaConfigGetUseWebDefaults: (config: Pointer) => boolean;
210
+ yogaConfigSetPointScaleFactor: (config: Pointer, pointScaleFactor: number) => void;
211
+ yogaConfigGetPointScaleFactor: (config: Pointer) => number;
212
+ yogaConfigSetErrata: (config: Pointer, errata: number) => void;
213
+ yogaConfigGetErrata: (config: Pointer) => number;
214
+ yogaConfigSetExperimentalFeatureEnabled: (config: Pointer, feature: number, enabled: boolean) => void;
215
+ yogaConfigIsExperimentalFeatureEnabled: (config: Pointer, feature: number) => boolean;
216
+ yogaNodeCreate: () => Pointer;
217
+ yogaNodeCreateForOpenTUI: () => Pointer;
218
+ yogaNodeCreateWithConfig: (config: Pointer) => Pointer;
219
+ yogaNodeFree: (node: Pointer) => void;
220
+ yogaNodeFreeRecursive: (node: Pointer) => void;
221
+ yogaNodeReset: (node: Pointer) => void;
222
+ yogaNodeCopyStyle: (dstNode: Pointer, srcNode: Pointer) => void;
223
+ yogaNodeInsertChild: (node: Pointer, child: Pointer, index: number) => void;
224
+ yogaNodeRemoveChild: (node: Pointer, child: Pointer) => void;
225
+ yogaNodeRemoveAllChildren: (node: Pointer) => void;
226
+ yogaNodeGetChild: (node: Pointer, index: number) => Pointer | null;
227
+ yogaNodeGetChildCount: (node: Pointer) => number;
228
+ yogaNodeGetParent: (node: Pointer) => Pointer | null;
229
+ yogaNodeCalculateLayout: (node: Pointer, width: number, height: number, direction: number) => void;
230
+ yogaNodeIsDirty: (node: Pointer) => boolean;
231
+ yogaNodeMarkDirty: (node: Pointer) => void;
232
+ yogaNodeGetHasNewLayout: (node: Pointer) => boolean;
233
+ yogaNodeSetHasNewLayout: (node: Pointer, hasNewLayout: boolean) => void;
234
+ yogaNodeSetIsReferenceBaseline: (node: Pointer, isReferenceBaseline: boolean) => void;
235
+ yogaNodeIsReferenceBaseline: (node: Pointer) => boolean;
236
+ yogaNodeSetAlwaysFormsContainingBlock: (node: Pointer, alwaysFormsContainingBlock: boolean) => void;
237
+ yogaNodeGetAlwaysFormsContainingBlock: (node: Pointer) => boolean;
238
+ yogaNodeGetComputedLayout: (node: Pointer) => NativeYogaLayout;
239
+ yogaNodeLayoutGetEdge: (node: Pointer, kind: number, edge: number) => number;
240
+ yogaNodeStyleSetEnum: (node: Pointer, kind: number, value: number) => void;
241
+ yogaNodeStyleGetEnum: (node: Pointer, kind: number) => number;
242
+ yogaNodeStyleSetFloat: (node: Pointer, kind: number, value: number) => void;
243
+ yogaNodeStyleGetFloat: (node: Pointer, kind: number) => number;
244
+ yogaNodeStyleSetBorder: (node: Pointer, edge: number, border: number) => void;
245
+ yogaNodeStyleGetBorder: (node: Pointer, edge: number) => number;
246
+ yogaNodeStyleSetValue: (node: Pointer, kind: number, edgeOrGutter: number, unit: number, value: number) => void;
247
+ yogaNodeStyleGetValue: (node: Pointer, kind: number, edgeOrGutter: number) => number | bigint;
248
+ yogaNodeSetMeasureFunc: (node: Pointer, enabled: boolean) => void;
249
+ yogaNodeUnsetMeasureFunc: (node: Pointer) => void;
250
+ yogaNodeHasMeasureFunc: (node: Pointer) => boolean;
251
+ yogaNodeSetDirtiedFunc: (node: Pointer, enabled: boolean) => void;
252
+ yogaNodeUnsetDirtiedFunc: (node: Pointer) => void;
253
+ yogaStoreMeasureResult: (width: number, height: number) => void;
254
+ yogaSetMeasureCallback: (callback: Pointer | null) => void;
255
+ yogaSetDirtiedCallback: (callback: Pointer | null) => void;
256
+ createYogaMeasureCallback: (callback: NativeYogaMeasureCallback) => FFICallbackInstance;
257
+ createYogaDirtiedCallback: (callback: NativeYogaDirtiedCallback) => FFICallbackInstance;
258
+ createTextBuffer: (widthMethod: WidthMethod) => TextBuffer;
259
+ destroyTextBuffer: (buffer: TextBufferHandle) => void;
260
+ textBufferGetLength: (buffer: TextBufferHandle) => number;
261
+ textBufferGetByteSize: (buffer: TextBufferHandle) => number;
262
+ textBufferReset: (buffer: TextBufferHandle) => void;
263
+ textBufferClear: (buffer: TextBufferHandle) => void;
264
+ textBufferRegisterMemBuffer: (buffer: TextBufferHandle, bytes: Uint8Array, owned?: boolean) => number;
265
+ textBufferReplaceMemBuffer: (buffer: TextBufferHandle, memId: number, bytes: Uint8Array, owned?: boolean) => boolean;
266
+ textBufferClearMemRegistry: (buffer: TextBufferHandle) => void;
267
+ textBufferSetTextFromMem: (buffer: TextBufferHandle, memId: number) => void;
268
+ textBufferAppend: (buffer: TextBufferHandle, bytes: Uint8Array) => void;
269
+ textBufferAppendFromMemId: (buffer: TextBufferHandle, memId: number) => void;
270
+ textBufferLoadFile: (buffer: TextBufferHandle, path: string) => boolean;
271
+ textBufferSetStyledText: (buffer: TextBufferHandle, chunks: Array<{
272
+ text: string;
273
+ fg?: RGBA | null;
274
+ bg?: RGBA | null;
275
+ attributes?: number;
276
+ link?: {
277
+ url: string;
278
+ };
279
+ }>) => void;
280
+ textBufferSetDefaultFg: (buffer: TextBufferHandle, fg: RGBA | null) => void;
281
+ textBufferSetDefaultBg: (buffer: TextBufferHandle, bg: RGBA | null) => void;
282
+ textBufferSetDefaultAttributes: (buffer: TextBufferHandle, attributes: number | null) => void;
283
+ textBufferResetDefaults: (buffer: TextBufferHandle) => void;
284
+ textBufferGetTabWidth: (buffer: TextBufferHandle) => number;
285
+ textBufferSetTabWidth: (buffer: TextBufferHandle, width: number) => void;
286
+ textBufferGetLineCount: (buffer: TextBufferHandle) => number;
287
+ getPlainTextBytes: (buffer: TextBufferHandle, maxLength: number) => Uint8Array | null;
288
+ textBufferGetTextRange: (buffer: TextBufferHandle, startOffset: number, endOffset: number, maxLength: number) => Uint8Array | null;
289
+ textBufferGetTextRangeByCoords: (buffer: TextBufferHandle, startRow: number, startCol: number, endRow: number, endCol: number, maxLength: number) => Uint8Array | null;
290
+ createTextBufferView: (textBuffer: TextBufferHandle) => TextBufferViewHandle;
291
+ destroyTextBufferView: (view: TextBufferViewHandle) => void;
292
+ textBufferViewSetSelection: (view: TextBufferViewHandle, start: number, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
293
+ textBufferViewResetSelection: (view: TextBufferViewHandle) => void;
294
+ textBufferViewGetSelection: (view: TextBufferViewHandle) => {
295
+ start: number;
296
+ end: number;
297
+ } | null;
298
+ textBufferViewSetLocalSelection: (view: TextBufferViewHandle, anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor: RGBA | null, fgColor: RGBA | null) => boolean;
299
+ textBufferViewUpdateSelection: (view: TextBufferViewHandle, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
300
+ textBufferViewUpdateLocalSelection: (view: TextBufferViewHandle, anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor: RGBA | null, fgColor: RGBA | null) => boolean;
301
+ textBufferViewResetLocalSelection: (view: TextBufferViewHandle) => void;
302
+ textBufferViewSetWrapWidth: (view: TextBufferViewHandle, width: number) => void;
303
+ textBufferViewSetWrapMode: (view: TextBufferViewHandle, mode: "none" | "char" | "word") => void;
304
+ textBufferViewSetFirstLineOffset: (view: TextBufferViewHandle, offset: number) => void;
305
+ textBufferViewSetViewportSize: (view: TextBufferViewHandle, width: number, height: number) => void;
306
+ textBufferViewSetViewport: (view: TextBufferViewHandle, x: number, y: number, width: number, height: number) => void;
307
+ textBufferViewGetLineInfo: (view: TextBufferViewHandle) => LineInfo;
308
+ textBufferViewGetLogicalLineInfo: (view: TextBufferViewHandle) => LineInfo;
309
+ textBufferViewGetSelectedTextBytes: (view: TextBufferViewHandle, maxLength: number) => Uint8Array | null;
310
+ textBufferViewGetPlainTextBytes: (view: TextBufferViewHandle, maxLength: number) => Uint8Array | null;
311
+ textBufferViewSetTabIndicator: (view: TextBufferViewHandle, indicator: number) => void;
312
+ textBufferViewSetTabIndicatorColor: (view: TextBufferViewHandle, color: RGBA) => void;
313
+ textBufferViewSetTruncate: (view: TextBufferViewHandle, truncate: boolean) => void;
314
+ textBufferViewMeasureForDimensions: (view: TextBufferViewHandle, width: number, height: number) => {
315
+ lineCount: number;
316
+ widthColsMax: number;
317
+ } | null;
318
+ textBufferViewGetVirtualLineCount: (view: TextBufferViewHandle) => number;
319
+ readonly encoder: TextEncoder;
320
+ readonly decoder: TextDecoder;
321
+ bufferDrawTextBufferView: (buffer: OptimizedBufferHandle, view: TextBufferViewHandle, x: number, y: number) => void;
322
+ bufferDrawEditorView: (buffer: OptimizedBufferHandle, view: EditorViewHandle, x: number, y: number) => void;
323
+ createEditBuffer: (widthMethod: WidthMethod) => EditBufferHandle;
324
+ destroyEditBuffer: (buffer: EditBufferHandle) => void;
325
+ editBufferSetText: (buffer: EditBufferHandle, textBytes: Uint8Array) => void;
326
+ editBufferSetTextFromMem: (buffer: EditBufferHandle, memId: number) => void;
327
+ editBufferReplaceText: (buffer: EditBufferHandle, textBytes: Uint8Array) => void;
328
+ editBufferReplaceTextFromMem: (buffer: EditBufferHandle, memId: number) => void;
329
+ editBufferGetText: (buffer: EditBufferHandle, maxLength: number) => Uint8Array | null;
330
+ editBufferInsertChar: (buffer: EditBufferHandle, char: string) => void;
331
+ editBufferInsertText: (buffer: EditBufferHandle, text: string) => void;
332
+ editBufferDeleteChar: (buffer: EditBufferHandle) => void;
333
+ editBufferDeleteCharBackward: (buffer: EditBufferHandle) => void;
334
+ editBufferDeleteRange: (buffer: EditBufferHandle, startLine: number, startCol: number, endLine: number, endCol: number) => void;
335
+ editBufferNewLine: (buffer: EditBufferHandle) => void;
336
+ editBufferDeleteLine: (buffer: EditBufferHandle) => void;
337
+ editBufferMoveCursorLeft: (buffer: EditBufferHandle) => void;
338
+ editBufferMoveCursorRight: (buffer: EditBufferHandle) => void;
339
+ editBufferMoveCursorUp: (buffer: EditBufferHandle) => void;
340
+ editBufferMoveCursorDown: (buffer: EditBufferHandle) => void;
341
+ editBufferGotoLine: (buffer: EditBufferHandle, line: number) => void;
342
+ editBufferSetCursor: (buffer: EditBufferHandle, line: number, col: number) => void;
343
+ editBufferSetCursorToLineCol: (buffer: EditBufferHandle, line: number, col: number) => void;
344
+ editBufferSetCursorByOffset: (buffer: EditBufferHandle, offset: number) => void;
345
+ editBufferGetCursorPosition: (buffer: EditBufferHandle) => LogicalCursor;
346
+ editBufferGetId: (buffer: EditBufferHandle) => number;
347
+ editBufferGetTextBuffer: (buffer: EditBufferHandle) => TextBufferHandle;
348
+ editBufferDebugLogRope: (buffer: EditBufferHandle) => void;
349
+ editBufferUndo: (buffer: EditBufferHandle, maxLength: number) => Uint8Array | null;
350
+ editBufferRedo: (buffer: EditBufferHandle, maxLength: number) => Uint8Array | null;
351
+ editBufferCanUndo: (buffer: EditBufferHandle) => boolean;
352
+ editBufferCanRedo: (buffer: EditBufferHandle) => boolean;
353
+ editBufferClearHistory: (buffer: EditBufferHandle) => void;
354
+ editBufferClear: (buffer: EditBufferHandle) => void;
355
+ editBufferGetNextWordBoundary: (buffer: EditBufferHandle) => {
356
+ row: number;
357
+ col: number;
358
+ offset: number;
359
+ };
360
+ editBufferGetPrevWordBoundary: (buffer: EditBufferHandle) => {
361
+ row: number;
362
+ col: number;
363
+ offset: number;
364
+ };
365
+ editBufferGetEOL: (buffer: EditBufferHandle) => {
366
+ row: number;
367
+ col: number;
368
+ offset: number;
369
+ };
370
+ editBufferOffsetToPosition: (buffer: EditBufferHandle, offset: number) => {
371
+ row: number;
372
+ col: number;
373
+ offset: number;
374
+ } | null;
375
+ editBufferPositionToOffset: (buffer: EditBufferHandle, row: number, col: number) => number;
376
+ editBufferGetLineStartOffset: (buffer: EditBufferHandle, row: number) => number;
377
+ editBufferGetTextRange: (buffer: EditBufferHandle, startOffset: number, endOffset: number, maxLength: number) => Uint8Array | null;
378
+ editBufferGetTextRangeByCoords: (buffer: EditBufferHandle, startRow: number, startCol: number, endRow: number, endCol: number, maxLength: number) => Uint8Array | null;
379
+ createEditorView: (editBufferPtr: EditBufferHandle, viewportWidth: number, viewportHeight: number) => EditorViewHandle;
380
+ destroyEditorView: (view: EditorViewHandle) => void;
381
+ editorViewSetViewportSize: (view: EditorViewHandle, width: number, height: number) => void;
382
+ editorViewSetViewport: (view: EditorViewHandle, x: number, y: number, width: number, height: number, moveCursor: boolean) => void;
383
+ editorViewGetViewport: (view: EditorViewHandle) => {
384
+ offsetY: number;
385
+ offsetX: number;
386
+ height: number;
387
+ width: number;
388
+ };
389
+ editorViewSetScrollMargin: (view: EditorViewHandle, margin: number) => void;
390
+ editorViewSetWrapMode: (view: EditorViewHandle, mode: "none" | "char" | "word") => void;
391
+ editorViewGetVirtualLineCount: (view: EditorViewHandle) => number;
392
+ editorViewGetTotalVirtualLineCount: (view: EditorViewHandle) => number;
393
+ editorViewGetTextBufferView: (view: EditorViewHandle) => TextBufferViewHandle;
394
+ editorViewSetSelection: (view: EditorViewHandle, start: number, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
395
+ editorViewResetSelection: (view: EditorViewHandle) => void;
396
+ editorViewGetSelection: (view: EditorViewHandle) => {
397
+ start: number;
398
+ end: number;
399
+ } | null;
400
+ editorViewSetLocalSelection: (view: EditorViewHandle, anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor: RGBA | null, fgColor: RGBA | null, updateCursor: boolean, followCursor: boolean) => boolean;
401
+ editorViewUpdateSelection: (view: EditorViewHandle, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
402
+ editorViewUpdateLocalSelection: (view: EditorViewHandle, anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor: RGBA | null, fgColor: RGBA | null, updateCursor: boolean, followCursor: boolean) => boolean;
403
+ editorViewResetLocalSelection: (view: EditorViewHandle) => void;
404
+ editorViewGetSelectedTextBytes: (view: EditorViewHandle, maxLength: number) => Uint8Array | null;
405
+ editorViewGetCursor: (view: EditorViewHandle) => {
406
+ row: number;
407
+ col: number;
408
+ };
409
+ editorViewGetText: (view: EditorViewHandle, maxLength: number) => Uint8Array | null;
410
+ editorViewGetVisualCursor: (view: EditorViewHandle) => VisualCursor;
411
+ editorViewMoveUpVisual: (view: EditorViewHandle) => void;
412
+ editorViewMoveDownVisual: (view: EditorViewHandle) => void;
413
+ editorViewDeleteSelectedText: (view: EditorViewHandle) => void;
414
+ editorViewSetCursorByOffset: (view: EditorViewHandle, offset: number) => void;
415
+ editorViewGetNextWordBoundary: (view: EditorViewHandle) => VisualCursor;
416
+ editorViewGetPrevWordBoundary: (view: EditorViewHandle) => VisualCursor;
417
+ editorViewGetEOL: (view: EditorViewHandle) => VisualCursor;
418
+ editorViewGetVisualSOL: (view: EditorViewHandle) => VisualCursor;
419
+ editorViewGetVisualEOL: (view: EditorViewHandle) => VisualCursor;
420
+ editorViewGetLineInfo: (view: EditorViewHandle) => LineInfo;
421
+ editorViewGetLogicalLineInfo: (view: EditorViewHandle) => LineInfo;
422
+ editorViewSetPlaceholderStyledText: (view: EditorViewHandle, chunks: Array<{
423
+ text: string;
424
+ fg?: RGBA | null;
425
+ bg?: RGBA | null;
426
+ attributes?: number;
427
+ }>) => void;
428
+ editorViewSetTabIndicator: (view: EditorViewHandle, indicator: number) => void;
429
+ editorViewSetTabIndicatorColor: (view: EditorViewHandle, color: RGBA) => void;
430
+ bufferPushScissorRect: (buffer: OptimizedBufferHandle, x: number, y: number, width: number, height: number) => void;
431
+ bufferPopScissorRect: (buffer: OptimizedBufferHandle) => void;
432
+ bufferClearScissorRects: (buffer: OptimizedBufferHandle) => void;
433
+ bufferPushOpacity: (buffer: OptimizedBufferHandle, opacity: number) => void;
434
+ bufferPopOpacity: (buffer: OptimizedBufferHandle) => void;
435
+ bufferGetCurrentOpacity: (buffer: OptimizedBufferHandle) => number;
436
+ bufferClearOpacity: (buffer: OptimizedBufferHandle) => void;
437
+ textBufferAddHighlightByCharRange: (buffer: TextBufferHandle, highlight: Highlight) => void;
438
+ textBufferAddHighlight: (buffer: TextBufferHandle, lineIdx: number, highlight: Highlight) => void;
439
+ textBufferRemoveHighlightsByRef: (buffer: TextBufferHandle, hlRef: number) => void;
440
+ textBufferClearLineHighlights: (buffer: TextBufferHandle, lineIdx: number) => void;
441
+ textBufferClearAllHighlights: (buffer: TextBufferHandle) => void;
442
+ textBufferSetSyntaxStyle: (buffer: TextBufferHandle, style: SyntaxStyleHandle | null) => boolean;
443
+ textBufferGetLineHighlights: (buffer: TextBufferHandle, lineIdx: number) => Array<Highlight>;
444
+ textBufferGetHighlightCount: (buffer: TextBufferHandle) => number;
445
+ getArenaAllocatedBytes: () => number;
446
+ getBuildOptions: () => BuildOptions;
447
+ getAllocatorStats: () => AllocatorStats;
448
+ createSyntaxStyle: () => SyntaxStyleHandle;
449
+ destroySyntaxStyle: (style: SyntaxStyleHandle) => void;
450
+ syntaxStyleRegister: (style: SyntaxStyleHandle, name: string, fg: RGBA | null, bg: RGBA | null, attributes: number) => number;
451
+ syntaxStyleResolveByName: (style: SyntaxStyleHandle, name: string) => number | null;
452
+ syntaxStyleGetStyleCount: (style: SyntaxStyleHandle) => number;
453
+ getTerminalCapabilities: (renderer: RendererHandle) => TerminalCapabilities;
454
+ processCapabilityResponse: (renderer: RendererHandle, response: string) => void;
455
+ encodeUnicode: (text: string, widthMethod: WidthMethod) => {
456
+ ptr: Pointer;
457
+ data: Array<{
458
+ width: number;
459
+ char: number;
460
+ }>;
461
+ } | null;
462
+ freeUnicode: (encoded: {
463
+ ptr: Pointer;
464
+ data: Array<{
465
+ width: number;
466
+ char: number;
467
+ }>;
468
+ }) => void;
469
+ bufferDrawChar: (buffer: OptimizedBufferHandle, char: number, x: number, y: number, fg: RGBA, bg: RGBA, attributes?: number) => void;
470
+ registerNativeSpanFeedStream: (stream: Pointer, handler: NativeSpanFeedEventHandler) => void;
471
+ unregisterNativeSpanFeedStream: (stream: Pointer) => void;
472
+ createNativeSpanFeed: (options?: NativeSpanFeedOptions | null) => Pointer;
473
+ attachNativeSpanFeed: (stream: Pointer) => number;
474
+ destroyNativeSpanFeed: (stream: Pointer) => void;
475
+ streamWrite: (stream: Pointer, data: Uint8Array | string) => number;
476
+ streamCommit: (stream: Pointer) => number;
477
+ streamDrainSpans: (stream: Pointer, outBuffer: Uint8Array, maxSpans: number) => number;
478
+ streamClose: (stream: Pointer) => number;
479
+ streamSetOptions: (stream: Pointer, options: NativeSpanFeedOptions) => number;
480
+ streamGetStats: (stream: Pointer) => NativeSpanFeedStats | null;
481
+ streamReserve: (stream: Pointer, minLen: number) => {
482
+ status: number;
483
+ info: ReserveInfo | null;
484
+ };
485
+ streamCommitReserved: (stream: Pointer, length: number) => number;
486
+ createNativeRenderable: () => NativeRenderableHandle;
487
+ destroyNativeRenderable: (handle: NativeRenderableHandle) => void;
488
+ nativeRenderableAttachYogaNode: (handle: NativeRenderableHandle, node: Pointer) => boolean;
489
+ nativeRenderableSetMeasureTarget: (handle: NativeRenderableHandle, kind: NativeMeasureTargetKind, target: NativeMeasureTargetHandle | 0) => boolean;
490
+ onNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
491
+ onceNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
492
+ offNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
493
+ onAnyNativeEvent: (handler: (name: string, data: ArrayBuffer) => void) => void;
494
+ }
495
+ export declare function setRenderLibPath(libPath: string): void;
496
+ export declare function resolveRenderLib(): RenderLib;
@@ -1,148 +0,0 @@
1
- #!/usr/bin/env bun
2
- import { BoxRenderable, type CliRenderer, createCliRenderer, CodeRenderable, addDefaultParsers } from "../src/index.js"
3
- import { ScrollBoxRenderable } from "../src/renderables/ScrollBox.js"
4
- import { SyntaxStyle } from "../src/syntax-style.js"
5
- import { parseColor } from "../src/lib/RGBA.js"
6
-
7
- const parsers = [
8
- {
9
- filetype: "json",
10
- wasm: "https://github.com/tree-sitter/tree-sitter-json/releases/download/v0.24.8/tree-sitter-json.wasm",
11
- queries: {
12
- highlights: [
13
- "https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/refs/heads/master/queries/json/highlights.scm",
14
- ],
15
- },
16
- },
17
- ]
18
- addDefaultParsers(parsers)
19
- let scrollBox: ScrollBoxRenderable | null = null
20
- let renderer: CliRenderer | null = null
21
- let syntaxStyle: SyntaxStyle | null = null
22
- let eventCount = 0
23
-
24
- function addEvent(eventType: string, event: object) {
25
- if (!renderer || !scrollBox || !syntaxStyle) return
26
-
27
- eventCount++
28
-
29
- const eventData = {
30
- type: eventType,
31
- timestamp: new Date().toISOString(),
32
- ...event,
33
- }
34
-
35
- const eventBox = new BoxRenderable(renderer, {
36
- id: `event-${eventCount}`,
37
- width: "auto",
38
- marginBottom: 1,
39
- padding: 1,
40
- backgroundColor: "#1f2937",
41
- })
42
-
43
- const codeDisplay = new CodeRenderable(renderer, {
44
- id: `event-code-${eventCount}`,
45
- content: JSON.stringify(eventData, null, 2),
46
- filetype: "json",
47
- conceal: false,
48
- syntaxStyle,
49
- bg: "#1f2937",
50
- })
51
-
52
- eventBox.add(codeDisplay)
53
- scrollBox.add(eventBox)
54
-
55
- const children = scrollBox.getChildren()
56
- if (children.length > 50) {
57
- const oldest = children[0]
58
- if (oldest) {
59
- scrollBox.remove(oldest)
60
- oldest.destroyRecursively()
61
- }
62
- }
63
- }
64
-
65
- async function main() {
66
- const usePrepend = process.argv.includes("--prepend")
67
- const prependInputHandlers = usePrepend
68
- ? [
69
- (sequence: string) => {
70
- addEvent("raw-input-before", { sequence })
71
- return false
72
- },
73
- ]
74
- : []
75
- renderer = await createCliRenderer({
76
- exitOnCtrlC: true,
77
- targetFps: 60,
78
- useKittyKeyboard: { events: true },
79
- prependInputHandlers,
80
- })
81
-
82
- renderer.setBackgroundColor("#0D1117")
83
-
84
- const mainContainer = new BoxRenderable(renderer, {
85
- id: "main-container",
86
- flexGrow: 1,
87
- flexDirection: "column",
88
- })
89
-
90
- renderer.root.add(mainContainer)
91
-
92
- scrollBox = new ScrollBoxRenderable(renderer, {
93
- id: "event-scroll-box",
94
- stickyScroll: true,
95
- stickyStart: "bottom",
96
- border: true,
97
- borderColor: "#6BCF7F",
98
- title: `Keypress Debug${usePrepend ? " (prepend mode)" : ""} (Ctrl+C to exit)`,
99
- titleAlignment: "center",
100
- contentOptions: {
101
- paddingLeft: 1,
102
- paddingRight: 1,
103
- paddingTop: 1,
104
- },
105
- })
106
-
107
- mainContainer.add(scrollBox)
108
-
109
- syntaxStyle = SyntaxStyle.fromStyles({
110
- string: { fg: parseColor("#A5D6FF") },
111
- number: { fg: parseColor("#79C0FF") },
112
- boolean: { fg: parseColor("#79C0FF") },
113
- keyword: { fg: parseColor("#FF7B72") },
114
- default: { fg: parseColor("#E6EDF3") },
115
- })
116
-
117
- addEvent("capabilities", renderer.capabilities)
118
-
119
- renderer.addInputHandler((sequence) => {
120
- addEvent("raw-input-after", { sequence })
121
- return true
122
- })
123
-
124
- renderer.keyInput.on("keypress", (event) => {
125
- addEvent("keypress", event)
126
-
127
- if (event.name === "c" && event.shift) {
128
- if (renderer) {
129
- addEvent("capabilities", renderer.capabilities)
130
- }
131
- }
132
- })
133
-
134
- renderer.keyInput.on("keyrelease", (event) => {
135
- addEvent("keyrelease", event)
136
- })
137
-
138
- renderer.keyInput.on("paste", (event) => {
139
- addEvent("paste", event)
140
- })
141
-
142
- renderer.requestRender()
143
- }
144
-
145
- main().catch((err) => {
146
- console.error("Error:", err)
147
- process.exit(1)
148
- })