@visulima/tui 1.0.0-alpha.2 → 1.0.0-alpha.21

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 (658) hide show
  1. package/CHANGELOG.md +300 -0
  2. package/LICENSE.md +2490 -69
  3. package/README.md +38 -10
  4. package/dist/components/accordion.d.ts +59 -0
  5. package/dist/components/accordion.js +1 -0
  6. package/dist/components/alert.d.ts +26 -0
  7. package/dist/components/alert.js +1 -0
  8. package/dist/components/animate-presence.d.ts +18 -0
  9. package/dist/components/animate-presence.js +1 -0
  10. package/dist/components/approval-prompt.d.ts +65 -0
  11. package/dist/components/approval-prompt.js +1 -0
  12. package/dist/components/area-chart.d.ts +66 -0
  13. package/dist/components/area-chart.js +1 -0
  14. package/dist/components/badge.d.ts +22 -0
  15. package/dist/components/badge.js +1 -0
  16. package/dist/components/bar-chart.d.ts +67 -0
  17. package/dist/components/bar-chart.js +1 -0
  18. package/dist/components/big-text.d.ts +81 -0
  19. package/dist/components/big-text.js +1 -0
  20. package/dist/components/blink-dot.d.ts +36 -0
  21. package/dist/components/blink-dot.js +1 -0
  22. package/dist/components/box.d.ts +62 -0
  23. package/dist/components/box.js +1 -0
  24. package/dist/components/breadcrumb.d.ts +33 -0
  25. package/dist/components/breadcrumb.js +1 -0
  26. package/dist/components/button.d.ts +45 -0
  27. package/dist/components/button.js +1 -0
  28. package/dist/components/calendar.d.ts +72 -0
  29. package/dist/components/calendar.js +1 -0
  30. package/dist/components/canvas.d.ts +44 -0
  31. package/dist/components/canvas.js +1 -0
  32. package/dist/components/card.d.ts +57 -0
  33. package/dist/components/card.js +1 -0
  34. package/dist/components/checkbox.d.ts +48 -0
  35. package/dist/components/checkbox.js +1 -0
  36. package/dist/components/code.d.ts +48 -0
  37. package/dist/components/code.js +2 -0
  38. package/dist/components/collapsible.d.ts +53 -0
  39. package/dist/components/collapsible.js +1 -0
  40. package/dist/components/command-block.d.ts +47 -0
  41. package/dist/components/command-block.js +4 -0
  42. package/dist/components/command-palette.d.ts +82 -0
  43. package/dist/components/command-palette.js +1 -0
  44. package/dist/components/confirm-dialog.d.ts +75 -0
  45. package/dist/components/confirm-dialog.js +1 -0
  46. package/dist/components/confirm-input.d.ts +38 -0
  47. package/dist/components/confirm-input.js +1 -0
  48. package/dist/components/console-overlay.d.ts +54 -0
  49. package/dist/components/console-overlay.js +1 -0
  50. package/dist/components/content-switcher.d.ts +57 -0
  51. package/dist/components/content-switcher.js +1 -0
  52. package/dist/components/controlled-scroll-view.d.ts +61 -0
  53. package/dist/components/controlled-scroll-view.js +1 -0
  54. package/dist/components/cursor.d.ts +62 -0
  55. package/dist/components/cursor.js +1 -0
  56. package/dist/components/date-picker.d.ts +65 -0
  57. package/dist/components/date-picker.js +1 -0
  58. package/dist/components/definition-list.d.ts +44 -0
  59. package/dist/components/definition-list.js +1 -0
  60. package/dist/components/dialog.d.ts +117 -0
  61. package/dist/components/dialog.js +1 -0
  62. package/dist/components/diff-view.d.ts +85 -0
  63. package/dist/components/diff-view.js +1 -0
  64. package/dist/components/divider.d.ts +49 -0
  65. package/dist/components/divider.js +1 -0
  66. package/dist/components/file-picker-entry.d.ts +104 -0
  67. package/dist/components/file-picker-entry.js +1 -0
  68. package/dist/components/form.d.ts +81 -0
  69. package/dist/components/form.js +1 -0
  70. package/dist/components/gauge.d.ts +87 -0
  71. package/dist/components/gauge.js +1 -0
  72. package/dist/components/gradient.d.ts +42 -0
  73. package/dist/components/gradient.js +1 -0
  74. package/dist/components/heading.d.ts +33 -0
  75. package/dist/components/heading.js +1 -0
  76. package/dist/components/heatmap.d.ts +62 -0
  77. package/dist/components/heatmap.js +1 -0
  78. package/dist/components/help.d.ts +52 -0
  79. package/dist/components/help.js +1 -0
  80. package/dist/components/histogram.d.ts +62 -0
  81. package/dist/components/histogram.js +1 -0
  82. package/dist/components/kbd.d.ts +31 -0
  83. package/dist/components/kbd.js +1 -0
  84. package/dist/components/line-chart.d.ts +109 -0
  85. package/dist/components/line-chart.js +1 -0
  86. package/dist/components/link.d.ts +38 -0
  87. package/dist/components/link.js +1 -0
  88. package/dist/components/loading-indicator.d.ts +29 -0
  89. package/dist/components/loading-indicator.js +1 -0
  90. package/dist/components/markdown.d.ts +40 -0
  91. package/dist/components/markdown.js +1 -0
  92. package/dist/components/masked-input.d.ts +50 -0
  93. package/dist/components/masked-input.js +1 -0
  94. package/dist/components/menu.d.ts +78 -0
  95. package/dist/components/menu.js +1 -0
  96. package/dist/components/message-bubble.d.ts +43 -0
  97. package/dist/components/message-bubble.js +1 -0
  98. package/dist/components/model-badge.d.ts +39 -0
  99. package/dist/components/model-badge.js +1 -0
  100. package/dist/components/multi-select.d.ts +65 -0
  101. package/dist/components/multi-select.js +1 -0
  102. package/dist/components/newline.d.ts +15 -0
  103. package/dist/components/newline.js +2 -0
  104. package/dist/components/operation-tree.d.ts +49 -0
  105. package/dist/components/operation-tree.js +1 -0
  106. package/dist/components/option-list.d.ts +47 -0
  107. package/dist/components/option-list.js +1 -0
  108. package/dist/components/ordered-list.d.ts +24 -0
  109. package/dist/components/ordered-list.js +1 -0
  110. package/dist/components/paginator.d.ts +69 -0
  111. package/dist/components/paginator.js +1 -0
  112. package/dist/components/paragraph.d.ts +38 -0
  113. package/dist/components/paragraph.js +1 -0
  114. package/dist/components/placeholder.d.ts +55 -0
  115. package/dist/components/placeholder.js +1 -0
  116. package/dist/components/progress-bar.d.ts +56 -0
  117. package/dist/components/progress-bar.js +1 -0
  118. package/dist/components/radio-group.d.ts +74 -0
  119. package/dist/components/radio-group.js +1 -0
  120. package/dist/components/scatter-plot.d.ts +35 -0
  121. package/dist/components/scatter-plot.js +1 -0
  122. package/dist/components/scroll-bar-box.d.ts +37 -0
  123. package/dist/components/scroll-bar-box.js +1 -0
  124. package/dist/components/scroll-bar.d.ts +25 -0
  125. package/dist/components/scroll-bar.js +1 -0
  126. package/dist/components/scroll-list.d.ts +20 -0
  127. package/dist/components/scroll-list.js +1 -0
  128. package/dist/components/scroll-view.d.ts +10 -0
  129. package/dist/components/scroll-view.js +1 -0
  130. package/dist/components/search-input.d.ts +55 -0
  131. package/dist/components/search-input.js +1 -0
  132. package/dist/components/select-input-indicator.d.ts +32 -0
  133. package/dist/components/select-input-indicator.js +1 -0
  134. package/dist/components/select-input-item.d.ts +41 -0
  135. package/dist/components/select-input-item.js +1 -0
  136. package/dist/components/select-input.d.ts +110 -0
  137. package/dist/components/select-input.js +1 -0
  138. package/dist/components/shimmer-text.d.ts +47 -0
  139. package/dist/components/shimmer-text.js +1 -0
  140. package/dist/components/slider.d.ts +103 -0
  141. package/dist/components/slider.js +1 -0
  142. package/dist/components/spacer.d.ts +8 -0
  143. package/dist/components/spacer.js +1 -0
  144. package/dist/components/sparkline.d.ts +35 -0
  145. package/dist/components/sparkline.js +1 -0
  146. package/dist/components/spinner.d.ts +17 -0
  147. package/dist/components/spinner.js +1 -0
  148. package/dist/components/static-render.d.ts +55 -0
  149. package/dist/components/static-render.js +1 -0
  150. package/dist/components/static.d.ts +29 -0
  151. package/dist/components/static.js +1 -0
  152. package/dist/components/status-line.d.ts +37 -0
  153. package/dist/components/status-line.js +1 -0
  154. package/dist/components/status-message.d.ts +21 -0
  155. package/dist/components/status-message.js +1 -0
  156. package/dist/components/stepper.d.ts +48 -0
  157. package/dist/components/stepper.js +1 -0
  158. package/dist/components/stopwatch.d.ts +49 -0
  159. package/dist/components/stopwatch.js +1 -0
  160. package/dist/components/streaming-text.d.ts +46 -0
  161. package/dist/components/streaming-text.js +1 -0
  162. package/dist/components/switch.d.ts +55 -0
  163. package/dist/components/switch.js +1 -0
  164. package/dist/components/tab.d.ts +19 -0
  165. package/dist/components/tab.js +1 -0
  166. package/dist/components/table.d.ts +119 -0
  167. package/dist/components/table.js +1 -0
  168. package/dist/components/tabs.d.ts +107 -0
  169. package/dist/components/tabs.js +1 -0
  170. package/dist/components/tag.d.ts +35 -0
  171. package/dist/components/tag.js +1 -0
  172. package/dist/components/text-input.d.ts +48 -0
  173. package/dist/components/text-input.js +1 -0
  174. package/dist/components/text.d.ts +79 -0
  175. package/dist/components/text.js +1 -0
  176. package/dist/components/textarea.d.ts +68 -0
  177. package/dist/components/textarea.js +2 -0
  178. package/dist/components/timer.d.ts +59 -0
  179. package/dist/components/timer.js +1 -0
  180. package/dist/components/toast.d.ts +49 -0
  181. package/dist/components/toast.js +1 -0
  182. package/dist/components/tooltip.d.ts +43 -0
  183. package/dist/components/tooltip.js +1 -0
  184. package/dist/components/transform.d.ts +21 -0
  185. package/dist/components/transform.js +1 -0
  186. package/dist/components/transition.d.ts +74 -0
  187. package/dist/components/transition.js +1 -0
  188. package/dist/components/tree-view-entry.d.ts +357 -0
  189. package/dist/components/tree-view-entry.js +1 -0
  190. package/dist/components/unordered-list.d.ts +30 -0
  191. package/dist/components/unordered-list.js +1 -0
  192. package/dist/core/index.d.ts +58 -5
  193. package/dist/core/index.js +1 -5
  194. package/dist/ink/hooks/use-animation.d.ts +37 -39
  195. package/dist/ink/hooks/use-animation.js +1 -0
  196. package/dist/ink/hooks/use-app.d.ts +36 -4
  197. package/dist/ink/hooks/use-app.js +1 -0
  198. package/dist/ink/hooks/use-box-metrics.d.ts +58 -50
  199. package/dist/ink/hooks/use-box-metrics.js +1 -0
  200. package/dist/ink/hooks/use-clipboard.d.ts +26 -25
  201. package/dist/ink/hooks/use-clipboard.js +1 -0
  202. package/dist/ink/hooks/use-color-blindness.d.ts +29 -29
  203. package/dist/ink/hooks/use-color-blindness.js +1 -0
  204. package/dist/ink/hooks/use-console-capture.d.ts +38 -38
  205. package/dist/ink/hooks/use-console-capture.js +1 -0
  206. package/dist/ink/hooks/use-cursor.d.ts +10 -9
  207. package/dist/ink/hooks/use-cursor.js +1 -0
  208. package/dist/ink/hooks/use-focus-manager.d.ts +53 -38
  209. package/dist/ink/hooks/use-focus-manager.js +1 -0
  210. package/dist/ink/hooks/use-focus.d.ts +29 -25
  211. package/dist/ink/hooks/use-focus.js +1 -0
  212. package/dist/ink/hooks/use-form.d.ts +68 -0
  213. package/dist/ink/hooks/use-form.js +1 -0
  214. package/dist/ink/hooks/use-hotkey.d.ts +37 -0
  215. package/dist/ink/hooks/use-hotkey.js +1 -0
  216. package/dist/ink/hooks/use-input.d.ts +142 -142
  217. package/dist/ink/hooks/use-input.js +2 -0
  218. package/dist/ink/hooks/use-interval.d.ts +25 -0
  219. package/dist/ink/hooks/use-interval.js +1 -0
  220. package/dist/ink/hooks/use-is-screen-reader-enabled.d.ts +4 -4
  221. package/dist/ink/hooks/use-is-screen-reader-enabled.js +1 -0
  222. package/dist/ink/hooks/use-key-bindings.d.ts +50 -52
  223. package/dist/ink/hooks/use-key-bindings.js +1 -0
  224. package/dist/ink/hooks/use-key-chord.d.ts +25 -0
  225. package/dist/ink/hooks/use-key-chord.js +1 -0
  226. package/dist/ink/hooks/use-linked-scroll.d.ts +45 -37
  227. package/dist/ink/hooks/use-linked-scroll.js +1 -0
  228. package/dist/ink/hooks/use-paste.d.ts +41 -40
  229. package/dist/ink/hooks/use-paste.js +1 -0
  230. package/dist/ink/hooks/use-persistent-state.d.ts +56 -0
  231. package/dist/ink/hooks/use-persistent-state.js +2 -0
  232. package/dist/ink/hooks/use-scroll-acceleration.d.ts +43 -43
  233. package/dist/ink/hooks/use-scroll-acceleration.js +1 -0
  234. package/dist/ink/hooks/use-scroll-input.d.ts +31 -31
  235. package/dist/ink/hooks/use-scroll-input.js +1 -0
  236. package/dist/ink/hooks/use-stderr.d.ts +14 -4
  237. package/dist/ink/hooks/use-stderr.js +1 -0
  238. package/dist/ink/hooks/use-stdin.d.ts +28 -5
  239. package/dist/ink/hooks/use-stdin.js +1 -0
  240. package/dist/ink/hooks/use-stdout.d.ts +14 -4
  241. package/dist/ink/hooks/use-stdout.js +1 -0
  242. package/dist/ink/hooks/use-stopwatch.d.ts +36 -37
  243. package/dist/ink/hooks/use-stopwatch.js +1 -0
  244. package/dist/ink/hooks/use-terminal-palette.d.ts +17 -16
  245. package/dist/ink/hooks/use-terminal-palette.js +1 -0
  246. package/dist/ink/hooks/use-text-buffer.d.ts +37 -37
  247. package/dist/ink/hooks/use-text-buffer.js +4 -0
  248. package/dist/ink/hooks/use-text-selection.d.ts +41 -41
  249. package/dist/ink/hooks/use-text-selection.js +1 -0
  250. package/dist/ink/hooks/use-timeout.d.ts +24 -0
  251. package/dist/ink/hooks/use-timeout.js +1 -0
  252. package/dist/ink/hooks/use-timer.d.ts +45 -46
  253. package/dist/ink/hooks/use-timer.js +1 -0
  254. package/dist/ink/hooks/use-window-size.d.ts +14 -14
  255. package/dist/ink/hooks/use-window-size.js +1 -0
  256. package/dist/ink/index.d.ts +398 -159
  257. package/dist/ink/index.js +1 -100
  258. package/dist/packem_chunks/devtools.js +3 -26
  259. package/dist/packem_shared/COLOR_BLINDNESS_SIMULATION-DqErf7XX.js +1 -0
  260. package/dist/packem_shared/Cell-BrXn3jxY.js +1 -0
  261. package/dist/packem_shared/ControlledScrollView-CIc-x1Cx.js +1 -0
  262. package/dist/packem_shared/DevTools-ClAYpMVI.js +1 -0
  263. package/dist/packem_shared/FilePicker-tYj_CIau.js +1 -0
  264. package/dist/packem_shared/FocusContext-Xy0cwJpO.js +1 -0
  265. package/dist/packem_shared/Fullscreen-CxLd1-Zu.js +1 -0
  266. package/dist/packem_shared/IMECompositionBuffer-C89PhiOu.js +1 -0
  267. package/dist/packem_shared/InputParser-B_qZcN3r.js +2 -0
  268. package/dist/packem_shared/KEY-Bk8B-3h_.js +1 -0
  269. package/dist/packem_shared/LayoutNode-B8zej4dm.js +1 -0
  270. package/dist/packem_shared/MouseProvider-PnIUKURs.js +1 -0
  271. package/dist/packem_shared/NAMED_COLORS-B9fJsYdg.js +1 -0
  272. package/dist/packem_shared/Renderer-DJXooAsp.js +1 -0
  273. package/dist/packem_shared/ResizeObserverEntry-Dq0dk8Kq.js +1 -0
  274. package/dist/packem_shared/ScrollBar-U_37hlIT.js +1 -0
  275. package/dist/packem_shared/ScrollBarBox-DwiCxilX.js +1 -0
  276. package/dist/packem_shared/ScrollList-C7nZ9ufK.js +1 -0
  277. package/dist/packem_shared/ScrollView-DKZ8OM-m.js +1 -0
  278. package/dist/packem_shared/Static-DLynr5pn.js +1 -0
  279. package/dist/packem_shared/TreeNodeMap-CspqSCpb.js +1 -0
  280. package/dist/packem_shared/TreeView-C0Iv3et8.js +1 -0
  281. package/dist/packem_shared/TuiApp-BVDXP0Cv.js +1 -0
  282. package/dist/packem_shared/TuiContext-BoJvG3NN.js +3 -0
  283. package/dist/packem_shared/accessibility-context-DDyHTwmA.js +1 -0
  284. package/dist/packem_shared/animation-context-DW3p-vpk.js +1 -0
  285. package/dist/packem_shared/ansi-parser-B6uXaq65.js +1 -0
  286. package/dist/packem_shared/ansi-tokenizer-DqX9nJuk.js +1 -0
  287. package/dist/packem_shared/app-context-BVpKlG1z.js +1 -0
  288. package/dist/packem_shared/background-context-rjOaWFki.js +1 -0
  289. package/dist/packem_shared/braille-BBjIoaN0.js +1 -0
  290. package/dist/packem_shared/buffer.d-EJkZr8uH.d.ts +39 -0
  291. package/dist/packem_shared/clipboard.d-D6lZTQ21.d.ts +23 -0
  292. package/dist/packem_shared/color-matrix.d-DSXLsB64.d.ts +50 -0
  293. package/dist/packem_shared/colorize-DbTZMrJO.js +1 -0
  294. package/dist/packem_shared/comparePoints-YxQfR_zq.js +1 -0
  295. package/dist/packem_shared/controlled-scroll-view-CcUS50jx.js +1 -0
  296. package/dist/packem_shared/createInlineLoop-DRNZ7jqH.js +2 -0
  297. package/dist/packem_shared/createScreen-CrLrxA6t.js +3 -0
  298. package/dist/packem_shared/cursor-context-CFviBqPX.js +1 -0
  299. package/dist/packem_shared/cursor-helpers.d-BONB9tky.d.ts +12 -0
  300. package/dist/packem_shared/dom-BG-LS10p.js +1 -0
  301. package/dist/packem_shared/dom.d-C1IxuLJ9.d.ts +414 -0
  302. package/dist/packem_shared/focus-context-CsT69klR.js +1 -0
  303. package/dist/packem_shared/format-time-C7Q-hQZq.js +1 -0
  304. package/dist/packem_shared/getPathToRoot-D5Hns9Er.js +1 -0
  305. package/dist/packem_shared/getScrollHeight-ClEOyLHH.js +1 -0
  306. package/dist/packem_shared/input-utils-fAxzSlNh.js +1 -0
  307. package/dist/packem_shared/input.d-CgxV2e8U.d.ts +90 -0
  308. package/dist/packem_shared/isIntersecting-B3KbKTmu.js +1 -0
  309. package/dist/packem_shared/isOsc52Supported-DKK7Uee6.js +1 -0
  310. package/dist/packem_shared/isTerminalPaletteQuerySupported-Dn2hFAZ_.js +1 -0
  311. package/dist/packem_shared/kittyFlags-C3rZLbcK.js +1 -0
  312. package/dist/packem_shared/layout-BMo200nF.js +2 -0
  313. package/dist/packem_shared/line-chart-kf7uhR0K.js +1 -0
  314. package/dist/packem_shared/measure-text-DDjHT1jD.js +3 -0
  315. package/dist/packem_shared/measureElement-BTtTFZg4.js +1 -0
  316. package/dist/packem_shared/mouse-context-DaARgUu1.js +1 -0
  317. package/dist/packem_shared/parseSgrMouse-Ccj70ijb.js +1 -0
  318. package/dist/packem_shared/processLayout-FEKj_mWu.js +1 -0
  319. package/dist/packem_shared/reconciler-CUbhOvcr.js +1 -0
  320. package/dist/packem_shared/reconciler-DIfG72R9.js +1 -0
  321. package/dist/packem_shared/render-BFio00DS.js +26 -0
  322. package/dist/packem_shared/render-Dh7HMhK1.js +1 -0
  323. package/dist/packem_shared/render.d-DuyG0zip.d.ts +417 -0
  324. package/dist/packem_shared/renderToString-BbQiRHrd.js +2 -0
  325. package/dist/packem_shared/renderToString-SDrrFvu8.js +4 -0
  326. package/dist/packem_shared/renderTreeToBuffer-CZilzyhN.js +2 -0
  327. package/dist/packem_shared/renderer-DG986Pcr.js +17 -0
  328. package/dist/packem_shared/scroll-view.d-DtpsgHLg.d.ts +119 -0
  329. package/dist/packem_shared/selection.d-Dbha5bMS.d.ts +62 -0
  330. package/dist/packem_shared/setEnableStyledLineCache-D2gZbwFM.js +1 -0
  331. package/dist/packem_shared/squashTextNodesWithMap-DCdi3SZ2.js +1 -0
  332. package/dist/packem_shared/stderr-context-BzEaUICS.js +1 -0
  333. package/dist/packem_shared/stdin-context-BTaaFagk.js +1 -0
  334. package/dist/packem_shared/stdout-context-BnblEPez.js +1 -0
  335. package/dist/packem_shared/styles.d-cMo36xQz.d.ts +396 -0
  336. package/dist/packem_shared/terminal-palette.d-D2SQjfn-.d.ts +19 -0
  337. package/dist/packem_shared/text-width-BU2eeTWn.js +2 -0
  338. package/dist/packem_shared/token-to-elements-BAZpNZsu.js +1 -0
  339. package/dist/packem_shared/treeViewTheme-1RIZyB4M.js +1 -0
  340. package/dist/packem_shared/useElementDimensions-qJ_WXFZ9.js +1 -0
  341. package/dist/packem_shared/useMouseAction-2dRfU1vE.js +1 -0
  342. package/dist/packem_shared/useMouseContext-C746G7kY.js +1 -0
  343. package/dist/packem_shared/useMousePosition-BTWfV4JK.js +1 -0
  344. package/dist/packem_shared/useOnMouseClick-nY8xLZmt.js +1 -0
  345. package/dist/packem_shared/useOnMouseHover-D3DczIol.js +1 -0
  346. package/dist/packem_shared/useOnMouseState-cRK8QvzD.js +1 -0
  347. package/dist/packem_shared/useTreeView-BoMMeRPq.js +1 -0
  348. package/dist/packem_shared/useTreeViewState-CRPCUWrb.js +1 -0
  349. package/dist/packem_shared/utils-CoviI5Vm.js +1 -0
  350. package/dist/packem_shared/variant-config-BJqpNo7H.js +1 -0
  351. package/dist/packem_shared/variant-config.d-D5NnrrQK.d.ts +2 -0
  352. package/dist/packem_shared/waitFor-Dj5zfL5s.js +4 -0
  353. package/dist/packem_shared/wrapOrTruncateStyledLine-BZ00SM8i.js +3 -0
  354. package/dist/react/index.d.ts +519 -8
  355. package/dist/react/index.js +1 -9
  356. package/dist/testing/index.d.ts +278 -135
  357. package/dist/testing/index.js +1 -260
  358. package/index.js +52 -52
  359. package/package.json +563 -38
  360. package/dist/core/app.d.ts +0 -50
  361. package/dist/core/cell.d.ts +0 -33
  362. package/dist/core/inline.d.ts +0 -22
  363. package/dist/core/input.d.ts +0 -18
  364. package/dist/core/native-binding.d.ts +0 -22
  365. package/dist/ink/ansi-to-cell.d.ts +0 -5
  366. package/dist/ink/ansi-tokenizer.d.ts +0 -38
  367. package/dist/ink/clipboard.d.ts +0 -29
  368. package/dist/ink/color-matrix.d.ts +0 -49
  369. package/dist/ink/color-utils.d.ts +0 -30
  370. package/dist/ink/colorize.d.ts +0 -4
  371. package/dist/ink/components/AccessibilityContext.d.ts +0 -4
  372. package/dist/ink/components/Alert.d.ts +0 -30
  373. package/dist/ink/components/AnimationContext.d.ts +0 -10
  374. package/dist/ink/components/App.d.ts +0 -19
  375. package/dist/ink/components/AppContext.d.ts +0 -38
  376. package/dist/ink/components/BackgroundContext.d.ts +0 -5
  377. package/dist/ink/components/Badge.d.ts +0 -27
  378. package/dist/ink/components/BigText.d.ts +0 -71
  379. package/dist/ink/components/Box.d.ts +0 -58
  380. package/dist/ink/components/Code.d.ts +0 -46
  381. package/dist/ink/components/ConfirmInput.d.ts +0 -40
  382. package/dist/ink/components/ConsoleOverlay.d.ts +0 -52
  383. package/dist/ink/components/Cursor.d.ts +0 -43
  384. package/dist/ink/components/CursorContext.d.ts +0 -12
  385. package/dist/ink/components/Dialog.d.ts +0 -93
  386. package/dist/ink/components/DiffView.d.ts +0 -71
  387. package/dist/ink/components/ErrorBoundary.d.ts +0 -17
  388. package/dist/ink/components/ErrorOverview.d.ts +0 -6
  389. package/dist/ink/components/FocusContext.d.ts +0 -17
  390. package/dist/ink/components/Gradient.d.ts +0 -38
  391. package/dist/ink/components/Help.d.ts +0 -49
  392. package/dist/ink/components/Link.d.ts +0 -34
  393. package/dist/ink/components/Markdown.d.ts +0 -34
  394. package/dist/ink/components/MultiSelect.d.ts +0 -63
  395. package/dist/ink/components/Newline.d.ts +0 -12
  396. package/dist/ink/components/OrderedList.d.ts +0 -30
  397. package/dist/ink/components/Paginator.d.ts +0 -75
  398. package/dist/ink/components/ProgressBar.d.ts +0 -51
  399. package/dist/ink/components/SelectInput.d.ts +0 -96
  400. package/dist/ink/components/SelectInputIndicator.d.ts +0 -36
  401. package/dist/ink/components/SelectInputItem.d.ts +0 -43
  402. package/dist/ink/components/Slider.d.ts +0 -92
  403. package/dist/ink/components/Spacer.d.ts +0 -7
  404. package/dist/ink/components/Spinner.d.ts +0 -42
  405. package/dist/ink/components/Static.d.ts +0 -24
  406. package/dist/ink/components/StaticRender.d.ts +0 -28
  407. package/dist/ink/components/StatusMessage.d.ts +0 -26
  408. package/dist/ink/components/StderrContext.d.ts +0 -16
  409. package/dist/ink/components/StdinContext.d.ts +0 -29
  410. package/dist/ink/components/StdoutContext.d.ts +0 -16
  411. package/dist/ink/components/Stopwatch.d.ts +0 -44
  412. package/dist/ink/components/Tab.d.ts +0 -25
  413. package/dist/ink/components/Table.d.ts +0 -80
  414. package/dist/ink/components/Tabs.d.ts +0 -104
  415. package/dist/ink/components/Text.d.ts +0 -63
  416. package/dist/ink/components/TextInput.d.ts +0 -48
  417. package/dist/ink/components/Textarea.d.ts +0 -62
  418. package/dist/ink/components/Timer.d.ts +0 -52
  419. package/dist/ink/components/Transform.d.ts +0 -16
  420. package/dist/ink/components/UnorderedList.d.ts +0 -35
  421. package/dist/ink/components/file-picker/FilePicker.d.ts +0 -75
  422. package/dist/ink/components/file-picker/index.d.ts +0 -3
  423. package/dist/ink/components/file-picker/types.d.ts +0 -38
  424. package/dist/ink/components/file-picker/use-file-system.d.ts +0 -16
  425. package/dist/ink/components/scroll/ControlledScrollView.d.ts +0 -43
  426. package/dist/ink/components/scroll/ScrollBar.d.ts +0 -20
  427. package/dist/ink/components/scroll/ScrollBarBox.d.ts +0 -15
  428. package/dist/ink/components/scroll/ScrollList.d.ts +0 -12
  429. package/dist/ink/components/scroll/ScrollView.d.ts +0 -98
  430. package/dist/ink/components/scroll/index.d.ts +0 -10
  431. package/dist/ink/components/scroll/use-state-ref.d.ts +0 -8
  432. package/dist/ink/components/tree-view/TreeView.d.ts +0 -89
  433. package/dist/ink/components/tree-view/TreeViewNode.d.ts +0 -29
  434. package/dist/ink/components/tree-view/index.d.ts +0 -11
  435. package/dist/ink/components/tree-view/theme.d.ts +0 -24
  436. package/dist/ink/components/tree-view/tree-node-map.d.ts +0 -72
  437. package/dist/ink/components/tree-view/types.d.ts +0 -55
  438. package/dist/ink/components/tree-view/use-tree-view-state.d.ts +0 -135
  439. package/dist/ink/components/tree-view/use-tree-view.d.ts +0 -26
  440. package/dist/ink/components/variant-config.d.ts +0 -10
  441. package/dist/ink/cursor-helpers.d.ts +0 -38
  442. package/dist/ink/data-limited-lru-map.d.ts +0 -21
  443. package/dist/ink/devtools-window-polyfill.d.ts +0 -1
  444. package/dist/ink/devtools.d.ts +0 -1
  445. package/dist/ink/dom.d.ts +0 -213
  446. package/dist/ink/get-max-width.d.ts +0 -3
  447. package/dist/ink/highlighter.d.ts +0 -28
  448. package/dist/ink/ime-utils.d.ts +0 -25
  449. package/dist/ink/ink.d.ts +0 -189
  450. package/dist/ink/input-parser.d.ts +0 -10
  451. package/dist/ink/input-utils.d.ts +0 -16
  452. package/dist/ink/instances.d.ts +0 -3
  453. package/dist/ink/kitty-keyboard.d.ts +0 -23
  454. package/dist/ink/layout.d.ts +0 -26
  455. package/dist/ink/log-update-native.d.ts +0 -14
  456. package/dist/ink/log-update.d.ts +0 -21
  457. package/dist/ink/measure-element.d.ts +0 -147
  458. package/dist/ink/measure-text.d.ts +0 -56
  459. package/dist/ink/mouse/Fullscreen.d.ts +0 -8
  460. package/dist/ink/mouse/MouseProvider.d.ts +0 -11
  461. package/dist/ink/mouse/ansi-parser.d.ts +0 -37
  462. package/dist/ink/mouse/constants.d.ts +0 -59
  463. package/dist/ink/mouse/index.d.ts +0 -20
  464. package/dist/ink/mouse/is-intersecting.d.ts +0 -18
  465. package/dist/ink/mouse/mouse-context.d.ts +0 -36
  466. package/dist/ink/mouse/use-element-position.d.ts +0 -29
  467. package/dist/ink/mouse/use-mouse-action.d.ts +0 -7
  468. package/dist/ink/mouse/use-mouse-position.d.ts +0 -7
  469. package/dist/ink/mouse/use-mouse.d.ts +0 -7
  470. package/dist/ink/mouse/use-on-mouse-click.d.ts +0 -14
  471. package/dist/ink/mouse/use-on-mouse-hover.d.ts +0 -8
  472. package/dist/ink/mouse/use-on-mouse-state.d.ts +0 -11
  473. package/dist/ink/output.d.ts +0 -74
  474. package/dist/ink/parse-keypress.d.ts +0 -22
  475. package/dist/ink/reconciler.d.ts +0 -3
  476. package/dist/ink/region.d.ts +0 -99
  477. package/dist/ink/render-background.d.ts +0 -4
  478. package/dist/ink/render-border.d.ts +0 -4
  479. package/dist/ink/render-node-to-output.d.ts +0 -38
  480. package/dist/ink/render-scrollbar.d.ts +0 -9
  481. package/dist/ink/render-sticky.d.ts +0 -44
  482. package/dist/ink/render-to-string.d.ts +0 -37
  483. package/dist/ink/render.d.ts +0 -191
  484. package/dist/ink/renderer.d.ts +0 -17
  485. package/dist/ink/resize-observer.d.ts +0 -44
  486. package/dist/ink/sanitize-ansi.d.ts +0 -2
  487. package/dist/ink/scroll.d.ts +0 -23
  488. package/dist/ink/selection.d.ts +0 -70
  489. package/dist/ink/squash-text-nodes.d.ts +0 -18
  490. package/dist/ink/style-flags.d.ts +0 -17
  491. package/dist/ink/styled-line-factory.d.ts +0 -25
  492. package/dist/ink/styled-line-serializer.d.ts +0 -18
  493. package/dist/ink/styled-line.d.ts +0 -109
  494. package/dist/ink/styles.d.ts +0 -369
  495. package/dist/ink/terminal-palette.d.ts +0 -25
  496. package/dist/ink/text-wrap.d.ts +0 -10
  497. package/dist/ink/token-to-elements.d.ts +0 -22
  498. package/dist/ink/utils/format-time.d.ts +0 -4
  499. package/dist/ink/utils.d.ts +0 -9
  500. package/dist/ink/wrap-text.d.ts +0 -3
  501. package/dist/ink/write-synchronized.d.ts +0 -4
  502. package/dist/packem_shared/AccessibilityContext-BLelHhNU.js +0 -7
  503. package/dist/packem_shared/Alert-Dr3s_LD9.js +0 -17
  504. package/dist/packem_shared/AnimationContext-BcJg8Jr6.js +0 -15
  505. package/dist/packem_shared/AppContext-CP0U6H7O.js +0 -11
  506. package/dist/packem_shared/BackgroundContext-BAUaxfOb.js +0 -5
  507. package/dist/packem_shared/Badge-Dk7EGGM6.js +0 -13
  508. package/dist/packem_shared/BigText-CjMdY63X.js +0 -24
  509. package/dist/packem_shared/Box-D_pSJ9Jp.js +0 -73
  510. package/dist/packem_shared/COLOR_BLINDNESS_SIMULATION-BsMy5Ewl.js +0 -81
  511. package/dist/packem_shared/Cell-DCg1kJY-.js +0 -48
  512. package/dist/packem_shared/Code-DjQvPBD9.js +0 -53
  513. package/dist/packem_shared/ConfirmInput-85Y4kRQW.js +0 -44
  514. package/dist/packem_shared/ConsoleOverlay-DBNa4vtj.js +0 -57
  515. package/dist/packem_shared/ControlledScrollView-BlOaxcsN.js +0 -286
  516. package/dist/packem_shared/ControlledScrollView-DfAhcufF.js +0 -5
  517. package/dist/packem_shared/Cursor-DiW7YoSK.js +0 -18
  518. package/dist/packem_shared/CursorContext-JxRzlqAx.js +0 -9
  519. package/dist/packem_shared/DevTools-aMPIsaHx.js +0 -61
  520. package/dist/packem_shared/Dialog-DsSNAVgC.js +0 -71
  521. package/dist/packem_shared/DiffView-hqaw-2S6.js +0 -329
  522. package/dist/packem_shared/FilePicker-DNwFxRhq.js +0 -254
  523. package/dist/packem_shared/FocusContext-CWkYtgcm.js +0 -26
  524. package/dist/packem_shared/FocusContext-D5wFxSRz.js +0 -153
  525. package/dist/packem_shared/Fullscreen-DrElAE1o.js +0 -11
  526. package/dist/packem_shared/Gradient-Ql5P0GUd.js +0 -136
  527. package/dist/packem_shared/Help-6wanGG38.js +0 -112
  528. package/dist/packem_shared/IMECompositionBuffer-Dl3S0KnF.js +0 -55
  529. package/dist/packem_shared/InputParser-BKHpWfvN.js +0 -156
  530. package/dist/packem_shared/LayoutNode-Cjnsodiy.js +0 -131
  531. package/dist/packem_shared/Link-COcKYfGT.js +0 -66
  532. package/dist/packem_shared/Markdown-y1ISztof.js +0 -212
  533. package/dist/packem_shared/MouseProvider-Y9TSSEGl.js +0 -136
  534. package/dist/packem_shared/MultiSelect-ChoLUcDI.js +0 -129
  535. package/dist/packem_shared/NAMED_COLORS-a4QBvb5r.js +0 -262
  536. package/dist/packem_shared/Newline-DBtYEg8x.js +0 -7
  537. package/dist/packem_shared/OrderedList-Cp7pXr6m.js +0 -26
  538. package/dist/packem_shared/Paginator-D1AuD-kj.js +0 -104
  539. package/dist/packem_shared/ProgressBar-DOfpVagn.js +0 -22
  540. package/dist/packem_shared/Renderer-zZ5O3vxc.js +0 -31
  541. package/dist/packem_shared/ResizeObserverEntry-Br4seLeQ.js +0 -102
  542. package/dist/packem_shared/ScrollBar-EWAs2Uc7.js +0 -106
  543. package/dist/packem_shared/ScrollBarBox-DTNNlh7R.js +0 -72
  544. package/dist/packem_shared/ScrollList-DCeIFL8M.js +0 -227
  545. package/dist/packem_shared/ScrollView-v3MCNIyX.js +0 -196
  546. package/dist/packem_shared/SelectInput-BN2TMyxp.js +0 -260
  547. package/dist/packem_shared/SelectInputIndicator-DkRMoH_b.js +0 -9
  548. package/dist/packem_shared/SelectInputItem-BF9LQgKu.js +0 -8
  549. package/dist/packem_shared/Slider-BWD7xZX6.js +0 -116
  550. package/dist/packem_shared/Spacer-Bs4ER-HK.js +0 -8
  551. package/dist/packem_shared/Spinner-BuI-kN4p.js +0 -1799
  552. package/dist/packem_shared/Static-DpTd6Eed.js +0 -22
  553. package/dist/packem_shared/Static-xmD9giJj.js +0 -18
  554. package/dist/packem_shared/StaticRender-tYwH6QXl.js +0 -33
  555. package/dist/packem_shared/StatusMessage-BtSYxzwb.js +0 -14
  556. package/dist/packem_shared/StderrContext-Bj4Mf7v7.js +0 -17
  557. package/dist/packem_shared/StdinContext-Bq_GNJ3z.js +0 -38
  558. package/dist/packem_shared/StdoutContext-CgjWeCdO.js +0 -17
  559. package/dist/packem_shared/Stopwatch-DjtTCyHn.js +0 -23
  560. package/dist/packem_shared/Tab-C6r5q4hR.js +0 -7
  561. package/dist/packem_shared/Table-D-rSVlzb.js +0 -82
  562. package/dist/packem_shared/Tabs-hki-KRnx.js +0 -153
  563. package/dist/packem_shared/Text-DvAUdZcK.js +0 -65
  564. package/dist/packem_shared/TextInput-C79WEQ5U.js +0 -137
  565. package/dist/packem_shared/Textarea-Dj06R6Zd.js +0 -272
  566. package/dist/packem_shared/Timer-wi9zuh4n.js +0 -22
  567. package/dist/packem_shared/Transform-BHxY_dAM.js +0 -14
  568. package/dist/packem_shared/TreeNodeMap-CtJUvBnd.js +0 -155
  569. package/dist/packem_shared/TreeView-C2062dtj.js +0 -148
  570. package/dist/packem_shared/TuiApp-DfxOnXqi.js +0 -120
  571. package/dist/packem_shared/TuiContext-CqEjMyXd.js +0 -415
  572. package/dist/packem_shared/UnorderedList-DhnadWjX.js +0 -33
  573. package/dist/packem_shared/ansi-parser-0BdVTKho.js +0 -41
  574. package/dist/packem_shared/ansi-tokenizer-LHq2LUWA.js +0 -307
  575. package/dist/packem_shared/boxes-oi3WUbyR.js +0 -92
  576. package/dist/packem_shared/colorize-88_Vk8cn.js +0 -48
  577. package/dist/packem_shared/comparePoints-CGMDnd3_.js +0 -287
  578. package/dist/packem_shared/createInlineLoop-BxMmcq9D.js +0 -93
  579. package/dist/packem_shared/createLinkedScrollGroup-Djw4Ceo0.js +0 -44
  580. package/dist/packem_shared/dom-DvzhsAez.js +0 -225
  581. package/dist/packem_shared/format-time-BGmnDukX.js +0 -12
  582. package/dist/packem_shared/getPathToRoot-a1wbwxfL.js +0 -4
  583. package/dist/packem_shared/getScrollHeight-BubfU_df.js +0 -63
  584. package/dist/packem_shared/input-utils-ViAEXa0Z.js +0 -19
  585. package/dist/packem_shared/isIntersecting-fEXHJN5R.js +0 -10
  586. package/dist/packem_shared/isOsc52Supported-G0k4sXJx.js +0 -36
  587. package/dist/packem_shared/isTerminalPaletteQuerySupported-EeiwMKbr.js +0 -93
  588. package/dist/packem_shared/kittyFlags-bNNf_9kX.js +0 -26
  589. package/dist/packem_shared/measure-element-Reza_yfC.js +0 -396
  590. package/dist/packem_shared/measure-text-DItZYotK.js +0 -1189
  591. package/dist/packem_shared/measureElement-CTgFCmKd.js +0 -4
  592. package/dist/packem_shared/mouse-context-BUHWKEIe.js +0 -6
  593. package/dist/packem_shared/parseSgrMouse-BHVBPP9G.js +0 -1
  594. package/dist/packem_shared/processLayout-BQ9kXfd3.js +0 -2
  595. package/dist/packem_shared/reconciler-BXf6miSS.js +0 -211
  596. package/dist/packem_shared/reconciler-gfmqURLy.js +0 -680
  597. package/dist/packem_shared/render-BAwdjfki.js +0 -2806
  598. package/dist/packem_shared/render-Bpjhf0lD.js +0 -195
  599. package/dist/packem_shared/renderToString-Cfg55DRD.js +0 -62
  600. package/dist/packem_shared/renderToString-ClIaXgrC.js +0 -86
  601. package/dist/packem_shared/renderTreeToBuffer-D3mo7M7m.js +0 -308
  602. package/dist/packem_shared/renderer-B3wROkeg.js +0 -1431
  603. package/dist/packem_shared/setEnableStyledLineCache-BpskngSJ.js +0 -2
  604. package/dist/packem_shared/squashTextNodesWithMap-iqm6OMMT.js +0 -100
  605. package/dist/packem_shared/text-width-DhuarWcB.js +0 -42
  606. package/dist/packem_shared/token-to-elements-BRFl_rzw.js +0 -249
  607. package/dist/packem_shared/treeViewTheme-BpSw9TMf.js +0 -52
  608. package/dist/packem_shared/useAnimation-kj31sA-T.js +0 -62
  609. package/dist/packem_shared/useApp-DPQlRzi5.js +0 -6
  610. package/dist/packem_shared/useBoxMetrics-rBjKc-g4.js +0 -54
  611. package/dist/packem_shared/useClipboard-B_9-adw1.js +0 -23
  612. package/dist/packem_shared/useColorBlindness-D_sTIhcb.js +0 -30
  613. package/dist/packem_shared/useConsoleCapture-Dvt7G1W1.js +0 -61
  614. package/dist/packem_shared/useCursor-BIJzc8k9.js +0 -19
  615. package/dist/packem_shared/useElementDimensions-CAoKitVD.js +0 -67
  616. package/dist/packem_shared/useFocus-CNl5QHHf.js +0 -37
  617. package/dist/packem_shared/useFocusManager-BPYaUuKQ.js +0 -16
  618. package/dist/packem_shared/useInput-Cfp5zB2s.js +0 -594
  619. package/dist/packem_shared/useIsScreenReaderEnabled-CnGKCe0f.js +0 -9
  620. package/dist/packem_shared/useKeyBindings-B78l1E1n.js +0 -66
  621. package/dist/packem_shared/useMouseAction-C5gZ2nj7.js +0 -29
  622. package/dist/packem_shared/useMouseContext-D-rFy60Q.js +0 -12
  623. package/dist/packem_shared/useMousePosition-BHBJ-kBk.js +0 -25
  624. package/dist/packem_shared/useOnMouseClick--ZIyBOBO.js +0 -35
  625. package/dist/packem_shared/useOnMouseHover-26diuXUC.js +0 -32
  626. package/dist/packem_shared/useOnMouseState-NO_Kda_C.js +0 -13
  627. package/dist/packem_shared/usePaste-Ct8J4AGR.js +0 -35
  628. package/dist/packem_shared/useScrollAcceleration-R9LfrPVG.js +0 -73
  629. package/dist/packem_shared/useScrollInput-D3CpBq_a.js +0 -72
  630. package/dist/packem_shared/useStderr-CAOVUh4E.js +0 -6
  631. package/dist/packem_shared/useStdin-X-O0kd-n.js +0 -7
  632. package/dist/packem_shared/useStdout-DyF6DSH0.js +0 -6
  633. package/dist/packem_shared/useStopwatch-qC4Beai4.js +0 -33
  634. package/dist/packem_shared/useTerminalPalette-BaWO2c4Q.js +0 -38
  635. package/dist/packem_shared/useTextBuffer-C8fEe9Ly.js +0 -398
  636. package/dist/packem_shared/useTextSelection-mXtxgsPK.js +0 -50
  637. package/dist/packem_shared/useTimer-CPQ7j827.js +0 -46
  638. package/dist/packem_shared/useTreeView-BT57P3Kx.js +0 -101
  639. package/dist/packem_shared/useTreeViewState-BpS_KZ-K.js +0 -502
  640. package/dist/packem_shared/useWindowSize-ugEmGZJm.js +0 -20
  641. package/dist/packem_shared/utils-BgdlrbOH.js +0 -140
  642. package/dist/packem_shared/variant-config-DSZoX5TM.js +0 -8
  643. package/dist/packem_shared/wrapOrTruncateStyledLine-DN3Nogoc.js +0 -147
  644. package/dist/react/devtools.d.ts +0 -27
  645. package/dist/react/focus.d.ts +0 -39
  646. package/dist/react/hooks.d.ts +0 -238
  647. package/dist/react/layout.d.ts +0 -35
  648. package/dist/react/react.d.ts +0 -57
  649. package/dist/react/reconciler.d.ts +0 -4
  650. package/dist/react/render-to-string.d.ts +0 -21
  651. package/dist/react/renderer.d.ts +0 -2
  652. package/dist/react/scene.d.ts +0 -3
  653. package/dist/react/static.d.ts +0 -39
  654. package/dist/react/styles.d.ts +0 -83
  655. package/dist/react/text-width.d.ts +0 -20
  656. package/dist/testing/keys.d.ts +0 -89
  657. package/dist/testing/screen.d.ts +0 -35
  658. package/dist/testing/wait-for.d.ts +0 -21
@@ -1,147 +0,0 @@
1
- import { S as StyledLine, d as styledLineWidth, i as inkCharacterWidth } from './measure-text-DItZYotK.js';
2
-
3
- const truncateStyledLine = (line, columns, position = "end") => {
4
- if (columns < 1) {
5
- return new StyledLine();
6
- }
7
- const textWidth = styledLineWidth(line);
8
- if (textWidth <= columns) {
9
- return line;
10
- }
11
- const ellipsis = new StyledLine();
12
- ellipsis.pushChar("…", 0);
13
- if (columns === 1) {
14
- return ellipsis;
15
- }
16
- if (position === "start") {
17
- let width = 0;
18
- let startIndex = line.length;
19
- for (let i = line.length - 1; i >= 0; i--) {
20
- width += inkCharacterWidth(line.getValue(i));
21
- if (width > columns - 1) {
22
- break;
23
- }
24
- startIndex = i;
25
- }
26
- return ellipsis.combine(line.slice(startIndex));
27
- }
28
- if (position === "middle") {
29
- const leftWidth = Math.ceil(columns / 2);
30
- const rightWidth = columns - leftWidth;
31
- let leftEnd = 0;
32
- let w2 = 0;
33
- for (let i = 0; i < line.length; i++) {
34
- const cw = inkCharacterWidth(line.getValue(i));
35
- if (w2 + cw > leftWidth - 1) {
36
- break;
37
- }
38
- w2 += cw;
39
- leftEnd = i + 1;
40
- }
41
- let rightStart = line.length;
42
- w2 = 0;
43
- for (let i = line.length - 1; i >= 0; i--) {
44
- w2 += inkCharacterWidth(line.getValue(i));
45
- if (w2 > rightWidth) {
46
- break;
47
- }
48
- rightStart = i;
49
- }
50
- return line.slice(0, leftEnd).combine(ellipsis, line.slice(rightStart));
51
- }
52
- let endIndex = 0;
53
- let w = 0;
54
- for (let i = 0; i < line.length; i++) {
55
- const cw = inkCharacterWidth(line.getValue(i));
56
- if (w + cw > columns - 1) {
57
- break;
58
- }
59
- w += cw;
60
- endIndex = i + 1;
61
- }
62
- return line.slice(0, endIndex).combine(ellipsis);
63
- };
64
- const wrapStyledLine = (line, columns) => {
65
- const rows = [];
66
- let currentRowStart = 0;
67
- let currentRowWidth = 0;
68
- let isAtStartOfLogicalLine = true;
69
- let i = 0;
70
- while (i < line.length) {
71
- const firstValue = line.getValue(i);
72
- if (firstValue === "\n") {
73
- rows.push(line.slice(currentRowStart, i));
74
- currentRowStart = i + 1;
75
- currentRowWidth = 0;
76
- isAtStartOfLogicalLine = true;
77
- i++;
78
- continue;
79
- }
80
- let j = i;
81
- let wordWidth = 0;
82
- if (firstValue === " ") {
83
- wordWidth = inkCharacterWidth(" ");
84
- j = i + 1;
85
- } else {
86
- while (j < line.length && line.getValue(j) !== " " && line.getValue(j) !== "\n") {
87
- wordWidth += inkCharacterWidth(line.getValue(j));
88
- j++;
89
- }
90
- }
91
- if (currentRowWidth + wordWidth > columns && currentRowWidth > 0) {
92
- if (firstValue === " " && !isAtStartOfLogicalLine && !line.hasStyles(i)) {
93
- i = j;
94
- continue;
95
- }
96
- let trimEnd = i;
97
- while (trimEnd > currentRowStart && line.getValue(trimEnd - 1) === " " && !line.hasStyles(trimEnd - 1)) {
98
- trimEnd--;
99
- }
100
- rows.push(line.slice(currentRowStart, trimEnd));
101
- currentRowStart = i;
102
- currentRowWidth = 0;
103
- continue;
104
- }
105
- if (currentRowWidth === 0 && wordWidth > columns) {
106
- let k = i;
107
- let chunkWidth = 0;
108
- while (k < j) {
109
- const cw = inkCharacterWidth(line.getValue(k));
110
- if (chunkWidth + cw > columns && chunkWidth > 0) {
111
- rows.push(line.slice(currentRowStart, k));
112
- currentRowStart = k;
113
- chunkWidth = 0;
114
- }
115
- chunkWidth += cw;
116
- k++;
117
- }
118
- currentRowWidth = chunkWidth;
119
- i = j;
120
- isAtStartOfLogicalLine = false;
121
- } else {
122
- currentRowWidth += wordWidth;
123
- i = j;
124
- if (firstValue !== " ") {
125
- isAtStartOfLogicalLine = false;
126
- }
127
- }
128
- }
129
- if (currentRowStart < line.length || rows.length === 0) {
130
- rows.push(line.slice(currentRowStart));
131
- }
132
- return rows;
133
- };
134
- const wrapOrTruncateStyledLine = (line, maxWidth, textWrap = "wrap") => {
135
- if (textWrap.startsWith("truncate")) {
136
- let position = "end";
137
- if (textWrap === "truncate-middle") {
138
- position = "middle";
139
- } else if (textWrap === "truncate-start") {
140
- position = "start";
141
- }
142
- return [truncateStyledLine(line, maxWidth, position)];
143
- }
144
- return wrapStyledLine(line, maxWidth);
145
- };
146
-
147
- export { wrapOrTruncateStyledLine };
@@ -1,27 +0,0 @@
1
- /**
2
- * DevTools — optional development overlay for TUI apps.
3
- *
4
- * Wraps your app and renders a HUD in the bottom-right corner.
5
- * Render rate is measured from actual render events (not a timer guess).
6
- *
7
- * Usage:
8
- * import { DevTools } from '@visulima/tui/react'
9
- *
10
- * render(
11
- * &lt;DevTools>
12
- * &lt;MyApp />
13
- * &lt;/DevTools>
14
- * )
15
- *
16
- * Props:
17
- * enabled? boolean — show/hide without removing from tree (default: true)
18
- *
19
- * Future slots: render count, memory usage, custom metrics via props.
20
- */
21
- import React from "react";
22
- export interface DevToolsProps {
23
- children: React.ReactNode;
24
- /** Show/hide the HUD without unmounting (default: true) */
25
- enabled?: boolean;
26
- }
27
- export declare const DevTools: ({ children, enabled }: DevToolsProps) => React.ReactElement;
@@ -1,39 +0,0 @@
1
- import type { Context } from "react";
2
- import React from "react";
3
- export type FocusContextProps = {
4
- activate: (id: string) => void;
5
- activeId: string | undefined;
6
- add: (id: string, options: {
7
- autoFocus: boolean;
8
- }) => void;
9
- deactivate: (id: string) => void;
10
- disableFocus: () => void;
11
- enableFocus: () => void;
12
- focus: (id: string) => void;
13
- focusNext: () => void;
14
- focusPrevious: () => void;
15
- remove: (id: string) => void;
16
- };
17
- export declare const FocusContext: Context<FocusContextProps>;
18
- export declare const FocusProvider: React.FC<{
19
- children: React.ReactNode;
20
- }>;
21
- export type UseFocusOptions = {
22
- autoFocus?: boolean;
23
- id?: string;
24
- isActive?: boolean;
25
- };
26
- export type UseFocusResult = {
27
- focus: (id: string) => void;
28
- isFocused: boolean;
29
- };
30
- export declare const useFocus: ({ autoFocus, id: customId, isActive }?: UseFocusOptions) => UseFocusResult;
31
- export type UseFocusManagerResult = {
32
- activeId: string | undefined;
33
- disableFocus: () => void;
34
- enableFocus: () => void;
35
- focus: (id: string) => void;
36
- focusNext: () => void;
37
- focusPrevious: () => void;
38
- };
39
- export declare const useFocusManager: () => UseFocusManagerResult;
@@ -1,238 +0,0 @@
1
- import type { Context, RefObject } from "react";
2
- import type { InputParser, MouseEvent, TuiApp } from "../core/index.d.ts";
3
- import type { LayoutNode } from "./layout.d.ts";
4
- export interface TuiContextProps {
5
- app: TuiApp;
6
- input: InputParser;
7
- writeStderr: (text: string) => void;
8
- writeStdout: (text: string) => void;
9
- }
10
- export declare const TuiContext: Context<TuiContextProps | null>;
11
- export interface Key {
12
- backspace: boolean;
13
- ctrl: boolean;
14
- delete: boolean;
15
- downArrow: boolean;
16
- end: boolean;
17
- escape: boolean;
18
- home: boolean;
19
- leftArrow: boolean;
20
- meta: boolean;
21
- pageDown: boolean;
22
- pageUp: boolean;
23
- return: boolean;
24
- rightArrow: boolean;
25
- shift: boolean;
26
- tab: boolean;
27
- upArrow: boolean;
28
- }
29
- export type InputHandler = (input: string, key: Key) => void;
30
- /**
31
- * Subscribes to keyboard input. Uses a stable ref so the effect runs
32
- * exactly once (on mount) regardless of how often the component re-renders.
33
- * Always invokes the latest handler passed by the caller.
34
- */
35
- export declare const useInput: (handler: InputHandler) => void;
36
- export interface UsePasteOptions {
37
- /**
38
- * Enable or disable capturing pasted text.
39
- * Useful when multiple components use usePaste and only one should be active.
40
- * @default true
41
- */
42
- isActive?: boolean;
43
- }
44
- export type PasteHandler = (text: string) => void;
45
- /**
46
- * Subscribe to bracketed paste events.
47
- *
48
- * `usePaste` and `useInput` can be used together. Paste content is delivered
49
- * through this hook and not forwarded to useInput while at least one paste
50
- * listener is active.
51
- */
52
- export declare const usePaste: (handler: PasteHandler, options?: UsePasteOptions) => void;
53
- /**
54
- * Raw access to the TuiContext — app instance + input parser.
55
- * Useful for advanced integrations (e.g. DevTools, custom hooks).
56
- */
57
- export declare const useTuiContext: () => TuiContextProps;
58
- /**
59
- * Access app controls. Returns { exit } for Ink compatibility.
60
- * exit() triggers a clean shutdown (restores terminal, stops input, exits process).
61
- */
62
- export declare const useApp: () => {
63
- exit: () => void;
64
- quit: () => void;
65
- };
66
- /**
67
- * Returns current terminal dimensions and re-renders on resize (SIGWINCH).
68
- * Ink-compatible: const { columns, rows } = useWindowSize()
69
- */
70
- export declare const useWindowSize: () => {
71
- columns: number;
72
- rows: number;
73
- };
74
- /**
75
- * Write to stdout without disturbing the TUI.
76
- * Ink-compatible: const { write, stdout } = useStdout()
77
- * Output is buffered while the alternate screen is active and flushed on exit.
78
- */
79
- export declare const useStdout: () => {
80
- stdout: NodeJS.WriteStream & {
81
- fd: 1;
82
- };
83
- write: (text: string) => void;
84
- };
85
- /**
86
- * Write to stderr without disturbing the TUI.
87
- * Ink-compatible: const { write, stderr } = useStderr()
88
- * Output is buffered while the alternate screen is active and flushed on exit.
89
- */
90
- export declare const useStderr: () => {
91
- stderr: NodeJS.WriteStream & {
92
- fd: 2;
93
- };
94
- write: (text: string) => void;
95
- };
96
- /**
97
- * Access raw stdin stream and raw mode controls.
98
- * Ink-compatible: const { stdin, setRawMode, isRawModeSupported } = useStdin()
99
- */
100
- export declare const useStdin: () => {
101
- isRawModeSupported: boolean;
102
- setRawMode: (value: boolean) => void;
103
- stdin: NodeJS.ReadStream & {
104
- fd: 0;
105
- };
106
- };
107
- /**
108
- * Measure the dimensions of a Box element.
109
- * Returns { width, height } after layout has been calculated.
110
- * Returns { width: 0, height: 0 } when called during render (before layout).
111
- * Ink-compatible: measureElement(ref.current)
112
- */
113
- export declare const measureElement: (node: LayoutNode | null) => {
114
- height: number;
115
- width: number;
116
- };
117
- export interface BoxMetrics {
118
- readonly height: number;
119
- readonly left: number;
120
- readonly top: number;
121
- readonly width: number;
122
- }
123
- export interface UseBoxMetricsResult extends BoxMetrics {
124
- readonly hasMeasured: boolean;
125
- }
126
- /**
127
- * Returns the current layout metrics for a Box ref, updating on every render
128
- * and on terminal resize.
129
- * Ink-compatible: const { width, height, left, top, hasMeasured } = useBoxMetrics(ref)
130
- */
131
- export declare const useBoxMetrics: (ref: RefObject<LayoutNode | null>) => UseBoxMetricsResult;
132
- /**
133
- * Returns whether a screen reader is enabled.
134
- * Stub: always returns false — no screen reader support.
135
- * Ink-compatible: const isEnabled = useIsScreenReaderEnabled()
136
- */
137
- export declare const useIsScreenReaderEnabled: () => boolean;
138
- /**
139
- * Returns cursor positioning controls.
140
- * Stub: the native renderer hides the cursor during rendering (alternate screen).
141
- * setCursorPosition is a no-op — provided for Ink API compatibility only.
142
- * Ink-compatible: const { setCursorPosition } = useCursor()
143
- */
144
- export declare const useCursor: () => {
145
- setCursorPosition: (position: {
146
- x: number;
147
- y: number;
148
- } | undefined) => void;
149
- };
150
- /**
151
- * Scroll state for a fixed-height viewport over variable-height content.
152
- *
153
- * Usage:
154
- * const scroll = useScrollable({ viewportHeight: 20, contentHeight: totalRows })
155
- *
156
- * &lt;Box height={20}>
157
- * &lt;Box marginTop={-scroll.offset}>
158
- * {items}
159
- * &lt;/Box>
160
- * &lt;/Box>
161
- *
162
- * contentHeight can be updated as content grows. The offset is automatically
163
- * clamped so it never scrolls past the end.
164
- *
165
- * scrollToBottom() is idempotent — safe to call on every new message append.
166
- */
167
- export interface UseScrollableOptions {
168
- /** Total height of the content in rows — update as content grows */
169
- contentHeight: number;
170
- /** Height of the visible window in rows */
171
- viewportHeight: number;
172
- }
173
- export interface UseScrollableResult {
174
- /** True when already at the bottom */
175
- atBottom: boolean;
176
- /** True when already at the top */
177
- atTop: boolean;
178
- /** Current scroll offset in rows (0 = top) */
179
- offset: number;
180
- /** Scroll down N rows */
181
- scrollBy: (n: number) => void;
182
- /** Scroll down one row */
183
- scrollDown: () => void;
184
- /** Jump to the very bottom */
185
- scrollToBottom: () => void;
186
- /** Jump to the very top */
187
- scrollToTop: () => void;
188
- /** Scroll up one row */
189
- scrollUp: () => void;
190
- }
191
- export declare const useScrollable: ({ contentHeight, viewportHeight }: UseScrollableOptions) => UseScrollableResult;
192
- export type MouseHandler = (event: MouseEvent) => void;
193
- /**
194
- * Subscribe to mouse events. Requires mouse tracking to be enabled (it is by
195
- * default — TerminalGuard enables SGR 1006 mouse tracking on start).
196
- *
197
- * Usage:
198
- * useMouse((event) => {
199
- * if (event.button === 'left') { ... }
200
- * if (event.button === 'scrollUp') { ... }
201
- * // event: { x, y, button, shift, ctrl, meta }
202
- * })
203
- *
204
- * button values: 'left' | 'right' | 'middle' | 'scrollUp' | 'scrollDown'
205
- */
206
- export declare const useMouse: (handler: MouseHandler) => void;
207
- export interface UseTextInputOptions {
208
- /** Initial value (default: '') */
209
- initialValue?: string;
210
- /** When false, the hook ignores all input (default: true) */
211
- isActive?: boolean;
212
- /** Called on every keystroke with the new value */
213
- onChange?: (value: string) => void;
214
- /** Called when the user presses Enter */
215
- onSubmit?: (value: string) => void;
216
- }
217
- export interface UseTextInputResult {
218
- /** Clear the input */
219
- clear: () => void;
220
- /** Cursor position (0 = before first char, value.length = after last char) */
221
- cursor: number;
222
- /** Set value programmatically */
223
- setValue: (value: string) => void;
224
- /** Current text value */
225
- value: string;
226
- }
227
- /**
228
- * Managed text input with cursor, backspace, delete, left/right navigation,
229
- * home/end, bracketed paste, and submit on Enter.
230
- *
231
- * Usage:
232
- * const { value, cursor } = useTextInput({ onSubmit: (v) => console.log(v) })
233
- * &lt;Text>{value.slice(0, cursor)}&lt;Text inverse> &lt;/Text>{value.slice(cursor)}&lt;/Text>
234
- *
235
- * Renders a block cursor by inverting the character at cursor position.
236
- * When cursor is at end, renders a trailing space as the cursor block.
237
- */
238
- export declare const useTextInput: ({ initialValue, isActive, onChange, onSubmit }?: UseTextInputOptions) => UseTextInputResult;
@@ -1,35 +0,0 @@
1
- import Yoga from "yoga-layout";
2
- type YogaNode = ReturnType<typeof Yoga.Node.create>;
3
- export declare class LayoutNode {
4
- yogaNode: YogaNode;
5
- children: LayoutNode[];
6
- parent: LayoutNode | null;
7
- private _destroyed;
8
- _hidden: boolean;
9
- transform?: (s: string, index: number) => string;
10
- private _text?;
11
- fg: number;
12
- bg: number;
13
- styles: number;
14
- _style?: any;
15
- set text(value: string | undefined);
16
- get text(): string | undefined;
17
- constructor();
18
- insertChild(child: LayoutNode, index: number): void;
19
- remove(): void;
20
- removeChild(child: LayoutNode): void;
21
- /**
22
- * Free this node's Yoga allocation. Called via detachDeletedInstance
23
- * in the reconciler after React has permanently removed this node.
24
- *
25
- * Does NOT recurse — React calls detachDeletedInstance on every node
26
- * in a deleted subtree individually, so each node frees only itself.
27
- * The _destroyed guard prevents double-free if free() is also called.
28
- */
29
- destroy(): void;
30
- calculateLayout(width: number, height: number): void;
31
- getLayout(): ReturnType<YogaNode["getComputedLayout"]>;
32
- /** @deprecated use destroy() */
33
- free(): void;
34
- }
35
- export {};
@@ -1,57 +0,0 @@
1
- import React from "react";
2
- import type { InlineOptions } from "../core/index.d.ts";
3
- import { InputParser, TuiApp } from "../core/index.d.ts";
4
- /** @internal */
5
- export declare const _Box: React.FC<Record<string, any>>;
6
- /** @internal */
7
- export declare const _Text: React.FC<Record<string, any>>;
8
- /** @internal */
9
- export declare const _Spacer: React.FC;
10
- /** Ink-compat render options */
11
- export interface RenderOptions {
12
- /** Ignored — the native renderer is always concurrent */
13
- concurrent?: boolean;
14
- /** Ignored */
15
- debug?: boolean;
16
- /** Ignored — Ctrl+C always exits */
17
- exitOnCtrlC?: boolean;
18
- /** Ignored */
19
- incrementalRendering?: boolean;
20
- /** Target frames per second for the render loop. Default: 60 */
21
- maxFps?: number;
22
- /** Ignored — the native renderer always patches console */
23
- patchConsole?: boolean;
24
- }
25
- /** Return value of render() — Ink-compatible instance handle */
26
- export interface Instance {
27
- /** Internal: direct app access */
28
- app: TuiApp;
29
- /** Internal: input parser */
30
- input: InputParser;
31
- rerender: (element: React.ReactElement) => void;
32
- unmount: () => void;
33
- waitUntilExit: () => Promise<void>;
34
- }
35
- export declare function render(element: React.ReactElement, options?: RenderOptions): Instance;
36
- export interface InlineInstance {
37
- /** Unmount the React tree and stop the render loop */
38
- unmount: () => void;
39
- /** Resolves when the loop exits */
40
- waitUntilExit: () => Promise<void>;
41
- }
42
- /**
43
- * Render a React element inline — no alternate screen. The UI appears
44
- * directly below the current shell prompt and stays in terminal scrollback
45
- * on exit (or is destroyed if `onExit: 'destroy'` is set).
46
- *
47
- * The root Box is sized to `cols × rows`. Use `useInput` and `useApp`
48
- * exactly as in a full-screen render.
49
- * @example
50
- * ```tsx
51
- * const { waitUntilExit } = renderInline(<Picker />, { rows: 12, onExit: 'destroy' })
52
- * await waitUntilExit()
53
- * ```
54
- */
55
- export declare function renderInline(element: React.ReactElement, options?: InlineOptions & {
56
- maxFps?: number;
57
- }): InlineInstance;
@@ -1,4 +0,0 @@
1
- import ReactReconciler from "react-reconciler";
2
- export declare let onAfterCommit: (() => void) | null;
3
- export declare function setOnAfterCommit(function_: (() => void) | null): void;
4
- export declare const TuiReconciler: ReturnType<typeof ReactReconciler>;
@@ -1,21 +0,0 @@
1
- import React from "react";
2
- export interface RenderToStringOptions {
3
- /** Width of the virtual terminal in columns. @default 80 */
4
- columns?: number;
5
- /** Height of the virtual terminal in rows. @default 24 */
6
- rows?: number;
7
- }
8
- /**
9
- * Render a React element to a plain string synchronously.
10
- * No TTY, no stdin, no alternate screen — pure layout + buffer read-back.
11
- *
12
- * Useful for testing, documentation generation, and any scenario where
13
- * you need rendered output as a string without a live terminal.
14
- *
15
- * Notes:
16
- * - Terminal hooks (useInput, useApp, useStdin, useStdout, useStderr,
17
- * useFocus, useFocusManager) return safe no-op defaults — they do not throw.
18
- * - useEffect callbacks run but state updates they trigger do not affect output.
19
- * - useLayoutEffect callbacks fire synchronously and DO affect output.
20
- */
21
- export declare function renderToString(element: React.ReactElement, options?: RenderToStringOptions): string;
@@ -1,2 +0,0 @@
1
- import type { LayoutNode } from "./layout.d.ts";
2
- export declare function renderTreeToBuffer(root: LayoutNode, buffer: Uint32Array, cols: number, rows: number): void;
@@ -1,3 +0,0 @@
1
- export * from "./layout.d.ts";
2
- export * from "./renderer.d.ts";
3
- export * from "./styles.d.ts";
@@ -1,39 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import React from "react";
3
- export type StaticProps<T> = {
4
- /**
5
- * Render function called for each item. Must assign a unique `key` to the
6
- * root element returned.
7
- */
8
- readonly children: (item: T, index: number) => ReactNode;
9
- /**
10
- * Array of items to render. Only newly-added items are rendered into the layout —
11
- * previously rendered items are frozen (never re-rendered or cleared).
12
- * Ideal for streaming output: completed tasks, log lines, test results.
13
- */
14
- readonly items: T[];
15
- /**
16
- * Optional styles for the static container Box.
17
- */
18
- readonly style?: Record<string, unknown>;
19
- };
20
- /**
21
- * `&lt;Static>` permanently renders its output above the dynamic UI.
22
- *
23
- * Items are rendered once and frozen — they are never re-rendered or cleared.
24
- * New items appended to `items` are rendered incrementally and accumulate
25
- * in the layout above the dynamic content.
26
- *
27
- * Matches the Ink `&lt;Static>` API exactly.
28
- * @example
29
- * ```tsx
30
- * <Static items={completedTasks}>
31
- * {task => (
32
- * <Box key={task.id}>
33
- * <Text color="green">✔ {task.title}</Text>
34
- * </Box>
35
- * )}
36
- * </Static>
37
- * ```
38
- */
39
- export declare function Static<T>({ children: renderItem, items, style }: StaticProps<T>): React.ReactElement;