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

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 (669) hide show
  1. package/CHANGELOG.md +285 -0
  2. package/LICENSE.md +2650 -55
  3. package/README.md +38 -10
  4. package/dist/components/accordion.d.ts +59 -0
  5. package/dist/components/accordion.js +1 -0
  6. package/dist/components/alert.d.ts +26 -0
  7. package/dist/components/alert.js +1 -0
  8. package/dist/components/animate-presence.d.ts +18 -0
  9. package/dist/components/animate-presence.js +1 -0
  10. package/dist/components/approval-prompt.d.ts +65 -0
  11. package/dist/components/approval-prompt.js +1 -0
  12. package/dist/components/area-chart.d.ts +66 -0
  13. package/dist/components/area-chart.js +1 -0
  14. package/dist/components/badge.d.ts +22 -0
  15. package/dist/components/badge.js +1 -0
  16. package/dist/components/bar-chart.d.ts +67 -0
  17. package/dist/components/bar-chart.js +1 -0
  18. package/dist/components/big-text.d.ts +81 -0
  19. package/dist/components/big-text.js +1 -0
  20. package/dist/components/blink-dot.d.ts +36 -0
  21. package/dist/components/blink-dot.js +1 -0
  22. package/dist/components/box.d.ts +61 -0
  23. package/dist/components/box.js +1 -0
  24. package/dist/components/breadcrumb.d.ts +33 -0
  25. package/dist/components/breadcrumb.js +1 -0
  26. package/dist/components/button.d.ts +45 -0
  27. package/dist/components/button.js +1 -0
  28. package/dist/components/calendar.d.ts +72 -0
  29. package/dist/components/calendar.js +1 -0
  30. package/dist/components/canvas.d.ts +44 -0
  31. package/dist/components/canvas.js +1 -0
  32. package/dist/components/card.d.ts +57 -0
  33. package/dist/components/card.js +1 -0
  34. package/dist/components/checkbox.d.ts +48 -0
  35. package/dist/components/checkbox.js +1 -0
  36. package/dist/components/code.d.ts +48 -0
  37. package/dist/components/code.js +2 -0
  38. package/dist/components/collapsible.d.ts +53 -0
  39. package/dist/components/collapsible.js +1 -0
  40. package/dist/components/command-block.d.ts +47 -0
  41. package/dist/components/command-block.js +4 -0
  42. package/dist/components/command-palette.d.ts +82 -0
  43. package/dist/components/command-palette.js +1 -0
  44. package/dist/components/confirm-dialog.d.ts +75 -0
  45. package/dist/components/confirm-dialog.js +1 -0
  46. package/dist/components/confirm-input.d.ts +38 -0
  47. package/dist/components/confirm-input.js +1 -0
  48. package/dist/components/console-overlay.d.ts +54 -0
  49. package/dist/components/console-overlay.js +1 -0
  50. package/dist/components/content-switcher.d.ts +57 -0
  51. package/dist/components/content-switcher.js +1 -0
  52. package/dist/components/controlled-scroll-view.d.ts +60 -0
  53. package/dist/components/controlled-scroll-view.js +1 -0
  54. package/dist/components/cursor.d.ts +61 -0
  55. package/dist/components/cursor.js +1 -0
  56. package/dist/components/date-picker.d.ts +65 -0
  57. package/dist/components/date-picker.js +1 -0
  58. package/dist/components/definition-list.d.ts +44 -0
  59. package/dist/components/definition-list.js +1 -0
  60. package/dist/components/dialog.d.ts +116 -0
  61. package/dist/components/dialog.js +1 -0
  62. package/dist/components/diff-view.d.ts +85 -0
  63. package/dist/components/diff-view.js +1 -0
  64. package/dist/components/divider.d.ts +49 -0
  65. package/dist/components/divider.js +1 -0
  66. package/dist/components/file-picker-entry.d.ts +104 -0
  67. package/dist/components/file-picker-entry.js +1 -0
  68. package/dist/components/form.d.ts +81 -0
  69. package/dist/components/form.js +1 -0
  70. package/dist/components/gauge.d.ts +87 -0
  71. package/dist/components/gauge.js +1 -0
  72. package/dist/components/gradient.d.ts +59 -0
  73. package/dist/components/gradient.js +4 -0
  74. package/dist/components/heading.d.ts +33 -0
  75. package/dist/components/heading.js +1 -0
  76. package/dist/components/heatmap.d.ts +62 -0
  77. package/dist/components/heatmap.js +1 -0
  78. package/dist/components/help.d.ts +52 -0
  79. package/dist/components/help.js +1 -0
  80. package/dist/components/histogram.d.ts +62 -0
  81. package/dist/components/histogram.js +1 -0
  82. package/dist/components/kbd.d.ts +31 -0
  83. package/dist/components/kbd.js +1 -0
  84. package/dist/components/line-chart.d.ts +109 -0
  85. package/dist/components/line-chart.js +1 -0
  86. package/dist/components/link.d.ts +38 -0
  87. package/dist/components/link.js +1 -0
  88. package/dist/components/loading-indicator.d.ts +29 -0
  89. package/dist/components/loading-indicator.js +1 -0
  90. package/dist/components/markdown.d.ts +40 -0
  91. package/dist/components/markdown.js +1 -0
  92. package/dist/components/masked-input.d.ts +50 -0
  93. package/dist/components/masked-input.js +1 -0
  94. package/dist/components/menu.d.ts +78 -0
  95. package/dist/components/menu.js +1 -0
  96. package/dist/components/message-bubble.d.ts +43 -0
  97. package/dist/components/message-bubble.js +1 -0
  98. package/dist/components/model-badge.d.ts +39 -0
  99. package/dist/components/model-badge.js +1 -0
  100. package/dist/components/multi-select.d.ts +65 -0
  101. package/dist/components/multi-select.js +1 -0
  102. package/dist/components/newline.d.ts +15 -0
  103. package/dist/components/newline.js +2 -0
  104. package/dist/components/operation-tree.d.ts +49 -0
  105. package/dist/components/operation-tree.js +1 -0
  106. package/dist/components/option-list.d.ts +47 -0
  107. package/dist/components/option-list.js +1 -0
  108. package/dist/components/ordered-list.d.ts +24 -0
  109. package/dist/components/ordered-list.js +1 -0
  110. package/dist/components/paginator.d.ts +69 -0
  111. package/dist/components/paginator.js +1 -0
  112. package/dist/components/paragraph.d.ts +38 -0
  113. package/dist/components/paragraph.js +1 -0
  114. package/dist/components/placeholder.d.ts +55 -0
  115. package/dist/components/placeholder.js +1 -0
  116. package/dist/components/progress-bar.d.ts +55 -0
  117. package/dist/components/progress-bar.js +1 -0
  118. package/dist/components/radio-group.d.ts +74 -0
  119. package/dist/components/radio-group.js +1 -0
  120. package/dist/components/scatter-plot.d.ts +35 -0
  121. package/dist/components/scatter-plot.js +1 -0
  122. package/dist/components/scroll-bar-box.d.ts +36 -0
  123. package/dist/components/scroll-bar-box.js +1 -0
  124. package/dist/components/scroll-bar.d.ts +24 -0
  125. package/dist/components/scroll-bar.js +1 -0
  126. package/dist/components/scroll-list.d.ts +19 -0
  127. package/dist/components/scroll-list.js +1 -0
  128. package/dist/components/scroll-view.d.ts +9 -0
  129. package/dist/components/scroll-view.js +1 -0
  130. package/dist/components/search-input.d.ts +55 -0
  131. package/dist/components/search-input.js +1 -0
  132. package/dist/components/select-input-indicator.d.ts +32 -0
  133. package/dist/components/select-input-indicator.js +1 -0
  134. package/dist/components/select-input-item.d.ts +41 -0
  135. package/dist/components/select-input-item.js +1 -0
  136. package/dist/components/select-input.d.ts +110 -0
  137. package/dist/components/select-input.js +1 -0
  138. package/dist/components/shimmer-text.d.ts +47 -0
  139. package/dist/components/shimmer-text.js +1 -0
  140. package/dist/components/slider.d.ts +103 -0
  141. package/dist/components/slider.js +1 -0
  142. package/dist/components/spacer.d.ts +8 -0
  143. package/dist/components/spacer.js +1 -0
  144. package/dist/components/sparkline.d.ts +35 -0
  145. package/dist/components/sparkline.js +1 -0
  146. package/dist/components/spinner.d.ts +17 -0
  147. package/dist/components/spinner.js +1 -0
  148. package/dist/components/static-render.d.ts +54 -0
  149. package/dist/components/static-render.js +1 -0
  150. package/dist/components/static.d.ts +28 -0
  151. package/dist/components/static.js +1 -0
  152. package/dist/components/status-line.d.ts +37 -0
  153. package/dist/components/status-line.js +1 -0
  154. package/dist/components/status-message.d.ts +21 -0
  155. package/dist/components/status-message.js +1 -0
  156. package/dist/components/stepper.d.ts +48 -0
  157. package/dist/components/stepper.js +1 -0
  158. package/dist/components/stopwatch.d.ts +49 -0
  159. package/dist/components/stopwatch.js +1 -0
  160. package/dist/components/streaming-text.d.ts +46 -0
  161. package/dist/components/streaming-text.js +1 -0
  162. package/dist/components/switch.d.ts +55 -0
  163. package/dist/components/switch.js +1 -0
  164. package/dist/components/tab.d.ts +19 -0
  165. package/dist/components/tab.js +1 -0
  166. package/dist/components/table.d.ts +119 -0
  167. package/dist/components/table.js +1 -0
  168. package/dist/components/tabs.d.ts +107 -0
  169. package/dist/components/tabs.js +1 -0
  170. package/dist/components/tag.d.ts +35 -0
  171. package/dist/components/tag.js +1 -0
  172. package/dist/components/text-input.d.ts +48 -0
  173. package/dist/components/text-input.js +1 -0
  174. package/dist/components/text.d.ts +78 -0
  175. package/dist/components/text.js +1 -0
  176. package/dist/components/textarea.d.ts +68 -0
  177. package/dist/components/textarea.js +2 -0
  178. package/dist/components/timer.d.ts +59 -0
  179. package/dist/components/timer.js +1 -0
  180. package/dist/components/toast.d.ts +49 -0
  181. package/dist/components/toast.js +1 -0
  182. package/dist/components/tooltip.d.ts +43 -0
  183. package/dist/components/tooltip.js +1 -0
  184. package/dist/components/transform.d.ts +21 -0
  185. package/dist/components/transform.js +1 -0
  186. package/dist/components/transition.d.ts +74 -0
  187. package/dist/components/transition.js +1 -0
  188. package/dist/components/tree-view-entry.d.ts +356 -0
  189. package/dist/components/tree-view-entry.js +1 -0
  190. package/dist/components/unordered-list.d.ts +30 -0
  191. package/dist/components/unordered-list.js +1 -0
  192. package/dist/core/index.d.ts +57 -5
  193. package/dist/core/index.js +1 -5
  194. package/dist/ink/hooks/use-animation.d.ts +37 -39
  195. package/dist/ink/hooks/use-animation.js +1 -0
  196. package/dist/ink/hooks/use-app.d.ts +36 -4
  197. package/dist/ink/hooks/use-app.js +1 -0
  198. package/dist/ink/hooks/use-box-metrics.d.ts +57 -50
  199. package/dist/ink/hooks/use-box-metrics.js +1 -0
  200. package/dist/ink/hooks/use-clipboard.d.ts +26 -25
  201. package/dist/ink/hooks/use-clipboard.js +1 -0
  202. package/dist/ink/hooks/use-color-blindness.d.ts +29 -29
  203. package/dist/ink/hooks/use-color-blindness.js +1 -0
  204. package/dist/ink/hooks/use-console-capture.d.ts +38 -38
  205. package/dist/ink/hooks/use-console-capture.js +1 -0
  206. package/dist/ink/hooks/use-cursor.d.ts +10 -9
  207. package/dist/ink/hooks/use-cursor.js +1 -0
  208. package/dist/ink/hooks/use-focus-manager.d.ts +53 -38
  209. package/dist/ink/hooks/use-focus-manager.js +1 -0
  210. package/dist/ink/hooks/use-focus.d.ts +29 -25
  211. package/dist/ink/hooks/use-focus.js +1 -0
  212. package/dist/ink/hooks/use-form.d.ts +68 -0
  213. package/dist/ink/hooks/use-form.js +1 -0
  214. package/dist/ink/hooks/use-hotkey.d.ts +37 -0
  215. package/dist/ink/hooks/use-hotkey.js +1 -0
  216. package/dist/ink/hooks/use-input.d.ts +142 -142
  217. package/dist/ink/hooks/use-input.js +2 -0
  218. package/dist/ink/hooks/use-interval.d.ts +25 -0
  219. package/dist/ink/hooks/use-interval.js +1 -0
  220. package/dist/ink/hooks/use-is-screen-reader-enabled.d.ts +4 -4
  221. package/dist/ink/hooks/use-is-screen-reader-enabled.js +1 -0
  222. package/dist/ink/hooks/use-key-bindings.d.ts +50 -52
  223. package/dist/ink/hooks/use-key-bindings.js +1 -0
  224. package/dist/ink/hooks/use-key-chord.d.ts +25 -0
  225. package/dist/ink/hooks/use-key-chord.js +1 -0
  226. package/dist/ink/hooks/use-linked-scroll.d.ts +44 -37
  227. package/dist/ink/hooks/use-linked-scroll.js +1 -0
  228. package/dist/ink/hooks/use-paste.d.ts +41 -40
  229. package/dist/ink/hooks/use-paste.js +1 -0
  230. package/dist/ink/hooks/use-persistent-state.d.ts +56 -0
  231. package/dist/ink/hooks/use-persistent-state.js +2 -0
  232. package/dist/ink/hooks/use-scroll-acceleration.d.ts +43 -43
  233. package/dist/ink/hooks/use-scroll-acceleration.js +1 -0
  234. package/dist/ink/hooks/use-scroll-input.d.ts +31 -31
  235. package/dist/ink/hooks/use-scroll-input.js +1 -0
  236. package/dist/ink/hooks/use-stderr.d.ts +14 -4
  237. package/dist/ink/hooks/use-stderr.js +1 -0
  238. package/dist/ink/hooks/use-stdin.d.ts +28 -5
  239. package/dist/ink/hooks/use-stdin.js +1 -0
  240. package/dist/ink/hooks/use-stdout.d.ts +14 -4
  241. package/dist/ink/hooks/use-stdout.js +1 -0
  242. package/dist/ink/hooks/use-stopwatch.d.ts +36 -37
  243. package/dist/ink/hooks/use-stopwatch.js +1 -0
  244. package/dist/ink/hooks/use-terminal-palette.d.ts +17 -16
  245. package/dist/ink/hooks/use-terminal-palette.js +1 -0
  246. package/dist/ink/hooks/use-text-buffer.d.ts +37 -37
  247. package/dist/ink/hooks/use-text-buffer.js +4 -0
  248. package/dist/ink/hooks/use-text-selection.d.ts +40 -41
  249. package/dist/ink/hooks/use-text-selection.js +1 -0
  250. package/dist/ink/hooks/use-timeout.d.ts +24 -0
  251. package/dist/ink/hooks/use-timeout.js +1 -0
  252. package/dist/ink/hooks/use-timer.d.ts +45 -46
  253. package/dist/ink/hooks/use-timer.js +1 -0
  254. package/dist/ink/hooks/use-window-size.d.ts +14 -14
  255. package/dist/ink/hooks/use-window-size.js +1 -0
  256. package/dist/ink/index.d.ts +397 -159
  257. package/dist/ink/index.js +1 -100
  258. package/dist/packem_chunks/devtools.js +3 -26
  259. package/dist/packem_shared/COLOR_BLINDNESS_SIMULATION-DqErf7XX.js +1 -0
  260. package/dist/packem_shared/Cell-BrXn3jxY.js +1 -0
  261. package/dist/packem_shared/ControlledScrollView-CIc-x1Cx.js +1 -0
  262. package/dist/packem_shared/DevTools-BR7K-5JX.js +1 -0
  263. package/dist/packem_shared/FilePicker-tYj_CIau.js +1 -0
  264. package/dist/packem_shared/FocusContext-Xy0cwJpO.js +1 -0
  265. package/dist/packem_shared/Fullscreen-CxLd1-Zu.js +1 -0
  266. package/dist/packem_shared/IMECompositionBuffer-C89PhiOu.js +1 -0
  267. package/dist/packem_shared/InputParser-BAqciKJ6.js +2 -0
  268. package/dist/packem_shared/KEY-Bk8B-3h_.js +1 -0
  269. package/dist/packem_shared/LayoutNode-B0qeT8sl.js +1 -0
  270. package/dist/packem_shared/MouseProvider-CHU5DuwC.js +1 -0
  271. package/dist/packem_shared/NAMED_COLORS-B9fJsYdg.js +1 -0
  272. package/dist/packem_shared/Renderer-DJXooAsp.js +1 -0
  273. package/dist/packem_shared/ResizeObserverEntry-Dq0dk8Kq.js +1 -0
  274. package/dist/packem_shared/ScrollBar-U_37hlIT.js +1 -0
  275. package/dist/packem_shared/ScrollBarBox-DwiCxilX.js +1 -0
  276. package/dist/packem_shared/ScrollList-C7nZ9ufK.js +1 -0
  277. package/dist/packem_shared/ScrollView-DKZ8OM-m.js +1 -0
  278. package/dist/packem_shared/Static-DLynr5pn.js +1 -0
  279. package/dist/packem_shared/TreeNodeMap-CspqSCpb.js +1 -0
  280. package/dist/packem_shared/TreeView-C0Iv3et8.js +1 -0
  281. package/dist/packem_shared/TuiApp-CxBtziW8.js +1 -0
  282. package/dist/packem_shared/TuiContext-BoJvG3NN.js +3 -0
  283. package/dist/packem_shared/_commonjsHelpers-CHNfUHCT.js +1 -0
  284. package/dist/packem_shared/accessibility-context-DDyHTwmA.js +1 -0
  285. package/dist/packem_shared/animation-context-DW3p-vpk.js +1 -0
  286. package/dist/packem_shared/ansi-parser-C5JuL732.js +1 -0
  287. package/dist/packem_shared/ansi-tokenizer-DqX9nJuk.js +1 -0
  288. package/dist/packem_shared/app-context-BVpKlG1z.js +1 -0
  289. package/dist/packem_shared/background-context-rjOaWFki.js +1 -0
  290. package/dist/packem_shared/boxes-DyY_LXCi.js +1 -0
  291. package/dist/packem_shared/braille-BBjIoaN0.js +1 -0
  292. package/dist/packem_shared/buffer.d-EJkZr8uH.d.ts +39 -0
  293. package/dist/packem_shared/clipboard.d-D6lZTQ21.d.ts +23 -0
  294. package/dist/packem_shared/color-matrix.d-DSXLsB64.d.ts +50 -0
  295. package/dist/packem_shared/colorize-gy_cY-wC.js +2 -0
  296. package/dist/packem_shared/comparePoints-Dez5FkH9.js +1 -0
  297. package/dist/packem_shared/constants-D12jy2Zh-RSfxu1eM.js +1 -0
  298. package/dist/packem_shared/controlled-scroll-view-CcUS50jx.js +1 -0
  299. package/dist/packem_shared/createInlineLoop-D0JaKX9A.js +2 -0
  300. package/dist/packem_shared/createScreen-87XLHZq6.js +3 -0
  301. package/dist/packem_shared/cursor-context-CFviBqPX.js +1 -0
  302. package/dist/packem_shared/cursor-helpers.d-BONB9tky.d.ts +12 -0
  303. package/dist/packem_shared/dom-CW6KYzFK.js +8 -0
  304. package/dist/packem_shared/dom.d-DgP_exKU.d.ts +412 -0
  305. package/dist/packem_shared/erase-DKKNxHZ_.js +1 -0
  306. package/dist/packem_shared/focus-context-CsT69klR.js +1 -0
  307. package/dist/packem_shared/format-time-C7Q-hQZq.js +1 -0
  308. package/dist/packem_shared/get-string-width-CbMPWEJO.js +1 -0
  309. package/dist/packem_shared/getPathToRoot-B3q6OlQy.js +1 -0
  310. package/dist/packem_shared/getScrollHeight-ClEOyLHH.js +1 -0
  311. package/dist/packem_shared/index-COPEEDn3.js +9 -0
  312. package/dist/packem_shared/index-CqsHHJkn.js +75 -0
  313. package/dist/packem_shared/index.d-Bk52cbgN.d.ts +14 -0
  314. package/dist/packem_shared/index.server.d-eZWyC2Ku.d.ts +5 -0
  315. package/dist/packem_shared/input-utils-fAxzSlNh.js +1 -0
  316. package/dist/packem_shared/input.d-D-Yxqha8.d.ts +172 -0
  317. package/dist/packem_shared/isIntersecting-B3KbKTmu.js +1 -0
  318. package/dist/packem_shared/isOsc52Supported-DKK7Uee6.js +1 -0
  319. package/dist/packem_shared/isTerminalPaletteQuerySupported-Dn2hFAZ_.js +1 -0
  320. package/dist/packem_shared/kittyFlags-C3rZLbcK.js +1 -0
  321. package/dist/packem_shared/layout-BMo200nF.js +2 -0
  322. package/dist/packem_shared/line-chart-kf7uhR0K.js +1 -0
  323. package/dist/packem_shared/measure-text-D-jVetsl.js +3 -0
  324. package/dist/packem_shared/measureElement-BTtTFZg4.js +1 -0
  325. package/dist/packem_shared/mode-BOIU4Roy.js +1 -0
  326. package/dist/packem_shared/mouse-context-DaARgUu1.js +1 -0
  327. package/dist/packem_shared/parseSgrMouse-DoBY7MKw.js +1 -0
  328. package/dist/packem_shared/processLayout-FEKj_mWu.js +1 -0
  329. package/dist/packem_shared/reconciler-CGhHgXXG.js +1 -0
  330. package/dist/packem_shared/reconciler-ClRKkLS4.js +1 -0
  331. package/dist/packem_shared/render-BoukeuYD.js +1 -0
  332. package/dist/packem_shared/render-CBFHzIKj.js +27 -0
  333. package/dist/packem_shared/render.d-DarVJBG2.d.ts +417 -0
  334. package/dist/packem_shared/renderToString-Cx3DmmMR.js +4 -0
  335. package/dist/packem_shared/renderToString-nZdqfdWT.js +2 -0
  336. package/dist/packem_shared/renderTreeToBuffer-LnGZkEUX.js +2 -0
  337. package/dist/packem_shared/renderer-C2ycheBL.js +17 -0
  338. package/dist/packem_shared/scroll-view.d-DtpsgHLg.d.ts +119 -0
  339. package/dist/packem_shared/selection.d-WuD_83yQ.d.ts +62 -0
  340. package/dist/packem_shared/setEnableStyledLineCache-Cke6_ZQt.js +1 -0
  341. package/dist/packem_shared/squashTextNodesWithMap-DCdi3SZ2.js +1 -0
  342. package/dist/packem_shared/stderr-context-BzEaUICS.js +1 -0
  343. package/dist/packem_shared/stdin-context-BTaaFagk.js +1 -0
  344. package/dist/packem_shared/stdout-context-BnblEPez.js +1 -0
  345. package/dist/packem_shared/strip-C6HQYmlg.js +1 -0
  346. package/dist/packem_shared/styles.d-CLJdt-kg.d.ts +492 -0
  347. package/dist/packem_shared/terminal-palette.d-D2SQjfn-.d.ts +19 -0
  348. package/dist/packem_shared/text-width-CI9G0a-z.js +2 -0
  349. package/dist/packem_shared/token-to-elements-BAZpNZsu.js +1 -0
  350. package/dist/packem_shared/treeViewTheme-1RIZyB4M.js +1 -0
  351. package/dist/packem_shared/useElementDimensions-qJ_WXFZ9.js +1 -0
  352. package/dist/packem_shared/useMouseAction-2dRfU1vE.js +1 -0
  353. package/dist/packem_shared/useMouseContext-C746G7kY.js +1 -0
  354. package/dist/packem_shared/useMousePosition-BTWfV4JK.js +1 -0
  355. package/dist/packem_shared/useOnMouseClick-nY8xLZmt.js +1 -0
  356. package/dist/packem_shared/useOnMouseHover-D3DczIol.js +1 -0
  357. package/dist/packem_shared/useOnMouseState-cRK8QvzD.js +1 -0
  358. package/dist/packem_shared/useTreeView-BoMMeRPq.js +1 -0
  359. package/dist/packem_shared/useTreeViewState-CRPCUWrb.js +1 -0
  360. package/dist/packem_shared/utils-THUhYKG2.js +1 -0
  361. package/dist/packem_shared/variant-config-BJqpNo7H.js +1 -0
  362. package/dist/packem_shared/variant-config.d-D5NnrrQK.d.ts +2 -0
  363. package/dist/packem_shared/waitFor-Dj5zfL5s.js +4 -0
  364. package/dist/packem_shared/wrapOrTruncateStyledLine-kyi6yijx.js +3 -0
  365. package/dist/react/index.d.ts +518 -8
  366. package/dist/react/index.js +1 -9
  367. package/dist/testing/index.d.ts +277 -135
  368. package/dist/testing/index.js +1 -260
  369. package/index.js +52 -52
  370. package/package.json +552 -40
  371. package/dist/core/app.d.ts +0 -50
  372. package/dist/core/cell.d.ts +0 -33
  373. package/dist/core/inline.d.ts +0 -22
  374. package/dist/core/input.d.ts +0 -18
  375. package/dist/core/native-binding.d.ts +0 -22
  376. package/dist/ink/ansi-to-cell.d.ts +0 -5
  377. package/dist/ink/ansi-tokenizer.d.ts +0 -38
  378. package/dist/ink/clipboard.d.ts +0 -29
  379. package/dist/ink/color-matrix.d.ts +0 -49
  380. package/dist/ink/color-utils.d.ts +0 -30
  381. package/dist/ink/colorize.d.ts +0 -4
  382. package/dist/ink/components/AccessibilityContext.d.ts +0 -4
  383. package/dist/ink/components/Alert.d.ts +0 -30
  384. package/dist/ink/components/AnimationContext.d.ts +0 -10
  385. package/dist/ink/components/App.d.ts +0 -19
  386. package/dist/ink/components/AppContext.d.ts +0 -38
  387. package/dist/ink/components/BackgroundContext.d.ts +0 -5
  388. package/dist/ink/components/Badge.d.ts +0 -27
  389. package/dist/ink/components/BigText.d.ts +0 -71
  390. package/dist/ink/components/Box.d.ts +0 -58
  391. package/dist/ink/components/Code.d.ts +0 -46
  392. package/dist/ink/components/ConfirmInput.d.ts +0 -40
  393. package/dist/ink/components/ConsoleOverlay.d.ts +0 -52
  394. package/dist/ink/components/Cursor.d.ts +0 -43
  395. package/dist/ink/components/CursorContext.d.ts +0 -12
  396. package/dist/ink/components/Dialog.d.ts +0 -93
  397. package/dist/ink/components/DiffView.d.ts +0 -71
  398. package/dist/ink/components/ErrorBoundary.d.ts +0 -17
  399. package/dist/ink/components/ErrorOverview.d.ts +0 -6
  400. package/dist/ink/components/FocusContext.d.ts +0 -17
  401. package/dist/ink/components/Gradient.d.ts +0 -38
  402. package/dist/ink/components/Help.d.ts +0 -49
  403. package/dist/ink/components/Link.d.ts +0 -34
  404. package/dist/ink/components/Markdown.d.ts +0 -34
  405. package/dist/ink/components/MultiSelect.d.ts +0 -63
  406. package/dist/ink/components/Newline.d.ts +0 -12
  407. package/dist/ink/components/OrderedList.d.ts +0 -30
  408. package/dist/ink/components/Paginator.d.ts +0 -75
  409. package/dist/ink/components/ProgressBar.d.ts +0 -51
  410. package/dist/ink/components/SelectInput.d.ts +0 -96
  411. package/dist/ink/components/SelectInputIndicator.d.ts +0 -36
  412. package/dist/ink/components/SelectInputItem.d.ts +0 -43
  413. package/dist/ink/components/Slider.d.ts +0 -92
  414. package/dist/ink/components/Spacer.d.ts +0 -7
  415. package/dist/ink/components/Spinner.d.ts +0 -42
  416. package/dist/ink/components/Static.d.ts +0 -24
  417. package/dist/ink/components/StaticRender.d.ts +0 -28
  418. package/dist/ink/components/StatusMessage.d.ts +0 -26
  419. package/dist/ink/components/StderrContext.d.ts +0 -16
  420. package/dist/ink/components/StdinContext.d.ts +0 -29
  421. package/dist/ink/components/StdoutContext.d.ts +0 -16
  422. package/dist/ink/components/Stopwatch.d.ts +0 -44
  423. package/dist/ink/components/Tab.d.ts +0 -25
  424. package/dist/ink/components/Table.d.ts +0 -80
  425. package/dist/ink/components/Tabs.d.ts +0 -104
  426. package/dist/ink/components/Text.d.ts +0 -63
  427. package/dist/ink/components/TextInput.d.ts +0 -48
  428. package/dist/ink/components/Textarea.d.ts +0 -62
  429. package/dist/ink/components/Timer.d.ts +0 -52
  430. package/dist/ink/components/Transform.d.ts +0 -16
  431. package/dist/ink/components/UnorderedList.d.ts +0 -35
  432. package/dist/ink/components/file-picker/FilePicker.d.ts +0 -75
  433. package/dist/ink/components/file-picker/index.d.ts +0 -3
  434. package/dist/ink/components/file-picker/types.d.ts +0 -38
  435. package/dist/ink/components/file-picker/use-file-system.d.ts +0 -16
  436. package/dist/ink/components/scroll/ControlledScrollView.d.ts +0 -43
  437. package/dist/ink/components/scroll/ScrollBar.d.ts +0 -20
  438. package/dist/ink/components/scroll/ScrollBarBox.d.ts +0 -15
  439. package/dist/ink/components/scroll/ScrollList.d.ts +0 -12
  440. package/dist/ink/components/scroll/ScrollView.d.ts +0 -98
  441. package/dist/ink/components/scroll/index.d.ts +0 -10
  442. package/dist/ink/components/scroll/use-state-ref.d.ts +0 -8
  443. package/dist/ink/components/tree-view/TreeView.d.ts +0 -89
  444. package/dist/ink/components/tree-view/TreeViewNode.d.ts +0 -29
  445. package/dist/ink/components/tree-view/index.d.ts +0 -11
  446. package/dist/ink/components/tree-view/theme.d.ts +0 -24
  447. package/dist/ink/components/tree-view/tree-node-map.d.ts +0 -72
  448. package/dist/ink/components/tree-view/types.d.ts +0 -55
  449. package/dist/ink/components/tree-view/use-tree-view-state.d.ts +0 -135
  450. package/dist/ink/components/tree-view/use-tree-view.d.ts +0 -26
  451. package/dist/ink/components/variant-config.d.ts +0 -10
  452. package/dist/ink/cursor-helpers.d.ts +0 -38
  453. package/dist/ink/data-limited-lru-map.d.ts +0 -21
  454. package/dist/ink/devtools-window-polyfill.d.ts +0 -1
  455. package/dist/ink/devtools.d.ts +0 -1
  456. package/dist/ink/dom.d.ts +0 -213
  457. package/dist/ink/get-max-width.d.ts +0 -3
  458. package/dist/ink/highlighter.d.ts +0 -28
  459. package/dist/ink/ime-utils.d.ts +0 -25
  460. package/dist/ink/ink.d.ts +0 -189
  461. package/dist/ink/input-parser.d.ts +0 -10
  462. package/dist/ink/input-utils.d.ts +0 -16
  463. package/dist/ink/instances.d.ts +0 -3
  464. package/dist/ink/kitty-keyboard.d.ts +0 -23
  465. package/dist/ink/layout.d.ts +0 -26
  466. package/dist/ink/log-update-native.d.ts +0 -14
  467. package/dist/ink/log-update.d.ts +0 -21
  468. package/dist/ink/measure-element.d.ts +0 -147
  469. package/dist/ink/measure-text.d.ts +0 -56
  470. package/dist/ink/mouse/Fullscreen.d.ts +0 -8
  471. package/dist/ink/mouse/MouseProvider.d.ts +0 -11
  472. package/dist/ink/mouse/ansi-parser.d.ts +0 -37
  473. package/dist/ink/mouse/constants.d.ts +0 -59
  474. package/dist/ink/mouse/index.d.ts +0 -20
  475. package/dist/ink/mouse/is-intersecting.d.ts +0 -18
  476. package/dist/ink/mouse/mouse-context.d.ts +0 -36
  477. package/dist/ink/mouse/use-element-position.d.ts +0 -29
  478. package/dist/ink/mouse/use-mouse-action.d.ts +0 -7
  479. package/dist/ink/mouse/use-mouse-position.d.ts +0 -7
  480. package/dist/ink/mouse/use-mouse.d.ts +0 -7
  481. package/dist/ink/mouse/use-on-mouse-click.d.ts +0 -14
  482. package/dist/ink/mouse/use-on-mouse-hover.d.ts +0 -8
  483. package/dist/ink/mouse/use-on-mouse-state.d.ts +0 -11
  484. package/dist/ink/output.d.ts +0 -74
  485. package/dist/ink/parse-keypress.d.ts +0 -22
  486. package/dist/ink/reconciler.d.ts +0 -3
  487. package/dist/ink/region.d.ts +0 -99
  488. package/dist/ink/render-background.d.ts +0 -4
  489. package/dist/ink/render-border.d.ts +0 -4
  490. package/dist/ink/render-node-to-output.d.ts +0 -38
  491. package/dist/ink/render-scrollbar.d.ts +0 -9
  492. package/dist/ink/render-sticky.d.ts +0 -44
  493. package/dist/ink/render-to-string.d.ts +0 -37
  494. package/dist/ink/render.d.ts +0 -191
  495. package/dist/ink/renderer.d.ts +0 -17
  496. package/dist/ink/resize-observer.d.ts +0 -44
  497. package/dist/ink/sanitize-ansi.d.ts +0 -2
  498. package/dist/ink/scroll.d.ts +0 -23
  499. package/dist/ink/selection.d.ts +0 -70
  500. package/dist/ink/squash-text-nodes.d.ts +0 -18
  501. package/dist/ink/style-flags.d.ts +0 -17
  502. package/dist/ink/styled-line-factory.d.ts +0 -25
  503. package/dist/ink/styled-line-serializer.d.ts +0 -18
  504. package/dist/ink/styled-line.d.ts +0 -109
  505. package/dist/ink/styles.d.ts +0 -369
  506. package/dist/ink/terminal-palette.d.ts +0 -25
  507. package/dist/ink/text-wrap.d.ts +0 -10
  508. package/dist/ink/token-to-elements.d.ts +0 -22
  509. package/dist/ink/utils/format-time.d.ts +0 -4
  510. package/dist/ink/utils.d.ts +0 -9
  511. package/dist/ink/wrap-text.d.ts +0 -3
  512. package/dist/ink/write-synchronized.d.ts +0 -4
  513. package/dist/packem_shared/AccessibilityContext-BLelHhNU.js +0 -7
  514. package/dist/packem_shared/Alert-Dr3s_LD9.js +0 -17
  515. package/dist/packem_shared/AnimationContext-BcJg8Jr6.js +0 -15
  516. package/dist/packem_shared/AppContext-CP0U6H7O.js +0 -11
  517. package/dist/packem_shared/BackgroundContext-BAUaxfOb.js +0 -5
  518. package/dist/packem_shared/Badge-Dk7EGGM6.js +0 -13
  519. package/dist/packem_shared/BigText-CjMdY63X.js +0 -24
  520. package/dist/packem_shared/Box-D_pSJ9Jp.js +0 -73
  521. package/dist/packem_shared/COLOR_BLINDNESS_SIMULATION-BsMy5Ewl.js +0 -81
  522. package/dist/packem_shared/Cell-DCg1kJY-.js +0 -48
  523. package/dist/packem_shared/Code-DjQvPBD9.js +0 -53
  524. package/dist/packem_shared/ConfirmInput-85Y4kRQW.js +0 -44
  525. package/dist/packem_shared/ConsoleOverlay-DBNa4vtj.js +0 -57
  526. package/dist/packem_shared/ControlledScrollView-BlOaxcsN.js +0 -286
  527. package/dist/packem_shared/ControlledScrollView-DfAhcufF.js +0 -5
  528. package/dist/packem_shared/Cursor-DiW7YoSK.js +0 -18
  529. package/dist/packem_shared/CursorContext-JxRzlqAx.js +0 -9
  530. package/dist/packem_shared/DevTools-aMPIsaHx.js +0 -61
  531. package/dist/packem_shared/Dialog-DsSNAVgC.js +0 -71
  532. package/dist/packem_shared/DiffView-hqaw-2S6.js +0 -329
  533. package/dist/packem_shared/FilePicker-DNwFxRhq.js +0 -254
  534. package/dist/packem_shared/FocusContext-CWkYtgcm.js +0 -26
  535. package/dist/packem_shared/FocusContext-D5wFxSRz.js +0 -153
  536. package/dist/packem_shared/Fullscreen-DrElAE1o.js +0 -11
  537. package/dist/packem_shared/Gradient-Ql5P0GUd.js +0 -136
  538. package/dist/packem_shared/Help-6wanGG38.js +0 -112
  539. package/dist/packem_shared/IMECompositionBuffer-Dl3S0KnF.js +0 -55
  540. package/dist/packem_shared/InputParser-BKHpWfvN.js +0 -156
  541. package/dist/packem_shared/LayoutNode-Cjnsodiy.js +0 -131
  542. package/dist/packem_shared/Link-COcKYfGT.js +0 -66
  543. package/dist/packem_shared/Markdown-y1ISztof.js +0 -212
  544. package/dist/packem_shared/MouseProvider-Y9TSSEGl.js +0 -136
  545. package/dist/packem_shared/MultiSelect-ChoLUcDI.js +0 -129
  546. package/dist/packem_shared/NAMED_COLORS-a4QBvb5r.js +0 -262
  547. package/dist/packem_shared/Newline-DBtYEg8x.js +0 -7
  548. package/dist/packem_shared/OrderedList-Cp7pXr6m.js +0 -26
  549. package/dist/packem_shared/Paginator-D1AuD-kj.js +0 -104
  550. package/dist/packem_shared/ProgressBar-DOfpVagn.js +0 -22
  551. package/dist/packem_shared/Renderer-zZ5O3vxc.js +0 -31
  552. package/dist/packem_shared/ResizeObserverEntry-Br4seLeQ.js +0 -102
  553. package/dist/packem_shared/ScrollBar-EWAs2Uc7.js +0 -106
  554. package/dist/packem_shared/ScrollBarBox-DTNNlh7R.js +0 -72
  555. package/dist/packem_shared/ScrollList-DCeIFL8M.js +0 -227
  556. package/dist/packem_shared/ScrollView-v3MCNIyX.js +0 -196
  557. package/dist/packem_shared/SelectInput-BN2TMyxp.js +0 -260
  558. package/dist/packem_shared/SelectInputIndicator-DkRMoH_b.js +0 -9
  559. package/dist/packem_shared/SelectInputItem-BF9LQgKu.js +0 -8
  560. package/dist/packem_shared/Slider-BWD7xZX6.js +0 -116
  561. package/dist/packem_shared/Spacer-Bs4ER-HK.js +0 -8
  562. package/dist/packem_shared/Spinner-BuI-kN4p.js +0 -1799
  563. package/dist/packem_shared/Static-DpTd6Eed.js +0 -22
  564. package/dist/packem_shared/Static-xmD9giJj.js +0 -18
  565. package/dist/packem_shared/StaticRender-tYwH6QXl.js +0 -33
  566. package/dist/packem_shared/StatusMessage-BtSYxzwb.js +0 -14
  567. package/dist/packem_shared/StderrContext-Bj4Mf7v7.js +0 -17
  568. package/dist/packem_shared/StdinContext-Bq_GNJ3z.js +0 -38
  569. package/dist/packem_shared/StdoutContext-CgjWeCdO.js +0 -17
  570. package/dist/packem_shared/Stopwatch-DjtTCyHn.js +0 -23
  571. package/dist/packem_shared/Tab-C6r5q4hR.js +0 -7
  572. package/dist/packem_shared/Table-D-rSVlzb.js +0 -82
  573. package/dist/packem_shared/Tabs-hki-KRnx.js +0 -153
  574. package/dist/packem_shared/Text-DvAUdZcK.js +0 -65
  575. package/dist/packem_shared/TextInput-C79WEQ5U.js +0 -137
  576. package/dist/packem_shared/Textarea-Dj06R6Zd.js +0 -272
  577. package/dist/packem_shared/Timer-wi9zuh4n.js +0 -22
  578. package/dist/packem_shared/Transform-BHxY_dAM.js +0 -14
  579. package/dist/packem_shared/TreeNodeMap-CtJUvBnd.js +0 -155
  580. package/dist/packem_shared/TreeView-C2062dtj.js +0 -148
  581. package/dist/packem_shared/TuiApp-DfxOnXqi.js +0 -120
  582. package/dist/packem_shared/TuiContext-CqEjMyXd.js +0 -415
  583. package/dist/packem_shared/UnorderedList-DhnadWjX.js +0 -33
  584. package/dist/packem_shared/ansi-parser-0BdVTKho.js +0 -41
  585. package/dist/packem_shared/ansi-tokenizer-LHq2LUWA.js +0 -307
  586. package/dist/packem_shared/boxes-oi3WUbyR.js +0 -92
  587. package/dist/packem_shared/colorize-88_Vk8cn.js +0 -48
  588. package/dist/packem_shared/comparePoints-CGMDnd3_.js +0 -287
  589. package/dist/packem_shared/createInlineLoop-BxMmcq9D.js +0 -93
  590. package/dist/packem_shared/createLinkedScrollGroup-Djw4Ceo0.js +0 -44
  591. package/dist/packem_shared/dom-DvzhsAez.js +0 -225
  592. package/dist/packem_shared/format-time-BGmnDukX.js +0 -12
  593. package/dist/packem_shared/getPathToRoot-a1wbwxfL.js +0 -4
  594. package/dist/packem_shared/getScrollHeight-BubfU_df.js +0 -63
  595. package/dist/packem_shared/input-utils-ViAEXa0Z.js +0 -19
  596. package/dist/packem_shared/isIntersecting-fEXHJN5R.js +0 -10
  597. package/dist/packem_shared/isOsc52Supported-G0k4sXJx.js +0 -36
  598. package/dist/packem_shared/isTerminalPaletteQuerySupported-EeiwMKbr.js +0 -93
  599. package/dist/packem_shared/kittyFlags-bNNf_9kX.js +0 -26
  600. package/dist/packem_shared/measure-element-Reza_yfC.js +0 -396
  601. package/dist/packem_shared/measure-text-DItZYotK.js +0 -1189
  602. package/dist/packem_shared/measureElement-CTgFCmKd.js +0 -4
  603. package/dist/packem_shared/mouse-context-BUHWKEIe.js +0 -6
  604. package/dist/packem_shared/parseSgrMouse-BHVBPP9G.js +0 -1
  605. package/dist/packem_shared/processLayout-BQ9kXfd3.js +0 -2
  606. package/dist/packem_shared/reconciler-BXf6miSS.js +0 -211
  607. package/dist/packem_shared/reconciler-gfmqURLy.js +0 -680
  608. package/dist/packem_shared/render-BAwdjfki.js +0 -2806
  609. package/dist/packem_shared/render-Bpjhf0lD.js +0 -195
  610. package/dist/packem_shared/renderToString-Cfg55DRD.js +0 -62
  611. package/dist/packem_shared/renderToString-ClIaXgrC.js +0 -86
  612. package/dist/packem_shared/renderTreeToBuffer-D3mo7M7m.js +0 -308
  613. package/dist/packem_shared/renderer-B3wROkeg.js +0 -1431
  614. package/dist/packem_shared/setEnableStyledLineCache-BpskngSJ.js +0 -2
  615. package/dist/packem_shared/squashTextNodesWithMap-iqm6OMMT.js +0 -100
  616. package/dist/packem_shared/text-width-DhuarWcB.js +0 -42
  617. package/dist/packem_shared/token-to-elements-BRFl_rzw.js +0 -249
  618. package/dist/packem_shared/treeViewTheme-BpSw9TMf.js +0 -52
  619. package/dist/packem_shared/useAnimation-kj31sA-T.js +0 -62
  620. package/dist/packem_shared/useApp-DPQlRzi5.js +0 -6
  621. package/dist/packem_shared/useBoxMetrics-rBjKc-g4.js +0 -54
  622. package/dist/packem_shared/useClipboard-B_9-adw1.js +0 -23
  623. package/dist/packem_shared/useColorBlindness-D_sTIhcb.js +0 -30
  624. package/dist/packem_shared/useConsoleCapture-Dvt7G1W1.js +0 -61
  625. package/dist/packem_shared/useCursor-BIJzc8k9.js +0 -19
  626. package/dist/packem_shared/useElementDimensions-CAoKitVD.js +0 -67
  627. package/dist/packem_shared/useFocus-CNl5QHHf.js +0 -37
  628. package/dist/packem_shared/useFocusManager-BPYaUuKQ.js +0 -16
  629. package/dist/packem_shared/useInput-Cfp5zB2s.js +0 -594
  630. package/dist/packem_shared/useIsScreenReaderEnabled-CnGKCe0f.js +0 -9
  631. package/dist/packem_shared/useKeyBindings-B78l1E1n.js +0 -66
  632. package/dist/packem_shared/useMouseAction-C5gZ2nj7.js +0 -29
  633. package/dist/packem_shared/useMouseContext-D-rFy60Q.js +0 -12
  634. package/dist/packem_shared/useMousePosition-BHBJ-kBk.js +0 -25
  635. package/dist/packem_shared/useOnMouseClick--ZIyBOBO.js +0 -35
  636. package/dist/packem_shared/useOnMouseHover-26diuXUC.js +0 -32
  637. package/dist/packem_shared/useOnMouseState-NO_Kda_C.js +0 -13
  638. package/dist/packem_shared/usePaste-Ct8J4AGR.js +0 -35
  639. package/dist/packem_shared/useScrollAcceleration-R9LfrPVG.js +0 -73
  640. package/dist/packem_shared/useScrollInput-D3CpBq_a.js +0 -72
  641. package/dist/packem_shared/useStderr-CAOVUh4E.js +0 -6
  642. package/dist/packem_shared/useStdin-X-O0kd-n.js +0 -7
  643. package/dist/packem_shared/useStdout-DyF6DSH0.js +0 -6
  644. package/dist/packem_shared/useStopwatch-qC4Beai4.js +0 -33
  645. package/dist/packem_shared/useTerminalPalette-BaWO2c4Q.js +0 -38
  646. package/dist/packem_shared/useTextBuffer-C8fEe9Ly.js +0 -398
  647. package/dist/packem_shared/useTextSelection-mXtxgsPK.js +0 -50
  648. package/dist/packem_shared/useTimer-CPQ7j827.js +0 -46
  649. package/dist/packem_shared/useTreeView-BT57P3Kx.js +0 -101
  650. package/dist/packem_shared/useTreeViewState-BpS_KZ-K.js +0 -502
  651. package/dist/packem_shared/useWindowSize-ugEmGZJm.js +0 -20
  652. package/dist/packem_shared/utils-BgdlrbOH.js +0 -140
  653. package/dist/packem_shared/variant-config-DSZoX5TM.js +0 -8
  654. package/dist/packem_shared/wrapOrTruncateStyledLine-DN3Nogoc.js +0 -147
  655. package/dist/react/devtools.d.ts +0 -27
  656. package/dist/react/focus.d.ts +0 -39
  657. package/dist/react/hooks.d.ts +0 -238
  658. package/dist/react/layout.d.ts +0 -35
  659. package/dist/react/react.d.ts +0 -57
  660. package/dist/react/reconciler.d.ts +0 -4
  661. package/dist/react/render-to-string.d.ts +0 -21
  662. package/dist/react/renderer.d.ts +0 -2
  663. package/dist/react/scene.d.ts +0 -3
  664. package/dist/react/static.d.ts +0 -39
  665. package/dist/react/styles.d.ts +0 -83
  666. package/dist/react/text-width.d.ts +0 -20
  667. package/dist/testing/keys.d.ts +0 -89
  668. package/dist/testing/screen.d.ts +0 -35
  669. package/dist/testing/wait-for.d.ts +0 -21
@@ -0,0 +1,54 @@
1
+ import React, { ReactNode, DependencyList } from 'react';
2
+ import { D as DOMElement } from "../packem_shared/dom.d-DgP_exKU.js";
3
+ import { S as Styles } from "../packem_shared/styles.d-CLJdt-kg.js";
4
+ import 'yoga-layout';
5
+ import "../packem_shared/cursor-helpers.d-BONB9tky.js";
6
+ import "../packem_shared/index.server.d-eZWyC2Ku.js";
7
+ import 'type-fest';
8
+
9
+ /**
10
+ * StaticRender component — pre-renders children once and caches the result.
11
+ *
12
+ * When mounted, StaticRender renders its children into a Region via
13
+ * prepareYogaTree() in the Ink layout phase, then caches the result on the
14
+ * DOM node. On subsequent renders, the cached Region is composited directly
15
+ * via addRegionTree(), skipping the entire subtree traversal.
16
+ *
17
+ * Children are passed as a render function `() => ReactNode`. Once the cache
18
+ * is ready, the component stops calling the function so React does not
19
+ * re-reconcile the subtree on subsequent renders.
20
+ *
21
+ * Re-rendering the cached content is controlled via the `deps` prop (similar
22
+ * to React's hook deps). When `deps` changes, the cache is invalidated and
23
+ * `children()` is invoked again. If `deps` is omitted, the cache is
24
+ * invalidated whenever the `children` function reference changes.
25
+ *
26
+ * Use this for content that renders once and doesn't change (e.g., completed
27
+ * task output, logged messages, static headers).
28
+ *
29
+ * Ported from jacob314/ink (Google LLC, Apache-2.0).
30
+ * @license Apache-2.0
31
+ */
32
+
33
+ /**
34
+ * @property children Render function invoked once to produce the cached content.
35
+ * @property deps Dependencies that control when the static content is re-rendered. When any dependency changes (shallow, Object.is comparison), the cache is invalidated and children() is invoked again. If omitted, the cache is invalidated whenever the children function reference changes.
36
+ * @property onRender Callback fired after the static content has been rendered and cached. The node's cachedRender holds the measured width/height — useful for reacting to the cached block's size without setting up a full ResizeObserver.
37
+ * @property style Optional style applied to the static-render container.
38
+ * @property width Optional fixed width for the cached region.
39
+ */
40
+ type Props = {
41
+ readonly children: () => ReactNode;
42
+ readonly deps?: DependencyList;
43
+ readonly onRender?: (node: DOMElement) => void;
44
+ readonly style?: Styles;
45
+ readonly width?: number;
46
+ };
47
+ declare const StaticRender: ({
48
+ children,
49
+ deps,
50
+ onRender,
51
+ style,
52
+ width
53
+ }: Props) => React.ReactNode;
54
+ export { Props, StaticRender, type Props as StaticRenderProps, StaticRender as default };
@@ -0,0 +1 @@
1
+ var p=Object.defineProperty;var R=(e,r)=>p(e,"name",{value:r,configurable:!0});import{jsx as v}from"react/jsx-runtime";import{useRef as u,useLayoutEffect as y,useEffect as b,useMemo as g}from"react";var j=Object.defineProperty,h=R((e,r)=>j(e,"name",{value:r,configurable:!0}),"u");const E=h((e,r)=>{if(e===r)return!0;if(!e||!r||e.length!==r.length)return!1;for(const[c,a]of e.entries())if(!Object.is(a,r[c]))return!1;return!0},"areDepsEqual"),O=h(({children:e,deps:r,onRender:c,style:a,width:s})=>{const n=u(null),i=u(!1),d=u(r),l=u(e),f=u(c);f.current=c;let o=!1;r!==void 0?E(d.current,r)||(o=!0,d.current=r):e!==l.current&&(o=!0,l.current=e),o&&(i.current=!1,n.current&&(n.current.cachedRender=void 0)),y(()=>{const t=n.current;t&&(t.internal_onRendered=()=>{i.current=!0,f.current?.(t)})}),b(()=>()=>{const t=n.current;t&&(t.cachedRender=void 0,t.internal_onRendered=void 0)},[]);const m=g(()=>({...a,width:s}),[a,s]);return v("ink-static-render",{ref:n,style:m,children:i.current?null:e()})},"StaticRender");export{O as StaticRender,O as default};
@@ -0,0 +1,28 @@
1
+ import { ReactNode, ReactElement } from 'react';
2
+ import { S as Styles } from "../packem_shared/styles.d-CLJdt-kg.js";
3
+ import "../packem_shared/index.server.d-eZWyC2Ku.js";
4
+ import 'type-fest';
5
+ import 'yoga-layout';
6
+ type Props<T> = {
7
+ /**
8
+ * Function that is called to render every item in the `items` array. The first argument is the item itself, and the second argument is the index of that item in the `items` array. Note that a `key` must be assigned to the root component.
9
+ */
10
+ readonly children: (item: T, index: number) => ReactNode;
11
+ /**
12
+ * Array of items of any type to render using the function you pass as a component child.
13
+ */
14
+ readonly items: T[];
15
+ /**
16
+ * Styles to apply to a container of child elements. See &lt;Box> for supported properties.
17
+ */
18
+ readonly style?: Styles;
19
+ };
20
+ /**
21
+ * `&lt;Static>` component permanently renders its output above everything else. It's useful for displaying activity like completed tasks or logs—things that don't change after they're rendered (hence the name "Static").
22
+ *
23
+ * It's preferred to use `&lt;Static>` for use cases like these when you can't know or control the number of items that need to be rendered.
24
+ *
25
+ * For example, [Tap](https://github.com/tapjs/node-tap) uses `&lt;Static>` to display a list of completed tests. [Gatsby](https://github.com/gatsbyjs/gatsby) uses it to display a list of generated pages while still displaying a live progress bar.
26
+ */
27
+ declare function Static<T>(props: Props<T>): ReactElement;
28
+ export { Props, Static, type Props as StaticProps, Static as default };
@@ -0,0 +1 @@
1
+ var p=Object.defineProperty;var o=(e,t)=>p(e,"name",{value:t,configurable:!0});import{jsx as y}from"react/jsx-runtime";import{useState as b,useMemo as a,useLayoutEffect as d}from"react";var h=Object.defineProperty,x=o((e,t)=>h(e,"name",{value:t,configurable:!0}),"r");function g(e){const{children:t,items:i,style:r}=e,[n,s]=b(0),c=a(()=>i.slice(n),[i,n]);d(()=>{s(i.length)},[i.length]);const l=c.map((f,m)=>t(f,n+m)),u=a(()=>({flexDirection:"column",position:"absolute",...r}),[r]);return y("ink-box",{internal_static:!0,style:u,children:l})}o(g,"i");x(g,"Static");export{g as Static,g as default};
@@ -0,0 +1,37 @@
1
+ import { A as AnsiColors } from "../packem_shared/index.server.d-eZWyC2Ku.js";
2
+ import { ReactNode, ReactElement } from 'react';
3
+ import { LiteralUnion } from 'type-fest';
4
+ type Props = {
5
+ /**
6
+ * Background color spanning the whole row.
7
+ */
8
+ readonly backgroundColor?: LiteralUnion<AnsiColors, string>;
9
+ /**
10
+ * Content rendered in the center. Optional.
11
+ */
12
+ readonly center?: ReactNode;
13
+ /**
14
+ * Default foreground for text rendered inside the row.
15
+ */
16
+ readonly color?: LiteralUnion<AnsiColors, string>;
17
+ /**
18
+ * Content rendered flush-left.
19
+ */
20
+ readonly left?: ReactNode;
21
+ /**
22
+ * Content rendered flush-right.
23
+ */
24
+ readonly right?: ReactNode;
25
+ };
26
+ /**
27
+ * Full-width status bar with left / center / right slots. Typically pinned to
28
+ * the bottom of the UI.
29
+ */
30
+ declare function StatusLine({
31
+ backgroundColor,
32
+ center,
33
+ color,
34
+ left,
35
+ right
36
+ }: Props): ReactElement;
37
+ export { Props, StatusLine, type Props as StatusLineProps, StatusLine as default };
@@ -0,0 +1 @@
1
+ var a=Object.defineProperty;var i=(r,e)=>a(r,"name",{value:e,configurable:!0});import{jsxs as s,jsx as n}from"react/jsx-runtime";import{Box as t}from"./box.js";import{Text as u}from"./text.js";var h=Object.defineProperty,d=i((r,e)=>h(r,"name",{value:e,configurable:!0}),"i");const l=d((r,e)=>{if(r!==void 0)return typeof r=="string"||typeof r=="number"?n(u,{color:e,children:r}):r},"renderSlot");function x({backgroundColor:r,center:e,color:o,left:f,right:c}){return s(t,{backgroundColor:r,paddingX:1,width:"100%",children:[n(t,{flexGrow:1,flexShrink:1,minWidth:0,children:l(f,o)}),e===void 0?void 0:n(t,{flexGrow:0,flexShrink:0,justifyContent:"center",children:l(e,o)}),n(t,{flexGrow:1,flexShrink:1,justifyContent:"flex-end",minWidth:0,children:l(c,o)})]})}i(x,"l");d(x,"StatusLine");export{x as StatusLine,x as default};
@@ -0,0 +1,21 @@
1
+ import { ReactNode, ReactElement } from 'react';
2
+ import { V as Variant } from "../packem_shared/variant-config.d-D5NnrrQK.js";
3
+ type StatusMessageVariant = Variant;
4
+ type Props = {
5
+ /**
6
+ * Message content.
7
+ */
8
+ readonly children: ReactNode;
9
+ /**
10
+ * Determines the icon and color of the status message.
11
+ */
12
+ readonly variant: StatusMessageVariant;
13
+ };
14
+ /**
15
+ * Renders a status notification with a colored icon and message text.
16
+ */
17
+ declare function StatusMessage({
18
+ children,
19
+ variant
20
+ }: Props): ReactElement;
21
+ export { Props, StatusMessage, type Props as StatusMessageProps, StatusMessageVariant, StatusMessage as default };
@@ -0,0 +1 @@
1
+ var i=Object.defineProperty;var e=(r,o)=>i(r,"name",{value:o,configurable:!0});import{jsxs as c,jsx as a}from"react/jsx-runtime";import{Box as l}from"./box.js";import{Text as t}from"./text.js";import{o as m}from"../packem_shared/variant-config-BJqpNo7H.js";var f=Object.defineProperty,p=e((r,o)=>f(r,"name",{value:o,configurable:!0}),"o");function u({children:r,variant:o}){const{color:s,icon:n}=m[o];return c(l,{gap:1,children:[a(t,{color:s,children:n}),a(t,{children:r})]})}e(u,"p");p(u,"StatusMessage");export{u as StatusMessage,u as default};
@@ -0,0 +1,48 @@
1
+ import { A as AnsiColors } from "../packem_shared/index.server.d-eZWyC2Ku.js";
2
+ import { ReactNode, ReactElement } from 'react';
3
+ import { LiteralUnion } from 'type-fest';
4
+ type StepStatus = "active" | "completed" | "error" | "pending";
5
+ type StepperStep = {
6
+ readonly description?: string;
7
+ readonly key?: string;
8
+ readonly label: ReactNode;
9
+ readonly status?: StepStatus;
10
+ };
11
+ type Props = {
12
+ /**
13
+ * Color used for active and completed steps.
14
+ * @default "blue"
15
+ */
16
+ readonly accentColor?: LiteralUnion<AnsiColors, string>;
17
+ /**
18
+ * Index of the current step (used when steps do not provide a status).
19
+ * @default 0
20
+ */
21
+ readonly activeIndex?: number;
22
+ /**
23
+ * Color used for errors.
24
+ * @default "red"
25
+ */
26
+ readonly errorColor?: LiteralUnion<AnsiColors, string>;
27
+ /**
28
+ * Orientation of the stepper.
29
+ * @default "horizontal"
30
+ */
31
+ readonly orientation?: "horizontal" | "vertical";
32
+ /**
33
+ * List of steps.
34
+ */
35
+ readonly steps: ReadonlyArray<StepperStep>;
36
+ };
37
+ /**
38
+ * Step indicator for multi-stage flows.
39
+ * @returns A `ReactElement` rendering the steps horizontally or vertically.
40
+ */
41
+ declare function Stepper({
42
+ accentColor,
43
+ activeIndex,
44
+ errorColor,
45
+ orientation,
46
+ steps
47
+ }: Props): ReactElement;
48
+ export { Props, StepStatus, Stepper, type Props as StepperProps, StepperStep, Stepper as default };
@@ -0,0 +1 @@
1
+ var x=Object.defineProperty;var h=(r,o)=>x(r,"name",{value:o,configurable:!0});import{jsx as n,jsxs as c}from"react/jsx-runtime";import{Fragment as C}from"react";import{Box as t}from"./box.js";import{Text as d}from"./text.js";var b=Object.defineProperty,g=h((r,o)=>b(r,"name",{value:o,configurable:!0}),"u");const u={active:"●",completed:"✔",error:"✖",pending:"○"},v=g((r,o,a)=>r.status!==void 0?r.status:o<a?"completed":o===a?"active":"pending","resolveStatus");function y({accentColor:r="blue",activeIndex:o=0,errorColor:a="red",orientation:f="horizontal",steps:m}){return f==="vertical"?n(t,{flexDirection:"column",children:m.map((i,l)=>{const e=v(i,l,o),p=l===m.length-1,s=e==="error"?a:e==="pending"?void 0:r;return c(t,{flexDirection:"column",children:[c(t,{children:[c(d,{color:s,dimColor:e==="pending",children:[u[e]," "]}),n(d,{bold:e==="active",color:s,dimColor:e==="pending",children:i.label})]}),i.description===void 0?void 0:n(t,{marginLeft:2,children:n(d,{dimColor:!0,children:i.description})}),p?void 0:n(t,{marginLeft:0,children:n(d,{dimColor:!0,children:"│"})})]},i.key??l)})}):n(t,{children:m.map((i,l)=>{const e=v(i,l,o),p=e==="error"?a:e==="pending"?void 0:r,s=l===m.length-1;return c(C,{children:[c(t,{children:[c(d,{color:p,dimColor:e==="pending",children:[u[e]," "]}),n(d,{bold:e==="active",color:p,dimColor:e==="pending",children:i.label})]}),s?void 0:n(d,{dimColor:!0,children:" ── "})]},i.key??l)})})}h(y,"g");g(y,"Stepper");export{y as Stepper,y as default};
@@ -0,0 +1,49 @@
1
+ import { Ref, ReactElement } from 'react';
2
+ import { UseStopwatchResult } from "../ink/hooks/use-stopwatch.js";
3
+ type StopwatchRef = Omit<UseStopwatchResult, "elapsed" | "isRunning" | "laps">;
4
+ type Props = {
5
+ /**
6
+ * Whether to start counting immediately.
7
+ * @default false
8
+ */
9
+ readonly autoStart?: boolean;
10
+ /**
11
+ * Make the rendered text bold.
12
+ */
13
+ readonly bold?: boolean;
14
+ /**
15
+ * Text color for the rendered time.
16
+ */
17
+ readonly color?: string;
18
+ /**
19
+ * Custom formatter for the elapsed time.
20
+ * Receives elapsed milliseconds, returns a display string.
21
+ * @default formatDuration (MM:SS or HH:MM:SS)
22
+ */
23
+ readonly format?: (elapsed: number) => string;
24
+ /**
25
+ * Tick interval in milliseconds.
26
+ * @default 1000
27
+ */
28
+ readonly interval?: number;
29
+ readonly ref?: Ref<StopwatchRef>;
30
+ };
31
+ /**
32
+ * A count-up stopwatch component.
33
+ *
34
+ * Exposes `start`, `stop`, `toggle`, `reset`, and `lap` methods via ref.
35
+ *
36
+ * ```tsx
37
+ * const ref = useRef&lt;StopwatchRef>(null);
38
+ * &lt;Stopwatch ref={ref} autoStart />
39
+ * ```
40
+ */
41
+ declare const Stopwatch: ({
42
+ autoStart,
43
+ bold,
44
+ color,
45
+ format,
46
+ interval,
47
+ ref
48
+ }: Props) => ReactElement;
49
+ export { Props, Stopwatch, type Props as StopwatchProps, StopwatchRef, Stopwatch as default };
@@ -0,0 +1 @@
1
+ var m=Object.defineProperty;var e=(r,o)=>m(r,"name",{value:o,configurable:!0});import{jsx as f}from"react/jsx-runtime";import{useImperativeHandle as i}from"react";import n from"../ink/hooks/use-stopwatch.js";import{f as c}from"../packem_shared/format-time-C7Q-hQZq.js";import{Text as u}from"./text.js";var d=Object.defineProperty,g=e((r,o)=>d(r,"name",{value:o,configurable:!0}),"r");const w=g(({autoStart:r,bold:o,color:a,format:l=c,interval:p,ref:s})=>{const t=n({autoStart:r,interval:p});return i(s,()=>({lap:t.lap,reset:t.reset,start:t.start,stop:t.stop,toggle:t.toggle}),[t.lap,t.reset,t.start,t.stop,t.toggle]),f(u,{bold:o,color:a,children:l(t.elapsed)})},"Stopwatch");export{w as Stopwatch,w as default};
@@ -0,0 +1,46 @@
1
+ import { A as AnsiColors } from "../packem_shared/index.server.d-eZWyC2Ku.js";
2
+ import { ReactElement } from 'react';
3
+ import { LiteralUnion } from 'type-fest';
4
+ type Props = {
5
+ /**
6
+ * Color applied to the streamed output.
7
+ */
8
+ readonly color?: LiteralUnion<AnsiColors, string>;
9
+ /**
10
+ * Glyph rendered at the streaming caret while characters are still being revealed.
11
+ * @default "▊" (left three quarters block)
12
+ */
13
+ readonly cursor?: string;
14
+ /**
15
+ * Milliseconds between characters.
16
+ * @default 20
17
+ */
18
+ readonly interval?: number;
19
+ /**
20
+ * Called exactly once per `text` value, after the full text has been revealed.
21
+ */
22
+ readonly onComplete?: () => void;
23
+ /**
24
+ * Whether to display the cursor after streaming completes.
25
+ * @default false
26
+ */
27
+ readonly showCursorWhenDone?: boolean;
28
+ /**
29
+ * Full text to stream into the output.
30
+ */
31
+ readonly text: string;
32
+ };
33
+ /**
34
+ * Typewriter animation that reveals text one character at a time.
35
+ * Automatically resets and replays when `text` changes. `onComplete`
36
+ * fires exactly once per `text` value once it is fully revealed.
37
+ */
38
+ declare function StreamingText({
39
+ color,
40
+ cursor,
41
+ interval,
42
+ onComplete,
43
+ showCursorWhenDone,
44
+ text
45
+ }: Props): ReactElement;
46
+ export { Props, StreamingText, type Props as StreamingTextProps, StreamingText as default };
@@ -0,0 +1 @@
1
+ var T=Object.defineProperty;var u=(r,t)=>T(r,"name",{value:t,configurable:!0});import{jsxs as d}from"react/jsx-runtime";import{useState as v,useRef as f,useEffect as i}from"react";import{Text as C}from"./text.js";var S=Object.defineProperty,b=u((r,t)=>S(r,"name",{value:t,configurable:!0}),"c");function j({color:r,cursor:t="▊",interval:c=20,onComplete:a,showCursorWhenDone:m=!1,text:e}){const[n,s]=v(0),l=f(a),o=f(!1);l.current=a,i(()=>{s(0),o.current=!1},[e]),i(()=>{if(n>=e.length){o.current||(o.current=!0,l.current?.());return}const p=setTimeout(()=>{s(x=>Math.min(e.length,x+1))},c);return()=>{clearTimeout(p)}},[n,e,c]);const g=!(n>=e.length)||m,h=e.slice(0,n);return d(C,{color:r,children:[h,g?t:""]})}u(j,"u");b(j,"StreamingText");export{j as StreamingText,j as default};
@@ -0,0 +1,55 @@
1
+ import { A as AnsiColors } from "../packem_shared/index.server.d-eZWyC2Ku.js";
2
+ import { ReactNode, ReactElement } from 'react';
3
+ import { LiteralUnion } from 'type-fest';
4
+ type Props = {
5
+ /**
6
+ * Accent color for the on state.
7
+ * @default "green"
8
+ */
9
+ readonly accentColor?: LiteralUnion<AnsiColors, string>;
10
+ /**
11
+ * Auto-focus when mounted if nothing else is focused.
12
+ */
13
+ readonly autoFocus?: boolean;
14
+ /**
15
+ * Optional label rendered after the switch.
16
+ */
17
+ readonly children?: ReactNode;
18
+ /**
19
+ * Initial value when uncontrolled.
20
+ */
21
+ readonly defaultValue?: boolean;
22
+ /**
23
+ * Disable input and dim the switch.
24
+ */
25
+ readonly isDisabled?: boolean;
26
+ /**
27
+ * Labels displayed inside the switch track.
28
+ * @default ["off", "on"]
29
+ */
30
+ readonly labels?: readonly [string, string];
31
+ /**
32
+ * Fired when the switch is toggled.
33
+ */
34
+ readonly onChange?: (value: boolean) => void;
35
+ /**
36
+ * Controlled value. Pair with `onChange` to update the parent.
37
+ */
38
+ readonly value?: boolean;
39
+ };
40
+ /**
41
+ * Focusable on/off switch. Toggles with Space or Enter.
42
+ * @returns A `ReactElement` rendering two labeled segments plus an optional
43
+ * trailing label.
44
+ */
45
+ declare function Switch({
46
+ accentColor,
47
+ autoFocus,
48
+ children,
49
+ defaultValue,
50
+ isDisabled,
51
+ labels,
52
+ onChange,
53
+ value
54
+ }: Props): ReactElement;
55
+ export { Props, Switch, type Props as SwitchProps, Switch as default };
@@ -0,0 +1 @@
1
+ var j=Object.defineProperty;var t=(o,i)=>j(o,"name",{value:i,configurable:!0});import{jsxs as l,jsx as y}from"react/jsx-runtime";import{useState as A,useCallback as F}from"react";import S from"../ink/hooks/use-focus.js";import w from"../ink/hooks/use-input.js";import{Box as m}from"./box.js";import{Text as n}from"./text.js";var P=Object.defineProperty,T=t((o,i)=>P(o,"name",{value:i,configurable:!0}),"u");const B=["off","on"];function D({accentColor:o="green",autoFocus:i=!1,children:s,defaultValue:v=!1,isDisabled:e=!1,labels:d=B,onChange:u,value:c}){const{isFocused:a}=S({autoFocus:i,isActive:!e}),[b,p]=A(v),r=c??b;w(F((x,k)=>{if(a&&(k.return||x===" ")){const f=!r;c===void 0&&p(f),u?.(f)}},[a,r,c,u]),{isActive:!e&&a});const g=d[0],h=d[1],C=a?o:void 0;return l(m,{gap:1,children:[l(m,{gap:0,children:[l(n,{backgroundColor:r?void 0:"gray",color:r?void 0:"black",dimColor:e,children:[" ",g," "]}),l(n,{backgroundColor:r?o:void 0,color:r?"black":void 0,dimColor:e,children:[" ",h," "]})]}),s===void 0?void 0:y(n,{color:C,dimColor:e,children:s})]})}t(D,"m");T(D,"Switch");export{D as Switch,D as default};
@@ -0,0 +1,19 @@
1
+ import { ReactNode, ReactElement } from 'react';
2
+ type Props = {
3
+ /**
4
+ * Tab content to render when the tab is active.
5
+ */
6
+ readonly children: ReactNode;
7
+ /**
8
+ * Unique name identifying this tab.
9
+ */
10
+ readonly name: string;
11
+ };
12
+ /**
13
+ * A single tab within a Tabs container.
14
+ * The `name` prop identifies the tab; `children` is rendered when active.
15
+ */
16
+ declare function Tab({
17
+ children
18
+ }: Props): ReactElement;
19
+ export { Props, Tab, type Props as TabProps, Tab as default };
@@ -0,0 +1 @@
1
+ var t=Object.defineProperty;var a=(e,r)=>t(e,"name",{value:r,configurable:!0});import{jsx as n,Fragment as o}from"react/jsx-runtime";var i=Object.defineProperty,u=a((e,r)=>i(e,"name",{value:r,configurable:!0}),"t");function c({children:e}){return n(o,{children:e})}a(c,"o");u(c,"Tab");export{c as Tab,c as default};
@@ -0,0 +1,119 @@
1
+ import { ReactElement } from 'react';
2
+ interface BorderComponent {
3
+ char: string;
4
+ width: number;
5
+ }
6
+ /**
7
+ * Represents the style of the border for a table or grid.
8
+ */
9
+ interface BorderStyle {
10
+ /** Box vertical character. */
11
+ bodyJoin: BorderComponent;
12
+ /** Box vertical character. */
13
+ bodyLeft: BorderComponent;
14
+ /** Box vertical character. */
15
+ bodyRight: BorderComponent;
16
+ /** Box horizontal character. */
17
+ bottomBody: BorderComponent;
18
+ /** Box bottom join character. */
19
+ bottomJoin: BorderComponent;
20
+ /** Box bottom left character. */
21
+ bottomLeft: BorderComponent;
22
+ /** Box bottom right character. */
23
+ bottomRight: BorderComponent;
24
+ /** Box horizontal character. */
25
+ joinBody: BorderComponent;
26
+ /** Box horizontal join character. */
27
+ joinJoin: BorderComponent;
28
+ /** Box left join character. */
29
+ joinLeft: BorderComponent;
30
+ /** Box right join character. */
31
+ joinRight: BorderComponent;
32
+ /** Box horizontal character. */
33
+ topBody: BorderComponent;
34
+ /** Box top join character. */
35
+ topJoin: BorderComponent;
36
+ /** Box top left character. */
37
+ topLeft: BorderComponent;
38
+ /** Box top right character. */
39
+ topRight: BorderComponent;
40
+ }
41
+ /** Base style properties applicable globally */
42
+ type HorizontalAlignment = "center" | "left" | "right";
43
+ /**
44
+ * Scalar value that can be displayed in a table cell.
45
+ */
46
+ type Scalar = bigint | boolean | number | string | null | undefined;
47
+ /**
48
+ * Dictionary with scalar values, representing a single row of data.
49
+ */
50
+ type ScalarDict = Record<string, Scalar>;
51
+ /**
52
+ * Configuration for a single table column.
53
+ */
54
+ type ColumnConfig<T extends ScalarDict> = {
55
+ /**
56
+ * Horizontal alignment of cell content.
57
+ */
58
+ readonly align?: HorizontalAlignment;
59
+ /**
60
+ * Custom header label. Defaults to the key name.
61
+ */
62
+ readonly header?: string;
63
+ /**
64
+ * Key from the data object to display in this column.
65
+ */
66
+ readonly key: keyof T & string;
67
+ /**
68
+ * Fixed width for this column in characters.
69
+ */
70
+ readonly width?: number;
71
+ };
72
+ type Props<T extends ScalarDict> = {
73
+ /**
74
+ * Border style preset name or a custom `BorderStyle` object from `@visulima/tabular`.
75
+ * @default "default"
76
+ */
77
+ readonly borderStyle?: "ascii" | "block" | "default" | "dots" | "double" | "markdown" | "minimal" | "none" | "rounded" | "thick" | BorderStyle;
78
+ /**
79
+ * Columns to display and their order.
80
+ * Accepts simple key strings or `ColumnConfig` objects for advanced control.
81
+ * If omitted, all keys from the first data item are used.
82
+ */
83
+ readonly columns?: ((keyof T & string) | ColumnConfig<T>)[];
84
+ /**
85
+ * Array of objects to display as rows.
86
+ */
87
+ readonly data: T[];
88
+ /**
89
+ * Format a cell value before rendering. Return a string to display in the cell.
90
+ */
91
+ readonly formatCell?: (value: Scalar, column: keyof T & string, rowIndex: number) => string;
92
+ /**
93
+ * Format a header label before rendering. Return a string to display as the column header.
94
+ */
95
+ readonly formatHeader?: (column: keyof T & string) => string;
96
+ /**
97
+ * Maximum width of the table in characters. Columns will be truncated or wrapped to fit.
98
+ */
99
+ readonly maxWidth?: number;
100
+ /**
101
+ * Cell padding (left and right) in characters.
102
+ * @default 1
103
+ */
104
+ readonly padding?: number;
105
+ /**
106
+ * Whether to show the header row.
107
+ * @default true
108
+ */
109
+ readonly showHeader?: boolean;
110
+ /** Placeholder shown in place of `null` or `undefined` cell values. Defaults to an empty string. */
111
+ readonly skeleton?: string;
112
+ /**
113
+ * Enable word wrap instead of truncation when cells exceed their width.
114
+ * @default false
115
+ */
116
+ readonly wordWrap?: boolean;
117
+ };
118
+ declare const Table: <T extends ScalarDict>(props: Props<T>) => ReactElement;
119
+ export { type ColumnConfig, type Props, type Scalar, type ScalarDict, Table, type ColumnConfig as TableColumnConfig, type Props as TableProps, type Scalar as TableScalar, type ScalarDict as TableScalarDict, Table as default };
@@ -0,0 +1 @@
1
+ var b=Object.defineProperty;var E=(e,o)=>b(e,"name",{value:o,configurable:!0});import{jsx as _}from"react/jsx-runtime";import{Table as w}from"@visulima/tabular";import{THICK_BORDER as C,ROUNDED_BORDER as T,NO_BORDER as W,MINIMAL_BORDER as S,MARKDOWN_BORDER as v,DOUBLE_BORDER as x,DOTS_BORDER as H,DEFAULT_BORDER as h,BLOCK_BORDER as I,ASCII_BORDER as L}from"@visulima/tabular/style";import{useMemo as N}from"react";import{Text as A}from"./text.js";var K=Object.defineProperty,k=E((e,o)=>K(e,"name",{value:o,configurable:!0}),"f");const M={ascii:L,block:I,default:h,dots:H,double:x,markdown:v,minimal:S,none:W,rounded:T,thick:C},j=k(e=>typeof e=="string"?{key:e}:e,"toColumnConfig"),U=k(({borderStyle:e="default",columns:o,data:n,formatCell:d,formatHeader:m,maxWidth:u,padding:i=1,showHeader:l=!0,skeleton:p="",wordWrap:O=!1})=>{const B=N(()=>{if(n.length===0)return"";let r;if(o?r=o.map(t=>j(t)):r=Object.keys(n[0]).map(t=>({key:t})),r.length===0)return"";const g=typeof e=="string"?M[e]??h:e,D=r.map(t=>t.width),y=D.some(t=>t!==void 0),s=new w({columnWidths:y?D:void 0,maxWidth:u,showHeader:l,style:{border:g,paddingLeft:i,paddingRight:i},wordWrap:O});if(l){const t=r.map(a=>{const f=a.header??a.key;return m?m(a.key):f});s.setHeaders(t)}for(const[t,a]of n.entries()){const f=r.map(c=>{const R=a[c.key];return d?d(R,c.key,t):R==null?p:String(R)});s.addRow(f)}return s.toString()},[e,o,n,d,m,u,i,l,p,O]);return _(A,{children:B})},"TableComponent"),Q=U;export{Q as Table,Q as default};
@@ -0,0 +1,107 @@
1
+ import { A as AnsiColors } from "../packem_shared/index.server.d-eZWyC2Ku.js";
2
+ import { ReactNode, ReactElement } from 'react';
3
+ import { LiteralUnion } from 'type-fest';
4
+ import { Props as Props$1 } from "./tab.js";
5
+ /**
6
+ * Keyboard navigation configuration for Tabs.
7
+ */
8
+ type KeyMap = {
9
+ /**
10
+ * Key names that move to the next tab.
11
+ * Defaults to `["rightArrow"]` for row layouts and `["downArrow"]` for column layouts.
12
+ */
13
+ readonly next?: ReadonlyArray<string>;
14
+ /**
15
+ * Key names that move to the previous tab.
16
+ * Defaults to `["leftArrow"]` for row layouts and `["upArrow"]` for column layouts.
17
+ */
18
+ readonly previous?: ReadonlyArray<string>;
19
+ /**
20
+ * Whether Meta/Cmd + 1–9 jumps to a specific tab.
21
+ * @default true
22
+ */
23
+ readonly useNumbers?: boolean;
24
+ /**
25
+ * Whether the Tab key cycles through tabs (only when `isFocused` is not managed by Ink).
26
+ * @default true
27
+ */
28
+ readonly useTab?: boolean;
29
+ };
30
+ /**
31
+ * Color customization for active tab styling.
32
+ */
33
+ type TabColors = {
34
+ readonly activeTab?: {
35
+ readonly backgroundColor?: LiteralUnion<AnsiColors, string>;
36
+ readonly color?: LiteralUnion<AnsiColors, string>;
37
+ };
38
+ };
39
+ type Props = {
40
+ /**
41
+ * Tab elements to render.
42
+ */
43
+ readonly children: ReactNode;
44
+ /**
45
+ * Active tab colors. When `isFocused` is `false`, the active tab uses gray.
46
+ */
47
+ readonly colors?: TabColors;
48
+ /**
49
+ * Name of the tab to select initially (uncontrolled mode).
50
+ * Ignored when `value` is provided.
51
+ */
52
+ readonly defaultValue?: string;
53
+ /**
54
+ * Layout direction for the tab bar.
55
+ * @default "row"
56
+ */
57
+ readonly flexDirection?: "column" | "column-reverse" | "row" | "row-reverse";
58
+ /**
59
+ * Whether the tabs are focused and respond to keyboard input.
60
+ * - `true`: focused, uses active colors.
61
+ * - `false`: unfocused, uses gray active color, ignores input.
62
+ * - `undefined`/`null`: always active (focus not managed by Ink).
63
+ * @default undefined
64
+ */
65
+ readonly isFocused?: boolean | null;
66
+ /**
67
+ * Custom keyboard mappings.
68
+ */
69
+ readonly keyMap?: KeyMap;
70
+ /**
71
+ * Called when the active tab changes.
72
+ */
73
+ readonly onChange: (name: string, activeTab: ReactElement<Props$1>) => void;
74
+ /**
75
+ * Whether to display 1-based index numbers before each tab name.
76
+ * @default true
77
+ */
78
+ readonly showIndex?: boolean;
79
+ /**
80
+ * Controlled active tab name. When provided, the component is controlled —
81
+ * the parent owns the active tab state and must update it via `onChange`.
82
+ * When omitted, the component manages its own state (uncontrolled mode).
83
+ */
84
+ readonly value?: string;
85
+ /**
86
+ * Width of the container Box. Also determines the separator width in column layouts.
87
+ */
88
+ readonly width?: number | string;
89
+ };
90
+ /**
91
+ * Tabbed navigation component. Renders a row or column of tabs with keyboard
92
+ * navigation (arrow keys, Tab, number keys) and calls `onChange` when the
93
+ * active tab changes.
94
+ */
95
+ declare function Tabs({
96
+ children,
97
+ colors: colorsProp,
98
+ defaultValue,
99
+ flexDirection,
100
+ isFocused,
101
+ keyMap: keyMapProp,
102
+ onChange,
103
+ showIndex,
104
+ value,
105
+ width
106
+ }: Props): ReactElement;
107
+ export { KeyMap, Props, TabColors, Tabs, type KeyMap as TabsKeyMap, type Props as TabsProps, Tabs as default };
@@ -0,0 +1 @@
1
+ var X=Object.defineProperty;var A=(o,n)=>X(o,"name",{value:n,configurable:!0});import{jsx as y,jsxs as j}from"react/jsx-runtime";import{useRef as D,useState as Z,useCallback as d,useEffect as _,useMemo as M,Children as H}from"react";import J from"../ink/hooks/use-input.js";import{Box as I}from"./box.js";import{Text as B}from"./text.js";var Q=Object.defineProperty,f=A((o,n)=>Q(o,"name",{value:n,configurable:!0}),"b");const Y=/^\d$/u,$=f(o=>o!=null&&typeof o=="object"&&"props"in o&&"name"in o.props,"isTabElement"),rr=f(o=>{const n=[];for(const t of H.toArray(o))$(t)&&n.push(t);return n},"collectTabs"),G=f((o,n)=>o.some(t=>n[t]),"matchesAnyKey"),er=f((o,n,t)=>o?n?{backgroundColor:t?.activeTab?.backgroundColor??"green",color:t?.activeTab?.color??"black"}:{backgroundColor:"gray",color:"black"}:{backgroundColor:void 0,color:void 0},"getActiveTabColors");function or({children:o,colors:n,defaultValue:t,flexDirection:b="row",isFocused:h,keyMap:u,onChange:E,showIndex:K=!0,value:g,width:x}){const s=rr(o),c=s.length,p=D(s);p.current=s;const a=b==="column"||b==="column-reverse",C=g!==void 0,[L,O]=Z(()=>{const r=g??t;if(r==null||c===0)return 0;const e=s.findIndex(i=>i.props.name===r);return e===-1?0:e}),v=C?Math.max(0,s.findIndex(r=>r.props.name===g)):L,U=d(()=>{},[]),l=C?U:O,m=D(E);m.current=E,_(()=>{if(C)return;const r=p.current[v];r&&m.current(r.props.name,r)},[]);const F=M(()=>u?.previous??[a?"upArrow":"leftArrow"],[u?.previous,a]),N=M(()=>u?.next??[a?"downArrow":"rightArrow"],[u?.next,a]),P=u?.useNumbers??!0,R=u?.useTab??!0,k=D(v);k.current=v;const S=d(r=>{l(r);const e=p.current[r];e&&m.current(e.props.name,e)},[l]),T=d(()=>{const r=(k.current+1)%c;l(r);const e=p.current[r];e&&m.current(e.props.name,e)},[c,l]),w=d(()=>{const r=(k.current-1+c)%c;l(r);const e=p.current[r];e&&m.current(e.props.name,e)},[c,l]);J(d((r,e)=>{if(G(F,e)){w();return}if(G(N,e)){T();return}if(e.tab&&R&&h==null){e.shift?w():T();return}if(P&&e.meta&&Y.test(r)){const i=r==="0"?9:Number.parseInt(r,10)-1;i<c&&S(i)}},[F,N,R,P,h,w,T,c,S]),{isActive:h!==!1});const V=typeof x=="number"?x:6,W=M(()=>a?"─".repeat(V):" | ",[a,V]);return y(I,{flexDirection:b,width:x,children:s.map((r,e)=>{const{name:i}=r.props,q=er(v===e,h!==!1,n);let z=null;return K&&(z=j(B,{color:"grey",children:[e+1,"."," "]})),j(I,{flexDirection:b,children:[e!==0&&y(B,{color:"dim",children:W}),j(I,{children:[z,y(B,{backgroundColor:q.backgroundColor,color:q.color,children:r})]})]},i)})})}A(or,"W");f(or,"Tabs");export{or as Tabs,or as default};