@visulima/tui 1.0.0-alpha.9 → 1.0.0

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 (549) hide show
  1. package/CHANGELOG.md +648 -0
  2. package/LICENSE.md +2414 -187
  3. package/README.md +49 -4
  4. package/dist/components/accordion.d.ts +59 -0
  5. package/dist/components/accordion.js +1 -0
  6. package/dist/components/alert.d.ts +26 -0
  7. package/dist/components/alert.js +1 -0
  8. package/dist/components/animate-presence.d.ts +18 -0
  9. package/dist/components/animate-presence.js +1 -0
  10. package/dist/components/approval-prompt.d.ts +65 -0
  11. package/dist/components/approval-prompt.js +1 -0
  12. package/dist/components/area-chart.d.ts +66 -0
  13. package/dist/components/area-chart.js +1 -0
  14. package/dist/components/badge.d.ts +22 -0
  15. package/dist/components/badge.js +1 -0
  16. package/dist/components/bar-chart.d.ts +67 -0
  17. package/dist/components/bar-chart.js +1 -0
  18. package/dist/components/big-text.d.ts +81 -0
  19. package/dist/components/big-text.js +1 -0
  20. package/dist/components/blink-dot.d.ts +36 -0
  21. package/dist/components/blink-dot.js +1 -0
  22. package/dist/components/box.d.ts +62 -0
  23. package/dist/components/box.js +1 -0
  24. package/dist/components/breadcrumb.d.ts +33 -0
  25. package/dist/components/breadcrumb.js +1 -0
  26. package/dist/components/button.d.ts +45 -0
  27. package/dist/components/button.js +1 -0
  28. package/dist/components/calendar.d.ts +72 -0
  29. package/dist/components/calendar.js +1 -0
  30. package/dist/components/canvas.d.ts +44 -0
  31. package/dist/components/canvas.js +1 -0
  32. package/dist/components/card.d.ts +57 -0
  33. package/dist/components/card.js +1 -0
  34. package/dist/components/checkbox.d.ts +48 -0
  35. package/dist/components/checkbox.js +1 -0
  36. package/dist/components/code.d.ts +48 -0
  37. package/dist/components/code.js +2 -0
  38. package/dist/components/collapsible.d.ts +53 -0
  39. package/dist/components/collapsible.js +1 -0
  40. package/dist/components/command-block.d.ts +47 -0
  41. package/dist/components/command-block.js +4 -0
  42. package/dist/components/command-palette.d.ts +82 -0
  43. package/dist/components/command-palette.js +1 -0
  44. package/dist/components/confirm-dialog.d.ts +75 -0
  45. package/dist/components/confirm-dialog.js +1 -0
  46. package/dist/components/confirm-input.d.ts +38 -0
  47. package/dist/components/confirm-input.js +1 -0
  48. package/dist/components/console-overlay.d.ts +54 -0
  49. package/dist/components/console-overlay.js +1 -0
  50. package/dist/components/content-switcher.d.ts +57 -0
  51. package/dist/components/content-switcher.js +1 -0
  52. package/dist/components/controlled-scroll-view.d.ts +61 -0
  53. package/dist/components/controlled-scroll-view.js +1 -0
  54. package/dist/components/cursor.d.ts +62 -0
  55. package/dist/components/cursor.js +1 -0
  56. package/dist/components/date-picker.d.ts +65 -0
  57. package/dist/components/date-picker.js +1 -0
  58. package/dist/components/definition-list.d.ts +44 -0
  59. package/dist/components/definition-list.js +1 -0
  60. package/dist/components/dialog.d.ts +117 -0
  61. package/dist/components/dialog.js +1 -0
  62. package/dist/components/diff-view.d.ts +85 -0
  63. package/dist/components/diff-view.js +1 -0
  64. package/dist/components/divider.d.ts +49 -0
  65. package/dist/components/divider.js +1 -0
  66. package/dist/components/file-picker-entry.d.ts +104 -0
  67. package/dist/components/file-picker-entry.js +1 -0
  68. package/dist/components/form.d.ts +81 -0
  69. package/dist/components/form.js +1 -0
  70. package/dist/components/gauge.d.ts +87 -0
  71. package/dist/components/gauge.js +1 -0
  72. package/dist/components/gradient.d.ts +42 -0
  73. package/dist/components/gradient.js +1 -0
  74. package/dist/components/heading.d.ts +33 -0
  75. package/dist/components/heading.js +1 -0
  76. package/dist/components/heatmap.d.ts +62 -0
  77. package/dist/components/heatmap.js +1 -0
  78. package/dist/components/help.d.ts +52 -0
  79. package/dist/components/help.js +1 -0
  80. package/dist/components/histogram.d.ts +62 -0
  81. package/dist/components/histogram.js +1 -0
  82. package/dist/components/kbd.d.ts +31 -0
  83. package/dist/components/kbd.js +1 -0
  84. package/dist/components/line-chart.d.ts +109 -0
  85. package/dist/components/line-chart.js +1 -0
  86. package/dist/components/link.d.ts +38 -0
  87. package/dist/components/link.js +1 -0
  88. package/dist/components/loading-indicator.d.ts +29 -0
  89. package/dist/components/loading-indicator.js +1 -0
  90. package/dist/components/markdown.d.ts +40 -0
  91. package/dist/components/markdown.js +1 -0
  92. package/dist/components/masked-input.d.ts +50 -0
  93. package/dist/components/masked-input.js +1 -0
  94. package/dist/components/menu.d.ts +78 -0
  95. package/dist/components/menu.js +1 -0
  96. package/dist/components/message-bubble.d.ts +43 -0
  97. package/dist/components/message-bubble.js +1 -0
  98. package/dist/components/model-badge.d.ts +39 -0
  99. package/dist/components/model-badge.js +1 -0
  100. package/dist/components/multi-select.d.ts +65 -0
  101. package/dist/components/multi-select.js +1 -0
  102. package/dist/components/newline.d.ts +15 -0
  103. package/dist/components/newline.js +2 -0
  104. package/dist/components/operation-tree.d.ts +49 -0
  105. package/dist/components/operation-tree.js +1 -0
  106. package/dist/components/option-list.d.ts +47 -0
  107. package/dist/components/option-list.js +1 -0
  108. package/dist/components/ordered-list.d.ts +24 -0
  109. package/dist/components/ordered-list.js +1 -0
  110. package/dist/components/paginator.d.ts +69 -0
  111. package/dist/components/paginator.js +1 -0
  112. package/dist/components/paragraph.d.ts +38 -0
  113. package/dist/components/paragraph.js +1 -0
  114. package/dist/components/placeholder.d.ts +55 -0
  115. package/dist/components/placeholder.js +1 -0
  116. package/dist/components/progress-bar.d.ts +56 -0
  117. package/dist/components/progress-bar.js +1 -0
  118. package/dist/components/radio-group.d.ts +74 -0
  119. package/dist/components/radio-group.js +1 -0
  120. package/dist/components/scatter-plot.d.ts +35 -0
  121. package/dist/components/scatter-plot.js +1 -0
  122. package/dist/components/scroll-bar-box.d.ts +37 -0
  123. package/dist/components/scroll-bar-box.js +1 -0
  124. package/dist/components/scroll-bar.d.ts +25 -0
  125. package/dist/components/scroll-bar.js +1 -0
  126. package/dist/components/scroll-list.d.ts +20 -0
  127. package/dist/components/scroll-list.js +1 -0
  128. package/dist/components/scroll-view.d.ts +10 -0
  129. package/dist/components/scroll-view.js +1 -0
  130. package/dist/components/search-input.d.ts +55 -0
  131. package/dist/components/search-input.js +1 -0
  132. package/dist/components/select-input-indicator.d.ts +32 -0
  133. package/dist/components/select-input-indicator.js +1 -0
  134. package/dist/components/select-input-item.d.ts +41 -0
  135. package/dist/components/select-input-item.js +1 -0
  136. package/dist/components/select-input.d.ts +110 -0
  137. package/dist/components/select-input.js +1 -0
  138. package/dist/components/shimmer-text.d.ts +47 -0
  139. package/dist/components/shimmer-text.js +1 -0
  140. package/dist/components/slider.d.ts +103 -0
  141. package/dist/components/slider.js +1 -0
  142. package/dist/components/spacer.d.ts +8 -0
  143. package/dist/components/spacer.js +1 -0
  144. package/dist/components/sparkline.d.ts +35 -0
  145. package/dist/components/sparkline.js +1 -0
  146. package/dist/components/spinner.d.ts +17 -0
  147. package/dist/components/spinner.js +1 -0
  148. package/dist/components/static-render.d.ts +55 -0
  149. package/dist/components/static-render.js +1 -0
  150. package/dist/components/static.d.ts +29 -0
  151. package/dist/components/static.js +1 -0
  152. package/dist/components/status-line.d.ts +37 -0
  153. package/dist/components/status-line.js +1 -0
  154. package/dist/components/status-message.d.ts +21 -0
  155. package/dist/components/status-message.js +1 -0
  156. package/dist/components/stepper.d.ts +48 -0
  157. package/dist/components/stepper.js +1 -0
  158. package/dist/components/stopwatch.d.ts +49 -0
  159. package/dist/components/stopwatch.js +1 -0
  160. package/dist/components/streaming-text.d.ts +46 -0
  161. package/dist/components/streaming-text.js +1 -0
  162. package/dist/components/switch.d.ts +55 -0
  163. package/dist/components/switch.js +1 -0
  164. package/dist/components/tab.d.ts +19 -0
  165. package/dist/components/tab.js +1 -0
  166. package/dist/components/table.d.ts +119 -0
  167. package/dist/components/table.js +1 -0
  168. package/dist/components/tabs.d.ts +107 -0
  169. package/dist/components/tabs.js +1 -0
  170. package/dist/components/tag.d.ts +35 -0
  171. package/dist/components/tag.js +1 -0
  172. package/dist/components/text-input.d.ts +48 -0
  173. package/dist/components/text-input.js +1 -0
  174. package/dist/components/text.d.ts +79 -0
  175. package/dist/components/text.js +1 -0
  176. package/dist/components/textarea.d.ts +68 -0
  177. package/dist/components/textarea.js +2 -0
  178. package/dist/components/timer.d.ts +59 -0
  179. package/dist/components/timer.js +1 -0
  180. package/dist/components/toast.d.ts +49 -0
  181. package/dist/components/toast.js +1 -0
  182. package/dist/components/tooltip.d.ts +43 -0
  183. package/dist/components/tooltip.js +1 -0
  184. package/dist/components/transform.d.ts +21 -0
  185. package/dist/components/transform.js +1 -0
  186. package/dist/components/transition.d.ts +74 -0
  187. package/dist/components/transition.js +1 -0
  188. package/dist/components/tree-view-entry.d.ts +357 -0
  189. package/dist/components/tree-view-entry.js +1 -0
  190. package/dist/components/unordered-list.d.ts +30 -0
  191. package/dist/components/unordered-list.js +1 -0
  192. package/dist/core/index.d.ts +2 -2
  193. package/dist/core/index.js +1 -1
  194. package/dist/ink/hooks/use-animation.d.ts +41 -0
  195. package/dist/ink/hooks/use-animation.js +1 -0
  196. package/dist/ink/hooks/use-app.d.ts +38 -0
  197. package/dist/ink/hooks/use-app.js +1 -0
  198. package/dist/ink/hooks/use-box-metrics.d.ts +66 -0
  199. package/dist/ink/hooks/use-box-metrics.js +1 -0
  200. package/dist/ink/hooks/use-clipboard.d.ts +30 -0
  201. package/dist/ink/hooks/use-clipboard.js +1 -0
  202. package/dist/ink/hooks/use-color-blindness.d.ts +33 -0
  203. package/dist/ink/hooks/use-color-blindness.js +1 -0
  204. package/dist/ink/hooks/use-console-capture.d.ts +43 -0
  205. package/dist/ink/hooks/use-console-capture.js +1 -0
  206. package/dist/ink/hooks/use-cursor.d.ts +13 -0
  207. package/dist/ink/hooks/use-cursor.js +1 -0
  208. package/dist/ink/hooks/use-focus-manager.d.ts +57 -0
  209. package/dist/ink/hooks/use-focus-manager.js +1 -0
  210. package/dist/ink/hooks/use-focus.d.ts +34 -0
  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 +149 -0
  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 +6 -0
  221. package/dist/ink/hooks/use-is-screen-reader-enabled.js +1 -0
  222. package/dist/ink/hooks/use-key-bindings.d.ts +59 -0
  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 +49 -0
  227. package/dist/ink/hooks/use-linked-scroll.js +1 -0
  228. package/dist/ink/hooks/use-paste.d.ts +45 -0
  229. package/dist/ink/hooks/use-paste.js +1 -0
  230. package/dist/ink/hooks/use-persistent-state.d.ts +65 -0
  231. package/dist/ink/hooks/use-persistent-state.js +2 -0
  232. package/dist/ink/hooks/use-scroll-acceleration.d.ts +47 -0
  233. package/dist/ink/hooks/use-scroll-acceleration.js +1 -0
  234. package/dist/ink/hooks/use-scroll-input.d.ts +34 -0
  235. package/dist/ink/hooks/use-scroll-input.js +1 -0
  236. package/dist/ink/hooks/use-stderr.d.ts +16 -0
  237. package/dist/ink/hooks/use-stderr.js +1 -0
  238. package/dist/ink/hooks/use-stdin.d.ts +30 -0
  239. package/dist/ink/hooks/use-stdin.js +1 -0
  240. package/dist/ink/hooks/use-stdout.d.ts +16 -0
  241. package/dist/ink/hooks/use-stdout.js +1 -0
  242. package/dist/ink/hooks/use-stopwatch.d.ts +39 -0
  243. package/dist/ink/hooks/use-stopwatch.js +1 -0
  244. package/dist/ink/hooks/use-terminal-palette.d.ts +20 -0
  245. package/dist/ink/hooks/use-terminal-palette.js +1 -0
  246. package/dist/ink/hooks/use-text-buffer.d.ts +42 -0
  247. package/dist/ink/hooks/use-text-buffer.js +4 -0
  248. package/dist/ink/hooks/use-text-selection.d.ts +45 -0
  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 +48 -0
  253. package/dist/ink/hooks/use-timer.js +1 -0
  254. package/dist/ink/hooks/use-window-size.d.ts +18 -0
  255. package/dist/ink/hooks/use-window-size.js +1 -0
  256. package/dist/ink/index.d.ts +30 -6251
  257. package/dist/ink/index.js +1 -1
  258. package/dist/ink/mouse/use-element-position.d.ts +31 -0
  259. package/dist/ink/mouse/use-element-position.js +1 -0
  260. package/dist/ink/mouse/use-mouse-action.d.ts +5 -0
  261. package/dist/ink/mouse/use-mouse-action.js +1 -0
  262. package/dist/ink/mouse/use-mouse-position.d.ts +5 -0
  263. package/dist/ink/mouse/use-mouse-position.js +1 -0
  264. package/dist/ink/mouse/use-mouse.d.ts +5 -0
  265. package/dist/ink/mouse/use-mouse.js +1 -0
  266. package/dist/ink/mouse/use-on-mouse-click.d.ts +16 -0
  267. package/dist/ink/mouse/use-on-mouse-click.js +1 -0
  268. package/dist/ink/mouse/use-on-mouse-hover.d.ts +10 -0
  269. package/dist/ink/mouse/use-on-mouse-hover.js +1 -0
  270. package/dist/ink/mouse/use-on-mouse-state.d.ts +13 -0
  271. package/dist/ink/mouse/use-on-mouse-state.js +1 -0
  272. package/dist/packem_chunks/devtools.js +1 -1
  273. package/dist/packem_shared/COLOR_BLINDNESS_COMPENSATION-Ilnoyeqc.js +1 -0
  274. package/dist/packem_shared/ControlledScrollView-Cn4byU2n.js +1 -0
  275. package/dist/packem_shared/DevTools-k6uiVzqv.js +1 -0
  276. package/dist/packem_shared/FilePicker-BLS9nOPz.js +1 -0
  277. package/dist/packem_shared/FocusContext-C2Sosxa4.js +1 -0
  278. package/dist/packem_shared/Fullscreen-BRhuBLBh.js +1 -0
  279. package/dist/packem_shared/IMECompositionBuffer-VhC9HRCv.js +1 -0
  280. package/dist/packem_shared/InputParser-CtwkCbrQ.js +2 -0
  281. package/dist/packem_shared/KEY-C--kOw41.js +1 -0
  282. package/dist/packem_shared/LayoutNode-LPYsuzBg.js +1 -0
  283. package/dist/packem_shared/MouseProvider-DUqQ3Eaa.js +1 -0
  284. package/dist/packem_shared/NAMED_COLORS-82DpREQV.js +1 -0
  285. package/dist/packem_shared/Range-BsVYNWtg.js +1 -0
  286. package/dist/packem_shared/Renderer-DsskdkUd.js +1 -0
  287. package/dist/packem_shared/ResizeObserver-BI9bDy-j.js +1 -0
  288. package/dist/packem_shared/ScrollBar-qa1IzDDv.js +1 -0
  289. package/dist/packem_shared/ScrollBarBox-DchESZWv.js +1 -0
  290. package/dist/packem_shared/ScrollList-BBAnRsrC.js +1 -0
  291. package/dist/packem_shared/ScrollView-CHAo7Epj.js +1 -0
  292. package/dist/packem_shared/Static-DSzsElz4.js +1 -0
  293. package/dist/packem_shared/TreeNodeMap-cJlYqckB.js +1 -0
  294. package/dist/packem_shared/TreeView-BsvLCsf0.js +1 -0
  295. package/dist/packem_shared/TuiApp-BPL8v1i1.js +1 -0
  296. package/dist/packem_shared/TuiContext-BNmP0lMY.js +3 -0
  297. package/dist/packem_shared/ansi-parser-DlgLtOYO.js +1 -0
  298. package/dist/packem_shared/ansi-tokenizer-BU67A126.js +1 -0
  299. package/dist/packem_shared/braille-ch3O5D7I.js +1 -0
  300. package/dist/packem_shared/buffer.d-EJkZr8uH.d.ts +39 -0
  301. package/dist/packem_shared/calculateScroll-D4Y_JR4H.js +1 -0
  302. package/dist/packem_shared/{measureElement-DA8WqFP_.js → calculateScrollbarLayout-Lf6i24c9.js} +1 -1
  303. package/dist/packem_shared/clearOsc52-BUpnQOav.js +1 -0
  304. package/dist/packem_shared/clearStringWidthCache-DKFjfJuB.js +1 -0
  305. package/dist/packem_shared/clipboard.d-D6lZTQ21.d.ts +23 -0
  306. package/dist/packem_shared/color-matrix.d-DSXLsB64.d.ts +50 -0
  307. package/dist/packem_shared/colorize-DU4YZkp3.js +1 -0
  308. package/dist/packem_shared/controlled-scroll-view-BVg7ywNW.js +1 -0
  309. package/dist/packem_shared/createInlineLoop-BT40Wpmx.js +2 -0
  310. package/dist/packem_shared/createScreen-DoYpyL0V.js +3 -0
  311. package/dist/packem_shared/cursor-helpers.d-BONB9tky.d.ts +12 -0
  312. package/dist/packem_shared/dom-rphpG0kf.js +1 -0
  313. package/dist/packem_shared/dom.d-B4kXbaVY.d.ts +449 -0
  314. package/dist/packem_shared/format-time-fjoQHMxD.js +1 -0
  315. package/dist/packem_shared/{getPathToRoot-B2tKmx3i.js → getPathToRoot-PDJeqiEH.js} +1 -1
  316. package/dist/packem_shared/input-utils-BSWCb4F_.js +1 -0
  317. package/dist/packem_shared/{input.d-Bfq7oc06.d.ts → input.d-CgxV2e8U.d.ts} +1 -1
  318. package/dist/packem_shared/isIntersecting-Bo2npvMR.js +1 -0
  319. package/dist/packem_shared/isTerminalPaletteQuerySupported-BYzmqq9-.js +1 -0
  320. package/dist/packem_shared/kittyFlags-g8ALyoCU.js +1 -0
  321. package/dist/packem_shared/line-chart-C7CUrvVs.js +1 -0
  322. package/dist/packem_shared/load-native-root-binding-DDikxNox.js +1 -0
  323. package/dist/packem_shared/measure-element-D4M9iSYp.js +1 -0
  324. package/dist/packem_shared/measure-text-B7juNq4Y.js +3 -0
  325. package/dist/packem_shared/mouse-context.d-BfL9xGk_.d.ts +30 -0
  326. package/dist/packem_shared/parseSgrMouse-bUrqPrh-.js +1 -0
  327. package/dist/packem_shared/processLayout-I83k6vXE.js +2 -0
  328. package/dist/packem_shared/reconciler-CFyBVf7l.js +1 -0
  329. package/dist/packem_shared/reconciler-ClpU7Y-V.js +1 -0
  330. package/dist/packem_shared/render-CuQecTAs.js +24 -0
  331. package/dist/packem_shared/render-DFZ8NHlG.js +1 -0
  332. package/dist/packem_shared/render.d-CBnYBDk2.d.ts +417 -0
  333. package/dist/packem_shared/renderToString-DwXFY8Qh.js +4 -0
  334. package/dist/packem_shared/renderToString-L_bpw4OQ.js +2 -0
  335. package/dist/packem_shared/renderTreeToBuffer-C8lS0lJ2.js +2 -0
  336. package/dist/packem_shared/renderer-k-xShm1P.js +17 -0
  337. package/dist/packem_shared/scroll-view.d-DtpsgHLg.d.ts +119 -0
  338. package/dist/packem_shared/selection.d-CI3_p8wg.d.ts +62 -0
  339. package/dist/packem_shared/squashTextNodesWithMap-BmUSBPfc.js +1 -0
  340. package/dist/packem_shared/stderr-context-Bvnik0hL.js +1 -0
  341. package/dist/packem_shared/stdin-context-88AhuztD.js +1 -0
  342. package/dist/packem_shared/styles.d-cMo36xQz.d.ts +396 -0
  343. package/dist/packem_shared/terminal-palette.d-D2SQjfn-.d.ts +19 -0
  344. package/dist/packem_shared/text-width-e49vlbQH.js +2 -0
  345. package/dist/packem_shared/token-to-elements-D6J6-P2A.js +1 -0
  346. package/dist/packem_shared/treeViewTheme-Dq3ekRAC.js +1 -0
  347. package/dist/packem_shared/useTreeView-D5ifGwG3.js +1 -0
  348. package/dist/packem_shared/useTreeViewState-BiTJakkh.js +1 -0
  349. package/dist/packem_shared/utils-Bup8lyK8.js +1 -0
  350. package/dist/packem_shared/variant-config.d-D5NnrrQK.d.ts +2 -0
  351. package/dist/packem_shared/waitFor-CTAki32d.js +4 -0
  352. package/dist/packem_shared/wrapOrTruncateStyledLine-46W8bTtv.js +3 -0
  353. package/dist/react/index.d.ts +2 -2
  354. package/dist/react/index.js +1 -1
  355. package/dist/testing/index.d.ts +5 -1
  356. package/dist/testing/index.js +1 -1
  357. package/index.js +550 -692
  358. package/package.json +585 -31
  359. package/dist/packem_shared/Accordion-BXsqchV-.js +0 -1
  360. package/dist/packem_shared/Alert-BhYVMHtR.js +0 -1
  361. package/dist/packem_shared/AnimatePresence-Eu7Z8KHc.js +0 -1
  362. package/dist/packem_shared/ApprovalPrompt-BSn0FT1g.js +0 -1
  363. package/dist/packem_shared/AreaChart-Chy-frI7.js +0 -1
  364. package/dist/packem_shared/Badge-B8WPyRsK.js +0 -1
  365. package/dist/packem_shared/BarChart-rpZtlMcF.js +0 -1
  366. package/dist/packem_shared/BigText-CRpwUzrt.js +0 -1
  367. package/dist/packem_shared/BlinkDot-BvnRuWP8.js +0 -1
  368. package/dist/packem_shared/Box-BwqSvWuq.js +0 -1
  369. package/dist/packem_shared/Breadcrumb-D0hClbRV.js +0 -1
  370. package/dist/packem_shared/Button-B89Yvbc6.js +0 -1
  371. package/dist/packem_shared/COLOR_BLINDNESS_SIMULATION-DqErf7XX.js +0 -1
  372. package/dist/packem_shared/Calendar-Dmflvm2S.js +0 -1
  373. package/dist/packem_shared/Canvas-CKg6WV47.js +0 -1
  374. package/dist/packem_shared/Card-B_9fXdtU.js +0 -1
  375. package/dist/packem_shared/Checkbox-BN71eCWU.js +0 -1
  376. package/dist/packem_shared/Code-HhevcyiH.js +0 -2
  377. package/dist/packem_shared/Collapsible-u6uf_FdV.js +0 -1
  378. package/dist/packem_shared/CommandBlock-B-nslpCv.js +0 -4
  379. package/dist/packem_shared/CommandPalette-CEFdaURo.js +0 -1
  380. package/dist/packem_shared/ConfirmDialog-5Jje_Xpu.js +0 -1
  381. package/dist/packem_shared/ConfirmInput-D44Mb9oo.js +0 -1
  382. package/dist/packem_shared/ConsoleOverlay-CM3APfgP.js +0 -1
  383. package/dist/packem_shared/ContentSwitcher-Dm5BkrCt.js +0 -1
  384. package/dist/packem_shared/ControlledScrollView-DI8KZOQB.js +0 -1
  385. package/dist/packem_shared/Cursor-BoLFIMol.js +0 -1
  386. package/dist/packem_shared/DatePicker-CnSrFFAE.js +0 -1
  387. package/dist/packem_shared/DefinitionList-v8RDuF_R.js +0 -1
  388. package/dist/packem_shared/DevTools-O8EbCfHa.js +0 -1
  389. package/dist/packem_shared/Dialog-CTaL8pn0.js +0 -1
  390. package/dist/packem_shared/DiffView-BUIFqUB0.js +0 -1
  391. package/dist/packem_shared/Divider-C47bKmqu.js +0 -1
  392. package/dist/packem_shared/FilePicker-CUo7R5Qb.js +0 -1
  393. package/dist/packem_shared/FocusContext-Xy0cwJpO.js +0 -1
  394. package/dist/packem_shared/FormField-af3aUpRL.js +0 -1
  395. package/dist/packem_shared/Fullscreen-CuJ8y0s0.js +0 -1
  396. package/dist/packem_shared/Gauge-Dz-usH__.js +0 -1
  397. package/dist/packem_shared/Gradient-DYNc0GZA.js +0 -1
  398. package/dist/packem_shared/Heading-mwEYza3Y.js +0 -1
  399. package/dist/packem_shared/Heatmap-ChL97U1-.js +0 -1
  400. package/dist/packem_shared/Help-Zcelyw_U.js +0 -1
  401. package/dist/packem_shared/Histogram-FIf2F83d.js +0 -1
  402. package/dist/packem_shared/IMECompositionBuffer-C89PhiOu.js +0 -1
  403. package/dist/packem_shared/InputParser-rZKjY_7Y.js +0 -2
  404. package/dist/packem_shared/KEY-Bk8B-3h_.js +0 -1
  405. package/dist/packem_shared/Kbd-DpkPp4jB.js +0 -1
  406. package/dist/packem_shared/LayoutNode-rxblE317.js +0 -1
  407. package/dist/packem_shared/LineChart-BXE_girm.js +0 -1
  408. package/dist/packem_shared/Link-i2o2EG4-.js +0 -1
  409. package/dist/packem_shared/LoadingIndicator-TC1Fjwyt.js +0 -1
  410. package/dist/packem_shared/Markdown-R1XqK63D.js +0 -1
  411. package/dist/packem_shared/MaskedInput-J01phOZs.js +0 -1
  412. package/dist/packem_shared/Menu-CfrH4ymk.js +0 -1
  413. package/dist/packem_shared/MessageBubble-BmBBU2Rm.js +0 -1
  414. package/dist/packem_shared/ModelBadge-D3wrXncu.js +0 -1
  415. package/dist/packem_shared/MouseProvider-pjza-lpc.js +0 -1
  416. package/dist/packem_shared/MultiSelect-Dqmn-bVo.js +0 -1
  417. package/dist/packem_shared/NAMED_COLORS-B9fJsYdg.js +0 -1
  418. package/dist/packem_shared/Newline-BSG4iUqp.js +0 -2
  419. package/dist/packem_shared/OperationTree-DksxjMIV.js +0 -1
  420. package/dist/packem_shared/OptionList-CNx7r9yN.js +0 -1
  421. package/dist/packem_shared/OrderedList-BeDy035w.js +0 -1
  422. package/dist/packem_shared/Paginator-B56s6bhS.js +0 -1
  423. package/dist/packem_shared/Paragraph-BqJlH0R-.js +0 -1
  424. package/dist/packem_shared/Placeholder-GMpHRGC8.js +0 -1
  425. package/dist/packem_shared/ProgressBar-Bj3fmORR.js +0 -1
  426. package/dist/packem_shared/RadioGroup-Br8BeEwS.js +0 -1
  427. package/dist/packem_shared/Renderer-DJXooAsp.js +0 -1
  428. package/dist/packem_shared/ResizeObserverEntry-Dq0dk8Kq.js +0 -1
  429. package/dist/packem_shared/ScatterPlot-OhfYco5l.js +0 -1
  430. package/dist/packem_shared/ScrollBar-Da5Y3z7N.js +0 -1
  431. package/dist/packem_shared/ScrollBarBox-Dz6F-Eat.js +0 -1
  432. package/dist/packem_shared/ScrollList-DiVGyEjv.js +0 -1
  433. package/dist/packem_shared/ScrollView-BojONotI.js +0 -1
  434. package/dist/packem_shared/SearchInput-BoPTRbhV.js +0 -1
  435. package/dist/packem_shared/SelectInput-CAJ7SCBq.js +0 -1
  436. package/dist/packem_shared/SelectInputIndicator-N1n8ULHs.js +0 -1
  437. package/dist/packem_shared/SelectInputItem-BEkbmobs.js +0 -1
  438. package/dist/packem_shared/ShimmerText-CuGQ2NDC.js +0 -1
  439. package/dist/packem_shared/Slider-Cg_tJpKa.js +0 -1
  440. package/dist/packem_shared/Spacer-eT3HOrXk.js +0 -1
  441. package/dist/packem_shared/Sparkline-T6_FPVET.js +0 -1
  442. package/dist/packem_shared/Spinner-B0-A50pu.js +0 -1
  443. package/dist/packem_shared/Static-DLynr5pn.js +0 -1
  444. package/dist/packem_shared/Static-jzLPaHJF.js +0 -1
  445. package/dist/packem_shared/StaticRender-BgD61E7x.js +0 -1
  446. package/dist/packem_shared/StatusLine-Ch4jjef1.js +0 -1
  447. package/dist/packem_shared/StatusMessage-B1qfKeMM.js +0 -1
  448. package/dist/packem_shared/Stepper-CNPAqxiU.js +0 -1
  449. package/dist/packem_shared/Stopwatch-CAx2EWwq.js +0 -1
  450. package/dist/packem_shared/StreamingText-BYOKSB2T.js +0 -1
  451. package/dist/packem_shared/Switch-DzSpKYu7.js +0 -1
  452. package/dist/packem_shared/Tab-BcXzSUdj.js +0 -1
  453. package/dist/packem_shared/Table-DJp1TLrR.js +0 -1
  454. package/dist/packem_shared/Tabs-D68z0SOt.js +0 -1
  455. package/dist/packem_shared/Tag-BvLHnYRn.js +0 -1
  456. package/dist/packem_shared/Text-mTAve9R2.js +0 -1
  457. package/dist/packem_shared/TextInput-C_gYQlnF.js +0 -1
  458. package/dist/packem_shared/Textarea-C2ET_oMb.js +0 -2
  459. package/dist/packem_shared/Timer-CI3aQX65.js +0 -1
  460. package/dist/packem_shared/Toast-Drvc8XfG.js +0 -1
  461. package/dist/packem_shared/Tooltip-C5UnQlLd.js +0 -1
  462. package/dist/packem_shared/Transform-fYmcdqRT.js +0 -1
  463. package/dist/packem_shared/Transition-CJDBKYUB.js +0 -1
  464. package/dist/packem_shared/TreeNodeMap-CspqSCpb.js +0 -1
  465. package/dist/packem_shared/TreeView-DjhacGJ5.js +0 -1
  466. package/dist/packem_shared/TuiApp-DrjI_i-R.js +0 -1
  467. package/dist/packem_shared/TuiContext-BoJvG3NN.js +0 -3
  468. package/dist/packem_shared/UnorderedList-BnfqexZs.js +0 -1
  469. package/dist/packem_shared/ansi-parser-B6uXaq65.js +0 -1
  470. package/dist/packem_shared/ansi-tokenizer-DqX9nJuk.js +0 -1
  471. package/dist/packem_shared/boxes-DyY_LXCi.js +0 -1
  472. package/dist/packem_shared/braille-BBjIoaN0.js +0 -1
  473. package/dist/packem_shared/colorize-DbTZMrJO.js +0 -1
  474. package/dist/packem_shared/comparePoints-C85EsmNz.js +0 -1
  475. package/dist/packem_shared/controlled-scroll-view-CmrAEvJk.js +0 -1
  476. package/dist/packem_shared/createInlineLoop-DRNZ7jqH.js +0 -2
  477. package/dist/packem_shared/createLinkedScrollGroup-BMTJ7rAj.js +0 -1
  478. package/dist/packem_shared/createMemoryStorage-QVZNXbWz.js +0 -2
  479. package/dist/packem_shared/createScreen-CrLrxA6t.js +0 -3
  480. package/dist/packem_shared/dom-4y__5fWB.js +0 -1
  481. package/dist/packem_shared/format-time-C7Q-hQZq.js +0 -1
  482. package/dist/packem_shared/getScrollHeight-BTEY8ewu.js +0 -1
  483. package/dist/packem_shared/input-utils-fAxzSlNh.js +0 -1
  484. package/dist/packem_shared/isIntersecting-B3KbKTmu.js +0 -1
  485. package/dist/packem_shared/isOsc52Supported-DKK7Uee6.js +0 -1
  486. package/dist/packem_shared/isTerminalPaletteQuerySupported-Dn2hFAZ_.js +0 -1
  487. package/dist/packem_shared/kittyFlags-C3rZLbcK.js +0 -1
  488. package/dist/packem_shared/line-chart-DrM8PwnI.js +0 -1
  489. package/dist/packem_shared/measure-element-DSp7YDus.js +0 -2
  490. package/dist/packem_shared/measure-text-DDjHT1jD.js +0 -3
  491. package/dist/packem_shared/parseSgrMouse-Ccj70ijb.js +0 -1
  492. package/dist/packem_shared/processLayout-DXDfFb_d.js +0 -1
  493. package/dist/packem_shared/reconciler-BuOP-TZ6.js +0 -1
  494. package/dist/packem_shared/reconciler-DSYCrIZs.js +0 -1
  495. package/dist/packem_shared/render-DDqtMAFN.js +0 -1
  496. package/dist/packem_shared/render-_r0K9K11.js +0 -28
  497. package/dist/packem_shared/render.d-CNIzVQTh.d.ts +0 -1257
  498. package/dist/packem_shared/renderToString-DeqOWRP8.js +0 -4
  499. package/dist/packem_shared/renderToString-IYYPyASm.js +0 -2
  500. package/dist/packem_shared/renderTreeToBuffer-DPkoCgP2.js +0 -2
  501. package/dist/packem_shared/renderer-D2p6av2X.js +0 -17
  502. package/dist/packem_shared/setEnableStyledLineCache-D2gZbwFM.js +0 -1
  503. package/dist/packem_shared/squashTextNodesWithMap-Cpqmc45i.js +0 -1
  504. package/dist/packem_shared/stderr-context-BzEaUICS.js +0 -1
  505. package/dist/packem_shared/stdin-context-BTaaFagk.js +0 -1
  506. package/dist/packem_shared/text-width-CZ9vPvM0.js +0 -2
  507. package/dist/packem_shared/token-to-elements-BYxT6J_Q.js +0 -1
  508. package/dist/packem_shared/treeViewTheme-1RIZyB4M.js +0 -1
  509. package/dist/packem_shared/useAnimation-B9we6ZzL.js +0 -1
  510. package/dist/packem_shared/useApp-B6fvM42d.js +0 -1
  511. package/dist/packem_shared/useBoxMetrics-D5pkIr6P.js +0 -1
  512. package/dist/packem_shared/useClipboard-CBxy0hT8.js +0 -1
  513. package/dist/packem_shared/useColorBlindness-BvWcu2Bb.js +0 -1
  514. package/dist/packem_shared/useConsoleCapture-BxiG8iLJ.js +0 -1
  515. package/dist/packem_shared/useCursor-CPu8T5Db.js +0 -1
  516. package/dist/packem_shared/useElementDimensions-qJ_WXFZ9.js +0 -1
  517. package/dist/packem_shared/useFocus-DSmziO_x.js +0 -1
  518. package/dist/packem_shared/useFocusManager-Uapn3LQo.js +0 -1
  519. package/dist/packem_shared/useForm-CzV-Oext.js +0 -1
  520. package/dist/packem_shared/useHotkey-D0dGey14.js +0 -1
  521. package/dist/packem_shared/useInput-D1_jG26Z.js +0 -2
  522. package/dist/packem_shared/useInterval-AobjZT3u.js +0 -1
  523. package/dist/packem_shared/useIsScreenReaderEnabled-DjWHh-II.js +0 -1
  524. package/dist/packem_shared/useKeyBindings-zabkEJQs.js +0 -1
  525. package/dist/packem_shared/useKeyChord-CICQIxXj.js +0 -1
  526. package/dist/packem_shared/useMouseAction-2dRfU1vE.js +0 -1
  527. package/dist/packem_shared/useMouseContext-C746G7kY.js +0 -1
  528. package/dist/packem_shared/useMousePosition-BTWfV4JK.js +0 -1
  529. package/dist/packem_shared/useOnMouseClick-nY8xLZmt.js +0 -1
  530. package/dist/packem_shared/useOnMouseHover-D3DczIol.js +0 -1
  531. package/dist/packem_shared/useOnMouseState-cRK8QvzD.js +0 -1
  532. package/dist/packem_shared/usePaste-CKKB9H-Z.js +0 -1
  533. package/dist/packem_shared/useScrollAcceleration-NrY1oVMs.js +0 -1
  534. package/dist/packem_shared/useScrollInput-Caghtn-Q.js +0 -1
  535. package/dist/packem_shared/useStderr-BDZb6InG.js +0 -1
  536. package/dist/packem_shared/useStdin-DKa4h35k.js +0 -1
  537. package/dist/packem_shared/useStdout-B-2lX4C5.js +0 -1
  538. package/dist/packem_shared/useStopwatch-DffK7iMh.js +0 -1
  539. package/dist/packem_shared/useTerminalPalette-Cv7tSduR.js +0 -1
  540. package/dist/packem_shared/useTextBuffer-DekkGLxI.js +0 -4
  541. package/dist/packem_shared/useTextSelection-CGT0GLDR.js +0 -1
  542. package/dist/packem_shared/useTimeout-7LEFYTnG.js +0 -1
  543. package/dist/packem_shared/useTimer-DyoqSyGi.js +0 -1
  544. package/dist/packem_shared/useTreeView-8UlTK6sW.js +0 -1
  545. package/dist/packem_shared/useTreeViewState-CRPCUWrb.js +0 -1
  546. package/dist/packem_shared/useWindowSize-yDZsXF8z.js +0 -1
  547. package/dist/packem_shared/utils-THUhYKG2.js +0 -1
  548. package/dist/packem_shared/waitFor-Dj5zfL5s.js +0 -4
  549. package/dist/packem_shared/wrapOrTruncateStyledLine-BZ00SM8i.js +0 -3
package/dist/ink/index.js CHANGED
@@ -1 +1 @@
1
- import{clearOsc52 as t,isOsc52Supported as o,writeOsc52 as a}from"../packem_shared/isOsc52Supported-DKK7Uee6.js";import{COLOR_BLINDNESS_COMPENSATION as s,COLOR_BLINDNESS_SIMULATION as l,IDENTITY_MATRIX as u,applyColorMatrix as p,hexToRgb as d,rgbToHex as m,transformHexColor as x}from"../packem_shared/COLOR_BLINDNESS_SIMULATION-DqErf7XX.js";import{default as n}from"../packem_shared/Accordion-BXsqchV-.js";import{default as S}from"../packem_shared/Alert-BhYVMHtR.js";import{default as T}from"../packem_shared/AnimatePresence-Eu7Z8KHc.js";import{default as h}from"../packem_shared/ApprovalPrompt-BSn0FT1g.js";import{default as B}from"../packem_shared/AreaChart-Chy-frI7.js";import{default as b}from"../packem_shared/Badge-B8WPyRsK.js";import{default as P}from"../packem_shared/BarChart-rpZtlMcF.js";import{default as y}from"../packem_shared/BigText-CRpwUzrt.js";import{default as w}from"../packem_shared/BlinkDot-BvnRuWP8.js";import{default as E}from"../packem_shared/Box-BwqSvWuq.js";import{default as F}from"../packem_shared/Breadcrumb-D0hClbRV.js";import{default as N}from"../packem_shared/Button-B89Yvbc6.js";import{default as D}from"../packem_shared/Calendar-Dmflvm2S.js";import{default as W}from"../packem_shared/Canvas-CKg6WV47.js";import{default as z}from"../packem_shared/Card-B_9fXdtU.js";import{default as K}from"../packem_shared/Checkbox-BN71eCWU.js";import{default as U}from"../packem_shared/Code-HhevcyiH.js";import{default as Q}from"../packem_shared/Collapsible-u6uf_FdV.js";import{default as Y}from"../packem_shared/CommandBlock-B-nslpCv.js";import{default as Z}from"../packem_shared/CommandPalette-CEFdaURo.js";import{default as ee}from"../packem_shared/ConfirmDialog-5Jje_Xpu.js";import{default as te}from"../packem_shared/ConfirmInput-D44Mb9oo.js";import{default as ae}from"../packem_shared/ConsoleOverlay-CM3APfgP.js";import{default as se}from"../packem_shared/ContentSwitcher-Dm5BkrCt.js";import{default as ue}from"../packem_shared/Cursor-BoLFIMol.js";import{default as de}from"../packem_shared/DatePicker-CnSrFFAE.js";import{default as xe}from"../packem_shared/DefinitionList-v8RDuF_R.js";import{default as ne}from"../packem_shared/Dialog-CTaL8pn0.js";import{default as Se}from"../packem_shared/DiffView-BUIFqUB0.js";import{default as Te}from"../packem_shared/Divider-C47bKmqu.js";import{default as he}from"../packem_shared/FilePicker-CUo7R5Qb.js";import{default as Be,FormField as Me}from"../packem_shared/FormField-af3aUpRL.js";import{default as Le}from"../packem_shared/Gauge-Dz-usH__.js";import{default as Oe}from"../packem_shared/Gradient-DYNc0GZA.js";import{default as ke}from"../packem_shared/Heading-mwEYza3Y.js";import{default as Ae}from"../packem_shared/Heatmap-ChL97U1-.js";import{default as Re}from"../packem_shared/Help-Zcelyw_U.js";import{default as He}from"../packem_shared/Histogram-FIf2F83d.js";import{default as ve}from"../packem_shared/Kbd-DpkPp4jB.js";import{E as Ve}from"../packem_shared/line-chart-DrM8PwnI.js";import{default as _e}from"../packem_shared/Link-i2o2EG4-.js";import{default as Ge}from"../packem_shared/LoadingIndicator-TC1Fjwyt.js";import{default as qe}from"../packem_shared/Markdown-R1XqK63D.js";import{default as je}from"../packem_shared/MaskedInput-J01phOZs.js";import{default as Xe}from"../packem_shared/Menu-CfrH4ymk.js";import{default as Je}from"../packem_shared/MessageBubble-BmBBU2Rm.js";import{default as $e}from"../packem_shared/ModelBadge-D3wrXncu.js";import{default as rr}from"../packem_shared/MultiSelect-Dqmn-bVo.js";import{default as or}from"../packem_shared/Newline-BSG4iUqp.js";import{default as fr}from"../packem_shared/OperationTree-DksxjMIV.js";import{default as lr}from"../packem_shared/OptionList-CNx7r9yN.js";import{default as pr}from"../packem_shared/OrderedList-BeDy035w.js";import{default as mr}from"../packem_shared/Paginator-B56s6bhS.js";import{default as ir}from"../packem_shared/Paragraph-BqJlH0R-.js";import{default as cr}from"../packem_shared/Placeholder-GMpHRGC8.js";import{default as gr}from"../packem_shared/ProgressBar-Bj3fmORR.js";import{default as Cr}from"../packem_shared/RadioGroup-Br8BeEwS.js";import{default as Ir}from"../packem_shared/ScatterPlot-OhfYco5l.js";import{C as Mr}from"../packem_shared/controlled-scroll-view-CmrAEvJk.js";import{ScrollBar as Lr}from"../packem_shared/ScrollBar-Da5Y3z7N.js";import{ScrollBarBox as Or}from"../packem_shared/ScrollBarBox-Dz6F-Eat.js";import{ScrollList as kr}from"../packem_shared/ScrollList-DiVGyEjv.js";import{ScrollView as Ar}from"../packem_shared/ScrollView-BojONotI.js";import{default as Rr}from"../packem_shared/SearchInput-BoPTRbhV.js";import{default as Hr}from"../packem_shared/SelectInput-CAJ7SCBq.js";import{default as vr}from"../packem_shared/SelectInputIndicator-N1n8ULHs.js";import{default as Vr}from"../packem_shared/SelectInputItem-BEkbmobs.js";import{default as _r}from"../packem_shared/ShimmerText-CuGQ2NDC.js";import{default as Gr}from"../packem_shared/Slider-Cg_tJpKa.js";import{default as qr}from"../packem_shared/Spacer-eT3HOrXk.js";import{default as jr}from"../packem_shared/Sparkline-T6_FPVET.js";import{default as Xr}from"../packem_shared/Spinner-B0-A50pu.js";import{default as Jr}from"../packem_shared/Static-jzLPaHJF.js";import{default as $r}from"../packem_shared/StaticRender-BgD61E7x.js";import{default as rt}from"../packem_shared/StatusLine-Ch4jjef1.js";import{default as ot}from"../packem_shared/StatusMessage-B1qfKeMM.js";import{default as ft}from"../packem_shared/Stepper-CNPAqxiU.js";import{default as lt}from"../packem_shared/Stopwatch-CAx2EWwq.js";import{default as pt}from"../packem_shared/StreamingText-BYOKSB2T.js";import{default as mt}from"../packem_shared/Switch-DzSpKYu7.js";import{default as it}from"../packem_shared/Tab-BcXzSUdj.js";import{default as ct}from"../packem_shared/Table-DJp1TLrR.js";import{default as gt}from"../packem_shared/Tabs-D68z0SOt.js";import{default as Ct}from"../packem_shared/Tag-BvLHnYRn.js";import{default as It}from"../packem_shared/Text-mTAve9R2.js";import{default as Mt}from"../packem_shared/TextInput-C_gYQlnF.js";import{default as Lt}from"../packem_shared/Textarea-C2ET_oMb.js";import{default as Ot}from"../packem_shared/Timer-CI3aQX65.js";import{default as kt}from"../packem_shared/Toast-Drvc8XfG.js";import{default as At}from"../packem_shared/Tooltip-C5UnQlLd.js";import{default as Rt}from"../packem_shared/Transform-fYmcdqRT.js";import{default as Ht}from"../packem_shared/Transition-CJDBKYUB.js";import{theme as vt}from"../packem_shared/treeViewTheme-1RIZyB4M.js";import{TreeNodeMap as Vt}from"../packem_shared/TreeNodeMap-CspqSCpb.js";import{TreeView as _t}from"../packem_shared/TreeView-DjhacGJ5.js";import{useTreeView as Gt}from"../packem_shared/useTreeView-8UlTK6sW.js";import{useTreeViewState as qt}from"../packem_shared/useTreeViewState-CRPCUWrb.js";import{default as jt}from"../packem_shared/UnorderedList-BnfqexZs.js";import{g as Xt,i as Yt}from"../packem_shared/dom-4y__5fWB.js";import{default as Zt}from"../packem_shared/useAnimation-B9we6ZzL.js";import{default as eo}from"../packem_shared/useApp-B6fvM42d.js";import{default as to}from"../packem_shared/useBoxMetrics-D5pkIr6P.js";import{default as ao}from"../packem_shared/useClipboard-CBxy0hT8.js";import{default as so}from"../packem_shared/useColorBlindness-BvWcu2Bb.js";import{default as uo}from"../packem_shared/useConsoleCapture-BxiG8iLJ.js";import{default as mo}from"../packem_shared/useCursor-CPu8T5Db.js";import{default as io}from"../packem_shared/useFocus-DSmziO_x.js";import{default as co}from"../packem_shared/useFocusManager-Uapn3LQo.js";import{default as go}from"../packem_shared/useForm-CzV-Oext.js";import{default as Co}from"../packem_shared/useHotkey-D0dGey14.js";import{default as Io}from"../packem_shared/useInput-D1_jG26Z.js";import{default as Mo}from"../packem_shared/useInterval-AobjZT3u.js";import{default as Lo}from"../packem_shared/useIsScreenReaderEnabled-DjWHh-II.js";import{default as Oo}from"../packem_shared/useKeyBindings-zabkEJQs.js";import{default as ko}from"../packem_shared/useKeyChord-CICQIxXj.js";import{default as Ao}from"../packem_shared/createLinkedScrollGroup-BMTJ7rAj.js";import{default as Ro}from"../packem_shared/usePaste-CKKB9H-Z.js";import{createFileStorage as Ho,createMemoryStorage as No,default as vo}from"../packem_shared/createMemoryStorage-QVZNXbWz.js";import{default as Vo}from"../packem_shared/useScrollAcceleration-NrY1oVMs.js";import{default as _o}from"../packem_shared/useScrollInput-Caghtn-Q.js";import{default as Go}from"../packem_shared/useStderr-BDZb6InG.js";import{default as qo}from"../packem_shared/useStdin-DKa4h35k.js";import{default as jo}from"../packem_shared/useStdout-B-2lX4C5.js";import{default as Xo}from"../packem_shared/useStopwatch-DffK7iMh.js";import{default as Jo}from"../packem_shared/useTerminalPalette-Cv7tSduR.js";import{default as $o}from"../packem_shared/useTextBuffer-DekkGLxI.js";import{default as ra}from"../packem_shared/useTextSelection-CGT0GLDR.js";import{default as oa}from"../packem_shared/useTimeout-7LEFYTnG.js";import{default as fa}from"../packem_shared/useTimer-DyoqSyGi.js";import{default as la}from"../packem_shared/useWindowSize-yDZsXF8z.js";import{IMECompositionBuffer as pa,isIMEInput as da}from"../packem_shared/IMECompositionBuffer-C89PhiOu.js";import{kittyFlags as xa,kittyModifiers as ia}from"../packem_shared/kittyFlags-C3rZLbcK.js";import{c as ca,a as Sa,b as ga,g as Ta,d as Ca,e as ha,f as Ia,h as Ba,i as Ma,j as ba,k as La,l as Pa,P as Oa,p as ya}from"../packem_shared/measure-element-DSp7YDus.js";import{c as wa,a as Aa,i as Ea,s as Ra,b as Fa,t as Ha}from"../packem_shared/measure-text-DDjHT1jD.js";import{default as va}from"../packem_shared/render-_r0K9K11.js";import{default as Va}from"../packem_shared/renderToString-DeqOWRP8.js";import{default as _a,ResizeObserverEntry as za}from"../packem_shared/ResizeObserverEntry-Dq0dk8Kq.js";import{calculateScroll as Ka,getScrollHeight as qa,getScrollLeft as Ua,getScrollTop as ja,getScrollWidth as Qa}from"../packem_shared/getScrollHeight-BTEY8ewu.js";import{Range as Ya,Selection as Ja,applySelectionToStyledLine as Za,comparePoints as $a}from"../packem_shared/comparePoints-C85EsmNz.js";import{squashTextNodesWithMap as rf}from"../packem_shared/squashTextNodesWithMap-Cpqmc45i.js";import{isTerminalPaletteQuerySupported as of,queryTerminalPalette as af}from"../packem_shared/isTerminalPaletteQuerySupported-Dn2hFAZ_.js";import{wrapOrTruncateStyledLine as sf}from"../packem_shared/wrapOrTruncateStyledLine-BZ00SM8i.js";import{default as uf}from"../packem_shared/Fullscreen-CuJ8y0s0.js";import{default as df}from"../packem_shared/MouseProvider-pjza-lpc.js";import{default as xf}from"../packem_shared/isIntersecting-B3KbKTmu.js";import{default as cf}from"../packem_shared/useMouseAction-2dRfU1vE.js";import{default as gf}from"../packem_shared/useMouseContext-C746G7kY.js";import{default as Cf}from"../packem_shared/useMousePosition-BTWfV4JK.js";import{default as If}from"../packem_shared/useOnMouseHover-D3DczIol.js";import{default as Mf}from"../packem_shared/useOnMouseState-cRK8QvzD.js";import{a as Lf}from"../packem_shared/ansi-parser-B6uXaq65.js";import{useElementDimensions as Of,useElementPosition as yf}from"../packem_shared/useElementDimensions-qJ_WXFZ9.js";import{useOnMouseClick as wf}from"../packem_shared/useOnMouseClick-nY8xLZmt.js";export{n as Accordion,S as Alert,T as AnimatePresence,h as ApprovalPrompt,B as AreaChart,b as Badge,P as BarChart,y as BigText,w as BlinkDot,E as Box,F as Breadcrumb,N as Button,s as COLOR_BLINDNESS_COMPENSATION,l as COLOR_BLINDNESS_SIMULATION,D as Calendar,W as Canvas,z as Card,K as Checkbox,U as Code,Q as Collapsible,Y as CommandBlock,Z as CommandPalette,ee as ConfirmDialog,te as ConfirmInput,ae as ConsoleOverlay,se as ContentSwitcher,Mr as ControlledScrollView,ue as Cursor,de as DatePicker,xe as DefinitionList,ne as Dialog,Se as DiffView,Te as Divider,he as FilePicker,Be as Form,Me as FormField,uf as Fullscreen,Le as Gauge,Oe as Gradient,ke as Heading,Ae as Heatmap,Re as Help,He as Histogram,u as IDENTITY_MATRIX,pa as IMECompositionBuffer,ve as Kbd,Ve as LineChart,_e as Link,Ge as LoadingIndicator,qe as Markdown,je as MaskedInput,Xe as Menu,Je as MessageBubble,$e as ModelBadge,df as MouseProvider,rr as MultiSelect,or as Newline,fr as OperationTree,lr as OptionList,pr as OrderedList,mr as Paginator,ir as Paragraph,cr as Placeholder,gr as ProgressBar,Cr as RadioGroup,Ya as Range,_a as ResizeObserver,za as ResizeObserverEntry,Ir as ScatterPlot,Lr as ScrollBar,Or as ScrollBarBox,kr as ScrollList,Ar as ScrollView,Rr as SearchInput,Hr as SelectInput,vr as SelectInputIndicator,Vr as SelectInputItem,Ja as Selection,_r as ShimmerText,Gr as Slider,qr as Spacer,jr as Sparkline,Xr as Spinner,Jr as Static,$r as StaticRender,rt as StatusLine,ot as StatusMessage,ft as Stepper,lt as Stopwatch,pt as StreamingText,mt as Switch,it as Tab,ct as Table,gt as Tabs,Ct as Tag,It as Text,Mt as TextInput,Lt as Textarea,Ot as Timer,kt as Toast,At as Tooltip,Rt as Transform,Ht as Transition,Vt as TreeNodeMap,_t as TreeView,jt as UnorderedList,p as applyColorMatrix,Za as applySelectionToStyledLine,Ka as calculateScroll,ca as calculateScrollbarLayout,Sa as calculateScrollbarThumb,t as clearOsc52,wa as clearStringWidthCache,Aa as clearStyledLineCache,ga as collectSortedFragments,$a as comparePoints,Ho as createFileStorage,Ao as createLinkedScrollGroup,No as createMemoryStorage,Ta as getAddedScrollHeight,Ca as getBoundingBox,ha as getHorizontalScrollbarBoundingBox,Ia as getInnerHeight,Ba as getInnerWidth,Xt as getPathToRoot,Ma as getRelativeLeft,ba as getRelativeTop,qa as getScrollHeight,Ua as getScrollLeft,ja as getScrollTop,Qa as getScrollWidth,La as getText,Pa as getVerticalScrollbarBoundingBox,d as hexToRgb,Ea as inkCharacterWidth,da as isIMEInput,xf as isIntersecting,Yt as isNodeSelectable,o as isOsc52Supported,of as isTerminalPaletteQuerySupported,xa as kittyFlags,ia as kittyModifiers,Oa as measureElement,Lf as parseSgrMouse,ya as processLayout,af as queryTerminalPalette,va as render,Va as renderToString,m as rgbToHex,Ra as setEnableStyledLineCache,Fa as setStringWidthFunction,rf as squashTextNodesWithMap,Ha as toStyledLine,x as transformHexColor,vt as treeViewTheme,Zt as useAnimation,eo as useApp,to as useBoxMetrics,ao as useClipboard,so as useColorBlindness,uo as useConsoleCapture,mo as useCursor,Of as useElementDimensions,yf as useElementPosition,io as useFocus,co as useFocusManager,go as useForm,Co as useHotkey,Io as useInput,Mo as useInterval,Lo as useIsScreenReaderEnabled,Oo as useKeyBindings,ko as useKeyChord,cf as useMouseAction,gf as useMouseContext,Cf as useMousePosition,wf as useOnMouseClick,If as useOnMouseHover,Mf as useOnMouseState,Ro as usePaste,vo as usePersistentState,Vo as useScrollAcceleration,_o as useScrollInput,Go as useStderr,qo as useStdin,jo as useStdout,Xo as useStopwatch,Jo as useTerminalPalette,$o as useTextBuffer,ra as useTextSelection,oa as useTimeout,fa as useTimer,Gt as useTreeView,qt as useTreeViewState,la as useWindowSize,sf as wrapOrTruncateStyledLine,a as writeOsc52};
1
+ import{clearOsc52 as o,isOsc52Supported as r,writeOsc52 as a}from"../packem_shared/clearOsc52-BUpnQOav.js";import{COLOR_BLINDNESS_COMPENSATION as l,COLOR_BLINDNESS_SIMULATION as i,IDENTITY_MATRIX as n,applyColorMatrix as u,hexToRgb as f,rgbToHex as p,transformHexColor as c}from"../packem_shared/COLOR_BLINDNESS_COMPENSATION-Ilnoyeqc.js";import{g as d,i as x}from"../packem_shared/dom-rphpG0kf.js";import{IMECompositionBuffer as S,isIMEInput as h}from"../packem_shared/IMECompositionBuffer-VhC9HRCv.js";import{kittyFlags as M,kittyModifiers as O}from"../packem_shared/kittyFlags-g8ALyoCU.js";import{processLayout as I}from"../packem_shared/processLayout-I83k6vXE.js";import{c as b,a as C,b as E,g as R,d as N,e as B,f as P,h as H,i as v,j as W,k,l as A,R as _}from"../packem_shared/measure-element-D4M9iSYp.js";import{c as F,a as z,i as q,s as w,b as j,t as Q}from"../packem_shared/measure-text-B7juNq4Y.js";import{default as V}from"../packem_shared/render-CuQecTAs.js";import{default as Y}from"../packem_shared/renderToString-DwXFY8Qh.js";import{default as J,ResizeObserverEntry as K}from"../packem_shared/ResizeObserver-BI9bDy-j.js";import{calculateScroll as $,getScrollHeight as ee,getScrollLeft as te,getScrollTop as oe,getScrollWidth as re}from"../packem_shared/calculateScroll-D4Y_JR4H.js";import{Range as se,Selection as le,applySelectionToStyledLine as ie,comparePoints as ne}from"../packem_shared/Range-BsVYNWtg.js";import{squashTextNodesWithMap as fe}from"../packem_shared/squashTextNodesWithMap-BmUSBPfc.js";import{isTerminalPaletteQuerySupported as ce,queryTerminalPalette as me}from"../packem_shared/isTerminalPaletteQuerySupported-BYzmqq9-.js";import{wrapOrTruncateStyledLine as xe}from"../packem_shared/wrapOrTruncateStyledLine-46W8bTtv.js";import{default as Se}from"../packem_shared/Fullscreen-BRhuBLBh.js";import{default as Te}from"../packem_shared/MouseProvider-DUqQ3Eaa.js";import{default as Oe}from"../packem_shared/isIntersecting-Bo2npvMR.js";import{default as Ie}from"./mouse/use-mouse-action.js";import{default as be}from"./mouse/use-mouse.js";import{default as Ee}from"./mouse/use-mouse-position.js";import{default as Ne}from"./mouse/use-on-mouse-hover.js";import{default as Pe}from"./mouse/use-on-mouse-state.js";import{d as ve}from"../packem_shared/ansi-parser-DlgLtOYO.js";import{useElementDimensions as ke,useElementPosition as Ae}from"./mouse/use-element-position.js";import{useOnMouseClick as De}from"./mouse/use-on-mouse-click.js";export{l as COLOR_BLINDNESS_COMPENSATION,i as COLOR_BLINDNESS_SIMULATION,Se as Fullscreen,n as IDENTITY_MATRIX,S as IMECompositionBuffer,Te as MouseProvider,se as Range,J as ResizeObserver,K as ResizeObserverEntry,le as Selection,u as applyColorMatrix,ie as applySelectionToStyledLine,$ as calculateScroll,b as calculateScrollbarLayout,C as calculateScrollbarThumb,o as clearOsc52,F as clearStringWidthCache,z as clearStyledLineCache,E as collectSortedFragments,ne as comparePoints,R as getAddedScrollHeight,N as getBoundingBox,B as getHorizontalScrollbarBoundingBox,P as getInnerHeight,H as getInnerWidth,d as getPathToRoot,v as getRelativeLeft,W as getRelativeTop,ee as getScrollHeight,te as getScrollLeft,oe as getScrollTop,re as getScrollWidth,k as getText,A as getVerticalScrollbarBoundingBox,f as hexToRgb,q as inkCharacterWidth,h as isIMEInput,Oe as isIntersecting,x as isNodeSelectable,r as isOsc52Supported,ce as isTerminalPaletteQuerySupported,M as kittyFlags,O as kittyModifiers,_ as measureElement,ve as parseSgrMouse,I as processLayout,me as queryTerminalPalette,V as render,Y as renderToString,p as rgbToHex,w as setEnableStyledLineCache,j as setStringWidthFunction,fe as squashTextNodesWithMap,Q as toStyledLine,c as transformHexColor,ke as useElementDimensions,Ae as useElementPosition,Ie as useMouseAction,be as useMouseContext,Ee as useMousePosition,De as useOnMouseClick,Ne as useOnMouseHover,Pe as useOnMouseState,xe as wrapOrTruncateStyledLine,a as writeOsc52};
@@ -0,0 +1,31 @@
1
+ import { RefObject } from 'react';
2
+ import { D as DOMElement } from "../../packem_shared/dom.d-B4kXbaVY.js";
3
+ import 'yoga-layout';
4
+ import "../../packem_shared/cursor-helpers.d-BONB9tky.js";
5
+ import '@visulima/colorize';
6
+ import 'cli-boxes';
7
+ import "../../packem_shared/styles.d-cMo36xQz.js";
8
+ import 'type-fest';
9
+ declare const getElementPosition: (node: DOMElement | null) => {
10
+ left: number;
11
+ top: number;
12
+ } | undefined;
13
+ declare const getElementDimensions: (node: DOMElement | null) => {
14
+ height: number;
15
+ width: number;
16
+ } | undefined;
17
+ /**
18
+ * Stateful hook to provide the absolute position of the referenced element.
19
+ */
20
+ declare const useElementPosition: (ref: RefObject<DOMElement | null>, deps?: unknown[]) => {
21
+ left: number;
22
+ top: number;
23
+ };
24
+ /**
25
+ * Stateful hook to provide the dimensions of the referenced element.
26
+ */
27
+ declare const useElementDimensions: (ref: RefObject<DOMElement | null>, deps?: unknown[]) => {
28
+ height: number;
29
+ width: number;
30
+ };
31
+ export { getElementDimensions, getElementPosition, useElementDimensions, useElementPosition };
@@ -0,0 +1 @@
1
+ import{useState as i,useEffect as r}from"react";const u=e=>{let t=e,n=1,s=1;for(;t;){if(!t.yogaNode)return{left:n,top:s};const o=t.yogaNode.getComputedLayout();n+=o.left,s+=o.top,t=t.parentNode}return{left:n,top:s}},f=e=>{if(e)return u(e)},a=e=>{const t=e?.yogaNode?.getComputedLayout();if(t)return{height:t.height,width:t.width}},c=(e,t=[])=>{const[n,s]=i({left:0,top:0});return r(()=>{const o=f(e.current);o&&s(o)},t),n},d=(e,t=[])=>{const[n,s]=i({height:0,width:0});return r(()=>{const o=a(e.current);o&&s(o)},t),n};export{a as getElementDimensions,f as getElementPosition,d as useElementDimensions,c as useElementPosition};
@@ -0,0 +1,5 @@
1
+ import { a as MouseClickAction, b as MouseDragAction, c as MouseScrollAction } from "../../packem_shared/mouse-context.d-BfL9xGk_.js";
2
+ import 'node:events';
3
+ import 'react';
4
+ declare const useMouseAction: () => MouseClickAction | MouseDragAction | MouseScrollAction | null;
5
+ export { useMouseAction as default };
@@ -0,0 +1 @@
1
+ import{useState as l,useEffect as i}from"react";import v from"./use-mouse.js";const m=()=>{const e=v(),[f,o]=l(null);return i(()=>{const n=(c,t)=>{o(t)},s=(c,t)=>{o(t)},r=(c,t)=>{o(t)};return e.events.on("click",n),e.events.on("scroll",s),e.events.on("drag",r),()=>{e.events.off("click",n),e.events.off("scroll",s),e.events.off("drag",r)}},[e.events]),f};export{m as default};
@@ -0,0 +1,5 @@
1
+ import { d as MousePosition } from "../../packem_shared/mouse-context.d-BfL9xGk_.js";
2
+ import 'node:events';
3
+ import 'react';
4
+ declare const useMousePosition: () => MousePosition;
5
+ export { useMousePosition as default };
@@ -0,0 +1 @@
1
+ import{useState as i,useEffect as r}from"react";import p from"./use-mouse.js";const x=()=>{const t=p(),[n,s]=i({x:t.position.x,y:t.position.y});return r(()=>{const o=e=>{s({x:e.x,y:e.y})};return t.events.on("position",o),()=>{t.events.off("position",o)}},[t.events]),n};export{x as default};
@@ -0,0 +1,5 @@
1
+ import { M as MouseContextShape } from "../../packem_shared/mouse-context.d-BfL9xGk_.js";
2
+ import 'node:events';
3
+ import 'react';
4
+ declare const useMouseContext: () => MouseContextShape;
5
+ export { useMouseContext as default };
@@ -0,0 +1 @@
1
+ import{useContext as e}from"react";import{o as r}from"../../packem_shared/mouse-context-DaARgUu1.js";const s=()=>{const o=e(r);if(!o)throw new Error("useMouseContext must only be used within children of <MouseProvider/>");return o};export{s as default};
@@ -0,0 +1,16 @@
1
+ import { RefObject } from 'react';
2
+ import { D as DOMElement } from "../../packem_shared/dom.d-B4kXbaVY.js";
3
+ import { e as MouseButton } from "../../packem_shared/mouse-context.d-BfL9xGk_.js";
4
+ import 'yoga-layout';
5
+ import "../../packem_shared/cursor-helpers.d-BONB9tky.js";
6
+ import '@visulima/colorize';
7
+ import 'cli-boxes';
8
+ import "../../packem_shared/styles.d-cMo36xQz.js";
9
+ import 'type-fest';
10
+ import 'node:events';
11
+ type UseOnMouseClickOptions = {
12
+ /** Filter to only respond to a specific mouse button. Defaults to all buttons. */
13
+ button?: MouseButton;
14
+ };
15
+ declare const useOnMouseClick: (ref: RefObject<DOMElement | null>, onChange: (clicking: boolean, button?: MouseButton) => void, options?: UseOnMouseClickOptions) => void;
16
+ export { type UseOnMouseClickOptions, useOnMouseClick };
@@ -0,0 +1 @@
1
+ import{useCallback as l,useEffect as p}from"react";import a from"../../packem_shared/isIntersecting-Bo2npvMR.js";import{getElementPosition as b,getElementDimensions as k}from"./use-element-position.js";import C from"./use-mouse.js";const D=(e,r,n)=>{const s=C(),o=l((t,u,c)=>{if(n?.button&&c!==n.button)return;const i=b(e.current),m=k(e.current);if(!i||!m)return;const f={...i,...m};r(a({element:f,mouse:t})&&u==="press",c)},[e,r,n?.button]);p(()=>{const{events:t}=s;return t.on("click",o),()=>{t.off("click",o)}},[s.events,o])};export{D as useOnMouseClick};
@@ -0,0 +1,10 @@
1
+ import { RefObject } from 'react';
2
+ import { D as DOMElement } from "../../packem_shared/dom.d-B4kXbaVY.js";
3
+ import 'yoga-layout';
4
+ import "../../packem_shared/cursor-helpers.d-BONB9tky.js";
5
+ import '@visulima/colorize';
6
+ import 'cli-boxes';
7
+ import "../../packem_shared/styles.d-cMo36xQz.js";
8
+ import 'type-fest';
9
+ declare const useOnMouseHover: (ref: RefObject<DOMElement | null>, onChange: (event: boolean) => void) => void;
10
+ export { useOnMouseHover as default };
@@ -0,0 +1 @@
1
+ import{useCallback as f,useEffect as c}from"react";import u from"../../packem_shared/isIntersecting-Bo2npvMR.js";import{getElementPosition as l,getElementDimensions as p}from"./use-element-position.js";import a from"./use-mouse.js";const d=(e,n)=>{const r=a(),o=f(t=>{const s=l(e.current),m=p(e.current);if(!s||!m)return;const i={...s,...m};n(u({element:i,mouse:t}))},[e,n]);c(()=>{const{events:t}=r;return t.on("position",o),()=>{t.off("position",o)}},[r.events,o])};export{d as default};
@@ -0,0 +1,13 @@
1
+ import { RefObject } from 'react';
2
+ import { D as DOMElement } from "../../packem_shared/dom.d-B4kXbaVY.js";
3
+ import 'yoga-layout';
4
+ import "../../packem_shared/cursor-helpers.d-BONB9tky.js";
5
+ import '@visulima/colorize';
6
+ import 'cli-boxes';
7
+ import "../../packem_shared/styles.d-cMo36xQz.js";
8
+ import 'type-fest';
9
+ declare const useOnMouseState: (ref: RefObject<DOMElement | null>) => {
10
+ clicking: boolean;
11
+ hovering: boolean;
12
+ };
13
+ export { useOnMouseState as default };
@@ -0,0 +1 @@
1
+ import{useState as r}from"react";import{useOnMouseClick as m}from"./use-on-mouse-click.js";import n from"./use-on-mouse-hover.js";const l=o=>{const[t,e]=r(!1),[s,i]=r(!1);return m(o,i),n(o,e),{clicking:s,hovering:t}};export{l as default};
@@ -1,4 +1,4 @@
1
- var a=Object.defineProperty;var r=(t,e)=>a(t,"name",{value:e,configurable:!0});import n from"react-devtools-core";import i from"ws";var s=Object.defineProperty,l=r((t,e)=>s(t,"name",{value:e,configurable:!0}),"n");const c=l(async()=>new Promise(t=>{const e=new i("ws://localhost:8097"),o=setTimeout(()=>{e.terminate(),t(!1)},2e3);o.unref(),e.on("open",()=>{clearTimeout(o),e.terminate(),t(!0)}),e.on("error",()=>{clearTimeout(o),e.terminate(),t(!1)})}),"isDevToolsReachable");await c()?(n.initialize(),n.connectToDevTools()):console.warn(`DEV is set to true, but the React DevTools server is not running. Start it with:
1
+ import n from"react-devtools-core";import r from"ws";const i=async()=>new Promise(t=>{const e=new r("ws://localhost:8097"),o=setTimeout(()=>{e.terminate(),t(!1)},2e3);o.unref(),e.on("open",()=>{clearTimeout(o),e.terminate(),t(!0)}),e.on("error",()=>{clearTimeout(o),e.terminate(),t(!1)})});await i()?(n.initialize(),n.connectToDevTools()):console.warn(`DEV is set to true, but the React DevTools server is not running. Start it with:
2
2
 
3
3
  $ npx react-devtools
4
4
  `);
@@ -0,0 +1 @@
1
+ const c={achromatopsia:[[.299,.587,.114],[.299,.587,.114],[.299,.587,.114]],deuteranopia:[[.625,.375,0],[.7,.3,0],[0,.3,.7]],protanopia:[[.567,.433,0],[.558,.442,0],[0,.242,.758]],tritanopia:[[.95,.05,0],[0,.433,.567],[0,.475,.525]]},d={deuteranopia:[[1,.7,0],[0,1,0],[0,.7,1]],protanopia:[[1,0,0],[.7,1,0],[.7,0,1]],tritanopia:[[1,0,.7],[0,1,.7],[0,0,1]]},S=[[1,0,0],[0,1,0],[0,0,1]],n=r=>Math.max(0,Math.min(255,Math.round(r))),i=(r,a,t,o)=>[n(o[0][0]*r+o[0][1]*a+o[0][2]*t),n(o[1][0]*r+o[1][1]*a+o[1][2]*t),n(o[2][0]*r+o[2][1]*a+o[2][2]*t)],s=/^#?(?<r>[\da-f]{2})(?<g>[\da-f]{2})(?<b>[\da-f]{2})$/i,u=/^#?(?<r>[\da-f])(?<g>[\da-f])(?<b>[\da-f])$/i,I=r=>{const a=s.exec(r);if(a)return[Number.parseInt(a[1],16),Number.parseInt(a[2],16),Number.parseInt(a[3],16)];const t=u.exec(r);return t?[Number.parseInt(t[1]+t[1],16),Number.parseInt(t[2]+t[2],16),Number.parseInt(t[3]+t[3],16)]:null},N=(r,a,t)=>`#${n(r).toString(16).padStart(2,"0")}${n(a).toString(16).padStart(2,"0")}${n(t).toString(16).padStart(2,"0")}`,b=(r,a)=>{const t=I(r);if(!t)return r;const[o,p,e]=i(t[0],t[1],t[2],a);return N(o,p,e)};export{d as COLOR_BLINDNESS_COMPENSATION,c as COLOR_BLINDNESS_SIMULATION,S as IDENTITY_MATRIX,i as applyColorMatrix,I as hexToRgb,N as rgbToHex,b as transformHexColor};
@@ -0,0 +1 @@
1
+ import"react/jsx-runtime";import"react";import"./measure-element-D4M9iSYp.js";import"../components/box.js";import{C as l}from"./controlled-scroll-view-BVg7ywNW.js";export{l as ControlledScrollView};
@@ -0,0 +1 @@
1
+ import{jsxs as l,jsx as u}from"react/jsx-runtime";import{useState as p,useRef as s,useEffect as h}from"react";import{useWindowSize as x,useTuiContext as w}from"./TuiContext-BNmP0lMY.js";import{_Box as i,_Spacer as S,_Text as D}from"./render-DFZ8NHlG.js";function T(){const{app:r}=w(),[t,c]=p(0),e=s(0),n=s(Date.now()),o=s(null);return h(()=>{const m=()=>{o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{c(0),e.current=0,n.current=Date.now()},2e3),e.current++;const d=Date.now(),f=d-n.current;f>=500&&(c(Math.round(e.current/f*1e3)),e.current=0,n.current=d)},a=r.onBeforeFlush(()=>{m()});return()=>{a(),o.current&&clearTimeout(o.current)}},[r]),t}const b=({fps:r})=>{const t=r===0?"--":String(r);return u(i,{borderColor:"gray",borderStyle:"round",paddingX:1,children:l(D,{dim:!0,children:[t," ","updates/sec"]})})},B=({children:r,enabled:t=!0})=>{const c=T(),{columns:e,rows:n}=x();return l(i,{flexDirection:"column",height:n,width:e,children:[u(i,{flexGrow:1,children:r}),t&&l(i,{flexDirection:"row",flexShrink:0,children:[u(S,{}),u(b,{fps:c})]})]})};export{B as DevTools};
@@ -0,0 +1 @@
1
+ import{createRequire as A}from"node:module";import{jsxs as d,jsx as y}from"react/jsx-runtime";import{useState as g,useRef as G,useEffect as N,useCallback as $}from"react";import W from"../ink/hooks/use-input.js";import{Box as E}from"../components/box.js";import{Spinner as I}from"../components/spinner.js";import{Text as u}from"../components/text.js";const H=A(import.meta.url),w=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,U=e=>{if(typeof w<"u"&&w.versions&&w.versions.node){const[i,a]=w.versions.node.split(".").map(Number);if(i>22||i===22&&a>=3||i===20&&a>=16)return w.getBuiltinModule(e)}return H(e)},{readdir:K,stat:J}=U("node:fs/promises"),{resolve:L,join:R,dirname:O,extname:Q}=U("node:path");function V(e){const i=a=>`${a&4?"r":"-"}${a&2?"w":"-"}${a&1?"x":"-"}`;return`${i(e>>6&7)}${i(e>>3&7)}${i(e&7)}`}function X(e,i){if(!(i.showHidden??!1)&&e.isHidden||!(i.showDirectories??!0)&&e.isDirectory||!(i.showFiles??!0)&&!e.isDirectory)return!1;if(i.extensions&&i.extensions.length>0&&!e.isDirectory){const a=Q(e.name);if(!i.extensions.includes(a))return!1}return!0}function Y(e){const{filter:i,initialPath:a}=e,[h,D]=g(()=>L(a)),[C,l]=g([]),[b,x]=g(!0),[j,v]=g(),[P,o]=g(0),M=G(i);M.current=i,N(()=>{let s=!1;return(async()=>{x(!0),v(void 0);try{const n=await K(h,{withFileTypes:!0}),_=await Promise.all(n.map(async r=>{try{return await J(R(h,r.name))}catch{return}})),T=n.map((r,t)=>{const F=R(h,r.name),S=r.isDirectory(),k=r.name.startsWith("."),B=_[t],q=B?.size??0,z=B?V(B.mode):"---------";return{isDirectory:S,isHidden:k,name:r.name,path:F,permissions:z,size:q}});if(s)return;const c=T.filter(r=>X(r,M.current));c.sort((r,t)=>r.isDirectory!==t.isDirectory?r.isDirectory?-1:1:r.name.localeCompare(t.name,void 0,{sensitivity:"base"})),l(c)}catch(n){s||(v(n instanceof Error?n.message:String(n)),l([]))}finally{s||x(!1)}})().catch(()=>{}),()=>{s=!0}},[h,P]);const m=$(s=>{D(L(s))},[]),f=$(()=>{D(s=>{const n=O(s);return n===s?s:n})},[]),p=$(()=>{o(s=>s+1)},[]);return{currentPath:h,entries:C,error:j,goUp:f,isLoading:b,navigateTo:m,refresh:p}}function Z(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}K`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)}M`:`${(e/(1024*1024*1024)).toFixed(1)}G`}const ee={},re=()=>process.cwd(),le=({accentColor:e="cyan",directoryColor:i="blue",fileColor:a="white",filter:h=ee,initialPath:D,isFocused:C=!0,limit:l=10,onCancel:b,onSelect:x,showPermissions:j=!1,showSize:v=!1})=>{const P=D??re(),o=Y({filter:h,initialPath:P}),[M,m]=g(0),f=Math.max(0,o.entries.length-1),p=Math.min(M,f);W($((c,r)=>{if(r.upArrow)m(t=>Math.max(0,t-1));else if(r.downArrow)m(t=>Math.min(f,t+1));else if(r.return){const t=o.entries[p];t&&(t.isDirectory?(o.navigateTo(t.path),m(0)):x?.(t))}else r.backspace||r.leftArrow?(o.goUp(),m(0)):r.escape?b?.():c==="."?o.refresh():r.pageUp?m(t=>Math.max(0,t-l)):r.pageDown?m(t=>Math.min(f,t+l)):r.home?m(0):r.end&&m(f)},[f,p,o,l,x,b]),{isActive:C});const s=Math.floor(l/2);let n=Math.max(0,p-s);const _=Math.min(o.entries.length,n+l);n=Math.max(0,_-l);const T=o.entries.slice(n,_);return d(E,{flexDirection:"column",children:[y(u,{bold:!0,dimColor:!0,children:o.currentPath}),o.isLoading&&d(E,{children:[y(I,{}),y(u,{children:" Loading..."})]}),o.error&&d(u,{color:"red",children:["Error:",o.error]}),!o.isLoading&&!o.error&&o.entries.length===0&&y(u,{dimColor:!0,children:"(empty directory)"}),T.map((c,r)=>{const t=n+r===p,F=c.isDirectory?"📁 ":"📄 ",S=c.isDirectory?i:a;return d(E,{children:[y(u,{color:t?e:void 0,children:t?"▸ ":" "}),y(u,{children:F}),d(u,{bold:c.isDirectory,color:t?e:S,children:[c.name,c.isDirectory?"/":""]}),v&&!c.isDirectory&&d(u,{dimColor:!0,children:[" ",Z(c.size)]}),j&&d(u,{dimColor:!0,children:[" ",c.permissions]})]},c.name)}),o.entries.length>l&&d(u,{dimColor:!0,children:[p+1,"/",o.entries.length]})]})};export{le as default};
@@ -0,0 +1 @@
1
+ import E,{createContext as R,useRef as S,useState as I,useCallback as s,useMemo as P,useContext as C,useEffect as p}from"react";const m=R({activate(){},activeId:void 0,add(){},deactivate(){},disableFocus(){},enableFocus(){},focus(){},focusNext(){},focusPrevious(){},remove(){}});m.displayName="TuiFocusContext";const y=({children:u})=>{const i=S([]),[a,o]=I(void 0),[n,v]=I(!0),f=s((t,e)=>{if(i.current.some(r=>r.id===t))return;const d={autoFocus:e.autoFocus,id:t,isActive:!0};i.current=[...i.current,d],o(r=>e.autoFocus&&r===void 0||i.current.filter(M=>M.isActive).length===1&&r===void 0?t:r)},[]),l=s(t=>{i.current=i.current.filter(e=>e.id!==t),o(e=>e===t?void 0:e)},[]),F=s(t=>{i.current=i.current.map(e=>e.id===t?{...e,isActive:!0}:e)},[]),c=s(t=>{i.current=i.current.map(e=>e.id===t?{...e,isActive:!1}:e),o(e=>e===t?void 0:e)},[]),x=s(()=>v(!0),[]),b=s(()=>{v(!1),o(void 0)},[]),g=s(()=>{if(!n)return;const t=i.current.filter(e=>e.isActive);t.length!==0&&o(e=>{if(e===void 0)return t[0]?.id;const d=t.findIndex(r=>r.id===e);return t[(d+1)%t.length]?.id??t[0]?.id})},[n]),h=s(()=>{if(!n)return;const t=i.current.filter(e=>e.isActive);t.length!==0&&o(e=>{if(e===void 0)return t.at(-1)?.id;const d=t.findIndex(r=>r.id===e);return t[(d-1+t.length)%t.length]?.id??t.at(-1)?.id})},[n]),A=s(t=>{n&&i.current.some(e=>e.id===t&&e.isActive)&&o(t)},[n]),N=P(()=>({activate:F,activeId:a,add:f,deactivate:c,disableFocus:b,enableFocus:x,focus:A,focusNext:g,focusPrevious:h,remove:l}),[a,f,l,F,c,x,b,g,h,A]);return E.createElement(m.Provider,{value:N},u)},T=({autoFocus:u=!1,id:i,isActive:a=!0}={})=>{const{activate:o,activeId:n,add:v,deactivate:f,focus:l,remove:F}=C(m),c=P(()=>i??Math.random().toString(36).slice(2,7),[i]);return p(()=>(v(c,{autoFocus:u}),()=>{F(c)}),[c,u]),p(()=>{a?o(c):f(c)},[a,c]),{focus:l,isFocused:!!c&&n===c}},$=()=>{const u=C(m);return{activeId:u.activeId,disableFocus:u.disableFocus,enableFocus:u.enableFocus,focus:u.focus,focusNext:u.focusNext,focusPrevious:u.focusPrevious}};export{m as FocusContext,y as FocusProvider,T as useFocus,$ as useFocusManager};
@@ -0,0 +1 @@
1
+ import{jsx as m}from"react/jsx-runtime";import"react";import{Box as i}from"../components/box.js";import e from"../ink/hooks/use-window-size.js";const h=({children:r})=>{const{columns:o,rows:t}=e();return m(i,{flexGrow:1,height:t,width:o,children:r})};export{h as default};
@@ -0,0 +1 @@
1
+ const e=s=>{if(s.length===0)return!1;for(const t of s){const i=t.codePointAt(0)??0;return!(i<=127||i<=255)}return!1};class o{buffer="";timer;onFlush;timeout;constructor({onFlush:t,timeout:i}){this.onFlush=t,this.timeout=i}add(t){this.buffer+=t,this.timer!==void 0&&clearTimeout(this.timer),this.timer=setTimeout(()=>{this.flush()},this.timeout)}flush(){if(this.timer!==void 0&&(clearTimeout(this.timer),this.timer=void 0),this.buffer.length>0){const t=this.buffer;this.buffer="",this.onFlush(t)}}destroy(){this.timer!==void 0&&(clearTimeout(this.timer),this.timer=void 0),this.buffer=""}}export{o as IMECompositionBuffer,e as isIMEInput};
@@ -0,0 +1,2 @@
1
+ import{EventEmitter as l}from"tseep";class B extends l{constructor(t){super(),this.stdin=t}stdin;_boundHandleData=null;_pasteBuffer=null;start(){typeof this.stdin.setRawMode=="function"&&this.stdin.setRawMode(!0),this.stdin.resume(),this.stdin.setEncoding("utf8"),this._boundHandleData=this.handleData.bind(this),this.stdin.on("data",this._boundHandleData)}stop(){typeof this.stdin.setRawMode=="function"&&this.stdin.setRawMode(!1),this.stdin.pause(),this._boundHandleData&&(this.stdin.removeListener("data",this._boundHandleData),this._boundHandleData=null)}handleData(t){if(t===""){this.emit("exit");return}if(t.includes("\x1B[200~")||this._pasteBuffer!==null){if(this._pasteBuffer===null?this._pasteBuffer=t.replace("\x1B[200~",""):this._pasteBuffer+=t,this._pasteBuffer.includes("\x1B[201~")){const e=this._pasteBuffer.replace("\x1B[201~","");this._pasteBuffer=null,this.emit("paste",e),this.listenerCount("paste")===0&&this.emit("data",e)}return}if(t.length===1){const e=t.charCodeAt(0);if(e>=1&&e<=26&&e!==3&&e!==9&&e!==10&&e!==13){const s=String.fromCharCode(e+96);this.emit("ctrl",s),this.emit("data",t,{ctrl:!0});return}}if(t==="\x1B[A"){this.emit("keydown","up");return}if(t==="\x1B[B"){this.emit("keydown","down");return}if(t==="\x1B[C"){this.emit("keydown","right");return}if(t==="\x1B[D"){this.emit("keydown","left");return}if(t===" "){this.emit("keydown","tab");return}if(t==="\x1B[Z"){this.emit("keydown","shift-tab");return}if(t==="\x1B"){this.emit("keydown","escape");return}if(t==="\r"||t===`
2
+ `){this.emit("keydown","enter");return}if(t===""){this.emit("keydown","backspace");return}if(t==="\x1B[3~"){this.emit("keydown","delete");return}if(t==="\x1B[5~"){this.emit("keydown","pageUp");return}if(t==="\x1B[6~"){this.emit("keydown","pageDown");return}if(t==="\x1B[H"||t==="\x1B[1~"){this.emit("keydown","home");return}if(t==="\x1B[F"||t==="\x1B[4~"){this.emit("keydown","end");return}if(t.length===2&&t[0]==="\x1B"){this.emit("meta",t[1]),this.emit("data",t,{meta:!0});return}if(t.startsWith("\x1B[<")){const e=t.match(/\u001B\[<(\d+);(\d+);(\d+)(M)/i);if(e){const s=Number.parseInt(e[1]),a=Number.parseInt(e[2])-1,d=Number.parseInt(e[3])-1,r=e[4]==="m",h=(s&4)!==0,u=(s&8)!==0,o=(s&16)!==0,n=s&-29;let i=null;if(n===0&&!r?i="left":n===1&&!r?i="middle":n===2&&!r?i="right":n===64?i="scrollUp":n===65&&(i="scrollDown"),i){const f={button:i,ctrl:o,meta:u,shift:h,x:a,y:d};this.emit("mouse",f),i==="left"&&this.emit("click",{x:a,y:d})}}return}this.emit("data",t)}}export{B as InputParser};
@@ -0,0 +1 @@
1
+ const a={backspace:"",ctrlC:"",delete:"\x1B[3~",down:"\x1B[B",end:"\x1B[F",escape:"\x1B",home:"\x1B[H",left:"\x1B[D",pageDown:"\x1B[6~",pageUp:"\x1B[5~",return:"\r",right:"\x1B[C",space:" ",tab:" ",up:"\x1B[A"},c=e=>({backspace:()=>{e(a.backspace)},delete:()=>{e(a.delete)},down:()=>{e(a.down)},end:()=>{e(a.end)},enter:()=>{e(a.return)},escape:()=>{e(a.escape)},home:()=>{e(a.home)},left:()=>{e(a.left)},pageDown:()=>{e(a.pageDown)},pageUp:()=>{e(a.pageUp)},press(p){e(p)},raw:e,right:()=>{e(a.right)},space:()=>{e(a.space)},tab:()=>{e(a.tab)},type(p){for(const t of p)e(t)},up:()=>{e(a.up)}});export{a as KEY,c as createKeySender};
@@ -0,0 +1 @@
1
+ import i from"yoga-layout";import{m as l}from"./text-width-e49vlbQH.js";const n=new Map;class N{yogaNode;children=[];parent=null;_destroyed=!1;_hidden=!1;transform;_text;fg=255;bg=255;styles=0;_style;set text(t){this._text=t,t===void 0?this.yogaNode.unsetMeasureFunc():this.yogaNode.setMeasureFunc((e,o,s,d)=>{if(t.length===0)return{height:0,width:0};const a=l(t,Number.MAX_SAFE_INTEGER);let h=a.maxLineWidth;o===i.MEASURE_MODE_EXACTLY?h=Math.max(0,Math.floor(e)):o===i.MEASURE_MODE_AT_MOST&&(h=Math.min(a.maxLineWidth,Math.max(0,Math.floor(e))));let r=a.wrappedRows;return h>0&&(r=l(t,h).wrappedRows),d===i.MEASURE_MODE_EXACTLY?r=Math.max(0,Math.floor(s)):d===i.MEASURE_MODE_AT_MOST&&(r=Math.min(r,Math.max(0,Math.floor(s)))),{height:r,width:h}})}get text(){return this._text}constructor(){this.yogaNode=i.Node.create(),this.yogaNode.setFlexDirection(i.FLEX_DIRECTION_COLUMN)}insertChild(t,e){const o=n.get(t.yogaNode);o&&o.removeChild(t);const s=t.yogaNode.getParent();s&&s.removeChild(t.yogaNode);const d=this.yogaNode.getChildCount(),a=Math.min(e,d);try{this.yogaNode.insertChild(t.yogaNode,a)}catch{return}t.parent=this,this.children.splice(a,0,t),n.set(t.yogaNode,this)}remove(){this.parent&&this.parent.removeChild(this)}removeChild(t){const e=this.children.indexOf(t);if(e!==-1){this.children.splice(e,1),t.parent=null,n.delete(t.yogaNode);const o=t.yogaNode.getParent();o&&o.removeChild(t.yogaNode)}}destroy(){if(this._destroyed)return;this._destroyed=!0;for(const e of this.children)e.parent===this&&(e.parent=null);this.children=[],n.delete(this.yogaNode);const t=this.yogaNode.getParent();t&&t.removeChild(this.yogaNode),this.yogaNode.free()}calculateLayout(t,e){this.yogaNode.setWidth(t),this.yogaNode.setHeight(e),this.yogaNode.calculateLayout(t,e,i.DIRECTION_LTR)}getLayout(){return this.yogaNode.getComputedLayout()}}export{N as LayoutNode};
@@ -0,0 +1 @@
1
+ import{createRequire as y}from"node:module";import{jsx as T}from"react/jsx-runtime";import{useRef as d,useReducer as R,useEffect as b,useMemo as j}from"react";import{useStdinContext as x}from"../ink/hooks/use-stdin.js";import w from"../ink/hooks/use-stdout.js";import{M as n,d as B}from"./ansi-parser-DlgLtOYO.js";import{o as E}from"./mouse-context-DaARgUu1.js";const v=y(import.meta.url),u=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,_=e=>{if(typeof u<"u"&&u.versions&&u.versions.node){const[t,i]=u.versions.node.split(".").map(Number);if(t>22||t===22&&i>=3||t===20&&i>=16)return u.getBuiltinModule(e)}return v(e)},{EventEmitter:h}=_("node:events"),M=u,q={button:null,click:null,drag:null,position:{x:0,y:0},scroll:null},S=(e,t)=>{switch(t.type){case"click":return{...e,button:t.button,click:t.click,position:t.position};case"click-reset":return{...e,button:null,click:null};case"drag":return{...e,button:t.button,drag:t.drag,position:t.position};case"move":return{...e,position:t.position};case"scroll":return{...e,position:t.position,scroll:t.scroll};case"scroll-reset":return{...e,scroll:null};default:return e}},z=({children:e})=>{const{internal_eventEmitter:t}=x(),{stdout:i}=w(),l=d(new h),[s,c]=R(S,q),p=d(void 0),m=d(void 0);b(()=>{const a=i.isTTY?i:M.stdout;return a.write(n.mouseButton.on+n.mouseMotion.on+n.mouseMotionOthers.on+n.mouseSGR.on),()=>{a.write(n.mouseSGR.off+n.mouseMotionOthers.off+n.mouseMotion.off+n.mouseButton.off)}},[i]),b(()=>{const a=k=>{const o=B(k);if(!o)return;const r={x:o.x,y:o.y};switch(l.current.emit("position",r),o.type){case"click":{c({button:o.button,click:o.action,position:r,type:"click"}),l.current.emit("click",r,o.action,o.button),clearTimeout(p.current),p.current=setTimeout(()=>{c({type:"click-reset"})},100);break}case"drag":{const f=o.action==="press"?"dragging":null;c({button:o.button,drag:f,position:r,type:"drag"}),l.current.emit("drag",r,f,o.button);break}case"move":{c({position:r,type:"move"});break}case"scroll":{c({position:r,scroll:o.direction,type:"scroll"}),l.current.emit("scroll",r,o.direction),clearTimeout(m.current),m.current=setTimeout(()=>{c({type:"scroll-reset"})},100);break}}};return t.on("input",a),()=>{t.off("input",a),clearTimeout(p.current),clearTimeout(m.current)}},[t]);const g=j(()=>({button:s.button,click:s.click,drag:s.drag,events:l.current,position:s.position,scroll:s.scroll}),[s]);return T(E,{value:g,children:e})};export{z as default};
@@ -0,0 +1 @@
1
+ import e from"yoga-layout";const o={black:0,blackBright:8,blue:4,blueBright:12,cyan:6,cyanBright:14,gray:8,green:2,greenBright:10,grey:8,magenta:5,magentaBright:13,red:1,redBright:9,white:7,whiteBright:15,yellow:3,yellowBright:11};function a(n,t,r){const i=Math.round(n/51),s=Math.round(t/51),E=Math.round(r/51);return 16+36*i+6*s+E}function I(n){if(n===void 0)return 255;if(typeof n=="number")return n;if(n in o)return o[n];const t=/^ansi256\(\s*(\d+)\s*\)$/.exec(n);if(t)return Number(t[1]);const r=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(n);if(r)return a(Number.parseInt(r[1]+r[1],16),Number.parseInt(r[2]+r[2],16),Number.parseInt(r[3]+r[3],16));const i=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(n);if(i)return a(Number.parseInt(i[1],16),Number.parseInt(i[2],16),Number.parseInt(i[3],16));const s=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/.exec(n);return s?a(Number(s[1]),Number(s[2]),Number(s[3])):255}const g=[["top",e.EDGE_TOP],["right",e.EDGE_RIGHT],["bottom",e.EDGE_BOTTOM],["left",e.EDGE_LEFT]],d=(n,t)=>{"position"in t&&n.setPositionType(t.position==="absolute"?e.POSITION_TYPE_ABSOLUTE:e.POSITION_TYPE_RELATIVE);for(const[r,i]of g)if(r in t){const s=t[r];typeof s=="string"?n.setPositionPercent(i,Number.parseFloat(s)):n.setPosition(i,s)}},_=(n,t)=>{"margin"in t&&n.setMargin(e.EDGE_ALL,t.margin??0),"marginX"in t&&n.setMargin(e.EDGE_HORIZONTAL,t.marginX??0),"marginY"in t&&n.setMargin(e.EDGE_VERTICAL,t.marginY??0),"marginLeft"in t&&n.setMargin(e.EDGE_LEFT,t.marginLeft??0),"marginRight"in t&&n.setMargin(e.EDGE_RIGHT,t.marginRight??0),"marginTop"in t&&n.setMargin(e.EDGE_TOP,t.marginTop??0),"marginBottom"in t&&n.setMargin(e.EDGE_BOTTOM,t.marginBottom??0)},f=(n,t)=>{"padding"in t&&n.setPadding(e.EDGE_ALL,t.padding??0),"paddingX"in t&&n.setPadding(e.EDGE_HORIZONTAL,t.paddingX??0),"paddingY"in t&&n.setPadding(e.EDGE_VERTICAL,t.paddingY??0),"paddingLeft"in t&&n.setPadding(e.EDGE_LEFT,t.paddingLeft??0),"paddingRight"in t&&n.setPadding(e.EDGE_RIGHT,t.paddingRight??0),"paddingTop"in t&&n.setPadding(e.EDGE_TOP,t.paddingTop??0),"paddingBottom"in t&&n.setPadding(e.EDGE_BOTTOM,t.paddingBottom??0)},l=(n,t)=>{if("flexGrow"in t&&n.setFlexGrow(t.flexGrow??0),"flexShrink"in t&&n.setFlexShrink(t.flexShrink??1),"flexWrap"in t&&n.setFlexWrap(t.flexWrap==="nowrap"?e.WRAP_NO_WRAP:t.flexWrap==="wrap"?e.WRAP_WRAP:e.WRAP_WRAP_REVERSE),"flexDirection"in t&&(t.flexDirection==="row"&&n.setFlexDirection(e.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&n.setFlexDirection(e.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&n.setFlexDirection(e.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&n.setFlexDirection(e.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?n.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?n.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):n.setFlexBasis(Number.NaN)),"alignItems"in t){const r={baseline:e.ALIGN_BASELINE,center:e.ALIGN_CENTER,"flex-end":e.ALIGN_FLEX_END,"flex-start":e.ALIGN_FLEX_START,stretch:e.ALIGN_STRETCH};n.setAlignItems(r[t.alignItems||"stretch"])}if("alignSelf"in t){const r={auto:e.ALIGN_AUTO,baseline:e.ALIGN_BASELINE,center:e.ALIGN_CENTER,"flex-end":e.ALIGN_FLEX_END,"flex-start":e.ALIGN_FLEX_START,stretch:e.ALIGN_STRETCH};n.setAlignSelf(r[t.alignSelf||"auto"])}if("alignContent"in t){const r={center:e.ALIGN_CENTER,"flex-end":e.ALIGN_FLEX_END,"flex-start":e.ALIGN_FLEX_START,"space-around":e.ALIGN_SPACE_AROUND,"space-between":e.ALIGN_SPACE_BETWEEN,stretch:e.ALIGN_STRETCH};n.setAlignContent(r[t.alignContent||"flex-start"])}if("justifyContent"in t){const r={center:e.JUSTIFY_CENTER,"flex-end":e.JUSTIFY_FLEX_END,"flex-start":e.JUSTIFY_FLEX_START,"space-around":e.JUSTIFY_SPACE_AROUND,"space-between":e.JUSTIFY_SPACE_BETWEEN,"space-evenly":e.JUSTIFY_SPACE_EVENLY};n.setJustifyContent(r[t.justifyContent||"flex-start"])}},p=(n,t)=>{"width"in t&&(typeof t.width=="number"?n.setWidth(t.width):typeof t.width=="string"?n.setWidthPercent(Number.parseInt(t.width,10)):n.setWidthAuto()),"height"in t&&(typeof t.height=="number"?n.setHeight(t.height):typeof t.height=="string"?n.setHeightPercent(Number.parseInt(t.height,10)):n.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?n.setMinWidthPercent(Number.parseInt(t.minWidth,10)):n.setMinWidth(t.minWidth??0)),"minHeight"in t&&(typeof t.minHeight=="string"?n.setMinHeightPercent(Number.parseInt(t.minHeight,10)):n.setMinHeight(t.minHeight??0)),"maxWidth"in t&&(typeof t.maxWidth=="string"?n.setMaxWidthPercent(Number.parseInt(t.maxWidth,10)):n.setMaxWidth(t.maxWidth)),"maxHeight"in t&&(typeof t.maxHeight=="string"?n.setMaxHeightPercent(Number.parseInt(t.maxHeight,10)):n.setMaxHeight(t.maxHeight)),"aspectRatio"in t&&n.setAspectRatio(t.aspectRatio)},T=(n,t)=>{"display"in t&&n.setDisplay(t.display==="flex"?e.DISPLAY_FLEX:e.DISPLAY_NONE)},h=(n,t,r)=>{if(!("borderStyle"in t||"borderTop"in t||"borderBottom"in t||"borderLeft"in t||"borderRight"in t))return;const i=r.borderStyle?1:0;n.setBorder(e.EDGE_TOP,r.borderTop===!1?0:i),n.setBorder(e.EDGE_BOTTOM,r.borderBottom===!1?0:i),n.setBorder(e.EDGE_LEFT,r.borderLeft===!1?0:i),n.setBorder(e.EDGE_RIGHT,r.borderRight===!1?0:i)},m=(n,t)=>{"gap"in t&&n.setGap(e.GUTTER_ALL,t.gap??0),"columnGap"in t&&n.setGap(e.GUTTER_COLUMN,t.columnGap??0),"rowGap"in t&&n.setGap(e.GUTTER_ROW,t.rowGap??0)},c=(n,t={},r=t)=>{d(n,t),_(n,t),f(n,t),l(n,t),p(n,t),T(n,t),h(n,t,r),m(n,t)};export{o as NAMED_COLORS,c as applyStyles,I as resolveColor};
@@ -0,0 +1 @@
1
+ import{g}from"./dom-rphpG0kf.js";import{t as p}from"./measure-text-B7juNq4Y.js";import{squashTextNodesWithMap as m}from"./squashTextNodesWithMap-BmUSBPfc.js";const O=r=>{if(r.nodeName==="#text"){const s=p(r.nodeValue);return{charOffsetMap:new Map([[r,{end:s.length,start:0}]]),styledLine:s}}const t=new Map,e=m(r,t,{current:0}),n=p(e);return t.set(r,{end:n.length,start:0}),{charOffsetMap:t,styledLine:n}},N=(r,t)=>{if(!r.startContainer||!r.endContainer)return;const e=(i,h)=>{const o=t.get(i);if(!o)return;if(i.nodeName==="#text")return o.start+h;const d=i;if(h>=d.childNodes.length)return o.end;const a=d.childNodes[h],c=t.get(a);if(c)return c.start;for(let f=h-1;f>=0;f--){const l=d.childNodes[f],u=t.get(l);if(u)return u.end}return o.start},n=e(r.startContainer,r.startOffset),s=e(r.endContainer,r.endOffset);if(!(n===void 0||s===void 0))return{end:s,start:n}},C=(r,t,e,n)=>{if(r===e)return t===n?0:t<n?-1:1;const s=g(r),i=g(e);let h,o=0;for(;o<s.length&&o<i.length&&s[o]===i[o];)h=s[o],o++;if(!h)return 0;if(o===s.length){const l=i[o],u=r.childNodes.indexOf(l);return t<=u?-1:1}if(o===i.length){const l=s[o];return e.childNodes.indexOf(l)<n?-1:1}const d=s[o],a=i[o],c=h.childNodes.indexOf(d),f=h.childNodes.indexOf(a);return c<f?-1:1};class S{startContainer=void 0;startOffset=0;endContainer=void 0;endOffset=0;collapsed=!0;commonAncestorContainer=void 0;setStart(t,e){this.startContainer=t,this.startOffset=e,this.updateCollapsed(),this.updateCommonAncestor()}setEnd(t,e){this.endContainer=t,this.endOffset=e,this.updateCollapsed(),this.updateCommonAncestor()}collapse(t){t?(this.endContainer=this.startContainer,this.endOffset=this.startOffset):(this.startContainer=this.endContainer,this.startOffset=this.endOffset),this.collapsed=!0,this.updateCommonAncestor()}selectNode(t){if(!t.parentNode)throw new Error("Node has no parent");const e=t.parentNode.childNodes.indexOf(t);this.setStart(t.parentNode,e),this.setEnd(t.parentNode,e+1)}selectNodeContents(t){this.setStart(t,0),t.nodeName==="#text"?this.setEnd(t,t.nodeValue.length):this.setEnd(t,t.childNodes.length)}toString(){if(this.collapsed||!this.startContainer||!this.endContainer||!this.commonAncestorContainer)return"";const{charOffsetMap:t,styledLine:e}=O(this.commonAncestorContainer),n=N(this,t);if(!n)return"";const s=e.slice(n.start,n.end);return s.getTextRange(0,s.length)}updateCollapsed(){this.collapsed=this.startContainer===this.endContainer&&this.startOffset===this.endOffset}updateCommonAncestor(){if(!this.startContainer||!this.endContainer){this.commonAncestorContainer=void 0;return}if(this.startContainer===this.endContainer){this.commonAncestorContainer=this.startContainer;return}const t=g(this.startContainer),e=g(this.endContainer);let n;for(let s=0;s<Math.min(t.length,e.length)&&t[s]===e[s];s++)n=t[s];this.commonAncestorContainer=n}}class y{anchorNode=void 0;anchorOffset=0;focusNode=void 0;focusOffset=0;isCollapsed=!0;rangeCount=0;ranges=[];listeners=new Set;onChange(t){return this.listeners.add(t),()=>{this.listeners.delete(t)}}toString(){return this.ranges.map(t=>t.toString()).join("")}getRangeAt(t){return this.ranges[t]}addRange(t){this.ranges.includes(t)||(this.ranges.push(t),this.rangeCount=this.ranges.length,this.rangeCount===1&&(this.anchorNode=t.startContainer,this.anchorOffset=t.startOffset,this.focusNode=t.endContainer,this.focusOffset=t.endOffset,this.isCollapsed=t.collapsed),this.notifyChange())}removeRange(t){const e=this.ranges.indexOf(t);e!==-1&&(this.ranges.splice(e,1),this.rangeCount=this.ranges.length,this.rangeCount===0&&this.clearState(),this.notifyChange())}removeAllRanges(){this.ranges=[],this.rangeCount=0,this.clearState(),this.notifyChange()}collapse(t,e){this.removeAllRanges();const n=new S;n.setStart(t,e),n.setEnd(t,e),this.addRange(n)}containsNode(t,e=!1){if(!t.parentNode)return!1;const n=t.parentNode,s=n.childNodes.indexOf(t),i=n,h=s,o=n,d=s+1;return this.ranges.some(a=>{if(!a.startContainer||!a.endContainer)return!1;const c=C(a.startContainer,a.startOffset,i,h),f=C(a.endContainer,a.endOffset,o,d);if(e){const l=C(a.startContainer,a.startOffset,o,d),u=C(a.endContainer,a.endOffset,i,h);return l<0&&u>0}return c<=0&&f>=0})}clearState(){this.anchorNode=void 0,this.anchorOffset=0,this.focusNode=void 0,this.focusOffset=0,this.isCollapsed=!0}notifyChange(){for(const t of this.listeners)t()}}const M=(r,t)=>{if(r.length===0||t.start>=t.end)return r;const e=r.clone(),n=Math.max(0,t.start),s=Math.min(r.length,t.end);for(let i=n;i<s;i++)e.setInverted(i,!0);return e};export{S as Range,y as Selection,M as applySelectionToStyledLine,C as comparePoints};
@@ -0,0 +1 @@
1
+ import{p as r}from"./load-native-root-binding-DDikxNox.js";const n=r(import.meta.url),e=n,m=e.Renderer,t=e.TerminalGuard,a=e.terminalSize;export{m as Renderer,t as TerminalGuard,a as terminalSize};
@@ -0,0 +1 @@
1
+ class d{constructor(e,s){this.target=e,this.contentRect=s}target;contentRect}class c{callback;observedElements=new Set;constructor(e){this.callback=e}observe(e){if(this.observedElements.has(e))return;this.observedElements.add(e),e.resizeObservers??=new Set,e.resizeObservers.add(this);let s=e.internal_lastMeasuredSize;if(s===void 0&&e.yogaNode){const i=Math.round(e.yogaNode.getComputedWidth()),r=Math.round(e.yogaNode.getComputedHeight());!Number.isNaN(i)&&!Number.isNaN(r)&&(s={height:r,width:i},e.internal_lastMeasuredSize=s)}if(s){const i=new d(e,s);try{this.callback([i],this)}catch(r){console.error(r)}}}unobserve(e){this.observedElements.delete(e),e.resizeObservers?.delete(this)}disconnect(){for(const e of this.observedElements)e.resizeObservers?.delete(this);this.observedElements.clear()}internalTrigger(e){try{this.callback(e,this)}catch(s){console.error(s)}}}function l(t,e,s=!1){const i=t.resizeObservers&&t.resizeObservers.size>0;if((i||s)&&t.yogaNode){const r=Math.round(t.yogaNode.getComputedWidth()),o=Math.round(t.yogaNode.getComputedHeight());if(!Number.isNaN(r)&&!Number.isNaN(o)){const n=t.internal_lastMeasuredSize;if((n?.width!==r||n.height!==o)&&(t.internal_lastMeasuredSize={height:o,width:r},i)){const h=new d(t,{height:o,width:r});for(const a of t.resizeObservers)e.has(a)||e.set(a,[]),e.get(a).push(h)}}}}export{d as ResizeObserverEntry,c as default,l as measureAndExtractObservers};
@@ -0,0 +1 @@
1
+ import{jsx as i,jsxs as I}from"react/jsx-runtime";import{useMemo as N}from"react";import{Box as H}from"../components/box.js";import{Text as p}from"../components/text.js";const S={arrow:{lowerThumb:"╽",thumb:"┃",track:"|",upperThumb:"╿"},block:{thumb:"█",track:"░"},bold:{lowerThumb:"╿",thumb:"│",track:"┃",upperThumb:"╽"},classic:{thumb:"┃",track:"|"},dots:{thumb:"●",track:"·"},double:{thumb:"┃",track:"║"},doubleSingle:{lowerThumb:"╽",thumb:"┃",track:"│",upperThumb:"╿"},line:{thumb:"│",track:" "},round:{lowerThumb:"╽",thumb:"┃",track:"│",upperThumb:"╿"},single:{lowerThumb:"╽",thumb:"┃",track:"│",upperThumb:"╿"},singleDouble:{thumb:"┃",track:"║"},thick:{thumb:"┃",track:"╏"}},B={arrow:{bottomLeft:"└",bottomRight:"┘",topLeft:"┌",topRight:"┐"},bold:{bottomLeft:"┗",bottomRight:"┛",topLeft:"┏",topRight:"┓"},classic:{bottomLeft:"+",bottomRight:"+",topLeft:"+",topRight:"+"},double:{bottomLeft:"╚",bottomRight:"╝",topLeft:"╔",topRight:"╗"},doubleSingle:{bottomLeft:"╘",bottomRight:"╛",topLeft:"╒",topRight:"╕"},round:{bottomLeft:"╰",bottomRight:"╯",topLeft:"╭",topRight:"╮"},single:{bottomLeft:"└",bottomRight:"┘",topLeft:"┌",topRight:"┐"},singleDouble:{bottomLeft:"╙",bottomRight:"╜",topLeft:"╓",topRight:"╖"}},Y=t=>S[typeof t=="string"?t:"single"]??S.single??{thumb:"┃",track:"│"},_=t=>B[typeof t=="string"?t:"single"]??B.single??{bottomLeft:"└",bottomRight:"┘",topLeft:"┌",topRight:"┐"},K=({autoHide:t=!1,color:m,contentHeight:L,dimColor:l,placement:n="right",scrollOffset:R,style:c,thumbChar:k,trackChar:x,viewportHeight:e})=>{const a=N(()=>{const r=Math.max(L,e);if(t&&r<=e)return null;const o=Y(c),f=k??o.thumb,q=x??o.track,w=e*2,v=Math.min(e/r,1),T=Math.max(2,Math.round(w*v)),M=r-e,A=M>0?Math.min(Math.max(R/M,0),1):0,E=w-T,s=Math.round(A*E),C=s+T,h=[];for(let b=0;b<e;b+=1){const D=b*2,y=b*2+1,g=D>=s&&D<C,d=y>=s&&y<C;g&&d?h.push(f):g&&!d?h.push(o.lowerThumb??f):!g&&d?h.push(o.upperThumb??f):h.push(q)}return h},[L,e,R,c,k,x,t]);if(a===null)return null;if(n==="inset")return i(H,{flexDirection:"column",flexShrink:0,width:1,children:a.map((r,o)=>i(p,{color:m,dimColor:l,children:r},o))});const u=_(c),j=n==="left"?u.topLeft:u.topRight,O=n==="left"?u.bottomLeft:u.bottomRight;return I(H,{flexDirection:"column",flexShrink:0,width:1,children:[i(p,{color:m,dimColor:l,children:j}),a.map((r,o)=>i(p,{color:m,dimColor:l,children:r},o)),i(p,{color:m,dimColor:l,children:O})]})};export{K as ScrollBar};
@@ -0,0 +1 @@
1
+ import{jsxs as D,jsx as l}from"react/jsx-runtime";import{Box as b}from"../components/box.js";import{ScrollBar as a}from"./ScrollBar-qa1IzDDv.js";const S=({borderColor:r,borderDimColor:e,borderLeftColor:g,borderLeftDimColor:C,borderRightColor:p,borderRightDimColor:H,borderStyle:t="single",children:u,contentHeight:i,height:x,scrollBarAutoHide:h=!1,scrollBarPosition:w="right",scrollOffset:d,thumbChar:s,viewportHeight:c,...B})=>{const o=w==="left",f=o?"left":"right",m=o?g??r:p??r,n=o?C??e:H??e;return D(b,{flexDirection:"row",height:x,...B,children:[o&&l(a,{autoHide:h,color:m,contentHeight:i,dimColor:n,placement:f,scrollOffset:d,style:t,thumbChar:s,viewportHeight:c}),l(b,{borderColor:r,borderDimColor:e,borderLeft:!o,borderRight:o,borderStyle:t,flexGrow:1,overflow:"hidden",children:u}),!o&&l(a,{autoHide:h,color:m,contentHeight:i,dimColor:n,placement:f,scrollOffset:d,style:t,thumbChar:s,viewportHeight:c})]})};export{S as ScrollBarBox};
@@ -0,0 +1 @@
1
+ import{jsx as Y}from"react/jsx-runtime";import{useRef as d,useState as K,useEffect as y,useCallback as g,useImperativeHandle as N}from"react";import Q from"../ink/hooks/use-scroll-input.js";import{C as U}from"./controlled-scroll-view-BVg7ywNW.js";const et=O=>{const{children:P,keyboard:A=!1,onContentHeightChange:V,onItemHeightChange:B,onScroll:T,onViewportSizeChange:b,overscan:E,ref:L,scrollAlignment:h="auto",selectedIndex:p,vimBindings:R=!1,virtualize:j,...q}=O,n=d(null),[s,D]=K(0),C=d(0);y(()=>{C.current=s},[s]);const o=g(t=>{t!==C.current&&(D(t),T?.(t))},[T]),a=d(p);a.current=p;const S=g(()=>{const t=a.current;if(t===void 0||t<0)return null;const e=n.current?.getItemPosition(t);if(!e)return null;const i=n.current?.getViewportHeight()??0,l=n.current?.getContentHeight()??0;let r=e.top+e.height-i,c=e.top;r>c&&([r,c]=[c,r]);const M=Math.max(0,l-i);return{max:Math.min(M,c),min:Math.max(0,r)}},[]),u=g(t=>{const e=n.current?.getContentHeight()??0,i=n.current?.getViewportHeight()??0,l=Math.max(0,e-i);let r=Math.max(0,Math.min(t,l));const c=S();return c&&(r=Math.max(c.min,Math.min(r,c.max))),r},[S]),m=g((t,e,i,l)=>{const r=n.current?.getItemPosition(t);if(!r)return e;const c=l??n.current?.getViewportHeight()??0,M=n.current?.getContentHeight()??0;let f=e;switch(i){case"bottom":{f=r.top+r.height-c;break}case"center":{f=r.top+r.height/2-c/2;break}case"top":{f=r.top;break}default:{const w=r.top+r.height;r.top<=e&&w>=e+c?f=e:r.top<e?f=r.top:w>e+c&&(f=w-c)}}const X=Math.max(0,M-c);return Math.max(0,Math.min(f,X))},[]);let H=s;p!==void 0&&p>=0&&(H=m(p,s,h)),y(()=>{H!==s&&o(H)},[H,s,o]);const k=g((t,e)=>{if(a.current!==void 0&&a.current>=0){const i=m(a.current,s,h,t.height);o(i)}b?.(t,e)},[b,m,s,h,o]),F=g((t,e,i)=>{const l=a.current;if(l!==void 0&&l>=0){if(t<l){const r=u(s+(e-i));o(r)}else if(t===l){const r=m(t,s,h);o(r)}}B?.(t,e,i)},[B,m,h,s,u,o]),G=g((t,e)=>{if(a.current!==void 0&&a.current>=0){const i=m(a.current,s,h);o(i)}V?.(t,e)},[V,m,s,h,o]),z=d(0),x=g(t=>{const e=C.current,i=u(e+t);o(i)},[u,o]),v=g(()=>{const t=n.current?.getContentHeight()??0,e=n.current?.getViewportHeight()??0,i=Math.max(0,t-e),l=u(i);o(l)},[u,o]),I=g(()=>{const t=u(0);o(t)},[u,o]),J=g(()=>z.current,[]);Q({getViewportHeight:J,isActive:A,scrollBy:x,scrollToBottom:v,scrollToTop:I,vimBindings:R}),N(L,()=>({getBottomOffset:()=>n.current?.getBottomOffset()??0,getContentHeight:()=>n.current?.getContentHeight()??0,getItemHeight:t=>n.current?.getItemHeight(t)??0,getItemPosition:t=>n.current?.getItemPosition(t)??null,getScrollOffset:()=>C.current,getViewportHeight:()=>n.current?.getViewportHeight()??0,remeasure:()=>n.current?.remeasure(),remeasureItem:t=>n.current?.remeasureItem(t),scrollBy:x,scrollTo:t=>{const e=u(t);o(e)},scrollToBottom:v,scrollToTop:I}),[u,o,x,v,I]);const W=g((t,e)=>{z.current=t.height,k(t,e)},[k]);return Y(U,{onContentHeightChange:G,onItemHeightChange:F,onViewportSizeChange:W,overscan:E,ref:n,scrollOffset:H,virtualize:j,...q,children:P})};export{et as ScrollList};
@@ -0,0 +1 @@
1
+ import{jsxs as X,jsx as v}from"react/jsx-runtime";import{useRef as h,useState as q,useCallback as o,useImperativeHandle as _}from"react";import $ from"../ink/hooks/use-scroll-input.js";import{Box as ee}from"../components/box.js";import{f as re,C as E}from"./controlled-scroll-view-BVg7ywNW.js";import{ScrollBar as te}from"./ScrollBar-qa1IzDDv.js";const se=({children:I,debug:B=!1,followOutput:M=!1,followThreshold:T=3,keyboard:F=!1,onContentHeightChange:z,onItemHeightChange:y,onReachEnd:g,onReachStart:p,onScroll:V,onViewportSizeChange:N,overscan:O,reachThreshold:a=5,ref:W,scrollbar:Y=!1,scrollbarColor:Z,scrollbarStyle:J="line",vimBindings:K=!1,virtualize:G,...m})=>{const[d,k,n]=re(0),c=h(null),s=h(0),l=h(0),[P,L]=q(0),[x,Q]=q(0),C=h(!1),w=h(!1),i=o(()=>Math.max(0,s.current-l.current),[]),j=o(e=>{const t=i();g&&e>=t-a&&!C.current?(C.current=!0,g()):e<t-a&&(C.current=!1),p&&e<=a&&!w.current?(w.current=!0,p()):e>a&&(w.current=!1)},[g,p,a,i]),r=o(e=>{e!==n()&&(k(e),V?.(e),j(e))},[n,k,V,j]),A=o((e,t)=>{const u=n()>=i()-T;if(s.current=e,L(e),z?.(e,t),M&&u&&e>t){const f=Math.max(0,e-l.current);r(f)}else{const f=Math.max(0,e-l.current);n()>f&&r(f)}},[z,M,T,n,i,r]),D=o((e,t)=>{l.current=e.height,Q(e.height),N?.(e,t)},[N]),H=o(e=>{if(typeof e!="number"||Number.isNaN(e))return;const t=Math.max(0,s.current-l.current),u=Math.max(0,Math.min(n()+e,t));r(u)},[n,r]),R=o(e=>{if(typeof e!="number"||Number.isNaN(e))return;const t=Math.max(0,s.current-l.current),u=Math.max(0,Math.min(e,t));r(u)},[r]),b=o(()=>{const e=i();r(e)},[i,r]),S=o(()=>{r(0)},[r]),U=o(()=>l.current,[]);return $({getViewportHeight:U,isActive:F,scrollBy:H,scrollToBottom:b,scrollToTop:S,vimBindings:K}),_(W,()=>({getBottomOffset:i,getContentHeight:()=>s.current,getItemHeight:e=>c.current?.getItemHeight(e)??0,getItemPosition:e=>c.current?.getItemPosition(e)??null,getScrollOffset:n,getViewportHeight:()=>l.current,remeasure:()=>c.current?.remeasure(),remeasureItem:e=>c.current?.remeasureItem(e),scrollBy:H,scrollTo:R,scrollToBottom:b,scrollToTop:S}),[i,n,H,R,b,S]),Y&&P>x&&x>0?X(ee,{flexDirection:"row",flexGrow:m.flexGrow,flexShrink:m.flexShrink,overflow:"hidden",children:[v(E,{children:I,debug:B,onContentHeightChange:A,onItemHeightChange:y,onViewportSizeChange:D,overscan:O,ref:c,scrollOffset:d,virtualize:G,...m,flexGrow:1}),v(te,{color:Z,contentHeight:P,placement:"inset",scrollOffset:d,style:J,viewportHeight:x})]}):v(E,{children:I,debug:B,onContentHeightChange:A,onItemHeightChange:y,onViewportSizeChange:D,overscan:O,ref:c,scrollOffset:d,virtualize:G,...m})};export{se as ScrollView};
@@ -0,0 +1 @@
1
+ import i,{useRef as o,useMemo as s}from"react";function m({children:u,items:t,style:r}){const c=o([]),n=o(0);if(t.length>n.current){for(let e=n.current;e<t.length;e++)c.current.push(u(t[e],e));n.current=t.length}const l=s(()=>({flexDirection:"column",...r}),[r]);return i.createElement("box",l,...c.current)}export{m as Static};
@@ -0,0 +1 @@
1
+ class g{orderedIds;rootIds;map;constructor(i){this.map=new Map,this.orderedIds=[],this.rootIds=[],this.buildFromData(i)}entries(){return this.map.entries()}get(i){return this.map.get(i)}get size(){return this.map.size}getVisibleIds(i){const d=[],n=[];for(let e=this.rootIds.length-1;e>=0;e--)n.push(this.rootIds[e]);for(;n.length>0;){const e=n.pop();d.push(e);const s=this.map.get(e);if(s&&i.has(e)&&s.childrenIds.length>0)for(let t=s.childrenIds.length-1;t>=0;t--)n.push(s.childrenIds[t])}return d}isDescendantOf(i,d){let n=i;for(;n!==void 0;){const e=this.map.get(n);if(!e)return!1;if(e.parentId===d)return!0;n=e.parentId}return!1}withChildren(i,d){if(!this.map.get(i))return this;const n=s=>{const t=this.map.get(s);return s===i?{...t.node,children:d}:t.childrenIds.length>0?{...t.node,children:t.childrenIds.map(p=>n(p))}:t.node},e=this.rootIds.map(s=>n(s));return new g(e)}buildFromData(i){const d=[];for(let e=i.length-1;e>=0;e--)d.push({depth:0,node:i[e],parentId:void 0,siblingIndex:e,siblings:i});for(const e of i)this.rootIds.push(e.id);let n=0;for(;d.length>0;){const e=d.pop(),{depth:s,node:t,parentId:p,siblingIndex:o,siblings:l}=e;if(this.map.has(t.id))throw new Error(`TreeView: Duplicate node id '${t.id}' found. All node ids must be unique.`);const h=t.children??[],a=h.length>0||t.isParent===!0,u=h.map(r=>r.id),I=o>0?l[o-1].id:void 0,c=o<l.length-1?l[o+1].id:void 0,f={childrenIds:u,depth:s,flatIndex:n,hasChildren:a,nextSiblingId:c,node:t,parentId:p,previousSiblingId:I,siblingCount:l.length,siblingIndex:o};if(this.map.set(t.id,f),this.orderedIds.push(t.id),n++,a)for(let r=h.length-1;r>=0;r--)d.push({depth:s+1,node:h[r],parentId:t.id,siblingIndex:r,siblings:h})}}}export{g as TreeNodeMap};
@@ -0,0 +1 @@
1
+ import{jsxs as b,jsx as a}from"react/jsx-runtime";import L from"../ink/hooks/use-is-screen-reader-enabled.js";import{Box as v}from"../components/box.js";import{Text as n}from"../components/text.js";import{theme as M}from"./treeViewTheme-Dq3ekRAC.js";import{useTreeView as y}from"./useTreeView-D5ifGwG3.js";import{useTreeViewState as j}from"./useTreeViewState-BiTJakkh.js";const V="❯",D="▾",k="▸",A="☒",P="☐",R="✔",B="⟳";function N(t,r,i,l){const{depth:c,hasChildren:m,isExpanded:o,isLoading:u,isSelected:x}=r,d=[t,`item ${i} of ${l}`];return c>0&&d.push(`depth ${c}`),m&&d.push(o?"expanded":"collapsed"),u&&d.push("loading"),x&&d.push("selected"),d.join(", ")}function F(t,r){const i={};return t.hasChildren&&(i.expanded=t.isExpanded),r!=="none"&&(i.selected=t.isSelected),Object.keys(i).length>0?i:void 0}function O({isScreenReaderEnabled:t,node:r,nodeState:i,selectionMode:l,siblingCount:c,siblingPosition:m,styles:o}){const{depth:u,hasChildren:x,isExpanded:d,isFocused:h,isLoading:s,isSelected:C}=i;let e=" ";s?e=B:x&&(e=d?D:k);const f=t?N(r.label,i,m,c):void 0;return b(v,{...o.node({isFocused:h}),"aria-role":"listitem","aria-state":F(i,l),children:[f&&a(n,{"aria-label":f}),h&&a(n,{...o.focusIndicator(),"aria-hidden":!0,children:V}),u>0&&a(v,{...o.indent({depth:u}),"aria-hidden":!0}),l==="multiple"&&a(n,{...o.selectedIndicator(),"aria-hidden":!0,children:C?A:P}),a(n,{...s?o.loadingIndicator():o.expandIndicator({isExpanded:d}),"aria-hidden":!0,children:e}),a(n,{...o.label({isFocused:h,isSelected:C}),children:r.label}),l==="single"&&C&&b(n,{...o.selectedIndicator(),"aria-hidden":!0,children:[" ",R]})]})}function Q({ariaLabel:t="Tree view",data:r,defaultExpanded:i,defaultSelected:l,isDisabled:c=!1,loadChildren:m,onExpandChange:o,onFocusChange:u,onLoadError:x,onSelectChange:d,renderNode:h,selectionMode:s="none",visibleNodeCount:C}){const e=j({data:r,defaultExpanded:i,defaultSelected:l,onExpandChange:o,onFocusChange:u,onSelectChange:d,selectionMode:s,visibleNodeCount:C});y({isDisabled:c,loadChildren:m,onLoadError:x,selectionMode:s,state:e});const{styles:f}=M,w=L();return b(v,{...f.container(),"aria-role":"list",children:[w&&a(n,{"aria-label":t}),e.hasScrollUp&&b(n,{"aria-label":`${e.viewportFromIndex} more items above`,dimColor:!0,children:[" ","↑",e.viewportFromIndex," ","more above"]}),e.viewportNodes.map(({node:p,state:g})=>{const S=e.nodeMap.get(p.id),E=S?S.siblingIndex+1:1,I=S?S.siblingCount:1;if(h){const T=w?N(p.label,g,E,I):void 0;return b(v,{"aria-role":"listitem","aria-state":F(g,s),children:[T&&a(n,{"aria-label":T}),h({node:p,state:g})]},p.id)}return a(O,{isScreenReaderEnabled:w,node:p,nodeState:g,selectionMode:s,siblingCount:I,siblingPosition:E,styles:f},p.id)}),e.hasScrollDown&&b(n,{"aria-label":`${e.visibleCount-e.viewportToIndex} more items below`,dimColor:!0,children:[" ","↓",e.visibleCount-e.viewportToIndex," ","more below"]})]})}export{Q as TreeView};
@@ -0,0 +1 @@
1
+ import{createDecMode as h,setMode as n,resetMode as u}from"@visulima/ansi";import{EventEmitter as f}from"tseep";import{Renderer as i,TerminalGuard as o}from"./Renderer-DsskdkUd.js";const s=h(2026),d=n(s),w=u(s);class B extends f{renderer;terminal=null;backBuffer;width;height;isRunning=!1;stdoutBuffer=[];stderrBuffer=[];constructor(){super(),this.width=process.stdout.columns||80,this.height=process.stdout.rows||24,this.renderer=new i(this.width,this.height),this.backBuffer=new Uint32Array(this.width*this.height*2)}start(){this.isRunning||(this.terminal=new o(!0),this.isRunning=!0)}quit(){this.emit("quit")}stop(){this.isRunning=!1,this.terminal?.leave(),this.terminal=null,this.stdoutBuffer.length>0&&(process.stdout.write(this.stdoutBuffer.join("")),this.stdoutBuffer=[]),this.stderrBuffer.length>0&&(process.stderr.write(this.stderrBuffer.join("")),this.stderrBuffer=[])}writeStdout(t){this.isRunning?this.stdoutBuffer.push(t):process.stdout.write(t)}writeStderr(t){this.isRunning?this.stderrBuffer.push(t):process.stderr.write(t)}getBuffer(){return this.backBuffer}getSize(){return{height:this.height,width:this.width}}resize(t,e){this.width=t,this.height=e,this.renderer=new i(t,e),this.backBuffer=new Uint32Array(t*e*2)}beforeFlushListeners=[];onBeforeFlush(t){return this.beforeFlushListeners.push(t),()=>{this.beforeFlushListeners=this.beforeFlushListeners.filter(e=>e!==t)}}paintNow(t,e){if(this.isRunning){t(this.width,this.height),e(this.backBuffer,this.width,this.height);for(const r of this.beforeFlushListeners)r(this.backBuffer,this.width,this.height);this.renderer.writeRaw(d);try{this.renderer.render(this.backBuffer)}finally{this.renderer.writeRaw(w)}}}}export{B as TuiApp};
@@ -0,0 +1,3 @@
1
+ import{createContext as z,useContext as g,useState as M,useCallback as x,useEffect as d,useMemo as I,useRef as b}from"react";const m=z(null),k=Object.freeze({backspace:!1,ctrl:!1,delete:!1,downArrow:!1,end:!1,escape:!1,home:!1,leftArrow:!1,meta:!1,pageDown:!1,pageUp:!1,return:!1,rightArrow:!1,shift:!1,tab:!1,upArrow:!1}),f=e=>({...k,...e}),B=e=>{const t=g(m);if(!t)throw new Error("useInput must be used within a TUI App environment");const r=b(e);d(()=>{r.current=e}),d(()=>{const u=n=>{switch(n){case"backspace":return r.current("",f({backspace:!0}));case"delete":return r.current("",f({delete:!0}));case"down":return r.current("",f({downArrow:!0}));case"end":return r.current("",f({end:!0}));case"enter":return r.current("",f({return:!0}));case"escape":return r.current("",f({escape:!0}));case"home":return r.current("",f({home:!0}));case"left":return r.current("",f({leftArrow:!0}));case"pageDown":return r.current("",f({pageDown:!0}));case"pageUp":return r.current("",f({pageUp:!0}));case"right":return r.current("",f({rightArrow:!0}));case"shift-tab":return r.current("",f({shift:!0,tab:!0}));case"tab":return r.current("",f({tab:!0}));case"up":return r.current("",f({upArrow:!0}))}},c=n=>{r.current(n,f({ctrl:!0}))},s=n=>{r.current(n,f({meta:!0}))},o=(n,w)=>{n.startsWith("\x1B")||n==="\r"||n===`
2
+ `||r.current(n,f({ctrl:w?.ctrl??!1,meta:w?.meta??!1}))};return t.input.on("keydown",u),t.input.on("ctrl",c),t.input.on("meta",s),t.input.on("data",o),()=>{t.input.off("keydown",u),t.input.off("ctrl",c),t.input.off("meta",s),t.input.off("data",o)}},[t])},N=(e,t={})=>{const r=g(m);if(!r)throw new Error("usePaste must be used within a TUI App environment");const{isActive:u=!0}=t,c=b(e);d(()=>{c.current=e}),d(()=>{if(!u)return;const s=o=>{c.current(o)};return r.input.on("paste",s),()=>{r.input.off("paste",s)}},[r,u])},W=()=>{const e=g(m);if(!e)throw new Error("useTuiContext must be used within a TUI App environment");return e},q=()=>{const e=g(m);if(!e)throw new Error("useApp must be used within a TUI App environment");return{exit:()=>e.app.quit(),quit:()=>e.app.quit()}},H=()=>{const e=g(m);if(!e)throw new Error("useWindowSize must be used within a TUI App environment");const[t,r]=M(()=>e.app.getSize());return d(()=>{const u=()=>r(e.app.getSize());return e.app.on("resize",u),()=>{e.app.off("resize",u)}},[e]),{columns:t.width,rows:t.height}},E=e=>e.replaceAll(/\r?\n/g,`\r
3
+ `),P=()=>{const e=g(m);return{stdout:process.stdout,write:t=>{e?e.writeStdout(t):process.stdout.write(E(t))}}},F=()=>{const e=g(m);return{stderr:process.stderr,write:t=>{e?e.writeStderr(t):process.stderr.write(E(t))}}},V=()=>{const e=!!process.stdin.setRawMode;return{isRawModeSupported:e,setRawMode:t=>{e&&process.stdin.setRawMode(t)},stdin:process.stdin}},j=e=>!e||!e.yogaNode?{height:0,width:0}:{height:e.yogaNode.getComputedHeight()??0,width:e.yogaNode.getComputedWidth()??0},R={height:0,left:0,top:0,width:0},L=e=>{const t=g(m),[r,u]=M(R),[c,s]=M(!1),o=x(()=>{if(!e.current?.yogaNode){s(!1);return}const n=e.current.getLayout();u(w=>w.width===n.width&&w.height===n.height&&w.left===n.left&&w.top===n.top?w:{height:n.height,left:n.left,top:n.top,width:n.width}),s(!0)},[e]);return d(o),d(()=>{if(t?.app)return t.app.on("resize",o),()=>{t.app.off("resize",o)}},[t,o]),I(()=>({...r,hasMeasured:c}),[r,c])},O=()=>!1,$=()=>({setCursorPosition:e=>{}}),G=({contentHeight:e,viewportHeight:t})=>{const[r,u]=M(0),c=Math.max(0,e-t),s=x(o=>Math.max(0,Math.min(o,c)),[c]);return d(()=>{u(o=>s(o))},[c,s]),I(()=>({atBottom:s(r)>=c,atTop:s(r)<=0,offset:s(r),scrollBy:o=>u(n=>s(n+o)),scrollDown:()=>u(o=>s(o+1)),scrollToBottom:()=>u(c),scrollToTop:()=>u(0),scrollUp:()=>u(o=>s(o-1))}),[r,c,s])},J=e=>{const t=g(m);if(!t)throw new Error("useMouse must be used within a TUI App environment");const r=b(e);d(()=>{r.current=e}),d(()=>{const u=c=>r.current(c);return t.input.on("mouse",u),()=>{t.input.off("mouse",u)}},[t])},K=({initialValue:e="",isActive:t=!0,onChange:r,onSubmit:u}={})=>{const[c,s]=M(e),[o,n]=M(e.length),w=b(c),v=b(o);d(()=>{w.current=c}),d(()=>{v.current=o});const A=b(r);d(()=>{A.current=r});const C=b(u);d(()=>{C.current=u});const U=x(h=>{s(h),n(h.length)},[]),y=x(()=>{s(""),n(0),A.current?.("")},[]);B((h,p)=>{if(!t)return;const{current:a}=v,l=w.current;if(p.return){C.current?.(l);return}if(!p.escape){if(p.leftArrow){n(Math.max(0,a-1));return}if(p.rightArrow){n(Math.min(l.length,a+1));return}if(p.home||p.ctrl&&h==="a"){n(0);return}if(p.end||p.ctrl&&h==="e"){n(l.length);return}if(p.backspace){if(a===0)return;const i=l.slice(0,a-1)+l.slice(a);s(i),n(a-1),A.current?.(i);return}if(p.delete){if(a>=l.length)return;const i=l.slice(0,a)+l.slice(a+1);s(i),A.current?.(i);return}if(p.ctrl&&h==="u"){const i=l.slice(a);s(i),n(0),A.current?.(i);return}if(p.ctrl&&h==="k"){const i=l.slice(0,a);s(i),A.current?.(i);return}if(p.ctrl&&h==="w"){const i=l.slice(0,a).replace(/\S+\s*$/,""),S=i+l.slice(a);s(S),n(i.length),A.current?.(S);return}if(!(p.ctrl||p.meta)&&h&&h.length>0){const i=l.slice(0,a)+h+l.slice(a);s(i),n(a+h.length),A.current?.(i)}}});const T=g(m);return d(()=>{if(!T||!t)return;const h=p=>{const a=p.replaceAll(/[\u0000-\u0008\u000B-\u001F\u007F]/g,"").replaceAll(/\r\n?/g," "),{current:l}=v,i=w.current,S=i.slice(0,l)+a+i.slice(l);s(S),n(l+a.length),A.current?.(S)};return T.input.on("paste",h),()=>{T.input.off("paste",h)}},[T,t]),{clear:y,cursor:o,setValue:U,value:c}};export{m as TuiContext,j as measureElement,q as useApp,L as useBoxMetrics,$ as useCursor,B as useInput,O as useIsScreenReaderEnabled,J as useMouse,N as usePaste,G as useScrollable,F as useStderr,V as useStdin,P as useStdout,K as useTextInput,W as useTuiContext,H as useWindowSize};
@@ -0,0 +1 @@
1
+ import{enableNormalMouse as f,enableAnyEventMouse as m,enableSgrMouse as c,disableSgrMouse as d,disableAnyEventMouse as a,disableNormalMouse as b}from"@visulima/ansi";const g={mouseButton:{off:b,on:f},mouseMotion:{off:a,on:m},mouseMotionOthers:{off:"\x1B[?1015l",on:"\x1B[?1015h"},mouseSGR:{off:d,on:c}},p=/\[<(\d+);(\d+);(\d+)(M)$/i,y={0:"left",1:"middle",2:"right"},M={32:"left",33:"middle",34:"right"},N=i=>{const o=p.exec(i);if(!o)return;const l=Number(o[1]),t=Number(o[2]),r=Number(o[3]),n=o[4]==="m",e=l&-29;if(e===64||e===65)return{direction:e===64?"scrollup":"scrolldown",type:"scroll",x:t,y:r};if(e===35)return{type:"move",x:t,y:r};const s=M[e];if(s)return{action:n?"release":"press",button:s,type:"drag",x:t,y:r};const u=y[e];if(u)return{action:n?"release":"press",button:u,type:"click",x:t,y:r}};export{g as M,N as d};
@@ -0,0 +1 @@
1
+ const v=t=>{const r=t.codePointAt(0);return r!==void 0&&r>=48&&r<=63},y=t=>{const r=t.codePointAt(0);return r!==void 0&&r>=32&&r<=47},m=t=>{const r=t.codePointAt(0);return r!==void 0&&r>=64&&r<=126},f=t=>{const r=t.codePointAt(0);return r!==void 0&&r>=32&&r<=47},x=t=>{const r=t.codePointAt(0);return r!==void 0&&r>=48&&r<=126},h=t=>{const r=t.codePointAt(0);return r!==void 0&&r>=128&&r<=159},p=(t,r)=>{let n=r;for(;n<t.length;){const s=t[n];if(!v(s))break;n++}const e=t.slice(r,n),a=n;for(;n<t.length;){const s=t[n];if(!y(s))break;n++}const l=t.slice(a,n),i=t[n];if(!(i===void 0||!m(i)))return{endIndex:n+1,finalCharacter:i,intermediateString:l,parameterString:e}},d=(t,r,n)=>{for(let e=r;e<t.length;e++){const a=t[e];if(n&&a==="\x07"||a==="œ")return e+1;if(a==="\x1B"){const l=t[e+1];if(l==="\x1B"){e++;continue}if(l==="\\")return e+2}}},g=(t,r)=>{let n=r;for(;n<t.length;){const l=t[n];if(!f(l))break;n++}const e=t.slice(r,n),a=t[n];if(!(a===void 0||!x(a)))return{endIndex:n+1,finalCharacter:a,intermediateString:e}},B=t=>{switch(t){case"]":return{allowBellTerminator:!0,type:"osc"};case"^":return{allowBellTerminator:!1,type:"pm"};case"_":return{allowBellTerminator:!1,type:"apc"};case"P":return{allowBellTerminator:!1,type:"dcs"};case"X":return{allowBellTerminator:!1,type:"sos"};default:return}},w=t=>{switch(t){case"Ÿ":return{allowBellTerminator:!1,type:"apc"};case"":return{allowBellTerminator:!1,type:"dcs"};case"":return{allowBellTerminator:!0,type:"osc"};case"ž":return{allowBellTerminator:!1,type:"pm"};case"˜":return{allowBellTerminator:!1,type:"sos"};default:return}},S=t=>{if(t.includes("\x1B"))return!0;for(const r of t)if(h(r))return!0;return!1},c=(t,r,n,e)=>(e>n&&t.push({type:"text",value:r.slice(n,e)}),t.push({type:"invalid",value:r.slice(e)}),t),T=t=>{if(!S(t))return[{type:"text",value:t}];const r=[];let n=0;for(let e=0;e<t.length;){const a=t[e];if(a===void 0)break;if(a==="\x1B"){const i=t[e+1];if(i===void 0)return c(r,t,n,e);if(i==="["){const o=p(t,e+2);if(o===void 0)return c(r,t,n,e);e>n&&r.push({type:"text",value:t.slice(n,e)}),r.push({finalCharacter:o.finalCharacter,intermediateString:o.intermediateString,parameterString:o.parameterString,type:"csi",value:t.slice(e,o.endIndex)}),e=o.endIndex,n=e;continue}const s=B(i);if(s!==void 0){const o=d(t,e+2,s.allowBellTerminator);if(o===void 0)return c(r,t,n,e);e>n&&r.push({type:"text",value:t.slice(n,e)}),r.push({type:s.type,value:t.slice(e,o)}),e=o,n=e;continue}const u=g(t,e+1);if(u===void 0){if(f(i))return c(r,t,n,e);e>n&&r.push({type:"text",value:t.slice(n,e)}),e++,n=e;continue}e>n&&r.push({type:"text",value:t.slice(n,e)}),r.push({finalCharacter:u.finalCharacter,intermediateString:u.intermediateString,type:"esc",value:t.slice(e,u.endIndex)}),e=u.endIndex,n=e;continue}if(a==="›"){const i=p(t,e+1);if(i===void 0)return c(r,t,n,e);e>n&&r.push({type:"text",value:t.slice(n,e)}),r.push({finalCharacter:i.finalCharacter,intermediateString:i.intermediateString,parameterString:i.parameterString,type:"csi",value:t.slice(e,i.endIndex)}),e=i.endIndex,n=e;continue}const l=w(a);if(l!==void 0){const i=d(t,e+1,l.allowBellTerminator);if(i===void 0)return c(r,t,n,e);e>n&&r.push({type:"text",value:t.slice(n,e)}),r.push({type:l.type,value:t.slice(e,i)}),e=i,n=e;continue}if(a==="œ"){e>n&&r.push({type:"text",value:t.slice(n,e)}),r.push({type:"st",value:a}),e++,n=e;continue}if(h(a)){e>n&&r.push({type:"text",value:t.slice(n,e)}),r.push({type:"c1",value:a}),e++,n=e;continue}e++}return n<t.length&&r.push({type:"text",value:t.slice(n)}),r};export{S as h,T as t};
@@ -0,0 +1 @@
1
+ const w=[1,8,2,16,4,32,64,128],A=(l,c)=>{const p=Math.max(0,l*2),x=Math.max(0,c*4),f=new Uint8Array(l*c),s=new Uint8Array(l*c),m=(a,r)=>{if(a<0||r<0||a>=p||r>=x)return;const h=Math.floor(a/2),i=Math.floor(r/4),t=a%2,o=r%4,e=w[o*2+t],n=i*l+h;(f[n]&e)===0&&(f[n]=(f[n]??0)|e,s[n]=1)};return{cellHeight:c,cellWidth:l,clear:()=>{f.fill(0),s.fill(0)},flush:(a,r)=>{for(const[h,i]of f.entries()){if(s[h]===0)continue;const t=h%l,o=Math.floor(h/l),e=10240+i;a.setCell(t,o,e,r)}},pixelHeight:x,pixelWidth:p,plotLine:(a,r,h,i)=>{let t=Math.round(a),o=Math.round(r);const e=Math.round(h),n=Math.round(i),M=Math.abs(e-t),g=t<e?1:-1,u=-Math.abs(n-o),k=o<n?1:-1;let d=M+u;for(;m(t,o),!(t===e&&o===n);){const y=2*d;if(y>=u){if(t===e)break;d+=u,t+=g}if(y<=M){if(o===n)break;d+=M,o+=k}}},plotPoint:m}};export{A as c};
@@ -0,0 +1,39 @@
1
+ type CanvasColor = number | string | undefined;
2
+ type CellStyle = {
3
+ readonly background?: CanvasColor;
4
+ readonly bold?: boolean;
5
+ readonly color?: CanvasColor;
6
+ readonly dim?: boolean;
7
+ };
8
+ type CanvasContext = {
9
+ /**
10
+ * Clear every cell back to space + default style.
11
+ */
12
+ readonly clear: () => void;
13
+ /**
14
+ * Draw a horizontal bar using fractional block glyphs (▏▎▍▌▋▊▉█).
15
+ * `fillRatio` in [0, 1] determines the filled portion.
16
+ */
17
+ readonly drawHBar: (x: number, y: number, w: number, fillRatio: number, style?: CellStyle) => void;
18
+ /**
19
+ * Draw a filled rectangle using a single character.
20
+ */
21
+ readonly drawRect: (x: number, y: number, w: number, h: number, char: number | string, style?: CellStyle) => void;
22
+ /**
23
+ * Render a string left-to-right starting at (x, y). Non-printable or
24
+ * multi-byte codepoints are preserved but advance the cursor by 1 cell.
25
+ */
26
+ readonly drawText: (x: number, y: number, text: string, style?: CellStyle) => void;
27
+ /**
28
+ * Draw a vertical bar using fractional block glyphs (▁▂▃▄▅▆▇█).
29
+ * `fillRatio` in [0, 1] determines the filled portion.
30
+ */
31
+ readonly drawVBar: (x: number, y: number, h: number, fillRatio: number, style?: CellStyle) => void;
32
+ readonly height: number;
33
+ /**
34
+ * Set a single cell at (x, y). Out-of-bounds writes are silently ignored.
35
+ */
36
+ readonly setCell: (x: number, y: number, char: number | string, style?: CellStyle) => void;
37
+ readonly width: number;
38
+ };
39
+ export { CanvasContext as C, CanvasColor as a, CellStyle as b };
@@ -0,0 +1 @@
1
+ import o from"yoga-layout";const m=t=>{const{yogaNode:e}=t;if(!e)return{scrollHeight:0,scrollWidth:0};const a=e.getComputedBorder(o.EDGE_TOP),s=e.getComputedBorder(o.EDGE_LEFT);let c=a,r=e.getComputedPadding(o.EDGE_LEFT);for(let n=0;n<e.getChildCount();n++){const l=e.getChild(n),i=l.getComputedTop()+l.getComputedHeight()+l.getComputedMargin(o.EDGE_BOTTOM);i>c&&(c=i);const d=l.getComputedLeft()+l.getComputedWidth()+l.getComputedMargin(o.EDGE_RIGHT);d>r&&(r=d)}const h=c-a+e.getComputedPadding(o.EDGE_BOTTOM),g=r-s+e.getComputedPadding(o.EDGE_RIGHT);return{scrollHeight:Math.round(h),scrollWidth:Math.round(g)}},p=t=>Math.round(t.internal_scrollState?.scrollHeight??0),E=t=>Math.round(t.internal_scrollState?.scrollWidth??0),T=t=>{const{yogaNode:e}=t;if(!e)return;const{scrollHeight:a,scrollWidth:s}=m(t);let c=a;const r=Math.max(0,e.getComputedHeight()-e.getComputedBorder(o.EDGE_TOP)-e.getComputedBorder(o.EDGE_BOTTOM));if(t.style.stableScrollback&&t.style.overflowToBackbuffer){const l=Math.max(0,a-r);if(t.internal_isScrollbackDirty)t.internal_maxScrollTop=l,t.internal_isScrollbackDirty=!1;else{const i=Math.max(t.internal_maxScrollTop??0,l),{maxScrollbackLength:d}=t.style;t.internal_maxScrollTop=d===void 0?i:Math.min(i,l+Math.max(0,d))}c=Math.max(a,(t.internal_maxScrollTop??0)+r)}const h=Math.max(0,Math.min(t.style.scrollTop??0,c-r)),g=Math.max(0,e.getComputedWidth()-e.getComputedBorder(o.EDGE_LEFT)-e.getComputedBorder(o.EDGE_RIGHT)),n=Math.max(0,Math.min(t.style.scrollLeft??0,s-g));t.internal_scrollState={actualScrollHeight:a,clientHeight:r,clientWidth:g,scrollHeight:c,scrollLeft:n,scrollTop:h,scrollWidth:s}},M=t=>Math.round(t.internal_scrollState?.scrollTop??0),_=t=>Math.round(t.internal_scrollState?.scrollLeft??0);export{T as calculateScroll,p as getScrollHeight,_ as getScrollLeft,M as getScrollTop,E as getScrollWidth};
@@ -1 +1 @@
1
- import"yoga-layout";import{c as r,a as g,b as i,P as s,g as c,d as n,e as d,f as u,h as b,i as m,j as B,k as S,l as h}from"./measure-element-DSp7YDus.js";import"./getScrollHeight-BTEY8ewu.js";import"./squashTextNodesWithMap-Cpqmc45i.js";export{r as calculateScrollbarLayout,g as calculateScrollbarThumb,i as collectSortedFragments,s as default,c as getAddedScrollHeight,n as getBoundingBox,d as getHorizontalScrollbarBoundingBox,u as getInnerHeight,b as getInnerWidth,m as getRelativeLeft,B as getRelativeTop,S as getText,h as getVerticalScrollbarBoundingBox};
1
+ import"yoga-layout";import{c as r,a as g,b as i,R as s,g as c,d as n,e as d,f as u,h as b,i as m,j as B,k as S,l as h}from"./measure-element-D4M9iSYp.js";import"./calculateScroll-D4Y_JR4H.js";import"./squashTextNodesWithMap-BmUSBPfc.js";export{r as calculateScrollbarLayout,g as calculateScrollbarThumb,i as collectSortedFragments,s as default,c as getAddedScrollHeight,n as getBoundingBox,d as getHorizontalScrollbarBoundingBox,u as getInnerHeight,b as getInnerWidth,m as getRelativeLeft,B as getRelativeTop,S as getText,h as getVerticalScrollbarBoundingBox};
@@ -0,0 +1 @@
1
+ const o=new Set(["Alacritty","contour","foot","Ghostty","iTerm2","iTerm.app","kitty","rio","WezTerm"]),n=()=>{const r=process.env.TERM_PROGRAM??"";if(o.has(r))return!0;const t=process.env.TERM??"";return!!(t.startsWith("xterm")||process.env.WT_SESSION||process.env.TMUX||t.startsWith("screen"))},c=new Set(["c","p","s"]),i=(r,t,e="c")=>{if(!c.has(e))throw new Error(`Invalid clipboard target: ${e}`);const s=Buffer.from(t,"utf8").toString("base64");r.write(`\x1B]52;${e};${s}\x07`)},a=(r,t="c")=>{r.write(`\x1B]52;${t};\x07`)};export{a as clearOsc52,n as isOsc52Supported,i as writeOsc52};
@@ -0,0 +1 @@
1
+ import"@visulima/string";import{c as i,a as s,y as n,i as d,m as l,s as r,b as c,k as h,d as y,t as S}from"./measure-text-B7juNq4Y.js";export{i as clearStringWidthCache,s as clearStyledLineCache,n as default,d as inkCharacterWidth,l as measureStyledLine,r as setEnableStyledLineCache,c as setStringWidthFunction,h as splitStyledLineByNewline,y as styledLineWidth,S as toStyledLine};
@@ -0,0 +1,23 @@
1
+ import { Writable } from 'node:stream';
2
+ /**
3
+ * Clipboard targets as defined by the OSC 52 spec.
4
+ * - `c` — system clipboard
5
+ * - `p` — primary selection (X11 only)
6
+ * - `s` — secondary selection (X11 only)
7
+ */
8
+ type ClipboardTarget = "c" | "p" | "s";
9
+ /**
10
+ * Check whether the current terminal likely supports OSC 52.
11
+ *
12
+ * Detection is best-effort based on `TERM_PROGRAM` and other env vars.
13
+ * Returns `true` for known-supported terminals, `false` otherwise.
14
+ */
15
+ declare const isOsc52Supported: () => boolean;
16
+ declare const writeOsc52: (stream: Writable, text: string, target?: ClipboardTarget) => void;
17
+ /**
18
+ * Clear the clipboard via OSC 52.
19
+ * @param stream The writable stream to write the escape sequence to.
20
+ * @param target The clipboard target. Defaults to `"c"`.
21
+ */
22
+ declare const clearOsc52: (stream: Writable, target?: ClipboardTarget) => void;
23
+ export { ClipboardTarget as C, clearOsc52 as c, isOsc52Supported as i, writeOsc52 as w };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Color matrix transforms for color blindness simulation and compensation.
3
+ *
4
+ * Matrices sourced from research by Brettel, Viénot, and Mollon (1997)
5
+ * and Machado, Oliveira, and Fernandes (2009).
6
+ * @see https://www.inf.ufrgs.br/~oliveira/pubs_files/CVD_Simulation/CVD_Simulation.html
7
+ */
8
+ /**
9
+ * 3x3 color transformation matrix operating on linear RGB values (0-255).
10
+ */
11
+ type ColorMatrix = readonly [readonly [number, number, number], readonly [number, number, number], readonly [number, number, number]];
12
+ type ColorBlindnessType = "achromatopsia" | "deuteranopia" | "protanopia" | "tritanopia";
13
+ /**
14
+ * Simulation matrices — show how colors appear to users with color vision deficiency.
15
+ */
16
+ declare const COLOR_BLINDNESS_SIMULATION: Record<ColorBlindnessType, ColorMatrix>;
17
+ /**
18
+ * Compensation matrices — shift colors into a distinguishable range for affected users.
19
+ * These remap problematic colors to alternatives the user can perceive.
20
+ */
21
+ /**
22
+ * Compensation matrices — enhance distinguishability for affected users
23
+ * by redistributing the lost channel's energy into perceivable channels.
24
+ * Based on Daltonization approach (Fidaner et al., 2005).
25
+ */
26
+ declare const COLOR_BLINDNESS_COMPENSATION: Record<Exclude<ColorBlindnessType, "achromatopsia">, ColorMatrix>;
27
+ /**
28
+ * Identity matrix (no transformation).
29
+ */
30
+ declare const IDENTITY_MATRIX: ColorMatrix;
31
+ /**
32
+ * Apply a 3x3 color matrix to an RGB triplet.
33
+ * @param r Red channel (0-255)
34
+ * @param g Green channel (0-255)
35
+ * @param b Blue channel (0-255)
36
+ * @param matrix The 3x3 transformation matrix
37
+ * @returns Transformed [r, g, b] triplet, clamped to 0-255
38
+ */
39
+ declare const applyColorMatrix: (r: number, g: number, b: number, matrix: ColorMatrix) => [number, number, number];
40
+ declare const hexToRgb: (hex: string) => [number, number, number] | null;
41
+ /**
42
+ * Convert RGB components to a hex color string.
43
+ */
44
+ declare const rgbToHex: (r: number, g: number, b: number) => string;
45
+ /**
46
+ * Transform a hex color through a color blindness simulation or compensation matrix.
47
+ * Returns the original color if parsing fails.
48
+ */
49
+ declare const transformHexColor: (hex: string, matrix: ColorMatrix) => string;
50
+ export { ColorBlindnessType as C, IDENTITY_MATRIX as I, ColorMatrix as a, COLOR_BLINDNESS_COMPENSATION as b, COLOR_BLINDNESS_SIMULATION as c, applyColorMatrix as d, hexToRgb as h, rgbToHex as r, transformHexColor as t };
@@ -0,0 +1 @@
1
+ import t from"@visulima/colorize";const g=/^rgb\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,c=/^ansi256\(\s?(\d+)\s?\)$/,f=r=>r in t,b=(r,n,i)=>{if(!n)return r;if(f(n)){if(i==="foreground")return t[n](r);const s=`bg${n[0].toUpperCase()+n.slice(1)}`;return t[s](r)}if(n.startsWith("#"))return i==="foreground"?t.hex(n)(r):t.bgHex(n)(r);if(n.startsWith("ansi256")){const s=c.exec(n);if(!s)return r;const o=Number(s[1]);return i==="foreground"?t.ansi256(o)(r):t.bgAnsi256(o)(r)}if(n.startsWith("rgb")){const s=g.exec(n);if(!s)return r;const o=Number(s[1]),u=Number(s[2]),e=Number(s[3]);return i==="foreground"?t.rgb(o,u,e)(r):t.bgRgb(o,u,e)(r)}return r},d=r=>{const n=b("x",r,"background");if(n!=="x")return n.split("x")[0]};export{b as a,d as g};
@@ -0,0 +1 @@
1
+ import{jsx as H,jsxs as rr}from"react/jsx-runtime";import{useState as K,useRef as d,useCallback as j,useLayoutEffect as T,isValidElement as z,useImperativeHandle as tr,Fragment as G}from"react";import{R as N}from"./measure-element-D4M9iSYp.js";import{Box as M}from"../components/box.js";const J=u=>{const[g,m]=K(u),l=d(u),k=j(C=>{const E=typeof C=="function"?C(l.current):C;l.current=E,m(E)},[]),x=j(()=>l.current,[]);return[g,k,x]},er=({children:u,index:g,measureKey:m,onMeasure:l,width:k})=>{const x=d(null);return T(()=>{if(x.current){const{height:C}=N(x.current);l(g,C)}},[g,l,k,m,u]),H(M,{flexDirection:"column",flexShrink:0,ref:x,width:"100%",children:u})},B=u=>{if(u==null)return[];if(Array.isArray(u)){const g=[];for(let m=0;m<u.length;m+=1){const l=u[m];z(l)&&l.type===G?g.push(...B(l.props.children)):g.push(l)}return g}return z(u)&&u.type===G?B(u.props.children):[u]},hr=({children:u,debug:g=!1,onContentHeightChange:m,onItemHeightChange:l,onViewportSizeChange:k,overscan:x=3,ref:C,scrollOffset:E,virtualize:Q=!1,...U})=>{const D=d(!1),[$,q,S]=J({height:0,width:0}),[I,O,R]=J(0),[W,X]=K({}),V=d(null),b=d(0);T(()=>{I!==b.current&&(m?.(I,b.current),b.current=I)},[I,m]);const o=d({}),i=d([]),p=d([]),f=d(0),Y=j((r,t)=>{const e=i.current[r]??r;if(o.current[e]!==t){const h=o.current[e]??0;o.current={...o.current,[e]:t};let n=0;for(let s=0;s<i.current.length;s+=1){const y=i.current[s];y!=null&&(n+=o.current[y]??0)}const c=R();n!==c&&O(n),l?.(r,t,h),f.current=Math.min(f.current,r+1)}},[l,R,O]),F=j(()=>{if(V.current){const{height:r,width:t}=N(V.current),e=S();(t!==e.width||r!==e.height)&&(k?.({height:r,width:t},e),q({height:r,width:t}))}},[V,k,S,q]);T(()=>{F()});const Z=d(null);if(Z.current!==u){Z.current=u;const r=[],t={};B(u).forEach((n,c)=>{if(!n)return;const s=(z(n)?n.key:null)??c;r[c]=s;const y=o.current[s]??0;t[s]=y}),o.current=t,i.current=r,p.current=Array.from({length:r.length}).fill(0),f.current=0;let e=0;r.forEach(n=>{e+=t[n]??0});const h=R();e!==h&&O(e)}tr(C,()=>({getBottomOffset:()=>Math.max(0,R()-S().height),getContentHeight:R,getItemHeight:r=>{const t=i.current[r]??r;return o.current[t]??0},getItemPosition:r=>{if(r<0||r>=i.current.length)return null;if(r>=f.current){let h=0,n=0;if(f.current>0){n=f.current;const c=n-1,s=i.current[c]??c,y=o.current[s]??0;h=(p.current[c]??0)+y}for(let c=n;c<=r;c+=1){p.current[c]=h;const s=i.current[c]??c,y=o.current[s]??0;h+=y}f.current=r+1}const t=p.current[r]??0,e=i.current[r]??r;return{height:o.current[e]??0,top:t}},getViewportHeight:()=>S().height,remeasure:F,remeasureItem:r=>{X(t=>({...t,[r]:(t[r]??0)+1}))}}),[F,R,S,X]);const v=B(u);!D.current&&I>0&&(D.current=!0);let w=0,a=v.length-1,L=0,P=0;const _=v.length>0&&v.every((r,t)=>{const e=i.current[t]??t;return(o.current[e]??0)>0}),A=Q&&D.current&&_;if(A){const r=i.current.length;if(f.current<r){let e=0,h=0;if(f.current>0){h=f.current;const n=h-1,c=i.current[n]??n,s=o.current[c]??0;e=(p.current[n]??0)+s}for(let n=h;n<r;n+=1){p.current[n]=e;const c=i.current[n]??n;e+=o.current[c]??0}f.current=r}const t=E+$.height;w=v.length,a=-1;for(let e=0;e<r;e+=1){const h=p.current[e]??0,n=i.current[e]??e,c=o.current[n]??0;h+c>E&&h<t&&(e<w&&(w=e),a=e)}if(w>a&&(w=0,a=-1),w=Math.max(0,w-x),a=Math.min(v.length-1,Math.max(-1,a)+x),L=p.current[w]??0,a<v.length-1){const e=i.current[a]??a,h=(p.current[a]??0)+(o.current[e]??0);P=I-h}}return H(M,{...U,children:H(M,{ref:V,width:"100%",children:H(M,{overflow:g?void 0:"hidden",width:"100%",children:rr(M,{flexDirection:"column",marginTop:-E,width:"100%",children:[A&&L>0&&H(M,{height:L}),v.map((r,t)=>!r||A&&(t<w||t>a)?null:H(er,{index:t,measureKey:W[t],onMeasure:Y,width:$.width,children:r},z(r)?r.key??t:t)),A&&P>0&&H(M,{height:P})]})})})})};export{hr as C,J as f};
@@ -0,0 +1,2 @@
1
+ import{createDecMode as P,setMode as w,resetMode as M,BracketedPasteMode as R,cursorUp as U,cursorToColumn1 as L,cursorHide as b,REQUEST_CURSOR_POSITION as z,cursorPosition as u,eraseLine as A,cursorShow as B}from"@visulima/ansi";import{terminalSize as C,Renderer as Y}from"./Renderer-DsskdkUd.js";const T=P(2026),_=w(T),g=M(T),k=w(R),D=M(R);function Q(I,d={}){const S=d.rows??10,E=d.fps??60,O=d.onExit??"preserve";let n=null,o=null,c=null,i=80,t=10,h=0,r=1;function e(s){o.writeRaw(s)}function a(){c.fill(0),I(c,i,t,h++),e(_);try{o.render(c)}finally{e(g)}}function v(s){r=s-t,e(U(t)+L),o.setRowOffset(r),a(),n=setInterval(()=>{a()},Math.round(1e3/E))}function x(){const s=C();i=s.cols;const y=s.rows;t=Math.min(S,y),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.setEncoding("utf8"),o=new Y(i,t),c=new Uint32Array(i*t*2),e(b),e(k),e(`
2
+ `.repeat(t)),e(z),process.on("SIGINT",l);let p="";const f=N=>{p+=N;const m=p.match(/\u001B\[(\d+);(\d+)R/);m&&(process.stdin.off("data",f),v(Number.parseInt(m[1],10)))};process.stdin.on("data",f)}function l(){if(n&&(clearInterval(n),n=null),o){if(O==="destroy"){for(let s=0;s<t;s++)e(u(r+1+s,1)+A);e(u(r+1,1))}else e(u(r+t+1,1));e(D),e(B)}process.stdin.isTTY&&process.stdin.setRawMode(!1),process.stdin.pause(),process.exit(0)}return{start:x,stop:l}}export{Q as createInlineLoop};
@@ -0,0 +1,3 @@
1
+ import{strip as i}from"@visulima/ansi";const u=(r,e)=>{const n=t=>t===void 0?"":i(t);return{contains(t){return this.text().includes(t)},frames(){return e.map(t=>i(t))},line(t){return this.text().split(`
2
+ `)[t]??""},lines(){return this.text().split(`
3
+ `).filter(t=>t.trim()!=="")},matches(t){return t.test(this.text())},rawFrames(){return[...e]},rawText(){return r()??""},text(){return n(r())}}};export{u as createScreen};