@visulima/tui 1.0.0-alpha.1 → 1.0.0-alpha.10

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 (542) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/LICENSE.md +203 -9
  3. package/README.md +6 -6
  4. package/dist/core/index.d.ts +58 -5
  5. package/dist/core/index.js +1 -5
  6. package/dist/ink/index.d.ts +6574 -159
  7. package/dist/ink/index.js +1 -100
  8. package/dist/packem_chunks/devtools.js +3 -26
  9. package/dist/packem_shared/Accordion-BXsqchV-.js +1 -0
  10. package/dist/packem_shared/Alert-BhYVMHtR.js +1 -0
  11. package/dist/packem_shared/AnimatePresence-Eu7Z8KHc.js +1 -0
  12. package/dist/packem_shared/ApprovalPrompt-BSn0FT1g.js +1 -0
  13. package/dist/packem_shared/AreaChart-Chy-frI7.js +1 -0
  14. package/dist/packem_shared/Badge-B8WPyRsK.js +1 -0
  15. package/dist/packem_shared/BarChart-rpZtlMcF.js +1 -0
  16. package/dist/packem_shared/BigText-CRpwUzrt.js +1 -0
  17. package/dist/packem_shared/BlinkDot-BvnRuWP8.js +1 -0
  18. package/dist/packem_shared/Box-BwqSvWuq.js +1 -0
  19. package/dist/packem_shared/Breadcrumb-D0hClbRV.js +1 -0
  20. package/dist/packem_shared/Button-B89Yvbc6.js +1 -0
  21. package/dist/packem_shared/COLOR_BLINDNESS_SIMULATION-DqErf7XX.js +1 -0
  22. package/dist/packem_shared/Calendar-Dmflvm2S.js +1 -0
  23. package/dist/packem_shared/Canvas-CKg6WV47.js +1 -0
  24. package/dist/packem_shared/Card-B_9fXdtU.js +1 -0
  25. package/dist/packem_shared/Cell-BrXn3jxY.js +1 -0
  26. package/dist/packem_shared/Checkbox-BN71eCWU.js +1 -0
  27. package/dist/packem_shared/Code-HhevcyiH.js +2 -0
  28. package/dist/packem_shared/Collapsible-u6uf_FdV.js +1 -0
  29. package/dist/packem_shared/CommandBlock-B-nslpCv.js +4 -0
  30. package/dist/packem_shared/CommandPalette-CEFdaURo.js +1 -0
  31. package/dist/packem_shared/ConfirmDialog-5Jje_Xpu.js +1 -0
  32. package/dist/packem_shared/ConfirmInput-D44Mb9oo.js +1 -0
  33. package/dist/packem_shared/ConsoleOverlay-CM3APfgP.js +1 -0
  34. package/dist/packem_shared/ContentSwitcher-Dm5BkrCt.js +1 -0
  35. package/dist/packem_shared/ControlledScrollView-DI8KZOQB.js +1 -0
  36. package/dist/packem_shared/Cursor-BoLFIMol.js +1 -0
  37. package/dist/packem_shared/DatePicker-CnSrFFAE.js +1 -0
  38. package/dist/packem_shared/DefinitionList-v8RDuF_R.js +1 -0
  39. package/dist/packem_shared/DevTools-O8EbCfHa.js +1 -0
  40. package/dist/packem_shared/Dialog-CTaL8pn0.js +1 -0
  41. package/dist/packem_shared/DiffView-BUIFqUB0.js +1 -0
  42. package/dist/packem_shared/Divider-C47bKmqu.js +1 -0
  43. package/dist/packem_shared/FilePicker-CUo7R5Qb.js +1 -0
  44. package/dist/packem_shared/FocusContext-Xy0cwJpO.js +1 -0
  45. package/dist/packem_shared/FormField-af3aUpRL.js +1 -0
  46. package/dist/packem_shared/Fullscreen-CuJ8y0s0.js +1 -0
  47. package/dist/packem_shared/Gauge-Dz-usH__.js +1 -0
  48. package/dist/packem_shared/Gradient-DYNc0GZA.js +1 -0
  49. package/dist/packem_shared/Heading-mwEYza3Y.js +1 -0
  50. package/dist/packem_shared/Heatmap-ChL97U1-.js +1 -0
  51. package/dist/packem_shared/Help-Zcelyw_U.js +1 -0
  52. package/dist/packem_shared/Histogram-FIf2F83d.js +1 -0
  53. package/dist/packem_shared/IMECompositionBuffer-C89PhiOu.js +1 -0
  54. package/dist/packem_shared/InputParser-rZKjY_7Y.js +2 -0
  55. package/dist/packem_shared/KEY-Bk8B-3h_.js +1 -0
  56. package/dist/packem_shared/Kbd-DpkPp4jB.js +1 -0
  57. package/dist/packem_shared/LayoutNode-rxblE317.js +1 -0
  58. package/dist/packem_shared/LineChart-BXE_girm.js +1 -0
  59. package/dist/packem_shared/Link-i2o2EG4-.js +1 -0
  60. package/dist/packem_shared/LoadingIndicator-TC1Fjwyt.js +1 -0
  61. package/dist/packem_shared/Markdown-R1XqK63D.js +1 -0
  62. package/dist/packem_shared/MaskedInput-J01phOZs.js +1 -0
  63. package/dist/packem_shared/Menu-CfrH4ymk.js +1 -0
  64. package/dist/packem_shared/MessageBubble-BmBBU2Rm.js +1 -0
  65. package/dist/packem_shared/ModelBadge-D3wrXncu.js +1 -0
  66. package/dist/packem_shared/MouseProvider-pjza-lpc.js +1 -0
  67. package/dist/packem_shared/MultiSelect-Dqmn-bVo.js +1 -0
  68. package/dist/packem_shared/NAMED_COLORS-B9fJsYdg.js +1 -0
  69. package/dist/packem_shared/Newline-BSG4iUqp.js +2 -0
  70. package/dist/packem_shared/OperationTree-DksxjMIV.js +1 -0
  71. package/dist/packem_shared/OptionList-CNx7r9yN.js +1 -0
  72. package/dist/packem_shared/OrderedList-BeDy035w.js +1 -0
  73. package/dist/packem_shared/Paginator-B56s6bhS.js +1 -0
  74. package/dist/packem_shared/Paragraph-BqJlH0R-.js +1 -0
  75. package/dist/packem_shared/Placeholder-GMpHRGC8.js +1 -0
  76. package/dist/packem_shared/ProgressBar-Bj3fmORR.js +1 -0
  77. package/dist/packem_shared/RadioGroup-Br8BeEwS.js +1 -0
  78. package/dist/packem_shared/Renderer-DJXooAsp.js +1 -0
  79. package/dist/packem_shared/ResizeObserverEntry-Dq0dk8Kq.js +1 -0
  80. package/dist/packem_shared/ScatterPlot-OhfYco5l.js +1 -0
  81. package/dist/packem_shared/ScrollBar-Da5Y3z7N.js +1 -0
  82. package/dist/packem_shared/ScrollBarBox-Dz6F-Eat.js +1 -0
  83. package/dist/packem_shared/ScrollList-DiVGyEjv.js +1 -0
  84. package/dist/packem_shared/ScrollView-BojONotI.js +1 -0
  85. package/dist/packem_shared/SearchInput-BoPTRbhV.js +1 -0
  86. package/dist/packem_shared/SelectInput-CAJ7SCBq.js +1 -0
  87. package/dist/packem_shared/SelectInputIndicator-N1n8ULHs.js +1 -0
  88. package/dist/packem_shared/SelectInputItem-BEkbmobs.js +1 -0
  89. package/dist/packem_shared/ShimmerText-CuGQ2NDC.js +1 -0
  90. package/dist/packem_shared/Slider-Cg_tJpKa.js +1 -0
  91. package/dist/packem_shared/Spacer-eT3HOrXk.js +1 -0
  92. package/dist/packem_shared/Sparkline-T6_FPVET.js +1 -0
  93. package/dist/packem_shared/Spinner-B0-A50pu.js +1 -0
  94. package/dist/packem_shared/Static-DLynr5pn.js +1 -0
  95. package/dist/packem_shared/Static-jzLPaHJF.js +1 -0
  96. package/dist/packem_shared/StaticRender-BgD61E7x.js +1 -0
  97. package/dist/packem_shared/StatusLine-Ch4jjef1.js +1 -0
  98. package/dist/packem_shared/StatusMessage-B1qfKeMM.js +1 -0
  99. package/dist/packem_shared/Stepper-CNPAqxiU.js +1 -0
  100. package/dist/packem_shared/Stopwatch-CAx2EWwq.js +1 -0
  101. package/dist/packem_shared/StreamingText-BYOKSB2T.js +1 -0
  102. package/dist/packem_shared/Switch-DzSpKYu7.js +1 -0
  103. package/dist/packem_shared/Tab-BcXzSUdj.js +1 -0
  104. package/dist/packem_shared/Table-DJp1TLrR.js +1 -0
  105. package/dist/packem_shared/Tabs-D68z0SOt.js +1 -0
  106. package/dist/packem_shared/Tag-BvLHnYRn.js +1 -0
  107. package/dist/packem_shared/Text-mTAve9R2.js +1 -0
  108. package/dist/packem_shared/TextInput-C_gYQlnF.js +1 -0
  109. package/dist/packem_shared/Textarea-C2ET_oMb.js +2 -0
  110. package/dist/packem_shared/Timer-CI3aQX65.js +1 -0
  111. package/dist/packem_shared/Toast-Drvc8XfG.js +1 -0
  112. package/dist/packem_shared/Tooltip-C5UnQlLd.js +1 -0
  113. package/dist/packem_shared/Transform-fYmcdqRT.js +1 -0
  114. package/dist/packem_shared/Transition-CJDBKYUB.js +1 -0
  115. package/dist/packem_shared/TreeNodeMap-CspqSCpb.js +1 -0
  116. package/dist/packem_shared/TreeView-DjhacGJ5.js +1 -0
  117. package/dist/packem_shared/TuiApp-DrjI_i-R.js +1 -0
  118. package/dist/packem_shared/TuiContext-BoJvG3NN.js +3 -0
  119. package/dist/packem_shared/UnorderedList-BnfqexZs.js +1 -0
  120. package/dist/packem_shared/accessibility-context-DDyHTwmA.js +1 -0
  121. package/dist/packem_shared/animation-context-DW3p-vpk.js +1 -0
  122. package/dist/packem_shared/ansi-parser-B6uXaq65.js +1 -0
  123. package/dist/packem_shared/ansi-tokenizer-DqX9nJuk.js +1 -0
  124. package/dist/packem_shared/app-context-BVpKlG1z.js +1 -0
  125. package/dist/packem_shared/background-context-rjOaWFki.js +1 -0
  126. package/dist/packem_shared/boxes-DyY_LXCi.js +1 -0
  127. package/dist/packem_shared/braille-BBjIoaN0.js +1 -0
  128. package/dist/packem_shared/colorize-DbTZMrJO.js +1 -0
  129. package/dist/packem_shared/comparePoints-C85EsmNz.js +1 -0
  130. package/dist/packem_shared/controlled-scroll-view-CmrAEvJk.js +1 -0
  131. package/dist/packem_shared/createInlineLoop-DRNZ7jqH.js +2 -0
  132. package/dist/packem_shared/createLinkedScrollGroup-BMTJ7rAj.js +1 -0
  133. package/dist/packem_shared/createMemoryStorage-QVZNXbWz.js +2 -0
  134. package/dist/packem_shared/createScreen-CrLrxA6t.js +3 -0
  135. package/dist/packem_shared/cursor-context-CFviBqPX.js +1 -0
  136. package/dist/packem_shared/dom-4y__5fWB.js +1 -0
  137. package/dist/packem_shared/focus-context-CsT69klR.js +1 -0
  138. package/dist/packem_shared/format-time-C7Q-hQZq.js +1 -0
  139. package/dist/packem_shared/getPathToRoot-B2tKmx3i.js +1 -0
  140. package/dist/packem_shared/getScrollHeight-BTEY8ewu.js +1 -0
  141. package/dist/packem_shared/input-utils-fAxzSlNh.js +1 -0
  142. package/dist/packem_shared/input.d-Bfq7oc06.d.ts +90 -0
  143. package/dist/packem_shared/isIntersecting-B3KbKTmu.js +1 -0
  144. package/dist/packem_shared/isOsc52Supported-DKK7Uee6.js +1 -0
  145. package/dist/packem_shared/isTerminalPaletteQuerySupported-Dn2hFAZ_.js +1 -0
  146. package/dist/packem_shared/kittyFlags-C3rZLbcK.js +1 -0
  147. package/dist/packem_shared/line-chart-DrM8PwnI.js +1 -0
  148. package/dist/packem_shared/measure-element-DSp7YDus.js +2 -0
  149. package/dist/packem_shared/measure-text-DDjHT1jD.js +3 -0
  150. package/dist/packem_shared/measureElement-DA8WqFP_.js +1 -0
  151. package/dist/packem_shared/mouse-context-DaARgUu1.js +1 -0
  152. package/dist/packem_shared/parseSgrMouse-Ccj70ijb.js +1 -0
  153. package/dist/packem_shared/processLayout-DXDfFb_d.js +1 -0
  154. package/dist/packem_shared/reconciler-BuOP-TZ6.js +1 -0
  155. package/dist/packem_shared/reconciler-DSYCrIZs.js +1 -0
  156. package/dist/packem_shared/render-DDqtMAFN.js +1 -0
  157. package/dist/packem_shared/render-_r0K9K11.js +28 -0
  158. package/dist/packem_shared/render.d-BR3gA-N8.d.ts +1257 -0
  159. package/dist/packem_shared/renderToString-DeqOWRP8.js +4 -0
  160. package/dist/packem_shared/renderToString-IYYPyASm.js +2 -0
  161. package/dist/packem_shared/renderTreeToBuffer-DPkoCgP2.js +2 -0
  162. package/dist/packem_shared/renderer-D2p6av2X.js +17 -0
  163. package/dist/packem_shared/setEnableStyledLineCache-D2gZbwFM.js +1 -0
  164. package/dist/packem_shared/squashTextNodesWithMap-Cpqmc45i.js +1 -0
  165. package/dist/packem_shared/stderr-context-BzEaUICS.js +1 -0
  166. package/dist/packem_shared/stdin-context-BTaaFagk.js +1 -0
  167. package/dist/packem_shared/stdout-context-BnblEPez.js +1 -0
  168. package/dist/packem_shared/text-width-CZ9vPvM0.js +2 -0
  169. package/dist/packem_shared/token-to-elements-BYxT6J_Q.js +1 -0
  170. package/dist/packem_shared/treeViewTheme-1RIZyB4M.js +1 -0
  171. package/dist/packem_shared/useAnimation-B9we6ZzL.js +1 -0
  172. package/dist/packem_shared/useApp-B6fvM42d.js +1 -0
  173. package/dist/packem_shared/useBoxMetrics-D5pkIr6P.js +1 -0
  174. package/dist/packem_shared/useClipboard-CBxy0hT8.js +1 -0
  175. package/dist/packem_shared/useColorBlindness-BvWcu2Bb.js +1 -0
  176. package/dist/packem_shared/useConsoleCapture-BxiG8iLJ.js +1 -0
  177. package/dist/packem_shared/useCursor-CPu8T5Db.js +1 -0
  178. package/dist/packem_shared/useElementDimensions-qJ_WXFZ9.js +1 -0
  179. package/dist/packem_shared/useFocus-DSmziO_x.js +1 -0
  180. package/dist/packem_shared/useFocusManager-Uapn3LQo.js +1 -0
  181. package/dist/packem_shared/useForm-CzV-Oext.js +1 -0
  182. package/dist/packem_shared/useHotkey-D0dGey14.js +1 -0
  183. package/dist/packem_shared/useInput-D1_jG26Z.js +2 -0
  184. package/dist/packem_shared/useInterval-AobjZT3u.js +1 -0
  185. package/dist/packem_shared/useIsScreenReaderEnabled-DjWHh-II.js +1 -0
  186. package/dist/packem_shared/useKeyBindings-zabkEJQs.js +1 -0
  187. package/dist/packem_shared/useKeyChord-CICQIxXj.js +1 -0
  188. package/dist/packem_shared/useMouseAction-2dRfU1vE.js +1 -0
  189. package/dist/packem_shared/useMouseContext-C746G7kY.js +1 -0
  190. package/dist/packem_shared/useMousePosition-BTWfV4JK.js +1 -0
  191. package/dist/packem_shared/useOnMouseClick-nY8xLZmt.js +1 -0
  192. package/dist/packem_shared/useOnMouseHover-D3DczIol.js +1 -0
  193. package/dist/packem_shared/useOnMouseState-cRK8QvzD.js +1 -0
  194. package/dist/packem_shared/usePaste-CKKB9H-Z.js +1 -0
  195. package/dist/packem_shared/useScrollAcceleration-NrY1oVMs.js +1 -0
  196. package/dist/packem_shared/useScrollInput-Caghtn-Q.js +1 -0
  197. package/dist/packem_shared/useStderr-BDZb6InG.js +1 -0
  198. package/dist/packem_shared/useStdin-DKa4h35k.js +1 -0
  199. package/dist/packem_shared/useStdout-B-2lX4C5.js +1 -0
  200. package/dist/packem_shared/useStopwatch-DffK7iMh.js +1 -0
  201. package/dist/packem_shared/useTerminalPalette-Cv7tSduR.js +1 -0
  202. package/dist/packem_shared/useTextBuffer-DekkGLxI.js +4 -0
  203. package/dist/packem_shared/useTextSelection-CGT0GLDR.js +1 -0
  204. package/dist/packem_shared/useTimeout-7LEFYTnG.js +1 -0
  205. package/dist/packem_shared/useTimer-DyoqSyGi.js +1 -0
  206. package/dist/packem_shared/useTreeView-8UlTK6sW.js +1 -0
  207. package/dist/packem_shared/useTreeViewState-CRPCUWrb.js +1 -0
  208. package/dist/packem_shared/useWindowSize-yDZsXF8z.js +1 -0
  209. package/dist/packem_shared/utils-THUhYKG2.js +1 -0
  210. package/dist/packem_shared/variant-config-BJqpNo7H.js +1 -0
  211. package/dist/packem_shared/waitFor-Dj5zfL5s.js +4 -0
  212. package/dist/packem_shared/wrapOrTruncateStyledLine-BZ00SM8i.js +3 -0
  213. package/dist/react/index.d.ts +519 -8
  214. package/dist/react/index.js +1 -9
  215. package/dist/testing/index.d.ts +274 -135
  216. package/dist/testing/index.js +1 -260
  217. package/index.js +691 -539
  218. package/package.json +24 -28
  219. package/dist/core/app.d.ts +0 -50
  220. package/dist/core/cell.d.ts +0 -33
  221. package/dist/core/inline.d.ts +0 -22
  222. package/dist/core/input.d.ts +0 -18
  223. package/dist/core/native-binding.d.ts +0 -22
  224. package/dist/ink/ansi-to-cell.d.ts +0 -5
  225. package/dist/ink/ansi-tokenizer.d.ts +0 -38
  226. package/dist/ink/clipboard.d.ts +0 -29
  227. package/dist/ink/color-matrix.d.ts +0 -49
  228. package/dist/ink/color-utils.d.ts +0 -30
  229. package/dist/ink/colorize.d.ts +0 -4
  230. package/dist/ink/components/AccessibilityContext.d.ts +0 -4
  231. package/dist/ink/components/Alert.d.ts +0 -30
  232. package/dist/ink/components/AnimationContext.d.ts +0 -10
  233. package/dist/ink/components/App.d.ts +0 -19
  234. package/dist/ink/components/AppContext.d.ts +0 -38
  235. package/dist/ink/components/BackgroundContext.d.ts +0 -5
  236. package/dist/ink/components/Badge.d.ts +0 -27
  237. package/dist/ink/components/BigText.d.ts +0 -71
  238. package/dist/ink/components/Box.d.ts +0 -58
  239. package/dist/ink/components/Code.d.ts +0 -46
  240. package/dist/ink/components/ConfirmInput.d.ts +0 -40
  241. package/dist/ink/components/ConsoleOverlay.d.ts +0 -52
  242. package/dist/ink/components/Cursor.d.ts +0 -43
  243. package/dist/ink/components/CursorContext.d.ts +0 -12
  244. package/dist/ink/components/Dialog.d.ts +0 -93
  245. package/dist/ink/components/DiffView.d.ts +0 -71
  246. package/dist/ink/components/ErrorBoundary.d.ts +0 -17
  247. package/dist/ink/components/ErrorOverview.d.ts +0 -6
  248. package/dist/ink/components/FocusContext.d.ts +0 -17
  249. package/dist/ink/components/Gradient.d.ts +0 -38
  250. package/dist/ink/components/Help.d.ts +0 -49
  251. package/dist/ink/components/Link.d.ts +0 -34
  252. package/dist/ink/components/Markdown.d.ts +0 -34
  253. package/dist/ink/components/MultiSelect.d.ts +0 -63
  254. package/dist/ink/components/Newline.d.ts +0 -12
  255. package/dist/ink/components/OrderedList.d.ts +0 -30
  256. package/dist/ink/components/Paginator.d.ts +0 -75
  257. package/dist/ink/components/ProgressBar.d.ts +0 -51
  258. package/dist/ink/components/SelectInput.d.ts +0 -96
  259. package/dist/ink/components/SelectInputIndicator.d.ts +0 -36
  260. package/dist/ink/components/SelectInputItem.d.ts +0 -43
  261. package/dist/ink/components/Slider.d.ts +0 -92
  262. package/dist/ink/components/Spacer.d.ts +0 -7
  263. package/dist/ink/components/Spinner.d.ts +0 -42
  264. package/dist/ink/components/Static.d.ts +0 -24
  265. package/dist/ink/components/StaticRender.d.ts +0 -28
  266. package/dist/ink/components/StatusMessage.d.ts +0 -26
  267. package/dist/ink/components/StderrContext.d.ts +0 -16
  268. package/dist/ink/components/StdinContext.d.ts +0 -29
  269. package/dist/ink/components/StdoutContext.d.ts +0 -16
  270. package/dist/ink/components/Stopwatch.d.ts +0 -44
  271. package/dist/ink/components/Tab.d.ts +0 -25
  272. package/dist/ink/components/Table.d.ts +0 -80
  273. package/dist/ink/components/Tabs.d.ts +0 -97
  274. package/dist/ink/components/Text.d.ts +0 -63
  275. package/dist/ink/components/TextInput.d.ts +0 -48
  276. package/dist/ink/components/Textarea.d.ts +0 -62
  277. package/dist/ink/components/Timer.d.ts +0 -52
  278. package/dist/ink/components/Transform.d.ts +0 -16
  279. package/dist/ink/components/UnorderedList.d.ts +0 -35
  280. package/dist/ink/components/file-picker/FilePicker.d.ts +0 -75
  281. package/dist/ink/components/file-picker/index.d.ts +0 -3
  282. package/dist/ink/components/file-picker/types.d.ts +0 -38
  283. package/dist/ink/components/file-picker/use-file-system.d.ts +0 -16
  284. package/dist/ink/components/scroll/ControlledScrollView.d.ts +0 -43
  285. package/dist/ink/components/scroll/ScrollBar.d.ts +0 -20
  286. package/dist/ink/components/scroll/ScrollBarBox.d.ts +0 -15
  287. package/dist/ink/components/scroll/ScrollList.d.ts +0 -12
  288. package/dist/ink/components/scroll/ScrollView.d.ts +0 -98
  289. package/dist/ink/components/scroll/index.d.ts +0 -10
  290. package/dist/ink/components/scroll/use-state-ref.d.ts +0 -8
  291. package/dist/ink/components/tree-view/TreeView.d.ts +0 -89
  292. package/dist/ink/components/tree-view/TreeViewNode.d.ts +0 -29
  293. package/dist/ink/components/tree-view/index.d.ts +0 -11
  294. package/dist/ink/components/tree-view/theme.d.ts +0 -24
  295. package/dist/ink/components/tree-view/tree-node-map.d.ts +0 -72
  296. package/dist/ink/components/tree-view/types.d.ts +0 -55
  297. package/dist/ink/components/tree-view/use-tree-view-state.d.ts +0 -135
  298. package/dist/ink/components/tree-view/use-tree-view.d.ts +0 -26
  299. package/dist/ink/components/variant-config.d.ts +0 -10
  300. package/dist/ink/cursor-helpers.d.ts +0 -38
  301. package/dist/ink/data-limited-lru-map.d.ts +0 -21
  302. package/dist/ink/devtools-window-polyfill.d.ts +0 -1
  303. package/dist/ink/devtools.d.ts +0 -1
  304. package/dist/ink/dom.d.ts +0 -213
  305. package/dist/ink/get-max-width.d.ts +0 -3
  306. package/dist/ink/highlighter.d.ts +0 -28
  307. package/dist/ink/hooks/use-animation.d.ts +0 -43
  308. package/dist/ink/hooks/use-app.d.ts +0 -6
  309. package/dist/ink/hooks/use-box-metrics.d.ts +0 -58
  310. package/dist/ink/hooks/use-clipboard.d.ts +0 -29
  311. package/dist/ink/hooks/use-color-blindness.d.ts +0 -33
  312. package/dist/ink/hooks/use-console-capture.d.ts +0 -43
  313. package/dist/ink/hooks/use-cursor.d.ts +0 -12
  314. package/dist/ink/hooks/use-focus-manager.d.ts +0 -42
  315. package/dist/ink/hooks/use-focus.d.ts +0 -30
  316. package/dist/ink/hooks/use-input.d.ts +0 -149
  317. package/dist/ink/hooks/use-is-screen-reader-enabled.d.ts +0 -6
  318. package/dist/ink/hooks/use-key-bindings.d.ts +0 -61
  319. package/dist/ink/hooks/use-linked-scroll.d.ts +0 -41
  320. package/dist/ink/hooks/use-paste.d.ts +0 -44
  321. package/dist/ink/hooks/use-scroll-acceleration.d.ts +0 -47
  322. package/dist/ink/hooks/use-scroll-input.d.ts +0 -34
  323. package/dist/ink/hooks/use-stderr.d.ts +0 -6
  324. package/dist/ink/hooks/use-stdin.d.ts +0 -7
  325. package/dist/ink/hooks/use-stdout.d.ts +0 -6
  326. package/dist/ink/hooks/use-stopwatch.d.ts +0 -40
  327. package/dist/ink/hooks/use-terminal-palette.d.ts +0 -19
  328. package/dist/ink/hooks/use-text-buffer.d.ts +0 -42
  329. package/dist/ink/hooks/use-text-selection.d.ts +0 -45
  330. package/dist/ink/hooks/use-timer.d.ts +0 -49
  331. package/dist/ink/hooks/use-window-size.d.ts +0 -18
  332. package/dist/ink/ime-utils.d.ts +0 -25
  333. package/dist/ink/ink.d.ts +0 -189
  334. package/dist/ink/input-parser.d.ts +0 -10
  335. package/dist/ink/input-utils.d.ts +0 -16
  336. package/dist/ink/instances.d.ts +0 -3
  337. package/dist/ink/kitty-keyboard.d.ts +0 -23
  338. package/dist/ink/layout.d.ts +0 -26
  339. package/dist/ink/log-update-native.d.ts +0 -14
  340. package/dist/ink/log-update.d.ts +0 -21
  341. package/dist/ink/measure-element.d.ts +0 -147
  342. package/dist/ink/measure-text.d.ts +0 -56
  343. package/dist/ink/mouse/Fullscreen.d.ts +0 -8
  344. package/dist/ink/mouse/MouseProvider.d.ts +0 -11
  345. package/dist/ink/mouse/ansi-parser.d.ts +0 -37
  346. package/dist/ink/mouse/constants.d.ts +0 -59
  347. package/dist/ink/mouse/index.d.ts +0 -20
  348. package/dist/ink/mouse/is-intersecting.d.ts +0 -18
  349. package/dist/ink/mouse/mouse-context.d.ts +0 -36
  350. package/dist/ink/mouse/use-element-position.d.ts +0 -29
  351. package/dist/ink/mouse/use-mouse-action.d.ts +0 -7
  352. package/dist/ink/mouse/use-mouse-position.d.ts +0 -7
  353. package/dist/ink/mouse/use-mouse.d.ts +0 -7
  354. package/dist/ink/mouse/use-on-mouse-click.d.ts +0 -14
  355. package/dist/ink/mouse/use-on-mouse-hover.d.ts +0 -8
  356. package/dist/ink/mouse/use-on-mouse-state.d.ts +0 -11
  357. package/dist/ink/output.d.ts +0 -74
  358. package/dist/ink/parse-keypress.d.ts +0 -22
  359. package/dist/ink/reconciler.d.ts +0 -3
  360. package/dist/ink/region.d.ts +0 -99
  361. package/dist/ink/render-background.d.ts +0 -4
  362. package/dist/ink/render-border.d.ts +0 -4
  363. package/dist/ink/render-node-to-output.d.ts +0 -38
  364. package/dist/ink/render-scrollbar.d.ts +0 -9
  365. package/dist/ink/render-sticky.d.ts +0 -44
  366. package/dist/ink/render-to-string.d.ts +0 -37
  367. package/dist/ink/render.d.ts +0 -191
  368. package/dist/ink/renderer.d.ts +0 -17
  369. package/dist/ink/resize-observer.d.ts +0 -44
  370. package/dist/ink/sanitize-ansi.d.ts +0 -2
  371. package/dist/ink/scroll.d.ts +0 -23
  372. package/dist/ink/selection.d.ts +0 -70
  373. package/dist/ink/squash-text-nodes.d.ts +0 -18
  374. package/dist/ink/style-flags.d.ts +0 -17
  375. package/dist/ink/styled-line-factory.d.ts +0 -25
  376. package/dist/ink/styled-line-serializer.d.ts +0 -18
  377. package/dist/ink/styled-line.d.ts +0 -109
  378. package/dist/ink/styles.d.ts +0 -369
  379. package/dist/ink/terminal-palette.d.ts +0 -25
  380. package/dist/ink/text-wrap.d.ts +0 -10
  381. package/dist/ink/token-to-elements.d.ts +0 -22
  382. package/dist/ink/utils/format-time.d.ts +0 -4
  383. package/dist/ink/utils.d.ts +0 -9
  384. package/dist/ink/wrap-text.d.ts +0 -3
  385. package/dist/ink/write-synchronized.d.ts +0 -4
  386. package/dist/packem_shared/AccessibilityContext-BLelHhNU.js +0 -7
  387. package/dist/packem_shared/Alert-Dr3s_LD9.js +0 -17
  388. package/dist/packem_shared/AnimationContext-BcJg8Jr6.js +0 -15
  389. package/dist/packem_shared/AppContext-CP0U6H7O.js +0 -11
  390. package/dist/packem_shared/BackgroundContext-BAUaxfOb.js +0 -5
  391. package/dist/packem_shared/Badge-Dk7EGGM6.js +0 -13
  392. package/dist/packem_shared/BigText-CjMdY63X.js +0 -24
  393. package/dist/packem_shared/Box-D_pSJ9Jp.js +0 -73
  394. package/dist/packem_shared/COLOR_BLINDNESS_SIMULATION-BsMy5Ewl.js +0 -81
  395. package/dist/packem_shared/Cell-DCg1kJY-.js +0 -48
  396. package/dist/packem_shared/Code-DjQvPBD9.js +0 -53
  397. package/dist/packem_shared/ConfirmInput-85Y4kRQW.js +0 -44
  398. package/dist/packem_shared/ConsoleOverlay-DBNa4vtj.js +0 -57
  399. package/dist/packem_shared/ControlledScrollView-BlOaxcsN.js +0 -286
  400. package/dist/packem_shared/ControlledScrollView-DfAhcufF.js +0 -5
  401. package/dist/packem_shared/Cursor-DiW7YoSK.js +0 -18
  402. package/dist/packem_shared/CursorContext-JxRzlqAx.js +0 -9
  403. package/dist/packem_shared/DevTools-aMPIsaHx.js +0 -61
  404. package/dist/packem_shared/Dialog-DsSNAVgC.js +0 -71
  405. package/dist/packem_shared/DiffView-hqaw-2S6.js +0 -329
  406. package/dist/packem_shared/FilePicker-DNwFxRhq.js +0 -254
  407. package/dist/packem_shared/FocusContext-CWkYtgcm.js +0 -26
  408. package/dist/packem_shared/FocusContext-D5wFxSRz.js +0 -153
  409. package/dist/packem_shared/Fullscreen-DrElAE1o.js +0 -11
  410. package/dist/packem_shared/Gradient-Ql5P0GUd.js +0 -136
  411. package/dist/packem_shared/Help-6wanGG38.js +0 -112
  412. package/dist/packem_shared/IMECompositionBuffer-Dl3S0KnF.js +0 -55
  413. package/dist/packem_shared/InputParser-BKHpWfvN.js +0 -156
  414. package/dist/packem_shared/LayoutNode-Cjnsodiy.js +0 -131
  415. package/dist/packem_shared/Link-COcKYfGT.js +0 -66
  416. package/dist/packem_shared/Markdown-y1ISztof.js +0 -212
  417. package/dist/packem_shared/MouseProvider-Y9TSSEGl.js +0 -136
  418. package/dist/packem_shared/MultiSelect-ChoLUcDI.js +0 -129
  419. package/dist/packem_shared/NAMED_COLORS-a4QBvb5r.js +0 -262
  420. package/dist/packem_shared/Newline-DBtYEg8x.js +0 -7
  421. package/dist/packem_shared/OrderedList-Cp7pXr6m.js +0 -26
  422. package/dist/packem_shared/Paginator-D1AuD-kj.js +0 -104
  423. package/dist/packem_shared/ProgressBar-DOfpVagn.js +0 -22
  424. package/dist/packem_shared/Renderer-zZ5O3vxc.js +0 -31
  425. package/dist/packem_shared/ResizeObserverEntry-Br4seLeQ.js +0 -102
  426. package/dist/packem_shared/ScrollBar-EWAs2Uc7.js +0 -106
  427. package/dist/packem_shared/ScrollBarBox-DTNNlh7R.js +0 -72
  428. package/dist/packem_shared/ScrollList-DCeIFL8M.js +0 -227
  429. package/dist/packem_shared/ScrollView-v3MCNIyX.js +0 -196
  430. package/dist/packem_shared/SelectInput-BN2TMyxp.js +0 -260
  431. package/dist/packem_shared/SelectInputIndicator-DkRMoH_b.js +0 -9
  432. package/dist/packem_shared/SelectInputItem-BF9LQgKu.js +0 -8
  433. package/dist/packem_shared/Slider-BWD7xZX6.js +0 -116
  434. package/dist/packem_shared/Spacer-Bs4ER-HK.js +0 -8
  435. package/dist/packem_shared/Spinner-BuI-kN4p.js +0 -1799
  436. package/dist/packem_shared/Static-DpTd6Eed.js +0 -22
  437. package/dist/packem_shared/Static-xmD9giJj.js +0 -18
  438. package/dist/packem_shared/StaticRender-tYwH6QXl.js +0 -33
  439. package/dist/packem_shared/StatusMessage-BtSYxzwb.js +0 -14
  440. package/dist/packem_shared/StderrContext-Bj4Mf7v7.js +0 -17
  441. package/dist/packem_shared/StdinContext-Bq_GNJ3z.js +0 -38
  442. package/dist/packem_shared/StdoutContext-CgjWeCdO.js +0 -17
  443. package/dist/packem_shared/Stopwatch-DjtTCyHn.js +0 -23
  444. package/dist/packem_shared/Tab-C6r5q4hR.js +0 -7
  445. package/dist/packem_shared/Table-D-rSVlzb.js +0 -82
  446. package/dist/packem_shared/Tabs-BXpZwLWo.js +0 -146
  447. package/dist/packem_shared/Text-DvAUdZcK.js +0 -65
  448. package/dist/packem_shared/TextInput-C79WEQ5U.js +0 -137
  449. package/dist/packem_shared/Textarea-Dj06R6Zd.js +0 -272
  450. package/dist/packem_shared/Timer-wi9zuh4n.js +0 -22
  451. package/dist/packem_shared/Transform-BHxY_dAM.js +0 -14
  452. package/dist/packem_shared/TreeNodeMap-CtJUvBnd.js +0 -155
  453. package/dist/packem_shared/TreeView-C2062dtj.js +0 -148
  454. package/dist/packem_shared/TuiApp-DfxOnXqi.js +0 -120
  455. package/dist/packem_shared/TuiContext-CqEjMyXd.js +0 -415
  456. package/dist/packem_shared/UnorderedList-DhnadWjX.js +0 -33
  457. package/dist/packem_shared/ansi-parser-0BdVTKho.js +0 -41
  458. package/dist/packem_shared/ansi-tokenizer-LHq2LUWA.js +0 -307
  459. package/dist/packem_shared/boxes-oi3WUbyR.js +0 -92
  460. package/dist/packem_shared/colorize-88_Vk8cn.js +0 -48
  461. package/dist/packem_shared/comparePoints-CGMDnd3_.js +0 -287
  462. package/dist/packem_shared/createInlineLoop-BxMmcq9D.js +0 -93
  463. package/dist/packem_shared/createLinkedScrollGroup-Djw4Ceo0.js +0 -44
  464. package/dist/packem_shared/dom-DvzhsAez.js +0 -225
  465. package/dist/packem_shared/format-time-BGmnDukX.js +0 -12
  466. package/dist/packem_shared/getPathToRoot-a1wbwxfL.js +0 -4
  467. package/dist/packem_shared/getScrollHeight-BubfU_df.js +0 -63
  468. package/dist/packem_shared/input-utils-ViAEXa0Z.js +0 -19
  469. package/dist/packem_shared/isIntersecting-fEXHJN5R.js +0 -10
  470. package/dist/packem_shared/isOsc52Supported-G0k4sXJx.js +0 -36
  471. package/dist/packem_shared/isTerminalPaletteQuerySupported-EeiwMKbr.js +0 -93
  472. package/dist/packem_shared/kittyFlags-bNNf_9kX.js +0 -26
  473. package/dist/packem_shared/measure-element-Reza_yfC.js +0 -396
  474. package/dist/packem_shared/measure-text-DItZYotK.js +0 -1189
  475. package/dist/packem_shared/measureElement-CTgFCmKd.js +0 -4
  476. package/dist/packem_shared/mouse-context-BUHWKEIe.js +0 -6
  477. package/dist/packem_shared/parseSgrMouse-BHVBPP9G.js +0 -1
  478. package/dist/packem_shared/processLayout-BQ9kXfd3.js +0 -2
  479. package/dist/packem_shared/reconciler-BXf6miSS.js +0 -211
  480. package/dist/packem_shared/reconciler-gfmqURLy.js +0 -680
  481. package/dist/packem_shared/render-BAwdjfki.js +0 -2806
  482. package/dist/packem_shared/render-Bpjhf0lD.js +0 -195
  483. package/dist/packem_shared/renderToString-Cfg55DRD.js +0 -62
  484. package/dist/packem_shared/renderToString-ClIaXgrC.js +0 -86
  485. package/dist/packem_shared/renderTreeToBuffer-D3mo7M7m.js +0 -308
  486. package/dist/packem_shared/renderer-B3wROkeg.js +0 -1431
  487. package/dist/packem_shared/setEnableStyledLineCache-BpskngSJ.js +0 -2
  488. package/dist/packem_shared/squashTextNodesWithMap-iqm6OMMT.js +0 -100
  489. package/dist/packem_shared/text-width-DhuarWcB.js +0 -42
  490. package/dist/packem_shared/token-to-elements-BRFl_rzw.js +0 -249
  491. package/dist/packem_shared/treeViewTheme-BpSw9TMf.js +0 -52
  492. package/dist/packem_shared/useAnimation-kj31sA-T.js +0 -62
  493. package/dist/packem_shared/useApp-DPQlRzi5.js +0 -6
  494. package/dist/packem_shared/useBoxMetrics-rBjKc-g4.js +0 -54
  495. package/dist/packem_shared/useClipboard-B_9-adw1.js +0 -23
  496. package/dist/packem_shared/useColorBlindness-D_sTIhcb.js +0 -30
  497. package/dist/packem_shared/useConsoleCapture-Dvt7G1W1.js +0 -61
  498. package/dist/packem_shared/useCursor-BIJzc8k9.js +0 -19
  499. package/dist/packem_shared/useElementDimensions-CAoKitVD.js +0 -67
  500. package/dist/packem_shared/useFocus-CNl5QHHf.js +0 -37
  501. package/dist/packem_shared/useFocusManager-BPYaUuKQ.js +0 -16
  502. package/dist/packem_shared/useInput-Cfp5zB2s.js +0 -594
  503. package/dist/packem_shared/useIsScreenReaderEnabled-CnGKCe0f.js +0 -9
  504. package/dist/packem_shared/useKeyBindings-B78l1E1n.js +0 -66
  505. package/dist/packem_shared/useMouseAction-C5gZ2nj7.js +0 -29
  506. package/dist/packem_shared/useMouseContext-D-rFy60Q.js +0 -12
  507. package/dist/packem_shared/useMousePosition-BHBJ-kBk.js +0 -25
  508. package/dist/packem_shared/useOnMouseClick--ZIyBOBO.js +0 -35
  509. package/dist/packem_shared/useOnMouseHover-26diuXUC.js +0 -32
  510. package/dist/packem_shared/useOnMouseState-NO_Kda_C.js +0 -13
  511. package/dist/packem_shared/usePaste-Ct8J4AGR.js +0 -35
  512. package/dist/packem_shared/useScrollAcceleration-R9LfrPVG.js +0 -73
  513. package/dist/packem_shared/useScrollInput-D3CpBq_a.js +0 -72
  514. package/dist/packem_shared/useStderr-CAOVUh4E.js +0 -6
  515. package/dist/packem_shared/useStdin-X-O0kd-n.js +0 -7
  516. package/dist/packem_shared/useStdout-DyF6DSH0.js +0 -6
  517. package/dist/packem_shared/useStopwatch-qC4Beai4.js +0 -33
  518. package/dist/packem_shared/useTerminalPalette-BaWO2c4Q.js +0 -38
  519. package/dist/packem_shared/useTextBuffer-C8fEe9Ly.js +0 -398
  520. package/dist/packem_shared/useTextSelection-mXtxgsPK.js +0 -50
  521. package/dist/packem_shared/useTimer-CPQ7j827.js +0 -46
  522. package/dist/packem_shared/useTreeView-BT57P3Kx.js +0 -101
  523. package/dist/packem_shared/useTreeViewState-BpS_KZ-K.js +0 -502
  524. package/dist/packem_shared/useWindowSize-ugEmGZJm.js +0 -20
  525. package/dist/packem_shared/utils-BgdlrbOH.js +0 -140
  526. package/dist/packem_shared/variant-config-DSZoX5TM.js +0 -8
  527. package/dist/packem_shared/wrapOrTruncateStyledLine-DN3Nogoc.js +0 -147
  528. package/dist/react/devtools.d.ts +0 -27
  529. package/dist/react/focus.d.ts +0 -39
  530. package/dist/react/hooks.d.ts +0 -238
  531. package/dist/react/layout.d.ts +0 -35
  532. package/dist/react/react.d.ts +0 -57
  533. package/dist/react/reconciler.d.ts +0 -4
  534. package/dist/react/render-to-string.d.ts +0 -21
  535. package/dist/react/renderer.d.ts +0 -2
  536. package/dist/react/scene.d.ts +0 -3
  537. package/dist/react/static.d.ts +0 -39
  538. package/dist/react/styles.d.ts +0 -83
  539. package/dist/react/text-width.d.ts +0 -20
  540. package/dist/testing/keys.d.ts +0 -89
  541. package/dist/testing/screen.d.ts +0 -35
  542. package/dist/testing/wait-for.d.ts +0 -21
@@ -1,45 +0,0 @@
1
- /**
2
- * React hook for managing text selection with keyboard and clipboard integration.
3
- *
4
- * Builds on the existing Selection/Range classes from `../selection.ts` and
5
- * provides a high-level API for Shift+Arrow selection and copy-to-clipboard.
6
- */
7
- import type { RefObject } from "react";
8
- import type { DOMElement } from "../dom.d.ts";
9
- import { Selection } from "../selection.d.ts";
10
- export type UseTextSelectionOptions = {
11
- /**
12
- * Automatically copy selected text to clipboard when selection changes.
13
- * @default false
14
- */
15
- readonly copyOnSelect?: boolean;
16
- /**
17
- * Enable or disable text selection.
18
- * @default true
19
- */
20
- readonly isActive?: boolean;
21
- /**
22
- * Called whenever the selection changes.
23
- */
24
- readonly onSelectionChange?: (selectedText: string) => void;
25
- };
26
- export type UseTextSelectionResult = {
27
- /** Clear the current selection. */
28
- readonly clearSelection: () => void;
29
- /** Select all content within the referenced element. */
30
- readonly selectAll: () => void;
31
- /** The currently selected text. */
32
- readonly selectedText: string;
33
- /** The underlying Selection instance. */
34
- readonly selection: Selection;
35
- };
36
- /**
37
- * Hook for managing text selection on a DOM element.
38
- *
39
- * ```tsx
40
- * const ref = useRef(null);
41
- * const { selectedText, selectAll, clearSelection } = useTextSelection(ref);
42
- * ```
43
- */
44
- declare const useTextSelection: (ref: RefObject<DOMElement | null>, options?: UseTextSelectionOptions) => UseTextSelectionResult;
45
- export default useTextSelection;
@@ -1,49 +0,0 @@
1
- export type UseTimerOptions = {
2
- /**
3
- * Whether to start the timer immediately.
4
- *
5
- * @default false
6
- */
7
- readonly autoStart?: boolean;
8
- /**
9
- * Total countdown duration in milliseconds.
10
- */
11
- readonly duration: number;
12
- /**
13
- * Tick interval in milliseconds.
14
- *
15
- * @default 1000
16
- */
17
- readonly interval?: number;
18
- /**
19
- * Called once when the timer reaches zero.
20
- */
21
- readonly onTimeout?: () => void;
22
- };
23
- export type UseTimerResult = {
24
- /** Whether the countdown has reached zero. */
25
- readonly isFinished: boolean;
26
- /** Whether the timer is currently counting down. */
27
- readonly isRunning: boolean;
28
- /** Milliseconds remaining (clamped to >= 0). */
29
- readonly remaining: number;
30
- /** Reset the timer to the original duration and stop it. */
31
- readonly reset: () => void;
32
- /** Start the countdown. */
33
- readonly start: () => void;
34
- /** Stop (pause) the countdown. */
35
- readonly stop: () => void;
36
- /** Toggle between running and stopped. */
37
- readonly toggle: () => void;
38
- };
39
- /**
40
- * A countdown timer hook built on `useAnimation`.
41
- *
42
- * ```tsx
43
- * const { remaining, isRunning, start, stop, reset, isFinished } = useTimer({
44
- * duration: 60_000,
45
- * onTimeout: () => console.log("Time's up!"),
46
- * });
47
- * ```
48
- */
49
- export default function useTimer(options: UseTimerOptions): UseTimerResult;
@@ -1,18 +0,0 @@
1
- /**
2
- * Dimensions of the terminal window.
3
- */
4
- export type WindowSize = {
5
- /**
6
- * Number of columns (horizontal character cells).
7
- */
8
- readonly columns: number;
9
- /**
10
- * Number of rows (vertical character cells).
11
- */
12
- readonly rows: number;
13
- };
14
- /**
15
- * A React hook that returns the current terminal window dimensions and re-renders the component whenever the terminal is resized.
16
- */
17
- declare const useWindowSize: () => WindowSize;
18
- export default useWindowSize;
@@ -1,25 +0,0 @@
1
- /**
2
- * Detect whether a string contains non-ASCII characters that are likely
3
- * IME (Input Method Editor) composition input — CJK ideographs, Hangul,
4
- * Thai, Vietnamese diacritics, etc.
5
- */
6
- declare const isIMEInput: (data: string) => boolean;
7
- type IMECompositionBufferOptions = {
8
- onFlush: (text: string) => void;
9
- timeout: number;
10
- };
11
- /**
12
- * Buffers rapid multi-byte character input from IME and flushes the
13
- * accumulated text after a configurable timeout.
14
- */
15
- declare class IMECompositionBuffer {
16
- private buffer;
17
- private timer;
18
- private readonly onFlush;
19
- private readonly timeout;
20
- constructor({ onFlush, timeout }: IMECompositionBufferOptions);
21
- add(text: string): void;
22
- flush(): void;
23
- destroy(): void;
24
- }
25
- export { IMECompositionBuffer, isIMEInput };
package/dist/ink/ink.d.ts DELETED
@@ -1,189 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import * as dom from "./dom.d.ts";
3
- import type { KittyKeyboardOptions } from "./kitty-keyboard.d.ts";
4
- import type { CursorPosition } from "./log-update.d.ts";
5
- /**
6
- * Performance metrics for a render operation.
7
- */
8
- export type RenderMetrics = {
9
- /**
10
- * Time spent rendering in milliseconds.
11
- */
12
- renderTime: number;
13
- };
14
- export type Options = {
15
- /**
16
- * Render the app in the terminal's alternate screen buffer. When enabled, the app renders on a separate screen, and the original terminal content is restored when the app exits. This is the same mechanism used by programs like vim, htop, and less.
17
- *
18
- * Note: The terminal's scrollback buffer is not available while in the alternate screen. This is standard terminal behavior; programs like vim use the alternate screen specifically to avoid polluting the user's scrollback history.
19
- *
20
- * Note: Ink intentionally treats alternate-screen teardown output as disposable. It does not preserve or replay teardown-time frames, hook writes, or `console.*` output after restoring the primary screen.
21
- *
22
- Only works in interactive mode. Ignored when `interactive` is `false` or in a non-interactive environment (CI, piped stdout).
23
-
24
- Note: Reusing the same stdout across multiple `render()` calls without unmounting is unsupported. Call `unmount()` first if you need to change this option or create a fresh instance.
25
-
26
- @default false
27
-
28
- @see {@link RenderOptions.alternateScreen}
29
- */
30
- alternateScreen?: boolean;
31
- /**
32
- * Enable React Concurrent Rendering mode.
33
- *
34
- * When enabled:
35
- * - Suspense boundaries work correctly with async data
36
- * - `useTransition` and `useDeferredValue` are fully functional
37
- - Updates can be interrupted for higher priority work
38
-
39
- Note: Concurrent mode changes the timing of renders. Some tests may need to use `act()` to properly await updates. Reusing the same stdout across multiple `render()` calls without unmounting is unsupported. Call `unmount()` first if you need to change the rendering mode or create a fresh instance.
40
-
41
- @default false
42
- @experimental
43
- */
44
- concurrent?: boolean;
45
- debug: boolean;
46
- exitOnCtrlC: boolean;
47
- incrementalRendering?: boolean;
48
- /**
49
- * Override automatic interactive mode detection.
50
- *
51
- * By default, Ink detects whether the environment is interactive based on CI detection (via [`is-in-ci`](https://github.com/sindresorhus/is-in-ci)) and `stdout.isTTY`. Most users should not need to set this.
52
- *
53
- * When non-interactive, Ink disables ANSI erase sequences, cursor manipulation, synchronized output, resize handling, and kitty keyboard auto-detection, writing only the final frame at unmount.
54
- *
55
- Set to `false` to force non-interactive mode or `true` to force interactive mode when the automatic detection doesn't suit your use case.
56
-
57
- Note: Reusing the same stdout across multiple `render()` calls without unmounting is unsupported. Call `unmount()` first if you need to change this option or create a fresh instance.
58
-
59
- @default true (false if in CI or `stdout.isTTY` is falsy)
60
-
61
- @see {@link RenderOptions.interactive}
62
- */
63
- interactive?: boolean;
64
- isScreenReaderEnabled?: boolean;
65
- kittyKeyboard?: KittyKeyboardOptions;
66
- maxFps?: number;
67
- onRender?: (metrics: RenderMetrics) => void;
68
- patchConsole: boolean;
69
- standardReactLayoutTiming?: boolean;
70
- /**
71
- * Whether to track text selection state during rendering.
72
- *
73
- * @default false
74
- */
75
- trackSelection?: boolean;
76
- stderr: NodeJS.WriteStream;
77
- stdin: NodeJS.ReadStream;
78
- stdout: NodeJS.WriteStream;
79
- /**
80
- * Use the native Rust cell-diff renderer instead of ANSI string-based log-update.
81
- * Produces a Uint32Array buffer that the Rust renderer diffs cell-by-cell,
82
- * generating minimal ANSI escape sequences. Significantly reduces GC pressure
83
- * and improves rendering performance for complex UIs.
84
- *
85
- * Falls back to the string-based path if native bindings are not available.
86
- * @default false
87
- */
88
- useNativeRenderer?: boolean;
89
- waitUntilExit?: () => Promise<unknown>;
90
- };
91
- export default class Ink {
92
- /**
93
- * Whether this instance is using concurrent rendering mode.
94
- */
95
- readonly isConcurrent: boolean;
96
- private readonly options;
97
- private readonly log;
98
- private manualCursorPosition;
99
- private renderedCursorPosition;
100
- private renderedCursorRequested;
101
- private readonly throttledLog;
102
- private readonly isScreenReaderEnabled;
103
- private readonly interactive;
104
- private readonly renderThrottleMs;
105
- private alternateScreen;
106
- private isUnmounted;
107
- private isUnmounting;
108
- private lastOutput;
109
- private lastOutputToRender;
110
- private lastOutputHeight;
111
- private lastTerminalWidth;
112
- private readonly nativeLog;
113
- private readonly useNativeRenderer;
114
- private readonly container;
115
- readonly rootNode: dom.DOMElement;
116
- private fullStaticOutput;
117
- private readonly exitPromise;
118
- private exitResult;
119
- private beforeExitHandler?;
120
- private restoreConsole?;
121
- private unsubscribeResize?;
122
- private readonly throttledOnRender?;
123
- private hasPendingThrottledRender;
124
- private kittyProtocolEnabled;
125
- private cancelKittyDetection?;
126
- private nextRenderCommit?;
127
- private deferredInitDone;
128
- constructor(options: Options);
129
- /**
130
- * Perform deferred initialization on the first render frame.
131
- * Kitty keyboard auto-detection is deferred here because the CSI ? u
132
- * query sets up a synchronous stdin listener with a 200ms timeout.
133
- * "enabled" mode runs immediately in the constructor (it's just a write).
134
- */
135
- private runDeferredInit;
136
- resized: () => void;
137
- resolveExitPromise: (result?: unknown) => void;
138
- rejectExitPromise: (reason?: Error) => void;
139
- unsubscribeExit: () => void;
140
- handleAppExit: (errorOrResult?: unknown) => void;
141
- getActiveCursorPosition: () => CursorPosition | undefined;
142
- setCursorPosition: (position: CursorPosition | undefined) => void;
143
- restoreLastOutput: () => void;
144
- calculateLayout: () => void;
145
- private calculateScrollAndTriggerObservers;
146
- /**
147
- * Force a full layout recalculation by marking all text nodes dirty.
148
- * Useful when the string width function changes or terminal font changes.
149
- */
150
- recalculateLayout(): void;
151
- /**
152
- * Walk the DOM tree before Yoga layout to handle StaticRender nodes:
153
- * - Re-attach Yoga children if a cached render was invalidated
154
- * - Pre-render ink-static-render nodes that don't have a cached render yet
155
- */
156
- private prepareYogaTree;
157
- private markAllTextNodesDirty;
158
- onRender: () => void;
159
- private accessibilityContextValue;
160
- render(node: ReactNode): void;
161
- writeToStdout: (data: string) => void;
162
- writeToStderr: (data: string) => void;
163
- unmount: (error?: Error | number | null) => void;
164
- waitUntilExit(): Promise<unknown>;
165
- waitUntilRenderFlush(): Promise<void>;
166
- clear(): void;
167
- patchConsole(): void;
168
- private setAlternateScreen;
169
- private resolveInteractiveOption;
170
- private resolveAlternateScreenOption;
171
- private shouldSync;
172
- private writeBestEffort;
173
- private awaitExit;
174
- private hasPendingConcurrentWork;
175
- private awaitNextRender;
176
- private renderInteractiveFrame;
177
- /**
178
- * Handle kitty keyboard "enabled" mode immediately (just a stdout.write).
179
- * Called from the constructor.
180
- */
181
- private initImmediateKittyKeyboard;
182
- /**
183
- * Handle kitty keyboard "auto" mode detection. Deferred to first render
184
- * because the CSI ? u query sets up a stdin listener with a 200ms timeout.
185
- */
186
- private initDeferredKittyKeyboard;
187
- private confirmKittySupport;
188
- private enableKittyProtocol;
189
- }
@@ -1,10 +0,0 @@
1
- export type InputEvent = string | {
2
- readonly paste: string;
3
- };
4
- export type InputParser = {
5
- flushPendingEscape: () => string | undefined;
6
- hasPendingEscape: () => boolean;
7
- push: (chunk: string) => InputEvent[];
8
- reset: () => void;
9
- };
10
- export declare const createInputParser: () => InputParser;
@@ -1,16 +0,0 @@
1
- /**
2
- * Shared input filtering utilities for text input components.
3
- */
4
- /**
5
- * Check if a character is a C0 control character or DEL.
6
- */
7
- export declare const isControlCharacter: (input: string) => boolean;
8
- /**
9
- * Determine whether the input should be inserted as text.
10
- * Filters out modifier chords (Ctrl+S, Meta+S, etc.) while allowing
11
- * AltGr-produced symbols (Ctrl+Meta+@, Ctrl+Meta+€) on international keyboards.
12
- */
13
- export declare const isInsertableInput: (input: string, key: {
14
- ctrl: boolean;
15
- meta: boolean;
16
- }) => boolean;
@@ -1,3 +0,0 @@
1
- import type Ink from "./ink/ink.d.ts";
2
- declare const instances: WeakMap<NodeJS.WriteStream, Ink>;
3
- export default instances;
@@ -1,23 +0,0 @@
1
- export declare const kittyFlags: {
2
- readonly disambiguateEscapeCodes: 1;
3
- readonly reportAllKeysAsEscapeCodes: 8;
4
- readonly reportAlternateKeys: 4;
5
- readonly reportAssociatedText: 16;
6
- readonly reportEventTypes: 2;
7
- };
8
- export type KittyFlagName = keyof typeof kittyFlags;
9
- export declare function resolveFlags(flags: KittyFlagName[]): number;
10
- export declare const kittyModifiers: {
11
- readonly alt: 2;
12
- readonly capsLock: 64;
13
- readonly ctrl: 4;
14
- readonly hyper: 16;
15
- readonly meta: 32;
16
- readonly numLock: 128;
17
- readonly shift: 1;
18
- readonly super: 8;
19
- };
20
- export type KittyKeyboardOptions = {
21
- flags?: KittyFlagName[];
22
- mode?: "auto" | "enabled" | "disabled";
23
- };
@@ -1,26 +0,0 @@
1
- import type { DOMElement, DOMNode } from "./dom.d.ts";
2
- import type { TextFragment } from "./measure-element.d.ts";
3
- type Position = {
4
- x: number;
5
- y: number;
6
- };
7
- declare const getAbsolutePosition: (node: DOMElement) => Position | undefined;
8
- declare const getAbsoluteContentPosition: (node: DOMElement) => Position | undefined;
9
- /**
10
- * Generic layout tree walker with callbacks for text, newline, and space events.
11
- * Used by selection.ts for extracting text from the DOM tree with proper layout positioning.
12
- *
13
- * Ported from jacob314/ink fork (Google LLC, Apache-2.0).
14
- */
15
- export type LayoutCallbacks<T> = {
16
- initialState: () => T;
17
- onNewline: (count: number, state: T) => void;
18
- onSpace: (count: number, state: T) => void;
19
- onText: (fragment: TextFragment, state: T) => void;
20
- };
21
- export declare const processLayout: <T>(node: DOMNode, callbacks: LayoutCallbacks<T>) => {
22
- lineBottom: number;
23
- state: T;
24
- };
25
- export type { Position };
26
- export { getAbsoluteContentPosition, getAbsolutePosition };
@@ -1,14 +0,0 @@
1
- export type NativeLogUpdate = {
2
- clear: () => void;
3
- destroy: () => void;
4
- render: (buffer: Uint32Array, width: number, height: number) => void;
5
- resize: (width: number, height: number) => void;
6
- };
7
- /**
8
- * Create a native (Rust-backed) renderer for Ink's output.
9
- *
10
- * The native binding is loaded lazily — if it's not available (e.g., unsupported
11
- * platform), `createNative` returns `undefined`. The binding lookup is cached
12
- * at the module level so subsequent calls avoid the try-catch + require overhead.
13
- */
14
- export declare const createNative: (stream: NodeJS.WriteStream) => NativeLogUpdate | undefined;
@@ -1,21 +0,0 @@
1
- import type { Writable } from "node:stream";
2
- import type { CursorPosition } from "./cursor-helpers.d.ts";
3
- export type { CursorPosition } from "./cursor-helpers.d.ts";
4
- export type LogUpdate = {
5
- clear: () => void;
6
- done: () => void;
7
- isCursorDirty: () => boolean;
8
- reset: () => void;
9
- setCursorPosition: (position: CursorPosition | undefined) => void;
10
- sync: (string_: string) => void;
11
- willRender: (string_: string) => boolean;
12
- (string_: string): boolean;
13
- };
14
- declare const create: (stream: Writable, { incremental, showCursor }?: {
15
- incremental?: boolean;
16
- showCursor?: boolean;
17
- }) => LogUpdate;
18
- declare const logUpdate: {
19
- create: typeof create;
20
- };
21
- export default logUpdate;
@@ -1,147 +0,0 @@
1
- import type { DOMElement, DOMNode } from "./dom.d.ts";
2
- type Output = {
3
- /**
4
- * Element height.
5
- */
6
- height: number;
7
- /**
8
- * Element width.
9
- */
10
- width: number;
11
- /**
12
- * Element X position relative to Ink output origin.
13
- */
14
- x: number;
15
- /**
16
- * Element Y position relative to Ink output origin.
17
- */
18
- y: number;
19
- };
20
- /**
21
- * Measure the dimensions of a particular `&lt;Box>` element.
22
- * Returns an object with `x`, `y`, `width` and `height` properties.
23
- */
24
- declare const measureElement: (node: DOMElement) => Output;
25
- export default measureElement;
26
- /**
27
- * Get an element's inner width (excluding borders).
28
- */
29
- export declare const getInnerWidth: (node: DOMElement) => number;
30
- /**
31
- * Get an element's inner height (excluding borders).
32
- */
33
- export declare const getInnerHeight: (node: DOMElement) => number;
34
- /**
35
- * Get an element's position and dimensions relative to the root,
36
- * accounting for scroll offsets of ancestor elements.
37
- */
38
- export declare const getBoundingBox: (node: DOMElement) => {
39
- height: number;
40
- width: number;
41
- x: number;
42
- y: number;
43
- };
44
- /**
45
- * Get how much scroll height was added by stableScrollback.
46
- */
47
- export declare const getAddedScrollHeight: (node: DOMElement) => number;
48
- export type ScrollbarBoundingBox = {
49
- height: number;
50
- thumb: {
51
- end: number;
52
- endHalf: number;
53
- height: number;
54
- start: number;
55
- startHalf: number;
56
- width: number;
57
- x: number;
58
- y: number;
59
- };
60
- width: number;
61
- x: number;
62
- y: number;
63
- };
64
- export declare const calculateScrollbarThumb: (options: {
65
- axis: "horizontal" | "vertical";
66
- clientDimension: number;
67
- scrollbarDimension: number;
68
- scrollDimension: number;
69
- scrollPosition: number;
70
- }) => {
71
- endIndex: number;
72
- startIndex: number;
73
- thumbEndHalf: number;
74
- thumbStartHalf: number;
75
- };
76
- export declare const calculateScrollbarLayout: (options: {
77
- axis: "horizontal" | "vertical";
78
- clientDimension: number;
79
- hasOppositeScrollbar: boolean;
80
- height: number;
81
- marginBottom: number;
82
- marginRight: number;
83
- scrollDimension: number;
84
- scrollPosition: number;
85
- width: number;
86
- x: number;
87
- y: number;
88
- }) => ScrollbarBoundingBox | undefined;
89
- /**
90
- * Get the bounding box of the vertical scrollbar.
91
- */
92
- export declare const getVerticalScrollbarBoundingBox: (node: DOMElement, offset?: {
93
- x: number;
94
- y: number;
95
- }) => ScrollbarBoundingBox | undefined;
96
- /**
97
- * Get the bounding box of the horizontal scrollbar.
98
- */
99
- export declare const getHorizontalScrollbarBoundingBox: (node: DOMElement, offset?: {
100
- x: number;
101
- y: number;
102
- }) => ScrollbarBoundingBox | undefined;
103
- /**
104
- * Get the top position of a node relative to a given ancestor.
105
- * Returns undefined if the ancestor is not in the node's parent chain.
106
- *
107
- * Ported from jacob314/ink fork (Google LLC, Apache-2.0).
108
- */
109
- export declare const getRelativeTop: (node: DOMElement, ancestor?: DOMElement) => number | undefined;
110
- /**
111
- * Get the left position of a node relative to a given ancestor.
112
- * Returns undefined if the ancestor is not in the node's parent chain.
113
- *
114
- * Ported from jacob314/ink fork (Google LLC, Apache-2.0).
115
- */
116
- export declare const getRelativeLeft: (node: DOMElement, ancestor?: DOMElement) => number | undefined;
117
- /**
118
- * A text fragment from the layout tree with its position and dimensions.
119
- * Used by `processLayout` for text extraction and selection.
120
- *
121
- * Ported from jacob314/ink fork (Google LLC, Apache-2.0).
122
- */
123
- export type TextFragment = {
124
- height: number;
125
- node: DOMElement;
126
- text: string;
127
- visualX: number;
128
- visualY: number;
129
- width: number;
130
- x: number;
131
- y: number;
132
- };
133
- /**
134
- * Get the text content of a DOM node (text node value or squashed children).
135
- */
136
- export declare const getText: (node: DOMNode) => string;
137
- /**
138
- * Walk the layout tree to collect all text fragments in document order,
139
- * with their positions adjusted for borders and flex layout.
140
- *
141
- * Ported from jacob314/ink fork (Google LLC, Apache-2.0).
142
- */
143
- export declare const collectSortedFragments: (node: DOMNode) => {
144
- fragments: TextFragment[];
145
- removedHorizontal: number;
146
- removedVertical: number;
147
- };
@@ -1,56 +0,0 @@
1
- import { StyledLine } from "./styled-line.d.ts";
2
- export type StringWidthFunction = (text: string) => number;
3
- type Output = {
4
- height: number;
5
- width: number;
6
- };
7
- /**
8
- * Enable or disable the StyledLine tokenization cache at runtime.
9
- * Disabling clears the existing cache.
10
- */
11
- export declare const setEnableStyledLineCache: (enabled: boolean) => void;
12
- /**
13
- * Clear only the StyledLine tokenization cache.
14
- */
15
- export declare const clearStyledLineCache: () => void;
16
- /**
17
- * Replace the string width function used for text measurement.
18
- * Useful for terminals with non-standard character widths.
19
- * Clears the measurement cache when called.
20
- */
21
- export declare const setStringWidthFunction: (function_: StringWidthFunction) => void;
22
- /**
23
- * Clear the string width measurement cache. Call this if the terminal
24
- * environment changes in a way that affects character widths.
25
- */
26
- export declare const clearStringWidthCache: () => void;
27
- /**
28
- * Get the visual width of a single character, with caching and error handling.
29
- *
30
- * Ported from jacob314/ink fork (Google LLC, Apache-2.0).
31
- */
32
- export declare const inkCharacterWidth: (text: string) => number;
33
- declare const measureText: (text: string) => Output;
34
- export default measureText;
35
- /**
36
- * Convert a text string to a StyledLine, with caching.
37
- * Uses the direct text → StyledLine pipeline (handles combining chars,
38
- * tabs, regional indicators, ANSI codes, etc.) without intermediate
39
- * StyledChar objects.
40
- */
41
- export declare const toStyledLine: (text: string) => StyledLine;
42
- /**
43
- * Get the total visual width of a StyledLine.
44
- */
45
- export declare const styledLineWidth: (line: StyledLine) => number;
46
- /**
47
- * Split a StyledLine by newline characters into multiple StyledLines.
48
- */
49
- export declare const splitStyledLineByNewline: (line: StyledLine) => StyledLine[];
50
- /**
51
- * Measure the dimensions of a StyledLine (width of widest line, height in lines).
52
- */
53
- export declare const measureStyledLine: (line: StyledLine) => {
54
- height: number;
55
- width: number;
56
- };
@@ -1,8 +0,0 @@
1
- /**
2
- * Ported from `\@zenobius/ink-mouse` (https://github.com/zenobi-us/ink-mouse)
3
- * Copyright Zeno Jiricek, licensed under Apache-2.0
4
- */
5
- import type { PropsWithChildren } from "react";
6
- import React from "react";
7
- declare const Fullscreen: ({ children }: PropsWithChildren) => React.JSX.Element;
8
- export default Fullscreen;
@@ -1,11 +0,0 @@
1
- /**
2
- * Ported from `\@zenobius/ink-mouse` (https://github.com/zenobi-us/ink-mouse)
3
- * Copyright Zeno Jiricek, licensed under Apache-2.0
4
- *
5
- * Rewritten to integrate with the ink input pipeline instead of
6
- * listening on process.stdin directly.
7
- */
8
- import type { PropsWithChildren } from "react";
9
- import React from "react";
10
- declare const MouseProvider: ({ children }: PropsWithChildren) => React.JSX.Element;
11
- export default MouseProvider;