@fairyhunter13/opentui-core 0.1.89 → 0.1.91

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/README.md +2 -2
  2. package/dev/keypress-debug-renderer.ts +148 -0
  3. package/dev/keypress-debug.ts +43 -0
  4. package/dev/print-env-vars.ts +32 -0
  5. package/dev/test-tmux-graphics-334.sh +68 -0
  6. package/dev/thai-debug-test.ts +68 -0
  7. package/docs/development.md +141 -0
  8. package/docs/env-vars.md +140 -0
  9. package/docs/getting-started.md +353 -0
  10. package/docs/renderables-vs-constructs.md +159 -0
  11. package/docs/tree-sitter.md +311 -0
  12. package/package.json +61 -52
  13. package/scripts/build.ts +400 -0
  14. package/scripts/publish.ts +60 -0
  15. package/src/3d/SpriteResourceManager.ts +286 -0
  16. package/src/3d/SpriteUtils.ts +71 -0
  17. package/src/3d/TextureUtils.ts +196 -0
  18. package/src/3d/ThreeRenderable.ts +197 -0
  19. package/src/3d/WGPURenderer.ts +294 -0
  20. package/src/3d/animation/ExplodingSpriteEffect.ts +513 -0
  21. package/src/3d/animation/PhysicsExplodingSpriteEffect.ts +429 -0
  22. package/src/3d/animation/SpriteAnimator.ts +633 -0
  23. package/src/3d/animation/SpriteParticleGenerator.ts +435 -0
  24. package/src/3d/canvas.ts +464 -0
  25. package/src/3d/index.ts +12 -0
  26. package/src/3d/physics/PlanckPhysicsAdapter.ts +72 -0
  27. package/src/3d/physics/RapierPhysicsAdapter.ts +66 -0
  28. package/src/3d/physics/physics-interface.ts +31 -0
  29. package/src/3d/shaders/supersampling.wgsl +201 -0
  30. package/src/3d.ts +3 -0
  31. package/src/NativeSpanFeed.ts +300 -0
  32. package/src/Renderable.ts +1698 -0
  33. package/src/__snapshots__/buffer.test.ts.snap +28 -0
  34. package/src/animation/Timeline.test.ts +2709 -0
  35. package/src/animation/Timeline.ts +598 -0
  36. package/src/ansi.ts +18 -0
  37. package/src/benchmark/latest-all-bench-run.json +707 -0
  38. package/src/benchmark/latest-async-bench-run.json +336 -0
  39. package/src/benchmark/latest-default-bench-run.json +657 -0
  40. package/src/benchmark/latest-large-bench-run.json +707 -0
  41. package/src/benchmark/latest-quick-bench-run.json +207 -0
  42. package/src/benchmark/markdown-benchmark.ts +1804 -0
  43. package/src/benchmark/native-span-feed-async-benchmark.ts +355 -0
  44. package/src/benchmark/native-span-feed-benchmark.md +56 -0
  45. package/src/benchmark/native-span-feed-benchmark.ts +596 -0
  46. package/src/benchmark/native-span-feed-compare.ts +280 -0
  47. package/src/benchmark/renderer-benchmark.ts +754 -0
  48. package/src/benchmark/text-table-benchmark.ts +947 -0
  49. package/src/buffer.test.ts +291 -0
  50. package/src/buffer.ts +519 -0
  51. package/src/console.test.ts +612 -0
  52. package/src/console.ts +1255 -0
  53. package/src/edit-buffer.test.ts +1769 -0
  54. package/src/edit-buffer.ts +411 -0
  55. package/src/editor-view.test.ts +1032 -0
  56. package/src/editor-view.ts +284 -0
  57. package/src/examples/ascii-font-selection-demo.ts +245 -0
  58. package/src/examples/assets/Water_2_M_Normal.jpg +0 -0
  59. package/src/examples/assets/concrete.png +0 -0
  60. package/src/examples/assets/crate.png +0 -0
  61. package/src/examples/assets/crate_emissive.png +0 -0
  62. package/src/examples/assets/forrest_background.png +0 -0
  63. package/src/examples/assets/hast-example.json +1018 -0
  64. package/src/examples/assets/heart.png +0 -0
  65. package/src/examples/assets/main_char_heavy_attack.png +0 -0
  66. package/src/examples/assets/main_char_idle.png +0 -0
  67. package/src/examples/assets/main_char_jump_end.png +0 -0
  68. package/src/examples/assets/main_char_jump_landing.png +0 -0
  69. package/src/examples/assets/main_char_jump_start.png +0 -0
  70. package/src/examples/assets/main_char_run_loop.png +0 -0
  71. package/src/examples/assets/roughness_map.jpg +0 -0
  72. package/src/examples/build.ts +115 -0
  73. package/src/examples/code-demo.ts +584 -0
  74. package/src/examples/console-demo.ts +358 -0
  75. package/src/examples/core-plugin-slots-demo.ts +759 -0
  76. package/src/examples/diff-demo.ts +699 -0
  77. package/src/examples/draggable-three-demo.ts +259 -0
  78. package/src/examples/editor-demo.ts +322 -0
  79. package/src/examples/extmarks-demo.ts +204 -0
  80. package/src/examples/focus-restore-demo.ts +310 -0
  81. package/src/examples/fonts.ts +245 -0
  82. package/src/examples/fractal-shader-demo.ts +268 -0
  83. package/src/examples/framebuffer-demo.ts +674 -0
  84. package/src/examples/full-unicode-demo.ts +181 -0
  85. package/src/examples/golden-star-demo.ts +933 -0
  86. package/src/examples/grayscale-buffer-demo.ts +249 -0
  87. package/src/examples/hast-syntax-highlighting-demo.ts +129 -0
  88. package/src/examples/index.ts +925 -0
  89. package/src/examples/input-demo.ts +377 -0
  90. package/src/examples/input-select-layout-demo.ts +425 -0
  91. package/src/examples/install.sh +143 -0
  92. package/src/examples/keypress-debug-demo.ts +452 -0
  93. package/src/examples/lib/HexList.ts +122 -0
  94. package/src/examples/lib/PaletteGrid.ts +125 -0
  95. package/src/examples/lib/standalone-keys.ts +25 -0
  96. package/src/examples/lib/tab-controller.ts +243 -0
  97. package/src/examples/lights-phong-demo.ts +290 -0
  98. package/src/examples/link-demo.ts +220 -0
  99. package/src/examples/live-state-demo.ts +480 -0
  100. package/src/examples/markdown-demo.ts +620 -0
  101. package/src/examples/mouse-interaction-demo.ts +428 -0
  102. package/src/examples/nested-zindex-demo.ts +357 -0
  103. package/src/examples/opacity-example.ts +235 -0
  104. package/src/examples/opentui-demo.ts +1057 -0
  105. package/src/examples/physx-planck-2d-demo.ts +507 -0
  106. package/src/examples/physx-rapier-2d-demo.ts +526 -0
  107. package/src/examples/relative-positioning-demo.ts +323 -0
  108. package/src/examples/scroll-example.ts +214 -0
  109. package/src/examples/scrollbox-mouse-test.ts +112 -0
  110. package/src/examples/scrollbox-overlay-hit-test.ts +206 -0
  111. package/src/examples/select-demo.ts +237 -0
  112. package/src/examples/shader-cube-demo.ts +772 -0
  113. package/src/examples/simple-layout-example.ts +591 -0
  114. package/src/examples/slider-demo.ts +617 -0
  115. package/src/examples/split-mode-demo.ts +445 -0
  116. package/src/examples/sprite-animation-demo.ts +443 -0
  117. package/src/examples/sprite-particle-generator-demo.ts +486 -0
  118. package/src/examples/static-sprite-demo.ts +193 -0
  119. package/src/examples/sticky-scroll-example.ts +308 -0
  120. package/src/examples/styled-text-demo.ts +282 -0
  121. package/src/examples/tab-select-demo.ts +219 -0
  122. package/src/examples/terminal-title.ts +29 -0
  123. package/src/examples/terminal.ts +305 -0
  124. package/src/examples/text-node-demo.ts +416 -0
  125. package/src/examples/text-selection-demo.ts +377 -0
  126. package/src/examples/text-table-demo.ts +503 -0
  127. package/src/examples/text-truncation-demo.ts +481 -0
  128. package/src/examples/text-wrap.ts +757 -0
  129. package/src/examples/texture-loading-demo.ts +259 -0
  130. package/src/examples/timeline-example.ts +670 -0
  131. package/src/examples/transparency-demo.ts +241 -0
  132. package/src/examples/vnode-composition-demo.ts +404 -0
  133. package/src/index.ts +22 -0
  134. package/src/lib/KeyHandler.integration.test.ts +292 -0
  135. package/src/lib/KeyHandler.stopPropagation.test.ts +289 -0
  136. package/src/lib/KeyHandler.test.ts +662 -0
  137. package/src/lib/KeyHandler.ts +222 -0
  138. package/src/lib/RGBA.test.ts +984 -0
  139. package/src/lib/RGBA.ts +204 -0
  140. package/src/lib/ascii.font.ts +330 -0
  141. package/src/lib/border.test.ts +83 -0
  142. package/src/lib/border.ts +168 -0
  143. package/src/lib/bunfs.test.ts +27 -0
  144. package/src/lib/bunfs.ts +18 -0
  145. package/src/lib/clipboard.test.ts +41 -0
  146. package/src/lib/clipboard.ts +47 -0
  147. package/src/lib/clock.ts +31 -0
  148. package/src/lib/data-paths.test.ts +133 -0
  149. package/src/lib/data-paths.ts +109 -0
  150. package/src/lib/debounce.ts +106 -0
  151. package/src/lib/detect-links.test.ts +98 -0
  152. package/src/lib/detect-links.ts +56 -0
  153. package/src/lib/env.test.ts +228 -0
  154. package/src/lib/env.ts +209 -0
  155. package/src/lib/extmarks-history.ts +51 -0
  156. package/src/lib/extmarks-multiwidth.test.ts +322 -0
  157. package/src/lib/extmarks.test.ts +3457 -0
  158. package/src/lib/extmarks.ts +843 -0
  159. package/src/lib/fonts/block.json +405 -0
  160. package/src/lib/fonts/grid.json +265 -0
  161. package/src/lib/fonts/huge.json +741 -0
  162. package/src/lib/fonts/pallet.json +314 -0
  163. package/src/lib/fonts/shade.json +591 -0
  164. package/src/lib/fonts/slick.json +321 -0
  165. package/src/lib/fonts/tiny.json +69 -0
  166. package/src/lib/hast-styled-text.ts +59 -0
  167. package/src/lib/index.ts +21 -0
  168. package/src/lib/keymapping.test.ts +280 -0
  169. package/src/lib/keymapping.ts +87 -0
  170. package/src/lib/objects-in-viewport.test.ts +787 -0
  171. package/src/lib/objects-in-viewport.ts +153 -0
  172. package/src/lib/output.capture.ts +58 -0
  173. package/src/lib/parse.keypress-kitty.protocol.test.ts +340 -0
  174. package/src/lib/parse.keypress-kitty.test.ts +663 -0
  175. package/src/lib/parse.keypress-kitty.ts +439 -0
  176. package/src/lib/parse.keypress.test.ts +1849 -0
  177. package/src/lib/parse.keypress.ts +397 -0
  178. package/src/lib/parse.mouse.test.ts +552 -0
  179. package/src/lib/parse.mouse.ts +232 -0
  180. package/src/lib/paste.ts +16 -0
  181. package/src/lib/queue.ts +65 -0
  182. package/src/lib/renderable.validations.test.ts +87 -0
  183. package/src/lib/renderable.validations.ts +83 -0
  184. package/src/lib/scroll-acceleration.ts +98 -0
  185. package/src/lib/selection.ts +240 -0
  186. package/src/lib/singleton.ts +28 -0
  187. package/src/lib/stdin-parser.test.ts +1676 -0
  188. package/src/lib/stdin-parser.ts +1248 -0
  189. package/src/lib/styled-text.ts +178 -0
  190. package/src/lib/terminal-capability-detection.test.ts +202 -0
  191. package/src/lib/terminal-capability-detection.ts +79 -0
  192. package/src/lib/terminal-palette.test.ts +878 -0
  193. package/src/lib/terminal-palette.ts +383 -0
  194. package/src/lib/tree-sitter/assets/README.md +118 -0
  195. package/src/lib/tree-sitter/assets/update.ts +331 -0
  196. package/src/lib/tree-sitter/assets.d.ts +9 -0
  197. package/src/lib/tree-sitter/cache.test.ts +270 -0
  198. package/src/lib/tree-sitter/client.test.ts +1061 -0
  199. package/src/lib/tree-sitter/client.ts +615 -0
  200. package/src/lib/tree-sitter/default-parsers.ts +80 -0
  201. package/src/lib/tree-sitter/download-utils.ts +148 -0
  202. package/src/lib/tree-sitter/index.ts +28 -0
  203. package/src/lib/tree-sitter/parser.worker.ts +1001 -0
  204. package/src/lib/tree-sitter/parsers-config.ts +75 -0
  205. package/src/lib/tree-sitter/resolve-ft.ts +62 -0
  206. package/src/lib/tree-sitter/types.ts +81 -0
  207. package/src/lib/tree-sitter-styled-text.test.ts +1253 -0
  208. package/src/lib/tree-sitter-styled-text.ts +306 -0
  209. package/src/lib/validate-dir-name.ts +55 -0
  210. package/src/lib/yoga.options.test.ts +628 -0
  211. package/src/lib/yoga.options.ts +346 -0
  212. package/src/plugins/core-slot.ts +579 -0
  213. package/src/plugins/registry.ts +377 -0
  214. package/src/plugins/types.ts +46 -0
  215. package/src/post/filters.ts +888 -0
  216. package/src/renderables/ASCIIFont.ts +219 -0
  217. package/src/renderables/Box.test.ts +160 -0
  218. package/src/renderables/Box.ts +295 -0
  219. package/src/renderables/Code.test.ts +2062 -0
  220. package/src/renderables/Code.ts +357 -0
  221. package/src/renderables/Diff.regression.test.ts +226 -0
  222. package/src/renderables/Diff.test.ts +3027 -0
  223. package/src/renderables/Diff.ts +1209 -0
  224. package/src/renderables/EditBufferRenderable.ts +764 -0
  225. package/src/renderables/FrameBuffer.ts +47 -0
  226. package/src/renderables/Input.test.ts +1228 -0
  227. package/src/renderables/Input.ts +245 -0
  228. package/src/renderables/LineNumberRenderable.ts +675 -0
  229. package/src/renderables/Markdown.ts +1106 -0
  230. package/src/renderables/ScrollBar.ts +422 -0
  231. package/src/renderables/ScrollBox.ts +883 -0
  232. package/src/renderables/Select.test.ts +1010 -0
  233. package/src/renderables/Select.ts +523 -0
  234. package/src/renderables/Slider.test.ts +456 -0
  235. package/src/renderables/Slider.ts +347 -0
  236. package/src/renderables/TabSelect.test.ts +197 -0
  237. package/src/renderables/TabSelect.ts +455 -0
  238. package/src/renderables/Text.selection-buffer.test.ts +123 -0
  239. package/src/renderables/Text.test.ts +2660 -0
  240. package/src/renderables/Text.ts +147 -0
  241. package/src/renderables/TextBufferRenderable.ts +518 -0
  242. package/src/renderables/TextNode.test.ts +1058 -0
  243. package/src/renderables/TextNode.ts +325 -0
  244. package/src/renderables/TextTable.test.ts +1421 -0
  245. package/src/renderables/TextTable.ts +1344 -0
  246. package/src/renderables/Textarea.ts +732 -0
  247. package/src/renderables/TimeToFirstDraw.ts +89 -0
  248. package/src/renderables/__snapshots__/Code.test.ts.snap +13 -0
  249. package/src/renderables/__snapshots__/Diff.test.ts.snap +785 -0
  250. package/src/renderables/__snapshots__/Text.test.ts.snap +421 -0
  251. package/src/renderables/__snapshots__/TextTable.test.ts.snap +215 -0
  252. package/src/renderables/__tests__/LineNumberRenderable.scrollbox-simple.test.ts +144 -0
  253. package/src/renderables/__tests__/LineNumberRenderable.scrollbox.test.ts +816 -0
  254. package/src/renderables/__tests__/LineNumberRenderable.test.ts +1787 -0
  255. package/src/renderables/__tests__/LineNumberRenderable.wrapping.test.ts +85 -0
  256. package/src/renderables/__tests__/Markdown.test.ts +2287 -0
  257. package/src/renderables/__tests__/MultiRenderable.selection.test.ts +87 -0
  258. package/src/renderables/__tests__/Textarea.buffer.test.ts +682 -0
  259. package/src/renderables/__tests__/Textarea.destroyed-events.test.ts +675 -0
  260. package/src/renderables/__tests__/Textarea.editing.test.ts +2041 -0
  261. package/src/renderables/__tests__/Textarea.error-handling.test.ts +35 -0
  262. package/src/renderables/__tests__/Textarea.events.test.ts +738 -0
  263. package/src/renderables/__tests__/Textarea.highlights.test.ts +590 -0
  264. package/src/renderables/__tests__/Textarea.keybinding.test.ts +3149 -0
  265. package/src/renderables/__tests__/Textarea.paste.test.ts +357 -0
  266. package/src/renderables/__tests__/Textarea.rendering.test.ts +1864 -0
  267. package/src/renderables/__tests__/Textarea.scroll.test.ts +733 -0
  268. package/src/renderables/__tests__/Textarea.selection.test.ts +1590 -0
  269. package/src/renderables/__tests__/Textarea.stress.test.ts +670 -0
  270. package/src/renderables/__tests__/Textarea.undo-redo.test.ts +383 -0
  271. package/src/renderables/__tests__/Textarea.visual-lines.test.ts +310 -0
  272. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.code.test.ts.snap +221 -0
  273. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox-simple.test.ts.snap +89 -0
  274. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.scrollbox.test.ts.snap +457 -0
  275. package/src/renderables/__tests__/__snapshots__/LineNumberRenderable.test.ts.snap +158 -0
  276. package/src/renderables/__tests__/__snapshots__/Textarea.rendering.test.ts.snap +387 -0
  277. package/src/renderables/__tests__/markdown-parser.test.ts +217 -0
  278. package/src/renderables/__tests__/renderable-test-utils.ts +60 -0
  279. package/src/renderables/composition/README.md +8 -0
  280. package/src/renderables/composition/VRenderable.ts +32 -0
  281. package/src/renderables/composition/constructs.ts +127 -0
  282. package/src/renderables/composition/vnode.ts +289 -0
  283. package/src/renderables/index.ts +22 -0
  284. package/src/renderables/markdown-parser.ts +66 -0
  285. package/src/renderer.ts +2363 -0
  286. package/src/runtime-plugin-support.ts +39 -0
  287. package/src/runtime-plugin.ts +144 -0
  288. package/src/syntax-style.test.ts +841 -0
  289. package/src/syntax-style.ts +264 -0
  290. package/src/testing/README.md +210 -0
  291. package/src/testing/capture-spans.test.ts +194 -0
  292. package/src/testing/integration.test.ts +276 -0
  293. package/src/testing/manual-clock.ts +106 -0
  294. package/src/testing/mock-keys.test.ts +1356 -0
  295. package/src/testing/mock-keys.ts +449 -0
  296. package/src/testing/mock-mouse.test.ts +218 -0
  297. package/src/testing/mock-mouse.ts +247 -0
  298. package/src/testing/mock-tree-sitter-client.ts +73 -0
  299. package/src/testing/spy.ts +13 -0
  300. package/src/testing/test-recorder.test.ts +415 -0
  301. package/src/testing/test-recorder.ts +145 -0
  302. package/src/testing/test-renderer.ts +116 -0
  303. package/src/testing.ts +7 -0
  304. package/src/tests/__snapshots__/absolute-positioning.snapshot.test.ts.snap +481 -0
  305. package/src/tests/__snapshots__/renderable.snapshot.test.ts.snap +19 -0
  306. package/src/tests/__snapshots__/scrollbox.test.ts.snap +29 -0
  307. package/src/tests/absolute-positioning.snapshot.test.ts +638 -0
  308. package/src/tests/allocator-stats.test.ts +38 -0
  309. package/src/tests/destroy-during-render.test.ts +200 -0
  310. package/src/tests/hover-cursor.test.ts +98 -0
  311. package/src/tests/native-span-feed-async.test.ts +173 -0
  312. package/src/tests/native-span-feed-close.test.ts +120 -0
  313. package/src/tests/native-span-feed-coverage.test.ts +227 -0
  314. package/src/tests/native-span-feed-edge-cases.test.ts +352 -0
  315. package/src/tests/native-span-feed-use-after-free.test.ts +45 -0
  316. package/src/tests/opacity.test.ts +123 -0
  317. package/src/tests/renderable.snapshot.test.ts +524 -0
  318. package/src/tests/renderable.test.ts +1281 -0
  319. package/src/tests/renderer.console-startup.test.ts +65 -0
  320. package/src/tests/renderer.control.test.ts +364 -0
  321. package/src/tests/renderer.core-slot-binding.test.ts +952 -0
  322. package/src/tests/renderer.cursor.test.ts +26 -0
  323. package/src/tests/renderer.destroy-during-render.test.ts +110 -0
  324. package/src/tests/renderer.focus-restore.test.ts +228 -0
  325. package/src/tests/renderer.focus.test.ts +251 -0
  326. package/src/tests/renderer.idle.test.ts +219 -0
  327. package/src/tests/renderer.input.test.ts +2145 -0
  328. package/src/tests/renderer.kitty-flags.test.ts +195 -0
  329. package/src/tests/renderer.mouse.test.ts +1269 -0
  330. package/src/tests/renderer.palette.test.ts +629 -0
  331. package/src/tests/renderer.selection.test.ts +49 -0
  332. package/src/tests/renderer.slot-registry.test.ts +649 -0
  333. package/src/tests/renderer.useMouse.test.ts +50 -0
  334. package/src/tests/runtime-plugin-support.fixture.ts +11 -0
  335. package/src/tests/runtime-plugin-support.test.ts +28 -0
  336. package/src/tests/runtime-plugin.fixture.ts +40 -0
  337. package/src/tests/runtime-plugin.test.ts +190 -0
  338. package/src/tests/scrollbox-culling-bug.test.ts +114 -0
  339. package/src/tests/scrollbox-hitgrid-resize.test.ts +136 -0
  340. package/src/tests/scrollbox-hitgrid.test.ts +909 -0
  341. package/src/tests/scrollbox.test.ts +1530 -0
  342. package/src/tests/wrap-resize-perf.test.ts +229 -0
  343. package/src/tests/yoga-setters.test.ts +921 -0
  344. package/src/text-buffer-view.test.ts +705 -0
  345. package/src/text-buffer-view.ts +189 -0
  346. package/src/text-buffer.test.ts +347 -0
  347. package/src/text-buffer.ts +250 -0
  348. package/src/types.ts +152 -0
  349. package/src/utils.ts +88 -0
  350. package/src/zig/ansi.zig +268 -0
  351. package/src/zig/bench/README.md +50 -0
  352. package/src/zig/bench/buffer-draw-text-buffer_bench.zig +887 -0
  353. package/src/zig/bench/edit-buffer_bench.zig +476 -0
  354. package/src/zig/bench/native-span-feed_bench.zig +100 -0
  355. package/src/zig/bench/rope-markers_bench.zig +713 -0
  356. package/src/zig/bench/rope_bench.zig +514 -0
  357. package/src/zig/bench/styled-text_bench.zig +470 -0
  358. package/src/zig/bench/text-buffer-coords_bench.zig +362 -0
  359. package/src/zig/bench/text-buffer-view_bench.zig +459 -0
  360. package/src/zig/bench/text-chunk-graphemes_bench.zig +273 -0
  361. package/src/zig/bench/utf8_bench.zig +799 -0
  362. package/src/zig/bench-utils.zig +431 -0
  363. package/src/zig/bench.zig +217 -0
  364. package/src/zig/buffer.zig +2223 -0
  365. package/src/zig/build.zig +289 -0
  366. package/src/zig/build.zig.zon +16 -0
  367. package/src/zig/edit-buffer.zig +825 -0
  368. package/src/zig/editor-view.zig +802 -0
  369. package/src/zig/event-bus.zig +13 -0
  370. package/src/zig/event-emitter.zig +65 -0
  371. package/src/zig/file-logger.zig +92 -0
  372. package/src/zig/grapheme.zig +599 -0
  373. package/src/zig/lib.zig +1834 -0
  374. package/src/zig/link.zig +333 -0
  375. package/src/zig/logger.zig +43 -0
  376. package/src/zig/mem-registry.zig +125 -0
  377. package/src/zig/native-span-feed-bench-lib.zig +7 -0
  378. package/src/zig/native-span-feed.zig +708 -0
  379. package/src/zig/renderer.zig +1386 -0
  380. package/src/zig/rope.zig +1220 -0
  381. package/src/zig/syntax-style.zig +161 -0
  382. package/src/zig/terminal.zig +975 -0
  383. package/src/zig/test.zig +70 -0
  384. package/src/zig/tests/README.md +18 -0
  385. package/src/zig/tests/buffer_test.zig +2526 -0
  386. package/src/zig/tests/edit-buffer-history_test.zig +271 -0
  387. package/src/zig/tests/edit-buffer_test.zig +1689 -0
  388. package/src/zig/tests/editor-view_test.zig +3299 -0
  389. package/src/zig/tests/event-emitter_test.zig +249 -0
  390. package/src/zig/tests/grapheme_test.zig +1304 -0
  391. package/src/zig/tests/link_test.zig +190 -0
  392. package/src/zig/tests/mem-registry_test.zig +473 -0
  393. package/src/zig/tests/memory_leak_regression_test.zig +159 -0
  394. package/src/zig/tests/native-span-feed_test.zig +1264 -0
  395. package/src/zig/tests/renderer_test.zig +1010 -0
  396. package/src/zig/tests/rope-nested_test.zig +712 -0
  397. package/src/zig/tests/rope_fuzz_test.zig +238 -0
  398. package/src/zig/tests/rope_test.zig +2362 -0
  399. package/src/zig/tests/segment-merge.test.zig +148 -0
  400. package/src/zig/tests/syntax-style_test.zig +557 -0
  401. package/src/zig/tests/terminal_test.zig +719 -0
  402. package/src/zig/tests/text-buffer-drawing_test.zig +3237 -0
  403. package/src/zig/tests/text-buffer-highlights_test.zig +666 -0
  404. package/src/zig/tests/text-buffer-iterators_test.zig +776 -0
  405. package/src/zig/tests/text-buffer-segment_test.zig +320 -0
  406. package/src/zig/tests/text-buffer-selection_test.zig +1035 -0
  407. package/src/zig/tests/text-buffer-selection_viewport_test.zig +358 -0
  408. package/src/zig/tests/text-buffer-view_test.zig +3649 -0
  409. package/src/zig/tests/text-buffer_test.zig +2191 -0
  410. package/src/zig/tests/unicode-width-map.zon +3909 -0
  411. package/src/zig/tests/utf8_no_zwj_test.zig +260 -0
  412. package/src/zig/tests/utf8_test.zig +4057 -0
  413. package/src/zig/tests/utf8_wcwidth_cursor_test.zig +267 -0
  414. package/src/zig/tests/utf8_wcwidth_test.zig +357 -0
  415. package/src/zig/tests/word-wrap-editing_test.zig +498 -0
  416. package/src/zig/tests/wrap-cache-perf_test.zig +113 -0
  417. package/src/zig/text-buffer-iterators.zig +499 -0
  418. package/src/zig/text-buffer-segment.zig +404 -0
  419. package/src/zig/text-buffer-view.zig +1371 -0
  420. package/src/zig/text-buffer.zig +1180 -0
  421. package/src/zig/utf8.zig +1948 -0
  422. package/src/zig/utils.zig +9 -0
  423. package/src/zig-structs.ts +261 -0
  424. package/src/zig.ts +3843 -0
  425. package/tsconfig.build.json +22 -0
  426. package/tsconfig.json +28 -0
  427. package/3d/SpriteResourceManager.d.ts +0 -74
  428. package/3d/SpriteUtils.d.ts +0 -13
  429. package/3d/TextureUtils.d.ts +0 -24
  430. package/3d/ThreeRenderable.d.ts +0 -40
  431. package/3d/WGPURenderer.d.ts +0 -61
  432. package/3d/animation/ExplodingSpriteEffect.d.ts +0 -71
  433. package/3d/animation/PhysicsExplodingSpriteEffect.d.ts +0 -76
  434. package/3d/animation/SpriteAnimator.d.ts +0 -124
  435. package/3d/animation/SpriteParticleGenerator.d.ts +0 -62
  436. package/3d/canvas.d.ts +0 -44
  437. package/3d/index.d.ts +0 -12
  438. package/3d/physics/PlanckPhysicsAdapter.d.ts +0 -19
  439. package/3d/physics/RapierPhysicsAdapter.d.ts +0 -19
  440. package/3d/physics/physics-interface.d.ts +0 -27
  441. package/3d.d.ts +0 -2
  442. package/3d.js +0 -34042
  443. package/3d.js.map +0 -155
  444. package/LICENSE +0 -21
  445. package/NativeSpanFeed.d.ts +0 -41
  446. package/Renderable.d.ts +0 -334
  447. package/animation/Timeline.d.ts +0 -126
  448. package/ansi.d.ts +0 -13
  449. package/buffer.d.ts +0 -107
  450. package/console.d.ts +0 -143
  451. package/edit-buffer.d.ts +0 -98
  452. package/editor-view.d.ts +0 -73
  453. package/index-e4hzc2j2.js +0 -113
  454. package/index-e4hzc2j2.js.map +0 -10
  455. package/index-nkrr8a4c.js +0 -18415
  456. package/index-nkrr8a4c.js.map +0 -64
  457. package/index-nyw5p3ep.js +0 -12619
  458. package/index-nyw5p3ep.js.map +0 -43
  459. package/index.d.ts +0 -21
  460. package/index.js +0 -430
  461. package/index.js.map +0 -9
  462. package/lib/KeyHandler.d.ts +0 -61
  463. package/lib/RGBA.d.ts +0 -25
  464. package/lib/ascii.font.d.ts +0 -508
  465. package/lib/border.d.ts +0 -49
  466. package/lib/bunfs.d.ts +0 -7
  467. package/lib/clipboard.d.ts +0 -17
  468. package/lib/clock.d.ts +0 -15
  469. package/lib/data-paths.d.ts +0 -26
  470. package/lib/debounce.d.ts +0 -42
  471. package/lib/detect-links.d.ts +0 -6
  472. package/lib/env.d.ts +0 -42
  473. package/lib/extmarks-history.d.ts +0 -17
  474. package/lib/extmarks.d.ts +0 -89
  475. package/lib/hast-styled-text.d.ts +0 -17
  476. package/lib/index.d.ts +0 -21
  477. package/lib/keymapping.d.ts +0 -25
  478. package/lib/objects-in-viewport.d.ts +0 -24
  479. package/lib/output.capture.d.ts +0 -24
  480. package/lib/parse.keypress-kitty.d.ts +0 -2
  481. package/lib/parse.keypress.d.ts +0 -26
  482. package/lib/parse.mouse.d.ts +0 -30
  483. package/lib/paste.d.ts +0 -7
  484. package/lib/queue.d.ts +0 -15
  485. package/lib/renderable.validations.d.ts +0 -12
  486. package/lib/scroll-acceleration.d.ts +0 -43
  487. package/lib/selection.d.ts +0 -63
  488. package/lib/singleton.d.ts +0 -7
  489. package/lib/stdin-parser.d.ts +0 -76
  490. package/lib/styled-text.d.ts +0 -63
  491. package/lib/terminal-capability-detection.d.ts +0 -30
  492. package/lib/terminal-palette.d.ts +0 -50
  493. package/lib/tree-sitter/assets/update.d.ts +0 -11
  494. package/lib/tree-sitter/client.d.ts +0 -47
  495. package/lib/tree-sitter/default-parsers.d.ts +0 -2
  496. package/lib/tree-sitter/download-utils.d.ts +0 -21
  497. package/lib/tree-sitter/index.d.ts +0 -8
  498. package/lib/tree-sitter/parser.worker.d.ts +0 -1
  499. package/lib/tree-sitter/parsers-config.d.ts +0 -38
  500. package/lib/tree-sitter/resolve-ft.d.ts +0 -2
  501. package/lib/tree-sitter/types.d.ts +0 -81
  502. package/lib/tree-sitter-styled-text.d.ts +0 -14
  503. package/lib/validate-dir-name.d.ts +0 -1
  504. package/lib/yoga.options.d.ts +0 -32
  505. package/parser.worker.js +0 -869
  506. package/parser.worker.js.map +0 -12
  507. package/plugins/core-slot.d.ts +0 -72
  508. package/plugins/registry.d.ts +0 -38
  509. package/plugins/types.d.ts +0 -34
  510. package/post/filters.d.ts +0 -105
  511. package/renderables/ASCIIFont.d.ts +0 -52
  512. package/renderables/Box.d.ts +0 -72
  513. package/renderables/Code.d.ts +0 -78
  514. package/renderables/Diff.d.ts +0 -142
  515. package/renderables/EditBufferRenderable.d.ts +0 -162
  516. package/renderables/FrameBuffer.d.ts +0 -16
  517. package/renderables/Input.d.ts +0 -67
  518. package/renderables/LineNumberRenderable.d.ts +0 -74
  519. package/renderables/Markdown.d.ts +0 -173
  520. package/renderables/ScrollBar.d.ts +0 -77
  521. package/renderables/ScrollBox.d.ts +0 -124
  522. package/renderables/Select.d.ts +0 -115
  523. package/renderables/Slider.d.ts +0 -44
  524. package/renderables/TabSelect.d.ts +0 -96
  525. package/renderables/Text.d.ts +0 -36
  526. package/renderables/TextBufferRenderable.d.ts +0 -105
  527. package/renderables/TextNode.d.ts +0 -91
  528. package/renderables/TextTable.d.ts +0 -140
  529. package/renderables/Textarea.d.ts +0 -114
  530. package/renderables/TimeToFirstDraw.d.ts +0 -24
  531. package/renderables/__tests__/renderable-test-utils.d.ts +0 -12
  532. package/renderables/composition/VRenderable.d.ts +0 -16
  533. package/renderables/composition/constructs.d.ts +0 -35
  534. package/renderables/composition/vnode.d.ts +0 -46
  535. package/renderables/index.d.ts +0 -22
  536. package/renderables/markdown-parser.d.ts +0 -10
  537. package/renderer.d.ts +0 -388
  538. package/runtime-plugin-support.d.ts +0 -3
  539. package/runtime-plugin-support.js +0 -29
  540. package/runtime-plugin-support.js.map +0 -10
  541. package/runtime-plugin.d.ts +0 -11
  542. package/runtime-plugin.js +0 -16
  543. package/runtime-plugin.js.map +0 -9
  544. package/syntax-style.d.ts +0 -54
  545. package/testing/manual-clock.d.ts +0 -16
  546. package/testing/mock-keys.d.ts +0 -81
  547. package/testing/mock-mouse.d.ts +0 -38
  548. package/testing/mock-tree-sitter-client.d.ts +0 -23
  549. package/testing/spy.d.ts +0 -7
  550. package/testing/test-recorder.d.ts +0 -61
  551. package/testing/test-renderer.d.ts +0 -23
  552. package/testing.d.ts +0 -6
  553. package/testing.js +0 -675
  554. package/testing.js.map +0 -15
  555. package/text-buffer-view.d.ts +0 -42
  556. package/text-buffer.d.ts +0 -67
  557. package/types.d.ts +0 -131
  558. package/utils.d.ts +0 -14
  559. package/zig-structs.d.ts +0 -155
  560. package/zig.d.ts +0 -351
  561. /package/{assets → src/lib/tree-sitter/assets}/javascript/highlights.scm +0 -0
  562. /package/{assets → src/lib/tree-sitter/assets}/javascript/tree-sitter-javascript.wasm +0 -0
  563. /package/{assets → src/lib/tree-sitter/assets}/markdown/highlights.scm +0 -0
  564. /package/{assets → src/lib/tree-sitter/assets}/markdown/injections.scm +0 -0
  565. /package/{assets → src/lib/tree-sitter/assets}/markdown/tree-sitter-markdown.wasm +0 -0
  566. /package/{assets → src/lib/tree-sitter/assets}/markdown_inline/highlights.scm +0 -0
  567. /package/{assets → src/lib/tree-sitter/assets}/markdown_inline/tree-sitter-markdown_inline.wasm +0 -0
  568. /package/{assets → src/lib/tree-sitter/assets}/typescript/highlights.scm +0 -0
  569. /package/{assets → src/lib/tree-sitter/assets}/typescript/tree-sitter-typescript.wasm +0 -0
  570. /package/{assets → src/lib/tree-sitter/assets}/zig/highlights.scm +0 -0
  571. /package/{assets → src/lib/tree-sitter/assets}/zig/tree-sitter-zig.wasm +0 -0
@@ -0,0 +1,457 @@
1
+ // Bun Snapshot v1, https://bun.sh/docs/test/snapshots
2
+
3
+ exports[`LineNumberRenderable in ScrollBox single Code renderable with line numbers in ScrollBox - correct dimensions 1`] = `
4
+ "┌────────────────────────────┐
5
+ │ 1 function test1() { │
6
+ │ 2 console.log("Line │
7
+ │ 1"); │
8
+ │ 3 return 1; │
9
+ │ 4 } │
10
+ │ 5 function test2() { │
11
+ │ 6 console.log("Line │
12
+ │ 2"); │
13
+ └────────────────────────────┘
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+ "
25
+ `;
26
+
27
+ exports[`LineNumberRenderable in ScrollBox single Code renderable in ScrollBox - scroll and verify dimensions 1`] = `
28
+ "┌──────────────────────────────────────┐
29
+ │ 1 function test1() { │
30
+ │ 2 console.log("Line 1"); │
31
+ │ 3 return 1; │
32
+ │ 4 } │
33
+ │ 5 function test2() { │
34
+ │ 6 console.log("Line 2"); │
35
+ │ 7 return 2; │
36
+ │ 8 } │
37
+ │ 9 function test3() { │
38
+ │ 10 console.log("Line 3"); │
39
+ └──────────────────────────────────────┘
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+ "
49
+ `;
50
+
51
+ exports[`LineNumberRenderable in ScrollBox single Code renderable in ScrollBox - scroll and verify dimensions 2`] = `
52
+ "┌──────────────────────────────────────┐
53
+ │ 1 function test1() { │
54
+ │ 2 console.log("Line 1"); │
55
+ │ 3 return 1; │
56
+ │ 4 } │
57
+ │ 5 function test2() { │
58
+ │ 6 console.log("Line 2"); │
59
+ │ 7 return 2; │
60
+ │ 8 } │
61
+ │ 9 function test3() { │
62
+ │ 10 console.log("Line 3"); │
63
+ └──────────────────────────────────────┘
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+ "
73
+ `;
74
+
75
+ exports[`LineNumberRenderable in ScrollBox single Code renderable in ScrollBox - scroll and verify dimensions 3`] = `
76
+ "┌──────────────────────────────────────┐
77
+ │ 1 function test1() { │
78
+ │ 2 console.log("Line 1"); │
79
+ │ 3 return 1; │
80
+ │ 4 } │
81
+ │ 5 function test2() { │
82
+ │ 6 console.log("Line 2"); │
83
+ │ 7 return 2; │
84
+ │ 8 } │
85
+ │ 9 function test3() { │
86
+ │ 10 console.log("Line 3"); │
87
+ └──────────────────────────────────────┘
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+ "
97
+ `;
98
+
99
+ exports[`LineNumberRenderable in ScrollBox multiple Code renderables with line numbers in ScrollBox - correct dimensions 1`] = `
100
+ "┌────────────────────────────────────────────────┐ █
101
+ │ 1 function test1() { │ █
102
+ │ 2 console.log("Line 1"); │ █
103
+ │ 3 return 1; │ █
104
+ │ 4 } │ █
105
+ │ 5 function test2() { │ █
106
+ │ 6 console.log("Line 2"); │ █
107
+ └────────────────────────────────────────────────┘ █
108
+
109
+
110
+ ┌────────────────────────────────────────────────┐
111
+ │ 1 function test1() { │
112
+ │ 2 console.log("Line 1"); │
113
+ │ 3 return 1; │
114
+ │ 4 } │
115
+ │ 5 function test2() { │
116
+ │ 6 console.log("Line 2"); │
117
+ └────────────────────────────────────────────────┘
118
+
119
+
120
+ "
121
+ `;
122
+
123
+ exports[`LineNumberRenderable in ScrollBox multiple Code renderables with line numbers in ScrollBox - correct dimensions 2`] = `
124
+ "│ 5 function test2() { │
125
+ │ 6 console.log("Line 2"); │
126
+ └────────────────────────────────────────────────┘
127
+
128
+
129
+ ┌────────────────────────────────────────────────┐ █
130
+ │ 1 function test1() { │ █
131
+ │ 2 console.log("Line 1"); │ █
132
+ │ 3 return 1; │ █
133
+ │ 4 } │ █
134
+ │ 5 function test2() { │ █
135
+ │ 6 console.log("Line 2"); │ █
136
+ └────────────────────────────────────────────────┘ █
137
+
138
+
139
+ ┌────────────────────────────────────────────────┐
140
+ │ 1 function test1() { │
141
+ │ 2 console.log("Line 1"); │
142
+ │ 3 return 1; │
143
+ │ 4 } │
144
+ "
145
+ `;
146
+
147
+ exports[`LineNumberRenderable in ScrollBox nested boxes with different border styles - dimensions correct 1`] = `
148
+ "╔═════════════════════════════════════════════════════╗
149
+ ║ ║
150
+ ║ ║
151
+ ║ ╭───────────────────────────────────────────╮ ║
152
+ ║ │ │ ║
153
+ ║ │ 1 function test1() { │ ║
154
+ ║ │ 2 console.log("Line 1"); │ ║
155
+ ║ │ 3 return 1; │ ║
156
+ ║ │ 4 } │ ║
157
+ ║ │ 5 function test2() { │ ║
158
+ ║ │ 6 console.log("Line 2"); │ ║
159
+ ║ │ 7 return 2; │ ║
160
+ ║ │ 8 } │ ║
161
+ ║ │ 9 function test3() { │ ║
162
+ ║ │ 10 console.log("Line 3"); │ ║
163
+ ║ │ 11 return 3; │ ║
164
+ ║ │ │ ║
165
+ ║ ╰───────────────────────────────────────────╯ ║
166
+ ╚═════════════════════════════════════════════════════╝
167
+
168
+ "
169
+ `;
170
+
171
+ exports[`LineNumberRenderable in ScrollBox nested boxes with different border styles - dimensions correct 2`] = `
172
+ "╔═════════════════════════════════════════════════════╗
173
+ ║ ║
174
+ ║ ║
175
+ ║ ╭───────────────────────────────────────────╮ ║
176
+ ║ │ │ ║
177
+ ║ │ 1 function test1() { │ ║
178
+ ║ │ 2 console.log("Line 1"); │ ║
179
+ ║ │ 3 return 1; │ ║
180
+ ║ │ 4 } │ ║
181
+ ║ │ 5 function test2() { │ ║
182
+ ║ │ 6 console.log("Line 2"); │ ║
183
+ ║ │ 7 return 2; │ ║
184
+ ║ │ 8 } │ ║
185
+ ║ │ 9 function test3() { │ ║
186
+ ║ │ 10 console.log("Line 3"); │ ║
187
+ ║ │ 11 return 3; │ ║
188
+ ║ │ │ ║
189
+ ║ ╰───────────────────────────────────────────╯ ║
190
+ ╚═════════════════════════════════════════════════════╝
191
+
192
+ "
193
+ `;
194
+
195
+ exports[`LineNumberRenderable in ScrollBox ScrollBox with horizontal and vertical scrolling - dimensions stable 1`] = `
196
+ "┌────────────────────────────────────────────────┐
197
+ │ 1 const veryLongVariableName1 = "This is a │
198
+ │ very long line that should require │
199
+ │ horizontal scrolling to view completely"; │
200
+ │ 2 const veryLongVariableName2 = "This is a │
201
+ │ very long line that should require │
202
+ │ horizontal scrolling to view completely"; │
203
+ │ 3 const veryLongVariableName3 = "This is a │
204
+ │ very long line that should require │
205
+ │ horizontal scrolling to view completely"; │
206
+ │ 4 const veryLongVariableName4 = "This is a │
207
+ │ very long line that should require │
208
+ │ horizontal scrolling to view completely"; │
209
+ │ 5 const veryLongVariableName5 = "This is a │
210
+ └────────────────────────────────────────────────┘
211
+
212
+
213
+
214
+
215
+
216
+ "
217
+ `;
218
+
219
+ exports[`LineNumberRenderable in ScrollBox ScrollBox with horizontal and vertical scrolling - dimensions stable 2`] = `
220
+ "┌────────────────────────────────────────────────┐
221
+ │ 1 const veryLongVariableName1 = "This is a │
222
+ │ very long line that should require │
223
+ │ horizontal scrolling to view completely"; │
224
+ │ 2 const veryLongVariableName2 = "This is a │
225
+ │ very long line that should require │
226
+ │ horizontal scrolling to view completely"; │
227
+ │ 3 const veryLongVariableName3 = "This is a │
228
+ │ very long line that should require │
229
+ │ horizontal scrolling to view completely"; │
230
+ │ 4 const veryLongVariableName4 = "This is a │
231
+ │ very long line that should require │
232
+ │ horizontal scrolling to view completely"; │
233
+ │ 5 const veryLongVariableName5 = "This is a │
234
+ └────────────────────────────────────────────────┘
235
+
236
+
237
+
238
+
239
+
240
+ "
241
+ `;
242
+
243
+ exports[`LineNumberRenderable in ScrollBox ScrollBox with horizontal and vertical scrolling - dimensions stable 3`] = `
244
+ "┌────────────────────────────────────────────────┐
245
+ │ 1 const veryLongVariableName1 = "This is a │
246
+ │ very long line that should require │
247
+ │ horizontal scrolling to view completely"; │
248
+ │ 2 const veryLongVariableName2 = "This is a │
249
+ │ very long line that should require │
250
+ │ horizontal scrolling to view completely"; │
251
+ │ 3 const veryLongVariableName3 = "This is a │
252
+ │ very long line that should require │
253
+ │ horizontal scrolling to view completely"; │
254
+ │ 4 const veryLongVariableName4 = "This is a │
255
+ │ very long line that should require │
256
+ │ horizontal scrolling to view completely"; │
257
+ │ 5 const veryLongVariableName5 = "This is a │
258
+ └────────────────────────────────────────────────┘
259
+
260
+
261
+
262
+
263
+
264
+ "
265
+ `;
266
+
267
+ exports[`LineNumberRenderable in ScrollBox ScrollBox with horizontal and vertical scrolling - dimensions stable 4`] = `
268
+ "┌────────────────────────────────────────────────┐
269
+ │ 1 const veryLongVariableName1 = "This is a │
270
+ │ very long line that should require │
271
+ │ horizontal scrolling to view completely"; │
272
+ │ 2 const veryLongVariableName2 = "This is a │
273
+ │ very long line that should require │
274
+ │ horizontal scrolling to view completely"; │
275
+ │ 3 const veryLongVariableName3 = "This is a │
276
+ │ very long line that should require │
277
+ │ horizontal scrolling to view completely"; │
278
+ │ 4 const veryLongVariableName4 = "This is a │
279
+ │ very long line that should require │
280
+ │ horizontal scrolling to view completely"; │
281
+ │ 5 const veryLongVariableName5 = "This is a │
282
+ └────────────────────────────────────────────────┘
283
+
284
+
285
+
286
+
287
+
288
+ "
289
+ `;
290
+
291
+ exports[`LineNumberRenderable in ScrollBox gutter width changes with line count - verify remeasure 1`] = `
292
+ "┌──────────────────────────────────────┐
293
+ │ 1 function test1() { │
294
+ │ 2 console.log("Line 1"); │
295
+ │ 3 return 1; │
296
+ │ 4 } │
297
+ │ 5 function test2() { │
298
+ │ 6 console.log("Line 2"); │
299
+ │ 7 return 2; │
300
+ │ 8 } │
301
+ │ │
302
+ │ │
303
+ └──────────────────────────────────────┘
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+ "
313
+ `;
314
+
315
+ exports[`LineNumberRenderable in ScrollBox gutter width changes with line count - verify remeasure 2`] = `
316
+ "┌──────────────────────────────────────┐
317
+ │ 1 function test1() { │
318
+ │ 2 console.log("Line 1"); │
319
+ │ 3 return 1; │
320
+ │ 4 } │
321
+ │ 5 function test2() { │
322
+ │ 6 console.log("Line 2"); │
323
+ │ 7 return 2; │
324
+ │ 8 } │
325
+ │ 9 function test3() { │
326
+ │ 10 console.log("Line 3"); │
327
+ └──────────────────────────────────────┘
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+ "
337
+ `;
338
+
339
+ exports[`LineNumberRenderable in ScrollBox gutter width changes with line count - verify remeasure 3`] = `
340
+ "┌──────────────────────────────────────┐
341
+ │ 1 function test1() { │
342
+ │ 2 console.log("Line 1"); │
343
+ │ 3 return 1; │
344
+ │ 4 } │
345
+ │ 5 function test2() { │
346
+ │ 6 console.log("Line 2"); │
347
+ │ 7 return 2; │
348
+ │ 8 } │
349
+ │ 9 function test3() { │
350
+ │ 10 console.log("Line 3"); │
351
+ └──────────────────────────────────────┘
352
+
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+ "
361
+ `;
362
+
363
+ exports[`LineNumberRenderable in ScrollBox line colors span full width in ScrollBox 1`] = `
364
+ "┌────────────────────────────────────────────────┐
365
+ │ 1 function test1() { │
366
+ │ 2 console.log("Line 1"); │
367
+ │ 3 return 1; │
368
+ │ 4 } │
369
+ │ 5 function test2() { │
370
+ │ 6 console.log("Line 2"); │
371
+ │ 7 return 2; │
372
+ │ 8 } │
373
+ │ 9 function test3() { │
374
+ │ 10 console.log("Line 3"); │
375
+ └────────────────────────────────────────────────┘
376
+
377
+
378
+
379
+
380
+
381
+
382
+
383
+
384
+ "
385
+ `;
386
+
387
+ exports[`LineNumberRenderable in ScrollBox line colors span full width in ScrollBox 2`] = `
388
+ "┌────────────────────────────────────────────────┐
389
+ │ 1 function test1() { │
390
+ │ 2 console.log("Line 1"); │
391
+ │ 3 return 1; │
392
+ │ 4 } │
393
+ │ 5 function test2() { │
394
+ │ 6 console.log("Line 2"); │
395
+ │ 7 return 2; │
396
+ │ 8 } │
397
+ │ 9 function test3() { │
398
+ │ 10 console.log("Line 3"); │
399
+ └────────────────────────────────────────────────┘
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+ "
409
+ `;
410
+
411
+ exports[`LineNumberRenderable in ScrollBox viewport culling with line numbers - dimensions stable 1`] = `
412
+ "┌───────────────────────────────────────────┐ ▀
413
+ │ 1 function test1() { │
414
+ │ 2 console.log("Line 1"); │
415
+ │ 3 return 1; │
416
+ │ 4 } │
417
+ └───────────────────────────────────────────┘
418
+
419
+ ┌───────────────────────────────────────────┐
420
+ │ 1 function test1() { │
421
+ │ 2 console.log("Line 1"); │
422
+ │ 3 return 1; │
423
+ │ 4 } │
424
+ └───────────────────────────────────────────┘
425
+
426
+ ┌───────────────────────────────────────────┐
427
+ │ 1 function test1() { │
428
+ │ 2 console.log("Line 1"); │
429
+ │ 3 return 1; │
430
+ │ 4 } │
431
+ └───────────────────────────────────────────┘
432
+ "
433
+ `;
434
+
435
+ exports[`LineNumberRenderable in ScrollBox viewport culling with line numbers - dimensions stable 2`] = `
436
+ "│ 2 console.log("Line 1"); │
437
+ │ 3 return 1; │
438
+ │ 4 } │
439
+ └───────────────────────────────────────────┘
440
+
441
+ ┌───────────────────────────────────────────┐
442
+ │ 1 function test1() { │
443
+ │ 2 console.log("Line 1"); │
444
+ │ 3 return 1; │
445
+ │ 4 } │
446
+ └───────────────────────────────────────────┘
447
+
448
+ ┌───────────────────────────────────────────┐
449
+ │ 1 function test1() { │
450
+ │ 2 console.log("Line 1"); │
451
+ │ 3 return 1; │
452
+ │ 4 } │ ▄
453
+ └───────────────────────────────────────────┘
454
+
455
+ ┌───────────────────────────────────────────┐
456
+ "
457
+ `;
@@ -0,0 +1,158 @@
1
+ // Bun Snapshot v1, https://bun.sh/docs/test/snapshots
2
+
3
+ exports[`LineNumberRenderable renders line numbers correctly 1`] = `
4
+ " 1 Line 1
5
+ 2 Line 2
6
+ 3 Line 3
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+ "
15
+ `;
16
+
17
+ exports[`LineNumberRenderable renders line numbers for wrapping text 1`] = `
18
+ " 1 Line 1 is very l
19
+ ong and should w
20
+ rap around multi
21
+ ple lines
22
+
23
+
24
+
25
+
26
+
27
+
28
+ "
29
+ `;
30
+
31
+ exports[`LineNumberRenderable renders line numbers with offset 1`] = `
32
+ " 42 Line 1
33
+ 43 Line 2
34
+ 44 Line 3
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+ "
43
+ `;
44
+
45
+ exports[`LineNumberRenderable hides line numbers for specific lines 1`] = `
46
+ " 1 Line 1
47
+ Line 2
48
+ 3 Line 3
49
+ Line 4
50
+ 5 Line 5
51
+
52
+
53
+
54
+
55
+
56
+ "
57
+ `;
58
+
59
+ exports[`LineNumberRenderable combines line number offset with hidden line numbers 1`] = `
60
+ " 42 Line 1
61
+ Line 2
62
+ 44 Line 3
63
+ Line 4
64
+ 46 Line 5
65
+
66
+
67
+
68
+
69
+
70
+ "
71
+ `;
72
+
73
+ exports[`LineNumberRenderable maintains consistent left padding for all line numbers 1`] = `
74
+ " 1 Line 1
75
+ 2 Line 2
76
+ 3 Line 3
77
+ 4 Line 4
78
+ 5 Line 5
79
+ 6 Line 6
80
+ 7 Line 7
81
+ 8 Line 8
82
+ 9 Line 9
83
+ 10 Line 10
84
+ 11 Line 11
85
+ 12 Line 12
86
+
87
+
88
+
89
+ "
90
+ `;
91
+
92
+ exports[`LineNumberRenderable maintains stable visual line count when scrolling and typing with word wrap 1`] = `
93
+ "
94
+ ┌───────────────────────────────┐
95
+ │ Ctrl+Y to redo │
96
+ │ 36 │
97
+ │ 37 VIEW: │
98
+ │ 38 • Shift+W to toggle │
99
+ │ wrap mode (word/char/ │
100
+ │ none) │
101
+ │ 39 • Shift+L to toggle │
102
+ │ line numbers │
103
+ │ 40 │
104
+ │ 41 FEATURES: │
105
+ │ 42 ✓ Grapheme-aware │
106
+ │ cursor movement │
107
+ │ 43 ✓ Unicode (emoji 🌟 │
108
+ │ and CJK 世界, 你好世界, │
109
+ │ 中文, 한글) │
110
+ │ 44 ✓ Incremental editing │
111
+ │ 45 ✓ Text wrapping and │
112
+ │ viewport management │
113
+ │ 46 ✓ Undo/redo support │
114
+ │ 47 ✓ Word-based │
115
+ │ navigation and deletion │
116
+ │ 48 ✓ Text selection with │
117
+ │ shift keys │
118
+ │ 49 │
119
+ │ 50 Press ESC to return to │
120
+ │ main menu │
121
+ └───────────────────────────────┘
122
+
123
+ "
124
+ `;
125
+
126
+ exports[`LineNumberRenderable maintains stable visual line count when scrolling and typing with word wrap 2`] = `
127
+ "
128
+ ┌───────────────────────────────┐
129
+ │ Ctrl+Y to redo │
130
+ │ 36 │
131
+ │ 37 VIEW: │
132
+ │ 38 • Shift+W to toggle │
133
+ │ wrap mode (word/char/ │
134
+ │ none) │
135
+ │ 39 • Shift+L to toggle │
136
+ │ line numbers │
137
+ │ 40 │
138
+ │ 41 FEATURES: │
139
+ │ 42 ✓ Grapheme-aware │
140
+ │ cursor movement │
141
+ │ 43 ✓ Unicode (emoji 🌟 │
142
+ │ and CJK 世界, 你好世界, │
143
+ │ 中文, 한글) │
144
+ │ 44 ✓ Incremental editing │
145
+ │ 45 ✓ Text wrapping and │
146
+ │ viewport management │
147
+ │ 46 ✓ Undo/redo support │
148
+ │ 47 ✓ Word-based │
149
+ │ navigation and deletion │
150
+ │ 48 ✓ Text selection with │
151
+ │ shift keys │
152
+ │ 49 a │
153
+ │ 50 Press ESC to return to │
154
+ │ main menu │
155
+ └───────────────────────────────┘
156
+
157
+ "
158
+ `;