@rezi-ui/ink-compat 0.1.0-alpha.3 → 0.1.0-alpha.44

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 (402) hide show
  1. package/README.md +104 -0
  2. package/dist/components/Box.d.ts +61 -39
  3. package/dist/components/Box.d.ts.map +1 -1
  4. package/dist/components/Box.js +3 -12
  5. package/dist/components/Box.js.map +1 -1
  6. package/dist/components/Newline.d.ts +3 -13
  7. package/dist/components/Newline.d.ts.map +1 -1
  8. package/dist/components/Newline.js +4 -8
  9. package/dist/components/Newline.js.map +1 -1
  10. package/dist/components/Spacer.d.ts +1 -7
  11. package/dist/components/Spacer.d.ts.map +1 -1
  12. package/dist/components/Spacer.js +4 -9
  13. package/dist/components/Spacer.js.map +1 -1
  14. package/dist/components/Static.d.ts +12 -26
  15. package/dist/components/Static.d.ts.map +1 -1
  16. package/dist/components/Static.js +12 -13
  17. package/dist/components/Static.js.map +1 -1
  18. package/dist/components/Text.d.ts +28 -7
  19. package/dist/components/Text.d.ts.map +1 -1
  20. package/dist/components/Text.js +4 -11
  21. package/dist/components/Text.js.map +1 -1
  22. package/dist/components/Transform.d.ts +9 -16
  23. package/dist/components/Transform.d.ts.map +1 -1
  24. package/dist/components/Transform.js +11 -11
  25. package/dist/components/Transform.js.map +1 -1
  26. package/dist/hooks/useApp.d.ts +3 -2
  27. package/dist/hooks/useApp.d.ts.map +1 -1
  28. package/dist/hooks/useApp.js +4 -5
  29. package/dist/hooks/useApp.js.map +1 -1
  30. package/dist/hooks/useCursor.d.ts +5 -0
  31. package/dist/hooks/useCursor.d.ts.map +1 -0
  32. package/dist/hooks/useCursor.js +15 -0
  33. package/dist/hooks/useCursor.js.map +1 -0
  34. package/dist/hooks/useFocus.d.ts +5 -25
  35. package/dist/hooks/useFocus.d.ts.map +1 -1
  36. package/dist/hooks/useFocus.js +47 -31
  37. package/dist/hooks/useFocus.js.map +1 -1
  38. package/dist/hooks/useFocusManager.d.ts +2 -4
  39. package/dist/hooks/useFocusManager.d.ts.map +1 -1
  40. package/dist/hooks/useFocusManager.js +9 -12
  41. package/dist/hooks/useFocusManager.js.map +1 -1
  42. package/dist/hooks/useInput.d.ts +4 -9
  43. package/dist/hooks/useInput.d.ts.map +1 -1
  44. package/dist/hooks/useInput.js +15 -118
  45. package/dist/hooks/useInput.js.map +1 -1
  46. package/dist/hooks/useIsScreenReaderEnabled.d.ts +1 -1
  47. package/dist/hooks/useIsScreenReaderEnabled.d.ts.map +1 -1
  48. package/dist/hooks/useIsScreenReaderEnabled.js +4 -4
  49. package/dist/hooks/useIsScreenReaderEnabled.js.map +1 -1
  50. package/dist/hooks/useStderr.d.ts +2 -7
  51. package/dist/hooks/useStderr.d.ts.map +1 -1
  52. package/dist/hooks/useStderr.js +4 -9
  53. package/dist/hooks/useStderr.js.map +1 -1
  54. package/dist/hooks/useStdin.d.ts +4 -14
  55. package/dist/hooks/useStdin.d.ts.map +1 -1
  56. package/dist/hooks/useStdin.js +6 -11
  57. package/dist/hooks/useStdin.js.map +1 -1
  58. package/dist/hooks/useStdout.d.ts +2 -7
  59. package/dist/hooks/useStdout.d.ts.map +1 -1
  60. package/dist/hooks/useStdout.js +4 -9
  61. package/dist/hooks/useStdout.js.map +1 -1
  62. package/dist/index.d.ts +34 -23
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +24 -23
  65. package/dist/index.js.map +1 -1
  66. package/dist/kitty-keyboard.d.ts +20 -0
  67. package/dist/kitty-keyboard.d.ts.map +1 -0
  68. package/dist/kitty-keyboard.js +25 -0
  69. package/dist/kitty-keyboard.js.map +1 -0
  70. package/dist/reconciler/hostConfig.d.ts +63 -4
  71. package/dist/reconciler/hostConfig.d.ts.map +1 -1
  72. package/dist/reconciler/hostConfig.js +157 -110
  73. package/dist/reconciler/hostConfig.js.map +1 -1
  74. package/dist/reconciler/reconciler.d.ts +9 -0
  75. package/dist/reconciler/reconciler.d.ts.map +1 -0
  76. package/dist/reconciler/reconciler.js +4 -0
  77. package/dist/reconciler/reconciler.js.map +1 -0
  78. package/dist/reconciler/types.d.ts +25 -62
  79. package/dist/reconciler/types.d.ts.map +1 -1
  80. package/dist/reconciler/types.js +39 -27
  81. package/dist/reconciler/types.js.map +1 -1
  82. package/dist/runtime/ResizeObserver.d.ts +33 -0
  83. package/dist/runtime/ResizeObserver.d.ts.map +1 -0
  84. package/dist/runtime/ResizeObserver.js +68 -0
  85. package/dist/runtime/ResizeObserver.js.map +1 -0
  86. package/dist/runtime/bridge.d.ts +28 -0
  87. package/dist/runtime/bridge.d.ts.map +1 -0
  88. package/dist/runtime/bridge.js +491 -0
  89. package/dist/runtime/bridge.js.map +1 -0
  90. package/dist/runtime/context.d.ts +55 -0
  91. package/dist/runtime/context.d.ts.map +1 -0
  92. package/dist/runtime/context.js +10 -0
  93. package/dist/runtime/context.js.map +1 -0
  94. package/dist/runtime/domHelpers.d.ts +21 -0
  95. package/dist/runtime/domHelpers.d.ts.map +1 -0
  96. package/dist/runtime/domHelpers.js +39 -0
  97. package/dist/runtime/domHelpers.js.map +1 -0
  98. package/dist/runtime/getBoundingBox.d.ts +18 -0
  99. package/dist/runtime/getBoundingBox.d.ts.map +1 -0
  100. package/dist/runtime/getBoundingBox.js +22 -0
  101. package/dist/runtime/getBoundingBox.js.map +1 -0
  102. package/dist/runtime/measureElement.d.ts +6 -0
  103. package/dist/runtime/measureElement.d.ts.map +1 -0
  104. package/dist/runtime/measureElement.js +10 -0
  105. package/dist/runtime/measureElement.js.map +1 -0
  106. package/dist/runtime/reactBridge.d.ts +7 -0
  107. package/dist/runtime/reactBridge.d.ts.map +1 -0
  108. package/dist/runtime/reactBridge.js +85 -0
  109. package/dist/runtime/reactBridge.js.map +1 -0
  110. package/dist/runtime/reactHelpers.d.ts +5 -0
  111. package/dist/runtime/reactHelpers.d.ts.map +1 -0
  112. package/dist/runtime/reactHelpers.js +22 -0
  113. package/dist/runtime/reactHelpers.js.map +1 -0
  114. package/dist/runtime/render.d.ts +40 -0
  115. package/dist/runtime/render.d.ts.map +1 -0
  116. package/dist/runtime/render.js +2373 -0
  117. package/dist/runtime/render.js.map +1 -0
  118. package/dist/runtime/renderToString.d.ts +6 -0
  119. package/dist/runtime/renderToString.d.ts.map +1 -0
  120. package/dist/runtime/renderToString.js +45 -0
  121. package/dist/runtime/renderToString.js.map +1 -0
  122. package/dist/shims/ink-gradient.d.ts +12 -0
  123. package/dist/shims/ink-gradient.d.ts.map +1 -0
  124. package/dist/shims/ink-gradient.js +137 -0
  125. package/dist/shims/ink-gradient.js.map +1 -0
  126. package/dist/shims/ink-spinner.d.ts +16 -0
  127. package/dist/shims/ink-spinner.d.ts.map +1 -0
  128. package/dist/shims/ink-spinner.js +39 -0
  129. package/dist/shims/ink-spinner.js.map +1 -0
  130. package/dist/styledChars.d.ts +45 -0
  131. package/dist/styledChars.d.ts.map +1 -0
  132. package/dist/styledChars.js +283 -0
  133. package/dist/styledChars.js.map +1 -0
  134. package/dist/testing/index.d.ts +12 -0
  135. package/dist/testing/index.d.ts.map +1 -0
  136. package/dist/testing/index.js +75 -0
  137. package/dist/testing/index.js.map +1 -0
  138. package/dist/translation/borderMap.d.ts +3 -0
  139. package/dist/translation/borderMap.d.ts.map +1 -0
  140. package/dist/translation/borderMap.js +21 -0
  141. package/dist/translation/borderMap.js.map +1 -0
  142. package/dist/translation/colorMap.d.ts +8 -0
  143. package/dist/translation/colorMap.d.ts.map +1 -0
  144. package/dist/translation/colorMap.js +114 -0
  145. package/dist/translation/colorMap.js.map +1 -0
  146. package/dist/translation/layoutMap.d.ts +6 -0
  147. package/dist/translation/layoutMap.d.ts.map +1 -0
  148. package/dist/translation/layoutMap.js +28 -0
  149. package/dist/translation/layoutMap.js.map +1 -0
  150. package/dist/translation/propsToVNode.d.ts +14 -0
  151. package/dist/translation/propsToVNode.d.ts.map +1 -0
  152. package/dist/translation/propsToVNode.js +1036 -0
  153. package/dist/translation/propsToVNode.js.map +1 -0
  154. package/dist/translation/traceCollector.d.ts +16 -0
  155. package/dist/translation/traceCollector.d.ts.map +1 -0
  156. package/dist/translation/traceCollector.js +28 -0
  157. package/dist/translation/traceCollector.js.map +1 -0
  158. package/package.json +30 -24
  159. package/dist/__tests__/Newline.test.d.ts +0 -2
  160. package/dist/__tests__/Newline.test.d.ts.map +0 -1
  161. package/dist/__tests__/Newline.test.js +0 -42
  162. package/dist/__tests__/Newline.test.js.map +0 -1
  163. package/dist/__tests__/Static.test.d.ts +0 -2
  164. package/dist/__tests__/Static.test.d.ts.map +0 -1
  165. package/dist/__tests__/Static.test.js +0 -53
  166. package/dist/__tests__/Static.test.js.map +0 -1
  167. package/dist/__tests__/Transform.test.d.ts +0 -2
  168. package/dist/__tests__/Transform.test.d.ts.map +0 -1
  169. package/dist/__tests__/Transform.test.js +0 -36
  170. package/dist/__tests__/Transform.test.js.map +0 -1
  171. package/dist/__tests__/api.surface.test.d.ts +0 -2
  172. package/dist/__tests__/api.surface.test.d.ts.map +0 -1
  173. package/dist/__tests__/api.surface.test.js +0 -23
  174. package/dist/__tests__/api.surface.test.js.map +0 -1
  175. package/dist/__tests__/color.test.d.ts +0 -2
  176. package/dist/__tests__/color.test.d.ts.map +0 -1
  177. package/dist/__tests__/color.test.js +0 -37
  178. package/dist/__tests__/color.test.js.map +0 -1
  179. package/dist/__tests__/compat.thirdparty.test.d.ts +0 -2
  180. package/dist/__tests__/compat.thirdparty.test.d.ts.map +0 -1
  181. package/dist/__tests__/compat.thirdparty.test.js +0 -61
  182. package/dist/__tests__/compat.thirdparty.test.js.map +0 -1
  183. package/dist/__tests__/emitter.test.d.ts +0 -2
  184. package/dist/__tests__/emitter.test.d.ts.map +0 -1
  185. package/dist/__tests__/emitter.test.js +0 -34
  186. package/dist/__tests__/emitter.test.js.map +0 -1
  187. package/dist/__tests__/golden/border-styles.golden.test.d.ts +0 -2
  188. package/dist/__tests__/golden/border-styles.golden.test.d.ts.map +0 -1
  189. package/dist/__tests__/golden/border-styles.golden.test.js +0 -15
  190. package/dist/__tests__/golden/border-styles.golden.test.js.map +0 -1
  191. package/dist/__tests__/golden/box-layout.golden.test.d.ts +0 -2
  192. package/dist/__tests__/golden/box-layout.golden.test.d.ts.map +0 -1
  193. package/dist/__tests__/golden/box-layout.golden.test.js +0 -15
  194. package/dist/__tests__/golden/box-layout.golden.test.js.map +0 -1
  195. package/dist/__tests__/golden/flex-layout.golden.test.d.ts +0 -2
  196. package/dist/__tests__/golden/flex-layout.golden.test.d.ts.map +0 -1
  197. package/dist/__tests__/golden/flex-layout.golden.test.js +0 -15
  198. package/dist/__tests__/golden/flex-layout.golden.test.js.map +0 -1
  199. package/dist/__tests__/golden/harness.d.ts +0 -6
  200. package/dist/__tests__/golden/harness.d.ts.map +0 -1
  201. package/dist/__tests__/golden/harness.js +0 -31
  202. package/dist/__tests__/golden/harness.js.map +0 -1
  203. package/dist/__tests__/golden/simple-text.golden.test.d.ts +0 -2
  204. package/dist/__tests__/golden/simple-text.golden.test.d.ts.map +0 -1
  205. package/dist/__tests__/golden/simple-text.golden.test.js +0 -15
  206. package/dist/__tests__/golden/simple-text.golden.test.js.map +0 -1
  207. package/dist/__tests__/integration/counter.test.d.ts +0 -2
  208. package/dist/__tests__/integration/counter.test.d.ts.map +0 -1
  209. package/dist/__tests__/integration/counter.test.js +0 -40
  210. package/dist/__tests__/integration/counter.test.js.map +0 -1
  211. package/dist/__tests__/integration/focus-cycle.test.d.ts +0 -2
  212. package/dist/__tests__/integration/focus-cycle.test.d.ts.map +0 -1
  213. package/dist/__tests__/integration/focus-cycle.test.js +0 -37
  214. package/dist/__tests__/integration/focus-cycle.test.js.map +0 -1
  215. package/dist/__tests__/integration/harness.d.ts +0 -17
  216. package/dist/__tests__/integration/harness.d.ts.map +0 -1
  217. package/dist/__tests__/integration/harness.js +0 -57
  218. package/dist/__tests__/integration/harness.js.map +0 -1
  219. package/dist/__tests__/integration/list-nav.test.d.ts +0 -2
  220. package/dist/__tests__/integration/list-nav.test.d.ts.map +0 -1
  221. package/dist/__tests__/integration/list-nav.test.js +0 -40
  222. package/dist/__tests__/integration/list-nav.test.js.map +0 -1
  223. package/dist/__tests__/integration/nested-layout.test.d.ts +0 -2
  224. package/dist/__tests__/integration/nested-layout.test.d.ts.map +0 -1
  225. package/dist/__tests__/integration/nested-layout.test.js +0 -47
  226. package/dist/__tests__/integration/nested-layout.test.js.map +0 -1
  227. package/dist/__tests__/integration/static-log.test.d.ts +0 -2
  228. package/dist/__tests__/integration/static-log.test.d.ts.map +0 -1
  229. package/dist/__tests__/integration/static-log.test.js +0 -48
  230. package/dist/__tests__/integration/static-log.test.js.map +0 -1
  231. package/dist/__tests__/measurement.test.d.ts +0 -2
  232. package/dist/__tests__/measurement.test.d.ts.map +0 -1
  233. package/dist/__tests__/measurement.test.js +0 -115
  234. package/dist/__tests__/measurement.test.js.map +0 -1
  235. package/dist/__tests__/props.test.d.ts +0 -2
  236. package/dist/__tests__/props.test.d.ts.map +0 -1
  237. package/dist/__tests__/props.test.js +0 -131
  238. package/dist/__tests__/props.test.js.map +0 -1
  239. package/dist/__tests__/reconciler.test.d.ts +0 -2
  240. package/dist/__tests__/reconciler.test.d.ts.map +0 -1
  241. package/dist/__tests__/reconciler.test.js +0 -56
  242. package/dist/__tests__/reconciler.test.js.map +0 -1
  243. package/dist/__tests__/render.consoleCapture.test.d.ts +0 -2
  244. package/dist/__tests__/render.consoleCapture.test.d.ts.map +0 -1
  245. package/dist/__tests__/render.consoleCapture.test.js +0 -46
  246. package/dist/__tests__/render.consoleCapture.test.js.map +0 -1
  247. package/dist/__tests__/render.deferred.test.d.ts +0 -2
  248. package/dist/__tests__/render.deferred.test.d.ts.map +0 -1
  249. package/dist/__tests__/render.deferred.test.js +0 -16
  250. package/dist/__tests__/render.deferred.test.js.map +0 -1
  251. package/dist/__tests__/render.options.test.d.ts +0 -2
  252. package/dist/__tests__/render.options.test.d.ts.map +0 -1
  253. package/dist/__tests__/render.options.test.js +0 -17
  254. package/dist/__tests__/render.options.test.js.map +0 -1
  255. package/dist/__tests__/render.parity.test.d.ts +0 -2
  256. package/dist/__tests__/render.parity.test.d.ts.map +0 -1
  257. package/dist/__tests__/render.parity.test.js +0 -124
  258. package/dist/__tests__/render.parity.test.js.map +0 -1
  259. package/dist/__tests__/render.test.d.ts +0 -2
  260. package/dist/__tests__/render.test.d.ts.map +0 -1
  261. package/dist/__tests__/render.test.js +0 -46
  262. package/dist/__tests__/render.test.js.map +0 -1
  263. package/dist/__tests__/resizeObserver.test.d.ts +0 -2
  264. package/dist/__tests__/resizeObserver.test.d.ts.map +0 -1
  265. package/dist/__tests__/resizeObserver.test.js +0 -50
  266. package/dist/__tests__/resizeObserver.test.js.map +0 -1
  267. package/dist/__tests__/testBackend.d.ts +0 -48
  268. package/dist/__tests__/testBackend.d.ts.map +0 -1
  269. package/dist/__tests__/testBackend.js +0 -109
  270. package/dist/__tests__/testBackend.js.map +0 -1
  271. package/dist/__tests__/useApp.test.d.ts +0 -2
  272. package/dist/__tests__/useApp.test.d.ts.map +0 -1
  273. package/dist/__tests__/useApp.test.js +0 -40
  274. package/dist/__tests__/useApp.test.js.map +0 -1
  275. package/dist/__tests__/useFocus.test.d.ts +0 -2
  276. package/dist/__tests__/useFocus.test.d.ts.map +0 -1
  277. package/dist/__tests__/useFocus.test.js +0 -60
  278. package/dist/__tests__/useFocus.test.js.map +0 -1
  279. package/dist/__tests__/useFocusManager.test.d.ts +0 -2
  280. package/dist/__tests__/useFocusManager.test.d.ts.map +0 -1
  281. package/dist/__tests__/useFocusManager.test.js +0 -57
  282. package/dist/__tests__/useFocusManager.test.js.map +0 -1
  283. package/dist/__tests__/useInput.test.d.ts +0 -2
  284. package/dist/__tests__/useInput.test.d.ts.map +0 -1
  285. package/dist/__tests__/useInput.test.js +0 -182
  286. package/dist/__tests__/useInput.test.js.map +0 -1
  287. package/dist/__tests__/useStderr.test.d.ts +0 -2
  288. package/dist/__tests__/useStderr.test.d.ts.map +0 -1
  289. package/dist/__tests__/useStderr.test.js +0 -59
  290. package/dist/__tests__/useStderr.test.js.map +0 -1
  291. package/dist/__tests__/useStdin.test.d.ts +0 -2
  292. package/dist/__tests__/useStdin.test.d.ts.map +0 -1
  293. package/dist/__tests__/useStdin.test.js +0 -45
  294. package/dist/__tests__/useStdin.test.js.map +0 -1
  295. package/dist/__tests__/useStdout.test.d.ts +0 -2
  296. package/dist/__tests__/useStdout.test.d.ts.map +0 -1
  297. package/dist/__tests__/useStdout.test.js +0 -59
  298. package/dist/__tests__/useStdout.test.js.map +0 -1
  299. package/dist/color.d.ts +0 -19
  300. package/dist/color.d.ts.map +0 -1
  301. package/dist/color.js +0 -121
  302. package/dist/color.js.map +0 -1
  303. package/dist/context/AccessibilityContext.d.ts +0 -4
  304. package/dist/context/AccessibilityContext.d.ts.map +0 -1
  305. package/dist/context/AccessibilityContext.js +0 -4
  306. package/dist/context/AccessibilityContext.js.map +0 -1
  307. package/dist/context/AppContext.d.ts +0 -9
  308. package/dist/context/AppContext.d.ts.map +0 -1
  309. package/dist/context/AppContext.js +0 -8
  310. package/dist/context/AppContext.js.map +0 -1
  311. package/dist/context/FocusContext.d.ts +0 -31
  312. package/dist/context/FocusContext.d.ts.map +0 -1
  313. package/dist/context/FocusContext.js +0 -16
  314. package/dist/context/FocusContext.js.map +0 -1
  315. package/dist/context/FocusProvider.d.ts +0 -5
  316. package/dist/context/FocusProvider.d.ts.map +0 -1
  317. package/dist/context/FocusProvider.js +0 -154
  318. package/dist/context/FocusProvider.js.map +0 -1
  319. package/dist/context/StdioContext.d.ts +0 -24
  320. package/dist/context/StdioContext.d.ts.map +0 -1
  321. package/dist/context/StdioContext.js +0 -15
  322. package/dist/context/StdioContext.js.map +0 -1
  323. package/dist/errors.d.ts +0 -8
  324. package/dist/errors.d.ts.map +0 -1
  325. package/dist/errors.js +0 -9
  326. package/dist/errors.js.map +0 -1
  327. package/dist/internal/emitter.d.ts +0 -8
  328. package/dist/internal/emitter.d.ts.map +0 -1
  329. package/dist/internal/emitter.js +0 -26
  330. package/dist/internal/emitter.js.map +0 -1
  331. package/dist/internal/warn.d.ts +0 -3
  332. package/dist/internal/warn.d.ts.map +0 -1
  333. package/dist/internal/warn.js +0 -17
  334. package/dist/internal/warn.js.map +0 -1
  335. package/dist/measureElement.d.ts +0 -12
  336. package/dist/measureElement.d.ts.map +0 -1
  337. package/dist/measureElement.js +0 -11
  338. package/dist/measureElement.js.map +0 -1
  339. package/dist/measurement.d.ts +0 -24
  340. package/dist/measurement.d.ts.map +0 -1
  341. package/dist/measurement.js +0 -272
  342. package/dist/measurement.js.map +0 -1
  343. package/dist/props/boxProps.d.ts +0 -17
  344. package/dist/props/boxProps.d.ts.map +0 -1
  345. package/dist/props/boxProps.js +0 -223
  346. package/dist/props/boxProps.js.map +0 -1
  347. package/dist/props/textProps.d.ts +0 -8
  348. package/dist/props/textProps.d.ts.map +0 -1
  349. package/dist/props/textProps.js +0 -35
  350. package/dist/props/textProps.js.map +0 -1
  351. package/dist/props.d.ts +0 -5
  352. package/dist/props.d.ts.map +0 -1
  353. package/dist/props.js +0 -3
  354. package/dist/props.js.map +0 -1
  355. package/dist/reconciler/convert.d.ts +0 -4
  356. package/dist/reconciler/convert.d.ts.map +0 -1
  357. package/dist/reconciler/convert.js +0 -157
  358. package/dist/reconciler/convert.js.map +0 -1
  359. package/dist/reconciler/textUtils.d.ts +0 -6
  360. package/dist/reconciler/textUtils.d.ts.map +0 -1
  361. package/dist/reconciler/textUtils.js +0 -181
  362. package/dist/reconciler/textUtils.js.map +0 -1
  363. package/dist/reconciler.d.ts +0 -3
  364. package/dist/reconciler.d.ts.map +0 -1
  365. package/dist/reconciler.js +0 -2
  366. package/dist/reconciler.js.map +0 -1
  367. package/dist/render/consoleCapture.d.ts +0 -14
  368. package/dist/render/consoleCapture.d.ts.map +0 -1
  369. package/dist/render/consoleCapture.js +0 -89
  370. package/dist/render/consoleCapture.js.map +0 -1
  371. package/dist/render/deferred.d.ts +0 -7
  372. package/dist/render/deferred.d.ts.map +0 -1
  373. package/dist/render/deferred.js +0 -10
  374. package/dist/render/deferred.js.map +0 -1
  375. package/dist/render/options.d.ts +0 -3
  376. package/dist/render/options.d.ts.map +0 -1
  377. package/dist/render/options.js +0 -12
  378. package/dist/render/options.js.map +0 -1
  379. package/dist/render.d.ts +0 -4
  380. package/dist/render.d.ts.map +0 -1
  381. package/dist/render.js +0 -269
  382. package/dist/render.js.map +0 -1
  383. package/dist/resizeObserver.d.ts +0 -24
  384. package/dist/resizeObserver.d.ts.map +0 -1
  385. package/dist/resizeObserver.js +0 -54
  386. package/dist/resizeObserver.js.map +0 -1
  387. package/dist/testing/findText.d.ts +0 -4
  388. package/dist/testing/findText.d.ts.map +0 -1
  389. package/dist/testing/findText.js +0 -27
  390. package/dist/testing/findText.js.map +0 -1
  391. package/dist/testing/renderToVNode.d.ts +0 -9
  392. package/dist/testing/renderToVNode.d.ts.map +0 -1
  393. package/dist/testing/renderToVNode.js +0 -22
  394. package/dist/testing/renderToVNode.js.map +0 -1
  395. package/dist/testing/simulateKeyEvent.d.ts +0 -18
  396. package/dist/testing/simulateKeyEvent.d.ts.map +0 -1
  397. package/dist/testing/simulateKeyEvent.js +0 -23
  398. package/dist/testing/simulateKeyEvent.js.map +0 -1
  399. package/dist/types.d.ts +0 -185
  400. package/dist/types.d.ts.map +0 -1
  401. package/dist/types.js +0 -2
  402. package/dist/types.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCursor.d.ts","sourceRoot":"","sources":["../../src/hooks/useCursor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,wBAAgB,SAAS;kCAIV,cAAc,GAAG,SAAS,KAAG,IAAI;EAa/C"}
@@ -0,0 +1,15 @@
1
+ import { useCallback, useEffect } from "react";
2
+ import { useInkContext } from "../runtime/context.js";
3
+ export function useCursor() {
4
+ const ctx = useInkContext();
5
+ const setCursorPosition = useCallback((position) => {
6
+ ctx.setCursorPosition(position);
7
+ }, [ctx]);
8
+ useEffect(() => {
9
+ return () => {
10
+ ctx.setCursorPosition(undefined);
11
+ };
12
+ }, [ctx]);
13
+ return { setCursorPosition };
14
+ }
15
+ //# sourceMappingURL=useCursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCursor.js","sourceRoot":"","sources":["../../src/hooks/useCursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAE5B,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,QAAoC,EAAQ,EAAE;QAC7C,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,EACD,CAAC,GAAG,CAAC,CACN,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACnC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC/B,CAAC"}
@@ -1,29 +1,9 @@
1
- type Input = Readonly<{
2
- /**
3
- * Enable or disable this component's focus, while still maintaining its
4
- * position in the list of focusable components.
5
- */
6
- isActive?: boolean;
7
- /**
8
- * Auto focus this component, if there's no active (focused) component right now.
9
- */
1
+ export declare function useFocus(options?: {
10
2
  autoFocus?: boolean;
11
- /**
12
- * Assign an ID to this component, so it can be programmatically focused with `focus(id)`.
13
- */
3
+ isActive?: boolean;
14
4
  id?: string;
15
- }>;
16
- type Output = Readonly<{
5
+ }): {
17
6
  isFocused: boolean;
18
- focus: (id: string) => void;
19
- }>;
20
- /**
21
- * Ink-compatible `useFocus()`.
22
- *
23
- * This is a compat-only focus system used to coordinate `isActive` flags for
24
- * `useInput` in third-party Ink components. It does not integrate with Rezi's
25
- * widget-level focus system.
26
- */
27
- export default function useFocus({ isActive, autoFocus, id: customId, }?: Input): Output;
28
- export {};
7
+ focus: () => void;
8
+ };
29
9
  //# sourceMappingURL=useFocus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFocus.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocus.ts"],"names":[],"mappings":"AAIA,KAAK,KAAK,GAAG,QAAQ,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC,CAAC;AAEH,KAAK,MAAM,GAAG,QAAQ,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,QAAe,EACf,SAAiB,EACjB,EAAE,EAAE,QAAQ,GACb,GAAE,KAAU,GAAG,MAAM,CA8BrB"}
1
+ {"version":3,"file":"useFocus.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocus.ts"],"names":[],"mappings":"AA2BA,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE;;;EAiC1F"}
@@ -1,40 +1,56 @@
1
- import { useContext, useEffect, useMemo } from "react";
2
- import FocusContext from "../context/FocusContext.js";
3
- import useStdin from "./useStdin.js";
4
- /**
5
- * Ink-compatible `useFocus()`.
6
- *
7
- * This is a compat-only focus system used to coordinate `isActive` flags for
8
- * `useInput` in third-party Ink components. It does not integrate with Rezi's
9
- * widget-level focus system.
10
- */
11
- export default function useFocus({ isActive = true, autoFocus = false, id: customId, } = {}) {
12
- const { isRawModeSupported, setRawMode } = useStdin();
13
- const { activeId, add, remove, activate, deactivate, focus } = useContext(FocusContext);
14
- const id = useMemo(() => customId ?? Math.random().toString().slice(2, 7), [customId]);
15
- useEffect(() => {
16
- add(id, { autoFocus });
17
- return () => {
18
- remove(id);
19
- };
20
- }, [add, autoFocus, id, remove]);
1
+ import { useEffect, useId, useState } from "react";
2
+ import { useInkContext } from "../runtime/context.js";
3
+ const rawModeRefCounts = new WeakMap();
4
+ function retainRawMode(ctx) {
5
+ const count = rawModeRefCounts.get(ctx) ?? 0;
6
+ if (count === 0) {
7
+ ctx.setRawMode(true);
8
+ }
9
+ rawModeRefCounts.set(ctx, count + 1);
10
+ }
11
+ function releaseRawMode(ctx) {
12
+ const count = rawModeRefCounts.get(ctx) ?? 0;
13
+ if (count <= 0) {
14
+ return;
15
+ }
16
+ if (count === 1) {
17
+ rawModeRefCounts.delete(ctx);
18
+ ctx.setRawMode(false);
19
+ return;
20
+ }
21
+ rawModeRefCounts.set(ctx, count - 1);
22
+ }
23
+ export function useFocus(options) {
24
+ const autoId = useId();
25
+ const focusId = options?.id ?? autoId;
26
+ const ctx = useInkContext();
27
+ const [, setTick] = useState(0);
21
28
  useEffect(() => {
22
- if (isActive)
23
- activate(id);
24
- else
25
- deactivate(id);
26
- }, [activate, deactivate, id, isActive]);
29
+ if (options?.isActive === false)
30
+ return;
31
+ const registerOptions = options?.autoFocus === undefined ? undefined : { autoFocus: options.autoFocus };
32
+ ctx.registerFocusable(focusId, registerOptions);
33
+ // Force re-render so the component picks up the focus state
34
+ // (focusedId lives on the bridge, not in React state)
35
+ setTick((t) => t + 1);
36
+ return () => ctx.unregisterFocusable(focusId);
37
+ }, [ctx, focusId, options?.autoFocus, options?.isActive]);
27
38
  useEffect(() => {
28
- if (!isRawModeSupported || !isActive)
39
+ if (options?.isActive === false)
40
+ return;
41
+ if (!ctx.isRawModeSupported)
29
42
  return;
30
- setRawMode(true);
43
+ retainRawMode(ctx);
31
44
  return () => {
32
- setRawMode(false);
45
+ releaseRawMode(ctx);
33
46
  };
34
- }, [isActive, isRawModeSupported, setRawMode]);
47
+ }, [ctx, options?.isActive]);
35
48
  return {
36
- isFocused: Boolean(id) && activeId === id,
37
- focus,
49
+ isFocused: ctx.getFocusedId() === focusId,
50
+ focus: () => {
51
+ ctx.focusById(focusId);
52
+ ctx.rerender();
53
+ },
38
54
  };
39
55
  }
40
56
  //# sourceMappingURL=useFocus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFocus.js","sourceRoot":"","sources":["../../src/hooks/useFocus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,YAAY,MAAM,4BAA4B,CAAC;AACtD,OAAO,QAAQ,MAAM,eAAe,CAAC;AAuBrC;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,KAAK,EACjB,EAAE,EAAE,QAAQ,MACH,EAAE;IACX,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtD,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAExF,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvF,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACvB,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,EAAE,CAAC,CAAC;QACb,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IAEjC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ;YAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;;YACtB,UAAU,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,kBAAkB,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC7C,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC;IAE/C,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,QAAQ,KAAK,EAAE;QACzC,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useFocus.js","sourceRoot":"","sources":["../../src/hooks/useFocus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAwB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAA2B,CAAC;AAEhE,SAAS,aAAa,CAAC,GAAoB;IACzC,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,GAAoB;IAC1C,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAkE;IACzF,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC;IACtC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,QAAQ,KAAK,KAAK;YAAE,OAAO;QACxC,MAAM,eAAe,GACnB,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAClF,GAAG,CAAC,iBAAiB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAChD,4DAA4D;QAC5D,sDAAsD;QACtD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtB,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,QAAQ,KAAK,KAAK;YAAE,OAAO;QACxC,IAAI,CAAC,GAAG,CAAC,kBAAkB;YAAE,OAAO;QACpC,aAAa,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,GAAG,EAAE;YACV,cAAc,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,KAAK,OAAO;QACzC,KAAK,EAAE,GAAG,EAAE;YACV,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACvB,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,11 +1,9 @@
1
- /**
2
- * Ink-compatible `useFocusManager()`.
3
- */
4
- export default function useFocusManager(): {
1
+ export declare function useFocusManager(): {
5
2
  enableFocus: () => void;
6
3
  disableFocus: () => void;
7
4
  focusNext: () => void;
8
5
  focusPrevious: () => void;
9
6
  focus: (id: string) => void;
7
+ activeId: string | undefined;
10
8
  };
11
9
  //# sourceMappingURL=useFocusManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFocusManager.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocusManager.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe;;;;;;EAStC"}
1
+ {"version":3,"file":"useFocusManager.d.ts","sourceRoot":"","sources":["../../src/hooks/useFocusManager.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe;;;;;gBAOf,MAAM;;EAGrB"}
@@ -1,16 +1,13 @@
1
- import { useContext } from "react";
2
- import FocusContext from "../context/FocusContext.js";
3
- /**
4
- * Ink-compatible `useFocusManager()`.
5
- */
6
- export default function useFocusManager() {
7
- const focusContext = useContext(FocusContext);
1
+ import { useInkContext } from "../runtime/context.js";
2
+ export function useFocusManager() {
3
+ const ctx = useInkContext();
8
4
  return {
9
- enableFocus: focusContext.enableFocus,
10
- disableFocus: focusContext.disableFocus,
11
- focusNext: focusContext.focusNext,
12
- focusPrevious: focusContext.focusPrevious,
13
- focus: focusContext.focus,
5
+ enableFocus: () => ctx.setFocusEnabled(true),
6
+ disableFocus: () => ctx.setFocusEnabled(false),
7
+ focusNext: () => ctx.focusNext(),
8
+ focusPrevious: () => ctx.focusPrevious(),
9
+ focus: (id) => ctx.focusById(id),
10
+ activeId: ctx.getFocusedId(),
14
11
  };
15
12
  }
16
13
  //# sourceMappingURL=useFocusManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFocusManager.js","sourceRoot":"","sources":["../../src/hooks/useFocusManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,YAAY,MAAM,4BAA4B,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe;IACrC,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC9C,OAAO;QACL,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,YAAY,EAAE,YAAY,CAAC,YAAY;QACvC,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,KAAK,EAAE,YAAY,CAAC,KAAK;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useFocusManager.js","sourceRoot":"","sources":["../../src/hooks/useFocusManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;QAC5C,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC;QAC9C,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE;QAChC,aAAa,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,aAAa,EAAE;QACxC,KAAK,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE;KAC7B,CAAC;AACJ,CAAC"}
@@ -1,11 +1,6 @@
1
- import type { Key } from "../types.js";
2
- type Handler = (input: string, key: Key) => void;
3
- type Options = Readonly<{
1
+ import { type Key } from "../runtime/context.js";
2
+ export type { Key };
3
+ export declare function useInput(handler: (input: string, key: Key) => void, options?: {
4
4
  isActive?: boolean;
5
- }>;
6
- /**
7
- * Ink-compatible `useInput()` implemented on top of Rezi engine events.
8
- */
9
- declare const useInput: (inputHandler: Handler, options?: Options) => void;
10
- export default useInput;
5
+ }): void;
11
6
  //# sourceMappingURL=useInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInput.d.ts","sourceRoot":"","sources":["../../src/hooks/useInput.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGvC,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;AACjD,KAAK,OAAO,GAAG,QAAQ,CAAC;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAgGhD;;GAEG;AACH,QAAA,MAAM,QAAQ,GAAI,cAAc,OAAO,EAAE,UAAS,OAAY,KAAG,IAqChE,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"useInput.d.ts","sourceRoot":"","sources":["../../src/hooks/useInput.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAiB,MAAM,uBAAuB,CAAC;AAEhE,YAAY,EAAE,GAAG,EAAE,CAAC;AAEpB,wBAAgB,QAAQ,CACtB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,EAC1C,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/B,IAAI,CAgBN"}
@@ -1,124 +1,21 @@
1
- import { ZR_KEY_BACKSPACE, ZR_KEY_DELETE, ZR_KEY_DOWN, ZR_KEY_ENTER, ZR_KEY_ESCAPE, ZR_KEY_LEFT, ZR_KEY_PAGE_DOWN, ZR_KEY_PAGE_UP, ZR_KEY_RIGHT, ZR_KEY_TAB, ZR_KEY_UP, ZR_MOD_ALT, ZR_MOD_CTRL, ZR_MOD_META, ZR_MOD_SHIFT, } from "@rezi-ui/core/keybindings";
2
1
  import { useEffect } from "react";
3
- import reconciler from "../reconciler.js";
4
- import useStdin from "./useStdin.js";
5
- const TEXT_DECODER = new TextDecoder();
6
- function buildKey(mods, ev) {
7
- const ctrl = (mods & ZR_MOD_CTRL) !== 0;
8
- const shift = (mods & ZR_MOD_SHIFT) !== 0;
9
- const meta = (mods & (ZR_MOD_ALT | ZR_MOD_META)) !== 0;
10
- const keyCode = ev?.kind === "key" ? ev.key : null;
11
- return {
12
- upArrow: keyCode === ZR_KEY_UP,
13
- downArrow: keyCode === ZR_KEY_DOWN,
14
- leftArrow: keyCode === ZR_KEY_LEFT,
15
- rightArrow: keyCode === ZR_KEY_RIGHT,
16
- pageDown: keyCode === ZR_KEY_PAGE_DOWN,
17
- pageUp: keyCode === ZR_KEY_PAGE_UP,
18
- return: keyCode === ZR_KEY_ENTER,
19
- escape: keyCode === ZR_KEY_ESCAPE,
20
- ctrl,
21
- shift,
22
- tab: keyCode === ZR_KEY_TAB,
23
- backspace: keyCode === ZR_KEY_BACKSPACE,
24
- delete: keyCode === ZR_KEY_DELETE,
25
- // Ink sets meta=true for Escape for backward compatibility.
26
- meta: meta || keyCode === ZR_KEY_ESCAPE,
27
- };
28
- }
29
- function isNonTextKey(keyCode) {
30
- return (keyCode === ZR_KEY_UP ||
31
- keyCode === ZR_KEY_DOWN ||
32
- keyCode === ZR_KEY_LEFT ||
33
- keyCode === ZR_KEY_RIGHT ||
34
- keyCode === ZR_KEY_PAGE_UP ||
35
- keyCode === ZR_KEY_PAGE_DOWN ||
36
- keyCode === ZR_KEY_ENTER ||
37
- keyCode === ZR_KEY_ESCAPE ||
38
- keyCode === ZR_KEY_TAB ||
39
- keyCode === ZR_KEY_BACKSPACE ||
40
- keyCode === ZR_KEY_DELETE);
41
- }
42
- function keyCodeToChar(keyCode, shift) {
43
- // Only handle printable ASCII here; unicode text input comes from ZREV TEXT/PASTE.
44
- if (keyCode < 32 || keyCode > 126)
45
- return null;
46
- const ch = String.fromCharCode(keyCode);
47
- // Engine key codes for letters are commonly normalized to uppercase; treat shift=false as lowercase.
48
- if (!shift && ch >= "A" && ch <= "Z")
49
- return ch.toLowerCase();
50
- return ch;
51
- }
52
- function mapEngineEventToInput(ev, lastMods) {
53
- if (ev.kind === "key") {
54
- if (ev.action === "up")
55
- return null;
56
- const mods = ev.mods;
57
- const key = buildKey(mods, ev);
58
- // Always surface non-text keys.
59
- if (isNonTextKey(ev.key)) {
60
- return { input: "", key };
61
- }
62
- // Avoid double-calling for normal typing: prefer TEXT events when no ctrl/meta.
63
- if ((mods & (ZR_MOD_CTRL | ZR_MOD_ALT | ZR_MOD_META)) === 0)
64
- return null;
65
- const input = keyCodeToChar(ev.key, key.shift) ?? "";
66
- return { input, key };
67
- }
68
- if (ev.kind === "text") {
69
- let input = "";
70
- try {
71
- input = String.fromCodePoint(ev.codepoint);
72
- }
73
- catch {
74
- return null;
75
- }
76
- const key = buildKey(lastMods, null);
77
- return { input, key };
78
- }
79
- if (ev.kind === "paste") {
80
- const input = TEXT_DECODER.decode(ev.bytes);
81
- const key = buildKey(lastMods, null);
82
- return { input, key };
83
- }
84
- return null;
85
- }
86
- /**
87
- * Ink-compatible `useInput()` implemented on top of Rezi engine events.
88
- */
89
- const useInput = (inputHandler, options = {}) => {
90
- const { internal_eventEmitter, internal_exitOnCtrlC } = useStdin();
2
+ import { useInkContext } from "../runtime/context.js";
3
+ export function useInput(handler, options) {
4
+ const ctx = useInkContext();
91
5
  useEffect(() => {
92
- if (options.isActive === false)
6
+ if (options?.isActive === false)
93
7
  return;
94
- let lastMods = 0;
95
- const handle = (uiEv) => {
96
- if (uiEv.kind !== "engine")
97
- return;
98
- // Track modifier state from engine KEY events so TEXT/PASTE can inherit it best-effort.
99
- if (uiEv.event.kind === "key")
100
- lastMods = uiEv.event.mods;
101
- const mapped = mapEngineEventToInput(uiEv.event, lastMods);
102
- if (!mapped)
103
- return;
104
- const { input, key } = mapped;
105
- // Mirror Ink: don't forward Ctrl+C when exitOnCtrlC is enabled.
106
- if (input.toLowerCase() === "c" && key.ctrl && internal_exitOnCtrlC)
107
- return;
108
- // If input is uppercase ASCII, mark shift=true (Ink compatibility quirk).
109
- const keyMut = { ...key };
110
- if (input.length === 1 && /^[A-Z]$/.test(input))
111
- keyMut.shift = true;
112
- // @ts-expect-error `batchedUpdates` is typed as requiring an argument.
113
- reconciler.batchedUpdates(() => {
114
- inputHandler(input, keyMut);
115
- });
116
- };
117
- internal_eventEmitter.on("input", handle);
8
+ if (!ctx.isRawModeSupported)
9
+ return;
10
+ ctx.setRawMode(true);
118
11
  return () => {
119
- internal_eventEmitter.removeListener("input", handle);
12
+ ctx.setRawMode(false);
120
13
  };
121
- }, [internal_eventEmitter, internal_exitOnCtrlC, inputHandler, options.isActive]);
122
- };
123
- export default useInput;
14
+ }, [ctx, options?.isActive]);
15
+ useEffect(() => {
16
+ if (options?.isActive === false)
17
+ return;
18
+ return ctx.onKeyEvent(handler);
19
+ }, [ctx, handler, options?.isActive]);
20
+ }
124
21
  //# sourceMappingURL=useInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInput.js","sourceRoot":"","sources":["../../src/hooks/useInput.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,GACb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,OAAO,QAAQ,MAAM,eAAe,CAAC;AAIrC,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;AAEvC,SAAS,QAAQ,CAAC,IAAY,EAAE,EAAoB;IAClD,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,EAAE,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAEnD,OAAO;QACL,OAAO,EAAE,OAAO,KAAK,SAAS;QAC9B,SAAS,EAAE,OAAO,KAAK,WAAW;QAClC,SAAS,EAAE,OAAO,KAAK,WAAW;QAClC,UAAU,EAAE,OAAO,KAAK,YAAY;QACpC,QAAQ,EAAE,OAAO,KAAK,gBAAgB;QACtC,MAAM,EAAE,OAAO,KAAK,cAAc;QAClC,MAAM,EAAE,OAAO,KAAK,YAAY;QAChC,MAAM,EAAE,OAAO,KAAK,aAAa;QACjC,IAAI;QACJ,KAAK;QACL,GAAG,EAAE,OAAO,KAAK,UAAU;QAC3B,SAAS,EAAE,OAAO,KAAK,gBAAgB;QACvC,MAAM,EAAE,OAAO,KAAK,aAAa;QACjC,4DAA4D;QAC5D,IAAI,EAAE,IAAI,IAAI,OAAO,KAAK,aAAa;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,CACL,OAAO,KAAK,SAAS;QACrB,OAAO,KAAK,WAAW;QACvB,OAAO,KAAK,WAAW;QACvB,OAAO,KAAK,YAAY;QACxB,OAAO,KAAK,cAAc;QAC1B,OAAO,KAAK,gBAAgB;QAC5B,OAAO,KAAK,YAAY;QACxB,OAAO,KAAK,aAAa;QACzB,OAAO,KAAK,UAAU;QACtB,OAAO,KAAK,gBAAgB;QAC5B,OAAO,KAAK,aAAa,CAC1B,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,KAAc;IACpD,mFAAmF;IACnF,IAAI,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,qGAAqG;IACrG,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG;QAAE,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,qBAAqB,CAC5B,EAAa,EACb,QAAgB;IAEhB,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACtB,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;QACrB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE/B,gCAAgC;QAChC,IAAI,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;QAC5B,CAAC;QAED,gFAAgF;QAChF,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEzE,MAAM,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACvB,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,QAAQ,GAAG,CAAC,YAAqB,EAAE,UAAmB,EAAE,EAAQ,EAAE;IACtE,MAAM,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEnE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK;YAAE,OAAO;QAEvC,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO;YAEnC,wFAAwF;YACxF,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK;gBAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAE1D,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEpB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;YAE9B,gEAAgE;YAChE,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,oBAAoB;gBAAE,OAAO;YAE5E,0EAA0E;YAC1E,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YAErE,uEAAuE;YACvE,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE;gBAC7B,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE;YACV,qBAAqB,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,EAAE,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpF,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"useInput.js","sourceRoot":"","sources":["../../src/hooks/useInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAY,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAIhE,MAAM,UAAU,QAAQ,CACtB,OAA0C,EAC1C,OAAgC;IAEhC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,QAAQ,KAAK,KAAK;YAAE,OAAO;QACxC,IAAI,CAAC,GAAG,CAAC,kBAAkB;YAAE,OAAO;QACpC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,QAAQ,KAAK,KAAK;YAAE,OAAO;QACxC,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxC,CAAC"}
@@ -1,2 +1,2 @@
1
- export default function useIsScreenReaderEnabled(): boolean;
1
+ export declare function useIsScreenReaderEnabled(): boolean;
2
2
  //# sourceMappingURL=useIsScreenReaderEnabled.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsScreenReaderEnabled.d.ts","sourceRoot":"","sources":["../../src/hooks/useIsScreenReaderEnabled.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,wBAAwB,IAAI,OAAO,CAE1D"}
1
+ {"version":3,"file":"useIsScreenReaderEnabled.d.ts","sourceRoot":"","sources":["../../src/hooks/useIsScreenReaderEnabled.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,IAAI,OAAO,CAGlD"}
@@ -1,6 +1,6 @@
1
- import React from "react";
2
- import AccessibilityContext from "../context/AccessibilityContext.js";
3
- export default function useIsScreenReaderEnabled() {
4
- return React.useContext(AccessibilityContext);
1
+ import { useInkContext } from "../runtime/context.js";
2
+ export function useIsScreenReaderEnabled() {
3
+ const ctx = useInkContext();
4
+ return ctx.isScreenReaderEnabled;
5
5
  }
6
6
  //# sourceMappingURL=useIsScreenReaderEnabled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIsScreenReaderEnabled.js","sourceRoot":"","sources":["../../src/hooks/useIsScreenReaderEnabled.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,oBAAoB,MAAM,oCAAoC,CAAC;AAEtE,MAAM,CAAC,OAAO,UAAU,wBAAwB;IAC9C,OAAO,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"useIsScreenReaderEnabled.js","sourceRoot":"","sources":["../../src/hooks/useIsScreenReaderEnabled.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,wBAAwB;IACtC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO,GAAG,CAAC,qBAAqB,CAAC;AACnC,CAAC"}
@@ -1,10 +1,5 @@
1
- /**
2
- * Ink-compatible `useStderr()` hook.
3
- *
4
- * Note: direct writes bypass Rezi's renderer and may interfere with UI output.
5
- */
6
- export default function useStderr(): {
7
- stderr: NodeJS.WriteStream;
1
+ export declare function useStderr(): {
2
+ stderr: import("stream").Writable;
8
3
  write: (data: string) => void;
9
4
  };
10
5
  //# sourceMappingURL=useStderr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStderr.d.ts","sourceRoot":"","sources":["../../src/hooks/useStderr.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS;;kBAIf,MAAM,KAAG,IAAI;EAI9B"}
1
+ {"version":3,"file":"useStderr.d.ts","sourceRoot":"","sources":["../../src/hooks/useStderr.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS;;kBAIP,MAAM;EAIvB"}
@@ -1,15 +1,10 @@
1
- import { useRequiredStdioContext } from "../context/StdioContext.js";
2
- /**
3
- * Ink-compatible `useStderr()` hook.
4
- *
5
- * Note: direct writes bypass Rezi's renderer and may interfere with UI output.
6
- */
7
- export default function useStderr() {
8
- const ctx = useRequiredStdioContext();
1
+ import { useInkContext } from "../runtime/context.js";
2
+ export function useStderr() {
3
+ const ctx = useInkContext();
9
4
  return {
10
5
  stderr: ctx.stderr,
11
6
  write: (data) => {
12
- void ctx.stderr.write(data);
7
+ ctx.writeStderr(data);
13
8
  },
14
9
  };
15
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useStderr.js","sourceRoot":"","sources":["../../src/hooks/useStderr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,MAAM,GAAG,GAAG,uBAAuB,EAAE,CAAC;IACtC,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,CAAC,IAAY,EAAQ,EAAE;YAC5B,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useStderr.js","sourceRoot":"","sources":["../../src/hooks/useStderr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE;YACtB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,17 +1,7 @@
1
- /**
2
- * Ink-compatible `useStdin()` hook.
3
- *
4
- * In Ink, this returns the StdinContext props. We keep the same surface.
5
- */
6
- export default function useStdin(): {
7
- stdin: NodeJS.ReadStream;
8
- setRawMode: (value: boolean) => void;
1
+ import type tty from "node:tty";
2
+ export declare function useStdin(): {
3
+ stdin: tty.ReadStream;
9
4
  isRawModeSupported: boolean;
10
- internal_exitOnCtrlC: boolean;
11
- internal_eventEmitter: Readonly<{
12
- on: (event: "input", listener: import("../internal/emitter.js").Listener<import("@rezi-ui/core").UiEvent>) => void;
13
- removeListener: (event: "input", listener: import("../internal/emitter.js").Listener<import("@rezi-ui/core").UiEvent>) => void;
14
- emit: (event: "input", value: import("@rezi-ui/core").UiEvent) => void;
15
- }>;
5
+ setRawMode: (enabled: boolean) => void;
16
6
  };
17
7
  //# sourceMappingURL=useStdin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStdin.d.ts","sourceRoot":"","sources":["../../src/hooks/useStdin.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ;;;;;;;;;;EAS/B"}
1
+ {"version":3,"file":"useStdin.d.ts","sourceRoot":"","sources":["../../src/hooks/useStdin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAIhC,wBAAgB,QAAQ,IAAI;IAC1B,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC;IACtB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC,CASA"}
@@ -1,17 +1,12 @@
1
- import { useRequiredStdioContext } from "../context/StdioContext.js";
2
- /**
3
- * Ink-compatible `useStdin()` hook.
4
- *
5
- * In Ink, this returns the StdinContext props. We keep the same surface.
6
- */
7
- export default function useStdin() {
8
- const ctx = useRequiredStdioContext();
1
+ import { useInkContext } from "../runtime/context.js";
2
+ export function useStdin() {
3
+ const ctx = useInkContext();
4
+ // The actual stdin may be process.stdin (a ReadStream) or a mock PassThrough.
5
+ // We cast to ReadStream to match Ink's typing callers already guard with isRawModeSupported.
9
6
  return {
10
7
  stdin: ctx.stdin,
11
- setRawMode: ctx.setRawMode,
12
8
  isRawModeSupported: ctx.isRawModeSupported,
13
- internal_exitOnCtrlC: ctx.internal_exitOnCtrlC,
14
- internal_eventEmitter: ctx.internal_eventEmitter,
9
+ setRawMode: ctx.setRawMode,
15
10
  };
16
11
  }
17
12
  //# sourceMappingURL=useStdin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStdin.js","sourceRoot":"","sources":["../../src/hooks/useStdin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ;IAC9B,MAAM,GAAG,GAAG,uBAAuB,EAAE,CAAC;IACtC,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;QAC9C,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;KACjD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useStdin.js","sourceRoot":"","sources":["../../src/hooks/useStdin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,QAAQ;IAKtB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,8EAA8E;IAC9E,+FAA+F;IAC/F,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAkC;QAC7C,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC;AACJ,CAAC"}
@@ -1,10 +1,5 @@
1
- /**
2
- * Ink-compatible `useStdout()` hook.
3
- *
4
- * Note: direct writes bypass Rezi's renderer and may interfere with UI output.
5
- */
6
- export default function useStdout(): {
7
- stdout: NodeJS.WriteStream;
1
+ export declare function useStdout(): {
2
+ stdout: import("stream").Writable;
8
3
  write: (data: string) => void;
9
4
  };
10
5
  //# sourceMappingURL=useStdout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStdout.d.ts","sourceRoot":"","sources":["../../src/hooks/useStdout.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS;;kBAIf,MAAM,KAAG,IAAI;EAI9B"}
1
+ {"version":3,"file":"useStdout.d.ts","sourceRoot":"","sources":["../../src/hooks/useStdout.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS;;kBAIP,MAAM;EAIvB"}
@@ -1,15 +1,10 @@
1
- import { useRequiredStdioContext } from "../context/StdioContext.js";
2
- /**
3
- * Ink-compatible `useStdout()` hook.
4
- *
5
- * Note: direct writes bypass Rezi's renderer and may interfere with UI output.
6
- */
7
- export default function useStdout() {
8
- const ctx = useRequiredStdioContext();
1
+ import { useInkContext } from "../runtime/context.js";
2
+ export function useStdout() {
3
+ const ctx = useInkContext();
9
4
  return {
10
5
  stdout: ctx.stdout,
11
6
  write: (data) => {
12
- void ctx.stdout.write(data);
7
+ ctx.writeStdout(data);
13
8
  },
14
9
  };
15
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useStdout.js","sourceRoot":"","sources":["../../src/hooks/useStdout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,MAAM,GAAG,GAAG,uBAAuB,EAAE,CAAC;IACtC,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,CAAC,IAAY,EAAQ,EAAE;YAC5B,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useStdout.js","sourceRoot":"","sources":["../../src/hooks/useStdout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,UAAU,SAAS;IACvB,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,CAAC,IAAY,EAAE,EAAE;YACtB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC"}