@visulima/tui 0.0.1 → 1.0.0-alpha.2

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 (338) hide show
  1. package/CHANGELOG.md +200 -0
  2. package/LICENSE.md +303 -0
  3. package/README.md +173 -29
  4. package/dist/core/app.d.ts +50 -0
  5. package/dist/core/cell.d.ts +33 -0
  6. package/dist/core/index.d.ts +5 -0
  7. package/dist/core/index.js +5 -0
  8. package/dist/core/inline.d.ts +22 -0
  9. package/dist/core/input.d.ts +18 -0
  10. package/dist/core/native-binding.d.ts +22 -0
  11. package/dist/ink/ansi-to-cell.d.ts +5 -0
  12. package/dist/ink/ansi-tokenizer.d.ts +38 -0
  13. package/dist/ink/clipboard.d.ts +29 -0
  14. package/dist/ink/color-matrix.d.ts +49 -0
  15. package/dist/ink/color-utils.d.ts +30 -0
  16. package/dist/ink/colorize.d.ts +4 -0
  17. package/dist/ink/components/AccessibilityContext.d.ts +4 -0
  18. package/dist/ink/components/Alert.d.ts +30 -0
  19. package/dist/ink/components/AnimationContext.d.ts +10 -0
  20. package/dist/ink/components/App.d.ts +19 -0
  21. package/dist/ink/components/AppContext.d.ts +38 -0
  22. package/dist/ink/components/BackgroundContext.d.ts +5 -0
  23. package/dist/ink/components/Badge.d.ts +27 -0
  24. package/dist/ink/components/BigText.d.ts +71 -0
  25. package/dist/ink/components/Box.d.ts +58 -0
  26. package/dist/ink/components/Code.d.ts +46 -0
  27. package/dist/ink/components/ConfirmInput.d.ts +40 -0
  28. package/dist/ink/components/ConsoleOverlay.d.ts +52 -0
  29. package/dist/ink/components/Cursor.d.ts +43 -0
  30. package/dist/ink/components/CursorContext.d.ts +12 -0
  31. package/dist/ink/components/Dialog.d.ts +93 -0
  32. package/dist/ink/components/DiffView.d.ts +71 -0
  33. package/dist/ink/components/ErrorBoundary.d.ts +17 -0
  34. package/dist/ink/components/ErrorOverview.d.ts +6 -0
  35. package/dist/ink/components/FocusContext.d.ts +17 -0
  36. package/dist/ink/components/Gradient.d.ts +38 -0
  37. package/dist/ink/components/Help.d.ts +49 -0
  38. package/dist/ink/components/Link.d.ts +34 -0
  39. package/dist/ink/components/Markdown.d.ts +34 -0
  40. package/dist/ink/components/MultiSelect.d.ts +63 -0
  41. package/dist/ink/components/Newline.d.ts +12 -0
  42. package/dist/ink/components/OrderedList.d.ts +30 -0
  43. package/dist/ink/components/Paginator.d.ts +75 -0
  44. package/dist/ink/components/ProgressBar.d.ts +51 -0
  45. package/dist/ink/components/SelectInput.d.ts +96 -0
  46. package/dist/ink/components/SelectInputIndicator.d.ts +36 -0
  47. package/dist/ink/components/SelectInputItem.d.ts +43 -0
  48. package/dist/ink/components/Slider.d.ts +92 -0
  49. package/dist/ink/components/Spacer.d.ts +7 -0
  50. package/dist/ink/components/Spinner.d.ts +42 -0
  51. package/dist/ink/components/Static.d.ts +24 -0
  52. package/dist/ink/components/StaticRender.d.ts +28 -0
  53. package/dist/ink/components/StatusMessage.d.ts +26 -0
  54. package/dist/ink/components/StderrContext.d.ts +16 -0
  55. package/dist/ink/components/StdinContext.d.ts +29 -0
  56. package/dist/ink/components/StdoutContext.d.ts +16 -0
  57. package/dist/ink/components/Stopwatch.d.ts +44 -0
  58. package/dist/ink/components/Tab.d.ts +25 -0
  59. package/dist/ink/components/Table.d.ts +80 -0
  60. package/dist/ink/components/Tabs.d.ts +104 -0
  61. package/dist/ink/components/Text.d.ts +63 -0
  62. package/dist/ink/components/TextInput.d.ts +48 -0
  63. package/dist/ink/components/Textarea.d.ts +62 -0
  64. package/dist/ink/components/Timer.d.ts +52 -0
  65. package/dist/ink/components/Transform.d.ts +16 -0
  66. package/dist/ink/components/UnorderedList.d.ts +35 -0
  67. package/dist/ink/components/file-picker/FilePicker.d.ts +75 -0
  68. package/dist/ink/components/file-picker/index.d.ts +3 -0
  69. package/dist/ink/components/file-picker/types.d.ts +38 -0
  70. package/dist/ink/components/file-picker/use-file-system.d.ts +16 -0
  71. package/dist/ink/components/scroll/ControlledScrollView.d.ts +43 -0
  72. package/dist/ink/components/scroll/ScrollBar.d.ts +20 -0
  73. package/dist/ink/components/scroll/ScrollBarBox.d.ts +15 -0
  74. package/dist/ink/components/scroll/ScrollList.d.ts +12 -0
  75. package/dist/ink/components/scroll/ScrollView.d.ts +98 -0
  76. package/dist/ink/components/scroll/index.d.ts +10 -0
  77. package/dist/ink/components/scroll/use-state-ref.d.ts +8 -0
  78. package/dist/ink/components/tree-view/TreeView.d.ts +89 -0
  79. package/dist/ink/components/tree-view/TreeViewNode.d.ts +29 -0
  80. package/dist/ink/components/tree-view/index.d.ts +11 -0
  81. package/dist/ink/components/tree-view/theme.d.ts +24 -0
  82. package/dist/ink/components/tree-view/tree-node-map.d.ts +72 -0
  83. package/dist/ink/components/tree-view/types.d.ts +55 -0
  84. package/dist/ink/components/tree-view/use-tree-view-state.d.ts +135 -0
  85. package/dist/ink/components/tree-view/use-tree-view.d.ts +26 -0
  86. package/dist/ink/components/variant-config.d.ts +10 -0
  87. package/dist/ink/cursor-helpers.d.ts +38 -0
  88. package/dist/ink/data-limited-lru-map.d.ts +21 -0
  89. package/dist/ink/devtools-window-polyfill.d.ts +1 -0
  90. package/dist/ink/devtools.d.ts +1 -0
  91. package/dist/ink/dom.d.ts +213 -0
  92. package/dist/ink/get-max-width.d.ts +3 -0
  93. package/dist/ink/highlighter.d.ts +28 -0
  94. package/dist/ink/hooks/use-animation.d.ts +43 -0
  95. package/dist/ink/hooks/use-app.d.ts +6 -0
  96. package/dist/ink/hooks/use-box-metrics.d.ts +58 -0
  97. package/dist/ink/hooks/use-clipboard.d.ts +29 -0
  98. package/dist/ink/hooks/use-color-blindness.d.ts +33 -0
  99. package/dist/ink/hooks/use-console-capture.d.ts +43 -0
  100. package/dist/ink/hooks/use-cursor.d.ts +12 -0
  101. package/dist/ink/hooks/use-focus-manager.d.ts +42 -0
  102. package/dist/ink/hooks/use-focus.d.ts +30 -0
  103. package/dist/ink/hooks/use-input.d.ts +149 -0
  104. package/dist/ink/hooks/use-is-screen-reader-enabled.d.ts +6 -0
  105. package/dist/ink/hooks/use-key-bindings.d.ts +61 -0
  106. package/dist/ink/hooks/use-linked-scroll.d.ts +41 -0
  107. package/dist/ink/hooks/use-paste.d.ts +44 -0
  108. package/dist/ink/hooks/use-scroll-acceleration.d.ts +47 -0
  109. package/dist/ink/hooks/use-scroll-input.d.ts +34 -0
  110. package/dist/ink/hooks/use-stderr.d.ts +6 -0
  111. package/dist/ink/hooks/use-stdin.d.ts +7 -0
  112. package/dist/ink/hooks/use-stdout.d.ts +6 -0
  113. package/dist/ink/hooks/use-stopwatch.d.ts +40 -0
  114. package/dist/ink/hooks/use-terminal-palette.d.ts +19 -0
  115. package/dist/ink/hooks/use-text-buffer.d.ts +42 -0
  116. package/dist/ink/hooks/use-text-selection.d.ts +45 -0
  117. package/dist/ink/hooks/use-timer.d.ts +49 -0
  118. package/dist/ink/hooks/use-window-size.d.ts +18 -0
  119. package/dist/ink/ime-utils.d.ts +25 -0
  120. package/dist/ink/index.d.ts +159 -0
  121. package/dist/ink/index.js +100 -0
  122. package/dist/ink/ink.d.ts +189 -0
  123. package/dist/ink/input-parser.d.ts +10 -0
  124. package/dist/ink/input-utils.d.ts +16 -0
  125. package/dist/ink/instances.d.ts +3 -0
  126. package/dist/ink/kitty-keyboard.d.ts +23 -0
  127. package/dist/ink/layout.d.ts +26 -0
  128. package/dist/ink/log-update-native.d.ts +14 -0
  129. package/dist/ink/log-update.d.ts +21 -0
  130. package/dist/ink/measure-element.d.ts +147 -0
  131. package/dist/ink/measure-text.d.ts +56 -0
  132. package/dist/ink/mouse/Fullscreen.d.ts +8 -0
  133. package/dist/ink/mouse/MouseProvider.d.ts +11 -0
  134. package/dist/ink/mouse/ansi-parser.d.ts +37 -0
  135. package/dist/ink/mouse/constants.d.ts +59 -0
  136. package/dist/ink/mouse/index.d.ts +20 -0
  137. package/dist/ink/mouse/is-intersecting.d.ts +18 -0
  138. package/dist/ink/mouse/mouse-context.d.ts +36 -0
  139. package/dist/ink/mouse/use-element-position.d.ts +29 -0
  140. package/dist/ink/mouse/use-mouse-action.d.ts +7 -0
  141. package/dist/ink/mouse/use-mouse-position.d.ts +7 -0
  142. package/dist/ink/mouse/use-mouse.d.ts +7 -0
  143. package/dist/ink/mouse/use-on-mouse-click.d.ts +14 -0
  144. package/dist/ink/mouse/use-on-mouse-hover.d.ts +8 -0
  145. package/dist/ink/mouse/use-on-mouse-state.d.ts +11 -0
  146. package/dist/ink/output.d.ts +74 -0
  147. package/dist/ink/parse-keypress.d.ts +22 -0
  148. package/dist/ink/reconciler.d.ts +3 -0
  149. package/dist/ink/region.d.ts +99 -0
  150. package/dist/ink/render-background.d.ts +4 -0
  151. package/dist/ink/render-border.d.ts +4 -0
  152. package/dist/ink/render-node-to-output.d.ts +38 -0
  153. package/dist/ink/render-scrollbar.d.ts +9 -0
  154. package/dist/ink/render-sticky.d.ts +44 -0
  155. package/dist/ink/render-to-string.d.ts +37 -0
  156. package/dist/ink/render.d.ts +191 -0
  157. package/dist/ink/renderer.d.ts +17 -0
  158. package/dist/ink/resize-observer.d.ts +44 -0
  159. package/dist/ink/sanitize-ansi.d.ts +2 -0
  160. package/dist/ink/scroll.d.ts +23 -0
  161. package/dist/ink/selection.d.ts +70 -0
  162. package/dist/ink/squash-text-nodes.d.ts +18 -0
  163. package/dist/ink/style-flags.d.ts +17 -0
  164. package/dist/ink/styled-line-factory.d.ts +25 -0
  165. package/dist/ink/styled-line-serializer.d.ts +18 -0
  166. package/dist/ink/styled-line.d.ts +109 -0
  167. package/dist/ink/styles.d.ts +369 -0
  168. package/dist/ink/terminal-palette.d.ts +25 -0
  169. package/dist/ink/text-wrap.d.ts +10 -0
  170. package/dist/ink/token-to-elements.d.ts +22 -0
  171. package/dist/ink/utils/format-time.d.ts +4 -0
  172. package/dist/ink/utils.d.ts +9 -0
  173. package/dist/ink/wrap-text.d.ts +3 -0
  174. package/dist/ink/write-synchronized.d.ts +4 -0
  175. package/dist/packem_chunks/devtools.js +27 -0
  176. package/dist/packem_shared/AccessibilityContext-BLelHhNU.js +7 -0
  177. package/dist/packem_shared/Alert-Dr3s_LD9.js +17 -0
  178. package/dist/packem_shared/AnimationContext-BcJg8Jr6.js +15 -0
  179. package/dist/packem_shared/AppContext-CP0U6H7O.js +11 -0
  180. package/dist/packem_shared/BackgroundContext-BAUaxfOb.js +5 -0
  181. package/dist/packem_shared/Badge-Dk7EGGM6.js +13 -0
  182. package/dist/packem_shared/BigText-CjMdY63X.js +24 -0
  183. package/dist/packem_shared/Box-D_pSJ9Jp.js +73 -0
  184. package/dist/packem_shared/COLOR_BLINDNESS_SIMULATION-BsMy5Ewl.js +81 -0
  185. package/dist/packem_shared/Cell-DCg1kJY-.js +48 -0
  186. package/dist/packem_shared/Code-DjQvPBD9.js +53 -0
  187. package/dist/packem_shared/ConfirmInput-85Y4kRQW.js +44 -0
  188. package/dist/packem_shared/ConsoleOverlay-DBNa4vtj.js +57 -0
  189. package/dist/packem_shared/ControlledScrollView-BlOaxcsN.js +286 -0
  190. package/dist/packem_shared/ControlledScrollView-DfAhcufF.js +5 -0
  191. package/dist/packem_shared/Cursor-DiW7YoSK.js +18 -0
  192. package/dist/packem_shared/CursorContext-JxRzlqAx.js +9 -0
  193. package/dist/packem_shared/DevTools-aMPIsaHx.js +61 -0
  194. package/dist/packem_shared/Dialog-DsSNAVgC.js +71 -0
  195. package/dist/packem_shared/DiffView-hqaw-2S6.js +329 -0
  196. package/dist/packem_shared/FilePicker-DNwFxRhq.js +254 -0
  197. package/dist/packem_shared/FocusContext-CWkYtgcm.js +26 -0
  198. package/dist/packem_shared/FocusContext-D5wFxSRz.js +153 -0
  199. package/dist/packem_shared/Fullscreen-DrElAE1o.js +11 -0
  200. package/dist/packem_shared/Gradient-Ql5P0GUd.js +136 -0
  201. package/dist/packem_shared/Help-6wanGG38.js +112 -0
  202. package/dist/packem_shared/IMECompositionBuffer-Dl3S0KnF.js +55 -0
  203. package/dist/packem_shared/InputParser-BKHpWfvN.js +156 -0
  204. package/dist/packem_shared/LayoutNode-Cjnsodiy.js +131 -0
  205. package/dist/packem_shared/Link-COcKYfGT.js +66 -0
  206. package/dist/packem_shared/Markdown-y1ISztof.js +212 -0
  207. package/dist/packem_shared/MouseProvider-Y9TSSEGl.js +136 -0
  208. package/dist/packem_shared/MultiSelect-ChoLUcDI.js +129 -0
  209. package/dist/packem_shared/NAMED_COLORS-a4QBvb5r.js +262 -0
  210. package/dist/packem_shared/Newline-DBtYEg8x.js +7 -0
  211. package/dist/packem_shared/OrderedList-Cp7pXr6m.js +26 -0
  212. package/dist/packem_shared/Paginator-D1AuD-kj.js +104 -0
  213. package/dist/packem_shared/ProgressBar-DOfpVagn.js +22 -0
  214. package/dist/packem_shared/Renderer-zZ5O3vxc.js +31 -0
  215. package/dist/packem_shared/ResizeObserverEntry-Br4seLeQ.js +102 -0
  216. package/dist/packem_shared/ScrollBar-EWAs2Uc7.js +106 -0
  217. package/dist/packem_shared/ScrollBarBox-DTNNlh7R.js +72 -0
  218. package/dist/packem_shared/ScrollList-DCeIFL8M.js +227 -0
  219. package/dist/packem_shared/ScrollView-v3MCNIyX.js +196 -0
  220. package/dist/packem_shared/SelectInput-BN2TMyxp.js +260 -0
  221. package/dist/packem_shared/SelectInputIndicator-DkRMoH_b.js +9 -0
  222. package/dist/packem_shared/SelectInputItem-BF9LQgKu.js +8 -0
  223. package/dist/packem_shared/Slider-BWD7xZX6.js +116 -0
  224. package/dist/packem_shared/Spacer-Bs4ER-HK.js +8 -0
  225. package/dist/packem_shared/Spinner-BuI-kN4p.js +1799 -0
  226. package/dist/packem_shared/Static-DpTd6Eed.js +22 -0
  227. package/dist/packem_shared/Static-xmD9giJj.js +18 -0
  228. package/dist/packem_shared/StaticRender-tYwH6QXl.js +33 -0
  229. package/dist/packem_shared/StatusMessage-BtSYxzwb.js +14 -0
  230. package/dist/packem_shared/StderrContext-Bj4Mf7v7.js +17 -0
  231. package/dist/packem_shared/StdinContext-Bq_GNJ3z.js +38 -0
  232. package/dist/packem_shared/StdoutContext-CgjWeCdO.js +17 -0
  233. package/dist/packem_shared/Stopwatch-DjtTCyHn.js +23 -0
  234. package/dist/packem_shared/Tab-C6r5q4hR.js +7 -0
  235. package/dist/packem_shared/Table-D-rSVlzb.js +82 -0
  236. package/dist/packem_shared/Tabs-hki-KRnx.js +153 -0
  237. package/dist/packem_shared/Text-DvAUdZcK.js +65 -0
  238. package/dist/packem_shared/TextInput-C79WEQ5U.js +137 -0
  239. package/dist/packem_shared/Textarea-Dj06R6Zd.js +272 -0
  240. package/dist/packem_shared/Timer-wi9zuh4n.js +22 -0
  241. package/dist/packem_shared/Transform-BHxY_dAM.js +14 -0
  242. package/dist/packem_shared/TreeNodeMap-CtJUvBnd.js +155 -0
  243. package/dist/packem_shared/TreeView-C2062dtj.js +148 -0
  244. package/dist/packem_shared/TuiApp-DfxOnXqi.js +120 -0
  245. package/dist/packem_shared/TuiContext-CqEjMyXd.js +415 -0
  246. package/dist/packem_shared/UnorderedList-DhnadWjX.js +33 -0
  247. package/dist/packem_shared/ansi-parser-0BdVTKho.js +41 -0
  248. package/dist/packem_shared/ansi-tokenizer-LHq2LUWA.js +307 -0
  249. package/dist/packem_shared/boxes-oi3WUbyR.js +92 -0
  250. package/dist/packem_shared/colorize-88_Vk8cn.js +48 -0
  251. package/dist/packem_shared/comparePoints-CGMDnd3_.js +287 -0
  252. package/dist/packem_shared/createInlineLoop-BxMmcq9D.js +93 -0
  253. package/dist/packem_shared/createLinkedScrollGroup-Djw4Ceo0.js +44 -0
  254. package/dist/packem_shared/dom-DvzhsAez.js +225 -0
  255. package/dist/packem_shared/format-time-BGmnDukX.js +12 -0
  256. package/dist/packem_shared/getPathToRoot-a1wbwxfL.js +4 -0
  257. package/dist/packem_shared/getScrollHeight-BubfU_df.js +63 -0
  258. package/dist/packem_shared/input-utils-ViAEXa0Z.js +19 -0
  259. package/dist/packem_shared/isIntersecting-fEXHJN5R.js +10 -0
  260. package/dist/packem_shared/isOsc52Supported-G0k4sXJx.js +36 -0
  261. package/dist/packem_shared/isTerminalPaletteQuerySupported-EeiwMKbr.js +93 -0
  262. package/dist/packem_shared/kittyFlags-bNNf_9kX.js +26 -0
  263. package/dist/packem_shared/measure-element-Reza_yfC.js +396 -0
  264. package/dist/packem_shared/measure-text-DItZYotK.js +1189 -0
  265. package/dist/packem_shared/measureElement-CTgFCmKd.js +4 -0
  266. package/dist/packem_shared/mouse-context-BUHWKEIe.js +6 -0
  267. package/dist/packem_shared/parseSgrMouse-BHVBPP9G.js +1 -0
  268. package/dist/packem_shared/processLayout-BQ9kXfd3.js +2 -0
  269. package/dist/packem_shared/reconciler-BXf6miSS.js +211 -0
  270. package/dist/packem_shared/reconciler-gfmqURLy.js +680 -0
  271. package/dist/packem_shared/render-BAwdjfki.js +2806 -0
  272. package/dist/packem_shared/render-Bpjhf0lD.js +195 -0
  273. package/dist/packem_shared/renderToString-Cfg55DRD.js +62 -0
  274. package/dist/packem_shared/renderToString-ClIaXgrC.js +86 -0
  275. package/dist/packem_shared/renderTreeToBuffer-D3mo7M7m.js +308 -0
  276. package/dist/packem_shared/renderer-B3wROkeg.js +1431 -0
  277. package/dist/packem_shared/setEnableStyledLineCache-BpskngSJ.js +2 -0
  278. package/dist/packem_shared/squashTextNodesWithMap-iqm6OMMT.js +100 -0
  279. package/dist/packem_shared/text-width-DhuarWcB.js +42 -0
  280. package/dist/packem_shared/token-to-elements-BRFl_rzw.js +249 -0
  281. package/dist/packem_shared/treeViewTheme-BpSw9TMf.js +52 -0
  282. package/dist/packem_shared/useAnimation-kj31sA-T.js +62 -0
  283. package/dist/packem_shared/useApp-DPQlRzi5.js +6 -0
  284. package/dist/packem_shared/useBoxMetrics-rBjKc-g4.js +54 -0
  285. package/dist/packem_shared/useClipboard-B_9-adw1.js +23 -0
  286. package/dist/packem_shared/useColorBlindness-D_sTIhcb.js +30 -0
  287. package/dist/packem_shared/useConsoleCapture-Dvt7G1W1.js +61 -0
  288. package/dist/packem_shared/useCursor-BIJzc8k9.js +19 -0
  289. package/dist/packem_shared/useElementDimensions-CAoKitVD.js +67 -0
  290. package/dist/packem_shared/useFocus-CNl5QHHf.js +37 -0
  291. package/dist/packem_shared/useFocusManager-BPYaUuKQ.js +16 -0
  292. package/dist/packem_shared/useInput-Cfp5zB2s.js +594 -0
  293. package/dist/packem_shared/useIsScreenReaderEnabled-CnGKCe0f.js +9 -0
  294. package/dist/packem_shared/useKeyBindings-B78l1E1n.js +66 -0
  295. package/dist/packem_shared/useMouseAction-C5gZ2nj7.js +29 -0
  296. package/dist/packem_shared/useMouseContext-D-rFy60Q.js +12 -0
  297. package/dist/packem_shared/useMousePosition-BHBJ-kBk.js +25 -0
  298. package/dist/packem_shared/useOnMouseClick--ZIyBOBO.js +35 -0
  299. package/dist/packem_shared/useOnMouseHover-26diuXUC.js +32 -0
  300. package/dist/packem_shared/useOnMouseState-NO_Kda_C.js +13 -0
  301. package/dist/packem_shared/usePaste-Ct8J4AGR.js +35 -0
  302. package/dist/packem_shared/useScrollAcceleration-R9LfrPVG.js +73 -0
  303. package/dist/packem_shared/useScrollInput-D3CpBq_a.js +72 -0
  304. package/dist/packem_shared/useStderr-CAOVUh4E.js +6 -0
  305. package/dist/packem_shared/useStdin-X-O0kd-n.js +7 -0
  306. package/dist/packem_shared/useStdout-DyF6DSH0.js +6 -0
  307. package/dist/packem_shared/useStopwatch-qC4Beai4.js +33 -0
  308. package/dist/packem_shared/useTerminalPalette-BaWO2c4Q.js +38 -0
  309. package/dist/packem_shared/useTextBuffer-C8fEe9Ly.js +398 -0
  310. package/dist/packem_shared/useTextSelection-mXtxgsPK.js +50 -0
  311. package/dist/packem_shared/useTimer-CPQ7j827.js +46 -0
  312. package/dist/packem_shared/useTreeView-BT57P3Kx.js +101 -0
  313. package/dist/packem_shared/useTreeViewState-BpS_KZ-K.js +502 -0
  314. package/dist/packem_shared/useWindowSize-ugEmGZJm.js +20 -0
  315. package/dist/packem_shared/utils-BgdlrbOH.js +140 -0
  316. package/dist/packem_shared/variant-config-DSZoX5TM.js +8 -0
  317. package/dist/packem_shared/wrapOrTruncateStyledLine-DN3Nogoc.js +147 -0
  318. package/dist/react/devtools.d.ts +27 -0
  319. package/dist/react/focus.d.ts +39 -0
  320. package/dist/react/hooks.d.ts +238 -0
  321. package/dist/react/index.d.ts +8 -0
  322. package/dist/react/index.js +9 -0
  323. package/dist/react/layout.d.ts +35 -0
  324. package/dist/react/react.d.ts +57 -0
  325. package/dist/react/reconciler.d.ts +4 -0
  326. package/dist/react/render-to-string.d.ts +21 -0
  327. package/dist/react/renderer.d.ts +2 -0
  328. package/dist/react/scene.d.ts +3 -0
  329. package/dist/react/static.d.ts +39 -0
  330. package/dist/react/styles.d.ts +83 -0
  331. package/dist/react/text-width.d.ts +20 -0
  332. package/dist/testing/index.d.ts +144 -0
  333. package/dist/testing/index.js +260 -0
  334. package/dist/testing/keys.d.ts +89 -0
  335. package/dist/testing/screen.d.ts +35 -0
  336. package/dist/testing/wait-for.d.ts +21 -0
  337. package/index.js +585 -0
  338. package/package.json +117 -7
@@ -0,0 +1,45 @@
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;
@@ -0,0 +1,49 @@
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;
@@ -0,0 +1,18 @@
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;
@@ -0,0 +1,25 @@
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 };
@@ -0,0 +1,159 @@
1
+ export type { ClipboardTarget } from "./clipboard.d.ts";
2
+ export { clearOsc52, isOsc52Supported, writeOsc52 } from "./clipboard.d.ts";
3
+ export type { ColorBlindnessType, ColorMatrix } from "./color-matrix.d.ts";
4
+ export { applyColorMatrix, COLOR_BLINDNESS_COMPENSATION, COLOR_BLINDNESS_SIMULATION, hexToRgb, IDENTITY_MATRIX, rgbToHex, transformHexColor, } from "./color-matrix.d.ts";
5
+ export type { Props as AlertProps, AlertVariant } from "./components/Alert.d.ts";
6
+ export { default as Alert } from "./components/Alert.d.ts";
7
+ export type { Props as AppProps } from "./components/AppContext.d.ts";
8
+ export type { Props as BadgeProps } from "./components/Badge.d.ts";
9
+ export { default as Badge } from "./components/Badge.d.ts";
10
+ export type { Align as BigTextAlign, BackgroundColor as BigTextBackgroundColor, Font as BigTextFont, Props as BigTextProps } from "./components/BigText.d.ts";
11
+ export { default as BigText } from "./components/BigText.d.ts";
12
+ export type { Props as BoxProps } from "./components/Box.d.ts";
13
+ export { default as Box } from "./components/Box.d.ts";
14
+ export type { Props as CodeProps } from "./components/Code.d.ts";
15
+ export { default as Code } from "./components/Code.d.ts";
16
+ export type { Props as ConfirmInputProps } from "./components/ConfirmInput.d.ts";
17
+ export { default as ConfirmInput } from "./components/ConfirmInput.d.ts";
18
+ export type { ConsoleOverlayDock, Props as ConsoleOverlayProps } from "./components/ConsoleOverlay.d.ts";
19
+ export { default as ConsoleOverlay } from "./components/ConsoleOverlay.d.ts";
20
+ export type { Props as CursorProps } from "./components/Cursor.d.ts";
21
+ export { default as Cursor } from "./components/Cursor.d.ts";
22
+ export type { Props as DialogProps } from "./components/Dialog.d.ts";
23
+ export { default as Dialog } from "./components/Dialog.d.ts";
24
+ export type { FileEntry, FilePickerFilter, FilePickerProps } from "./components/index.d.ts";
25
+ export { FilePicker } from "./components/index.d.ts";
26
+ export type { DiffViewMode, Props as DiffViewProps, InlineDiffMode } from "./components/DiffView.d.ts";
27
+ export { default as DiffView } from "./components/DiffView.d.ts";
28
+ export type { GradientColors, GradientName, Props as GradientProps } from "./components/Gradient.d.ts";
29
+ export { default as Gradient } from "./components/Gradient.d.ts";
30
+ export type { Props as HelpProps } from "./components/Help.d.ts";
31
+ export { default as Help } from "./components/Help.d.ts";
32
+ export type { Props as LinkProps } from "./components/Link.d.ts";
33
+ export { default as Link } from "./components/Link.d.ts";
34
+ export type { Props as MarkdownProps } from "./components/Markdown.d.ts";
35
+ export { default as Markdown } from "./components/Markdown.d.ts";
36
+ export type { MultiSelectOption, Props as MultiSelectProps } from "./components/MultiSelect.d.ts";
37
+ export { default as MultiSelect } from "./components/MultiSelect.d.ts";
38
+ export type { Props as NewlineProps } from "./components/Newline.d.ts";
39
+ export { default as Newline } from "./components/Newline.d.ts";
40
+ export type { PageMeta, Props as PaginatorProps } from "./components/Paginator.d.ts";
41
+ export { default as Paginator } from "./components/Paginator.d.ts";
42
+ export type { OrderedListEntry, Props as OrderedListProps } from "./components/OrderedList.d.ts";
43
+ export { default as OrderedList } from "./components/OrderedList.d.ts";
44
+ export type { Props as ProgressBarProps } from "./components/ProgressBar.d.ts";
45
+ export { default as ProgressBar } from "./components/ProgressBar.d.ts";
46
+ export type { ControlledScrollViewProps, ControlledScrollViewRef, ScrollAlignment, ScrollBarBoxProps, ScrollBarPlacement, ScrollBarProps, ScrollBarStyle, ScrollListProps, ScrollListRef, ScrollViewProps, ScrollViewRef, } from "./components/index.d.ts";
47
+ export { ControlledScrollView, ScrollBar, ScrollBarBox, ScrollList, ScrollView } from "./components/index.d.ts";
48
+ export type { SelectInputEntry, Item as SelectInputItemType, Props as SelectInputProps, SeparatorItem as SelectInputSeparator } from "./components/SelectInput.d.ts";
49
+ export { default as SelectInput } from "./components/SelectInput.d.ts";
50
+ export type { Props as SelectInputIndicatorProps } from "./components/SelectInputIndicator.d.ts";
51
+ export { default as SelectInputIndicator } from "./components/SelectInputIndicator.d.ts";
52
+ export type { Props as SelectInputItemProps } from "./components/SelectInputItem.d.ts";
53
+ export { default as SelectInputItem } from "./components/SelectInputItem.d.ts";
54
+ export type { Props as SliderProps } from "./components/Slider.d.ts";
55
+ export { default as Slider } from "./components/Slider.d.ts";
56
+ export { default as Spacer } from "./components/Spacer.d.ts";
57
+ export type { Props as SpinnerProps } from "./components/Spinner.d.ts";
58
+ export { default as Spinner } from "./components/Spinner.d.ts";
59
+ export type { Props as StaticProps } from "./components/Static.d.ts";
60
+ export { default as Static } from "./components/Static.d.ts";
61
+ export type { Props as StaticRenderProps } from "./components/StaticRender.d.ts";
62
+ export { default as StaticRender } from "./components/StaticRender.d.ts";
63
+ export type { Props as StatusMessageProps, StatusMessageVariant } from "./components/StatusMessage.d.ts";
64
+ export { default as StatusMessage } from "./components/StatusMessage.d.ts";
65
+ export type { Props as StopwatchProps, StopwatchRef } from "./components/Stopwatch.d.ts";
66
+ export { default as Stopwatch } from "./components/Stopwatch.d.ts";
67
+ export type { Props as StderrProps } from "./components/StderrContext.d.ts";
68
+ export type { PublicProps as StdinProps } from "./components/StdinContext.d.ts";
69
+ export type { Props as StdoutProps } from "./components/StdoutContext.d.ts";
70
+ export type { Props as TabProps } from "./components/Tab.d.ts";
71
+ export { default as Tab } from "./components/Tab.d.ts";
72
+ export type { ColumnConfig as TableColumnConfig, Props as TableProps, Scalar as TableScalar, ScalarDict as TableScalarDict } from "./components/Table.d.ts";
73
+ export { default as Table } from "./components/Table.d.ts";
74
+ export type { TabColors, KeyMap as TabsKeyMap, Props as TabsProps } from "./components/Tabs.d.ts";
75
+ export { default as Tabs } from "./components/Tabs.d.ts";
76
+ export type { Props as TextProps } from "./components/Text.d.ts";
77
+ export { default as Text } from "./components/Text.d.ts";
78
+ export type { Props as TimerProps, TimerRef } from "./components/Timer.d.ts";
79
+ export { default as Timer } from "./components/Timer.d.ts";
80
+ export type { Props as TextareaProps } from "./components/Textarea.d.ts";
81
+ export { default as Textarea } from "./components/Textarea.d.ts";
82
+ export type { Props as TextInputProps } from "./components/TextInput.d.ts";
83
+ export { default as TextInput } from "./components/TextInput.d.ts";
84
+ export type { Props as TransformProps } from "./components/Transform.d.ts";
85
+ export { default as Transform } from "./components/Transform.d.ts";
86
+ export type { AsyncChildrenFunction, FlatNode, SelectionMode, TreeNode, TreeNodeRendererProps, TreeNodeState, TreeViewProps, TreeViewState, TreeViewTheme, UseTreeViewProps, UseTreeViewStateProps, } from "./components/index.d.ts";
87
+ export { TreeNodeMap, TreeView, treeViewTheme, useTreeView, useTreeViewState } from "./components/index.d.ts";
88
+ export type { UnorderedListEntry, Props as UnorderedListProps } from "./components/UnorderedList.d.ts";
89
+ export { default as UnorderedList } from "./components/UnorderedList.d.ts";
90
+ export type { DOMElement, StickyHeader } from "./dom.d.ts";
91
+ export { getPathToRoot, isNodeSelectable } from "./dom.d.ts";
92
+ export type { AnimationResult } from "./hooks/use-animation.d.ts";
93
+ export { default as useAnimation } from "./hooks/use-animation.d.ts";
94
+ export { default as useApp } from "./hooks/use-app.d.ts";
95
+ export type { BoxMetrics, UseBoxMetricsResult } from "./hooks/use-box-metrics.d.ts";
96
+ export { default as useBoxMetrics } from "./hooks/use-box-metrics.d.ts";
97
+ export type { UseClipboardOptions, UseClipboardResult } from "./hooks/use-clipboard.d.ts";
98
+ export { default as useClipboard } from "./hooks/use-clipboard.d.ts";
99
+ export type { UseColorBlindnessOptions, UseColorBlindnessResult } from "./hooks/use-color-blindness.d.ts";
100
+ export { default as useColorBlindness } from "./hooks/use-color-blindness.d.ts";
101
+ export type { ConsoleEntry, ConsoleLevel, UseConsoleCaptureOptions, UseConsoleCaptureResult } from "./hooks/use-console-capture.d.ts";
102
+ export { default as useConsoleCapture } from "./hooks/use-console-capture.d.ts";
103
+ export { default as useCursor } from "./hooks/use-cursor.d.ts";
104
+ export { default as useFocus } from "./hooks/use-focus.d.ts";
105
+ export { default as useFocusManager } from "./hooks/use-focus-manager.d.ts";
106
+ export type { Key } from "./hooks/use-input.d.ts";
107
+ export { default as useInput } from "./hooks/use-input.d.ts";
108
+ export type { KeyBinding, KeyBindingHandler } from "./hooks/use-key-bindings.d.ts";
109
+ export { default as useKeyBindings } from "./hooks/use-key-bindings.d.ts";
110
+ export { default as useIsScreenReaderEnabled } from "./hooks/use-is-screen-reader-enabled.d.ts";
111
+ export type { LinkedScrollGroup, UseLinkedScrollReturn } from "./hooks/use-linked-scroll.d.ts";
112
+ export { default as createLinkedScrollGroup } from "./hooks/use-linked-scroll.d.ts";
113
+ export { default as usePaste } from "./hooks/use-paste.d.ts";
114
+ export type { UseScrollAccelerationOptions, UseScrollAccelerationResult } from "./hooks/use-scroll-acceleration.d.ts";
115
+ export { default as useScrollAcceleration } from "./hooks/use-scroll-acceleration.d.ts";
116
+ export type { UseScrollInputOptions, UseScrollInputReturn } from "./hooks/use-scroll-input.d.ts";
117
+ export { default as useScrollInput } from "./hooks/use-scroll-input.d.ts";
118
+ export type { UseStopwatchOptions, UseStopwatchResult } from "./hooks/use-stopwatch.d.ts";
119
+ export { default as useStopwatch } from "./hooks/use-stopwatch.d.ts";
120
+ export { default as useStderr } from "./hooks/use-stderr.d.ts";
121
+ export { default as useStdin } from "./hooks/use-stdin.d.ts";
122
+ export { default as useStdout } from "./hooks/use-stdout.d.ts";
123
+ export type { UseTimerOptions, UseTimerResult } from "./hooks/use-timer.d.ts";
124
+ export { default as useTimer } from "./hooks/use-timer.d.ts";
125
+ export type { UseTerminalPaletteResult } from "./hooks/use-terminal-palette.d.ts";
126
+ export { default as useTerminalPalette } from "./hooks/use-terminal-palette.d.ts";
127
+ export type { CursorPosition as TextBufferCursorPosition, TextBufferState, UseTextBufferResult } from "./hooks/use-text-buffer.d.ts";
128
+ export { default as useTextBuffer } from "./hooks/use-text-buffer.d.ts";
129
+ export type { UseTextSelectionOptions, UseTextSelectionResult } from "./hooks/use-text-selection.d.ts";
130
+ export { default as useTextSelection } from "./hooks/use-text-selection.d.ts";
131
+ export type { WindowSize } from "./hooks/use-window-size.d.ts";
132
+ export { default as useWindowSize } from "./hooks/use-window-size.d.ts";
133
+ export { IMECompositionBuffer, isIMEInput } from "./ime-utils.d.ts";
134
+ export type { KittyFlagName, KittyKeyboardOptions } from "./kitty-keyboard.d.ts";
135
+ export { kittyFlags, kittyModifiers } from "./kitty-keyboard.d.ts";
136
+ export type { LayoutCallbacks } from "./layout.d.ts";
137
+ export { processLayout } from "./layout.d.ts";
138
+ export type { CursorPosition } from "./log-update.d.ts";
139
+ export type { ScrollbarBoundingBox, TextFragment } from "./measure-element.d.ts";
140
+ export { default as measureElement } from "./measure-element.d.ts";
141
+ export { calculateScrollbarLayout, calculateScrollbarThumb, collectSortedFragments, getAddedScrollHeight, getBoundingBox, getHorizontalScrollbarBoundingBox, getInnerHeight, getInnerWidth, getRelativeLeft, getRelativeTop, getText, getVerticalScrollbarBoundingBox, } from "./measure-element.d.ts";
142
+ export type { StringWidthFunction } from "./measure-text.d.ts";
143
+ export { clearStringWidthCache, clearStyledLineCache, inkCharacterWidth, setEnableStyledLineCache, setStringWidthFunction, toStyledLine } from "./measure-text.d.ts";
144
+ export type { MouseAction, MouseButton, MouseClickAction, MouseContextShape, MouseDragAction, MouseEvents, MousePosition, MouseScrollAction, SgrMouseEvent, UseOnMouseClickOptions, } from "./index.d.ts";
145
+ export { Fullscreen, isIntersecting, MouseProvider, parseSgrMouse, useElementDimensions, useElementPosition, useMouseAction, useMouseContext, useMousePosition, useOnMouseClick, useOnMouseHover, useOnMouseState, } from "./index.d.ts";
146
+ export type { Instance, RenderOptions } from "./render.d.ts";
147
+ export { default as render } from "./render.d.ts";
148
+ export type { RenderToStringOptions } from "./render-to-string.d.ts";
149
+ export { default as renderToString } from "./render-to-string.d.ts";
150
+ export type { ResizeObserverCallback } from "./resize-observer.d.ts";
151
+ export { default as ResizeObserver, ResizeObserverEntry } from "./resize-observer.d.ts";
152
+ export type { ScrollState } from "./scroll.d.ts";
153
+ export { calculateScroll, getScrollHeight, getScrollLeft, getScrollTop, getScrollWidth } from "./scroll.d.ts";
154
+ export { applySelectionToStyledLine, comparePoints, Range, Selection } from "./selection.d.ts";
155
+ export type { CharOffsetMap, CharOffsetRange } from "./squash-text-nodes.d.ts";
156
+ export { squashTextNodesWithMap } from "./squash-text-nodes.d.ts";
157
+ export type { TerminalPalette } from "./terminal-palette.d.ts";
158
+ export { isTerminalPaletteQuerySupported, queryTerminalPalette } from "./terminal-palette.d.ts";
159
+ export { wrapOrTruncateStyledLine } from "./text-wrap.d.ts";
@@ -0,0 +1,100 @@
1
+ export { clearOsc52, isOsc52Supported, writeOsc52 } from '../packem_shared/isOsc52Supported-G0k4sXJx.js';
2
+ export { COLOR_BLINDNESS_COMPENSATION, COLOR_BLINDNESS_SIMULATION, IDENTITY_MATRIX, applyColorMatrix, hexToRgb, rgbToHex, transformHexColor } from '../packem_shared/COLOR_BLINDNESS_SIMULATION-BsMy5Ewl.js';
3
+ export { default as Alert } from '../packem_shared/Alert-Dr3s_LD9.js';
4
+ export { default as Badge } from '../packem_shared/Badge-Dk7EGGM6.js';
5
+ export { default as BigText } from '../packem_shared/BigText-CjMdY63X.js';
6
+ export { default as Box } from '../packem_shared/Box-D_pSJ9Jp.js';
7
+ export { default as Code } from '../packem_shared/Code-DjQvPBD9.js';
8
+ export { default as ConfirmInput } from '../packem_shared/ConfirmInput-85Y4kRQW.js';
9
+ export { default as ConsoleOverlay } from '../packem_shared/ConsoleOverlay-DBNa4vtj.js';
10
+ export { default as Cursor } from '../packem_shared/Cursor-DiW7YoSK.js';
11
+ export { default as Dialog } from '../packem_shared/Dialog-DsSNAVgC.js';
12
+ export { default as DiffView } from '../packem_shared/DiffView-hqaw-2S6.js';
13
+ export { default as Gradient } from '../packem_shared/Gradient-Ql5P0GUd.js';
14
+ export { default as Help } from '../packem_shared/Help-6wanGG38.js';
15
+ export { default as Link } from '../packem_shared/Link-COcKYfGT.js';
16
+ export { default as Markdown } from '../packem_shared/Markdown-y1ISztof.js';
17
+ export { default as MultiSelect } from '../packem_shared/MultiSelect-ChoLUcDI.js';
18
+ export { default as Newline } from '../packem_shared/Newline-DBtYEg8x.js';
19
+ export { default as Paginator } from '../packem_shared/Paginator-D1AuD-kj.js';
20
+ export { default as OrderedList } from '../packem_shared/OrderedList-Cp7pXr6m.js';
21
+ export { default as ProgressBar } from '../packem_shared/ProgressBar-DOfpVagn.js';
22
+ export { default as SelectInput } from '../packem_shared/SelectInput-BN2TMyxp.js';
23
+ export { default as SelectInputIndicator } from '../packem_shared/SelectInputIndicator-DkRMoH_b.js';
24
+ export { default as SelectInputItem } from '../packem_shared/SelectInputItem-BF9LQgKu.js';
25
+ export { default as Slider } from '../packem_shared/Slider-BWD7xZX6.js';
26
+ export { default as Spacer } from '../packem_shared/Spacer-Bs4ER-HK.js';
27
+ export { default as Spinner } from '../packem_shared/Spinner-BuI-kN4p.js';
28
+ export { default as Static } from '../packem_shared/Static-DpTd6Eed.js';
29
+ export { default as StaticRender } from '../packem_shared/StaticRender-tYwH6QXl.js';
30
+ export { default as StatusMessage } from '../packem_shared/StatusMessage-BtSYxzwb.js';
31
+ export { default as Stopwatch } from '../packem_shared/Stopwatch-DjtTCyHn.js';
32
+ export { default as Tab } from '../packem_shared/Tab-C6r5q4hR.js';
33
+ export { default as Table } from '../packem_shared/Table-D-rSVlzb.js';
34
+ export { default as Tabs } from '../packem_shared/Tabs-hki-KRnx.js';
35
+ export { default as Text } from '../packem_shared/Text-DvAUdZcK.js';
36
+ export { default as Timer } from '../packem_shared/Timer-wi9zuh4n.js';
37
+ export { default as Textarea } from '../packem_shared/Textarea-Dj06R6Zd.js';
38
+ export { default as TextInput } from '../packem_shared/TextInput-C79WEQ5U.js';
39
+ export { default as Transform } from '../packem_shared/Transform-BHxY_dAM.js';
40
+ export { default as UnorderedList } from '../packem_shared/UnorderedList-DhnadWjX.js';
41
+ export { g as getPathToRoot, i as isNodeSelectable } from '../packem_shared/dom-DvzhsAez.js';
42
+ export { default as useAnimation } from '../packem_shared/useAnimation-kj31sA-T.js';
43
+ export { default as useApp } from '../packem_shared/useApp-DPQlRzi5.js';
44
+ export { default as useBoxMetrics } from '../packem_shared/useBoxMetrics-rBjKc-g4.js';
45
+ export { default as useClipboard } from '../packem_shared/useClipboard-B_9-adw1.js';
46
+ export { default as useColorBlindness } from '../packem_shared/useColorBlindness-D_sTIhcb.js';
47
+ export { default as useConsoleCapture } from '../packem_shared/useConsoleCapture-Dvt7G1W1.js';
48
+ export { default as useCursor } from '../packem_shared/useCursor-BIJzc8k9.js';
49
+ export { default as useFocus } from '../packem_shared/useFocus-CNl5QHHf.js';
50
+ export { default as useFocusManager } from '../packem_shared/useFocusManager-BPYaUuKQ.js';
51
+ export { default as useInput } from '../packem_shared/useInput-Cfp5zB2s.js';
52
+ export { default as useKeyBindings } from '../packem_shared/useKeyBindings-B78l1E1n.js';
53
+ export { default as useIsScreenReaderEnabled } from '../packem_shared/useIsScreenReaderEnabled-CnGKCe0f.js';
54
+ export { default as createLinkedScrollGroup } from '../packem_shared/createLinkedScrollGroup-Djw4Ceo0.js';
55
+ export { default as usePaste } from '../packem_shared/usePaste-Ct8J4AGR.js';
56
+ export { default as useScrollAcceleration } from '../packem_shared/useScrollAcceleration-R9LfrPVG.js';
57
+ export { default as useScrollInput } from '../packem_shared/useScrollInput-D3CpBq_a.js';
58
+ export { default as useStopwatch } from '../packem_shared/useStopwatch-qC4Beai4.js';
59
+ export { default as useStderr } from '../packem_shared/useStderr-CAOVUh4E.js';
60
+ export { default as useStdin } from '../packem_shared/useStdin-X-O0kd-n.js';
61
+ export { default as useStdout } from '../packem_shared/useStdout-DyF6DSH0.js';
62
+ export { default as useTimer } from '../packem_shared/useTimer-CPQ7j827.js';
63
+ export { default as useTerminalPalette } from '../packem_shared/useTerminalPalette-BaWO2c4Q.js';
64
+ export { default as useTextBuffer } from '../packem_shared/useTextBuffer-C8fEe9Ly.js';
65
+ export { default as useTextSelection } from '../packem_shared/useTextSelection-mXtxgsPK.js';
66
+ export { default as useWindowSize } from '../packem_shared/useWindowSize-ugEmGZJm.js';
67
+ export { IMECompositionBuffer, isIMEInput } from '../packem_shared/IMECompositionBuffer-Dl3S0KnF.js';
68
+ export { kittyFlags, kittyModifiers } from '../packem_shared/kittyFlags-bNNf_9kX.js';
69
+ export { c as calculateScrollbarLayout, a as calculateScrollbarThumb, b as collectSortedFragments, g as getAddedScrollHeight, d as getBoundingBox, e as getHorizontalScrollbarBoundingBox, f as getInnerHeight, h as getInnerWidth, i as getRelativeLeft, j as getRelativeTop, k as getText, l as getVerticalScrollbarBoundingBox, m as measureElement, p as processLayout } from '../packem_shared/measure-element-Reza_yfC.js';
70
+ export { c as clearStringWidthCache, a as clearStyledLineCache, i as inkCharacterWidth, s as setEnableStyledLineCache, b as setStringWidthFunction, t as toStyledLine } from '../packem_shared/measure-text-DItZYotK.js';
71
+ export { default as render } from '../packem_shared/render-BAwdjfki.js';
72
+ export { default as renderToString } from '../packem_shared/renderToString-ClIaXgrC.js';
73
+ export { default as ResizeObserver, ResizeObserverEntry } from '../packem_shared/ResizeObserverEntry-Br4seLeQ.js';
74
+ export { calculateScroll, getScrollHeight, getScrollLeft, getScrollTop, getScrollWidth } from '../packem_shared/getScrollHeight-BubfU_df.js';
75
+ export { Range, Selection, applySelectionToStyledLine, comparePoints } from '../packem_shared/comparePoints-CGMDnd3_.js';
76
+ export { squashTextNodesWithMap } from '../packem_shared/squashTextNodesWithMap-iqm6OMMT.js';
77
+ export { isTerminalPaletteQuerySupported, queryTerminalPalette } from '../packem_shared/isTerminalPaletteQuerySupported-EeiwMKbr.js';
78
+ export { wrapOrTruncateStyledLine } from '../packem_shared/wrapOrTruncateStyledLine-DN3Nogoc.js';
79
+ export { default as FilePicker } from '../packem_shared/FilePicker-DNwFxRhq.js';
80
+ export { default as Fullscreen } from '../packem_shared/Fullscreen-DrElAE1o.js';
81
+ export { default as MouseProvider } from '../packem_shared/MouseProvider-Y9TSSEGl.js';
82
+ export { default as isIntersecting } from '../packem_shared/isIntersecting-fEXHJN5R.js';
83
+ export { default as useMouseAction } from '../packem_shared/useMouseAction-C5gZ2nj7.js';
84
+ export { default as useMouseContext } from '../packem_shared/useMouseContext-D-rFy60Q.js';
85
+ export { default as useMousePosition } from '../packem_shared/useMousePosition-BHBJ-kBk.js';
86
+ export { default as useOnMouseHover } from '../packem_shared/useOnMouseHover-26diuXUC.js';
87
+ export { default as useOnMouseState } from '../packem_shared/useOnMouseState-NO_Kda_C.js';
88
+ export { C as ControlledScrollView } from '../packem_shared/ControlledScrollView-BlOaxcsN.js';
89
+ export { ScrollBar } from '../packem_shared/ScrollBar-EWAs2Uc7.js';
90
+ export { ScrollBarBox } from '../packem_shared/ScrollBarBox-DTNNlh7R.js';
91
+ export { ScrollList } from '../packem_shared/ScrollList-DCeIFL8M.js';
92
+ export { ScrollView } from '../packem_shared/ScrollView-v3MCNIyX.js';
93
+ export { TreeNodeMap } from '../packem_shared/TreeNodeMap-CtJUvBnd.js';
94
+ export { TreeView } from '../packem_shared/TreeView-C2062dtj.js';
95
+ export { p as parseSgrMouse } from '../packem_shared/ansi-parser-0BdVTKho.js';
96
+ export { theme as treeViewTheme } from '../packem_shared/treeViewTheme-BpSw9TMf.js';
97
+ export { useElementDimensions, useElementPosition } from '../packem_shared/useElementDimensions-CAoKitVD.js';
98
+ export { useOnMouseClick } from '../packem_shared/useOnMouseClick--ZIyBOBO.js';
99
+ export { useTreeView } from '../packem_shared/useTreeView-BT57P3Kx.js';
100
+ export { useTreeViewState } from '../packem_shared/useTreeViewState-BpS_KZ-K.js';
@@ -0,0 +1,189 @@
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
+ }
@@ -0,0 +1,10 @@
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;
@@ -0,0 +1,16 @@
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;
@@ -0,0 +1,3 @@
1
+ import type Ink from "./ink/ink.d.ts";
2
+ declare const instances: WeakMap<NodeJS.WriteStream, Ink>;
3
+ export default instances;