@fairyhunter13/opentui-core 0.1.90 → 0.1.92

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 (571) hide show
  1. package/3d/SpriteResourceManager.d.ts +74 -0
  2. package/3d/SpriteUtils.d.ts +13 -0
  3. package/3d/TextureUtils.d.ts +24 -0
  4. package/3d/ThreeRenderable.d.ts +40 -0
  5. package/3d/WGPURenderer.d.ts +61 -0
  6. package/3d/animation/ExplodingSpriteEffect.d.ts +71 -0
  7. package/3d/animation/PhysicsExplodingSpriteEffect.d.ts +76 -0
  8. package/3d/animation/SpriteAnimator.d.ts +124 -0
  9. package/3d/animation/SpriteParticleGenerator.d.ts +62 -0
  10. package/3d/canvas.d.ts +44 -0
  11. package/3d/index.d.ts +12 -0
  12. package/3d/physics/PlanckPhysicsAdapter.d.ts +19 -0
  13. package/3d/physics/RapierPhysicsAdapter.d.ts +19 -0
  14. package/3d/physics/physics-interface.d.ts +27 -0
  15. package/3d.d.ts +2 -0
  16. package/3d.js +34042 -0
  17. package/3d.js.map +155 -0
  18. package/LICENSE +21 -0
  19. package/NativeSpanFeed.d.ts +41 -0
  20. package/README.md +2 -2
  21. package/Renderable.d.ts +334 -0
  22. package/animation/Timeline.d.ts +126 -0
  23. package/ansi.d.ts +13 -0
  24. package/buffer.d.ts +107 -0
  25. package/console.d.ts +143 -0
  26. package/edit-buffer.d.ts +98 -0
  27. package/editor-view.d.ts +73 -0
  28. package/index-e6ec7apq.js +18415 -0
  29. package/index-e6ec7apq.js.map +64 -0
  30. package/index-h066zmrb.js +12619 -0
  31. package/index-h066zmrb.js.map +43 -0
  32. package/index-ynzawt3n.js +113 -0
  33. package/index-ynzawt3n.js.map +10 -0
  34. package/index.d.ts +21 -0
  35. package/index.js +430 -0
  36. package/index.js.map +9 -0
  37. package/lib/KeyHandler.d.ts +61 -0
  38. package/lib/RGBA.d.ts +25 -0
  39. package/lib/ascii.font.d.ts +508 -0
  40. package/lib/border.d.ts +49 -0
  41. package/lib/bunfs.d.ts +7 -0
  42. package/lib/clipboard.d.ts +17 -0
  43. package/lib/clock.d.ts +15 -0
  44. package/lib/data-paths.d.ts +26 -0
  45. package/lib/debounce.d.ts +42 -0
  46. package/lib/detect-links.d.ts +6 -0
  47. package/lib/env.d.ts +42 -0
  48. package/lib/extmarks-history.d.ts +17 -0
  49. package/lib/extmarks.d.ts +89 -0
  50. package/lib/hast-styled-text.d.ts +17 -0
  51. package/lib/index.d.ts +21 -0
  52. package/lib/keymapping.d.ts +25 -0
  53. package/lib/objects-in-viewport.d.ts +24 -0
  54. package/lib/output.capture.d.ts +24 -0
  55. package/lib/parse.keypress-kitty.d.ts +2 -0
  56. package/lib/parse.keypress.d.ts +26 -0
  57. package/lib/parse.mouse.d.ts +30 -0
  58. package/lib/paste.d.ts +7 -0
  59. package/lib/queue.d.ts +15 -0
  60. package/lib/renderable.validations.d.ts +12 -0
  61. package/lib/scroll-acceleration.d.ts +43 -0
  62. package/lib/selection.d.ts +63 -0
  63. package/lib/singleton.d.ts +7 -0
  64. package/lib/stdin-parser.d.ts +76 -0
  65. package/lib/styled-text.d.ts +63 -0
  66. package/lib/terminal-capability-detection.d.ts +30 -0
  67. package/lib/terminal-palette.d.ts +50 -0
  68. package/lib/tree-sitter/assets/update.d.ts +11 -0
  69. package/lib/tree-sitter/client.d.ts +47 -0
  70. package/lib/tree-sitter/default-parsers.d.ts +2 -0
  71. package/lib/tree-sitter/download-utils.d.ts +21 -0
  72. package/lib/tree-sitter/index.d.ts +8 -0
  73. package/lib/tree-sitter/parser.worker.d.ts +1 -0
  74. package/lib/tree-sitter/parsers-config.d.ts +38 -0
  75. package/lib/tree-sitter/resolve-ft.d.ts +2 -0
  76. package/lib/tree-sitter/types.d.ts +81 -0
  77. package/lib/tree-sitter-styled-text.d.ts +14 -0
  78. package/lib/validate-dir-name.d.ts +1 -0
  79. package/lib/yoga.options.d.ts +32 -0
  80. package/package.json +51 -63
  81. package/parser.worker.js +869 -0
  82. package/parser.worker.js.map +12 -0
  83. package/plugins/core-slot.d.ts +72 -0
  84. package/plugins/registry.d.ts +38 -0
  85. package/plugins/types.d.ts +34 -0
  86. package/post/filters.d.ts +105 -0
  87. package/renderables/ASCIIFont.d.ts +52 -0
  88. package/renderables/Box.d.ts +72 -0
  89. package/renderables/Code.d.ts +78 -0
  90. package/renderables/Diff.d.ts +142 -0
  91. package/renderables/EditBufferRenderable.d.ts +162 -0
  92. package/renderables/FrameBuffer.d.ts +16 -0
  93. package/renderables/Input.d.ts +67 -0
  94. package/renderables/LineNumberRenderable.d.ts +74 -0
  95. package/renderables/Markdown.d.ts +173 -0
  96. package/renderables/ScrollBar.d.ts +77 -0
  97. package/renderables/ScrollBox.d.ts +124 -0
  98. package/renderables/Select.d.ts +115 -0
  99. package/renderables/Slider.d.ts +44 -0
  100. package/renderables/TabSelect.d.ts +96 -0
  101. package/renderables/Text.d.ts +36 -0
  102. package/renderables/TextBufferRenderable.d.ts +105 -0
  103. package/renderables/TextNode.d.ts +91 -0
  104. package/renderables/TextTable.d.ts +140 -0
  105. package/renderables/Textarea.d.ts +114 -0
  106. package/renderables/TimeToFirstDraw.d.ts +24 -0
  107. package/renderables/__tests__/renderable-test-utils.d.ts +12 -0
  108. package/renderables/composition/VRenderable.d.ts +16 -0
  109. package/renderables/composition/constructs.d.ts +35 -0
  110. package/renderables/composition/vnode.d.ts +46 -0
  111. package/renderables/index.d.ts +22 -0
  112. package/renderables/markdown-parser.d.ts +10 -0
  113. package/renderer.d.ts +388 -0
  114. package/runtime-plugin-support.d.ts +3 -0
  115. package/runtime-plugin-support.js +29 -0
  116. package/runtime-plugin-support.js.map +10 -0
  117. package/runtime-plugin.d.ts +11 -0
  118. package/runtime-plugin.js +16 -0
  119. package/runtime-plugin.js.map +9 -0
  120. package/syntax-style.d.ts +54 -0
  121. package/testing/manual-clock.d.ts +16 -0
  122. package/testing/mock-keys.d.ts +81 -0
  123. package/testing/mock-mouse.d.ts +38 -0
  124. package/testing/mock-tree-sitter-client.d.ts +23 -0
  125. package/testing/spy.d.ts +7 -0
  126. package/testing/test-recorder.d.ts +61 -0
  127. package/testing/test-renderer.d.ts +23 -0
  128. package/testing.d.ts +6 -0
  129. package/testing.js +675 -0
  130. package/testing.js.map +15 -0
  131. package/text-buffer-view.d.ts +42 -0
  132. package/text-buffer.d.ts +67 -0
  133. package/types.d.ts +131 -0
  134. package/utils.d.ts +14 -0
  135. package/zig-structs.d.ts +155 -0
  136. package/zig.d.ts +351 -0
  137. package/dev/keypress-debug-renderer.ts +0 -148
  138. package/dev/keypress-debug.ts +0 -43
  139. package/dev/print-env-vars.ts +0 -32
  140. package/dev/test-tmux-graphics-334.sh +0 -68
  141. package/dev/thai-debug-test.ts +0 -68
  142. package/docs/development.md +0 -141
  143. package/docs/env-vars.md +0 -140
  144. package/docs/getting-started.md +0 -353
  145. package/docs/renderables-vs-constructs.md +0 -159
  146. package/docs/tree-sitter.md +0 -311
  147. package/scripts/build.ts +0 -400
  148. package/scripts/publish.ts +0 -60
  149. package/src/3d/SpriteResourceManager.ts +0 -286
  150. package/src/3d/SpriteUtils.ts +0 -71
  151. package/src/3d/TextureUtils.ts +0 -196
  152. package/src/3d/ThreeRenderable.ts +0 -197
  153. package/src/3d/WGPURenderer.ts +0 -294
  154. package/src/3d/animation/ExplodingSpriteEffect.ts +0 -513
  155. package/src/3d/animation/PhysicsExplodingSpriteEffect.ts +0 -429
  156. package/src/3d/animation/SpriteAnimator.ts +0 -633
  157. package/src/3d/animation/SpriteParticleGenerator.ts +0 -435
  158. package/src/3d/canvas.ts +0 -464
  159. package/src/3d/index.ts +0 -12
  160. package/src/3d/physics/PlanckPhysicsAdapter.ts +0 -72
  161. package/src/3d/physics/RapierPhysicsAdapter.ts +0 -66
  162. package/src/3d/physics/physics-interface.ts +0 -31
  163. package/src/3d/shaders/supersampling.wgsl +0 -201
  164. package/src/3d.ts +0 -3
  165. package/src/NativeSpanFeed.ts +0 -300
  166. package/src/Renderable.ts +0 -1698
  167. package/src/__snapshots__/buffer.test.ts.snap +0 -28
  168. package/src/animation/Timeline.test.ts +0 -2709
  169. package/src/animation/Timeline.ts +0 -598
  170. package/src/ansi.ts +0 -18
  171. package/src/benchmark/latest-all-bench-run.json +0 -707
  172. package/src/benchmark/latest-async-bench-run.json +0 -336
  173. package/src/benchmark/latest-default-bench-run.json +0 -657
  174. package/src/benchmark/latest-large-bench-run.json +0 -707
  175. package/src/benchmark/latest-quick-bench-run.json +0 -207
  176. package/src/benchmark/markdown-benchmark.ts +0 -1804
  177. package/src/benchmark/native-span-feed-async-benchmark.ts +0 -355
  178. package/src/benchmark/native-span-feed-benchmark.md +0 -56
  179. package/src/benchmark/native-span-feed-benchmark.ts +0 -596
  180. package/src/benchmark/native-span-feed-compare.ts +0 -280
  181. package/src/benchmark/renderer-benchmark.ts +0 -754
  182. package/src/benchmark/text-table-benchmark.ts +0 -947
  183. package/src/buffer.test.ts +0 -291
  184. package/src/buffer.ts +0 -519
  185. package/src/console.test.ts +0 -612
  186. package/src/console.ts +0 -1255
  187. package/src/edit-buffer.test.ts +0 -1769
  188. package/src/edit-buffer.ts +0 -411
  189. package/src/editor-view.test.ts +0 -1032
  190. package/src/editor-view.ts +0 -284
  191. package/src/examples/ascii-font-selection-demo.ts +0 -245
  192. package/src/examples/assets/Water_2_M_Normal.jpg +0 -0
  193. package/src/examples/assets/concrete.png +0 -0
  194. package/src/examples/assets/crate.png +0 -0
  195. package/src/examples/assets/crate_emissive.png +0 -0
  196. package/src/examples/assets/forrest_background.png +0 -0
  197. package/src/examples/assets/hast-example.json +0 -1018
  198. package/src/examples/assets/heart.png +0 -0
  199. package/src/examples/assets/main_char_heavy_attack.png +0 -0
  200. package/src/examples/assets/main_char_idle.png +0 -0
  201. package/src/examples/assets/main_char_jump_end.png +0 -0
  202. package/src/examples/assets/main_char_jump_landing.png +0 -0
  203. package/src/examples/assets/main_char_jump_start.png +0 -0
  204. package/src/examples/assets/main_char_run_loop.png +0 -0
  205. package/src/examples/assets/roughness_map.jpg +0 -0
  206. package/src/examples/build.ts +0 -115
  207. package/src/examples/code-demo.ts +0 -584
  208. package/src/examples/console-demo.ts +0 -358
  209. package/src/examples/core-plugin-slots-demo.ts +0 -759
  210. package/src/examples/diff-demo.ts +0 -699
  211. package/src/examples/draggable-three-demo.ts +0 -259
  212. package/src/examples/editor-demo.ts +0 -322
  213. package/src/examples/extmarks-demo.ts +0 -204
  214. package/src/examples/focus-restore-demo.ts +0 -310
  215. package/src/examples/fonts.ts +0 -245
  216. package/src/examples/fractal-shader-demo.ts +0 -268
  217. package/src/examples/framebuffer-demo.ts +0 -674
  218. package/src/examples/full-unicode-demo.ts +0 -181
  219. package/src/examples/golden-star-demo.ts +0 -933
  220. package/src/examples/grayscale-buffer-demo.ts +0 -249
  221. package/src/examples/hast-syntax-highlighting-demo.ts +0 -129
  222. package/src/examples/index.ts +0 -925
  223. package/src/examples/input-demo.ts +0 -377
  224. package/src/examples/input-select-layout-demo.ts +0 -425
  225. package/src/examples/install.sh +0 -143
  226. package/src/examples/keypress-debug-demo.ts +0 -452
  227. package/src/examples/lib/HexList.ts +0 -122
  228. package/src/examples/lib/PaletteGrid.ts +0 -125
  229. package/src/examples/lib/standalone-keys.ts +0 -25
  230. package/src/examples/lib/tab-controller.ts +0 -243
  231. package/src/examples/lights-phong-demo.ts +0 -290
  232. package/src/examples/link-demo.ts +0 -220
  233. package/src/examples/live-state-demo.ts +0 -480
  234. package/src/examples/markdown-demo.ts +0 -620
  235. package/src/examples/mouse-interaction-demo.ts +0 -428
  236. package/src/examples/nested-zindex-demo.ts +0 -357
  237. package/src/examples/opacity-example.ts +0 -235
  238. package/src/examples/opentui-demo.ts +0 -1057
  239. package/src/examples/physx-planck-2d-demo.ts +0 -507
  240. package/src/examples/physx-rapier-2d-demo.ts +0 -526
  241. package/src/examples/relative-positioning-demo.ts +0 -323
  242. package/src/examples/scroll-example.ts +0 -214
  243. package/src/examples/scrollbox-mouse-test.ts +0 -112
  244. package/src/examples/scrollbox-overlay-hit-test.ts +0 -206
  245. package/src/examples/select-demo.ts +0 -237
  246. package/src/examples/shader-cube-demo.ts +0 -772
  247. package/src/examples/simple-layout-example.ts +0 -591
  248. package/src/examples/slider-demo.ts +0 -617
  249. package/src/examples/split-mode-demo.ts +0 -445
  250. package/src/examples/sprite-animation-demo.ts +0 -443
  251. package/src/examples/sprite-particle-generator-demo.ts +0 -486
  252. package/src/examples/static-sprite-demo.ts +0 -193
  253. package/src/examples/sticky-scroll-example.ts +0 -308
  254. package/src/examples/styled-text-demo.ts +0 -282
  255. package/src/examples/tab-select-demo.ts +0 -219
  256. package/src/examples/terminal-title.ts +0 -29
  257. package/src/examples/terminal.ts +0 -305
  258. package/src/examples/text-node-demo.ts +0 -416
  259. package/src/examples/text-selection-demo.ts +0 -377
  260. package/src/examples/text-table-demo.ts +0 -503
  261. package/src/examples/text-truncation-demo.ts +0 -481
  262. package/src/examples/text-wrap.ts +0 -757
  263. package/src/examples/texture-loading-demo.ts +0 -259
  264. package/src/examples/timeline-example.ts +0 -670
  265. package/src/examples/transparency-demo.ts +0 -241
  266. package/src/examples/vnode-composition-demo.ts +0 -404
  267. package/src/index.ts +0 -22
  268. package/src/lib/KeyHandler.integration.test.ts +0 -292
  269. package/src/lib/KeyHandler.stopPropagation.test.ts +0 -289
  270. package/src/lib/KeyHandler.test.ts +0 -662
  271. package/src/lib/KeyHandler.ts +0 -222
  272. package/src/lib/RGBA.test.ts +0 -984
  273. package/src/lib/RGBA.ts +0 -204
  274. package/src/lib/ascii.font.ts +0 -330
  275. package/src/lib/border.test.ts +0 -83
  276. package/src/lib/border.ts +0 -168
  277. package/src/lib/bunfs.test.ts +0 -27
  278. package/src/lib/bunfs.ts +0 -18
  279. package/src/lib/clipboard.test.ts +0 -41
  280. package/src/lib/clipboard.ts +0 -47
  281. package/src/lib/clock.ts +0 -31
  282. package/src/lib/data-paths.test.ts +0 -133
  283. package/src/lib/data-paths.ts +0 -109
  284. package/src/lib/debounce.ts +0 -106
  285. package/src/lib/detect-links.test.ts +0 -98
  286. package/src/lib/detect-links.ts +0 -56
  287. package/src/lib/env.test.ts +0 -228
  288. package/src/lib/env.ts +0 -209
  289. package/src/lib/extmarks-history.ts +0 -51
  290. package/src/lib/extmarks-multiwidth.test.ts +0 -322
  291. package/src/lib/extmarks.test.ts +0 -3457
  292. package/src/lib/extmarks.ts +0 -843
  293. package/src/lib/fonts/block.json +0 -405
  294. package/src/lib/fonts/grid.json +0 -265
  295. package/src/lib/fonts/huge.json +0 -741
  296. package/src/lib/fonts/pallet.json +0 -314
  297. package/src/lib/fonts/shade.json +0 -591
  298. package/src/lib/fonts/slick.json +0 -321
  299. package/src/lib/fonts/tiny.json +0 -69
  300. package/src/lib/hast-styled-text.ts +0 -59
  301. package/src/lib/index.ts +0 -21
  302. package/src/lib/keymapping.test.ts +0 -280
  303. package/src/lib/keymapping.ts +0 -87
  304. package/src/lib/objects-in-viewport.test.ts +0 -787
  305. package/src/lib/objects-in-viewport.ts +0 -153
  306. package/src/lib/output.capture.ts +0 -58
  307. package/src/lib/parse.keypress-kitty.protocol.test.ts +0 -340
  308. package/src/lib/parse.keypress-kitty.test.ts +0 -663
  309. package/src/lib/parse.keypress-kitty.ts +0 -439
  310. package/src/lib/parse.keypress.test.ts +0 -1849
  311. package/src/lib/parse.keypress.ts +0 -397
  312. package/src/lib/parse.mouse.test.ts +0 -552
  313. package/src/lib/parse.mouse.ts +0 -232
  314. package/src/lib/paste.ts +0 -16
  315. package/src/lib/queue.ts +0 -65
  316. package/src/lib/renderable.validations.test.ts +0 -87
  317. package/src/lib/renderable.validations.ts +0 -83
  318. package/src/lib/scroll-acceleration.ts +0 -98
  319. package/src/lib/selection.ts +0 -240
  320. package/src/lib/singleton.ts +0 -28
  321. package/src/lib/stdin-parser.test.ts +0 -1676
  322. package/src/lib/stdin-parser.ts +0 -1248
  323. package/src/lib/styled-text.ts +0 -178
  324. package/src/lib/terminal-capability-detection.test.ts +0 -202
  325. package/src/lib/terminal-capability-detection.ts +0 -79
  326. package/src/lib/terminal-palette.test.ts +0 -878
  327. package/src/lib/terminal-palette.ts +0 -383
  328. package/src/lib/tree-sitter/assets/README.md +0 -118
  329. package/src/lib/tree-sitter/assets/update.ts +0 -331
  330. package/src/lib/tree-sitter/assets.d.ts +0 -9
  331. package/src/lib/tree-sitter/cache.test.ts +0 -270
  332. package/src/lib/tree-sitter/client.test.ts +0 -1061
  333. package/src/lib/tree-sitter/client.ts +0 -615
  334. package/src/lib/tree-sitter/default-parsers.ts +0 -80
  335. package/src/lib/tree-sitter/download-utils.ts +0 -148
  336. package/src/lib/tree-sitter/index.ts +0 -28
  337. package/src/lib/tree-sitter/parser.worker.ts +0 -1001
  338. package/src/lib/tree-sitter/parsers-config.ts +0 -75
  339. package/src/lib/tree-sitter/resolve-ft.ts +0 -62
  340. package/src/lib/tree-sitter/types.ts +0 -81
  341. package/src/lib/tree-sitter-styled-text.test.ts +0 -1253
  342. package/src/lib/tree-sitter-styled-text.ts +0 -306
  343. package/src/lib/validate-dir-name.ts +0 -55
  344. package/src/lib/yoga.options.test.ts +0 -628
  345. package/src/lib/yoga.options.ts +0 -346
  346. package/src/plugins/core-slot.ts +0 -579
  347. package/src/plugins/registry.ts +0 -377
  348. package/src/plugins/types.ts +0 -46
  349. package/src/post/filters.ts +0 -888
  350. package/src/renderables/ASCIIFont.ts +0 -219
  351. package/src/renderables/Box.test.ts +0 -160
  352. package/src/renderables/Box.ts +0 -295
  353. package/src/renderables/Code.test.ts +0 -2062
  354. package/src/renderables/Code.ts +0 -357
  355. package/src/renderables/Diff.regression.test.ts +0 -226
  356. package/src/renderables/Diff.test.ts +0 -3027
  357. package/src/renderables/Diff.ts +0 -1209
  358. package/src/renderables/EditBufferRenderable.ts +0 -764
  359. package/src/renderables/FrameBuffer.ts +0 -47
  360. package/src/renderables/Input.test.ts +0 -1228
  361. package/src/renderables/Input.ts +0 -245
  362. package/src/renderables/LineNumberRenderable.ts +0 -675
  363. package/src/renderables/Markdown.ts +0 -1106
  364. package/src/renderables/ScrollBar.ts +0 -422
  365. package/src/renderables/ScrollBox.ts +0 -883
  366. package/src/renderables/Select.test.ts +0 -1010
  367. package/src/renderables/Select.ts +0 -523
  368. package/src/renderables/Slider.test.ts +0 -456
  369. package/src/renderables/Slider.ts +0 -347
  370. package/src/renderables/TabSelect.test.ts +0 -197
  371. package/src/renderables/TabSelect.ts +0 -455
  372. package/src/renderables/Text.selection-buffer.test.ts +0 -123
  373. package/src/renderables/Text.test.ts +0 -2660
  374. package/src/renderables/Text.ts +0 -147
  375. package/src/renderables/TextBufferRenderable.ts +0 -518
  376. package/src/renderables/TextNode.test.ts +0 -1058
  377. package/src/renderables/TextNode.ts +0 -325
  378. package/src/renderables/TextTable.test.ts +0 -1421
  379. package/src/renderables/TextTable.ts +0 -1344
  380. package/src/renderables/Textarea.ts +0 -732
  381. package/src/renderables/TimeToFirstDraw.ts +0 -89
  382. package/src/renderables/__snapshots__/Code.test.ts.snap +0 -13
  383. package/src/renderables/__snapshots__/Diff.test.ts.snap +0 -785
  384. package/src/renderables/__snapshots__/Text.test.ts.snap +0 -421
  385. package/src/renderables/__snapshots__/TextTable.test.ts.snap +0 -215
  386. package/src/renderables/__tests__/LineNumberRenderable.scrollbox-simple.test.ts +0 -144
  387. package/src/renderables/__tests__/LineNumberRenderable.scrollbox.test.ts +0 -816
  388. package/src/renderables/__tests__/LineNumberRenderable.test.ts +0 -1787
  389. package/src/renderables/__tests__/LineNumberRenderable.wrapping.test.ts +0 -85
  390. package/src/renderables/__tests__/Markdown.test.ts +0 -2287
  391. package/src/renderables/__tests__/MultiRenderable.selection.test.ts +0 -87
  392. package/src/renderables/__tests__/Textarea.buffer.test.ts +0 -682
  393. package/src/renderables/__tests__/Textarea.destroyed-events.test.ts +0 -675
  394. package/src/renderables/__tests__/Textarea.editing.test.ts +0 -2041
  395. package/src/renderables/__tests__/Textarea.error-handling.test.ts +0 -35
  396. package/src/renderables/__tests__/Textarea.events.test.ts +0 -738
  397. package/src/renderables/__tests__/Textarea.highlights.test.ts +0 -590
  398. package/src/renderables/__tests__/Textarea.keybinding.test.ts +0 -3149
  399. package/src/renderables/__tests__/Textarea.paste.test.ts +0 -357
  400. package/src/renderables/__tests__/Textarea.rendering.test.ts +0 -1864
  401. package/src/renderables/__tests__/Textarea.scroll.test.ts +0 -733
  402. package/src/renderables/__tests__/Textarea.selection.test.ts +0 -1590
  403. package/src/renderables/__tests__/Textarea.stress.test.ts +0 -670
  404. package/src/renderables/__tests__/Textarea.undo-redo.test.ts +0 -383
  405. package/src/renderables/__tests__/Textarea.visual-lines.test.ts +0 -310
  406. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.code.test.ts.snap +0 -221
  407. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox-simple.test.ts.snap +0 -89
  408. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox.test.ts.snap +0 -457
  409. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.test.ts.snap +0 -158
  410. package/src/renderables/__tests__/__snapshots__/Textarea.rendering.test.ts.snap +0 -387
  411. package/src/renderables/__tests__/markdown-parser.test.ts +0 -217
  412. package/src/renderables/__tests__/renderable-test-utils.ts +0 -60
  413. package/src/renderables/composition/README.md +0 -8
  414. package/src/renderables/composition/VRenderable.ts +0 -32
  415. package/src/renderables/composition/constructs.ts +0 -127
  416. package/src/renderables/composition/vnode.ts +0 -289
  417. package/src/renderables/index.ts +0 -22
  418. package/src/renderables/markdown-parser.ts +0 -66
  419. package/src/renderer.ts +0 -2363
  420. package/src/runtime-plugin-support.ts +0 -39
  421. package/src/runtime-plugin.ts +0 -144
  422. package/src/syntax-style.test.ts +0 -841
  423. package/src/syntax-style.ts +0 -264
  424. package/src/testing/README.md +0 -210
  425. package/src/testing/capture-spans.test.ts +0 -194
  426. package/src/testing/integration.test.ts +0 -276
  427. package/src/testing/manual-clock.ts +0 -106
  428. package/src/testing/mock-keys.test.ts +0 -1356
  429. package/src/testing/mock-keys.ts +0 -449
  430. package/src/testing/mock-mouse.test.ts +0 -218
  431. package/src/testing/mock-mouse.ts +0 -247
  432. package/src/testing/mock-tree-sitter-client.ts +0 -73
  433. package/src/testing/spy.ts +0 -13
  434. package/src/testing/test-recorder.test.ts +0 -415
  435. package/src/testing/test-recorder.ts +0 -145
  436. package/src/testing/test-renderer.ts +0 -116
  437. package/src/testing.ts +0 -7
  438. package/src/tests/__snapshots__/absolute-positioning.snapshot.test.ts.snap +0 -481
  439. package/src/tests/__snapshots__/renderable.snapshot.test.ts.snap +0 -19
  440. package/src/tests/__snapshots__/scrollbox.test.ts.snap +0 -29
  441. package/src/tests/absolute-positioning.snapshot.test.ts +0 -638
  442. package/src/tests/allocator-stats.test.ts +0 -38
  443. package/src/tests/destroy-during-render.test.ts +0 -200
  444. package/src/tests/hover-cursor.test.ts +0 -98
  445. package/src/tests/native-span-feed-async.test.ts +0 -173
  446. package/src/tests/native-span-feed-close.test.ts +0 -120
  447. package/src/tests/native-span-feed-coverage.test.ts +0 -227
  448. package/src/tests/native-span-feed-edge-cases.test.ts +0 -352
  449. package/src/tests/native-span-feed-use-after-free.test.ts +0 -45
  450. package/src/tests/opacity.test.ts +0 -123
  451. package/src/tests/renderable.snapshot.test.ts +0 -524
  452. package/src/tests/renderable.test.ts +0 -1281
  453. package/src/tests/renderer.console-startup.test.ts +0 -65
  454. package/src/tests/renderer.control.test.ts +0 -364
  455. package/src/tests/renderer.core-slot-binding.test.ts +0 -952
  456. package/src/tests/renderer.cursor.test.ts +0 -26
  457. package/src/tests/renderer.destroy-during-render.test.ts +0 -110
  458. package/src/tests/renderer.focus-restore.test.ts +0 -228
  459. package/src/tests/renderer.focus.test.ts +0 -251
  460. package/src/tests/renderer.idle.test.ts +0 -219
  461. package/src/tests/renderer.input.test.ts +0 -2145
  462. package/src/tests/renderer.kitty-flags.test.ts +0 -195
  463. package/src/tests/renderer.mouse.test.ts +0 -1269
  464. package/src/tests/renderer.palette.test.ts +0 -629
  465. package/src/tests/renderer.selection.test.ts +0 -49
  466. package/src/tests/renderer.slot-registry.test.ts +0 -649
  467. package/src/tests/renderer.useMouse.test.ts +0 -50
  468. package/src/tests/runtime-plugin-support.fixture.ts +0 -11
  469. package/src/tests/runtime-plugin-support.test.ts +0 -28
  470. package/src/tests/runtime-plugin.fixture.ts +0 -40
  471. package/src/tests/runtime-plugin.test.ts +0 -190
  472. package/src/tests/scrollbox-culling-bug.test.ts +0 -114
  473. package/src/tests/scrollbox-hitgrid-resize.test.ts +0 -136
  474. package/src/tests/scrollbox-hitgrid.test.ts +0 -909
  475. package/src/tests/scrollbox.test.ts +0 -1530
  476. package/src/tests/wrap-resize-perf.test.ts +0 -229
  477. package/src/tests/yoga-setters.test.ts +0 -921
  478. package/src/text-buffer-view.test.ts +0 -705
  479. package/src/text-buffer-view.ts +0 -189
  480. package/src/text-buffer.test.ts +0 -347
  481. package/src/text-buffer.ts +0 -250
  482. package/src/types.ts +0 -152
  483. package/src/utils.ts +0 -88
  484. package/src/zig/ansi.zig +0 -268
  485. package/src/zig/bench/README.md +0 -50
  486. package/src/zig/bench/buffer-draw-text-buffer_bench.zig +0 -887
  487. package/src/zig/bench/edit-buffer_bench.zig +0 -476
  488. package/src/zig/bench/native-span-feed_bench.zig +0 -100
  489. package/src/zig/bench/rope-markers_bench.zig +0 -713
  490. package/src/zig/bench/rope_bench.zig +0 -514
  491. package/src/zig/bench/styled-text_bench.zig +0 -470
  492. package/src/zig/bench/text-buffer-coords_bench.zig +0 -362
  493. package/src/zig/bench/text-buffer-view_bench.zig +0 -459
  494. package/src/zig/bench/text-chunk-graphemes_bench.zig +0 -273
  495. package/src/zig/bench/utf8_bench.zig +0 -799
  496. package/src/zig/bench-utils.zig +0 -431
  497. package/src/zig/bench.zig +0 -217
  498. package/src/zig/buffer.zig +0 -2223
  499. package/src/zig/build.zig +0 -289
  500. package/src/zig/build.zig.zon +0 -16
  501. package/src/zig/edit-buffer.zig +0 -825
  502. package/src/zig/editor-view.zig +0 -802
  503. package/src/zig/event-bus.zig +0 -13
  504. package/src/zig/event-emitter.zig +0 -65
  505. package/src/zig/file-logger.zig +0 -92
  506. package/src/zig/grapheme.zig +0 -599
  507. package/src/zig/lib.zig +0 -1834
  508. package/src/zig/link.zig +0 -333
  509. package/src/zig/logger.zig +0 -43
  510. package/src/zig/mem-registry.zig +0 -125
  511. package/src/zig/native-span-feed-bench-lib.zig +0 -7
  512. package/src/zig/native-span-feed.zig +0 -708
  513. package/src/zig/renderer.zig +0 -1386
  514. package/src/zig/rope.zig +0 -1220
  515. package/src/zig/syntax-style.zig +0 -161
  516. package/src/zig/terminal.zig +0 -975
  517. package/src/zig/test.zig +0 -70
  518. package/src/zig/tests/README.md +0 -18
  519. package/src/zig/tests/buffer_test.zig +0 -2526
  520. package/src/zig/tests/edit-buffer-history_test.zig +0 -271
  521. package/src/zig/tests/edit-buffer_test.zig +0 -1689
  522. package/src/zig/tests/editor-view_test.zig +0 -3299
  523. package/src/zig/tests/event-emitter_test.zig +0 -249
  524. package/src/zig/tests/grapheme_test.zig +0 -1304
  525. package/src/zig/tests/link_test.zig +0 -190
  526. package/src/zig/tests/mem-registry_test.zig +0 -473
  527. package/src/zig/tests/memory_leak_regression_test.zig +0 -159
  528. package/src/zig/tests/native-span-feed_test.zig +0 -1264
  529. package/src/zig/tests/renderer_test.zig +0 -1010
  530. package/src/zig/tests/rope-nested_test.zig +0 -712
  531. package/src/zig/tests/rope_fuzz_test.zig +0 -238
  532. package/src/zig/tests/rope_test.zig +0 -2362
  533. package/src/zig/tests/segment-merge.test.zig +0 -148
  534. package/src/zig/tests/syntax-style_test.zig +0 -557
  535. package/src/zig/tests/terminal_test.zig +0 -719
  536. package/src/zig/tests/text-buffer-drawing_test.zig +0 -3237
  537. package/src/zig/tests/text-buffer-highlights_test.zig +0 -666
  538. package/src/zig/tests/text-buffer-iterators_test.zig +0 -776
  539. package/src/zig/tests/text-buffer-segment_test.zig +0 -320
  540. package/src/zig/tests/text-buffer-selection_test.zig +0 -1035
  541. package/src/zig/tests/text-buffer-selection_viewport_test.zig +0 -358
  542. package/src/zig/tests/text-buffer-view_test.zig +0 -3649
  543. package/src/zig/tests/text-buffer_test.zig +0 -2191
  544. package/src/zig/tests/unicode-width-map.zon +0 -3909
  545. package/src/zig/tests/utf8_no_zwj_test.zig +0 -260
  546. package/src/zig/tests/utf8_test.zig +0 -4057
  547. package/src/zig/tests/utf8_wcwidth_cursor_test.zig +0 -267
  548. package/src/zig/tests/utf8_wcwidth_test.zig +0 -357
  549. package/src/zig/tests/word-wrap-editing_test.zig +0 -498
  550. package/src/zig/tests/wrap-cache-perf_test.zig +0 -113
  551. package/src/zig/text-buffer-iterators.zig +0 -499
  552. package/src/zig/text-buffer-segment.zig +0 -404
  553. package/src/zig/text-buffer-view.zig +0 -1371
  554. package/src/zig/text-buffer.zig +0 -1180
  555. package/src/zig/utf8.zig +0 -1948
  556. package/src/zig/utils.zig +0 -9
  557. package/src/zig-structs.ts +0 -261
  558. package/src/zig.ts +0 -3843
  559. package/tsconfig.build.json +0 -22
  560. package/tsconfig.json +0 -28
  561. /package/{src/lib/tree-sitter/assets → assets}/javascript/highlights.scm +0 -0
  562. /package/{src/lib/tree-sitter/assets → assets}/javascript/tree-sitter-javascript.wasm +0 -0
  563. /package/{src/lib/tree-sitter/assets → assets}/markdown/highlights.scm +0 -0
  564. /package/{src/lib/tree-sitter/assets → assets}/markdown/injections.scm +0 -0
  565. /package/{src/lib/tree-sitter/assets → assets}/markdown/tree-sitter-markdown.wasm +0 -0
  566. /package/{src/lib/tree-sitter/assets → assets}/markdown_inline/highlights.scm +0 -0
  567. /package/{src/lib/tree-sitter/assets → assets}/markdown_inline/tree-sitter-markdown_inline.wasm +0 -0
  568. /package/{src/lib/tree-sitter/assets → assets}/typescript/highlights.scm +0 -0
  569. /package/{src/lib/tree-sitter/assets → assets}/typescript/tree-sitter-typescript.wasm +0 -0
  570. /package/{src/lib/tree-sitter/assets → assets}/zig/highlights.scm +0 -0
  571. /package/{src/lib/tree-sitter/assets → assets}/zig/tree-sitter-zig.wasm +0 -0
package/zig.d.ts ADDED
@@ -0,0 +1,351 @@
1
+ import { type Pointer } from "bun:ffi";
2
+ import { type CursorStyle, type CursorStyleOptions, type DebugOverlayCorner, type WidthMethod, type Highlight, type LineInfo } from "./types.js";
3
+ export type { LineInfo, AllocatorStats, BuildOptions };
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, BuildOptions, AllocatorStats } from "./zig-structs.js";
8
+ export declare enum LogLevel {
9
+ Error = 0,
10
+ Warn = 1,
11
+ Info = 2,
12
+ Debug = 3
13
+ }
14
+ /**
15
+ * VisualCursor represents a cursor position with both visual and logical coordinates.
16
+ * Visual coordinates (visualRow, visualCol) are VIEWPORT-RELATIVE.
17
+ * This means visualRow=0 is the first visible line in the viewport, not the first line in the document.
18
+ * Logical coordinates (logicalRow, logicalCol) are document-absolute.
19
+ */
20
+ export interface VisualCursor {
21
+ visualRow: number;
22
+ visualCol: number;
23
+ logicalRow: number;
24
+ logicalCol: number;
25
+ offset: number;
26
+ }
27
+ export interface LogicalCursor {
28
+ row: number;
29
+ col: number;
30
+ offset: number;
31
+ }
32
+ export interface CursorState {
33
+ x: number;
34
+ y: number;
35
+ visible: boolean;
36
+ style: CursorStyle;
37
+ blinking: boolean;
38
+ color: RGBA;
39
+ }
40
+ export type NativeSpanFeedEventHandler = (eventId: number, arg0: Pointer, arg1: number | bigint) => void;
41
+ export interface RenderLib {
42
+ createRenderer: (width: number, height: number, options?: {
43
+ testing?: boolean;
44
+ remote?: boolean;
45
+ }) => Pointer | null;
46
+ setTerminalEnvVar: (renderer: Pointer, key: string, value: string) => boolean;
47
+ destroyRenderer: (renderer: Pointer) => void;
48
+ setUseThread: (renderer: Pointer, useThread: boolean) => void;
49
+ setBackgroundColor: (renderer: Pointer, color: RGBA) => void;
50
+ setRenderOffset: (renderer: Pointer, offset: number) => void;
51
+ updateStats: (renderer: Pointer, time: number, fps: number, frameCallbackTime: number) => void;
52
+ updateMemoryStats: (renderer: Pointer, heapUsed: number, heapTotal: number, arrayBuffers: number) => void;
53
+ render: (renderer: Pointer, force: boolean) => void;
54
+ getNextBuffer: (renderer: Pointer) => OptimizedBuffer;
55
+ getCurrentBuffer: (renderer: Pointer) => OptimizedBuffer;
56
+ createOptimizedBuffer: (width: number, height: number, widthMethod: WidthMethod, respectAlpha?: boolean, id?: string) => OptimizedBuffer;
57
+ destroyOptimizedBuffer: (bufferPtr: Pointer) => void;
58
+ drawFrameBuffer: (targetBufferPtr: Pointer, destX: number, destY: number, bufferPtr: Pointer, sourceX?: number, sourceY?: number, sourceWidth?: number, sourceHeight?: number) => void;
59
+ getBufferWidth: (buffer: Pointer) => number;
60
+ getBufferHeight: (buffer: Pointer) => number;
61
+ bufferClear: (buffer: Pointer, color: RGBA) => void;
62
+ bufferGetCharPtr: (buffer: Pointer) => Pointer;
63
+ bufferGetFgPtr: (buffer: Pointer) => Pointer;
64
+ bufferGetBgPtr: (buffer: Pointer) => Pointer;
65
+ bufferGetAttributesPtr: (buffer: Pointer) => Pointer;
66
+ bufferGetRespectAlpha: (buffer: Pointer) => boolean;
67
+ bufferSetRespectAlpha: (buffer: Pointer, respectAlpha: boolean) => void;
68
+ bufferGetId: (buffer: Pointer) => string;
69
+ bufferGetRealCharSize: (buffer: Pointer) => number;
70
+ bufferWriteResolvedChars: (buffer: Pointer, outputBuffer: Uint8Array, addLineBreaks: boolean) => number;
71
+ bufferDrawText: (buffer: Pointer, text: string, x: number, y: number, color: RGBA, bgColor?: RGBA, attributes?: number) => void;
72
+ bufferSetCellWithAlphaBlending: (buffer: Pointer, x: number, y: number, char: string, color: RGBA, bgColor: RGBA, attributes?: number) => void;
73
+ bufferSetCell: (buffer: Pointer, x: number, y: number, char: string, color: RGBA, bgColor: RGBA, attributes?: number) => void;
74
+ bufferFillRect: (buffer: Pointer, x: number, y: number, width: number, height: number, color: RGBA) => void;
75
+ bufferDrawSuperSampleBuffer: (buffer: Pointer, x: number, y: number, pixelDataPtr: Pointer, pixelDataLength: number, format: "bgra8unorm" | "rgba8unorm", alignedBytesPerRow: number) => void;
76
+ bufferDrawPackedBuffer: (buffer: Pointer, dataPtr: Pointer, dataLen: number, posX: number, posY: number, terminalWidthCells: number, terminalHeightCells: number) => void;
77
+ bufferDrawGrayscaleBuffer: (buffer: Pointer, posX: number, posY: number, intensitiesPtr: Pointer, srcWidth: number, srcHeight: number, fg: RGBA | null, bg: RGBA | null) => void;
78
+ bufferDrawGrayscaleBufferSupersampled: (buffer: Pointer, posX: number, posY: number, intensitiesPtr: Pointer, srcWidth: number, srcHeight: number, fg: RGBA | null, bg: RGBA | null) => void;
79
+ bufferDrawGrid: (buffer: Pointer, borderChars: Uint32Array, borderFg: RGBA, borderBg: RGBA, columnOffsets: Int32Array, columnCount: number, rowOffsets: Int32Array, rowCount: number, options: {
80
+ drawInner: boolean;
81
+ drawOuter: boolean;
82
+ }) => void;
83
+ bufferDrawBox: (buffer: Pointer, x: number, y: number, width: number, height: number, borderChars: Uint32Array, packedOptions: number, borderColor: RGBA, backgroundColor: RGBA, title: string | null) => void;
84
+ bufferResize: (buffer: Pointer, width: number, height: number) => void;
85
+ resizeRenderer: (renderer: Pointer, width: number, height: number) => void;
86
+ setCursorPosition: (renderer: Pointer, x: number, y: number, visible: boolean) => void;
87
+ setCursorColor: (renderer: Pointer, color: RGBA) => void;
88
+ getCursorState: (renderer: Pointer) => CursorState;
89
+ setCursorStyleOptions: (renderer: Pointer, options: CursorStyleOptions) => void;
90
+ setDebugOverlay: (renderer: Pointer, enabled: boolean, corner: DebugOverlayCorner) => void;
91
+ clearTerminal: (renderer: Pointer) => void;
92
+ setTerminalTitle: (renderer: Pointer, title: string) => void;
93
+ copyToClipboardOSC52: (renderer: Pointer, target: number, payload: Uint8Array) => boolean;
94
+ clearClipboardOSC52: (renderer: Pointer, target: number) => boolean;
95
+ addToHitGrid: (renderer: Pointer, x: number, y: number, width: number, height: number, id: number) => void;
96
+ clearCurrentHitGrid: (renderer: Pointer) => void;
97
+ hitGridPushScissorRect: (renderer: Pointer, x: number, y: number, width: number, height: number) => void;
98
+ hitGridPopScissorRect: (renderer: Pointer) => void;
99
+ hitGridClearScissorRects: (renderer: Pointer) => void;
100
+ addToCurrentHitGridClipped: (renderer: Pointer, x: number, y: number, width: number, height: number, id: number) => void;
101
+ checkHit: (renderer: Pointer, x: number, y: number) => number;
102
+ getHitGridDirty: (renderer: Pointer) => boolean;
103
+ dumpHitGrid: (renderer: Pointer) => void;
104
+ dumpBuffers: (renderer: Pointer, timestamp?: number) => void;
105
+ dumpStdoutBuffer: (renderer: Pointer, timestamp?: number) => void;
106
+ restoreTerminalModes: (renderer: Pointer) => void;
107
+ enableMouse: (renderer: Pointer, enableMovement: boolean) => void;
108
+ disableMouse: (renderer: Pointer) => void;
109
+ enableKittyKeyboard: (renderer: Pointer, flags: number) => void;
110
+ disableKittyKeyboard: (renderer: Pointer) => void;
111
+ setKittyKeyboardFlags: (renderer: Pointer, flags: number) => void;
112
+ getKittyKeyboardFlags: (renderer: Pointer) => number;
113
+ setupTerminal: (renderer: Pointer, useAlternateScreen: boolean) => void;
114
+ suspendRenderer: (renderer: Pointer) => void;
115
+ resumeRenderer: (renderer: Pointer) => void;
116
+ queryPixelResolution: (renderer: Pointer) => void;
117
+ writeOut: (renderer: Pointer, data: string | Uint8Array) => void;
118
+ createTextBuffer: (widthMethod: WidthMethod) => TextBuffer;
119
+ destroyTextBuffer: (buffer: Pointer) => void;
120
+ textBufferGetLength: (buffer: Pointer) => number;
121
+ textBufferGetByteSize: (buffer: Pointer) => number;
122
+ textBufferReset: (buffer: Pointer) => void;
123
+ textBufferClear: (buffer: Pointer) => void;
124
+ textBufferRegisterMemBuffer: (buffer: Pointer, bytes: Uint8Array, owned?: boolean) => number;
125
+ textBufferReplaceMemBuffer: (buffer: Pointer, memId: number, bytes: Uint8Array, owned?: boolean) => boolean;
126
+ textBufferClearMemRegistry: (buffer: Pointer) => void;
127
+ textBufferSetTextFromMem: (buffer: Pointer, memId: number) => void;
128
+ textBufferAppend: (buffer: Pointer, bytes: Uint8Array) => void;
129
+ textBufferAppendFromMemId: (buffer: Pointer, memId: number) => void;
130
+ textBufferLoadFile: (buffer: Pointer, path: string) => boolean;
131
+ textBufferSetStyledText: (buffer: Pointer, chunks: Array<{
132
+ text: string;
133
+ fg?: RGBA | null;
134
+ bg?: RGBA | null;
135
+ attributes?: number;
136
+ link?: {
137
+ url: string;
138
+ };
139
+ }>) => void;
140
+ textBufferSetDefaultFg: (buffer: Pointer, fg: RGBA | null) => void;
141
+ textBufferSetDefaultBg: (buffer: Pointer, bg: RGBA | null) => void;
142
+ textBufferSetDefaultAttributes: (buffer: Pointer, attributes: number | null) => void;
143
+ textBufferResetDefaults: (buffer: Pointer) => void;
144
+ textBufferGetTabWidth: (buffer: Pointer) => number;
145
+ textBufferSetTabWidth: (buffer: Pointer, width: number) => void;
146
+ textBufferGetLineCount: (buffer: Pointer) => number;
147
+ getPlainTextBytes: (buffer: Pointer, maxLength: number) => Uint8Array | null;
148
+ textBufferGetTextRange: (buffer: Pointer, startOffset: number, endOffset: number, maxLength: number) => Uint8Array | null;
149
+ textBufferGetTextRangeByCoords: (buffer: Pointer, startRow: number, startCol: number, endRow: number, endCol: number, maxLength: number) => Uint8Array | null;
150
+ createTextBufferView: (textBuffer: Pointer) => Pointer;
151
+ destroyTextBufferView: (view: Pointer) => void;
152
+ textBufferViewSetSelection: (view: Pointer, start: number, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
153
+ textBufferViewResetSelection: (view: Pointer) => void;
154
+ textBufferViewGetSelection: (view: Pointer) => {
155
+ start: number;
156
+ end: number;
157
+ } | null;
158
+ textBufferViewSetLocalSelection: (view: Pointer, anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor: RGBA | null, fgColor: RGBA | null) => boolean;
159
+ textBufferViewUpdateSelection: (view: Pointer, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
160
+ textBufferViewUpdateLocalSelection: (view: Pointer, anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor: RGBA | null, fgColor: RGBA | null) => boolean;
161
+ textBufferViewResetLocalSelection: (view: Pointer) => void;
162
+ textBufferViewSetWrapWidth: (view: Pointer, width: number) => void;
163
+ textBufferViewSetWrapMode: (view: Pointer, mode: "none" | "char" | "word") => void;
164
+ textBufferViewSetViewportSize: (view: Pointer, width: number, height: number) => void;
165
+ textBufferViewSetViewport: (view: Pointer, x: number, y: number, width: number, height: number) => void;
166
+ textBufferViewGetLineInfo: (view: Pointer) => LineInfo;
167
+ textBufferViewGetLogicalLineInfo: (view: Pointer) => LineInfo;
168
+ textBufferViewGetSelectedTextBytes: (view: Pointer, maxLength: number) => Uint8Array | null;
169
+ textBufferViewGetPlainTextBytes: (view: Pointer, maxLength: number) => Uint8Array | null;
170
+ textBufferViewSetTabIndicator: (view: Pointer, indicator: number) => void;
171
+ textBufferViewSetTabIndicatorColor: (view: Pointer, color: RGBA) => void;
172
+ textBufferViewSetTruncate: (view: Pointer, truncate: boolean) => void;
173
+ textBufferViewMeasureForDimensions: (view: Pointer, width: number, height: number) => {
174
+ lineCount: number;
175
+ widthColsMax: number;
176
+ } | null;
177
+ textBufferViewGetVirtualLineCount: (view: Pointer) => number;
178
+ readonly encoder: TextEncoder;
179
+ readonly decoder: TextDecoder;
180
+ bufferDrawTextBufferView: (buffer: Pointer, view: Pointer, x: number, y: number) => void;
181
+ bufferDrawEditorView: (buffer: Pointer, view: Pointer, x: number, y: number) => void;
182
+ createEditBuffer: (widthMethod: WidthMethod) => Pointer;
183
+ destroyEditBuffer: (buffer: Pointer) => void;
184
+ editBufferSetText: (buffer: Pointer, textBytes: Uint8Array) => void;
185
+ editBufferSetTextFromMem: (buffer: Pointer, memId: number) => void;
186
+ editBufferReplaceText: (buffer: Pointer, textBytes: Uint8Array) => void;
187
+ editBufferReplaceTextFromMem: (buffer: Pointer, memId: number) => void;
188
+ editBufferGetText: (buffer: Pointer, maxLength: number) => Uint8Array | null;
189
+ editBufferInsertChar: (buffer: Pointer, char: string) => void;
190
+ editBufferInsertText: (buffer: Pointer, text: string) => void;
191
+ editBufferDeleteChar: (buffer: Pointer) => void;
192
+ editBufferDeleteCharBackward: (buffer: Pointer) => void;
193
+ editBufferDeleteRange: (buffer: Pointer, startLine: number, startCol: number, endLine: number, endCol: number) => void;
194
+ editBufferNewLine: (buffer: Pointer) => void;
195
+ editBufferDeleteLine: (buffer: Pointer) => void;
196
+ editBufferMoveCursorLeft: (buffer: Pointer) => void;
197
+ editBufferMoveCursorRight: (buffer: Pointer) => void;
198
+ editBufferMoveCursorUp: (buffer: Pointer) => void;
199
+ editBufferMoveCursorDown: (buffer: Pointer) => void;
200
+ editBufferGotoLine: (buffer: Pointer, line: number) => void;
201
+ editBufferSetCursor: (buffer: Pointer, line: number, col: number) => void;
202
+ editBufferSetCursorToLineCol: (buffer: Pointer, line: number, col: number) => void;
203
+ editBufferSetCursorByOffset: (buffer: Pointer, offset: number) => void;
204
+ editBufferGetCursorPosition: (buffer: Pointer) => LogicalCursor;
205
+ editBufferGetId: (buffer: Pointer) => number;
206
+ editBufferGetTextBuffer: (buffer: Pointer) => Pointer;
207
+ editBufferDebugLogRope: (buffer: Pointer) => void;
208
+ editBufferUndo: (buffer: Pointer, maxLength: number) => Uint8Array | null;
209
+ editBufferRedo: (buffer: Pointer, maxLength: number) => Uint8Array | null;
210
+ editBufferCanUndo: (buffer: Pointer) => boolean;
211
+ editBufferCanRedo: (buffer: Pointer) => boolean;
212
+ editBufferClearHistory: (buffer: Pointer) => void;
213
+ editBufferClear: (buffer: Pointer) => void;
214
+ editBufferGetNextWordBoundary: (buffer: Pointer) => {
215
+ row: number;
216
+ col: number;
217
+ offset: number;
218
+ };
219
+ editBufferGetPrevWordBoundary: (buffer: Pointer) => {
220
+ row: number;
221
+ col: number;
222
+ offset: number;
223
+ };
224
+ editBufferGetEOL: (buffer: Pointer) => {
225
+ row: number;
226
+ col: number;
227
+ offset: number;
228
+ };
229
+ editBufferOffsetToPosition: (buffer: Pointer, offset: number) => {
230
+ row: number;
231
+ col: number;
232
+ offset: number;
233
+ } | null;
234
+ editBufferPositionToOffset: (buffer: Pointer, row: number, col: number) => number;
235
+ editBufferGetLineStartOffset: (buffer: Pointer, row: number) => number;
236
+ editBufferGetTextRange: (buffer: Pointer, startOffset: number, endOffset: number, maxLength: number) => Uint8Array | null;
237
+ editBufferGetTextRangeByCoords: (buffer: Pointer, startRow: number, startCol: number, endRow: number, endCol: number, maxLength: number) => Uint8Array | null;
238
+ createEditorView: (editBufferPtr: Pointer, viewportWidth: number, viewportHeight: number) => Pointer;
239
+ destroyEditorView: (view: Pointer) => void;
240
+ editorViewSetViewportSize: (view: Pointer, width: number, height: number) => void;
241
+ editorViewSetViewport: (view: Pointer, x: number, y: number, width: number, height: number, moveCursor: boolean) => void;
242
+ editorViewGetViewport: (view: Pointer) => {
243
+ offsetY: number;
244
+ offsetX: number;
245
+ height: number;
246
+ width: number;
247
+ };
248
+ editorViewSetScrollMargin: (view: Pointer, margin: number) => void;
249
+ editorViewSetWrapMode: (view: Pointer, mode: "none" | "char" | "word") => void;
250
+ editorViewGetVirtualLineCount: (view: Pointer) => number;
251
+ editorViewGetTotalVirtualLineCount: (view: Pointer) => number;
252
+ editorViewGetTextBufferView: (view: Pointer) => Pointer;
253
+ editorViewSetSelection: (view: Pointer, start: number, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
254
+ editorViewResetSelection: (view: Pointer) => void;
255
+ editorViewGetSelection: (view: Pointer) => {
256
+ start: number;
257
+ end: number;
258
+ } | null;
259
+ editorViewSetLocalSelection: (view: Pointer, anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor: RGBA | null, fgColor: RGBA | null, updateCursor: boolean, followCursor: boolean) => boolean;
260
+ editorViewUpdateSelection: (view: Pointer, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
261
+ editorViewUpdateLocalSelection: (view: Pointer, anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor: RGBA | null, fgColor: RGBA | null, updateCursor: boolean, followCursor: boolean) => boolean;
262
+ editorViewResetLocalSelection: (view: Pointer) => void;
263
+ editorViewGetSelectedTextBytes: (view: Pointer, maxLength: number) => Uint8Array | null;
264
+ editorViewGetCursor: (view: Pointer) => {
265
+ row: number;
266
+ col: number;
267
+ };
268
+ editorViewGetText: (view: Pointer, maxLength: number) => Uint8Array | null;
269
+ editorViewGetVisualCursor: (view: Pointer) => VisualCursor;
270
+ editorViewMoveUpVisual: (view: Pointer) => void;
271
+ editorViewMoveDownVisual: (view: Pointer) => void;
272
+ editorViewDeleteSelectedText: (view: Pointer) => void;
273
+ editorViewSetCursorByOffset: (view: Pointer, offset: number) => void;
274
+ editorViewGetNextWordBoundary: (view: Pointer) => VisualCursor;
275
+ editorViewGetPrevWordBoundary: (view: Pointer) => VisualCursor;
276
+ editorViewGetEOL: (view: Pointer) => VisualCursor;
277
+ editorViewGetVisualSOL: (view: Pointer) => VisualCursor;
278
+ editorViewGetVisualEOL: (view: Pointer) => VisualCursor;
279
+ editorViewGetLineInfo: (view: Pointer) => LineInfo;
280
+ editorViewGetLogicalLineInfo: (view: Pointer) => LineInfo;
281
+ editorViewSetPlaceholderStyledText: (view: Pointer, chunks: Array<{
282
+ text: string;
283
+ fg?: RGBA | null;
284
+ bg?: RGBA | null;
285
+ attributes?: number;
286
+ }>) => void;
287
+ editorViewSetTabIndicator: (view: Pointer, indicator: number) => void;
288
+ editorViewSetTabIndicatorColor: (view: Pointer, color: RGBA) => void;
289
+ bufferPushScissorRect: (buffer: Pointer, x: number, y: number, width: number, height: number) => void;
290
+ bufferPopScissorRect: (buffer: Pointer) => void;
291
+ bufferClearScissorRects: (buffer: Pointer) => void;
292
+ bufferPushOpacity: (buffer: Pointer, opacity: number) => void;
293
+ bufferPopOpacity: (buffer: Pointer) => void;
294
+ bufferGetCurrentOpacity: (buffer: Pointer) => number;
295
+ bufferClearOpacity: (buffer: Pointer) => void;
296
+ textBufferAddHighlightByCharRange: (buffer: Pointer, highlight: Highlight) => void;
297
+ textBufferAddHighlight: (buffer: Pointer, lineIdx: number, highlight: Highlight) => void;
298
+ textBufferRemoveHighlightsByRef: (buffer: Pointer, hlRef: number) => void;
299
+ textBufferClearLineHighlights: (buffer: Pointer, lineIdx: number) => void;
300
+ textBufferClearAllHighlights: (buffer: Pointer) => void;
301
+ textBufferSetSyntaxStyle: (buffer: Pointer, style: Pointer | null) => void;
302
+ textBufferGetLineHighlights: (buffer: Pointer, lineIdx: number) => Array<Highlight>;
303
+ textBufferGetHighlightCount: (buffer: Pointer) => number;
304
+ getArenaAllocatedBytes: () => number;
305
+ getBuildOptions: () => BuildOptions;
306
+ getAllocatorStats: () => AllocatorStats;
307
+ createSyntaxStyle: () => Pointer;
308
+ destroySyntaxStyle: (style: Pointer) => void;
309
+ syntaxStyleRegister: (style: Pointer, name: string, fg: RGBA | null, bg: RGBA | null, attributes: number) => number;
310
+ syntaxStyleResolveByName: (style: Pointer, name: string) => number | null;
311
+ syntaxStyleGetStyleCount: (style: Pointer) => number;
312
+ getTerminalCapabilities: (renderer: Pointer) => any;
313
+ processCapabilityResponse: (renderer: Pointer, response: string) => void;
314
+ encodeUnicode: (text: string, widthMethod: WidthMethod) => {
315
+ ptr: Pointer;
316
+ data: Array<{
317
+ width: number;
318
+ char: number;
319
+ }>;
320
+ } | null;
321
+ freeUnicode: (encoded: {
322
+ ptr: Pointer;
323
+ data: Array<{
324
+ width: number;
325
+ char: number;
326
+ }>;
327
+ }) => void;
328
+ bufferDrawChar: (buffer: Pointer, char: number, x: number, y: number, fg: RGBA, bg: RGBA, attributes?: number) => void;
329
+ registerNativeSpanFeedStream: (stream: Pointer, handler: NativeSpanFeedEventHandler) => void;
330
+ unregisterNativeSpanFeedStream: (stream: Pointer) => void;
331
+ createNativeSpanFeed: (options?: NativeSpanFeedOptions | null) => Pointer;
332
+ attachNativeSpanFeed: (stream: Pointer) => number;
333
+ destroyNativeSpanFeed: (stream: Pointer) => void;
334
+ streamWrite: (stream: Pointer, data: Uint8Array | string) => number;
335
+ streamCommit: (stream: Pointer) => number;
336
+ streamDrainSpans: (stream: Pointer, outBuffer: Uint8Array, maxSpans: number) => number;
337
+ streamClose: (stream: Pointer) => number;
338
+ streamSetOptions: (stream: Pointer, options: NativeSpanFeedOptions) => number;
339
+ streamGetStats: (stream: Pointer) => NativeSpanFeedStats | null;
340
+ streamReserve: (stream: Pointer, minLen: number) => {
341
+ status: number;
342
+ info: ReserveInfo | null;
343
+ };
344
+ streamCommitReserved: (stream: Pointer, length: number) => number;
345
+ onNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
346
+ onceNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
347
+ offNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
348
+ onAnyNativeEvent: (handler: (name: string, data: ArrayBuffer) => void) => void;
349
+ }
350
+ export declare function setRenderLibPath(libPath: string): void;
351
+ 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.id)
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
- })
@@ -1,43 +0,0 @@
1
- #!/usr/bin/env bun
2
- import { parseKeypress } from "../src/lib/parse.keypress.ts"
3
-
4
- console.log("Keypress Debug Tool")
5
- console.log("Press keys to see their parsed output. Press Ctrl+C to exit.\n")
6
-
7
- // Set stdin to raw mode to capture individual keypresses
8
- process.stdin.setRawMode(true)
9
- process.stdin.resume()
10
-
11
- // Listen for keypress data
12
- process.stdin.on("data", (data: Buffer) => {
13
- // Check for Ctrl+C to exit
14
- if (data.toString() === "\x03") {
15
- console.log("\nExiting keypress debug tool...")
16
- process.stdin.setRawMode(false)
17
- process.exit(0)
18
- }
19
-
20
- const parsed = parseKeypress(data)
21
-
22
- console.log("Input data:", JSON.stringify(data.toString()))
23
- console.log("Raw:", JSON.stringify(parsed?.raw))
24
- console.log("Parsed:", {
25
- name: parsed?.name,
26
- ctrl: parsed?.ctrl,
27
- meta: parsed?.meta,
28
- shift: parsed?.shift,
29
- option: parsed?.option,
30
- number: parsed?.number,
31
- sequence: parsed?.sequence,
32
- code: parsed?.code,
33
- buffer: data,
34
- })
35
- console.log("---")
36
- })
37
-
38
- // Handle Ctrl+C gracefully
39
- process.on("SIGINT", () => {
40
- console.log("\nExiting keypress debug tool...")
41
- process.stdin.setRawMode(false)
42
- process.exit(0)
43
- })
@@ -1,32 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- /**
4
- * Development script to print all registered environment variables
5
- *
6
- * Usage:
7
- * bun dev/print-env-vars.ts # Colored output (default)
8
- * bun dev/print-env-vars.ts --markdown # Markdown output
9
- * bun dev/print-env-vars.ts --update # Update docs/env-vars.md
10
- */
11
-
12
- import { generateEnvColored, generateEnvMarkdown } from "../src/index.js"
13
- import { join } from "path"
14
-
15
- const args = process.argv.slice(2)
16
- const useMarkdown = args.includes("--markdown")
17
- const updateDocs = args.includes("--update")
18
-
19
- const generateMarkdownContent = () => {
20
- return `# Environment Variables\n\n${generateEnvMarkdown()}---\n\n_generated via packages/core/dev/print-env-vars.ts_\n`
21
- }
22
-
23
- if (updateDocs) {
24
- const docsPath = join(import.meta.dir, "../docs/env-vars.md")
25
- const content = generateMarkdownContent()
26
- await Bun.write(docsPath, content)
27
- console.log(`✓ Updated ${docsPath}`)
28
- } else if (useMarkdown) {
29
- console.log(`${generateEnvMarkdown()}\n---\n_generated via packages/core/dev/print-env-vars.ts_`)
30
- } else {
31
- console.log(generateEnvColored())
32
- }
@@ -1,68 +0,0 @@
1
- #!/bin/bash
2
- # Test script for issue #334: Kitty Graphics Protocol query leaks into tmux pane title
3
- #
4
- # This script verifies that the kitty graphics query doesn't corrupt tmux pane titles.
5
- # Run this inside tmux to test.
6
- #
7
- # Usage: ./test-tmux-graphics-334.sh
8
- #
9
- # Expected results:
10
- # - Test 1 (Direct query): FAIL - demonstrates the bug
11
- # - Test 2 (DCS passthrough): PASS - demonstrates the fix
12
- # - Test 3 (No query): PASS - control test
13
-
14
- set -e
15
-
16
- SESSION_NAME="opentui-test-334-$$"
17
- EXPECTED_TITLE="test-title"
18
-
19
- cleanup() {
20
- tmux kill-session -t "$SESSION_NAME" 2>/dev/null || true
21
- }
22
- trap cleanup EXIT
23
-
24
- run_test() {
25
- local test_name="$1"
26
- local query_cmd="$2"
27
-
28
- cleanup
29
- tmux new-session -d -s "$SESSION_NAME" -x 80 -y 24
30
- tmux select-pane -t "$SESSION_NAME" -T "$EXPECTED_TITLE"
31
-
32
- if [ -n "$query_cmd" ]; then
33
- tmux send-keys -t "$SESSION_NAME" "$query_cmd" Enter
34
- sleep 0.5
35
- fi
36
-
37
- local after_title
38
- after_title=$(tmux display-message -t "$SESSION_NAME" -p '#{pane_title}')
39
-
40
- if [[ "$after_title" == *"Gi=31337"* ]] || [[ "$after_title" == *"i=31337"* ]]; then
41
- echo "FAIL: $test_name - pane title corrupted: '$after_title'"
42
- return 1
43
- elif [[ "$after_title" != "$EXPECTED_TITLE" ]]; then
44
- echo "WARN: $test_name - pane title changed: '$after_title'"
45
- return 1
46
- else
47
- echo "PASS: $test_name"
48
- return 0
49
- fi
50
- }
51
-
52
- echo "=== Issue #334 Test: Kitty Graphics Query in tmux ==="
53
- echo "tmux version: $(tmux -V)"
54
- echo ""
55
-
56
- echo "Test 1: Direct query (demonstrates bug)"
57
- run_test "Direct kitty graphics query" \
58
- "printf '\\x1b_Gi=31337,s=1,v=1,a=q,t=d,f=24;AAAA\\x1b\\\\\\x1b[c'" || true
59
-
60
- echo "Test 2: DCS passthrough wrapped query (demonstrates fix)"
61
- run_test "DCS passthrough wrapped" \
62
- "printf '\\x1bPtmux;\\x1b\\x1b_Gi=31337,s=1,v=1,a=q,t=d,f=24;AAAA\\x1b\\x1b\\\\\\x1b\\x1b[c\\x1b\\\\'"
63
-
64
- echo "Test 3: No query (control)"
65
- run_test "No query" ""
66
-
67
- echo ""
68
- echo "If Test 1 fails and Test 2 passes, the fix is working correctly."