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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (658) hide show
  1. package/CHANGELOG.md +300 -0
  2. package/LICENSE.md +2490 -69
  3. package/README.md +38 -10
  4. package/dist/components/accordion.d.ts +59 -0
  5. package/dist/components/accordion.js +1 -0
  6. package/dist/components/alert.d.ts +26 -0
  7. package/dist/components/alert.js +1 -0
  8. package/dist/components/animate-presence.d.ts +18 -0
  9. package/dist/components/animate-presence.js +1 -0
  10. package/dist/components/approval-prompt.d.ts +65 -0
  11. package/dist/components/approval-prompt.js +1 -0
  12. package/dist/components/area-chart.d.ts +66 -0
  13. package/dist/components/area-chart.js +1 -0
  14. package/dist/components/badge.d.ts +22 -0
  15. package/dist/components/badge.js +1 -0
  16. package/dist/components/bar-chart.d.ts +67 -0
  17. package/dist/components/bar-chart.js +1 -0
  18. package/dist/components/big-text.d.ts +81 -0
  19. package/dist/components/big-text.js +1 -0
  20. package/dist/components/blink-dot.d.ts +36 -0
  21. package/dist/components/blink-dot.js +1 -0
  22. package/dist/components/box.d.ts +62 -0
  23. package/dist/components/box.js +1 -0
  24. package/dist/components/breadcrumb.d.ts +33 -0
  25. package/dist/components/breadcrumb.js +1 -0
  26. package/dist/components/button.d.ts +45 -0
  27. package/dist/components/button.js +1 -0
  28. package/dist/components/calendar.d.ts +72 -0
  29. package/dist/components/calendar.js +1 -0
  30. package/dist/components/canvas.d.ts +44 -0
  31. package/dist/components/canvas.js +1 -0
  32. package/dist/components/card.d.ts +57 -0
  33. package/dist/components/card.js +1 -0
  34. package/dist/components/checkbox.d.ts +48 -0
  35. package/dist/components/checkbox.js +1 -0
  36. package/dist/components/code.d.ts +48 -0
  37. package/dist/components/code.js +2 -0
  38. package/dist/components/collapsible.d.ts +53 -0
  39. package/dist/components/collapsible.js +1 -0
  40. package/dist/components/command-block.d.ts +47 -0
  41. package/dist/components/command-block.js +4 -0
  42. package/dist/components/command-palette.d.ts +82 -0
  43. package/dist/components/command-palette.js +1 -0
  44. package/dist/components/confirm-dialog.d.ts +75 -0
  45. package/dist/components/confirm-dialog.js +1 -0
  46. package/dist/components/confirm-input.d.ts +38 -0
  47. package/dist/components/confirm-input.js +1 -0
  48. package/dist/components/console-overlay.d.ts +54 -0
  49. package/dist/components/console-overlay.js +1 -0
  50. package/dist/components/content-switcher.d.ts +57 -0
  51. package/dist/components/content-switcher.js +1 -0
  52. package/dist/components/controlled-scroll-view.d.ts +61 -0
  53. package/dist/components/controlled-scroll-view.js +1 -0
  54. package/dist/components/cursor.d.ts +62 -0
  55. package/dist/components/cursor.js +1 -0
  56. package/dist/components/date-picker.d.ts +65 -0
  57. package/dist/components/date-picker.js +1 -0
  58. package/dist/components/definition-list.d.ts +44 -0
  59. package/dist/components/definition-list.js +1 -0
  60. package/dist/components/dialog.d.ts +117 -0
  61. package/dist/components/dialog.js +1 -0
  62. package/dist/components/diff-view.d.ts +85 -0
  63. package/dist/components/diff-view.js +1 -0
  64. package/dist/components/divider.d.ts +49 -0
  65. package/dist/components/divider.js +1 -0
  66. package/dist/components/file-picker-entry.d.ts +104 -0
  67. package/dist/components/file-picker-entry.js +1 -0
  68. package/dist/components/form.d.ts +81 -0
  69. package/dist/components/form.js +1 -0
  70. package/dist/components/gauge.d.ts +87 -0
  71. package/dist/components/gauge.js +1 -0
  72. package/dist/components/gradient.d.ts +42 -0
  73. package/dist/components/gradient.js +1 -0
  74. package/dist/components/heading.d.ts +33 -0
  75. package/dist/components/heading.js +1 -0
  76. package/dist/components/heatmap.d.ts +62 -0
  77. package/dist/components/heatmap.js +1 -0
  78. package/dist/components/help.d.ts +52 -0
  79. package/dist/components/help.js +1 -0
  80. package/dist/components/histogram.d.ts +62 -0
  81. package/dist/components/histogram.js +1 -0
  82. package/dist/components/kbd.d.ts +31 -0
  83. package/dist/components/kbd.js +1 -0
  84. package/dist/components/line-chart.d.ts +109 -0
  85. package/dist/components/line-chart.js +1 -0
  86. package/dist/components/link.d.ts +38 -0
  87. package/dist/components/link.js +1 -0
  88. package/dist/components/loading-indicator.d.ts +29 -0
  89. package/dist/components/loading-indicator.js +1 -0
  90. package/dist/components/markdown.d.ts +40 -0
  91. package/dist/components/markdown.js +1 -0
  92. package/dist/components/masked-input.d.ts +50 -0
  93. package/dist/components/masked-input.js +1 -0
  94. package/dist/components/menu.d.ts +78 -0
  95. package/dist/components/menu.js +1 -0
  96. package/dist/components/message-bubble.d.ts +43 -0
  97. package/dist/components/message-bubble.js +1 -0
  98. package/dist/components/model-badge.d.ts +39 -0
  99. package/dist/components/model-badge.js +1 -0
  100. package/dist/components/multi-select.d.ts +65 -0
  101. package/dist/components/multi-select.js +1 -0
  102. package/dist/components/newline.d.ts +15 -0
  103. package/dist/components/newline.js +2 -0
  104. package/dist/components/operation-tree.d.ts +49 -0
  105. package/dist/components/operation-tree.js +1 -0
  106. package/dist/components/option-list.d.ts +47 -0
  107. package/dist/components/option-list.js +1 -0
  108. package/dist/components/ordered-list.d.ts +24 -0
  109. package/dist/components/ordered-list.js +1 -0
  110. package/dist/components/paginator.d.ts +69 -0
  111. package/dist/components/paginator.js +1 -0
  112. package/dist/components/paragraph.d.ts +38 -0
  113. package/dist/components/paragraph.js +1 -0
  114. package/dist/components/placeholder.d.ts +55 -0
  115. package/dist/components/placeholder.js +1 -0
  116. package/dist/components/progress-bar.d.ts +56 -0
  117. package/dist/components/progress-bar.js +1 -0
  118. package/dist/components/radio-group.d.ts +74 -0
  119. package/dist/components/radio-group.js +1 -0
  120. package/dist/components/scatter-plot.d.ts +35 -0
  121. package/dist/components/scatter-plot.js +1 -0
  122. package/dist/components/scroll-bar-box.d.ts +37 -0
  123. package/dist/components/scroll-bar-box.js +1 -0
  124. package/dist/components/scroll-bar.d.ts +25 -0
  125. package/dist/components/scroll-bar.js +1 -0
  126. package/dist/components/scroll-list.d.ts +20 -0
  127. package/dist/components/scroll-list.js +1 -0
  128. package/dist/components/scroll-view.d.ts +10 -0
  129. package/dist/components/scroll-view.js +1 -0
  130. package/dist/components/search-input.d.ts +55 -0
  131. package/dist/components/search-input.js +1 -0
  132. package/dist/components/select-input-indicator.d.ts +32 -0
  133. package/dist/components/select-input-indicator.js +1 -0
  134. package/dist/components/select-input-item.d.ts +41 -0
  135. package/dist/components/select-input-item.js +1 -0
  136. package/dist/components/select-input.d.ts +110 -0
  137. package/dist/components/select-input.js +1 -0
  138. package/dist/components/shimmer-text.d.ts +47 -0
  139. package/dist/components/shimmer-text.js +1 -0
  140. package/dist/components/slider.d.ts +103 -0
  141. package/dist/components/slider.js +1 -0
  142. package/dist/components/spacer.d.ts +8 -0
  143. package/dist/components/spacer.js +1 -0
  144. package/dist/components/sparkline.d.ts +35 -0
  145. package/dist/components/sparkline.js +1 -0
  146. package/dist/components/spinner.d.ts +17 -0
  147. package/dist/components/spinner.js +1 -0
  148. package/dist/components/static-render.d.ts +55 -0
  149. package/dist/components/static-render.js +1 -0
  150. package/dist/components/static.d.ts +29 -0
  151. package/dist/components/static.js +1 -0
  152. package/dist/components/status-line.d.ts +37 -0
  153. package/dist/components/status-line.js +1 -0
  154. package/dist/components/status-message.d.ts +21 -0
  155. package/dist/components/status-message.js +1 -0
  156. package/dist/components/stepper.d.ts +48 -0
  157. package/dist/components/stepper.js +1 -0
  158. package/dist/components/stopwatch.d.ts +49 -0
  159. package/dist/components/stopwatch.js +1 -0
  160. package/dist/components/streaming-text.d.ts +46 -0
  161. package/dist/components/streaming-text.js +1 -0
  162. package/dist/components/switch.d.ts +55 -0
  163. package/dist/components/switch.js +1 -0
  164. package/dist/components/tab.d.ts +19 -0
  165. package/dist/components/tab.js +1 -0
  166. package/dist/components/table.d.ts +119 -0
  167. package/dist/components/table.js +1 -0
  168. package/dist/components/tabs.d.ts +107 -0
  169. package/dist/components/tabs.js +1 -0
  170. package/dist/components/tag.d.ts +35 -0
  171. package/dist/components/tag.js +1 -0
  172. package/dist/components/text-input.d.ts +48 -0
  173. package/dist/components/text-input.js +1 -0
  174. package/dist/components/text.d.ts +79 -0
  175. package/dist/components/text.js +1 -0
  176. package/dist/components/textarea.d.ts +68 -0
  177. package/dist/components/textarea.js +2 -0
  178. package/dist/components/timer.d.ts +59 -0
  179. package/dist/components/timer.js +1 -0
  180. package/dist/components/toast.d.ts +49 -0
  181. package/dist/components/toast.js +1 -0
  182. package/dist/components/tooltip.d.ts +43 -0
  183. package/dist/components/tooltip.js +1 -0
  184. package/dist/components/transform.d.ts +21 -0
  185. package/dist/components/transform.js +1 -0
  186. package/dist/components/transition.d.ts +74 -0
  187. package/dist/components/transition.js +1 -0
  188. package/dist/components/tree-view-entry.d.ts +357 -0
  189. package/dist/components/tree-view-entry.js +1 -0
  190. package/dist/components/unordered-list.d.ts +30 -0
  191. package/dist/components/unordered-list.js +1 -0
  192. package/dist/core/index.d.ts +58 -5
  193. package/dist/core/index.js +1 -5
  194. package/dist/ink/hooks/use-animation.d.ts +37 -39
  195. package/dist/ink/hooks/use-animation.js +1 -0
  196. package/dist/ink/hooks/use-app.d.ts +36 -4
  197. package/dist/ink/hooks/use-app.js +1 -0
  198. package/dist/ink/hooks/use-box-metrics.d.ts +58 -50
  199. package/dist/ink/hooks/use-box-metrics.js +1 -0
  200. package/dist/ink/hooks/use-clipboard.d.ts +26 -25
  201. package/dist/ink/hooks/use-clipboard.js +1 -0
  202. package/dist/ink/hooks/use-color-blindness.d.ts +29 -29
  203. package/dist/ink/hooks/use-color-blindness.js +1 -0
  204. package/dist/ink/hooks/use-console-capture.d.ts +38 -38
  205. package/dist/ink/hooks/use-console-capture.js +1 -0
  206. package/dist/ink/hooks/use-cursor.d.ts +10 -9
  207. package/dist/ink/hooks/use-cursor.js +1 -0
  208. package/dist/ink/hooks/use-focus-manager.d.ts +53 -38
  209. package/dist/ink/hooks/use-focus-manager.js +1 -0
  210. package/dist/ink/hooks/use-focus.d.ts +29 -25
  211. package/dist/ink/hooks/use-focus.js +1 -0
  212. package/dist/ink/hooks/use-form.d.ts +68 -0
  213. package/dist/ink/hooks/use-form.js +1 -0
  214. package/dist/ink/hooks/use-hotkey.d.ts +37 -0
  215. package/dist/ink/hooks/use-hotkey.js +1 -0
  216. package/dist/ink/hooks/use-input.d.ts +142 -142
  217. package/dist/ink/hooks/use-input.js +2 -0
  218. package/dist/ink/hooks/use-interval.d.ts +25 -0
  219. package/dist/ink/hooks/use-interval.js +1 -0
  220. package/dist/ink/hooks/use-is-screen-reader-enabled.d.ts +4 -4
  221. package/dist/ink/hooks/use-is-screen-reader-enabled.js +1 -0
  222. package/dist/ink/hooks/use-key-bindings.d.ts +50 -52
  223. package/dist/ink/hooks/use-key-bindings.js +1 -0
  224. package/dist/ink/hooks/use-key-chord.d.ts +25 -0
  225. package/dist/ink/hooks/use-key-chord.js +1 -0
  226. package/dist/ink/hooks/use-linked-scroll.d.ts +45 -37
  227. package/dist/ink/hooks/use-linked-scroll.js +1 -0
  228. package/dist/ink/hooks/use-paste.d.ts +41 -40
  229. package/dist/ink/hooks/use-paste.js +1 -0
  230. package/dist/ink/hooks/use-persistent-state.d.ts +56 -0
  231. package/dist/ink/hooks/use-persistent-state.js +2 -0
  232. package/dist/ink/hooks/use-scroll-acceleration.d.ts +43 -43
  233. package/dist/ink/hooks/use-scroll-acceleration.js +1 -0
  234. package/dist/ink/hooks/use-scroll-input.d.ts +31 -31
  235. package/dist/ink/hooks/use-scroll-input.js +1 -0
  236. package/dist/ink/hooks/use-stderr.d.ts +14 -4
  237. package/dist/ink/hooks/use-stderr.js +1 -0
  238. package/dist/ink/hooks/use-stdin.d.ts +28 -5
  239. package/dist/ink/hooks/use-stdin.js +1 -0
  240. package/dist/ink/hooks/use-stdout.d.ts +14 -4
  241. package/dist/ink/hooks/use-stdout.js +1 -0
  242. package/dist/ink/hooks/use-stopwatch.d.ts +36 -37
  243. package/dist/ink/hooks/use-stopwatch.js +1 -0
  244. package/dist/ink/hooks/use-terminal-palette.d.ts +17 -16
  245. package/dist/ink/hooks/use-terminal-palette.js +1 -0
  246. package/dist/ink/hooks/use-text-buffer.d.ts +37 -37
  247. package/dist/ink/hooks/use-text-buffer.js +4 -0
  248. package/dist/ink/hooks/use-text-selection.d.ts +41 -41
  249. package/dist/ink/hooks/use-text-selection.js +1 -0
  250. package/dist/ink/hooks/use-timeout.d.ts +24 -0
  251. package/dist/ink/hooks/use-timeout.js +1 -0
  252. package/dist/ink/hooks/use-timer.d.ts +45 -46
  253. package/dist/ink/hooks/use-timer.js +1 -0
  254. package/dist/ink/hooks/use-window-size.d.ts +14 -14
  255. package/dist/ink/hooks/use-window-size.js +1 -0
  256. package/dist/ink/index.d.ts +398 -159
  257. package/dist/ink/index.js +1 -100
  258. package/dist/packem_chunks/devtools.js +3 -26
  259. package/dist/packem_shared/COLOR_BLINDNESS_SIMULATION-DqErf7XX.js +1 -0
  260. package/dist/packem_shared/Cell-BrXn3jxY.js +1 -0
  261. package/dist/packem_shared/ControlledScrollView-CIc-x1Cx.js +1 -0
  262. package/dist/packem_shared/DevTools-ClAYpMVI.js +1 -0
  263. package/dist/packem_shared/FilePicker-tYj_CIau.js +1 -0
  264. package/dist/packem_shared/FocusContext-Xy0cwJpO.js +1 -0
  265. package/dist/packem_shared/Fullscreen-CxLd1-Zu.js +1 -0
  266. package/dist/packem_shared/IMECompositionBuffer-C89PhiOu.js +1 -0
  267. package/dist/packem_shared/InputParser-B_qZcN3r.js +2 -0
  268. package/dist/packem_shared/KEY-Bk8B-3h_.js +1 -0
  269. package/dist/packem_shared/LayoutNode-B8zej4dm.js +1 -0
  270. package/dist/packem_shared/MouseProvider-PnIUKURs.js +1 -0
  271. package/dist/packem_shared/NAMED_COLORS-B9fJsYdg.js +1 -0
  272. package/dist/packem_shared/Renderer-DJXooAsp.js +1 -0
  273. package/dist/packem_shared/ResizeObserverEntry-Dq0dk8Kq.js +1 -0
  274. package/dist/packem_shared/ScrollBar-U_37hlIT.js +1 -0
  275. package/dist/packem_shared/ScrollBarBox-DwiCxilX.js +1 -0
  276. package/dist/packem_shared/ScrollList-C7nZ9ufK.js +1 -0
  277. package/dist/packem_shared/ScrollView-DKZ8OM-m.js +1 -0
  278. package/dist/packem_shared/Static-DLynr5pn.js +1 -0
  279. package/dist/packem_shared/TreeNodeMap-CspqSCpb.js +1 -0
  280. package/dist/packem_shared/TreeView-C0Iv3et8.js +1 -0
  281. package/dist/packem_shared/TuiApp-BVDXP0Cv.js +1 -0
  282. package/dist/packem_shared/TuiContext-BoJvG3NN.js +3 -0
  283. package/dist/packem_shared/accessibility-context-DDyHTwmA.js +1 -0
  284. package/dist/packem_shared/animation-context-DW3p-vpk.js +1 -0
  285. package/dist/packem_shared/ansi-parser-B6uXaq65.js +1 -0
  286. package/dist/packem_shared/ansi-tokenizer-DqX9nJuk.js +1 -0
  287. package/dist/packem_shared/app-context-BVpKlG1z.js +1 -0
  288. package/dist/packem_shared/background-context-rjOaWFki.js +1 -0
  289. package/dist/packem_shared/braille-BBjIoaN0.js +1 -0
  290. package/dist/packem_shared/buffer.d-EJkZr8uH.d.ts +39 -0
  291. package/dist/packem_shared/clipboard.d-D6lZTQ21.d.ts +23 -0
  292. package/dist/packem_shared/color-matrix.d-DSXLsB64.d.ts +50 -0
  293. package/dist/packem_shared/colorize-DbTZMrJO.js +1 -0
  294. package/dist/packem_shared/comparePoints-YxQfR_zq.js +1 -0
  295. package/dist/packem_shared/controlled-scroll-view-CcUS50jx.js +1 -0
  296. package/dist/packem_shared/createInlineLoop-DRNZ7jqH.js +2 -0
  297. package/dist/packem_shared/createScreen-CrLrxA6t.js +3 -0
  298. package/dist/packem_shared/cursor-context-CFviBqPX.js +1 -0
  299. package/dist/packem_shared/cursor-helpers.d-BONB9tky.d.ts +12 -0
  300. package/dist/packem_shared/dom-BG-LS10p.js +1 -0
  301. package/dist/packem_shared/dom.d-C1IxuLJ9.d.ts +414 -0
  302. package/dist/packem_shared/focus-context-CsT69klR.js +1 -0
  303. package/dist/packem_shared/format-time-C7Q-hQZq.js +1 -0
  304. package/dist/packem_shared/getPathToRoot-D5Hns9Er.js +1 -0
  305. package/dist/packem_shared/getScrollHeight-ClEOyLHH.js +1 -0
  306. package/dist/packem_shared/input-utils-fAxzSlNh.js +1 -0
  307. package/dist/packem_shared/input.d-CgxV2e8U.d.ts +90 -0
  308. package/dist/packem_shared/isIntersecting-B3KbKTmu.js +1 -0
  309. package/dist/packem_shared/isOsc52Supported-DKK7Uee6.js +1 -0
  310. package/dist/packem_shared/isTerminalPaletteQuerySupported-Dn2hFAZ_.js +1 -0
  311. package/dist/packem_shared/kittyFlags-C3rZLbcK.js +1 -0
  312. package/dist/packem_shared/layout-BMo200nF.js +2 -0
  313. package/dist/packem_shared/line-chart-kf7uhR0K.js +1 -0
  314. package/dist/packem_shared/measure-text-DDjHT1jD.js +3 -0
  315. package/dist/packem_shared/measureElement-BTtTFZg4.js +1 -0
  316. package/dist/packem_shared/mouse-context-DaARgUu1.js +1 -0
  317. package/dist/packem_shared/parseSgrMouse-Ccj70ijb.js +1 -0
  318. package/dist/packem_shared/processLayout-FEKj_mWu.js +1 -0
  319. package/dist/packem_shared/reconciler-CUbhOvcr.js +1 -0
  320. package/dist/packem_shared/reconciler-DIfG72R9.js +1 -0
  321. package/dist/packem_shared/render-BFio00DS.js +26 -0
  322. package/dist/packem_shared/render-Dh7HMhK1.js +1 -0
  323. package/dist/packem_shared/render.d-DuyG0zip.d.ts +417 -0
  324. package/dist/packem_shared/renderToString-BbQiRHrd.js +2 -0
  325. package/dist/packem_shared/renderToString-SDrrFvu8.js +4 -0
  326. package/dist/packem_shared/renderTreeToBuffer-CZilzyhN.js +2 -0
  327. package/dist/packem_shared/renderer-DG986Pcr.js +17 -0
  328. package/dist/packem_shared/scroll-view.d-DtpsgHLg.d.ts +119 -0
  329. package/dist/packem_shared/selection.d-Dbha5bMS.d.ts +62 -0
  330. package/dist/packem_shared/setEnableStyledLineCache-D2gZbwFM.js +1 -0
  331. package/dist/packem_shared/squashTextNodesWithMap-DCdi3SZ2.js +1 -0
  332. package/dist/packem_shared/stderr-context-BzEaUICS.js +1 -0
  333. package/dist/packem_shared/stdin-context-BTaaFagk.js +1 -0
  334. package/dist/packem_shared/stdout-context-BnblEPez.js +1 -0
  335. package/dist/packem_shared/styles.d-cMo36xQz.d.ts +396 -0
  336. package/dist/packem_shared/terminal-palette.d-D2SQjfn-.d.ts +19 -0
  337. package/dist/packem_shared/text-width-BU2eeTWn.js +2 -0
  338. package/dist/packem_shared/token-to-elements-BAZpNZsu.js +1 -0
  339. package/dist/packem_shared/treeViewTheme-1RIZyB4M.js +1 -0
  340. package/dist/packem_shared/useElementDimensions-qJ_WXFZ9.js +1 -0
  341. package/dist/packem_shared/useMouseAction-2dRfU1vE.js +1 -0
  342. package/dist/packem_shared/useMouseContext-C746G7kY.js +1 -0
  343. package/dist/packem_shared/useMousePosition-BTWfV4JK.js +1 -0
  344. package/dist/packem_shared/useOnMouseClick-nY8xLZmt.js +1 -0
  345. package/dist/packem_shared/useOnMouseHover-D3DczIol.js +1 -0
  346. package/dist/packem_shared/useOnMouseState-cRK8QvzD.js +1 -0
  347. package/dist/packem_shared/useTreeView-BoMMeRPq.js +1 -0
  348. package/dist/packem_shared/useTreeViewState-CRPCUWrb.js +1 -0
  349. package/dist/packem_shared/utils-CoviI5Vm.js +1 -0
  350. package/dist/packem_shared/variant-config-BJqpNo7H.js +1 -0
  351. package/dist/packem_shared/variant-config.d-D5NnrrQK.d.ts +2 -0
  352. package/dist/packem_shared/waitFor-Dj5zfL5s.js +4 -0
  353. package/dist/packem_shared/wrapOrTruncateStyledLine-BZ00SM8i.js +3 -0
  354. package/dist/react/index.d.ts +519 -8
  355. package/dist/react/index.js +1 -9
  356. package/dist/testing/index.d.ts +278 -135
  357. package/dist/testing/index.js +1 -260
  358. package/index.js +52 -52
  359. package/package.json +563 -38
  360. package/dist/core/app.d.ts +0 -50
  361. package/dist/core/cell.d.ts +0 -33
  362. package/dist/core/inline.d.ts +0 -22
  363. package/dist/core/input.d.ts +0 -18
  364. package/dist/core/native-binding.d.ts +0 -22
  365. package/dist/ink/ansi-to-cell.d.ts +0 -5
  366. package/dist/ink/ansi-tokenizer.d.ts +0 -38
  367. package/dist/ink/clipboard.d.ts +0 -29
  368. package/dist/ink/color-matrix.d.ts +0 -49
  369. package/dist/ink/color-utils.d.ts +0 -30
  370. package/dist/ink/colorize.d.ts +0 -4
  371. package/dist/ink/components/AccessibilityContext.d.ts +0 -4
  372. package/dist/ink/components/Alert.d.ts +0 -30
  373. package/dist/ink/components/AnimationContext.d.ts +0 -10
  374. package/dist/ink/components/App.d.ts +0 -19
  375. package/dist/ink/components/AppContext.d.ts +0 -38
  376. package/dist/ink/components/BackgroundContext.d.ts +0 -5
  377. package/dist/ink/components/Badge.d.ts +0 -27
  378. package/dist/ink/components/BigText.d.ts +0 -71
  379. package/dist/ink/components/Box.d.ts +0 -58
  380. package/dist/ink/components/Code.d.ts +0 -46
  381. package/dist/ink/components/ConfirmInput.d.ts +0 -40
  382. package/dist/ink/components/ConsoleOverlay.d.ts +0 -52
  383. package/dist/ink/components/Cursor.d.ts +0 -43
  384. package/dist/ink/components/CursorContext.d.ts +0 -12
  385. package/dist/ink/components/Dialog.d.ts +0 -93
  386. package/dist/ink/components/DiffView.d.ts +0 -71
  387. package/dist/ink/components/ErrorBoundary.d.ts +0 -17
  388. package/dist/ink/components/ErrorOverview.d.ts +0 -6
  389. package/dist/ink/components/FocusContext.d.ts +0 -17
  390. package/dist/ink/components/Gradient.d.ts +0 -38
  391. package/dist/ink/components/Help.d.ts +0 -49
  392. package/dist/ink/components/Link.d.ts +0 -34
  393. package/dist/ink/components/Markdown.d.ts +0 -34
  394. package/dist/ink/components/MultiSelect.d.ts +0 -63
  395. package/dist/ink/components/Newline.d.ts +0 -12
  396. package/dist/ink/components/OrderedList.d.ts +0 -30
  397. package/dist/ink/components/Paginator.d.ts +0 -75
  398. package/dist/ink/components/ProgressBar.d.ts +0 -51
  399. package/dist/ink/components/SelectInput.d.ts +0 -96
  400. package/dist/ink/components/SelectInputIndicator.d.ts +0 -36
  401. package/dist/ink/components/SelectInputItem.d.ts +0 -43
  402. package/dist/ink/components/Slider.d.ts +0 -92
  403. package/dist/ink/components/Spacer.d.ts +0 -7
  404. package/dist/ink/components/Spinner.d.ts +0 -42
  405. package/dist/ink/components/Static.d.ts +0 -24
  406. package/dist/ink/components/StaticRender.d.ts +0 -28
  407. package/dist/ink/components/StatusMessage.d.ts +0 -26
  408. package/dist/ink/components/StderrContext.d.ts +0 -16
  409. package/dist/ink/components/StdinContext.d.ts +0 -29
  410. package/dist/ink/components/StdoutContext.d.ts +0 -16
  411. package/dist/ink/components/Stopwatch.d.ts +0 -44
  412. package/dist/ink/components/Tab.d.ts +0 -25
  413. package/dist/ink/components/Table.d.ts +0 -80
  414. package/dist/ink/components/Tabs.d.ts +0 -104
  415. package/dist/ink/components/Text.d.ts +0 -63
  416. package/dist/ink/components/TextInput.d.ts +0 -48
  417. package/dist/ink/components/Textarea.d.ts +0 -62
  418. package/dist/ink/components/Timer.d.ts +0 -52
  419. package/dist/ink/components/Transform.d.ts +0 -16
  420. package/dist/ink/components/UnorderedList.d.ts +0 -35
  421. package/dist/ink/components/file-picker/FilePicker.d.ts +0 -75
  422. package/dist/ink/components/file-picker/index.d.ts +0 -3
  423. package/dist/ink/components/file-picker/types.d.ts +0 -38
  424. package/dist/ink/components/file-picker/use-file-system.d.ts +0 -16
  425. package/dist/ink/components/scroll/ControlledScrollView.d.ts +0 -43
  426. package/dist/ink/components/scroll/ScrollBar.d.ts +0 -20
  427. package/dist/ink/components/scroll/ScrollBarBox.d.ts +0 -15
  428. package/dist/ink/components/scroll/ScrollList.d.ts +0 -12
  429. package/dist/ink/components/scroll/ScrollView.d.ts +0 -98
  430. package/dist/ink/components/scroll/index.d.ts +0 -10
  431. package/dist/ink/components/scroll/use-state-ref.d.ts +0 -8
  432. package/dist/ink/components/tree-view/TreeView.d.ts +0 -89
  433. package/dist/ink/components/tree-view/TreeViewNode.d.ts +0 -29
  434. package/dist/ink/components/tree-view/index.d.ts +0 -11
  435. package/dist/ink/components/tree-view/theme.d.ts +0 -24
  436. package/dist/ink/components/tree-view/tree-node-map.d.ts +0 -72
  437. package/dist/ink/components/tree-view/types.d.ts +0 -55
  438. package/dist/ink/components/tree-view/use-tree-view-state.d.ts +0 -135
  439. package/dist/ink/components/tree-view/use-tree-view.d.ts +0 -26
  440. package/dist/ink/components/variant-config.d.ts +0 -10
  441. package/dist/ink/cursor-helpers.d.ts +0 -38
  442. package/dist/ink/data-limited-lru-map.d.ts +0 -21
  443. package/dist/ink/devtools-window-polyfill.d.ts +0 -1
  444. package/dist/ink/devtools.d.ts +0 -1
  445. package/dist/ink/dom.d.ts +0 -213
  446. package/dist/ink/get-max-width.d.ts +0 -3
  447. package/dist/ink/highlighter.d.ts +0 -28
  448. package/dist/ink/ime-utils.d.ts +0 -25
  449. package/dist/ink/ink.d.ts +0 -189
  450. package/dist/ink/input-parser.d.ts +0 -10
  451. package/dist/ink/input-utils.d.ts +0 -16
  452. package/dist/ink/instances.d.ts +0 -3
  453. package/dist/ink/kitty-keyboard.d.ts +0 -23
  454. package/dist/ink/layout.d.ts +0 -26
  455. package/dist/ink/log-update-native.d.ts +0 -14
  456. package/dist/ink/log-update.d.ts +0 -21
  457. package/dist/ink/measure-element.d.ts +0 -147
  458. package/dist/ink/measure-text.d.ts +0 -56
  459. package/dist/ink/mouse/Fullscreen.d.ts +0 -8
  460. package/dist/ink/mouse/MouseProvider.d.ts +0 -11
  461. package/dist/ink/mouse/ansi-parser.d.ts +0 -37
  462. package/dist/ink/mouse/constants.d.ts +0 -59
  463. package/dist/ink/mouse/index.d.ts +0 -20
  464. package/dist/ink/mouse/is-intersecting.d.ts +0 -18
  465. package/dist/ink/mouse/mouse-context.d.ts +0 -36
  466. package/dist/ink/mouse/use-element-position.d.ts +0 -29
  467. package/dist/ink/mouse/use-mouse-action.d.ts +0 -7
  468. package/dist/ink/mouse/use-mouse-position.d.ts +0 -7
  469. package/dist/ink/mouse/use-mouse.d.ts +0 -7
  470. package/dist/ink/mouse/use-on-mouse-click.d.ts +0 -14
  471. package/dist/ink/mouse/use-on-mouse-hover.d.ts +0 -8
  472. package/dist/ink/mouse/use-on-mouse-state.d.ts +0 -11
  473. package/dist/ink/output.d.ts +0 -74
  474. package/dist/ink/parse-keypress.d.ts +0 -22
  475. package/dist/ink/reconciler.d.ts +0 -3
  476. package/dist/ink/region.d.ts +0 -99
  477. package/dist/ink/render-background.d.ts +0 -4
  478. package/dist/ink/render-border.d.ts +0 -4
  479. package/dist/ink/render-node-to-output.d.ts +0 -38
  480. package/dist/ink/render-scrollbar.d.ts +0 -9
  481. package/dist/ink/render-sticky.d.ts +0 -44
  482. package/dist/ink/render-to-string.d.ts +0 -37
  483. package/dist/ink/render.d.ts +0 -191
  484. package/dist/ink/renderer.d.ts +0 -17
  485. package/dist/ink/resize-observer.d.ts +0 -44
  486. package/dist/ink/sanitize-ansi.d.ts +0 -2
  487. package/dist/ink/scroll.d.ts +0 -23
  488. package/dist/ink/selection.d.ts +0 -70
  489. package/dist/ink/squash-text-nodes.d.ts +0 -18
  490. package/dist/ink/style-flags.d.ts +0 -17
  491. package/dist/ink/styled-line-factory.d.ts +0 -25
  492. package/dist/ink/styled-line-serializer.d.ts +0 -18
  493. package/dist/ink/styled-line.d.ts +0 -109
  494. package/dist/ink/styles.d.ts +0 -369
  495. package/dist/ink/terminal-palette.d.ts +0 -25
  496. package/dist/ink/text-wrap.d.ts +0 -10
  497. package/dist/ink/token-to-elements.d.ts +0 -22
  498. package/dist/ink/utils/format-time.d.ts +0 -4
  499. package/dist/ink/utils.d.ts +0 -9
  500. package/dist/ink/wrap-text.d.ts +0 -3
  501. package/dist/ink/write-synchronized.d.ts +0 -4
  502. package/dist/packem_shared/AccessibilityContext-BLelHhNU.js +0 -7
  503. package/dist/packem_shared/Alert-Dr3s_LD9.js +0 -17
  504. package/dist/packem_shared/AnimationContext-BcJg8Jr6.js +0 -15
  505. package/dist/packem_shared/AppContext-CP0U6H7O.js +0 -11
  506. package/dist/packem_shared/BackgroundContext-BAUaxfOb.js +0 -5
  507. package/dist/packem_shared/Badge-Dk7EGGM6.js +0 -13
  508. package/dist/packem_shared/BigText-CjMdY63X.js +0 -24
  509. package/dist/packem_shared/Box-D_pSJ9Jp.js +0 -73
  510. package/dist/packem_shared/COLOR_BLINDNESS_SIMULATION-BsMy5Ewl.js +0 -81
  511. package/dist/packem_shared/Cell-DCg1kJY-.js +0 -48
  512. package/dist/packem_shared/Code-DjQvPBD9.js +0 -53
  513. package/dist/packem_shared/ConfirmInput-85Y4kRQW.js +0 -44
  514. package/dist/packem_shared/ConsoleOverlay-DBNa4vtj.js +0 -57
  515. package/dist/packem_shared/ControlledScrollView-BlOaxcsN.js +0 -286
  516. package/dist/packem_shared/ControlledScrollView-DfAhcufF.js +0 -5
  517. package/dist/packem_shared/Cursor-DiW7YoSK.js +0 -18
  518. package/dist/packem_shared/CursorContext-JxRzlqAx.js +0 -9
  519. package/dist/packem_shared/DevTools-aMPIsaHx.js +0 -61
  520. package/dist/packem_shared/Dialog-DsSNAVgC.js +0 -71
  521. package/dist/packem_shared/DiffView-hqaw-2S6.js +0 -329
  522. package/dist/packem_shared/FilePicker-DNwFxRhq.js +0 -254
  523. package/dist/packem_shared/FocusContext-CWkYtgcm.js +0 -26
  524. package/dist/packem_shared/FocusContext-D5wFxSRz.js +0 -153
  525. package/dist/packem_shared/Fullscreen-DrElAE1o.js +0 -11
  526. package/dist/packem_shared/Gradient-Ql5P0GUd.js +0 -136
  527. package/dist/packem_shared/Help-6wanGG38.js +0 -112
  528. package/dist/packem_shared/IMECompositionBuffer-Dl3S0KnF.js +0 -55
  529. package/dist/packem_shared/InputParser-BKHpWfvN.js +0 -156
  530. package/dist/packem_shared/LayoutNode-Cjnsodiy.js +0 -131
  531. package/dist/packem_shared/Link-COcKYfGT.js +0 -66
  532. package/dist/packem_shared/Markdown-y1ISztof.js +0 -212
  533. package/dist/packem_shared/MouseProvider-Y9TSSEGl.js +0 -136
  534. package/dist/packem_shared/MultiSelect-ChoLUcDI.js +0 -129
  535. package/dist/packem_shared/NAMED_COLORS-a4QBvb5r.js +0 -262
  536. package/dist/packem_shared/Newline-DBtYEg8x.js +0 -7
  537. package/dist/packem_shared/OrderedList-Cp7pXr6m.js +0 -26
  538. package/dist/packem_shared/Paginator-D1AuD-kj.js +0 -104
  539. package/dist/packem_shared/ProgressBar-DOfpVagn.js +0 -22
  540. package/dist/packem_shared/Renderer-zZ5O3vxc.js +0 -31
  541. package/dist/packem_shared/ResizeObserverEntry-Br4seLeQ.js +0 -102
  542. package/dist/packem_shared/ScrollBar-EWAs2Uc7.js +0 -106
  543. package/dist/packem_shared/ScrollBarBox-DTNNlh7R.js +0 -72
  544. package/dist/packem_shared/ScrollList-DCeIFL8M.js +0 -227
  545. package/dist/packem_shared/ScrollView-v3MCNIyX.js +0 -196
  546. package/dist/packem_shared/SelectInput-BN2TMyxp.js +0 -260
  547. package/dist/packem_shared/SelectInputIndicator-DkRMoH_b.js +0 -9
  548. package/dist/packem_shared/SelectInputItem-BF9LQgKu.js +0 -8
  549. package/dist/packem_shared/Slider-BWD7xZX6.js +0 -116
  550. package/dist/packem_shared/Spacer-Bs4ER-HK.js +0 -8
  551. package/dist/packem_shared/Spinner-BuI-kN4p.js +0 -1799
  552. package/dist/packem_shared/Static-DpTd6Eed.js +0 -22
  553. package/dist/packem_shared/Static-xmD9giJj.js +0 -18
  554. package/dist/packem_shared/StaticRender-tYwH6QXl.js +0 -33
  555. package/dist/packem_shared/StatusMessage-BtSYxzwb.js +0 -14
  556. package/dist/packem_shared/StderrContext-Bj4Mf7v7.js +0 -17
  557. package/dist/packem_shared/StdinContext-Bq_GNJ3z.js +0 -38
  558. package/dist/packem_shared/StdoutContext-CgjWeCdO.js +0 -17
  559. package/dist/packem_shared/Stopwatch-DjtTCyHn.js +0 -23
  560. package/dist/packem_shared/Tab-C6r5q4hR.js +0 -7
  561. package/dist/packem_shared/Table-D-rSVlzb.js +0 -82
  562. package/dist/packem_shared/Tabs-hki-KRnx.js +0 -153
  563. package/dist/packem_shared/Text-DvAUdZcK.js +0 -65
  564. package/dist/packem_shared/TextInput-C79WEQ5U.js +0 -137
  565. package/dist/packem_shared/Textarea-Dj06R6Zd.js +0 -272
  566. package/dist/packem_shared/Timer-wi9zuh4n.js +0 -22
  567. package/dist/packem_shared/Transform-BHxY_dAM.js +0 -14
  568. package/dist/packem_shared/TreeNodeMap-CtJUvBnd.js +0 -155
  569. package/dist/packem_shared/TreeView-C2062dtj.js +0 -148
  570. package/dist/packem_shared/TuiApp-DfxOnXqi.js +0 -120
  571. package/dist/packem_shared/TuiContext-CqEjMyXd.js +0 -415
  572. package/dist/packem_shared/UnorderedList-DhnadWjX.js +0 -33
  573. package/dist/packem_shared/ansi-parser-0BdVTKho.js +0 -41
  574. package/dist/packem_shared/ansi-tokenizer-LHq2LUWA.js +0 -307
  575. package/dist/packem_shared/boxes-oi3WUbyR.js +0 -92
  576. package/dist/packem_shared/colorize-88_Vk8cn.js +0 -48
  577. package/dist/packem_shared/comparePoints-CGMDnd3_.js +0 -287
  578. package/dist/packem_shared/createInlineLoop-BxMmcq9D.js +0 -93
  579. package/dist/packem_shared/createLinkedScrollGroup-Djw4Ceo0.js +0 -44
  580. package/dist/packem_shared/dom-DvzhsAez.js +0 -225
  581. package/dist/packem_shared/format-time-BGmnDukX.js +0 -12
  582. package/dist/packem_shared/getPathToRoot-a1wbwxfL.js +0 -4
  583. package/dist/packem_shared/getScrollHeight-BubfU_df.js +0 -63
  584. package/dist/packem_shared/input-utils-ViAEXa0Z.js +0 -19
  585. package/dist/packem_shared/isIntersecting-fEXHJN5R.js +0 -10
  586. package/dist/packem_shared/isOsc52Supported-G0k4sXJx.js +0 -36
  587. package/dist/packem_shared/isTerminalPaletteQuerySupported-EeiwMKbr.js +0 -93
  588. package/dist/packem_shared/kittyFlags-bNNf_9kX.js +0 -26
  589. package/dist/packem_shared/measure-element-Reza_yfC.js +0 -396
  590. package/dist/packem_shared/measure-text-DItZYotK.js +0 -1189
  591. package/dist/packem_shared/measureElement-CTgFCmKd.js +0 -4
  592. package/dist/packem_shared/mouse-context-BUHWKEIe.js +0 -6
  593. package/dist/packem_shared/parseSgrMouse-BHVBPP9G.js +0 -1
  594. package/dist/packem_shared/processLayout-BQ9kXfd3.js +0 -2
  595. package/dist/packem_shared/reconciler-BXf6miSS.js +0 -211
  596. package/dist/packem_shared/reconciler-gfmqURLy.js +0 -680
  597. package/dist/packem_shared/render-BAwdjfki.js +0 -2806
  598. package/dist/packem_shared/render-Bpjhf0lD.js +0 -195
  599. package/dist/packem_shared/renderToString-Cfg55DRD.js +0 -62
  600. package/dist/packem_shared/renderToString-ClIaXgrC.js +0 -86
  601. package/dist/packem_shared/renderTreeToBuffer-D3mo7M7m.js +0 -308
  602. package/dist/packem_shared/renderer-B3wROkeg.js +0 -1431
  603. package/dist/packem_shared/setEnableStyledLineCache-BpskngSJ.js +0 -2
  604. package/dist/packem_shared/squashTextNodesWithMap-iqm6OMMT.js +0 -100
  605. package/dist/packem_shared/text-width-DhuarWcB.js +0 -42
  606. package/dist/packem_shared/token-to-elements-BRFl_rzw.js +0 -249
  607. package/dist/packem_shared/treeViewTheme-BpSw9TMf.js +0 -52
  608. package/dist/packem_shared/useAnimation-kj31sA-T.js +0 -62
  609. package/dist/packem_shared/useApp-DPQlRzi5.js +0 -6
  610. package/dist/packem_shared/useBoxMetrics-rBjKc-g4.js +0 -54
  611. package/dist/packem_shared/useClipboard-B_9-adw1.js +0 -23
  612. package/dist/packem_shared/useColorBlindness-D_sTIhcb.js +0 -30
  613. package/dist/packem_shared/useConsoleCapture-Dvt7G1W1.js +0 -61
  614. package/dist/packem_shared/useCursor-BIJzc8k9.js +0 -19
  615. package/dist/packem_shared/useElementDimensions-CAoKitVD.js +0 -67
  616. package/dist/packem_shared/useFocus-CNl5QHHf.js +0 -37
  617. package/dist/packem_shared/useFocusManager-BPYaUuKQ.js +0 -16
  618. package/dist/packem_shared/useInput-Cfp5zB2s.js +0 -594
  619. package/dist/packem_shared/useIsScreenReaderEnabled-CnGKCe0f.js +0 -9
  620. package/dist/packem_shared/useKeyBindings-B78l1E1n.js +0 -66
  621. package/dist/packem_shared/useMouseAction-C5gZ2nj7.js +0 -29
  622. package/dist/packem_shared/useMouseContext-D-rFy60Q.js +0 -12
  623. package/dist/packem_shared/useMousePosition-BHBJ-kBk.js +0 -25
  624. package/dist/packem_shared/useOnMouseClick--ZIyBOBO.js +0 -35
  625. package/dist/packem_shared/useOnMouseHover-26diuXUC.js +0 -32
  626. package/dist/packem_shared/useOnMouseState-NO_Kda_C.js +0 -13
  627. package/dist/packem_shared/usePaste-Ct8J4AGR.js +0 -35
  628. package/dist/packem_shared/useScrollAcceleration-R9LfrPVG.js +0 -73
  629. package/dist/packem_shared/useScrollInput-D3CpBq_a.js +0 -72
  630. package/dist/packem_shared/useStderr-CAOVUh4E.js +0 -6
  631. package/dist/packem_shared/useStdin-X-O0kd-n.js +0 -7
  632. package/dist/packem_shared/useStdout-DyF6DSH0.js +0 -6
  633. package/dist/packem_shared/useStopwatch-qC4Beai4.js +0 -33
  634. package/dist/packem_shared/useTerminalPalette-BaWO2c4Q.js +0 -38
  635. package/dist/packem_shared/useTextBuffer-C8fEe9Ly.js +0 -398
  636. package/dist/packem_shared/useTextSelection-mXtxgsPK.js +0 -50
  637. package/dist/packem_shared/useTimer-CPQ7j827.js +0 -46
  638. package/dist/packem_shared/useTreeView-BT57P3Kx.js +0 -101
  639. package/dist/packem_shared/useTreeViewState-BpS_KZ-K.js +0 -502
  640. package/dist/packem_shared/useWindowSize-ugEmGZJm.js +0 -20
  641. package/dist/packem_shared/utils-BgdlrbOH.js +0 -140
  642. package/dist/packem_shared/variant-config-DSZoX5TM.js +0 -8
  643. package/dist/packem_shared/wrapOrTruncateStyledLine-DN3Nogoc.js +0 -147
  644. package/dist/react/devtools.d.ts +0 -27
  645. package/dist/react/focus.d.ts +0 -39
  646. package/dist/react/hooks.d.ts +0 -238
  647. package/dist/react/layout.d.ts +0 -35
  648. package/dist/react/react.d.ts +0 -57
  649. package/dist/react/reconciler.d.ts +0 -4
  650. package/dist/react/render-to-string.d.ts +0 -21
  651. package/dist/react/renderer.d.ts +0 -2
  652. package/dist/react/scene.d.ts +0 -3
  653. package/dist/react/static.d.ts +0 -39
  654. package/dist/react/styles.d.ts +0 -83
  655. package/dist/react/text-width.d.ts +0 -20
  656. package/dist/testing/keys.d.ts +0 -89
  657. package/dist/testing/screen.d.ts +0 -35
  658. package/dist/testing/wait-for.d.ts +0 -21
@@ -1,58 +1,66 @@
1
- import type { RefObject } from "react";
2
- import type { DOMElement } from '../dom.d.ts';
1
+ import { RefObject } from 'react';
2
+ import { D as DOMElement } from "../../packem_shared/dom.d-C1IxuLJ9.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';
3
9
  /**
4
- * Metrics of a box element.
5
- *
6
- * All positions are relative to the element's parent.
7
- */
8
- export type BoxMetrics = {
9
- /**
10
- * Element height.
11
- */
12
- readonly height: number;
13
- /**
14
- * Distance from the left edge of the parent.
15
- */
16
- readonly left: number;
17
- /**
18
- * Distance from the top edge of the parent.
19
- */
20
- readonly top: number;
21
- /**
22
- * Element width.
23
- */
24
- readonly width: number;
10
+ * Metrics of a box element.
11
+ *
12
+ * All positions are relative to the element's parent.
13
+ */
14
+ type BoxMetrics = {
15
+ /**
16
+ * Element height.
17
+ */
18
+ readonly height: number;
19
+ /**
20
+ * Distance from the left edge of the parent.
21
+ */
22
+ readonly left: number;
23
+ /**
24
+ * Distance from the top edge of the parent.
25
+ */
26
+ readonly top: number;
27
+ /**
28
+ * Element width.
29
+ */
30
+ readonly width: number;
25
31
  };
26
- export type UseBoxMetricsResult = BoxMetrics & {
27
- /**
28
- * Whether the currently tracked element has been measured in the latest layout pass.
29
- */
30
- readonly hasMeasured: boolean;
32
+ type UseBoxMetricsResult = BoxMetrics & {
33
+ /**
34
+ * Whether the currently tracked element has been measured in the latest layout pass.
35
+ */
36
+ readonly hasMeasured: boolean;
31
37
  };
32
38
  /**
33
- * A React hook that returns the current layout metrics for a tracked box element.
34
- * It updates when layout changes (for example terminal resize, sibling/content changes, or position changes).
35
- *
36
- * The hook returns `{width: 0, height: 0, left: 0, top: 0}` until the first layout pass completes. It also returns zeros when the tracked ref is detached.
37
- *
38
- * Use `hasMeasured` to detect when the currently tracked element has been measured.
39
- * @example
40
- * ```tsx
39
+ * A React hook that returns the current layout metrics for a tracked box element.
40
+ * It updates when layout changes (for example terminal resize, sibling/content changes, or position changes).
41
+ *
42
+ * The hook returns `{width: 0, height: 0, left: 0, top: 0}` until the first layout pass completes. It also returns zeros when the tracked ref is detached.
43
+ *
44
+ * Use `hasMeasured` to detect when the currently tracked element has been measured.
45
+ * @example
46
+ * ```tsx
41
47
  import {useRef} from 'react';
42
- import {Box, Text, useBoxMetrics} from 'ink';
43
-
48
+ import {Box} from '@visulima/tui/components/box';
49
+ import {Text} from '@visulima/tui/components/text';
50
+ import {useBoxMetrics} from '@visulima/tui/hooks/use-box-metrics';
51
+
44
52
  const Example = () => {
45
- const ref = useRef(null);
46
- const {width, height, left, top, hasMeasured} = useBoxMetrics(ref);
47
- return (
48
- <Box ref={ref}>
49
- <Text>
50
- {hasMeasured ? `${width}x${height} at ${left},${top}` : 'Measuring...'}
51
- </Text>
52
- </Box>
53
- );
53
+ const ref = useRef(null);
54
+ const {width, height, left, top, hasMeasured} = useBoxMetrics(ref);
55
+ return (
56
+ <Box ref={ref}>
57
+ <Text>
58
+ {hasMeasured ? `${width}x${height} at ${left},${top}` : 'Measuring...'}
59
+ </Text>
60
+ </Box>
61
+ );
54
62
  };
55
63
  ```
56
- */
57
- declare const useBoxMetrics: (ref: RefObject<DOMElement>) => UseBoxMetricsResult;
58
- export default useBoxMetrics;
64
+ */
65
+ declare const useBoxMetrics: (ref: RefObject<DOMElement | null>) => UseBoxMetricsResult;
66
+ export { BoxMetrics, UseBoxMetricsResult, useBoxMetrics as default, useBoxMetrics };
@@ -0,0 +1 @@
1
+ var p=Object.defineProperty;var n=(t,r)=>p(t,"name",{value:r,configurable:!0});import{useState as s,useCallback as m,useEffect as i,useMemo as g}from"react";import{a as N}from"../../packem_shared/dom-BG-LS10p.js";var v=Object.defineProperty,f=n((t,r)=>v(t,"name",{value:r,configurable:!0}),"n");const d={height:0,left:0,top:0,width:0},c=f(t=>{if(t)return t.parentNode?c(t.parentNode):t.nodeName==="ink-root"?t:void 0},"findRootNode"),w=f(t=>{const[r,h]=s(d),[a,l]=s(!1),u=m(()=>{const e=t.current?.yogaNode?.getComputedLayout()??d;h(o=>o.width!==e.width||o.height!==e.height||o.left!==e.left||o.top!==e.top?e:o),l(!!t.current)},[t]);return i(u),i(()=>{const e=c(t.current);if(e)return N(e,u)}),g(()=>({...r,hasMeasured:a}),[r,a])},"useBoxMetrics");export{w as default,w as useBoxMetrics};
@@ -1,29 +1,30 @@
1
- import type { ClipboardTarget } from "../clipboard.d.ts";
2
- export type UseClipboardOptions = {
3
- /**
4
- * The clipboard target to write to.
5
- * @default "c"
6
- */
7
- readonly target?: ClipboardTarget;
1
+ import { C as ClipboardTarget } from "../../packem_shared/clipboard.d-D6lZTQ21.js";
2
+ import 'node:stream';
3
+ type UseClipboardOptions = {
4
+ /**
5
+ * The clipboard target to write to.
6
+ * @default "c"
7
+ */
8
+ readonly target?: ClipboardTarget;
8
9
  };
9
- export type UseClipboardResult = {
10
- /**
11
- * Copy text to the system clipboard.
12
- * No-op if the terminal does not support OSC 52.
13
- */
14
- readonly copy: (text: string) => void;
15
- /**
16
- * Whether the current terminal supports OSC 52 clipboard operations.
17
- */
18
- readonly isSupported: boolean;
10
+ type UseClipboardResult = {
11
+ /**
12
+ * Copy text to the system clipboard.
13
+ * No-op if the terminal does not support OSC 52.
14
+ */
15
+ readonly copy: (text: string) => void;
16
+ /**
17
+ * Whether the current terminal supports OSC 52 clipboard operations.
18
+ */
19
+ readonly isSupported: boolean;
19
20
  };
20
21
  /**
21
- * Hook that provides clipboard write access via OSC 52.
22
- *
23
- * ```tsx
24
- * const { copy, isSupported } = useClipboard();
25
- * copy("Hello, clipboard!");
26
- * ```
27
- */
22
+ * Hook that provides clipboard write access via OSC 52.
23
+ *
24
+ * ```tsx
25
+ * const { copy, isSupported } = useClipboard();
26
+ * copy("Hello, clipboard!");
27
+ * ```
28
+ */
28
29
  declare const useClipboard: (options?: UseClipboardOptions) => UseClipboardResult;
29
- export default useClipboard;
30
+ export { UseClipboardOptions, UseClipboardResult, useClipboard as default, useClipboard };
@@ -0,0 +1 @@
1
+ var i=Object.defineProperty;var s=(r,e)=>i(r,"name",{value:e,configurable:!0});import{useMemo as p,useCallback as c}from"react";import{isOsc52Supported as l,writeOsc52 as m}from"../../packem_shared/isOsc52Supported-DKK7Uee6.js";import d from"./use-stdout.js";var f=Object.defineProperty,n=s((r,e)=>f(r,"name",{value:e,configurable:!0}),"s");const g=n((r={})=>{const{target:e="c"}=r,{stdout:t}=d(),o=p(()=>l(),[]),a=c(u=>{!o||!t||m(t,u,e)},[o,t,e]);return p(()=>({copy:a,isSupported:o}),[a,o])},"useClipboard");export{g as default,g as useClipboard};
@@ -1,33 +1,33 @@
1
- import type { ColorBlindnessType, ColorMatrix } from "../color-matrix.d.ts";
2
- export type UseColorBlindnessOptions = {
3
- /**
4
- * Use compensation mode (shift colors to distinguishable range)
5
- * instead of simulation mode (show how colors appear to affected users).
6
- * Not available for achromatopsia.
7
- * @default false
8
- */
9
- readonly compensate?: boolean;
10
- /**
11
- * Type of color vision deficiency to simulate or compensate for.
12
- * @default "none"
13
- */
14
- readonly mode?: ColorBlindnessType | "none";
1
+ import { C as ColorBlindnessType, a as ColorMatrix } from "../../packem_shared/color-matrix.d-DSXLsB64.js";
2
+ type UseColorBlindnessOptions = {
3
+ /**
4
+ * Use compensation mode (shift colors to distinguishable range)
5
+ * instead of simulation mode (show how colors appear to affected users).
6
+ * Not available for achromatopsia.
7
+ * @default false
8
+ */
9
+ readonly compensate?: boolean;
10
+ /**
11
+ * Type of color vision deficiency to simulate or compensate for.
12
+ * @default "none"
13
+ */
14
+ readonly mode?: ColorBlindnessType | "none";
15
15
  };
16
- export type UseColorBlindnessResult = {
17
- /** Whether a transform is active (mode is not "none"). */
18
- readonly isActive: boolean;
19
- /** The active color matrix. */
20
- readonly matrix: ColorMatrix;
21
- /** Transform a hex color string through the active matrix. */
22
- readonly transformColor: (hex: string) => string;
16
+ type UseColorBlindnessResult = {
17
+ /** Whether a transform is active (mode is not "none"). */
18
+ readonly isActive: boolean;
19
+ /** The active color matrix. */
20
+ readonly matrix: ColorMatrix;
21
+ /** Transform a hex color string through the active matrix. */
22
+ readonly transformColor: (hex: string) => string;
23
23
  };
24
24
  /**
25
- * Hook for color blindness simulation and compensation.
26
- *
27
- * ```tsx
28
- * const { transformColor } = useColorBlindness({ mode: "deuteranopia" });
29
- * &lt;Text color={transformColor("#ff0000")}>This text&lt;/Text>
30
- * ```
31
- */
25
+ * Hook for color blindness simulation and compensation.
26
+ *
27
+ * ```tsx
28
+ * const { transformColor } = useColorBlindness({ mode: "deuteranopia" });
29
+ * &lt;Text color={transformColor("#ff0000")}>This text&lt;/Text>
30
+ * ```
31
+ */
32
32
  declare const useColorBlindness: (options?: UseColorBlindnessOptions) => UseColorBlindnessResult;
33
- export default useColorBlindness;
33
+ export { UseColorBlindnessOptions, UseColorBlindnessResult, useColorBlindness as default, useColorBlindness };
@@ -0,0 +1 @@
1
+ var l=Object.defineProperty;var m=(r,e)=>l(r,"name",{value:e,configurable:!0});import{useMemo as i,useCallback as u}from"react";import{IDENTITY_MATRIX as c,COLOR_BLINDNESS_COMPENSATION as f,COLOR_BLINDNESS_SIMULATION as C,transformHexColor as I}from"../../packem_shared/COLOR_BLINDNESS_SIMULATION-DqErf7XX.js";var N=Object.defineProperty,O=m((r,e)=>N(r,"name",{value:e,configurable:!0}),"i");const L=O((r={})=>{const{compensate:e=!1,mode:o="none"}=r,n=i(()=>o==="none"?c:e&&o!=="achromatopsia"?f[o]:C[o],[o,e]),s=o!=="none",a=u(t=>s?I(t,n):t,[s,n]);return i(()=>({isActive:s,matrix:n,transformColor:a}),[s,n,a])},"useColorBlindness");export{L as default,L as useColorBlindness};
@@ -1,43 +1,43 @@
1
- export type ConsoleLevel = "debug" | "error" | "info" | "log" | "warn";
2
- export type ConsoleEntry = {
3
- readonly id: number;
4
- readonly level: ConsoleLevel;
5
- readonly message: string;
6
- readonly timestamp: number;
1
+ type ConsoleLevel = "debug" | "error" | "info" | "log" | "warn";
2
+ type ConsoleEntry = {
3
+ readonly id: number;
4
+ readonly level: ConsoleLevel;
5
+ readonly message: string;
6
+ readonly timestamp: number;
7
7
  };
8
- export type UseConsoleCaptureOptions = {
9
- /**
10
- * Which console levels to capture.
11
- * @default ["log", "info", "warn", "error", "debug"]
12
- */
13
- readonly filter?: ReadonlyArray<ConsoleLevel>;
14
- /**
15
- * Enable or disable capture.
16
- * @default true
17
- */
18
- readonly isActive?: boolean;
19
- /**
20
- * Maximum number of entries to keep in the buffer.
21
- * @default 200
22
- */
23
- readonly maxEntries?: number;
8
+ type UseConsoleCaptureOptions = {
9
+ /**
10
+ * Which console levels to capture.
11
+ * @default ["log", "info", "warn", "error", "debug"]
12
+ */
13
+ readonly filter?: ReadonlyArray<ConsoleLevel>;
14
+ /**
15
+ * Enable or disable capture.
16
+ * @default true
17
+ */
18
+ readonly isActive?: boolean;
19
+ /**
20
+ * Maximum number of entries to keep in the buffer.
21
+ * @default 200
22
+ */
23
+ readonly maxEntries?: number;
24
24
  };
25
- export type UseConsoleCaptureResult = {
26
- /** Clear all captured entries. */
27
- readonly clear: () => void;
28
- /** Captured console entries (newest last). */
29
- readonly entries: ReadonlyArray<ConsoleEntry>;
25
+ type UseConsoleCaptureResult = {
26
+ /** Clear all captured entries. */
27
+ readonly clear: () => void;
28
+ /** Captured console entries (newest last). */
29
+ readonly entries: ReadonlyArray<ConsoleEntry>;
30
30
  };
31
31
  /**
32
- * Hook that captures console output into a React state buffer.
33
- *
34
- * **Note:** Only one active `useConsoleCapture` instance should exist at a time.
35
- * The `ConsoleOverlay` component uses this hook internally — do not use both
36
- * simultaneously unless the hook instance has `isActive: false`.
37
- *
38
- * ```tsx
39
- * const { entries, clear } = useConsoleCapture({ maxEntries: 100 });
40
- * ```
41
- */
32
+ * Hook that captures console output into a React state buffer.
33
+ *
34
+ * **Note:** Only one active `useConsoleCapture` instance should exist at a time.
35
+ * The `ConsoleOverlay` component uses this hook internally — do not use both
36
+ * simultaneously unless the hook instance has `isActive: false`.
37
+ *
38
+ * ```tsx
39
+ * const { entries, clear } = useConsoleCapture({ maxEntries: 100 });
40
+ * ```
41
+ */
42
42
  declare const useConsoleCapture: (options?: UseConsoleCaptureOptions) => UseConsoleCaptureResult;
43
- export default useConsoleCapture;
43
+ export { ConsoleEntry, ConsoleLevel, UseConsoleCaptureOptions, UseConsoleCaptureResult, useConsoleCapture as default, useConsoleCapture };
@@ -0,0 +1 @@
1
+ var h=Object.defineProperty;var g=(n,r)=>h(n,"name",{value:r,configurable:!0});import{useState as j,useRef as w,useMemo as y,useEffect as x,useCallback as A}from"react";var E=Object.defineProperty,O=g((n,r)=>E(n,"name",{value:r,configurable:!0}),"d");const u=["log","info","warn","error","debug"],J=O((n={})=>{const{filter:r=u,isActive:c=!0,maxEntries:s=200}=n,[i,l]=j([]),d=w(0),v=Array.isArray(r)?r.toSorted().join(","):"",f=y(()=>r,[v]);x(()=>{if(!c)return;const o={},b=new Set(f);for(const e of u)b.has(e)&&(o[e]=console[e],console[e]=(...m)=>{o[e]?.apply(console,m);const C=m.map(t=>{if(typeof t=="string")return t;try{return JSON.stringify(t)}catch{return String(t)}}).join(" ");l(t=>{const S={id:++d.current,level:e,message:C,timestamp:Date.now()},a=[...t,S];return a.length>s?a.slice(-s):a})});return()=>{for(const e of u)o[e]&&(console[e]=o[e])}},[c,s,f]);const p=A(()=>{l([])},[]);return y(()=>({clear:p,entries:i}),[p,i])},"useConsoleCapture");export{J as default,J as useConsoleCapture};
@@ -1,12 +1,13 @@
1
- import type { CursorPosition } from "../log-update.d.ts";
1
+ import 'node:stream';
2
+ import { a as CursorPosition } from "../../packem_shared/cursor-helpers.d-BONB9tky.js";
2
3
  /**
3
- * A React hook that returns methods to control the terminal cursor position.
4
- *
5
- * Setting a cursor position makes the cursor visible at the specified coordinates (relative to the Ink output origin). This is useful for IME (Input Method Editor) support, where the composing character is displayed at the cursor location.
6
- *
7
- * Pass `undefined` to hide the cursor.
8
- */
4
+ * A React hook that returns methods to control the terminal cursor position.
5
+ *
6
+ * Setting a cursor position makes the cursor visible at the specified coordinates (relative to the Ink output origin). This is useful for IME (Input Method Editor) support, where the composing character is displayed at the cursor location.
7
+ *
8
+ * Pass `undefined` to hide the cursor.
9
+ */
9
10
  declare const useCursor: () => {
10
- setCursorPosition: (position: CursorPosition | undefined) => void;
11
+ setCursorPosition: (position: CursorPosition | undefined) => void;
11
12
  };
12
- export default useCursor;
13
+ export { useCursor as default, useCursor };
@@ -0,0 +1 @@
1
+ var u=Object.defineProperty;var o=(r,e)=>u(r,"name",{value:e,configurable:!0});import{useContext as i,useRef as n,useCallback as a,useInsertionEffect as c}from"react";import{o as f}from"../../packem_shared/cursor-context-CFviBqPX.js";var C=Object.defineProperty,l=o((r,e)=>C(r,"name",{value:e,configurable:!0}),"r");const p=l(()=>{const r=i(f),e=n(void 0),s=a(t=>{e.current=t},[]);return c(()=>(r.setCursorPosition(e.current),()=>{r.setCursorPosition(void 0)})),{setCursorPosition:s}},"useCursor");export{p as default,p as useCursor};
@@ -1,42 +1,57 @@
1
- import type { Props } from '../components/FocusContext.d.ts';
1
+ import 'react';
2
+ type Props = {
3
+ readonly activate: (id: string) => void;
4
+ readonly activeId?: string;
5
+ readonly add: (id: string, options: {
6
+ autoFocus: boolean;
7
+ }) => void;
8
+ readonly deactivate: (id: string) => void;
9
+ readonly disableFocus: () => void;
10
+ readonly enableFocus: () => void;
11
+ readonly focus: (id: string) => void;
12
+ readonly focusNext: () => void;
13
+ readonly focusPrevious: () => void;
14
+ readonly remove: (id: string) => void;
15
+ };
2
16
  type Output = {
3
- /**
4
- * The ID of the currently focused component, or `undefined` if no component is focused.
5
- * @example
6
- * ```tsx
7
- * import {Text, useFocusManager} from 'ink';
8
- *
9
- * const Example = () => {
10
- * const {activeId} = useFocusManager();
11
- *
12
- * return <Text>Focused: {activeId ?? 'none'}</Text>;
13
- * };
14
- * ```
15
- */
16
- activeId: Props["activeId"];
17
- /**
18
- * Disable focus management for all components. The currently active component (if there's one) will lose its focus.
19
- */
20
- disableFocus: Props["disableFocus"];
21
- /**
22
- * Enable focus management for all components.
23
- */
24
- enableFocus: Props["enableFocus"];
25
- /**
26
- * Switch focus to the element with provided `id`. If there's no element with that `id`, focus is not changed.
27
- */
28
- focus: Props["focus"];
29
- /**
30
- * Switch focus to the next focusable component. If there's no active component right now, focus will be given to the first focusable component. If the active component is the last in the list of focusable components, focus will be switched to the first focusable component.
31
- */
32
- focusNext: Props["focusNext"];
33
- /**
34
- * Switch focus to the previous focusable component. If there's no active component right now, focus will be given to the first focusable component. If the active component is the first in the list of focusable components, focus will be switched to the last focusable component.
35
- */
36
- focusPrevious: Props["focusPrevious"];
17
+ /**
18
+ * The ID of the currently focused component, or `undefined` if no component is focused.
19
+ * @example
20
+ * ```tsx
21
+ * import {Text} from '@visulima/tui/components/text';
22
+ * import {useFocusManager} from '@visulima/tui/hooks/use-focus-manager';
23
+ *
24
+ * const Example = () => {
25
+ * const {activeId} = useFocusManager();
26
+ *
27
+ * return <Text>Focused: {activeId ?? 'none'}</Text>;
28
+ * };
29
+ * ```
30
+ */
31
+ activeId: Props["activeId"];
32
+ /**
33
+ * Disable focus management for all components. The currently active component (if there's one) will lose its focus.
34
+ */
35
+ disableFocus: Props["disableFocus"];
36
+ /**
37
+ * Enable focus management for all components.
38
+ */
39
+ enableFocus: Props["enableFocus"];
40
+ /**
41
+ * Switch focus to the element with provided `id`. If there's no element with that `id`, focus is not changed.
42
+ */
43
+ focus: Props["focus"];
44
+ /**
45
+ * Switch focus to the next focusable component. If there's no active component right now, focus will be given to the first focusable component. If the active component is the last in the list of focusable components, focus will be switched to the first focusable component.
46
+ */
47
+ focusNext: Props["focusNext"];
48
+ /**
49
+ * Switch focus to the previous focusable component. If there's no active component right now, focus will be given to the first focusable component. If the active component is the first in the list of focusable components, focus will be switched to the last focusable component.
50
+ */
51
+ focusPrevious: Props["focusPrevious"];
37
52
  };
38
53
  /**
39
- * A React hook that returns methods to enable or disable focus management for all components or manually switch focus to the next or previous components.
40
- */
54
+ * A React hook that returns methods to enable or disable focus management for all components or manually switch focus to the next or previous components.
55
+ */
41
56
  declare const useFocusManager: () => Output;
42
- export default useFocusManager;
57
+ export { useFocusManager as default, useFocusManager };
@@ -0,0 +1 @@
1
+ var u=Object.defineProperty;var s=(e,o)=>u(e,"name",{value:o,configurable:!0});import{useContext as c}from"react";import{o as a}from"../../packem_shared/focus-context-CsT69klR.js";var r=Object.defineProperty,t=s((e,o)=>r(e,"name",{value:o,configurable:!0}),"s");const l=t(()=>{const e=c(a);return{activeId:e.activeId,disableFocus:e.disableFocus,enableFocus:e.enableFocus,focus:e.focus,focusNext:e.focusNext,focusPrevious:e.focusPrevious}},"useFocusManager");export{l as default,l as useFocusManager};
@@ -1,30 +1,34 @@
1
1
  type Input = {
2
- /**
3
- * Auto-focus this component if there's no active (focused) component right now.
4
- */
5
- autoFocus?: boolean;
6
- /**
7
- * Assign an ID to this component, so it can be programmatically focused with `focus(id)`.
8
- */
9
- id?: string;
10
- /**
11
- * Enable or disable this component's focus, while still maintaining its position in the list of focusable components.
12
- */
13
- isActive?: boolean;
2
+ /**
3
+ * Auto-focus this component if there's no active (focused) component right now.
4
+ */
5
+ autoFocus?: boolean;
6
+ /**
7
+ * Assign an ID to this component, so it can be programmatically focused with `focus(id)`.
8
+ */
9
+ id?: string;
10
+ /**
11
+ * Enable or disable this component's focus, while still maintaining its position in the list of focusable components.
12
+ */
13
+ isActive?: boolean;
14
14
  };
15
15
  type Output = {
16
- /**
17
- * Allows focusing a specific element with the provided `id`.
18
- */
19
- focus: (id: string) => void;
20
- /**
21
- * Determines whether this component is focused.
22
- */
23
- isFocused: boolean;
16
+ /**
17
+ * Allows focusing a specific element with the provided `id`.
18
+ */
19
+ focus: (id: string) => void;
20
+ /**
21
+ * Determines whether this component is focused.
22
+ */
23
+ isFocused: boolean;
24
24
  };
25
25
  /**
26
- * A React hook that returns focus state and focus controls for the current component.
27
- * A component that uses the `useFocus` hook becomes "focusable" to Ink, so when the user presses &lt;kbd>Tab&lt;/kbd>, Ink will switch focus to this component. If there are multiple components that execute the `useFocus` hook, focus will be given to them in the order in which these components are rendered.
28
- */
29
- declare const useFocus: ({ autoFocus, id: customId, isActive }?: Input) => Output;
30
- export default useFocus;
26
+ * A React hook that returns focus state and focus controls for the current component.
27
+ * A component that uses the `useFocus` hook becomes "focusable" to Ink, so when the user presses &lt;kbd>Tab&lt;/kbd>, Ink will switch focus to this component. If there are multiple components that execute the `useFocus` hook, focus will be given to them in the order in which these components are rendered.
28
+ */
29
+ declare const useFocus: ({
30
+ autoFocus,
31
+ id: customId,
32
+ isActive
33
+ }?: Input) => Output;
34
+ export { useFocus as default, useFocus };
@@ -0,0 +1 @@
1
+ var v=Object.defineProperty;var r=(t,o)=>v(t,"name",{value:o,configurable:!0});import{useContext as l,useMemo as F,useEffect as a}from"react";import{o as M}from"../../packem_shared/focus-context-CsT69klR.js";import x from"./use-stdin.js";var b=Object.defineProperty,g=r((t,o)=>b(t,"name",{value:o,configurable:!0}),"n");const j=g(({autoFocus:t=!1,id:o,isActive:s=!0}={})=>{const{isRawModeSupported:c,setRawMode:u}=x(),{activate:i,activeId:f,add:d,deactivate:n,focus:m,remove:p}=l(M),e=F(()=>o??Math.random().toString().slice(2,7),[o]);return a(()=>(d(e,{autoFocus:t}),()=>{p(e)}),[e,t]),a(()=>{s?i(e):n(e)},[s,e]),a(()=>{if(!(!c||!s))return u(!0),()=>{u(!1)}},[s]),{focus:m,isFocused:!!e&&f===e}},"useFocus");export{j as default,j as useFocus};
@@ -0,0 +1,68 @@
1
+ type ValidationResult = string | undefined;
2
+ type FieldValidator<V> = (value: V, values: Readonly<Record<string, unknown>>) => ValidationResult;
3
+ type FieldConfig<V = unknown> = {
4
+ /**
5
+ * Initial value.
6
+ */
7
+ readonly initialValue: V;
8
+ /**
9
+ * Optional validator. Return a string to indicate an error; return
10
+ * `undefined` for valid.
11
+ */
12
+ readonly validate?: FieldValidator<V>;
13
+ };
14
+ type FormSchema = Readonly<Record<string, FieldConfig<never>>>;
15
+ type FormValues<S extends Readonly<Record<string, FieldConfig>>> = { [K in keyof S]: S[K] extends FieldConfig<infer V> ? V : never };
16
+ type UseFormOptions<S extends Readonly<Record<string, FieldConfig>>> = {
17
+ /**
18
+ * Field declarations.
19
+ */
20
+ readonly fields: S;
21
+ /**
22
+ * Called on submit if all fields validate.
23
+ */
24
+ readonly onSubmit?: (values: FormValues<S>) => void | Promise<void>;
25
+ };
26
+ type UseFormResult<S extends Readonly<Record<string, FieldConfig>>> = {
27
+ /**
28
+ * Map of fieldName -> validation error (if any).
29
+ */
30
+ readonly errors: Readonly<Partial<Record<keyof S, string>>>;
31
+ /**
32
+ * True while the last `submit()` is in-flight.
33
+ */
34
+ readonly isSubmitting: boolean;
35
+ /**
36
+ * Reset all fields back to their initial values and clear errors / touched.
37
+ */
38
+ readonly reset: () => void;
39
+ /**
40
+ * Mark a field as touched. Useful on blur.
41
+ */
42
+ readonly setTouched: <K extends keyof S>(name: K, touched?: boolean) => void;
43
+ /**
44
+ * Update a single field.
45
+ */
46
+ readonly setValue: <K extends keyof S>(name: K, value: FormValues<S>[K]) => void;
47
+ /**
48
+ * Trigger validation and call the `onSubmit` option. Returns true if
49
+ * submission succeeded (all fields valid).
50
+ */
51
+ readonly submit: () => Promise<boolean>;
52
+ /**
53
+ * Map of fieldName -> boolean. Field is considered touched after the
54
+ * first `setTouched(name)` or `submit()` invocation.
55
+ */
56
+ readonly touched: Readonly<Partial<Record<keyof S, boolean>>>;
57
+ /**
58
+ * Current values.
59
+ */
60
+ readonly values: FormValues<S>;
61
+ };
62
+ /**
63
+ * Minimal headless form state machine. Tracks values, touched state, errors,
64
+ * and submission in-flight. Pair with `&lt;Form />` for default layout, or wire
65
+ * up your own inputs directly.
66
+ */
67
+ declare const useForm: <S extends Readonly<Record<string, FieldConfig>>>(options: UseFormOptions<S>) => UseFormResult<S>;
68
+ export { FieldConfig, FieldValidator, FormSchema, FormValues, UseFormOptions, UseFormResult, ValidationResult, useForm as default, useForm };
@@ -0,0 +1 @@
1
+ var R=Object.defineProperty;var h=(n,e)=>R(n,"name",{value:e,configurable:!0});import{useMemo as T,useState as l,useRef as V,useCallback as c}from"react";var w=Object.defineProperty,j=h((n,e)=>w(n,"name",{value:e,configurable:!0}),"R");const I=j(n=>{const e={};for(const o of Object.keys(n))e[o]=n[o].initialValue;return e},"deriveInitialValues"),q=j(n=>{const{fields:e,onSubmit:o}=n,f=T(()=>I(e),[e]),[d,v]=l(f),[p,b]=l({}),[O,m]=l({}),[S,y]=l(!1),u=V(d);u.current=d;const i=c((t,s,r=u.current)=>e[t]?.validate?.(s,r),[e]),F=c((t,s)=>{const r={...u.current,[t]:s};u.current=r,v(r);const a=i(t,s,r);b(k=>{if(a===void 0){const g={...k};return delete g[t],g}return{...k,[t]:a}})},[i]),x=c((t,s=!0)=>{m(r=>({...r,[t]:s}))},[]),C=c(()=>{v(f),b({}),m({})},[f]),P=c(async()=>{const t={},s={};for(const r of Object.keys(e)){s[r]=!0;const a=i(r,u.current[r]);a!==void 0&&(t[r]=a)}if(b(t),m(s),Object.keys(t).length>0)return!1;try{return y(!0),await o?.(u.current),!0}finally{y(!1)}},[e,i,o]);return{errors:p,isSubmitting:S,reset:C,setTouched:x,setValue:F,submit:P,touched:O,values:d}},"useForm");export{q as default,q as useForm};
@@ -0,0 +1,37 @@
1
+ import { Key } from "./use-input.js";
2
+ type HotkeyDescriptor = {
3
+ /**
4
+ * Whether Ctrl must be held.
5
+ */
6
+ readonly ctrl?: boolean;
7
+ /**
8
+ * Character(s) to match after modifiers, e.g. `"s"`, `"?"`, `"k"`.
9
+ * Ignored if `name` is set.
10
+ */
11
+ readonly input?: string;
12
+ /**
13
+ * Whether Meta must be held.
14
+ */
15
+ readonly meta?: boolean;
16
+ /**
17
+ * Named special key, e.g. `"escape"`, `"return"`, `"tab"`, `"upArrow"`.
18
+ */
19
+ readonly name?: keyof Key;
20
+ /**
21
+ * Whether Shift must be held.
22
+ */
23
+ readonly shift?: boolean;
24
+ };
25
+ type UseHotkeyOptions = {
26
+ /**
27
+ * Disable the binding while keeping the component rendered.
28
+ * @default true
29
+ */
30
+ readonly isActive?: boolean;
31
+ };
32
+ /**
33
+ * Bind a keyboard shortcut to a callback. Accepts either a short string
34
+ * (`"ctrl+s"`, `"?"`, `"escape"`) or a structured descriptor.
35
+ */
36
+ declare const useHotkey: (shortcut: HotkeyDescriptor | string, callback: () => void, options?: UseHotkeyOptions) => void;
37
+ export { HotkeyDescriptor, UseHotkeyOptions, useHotkey as default, useHotkey };