@effect-tui/react 0.15.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/README.md +11 -2
  2. package/dist/src/codeblock.d.ts +1 -1
  3. package/dist/src/codeblock.d.ts.map +1 -1
  4. package/dist/src/codeblock.js +2 -2
  5. package/dist/src/codeblock.js.map +1 -1
  6. package/dist/src/components/ListView.d.ts +4 -4
  7. package/dist/src/components/ListView.d.ts.map +1 -1
  8. package/dist/src/components/ListView.js +16 -17
  9. package/dist/src/components/ListView.js.map +1 -1
  10. package/dist/src/components/Markdown.js +3 -3
  11. package/dist/src/components/Markdown.js.map +1 -1
  12. package/dist/src/components/MultilineTextInput.d.ts.map +1 -1
  13. package/dist/src/components/MultilineTextInput.js +133 -305
  14. package/dist/src/components/MultilineTextInput.js.map +1 -1
  15. package/dist/src/components/TextInput.d.ts.map +1 -1
  16. package/dist/src/components/TextInput.js +51 -98
  17. package/dist/src/components/TextInput.js.map +1 -1
  18. package/dist/src/components/text-editing.d.ts +61 -0
  19. package/dist/src/components/text-editing.d.ts.map +1 -1
  20. package/dist/src/components/text-editing.js +131 -0
  21. package/dist/src/components/text-editing.js.map +1 -1
  22. package/dist/src/console/ConsolePopover.d.ts +7 -1
  23. package/dist/src/console/ConsolePopover.d.ts.map +1 -1
  24. package/dist/src/console/ConsolePopover.js +55 -74
  25. package/dist/src/console/ConsolePopover.js.map +1 -1
  26. package/dist/src/debug/DebugOverlay.d.ts.map +1 -1
  27. package/dist/src/debug/DebugOverlay.js +3 -57
  28. package/dist/src/debug/DebugOverlay.js.map +1 -1
  29. package/dist/src/debug/DiagnosticsPanel.js +1 -1
  30. package/dist/src/debug/DiagnosticsPanel.js.map +1 -1
  31. package/dist/src/dev.d.ts +5 -117
  32. package/dist/src/dev.d.ts.map +1 -1
  33. package/dist/src/dev.js +3 -333
  34. package/dist/src/dev.js.map +1 -1
  35. package/dist/src/hooks/use-scroll.d.ts +31 -35
  36. package/dist/src/hooks/use-scroll.d.ts.map +1 -1
  37. package/dist/src/hooks/use-scroll.js +51 -90
  38. package/dist/src/hooks/use-scroll.js.map +1 -1
  39. package/dist/src/hosts/base.d.ts +13 -2
  40. package/dist/src/hosts/base.d.ts.map +1 -1
  41. package/dist/src/hosts/base.js +74 -2
  42. package/dist/src/hosts/base.js.map +1 -1
  43. package/dist/src/hosts/box.d.ts +2 -2
  44. package/dist/src/hosts/box.d.ts.map +1 -1
  45. package/dist/src/hosts/box.js +29 -2
  46. package/dist/src/hosts/box.js.map +1 -1
  47. package/dist/src/hosts/canvas.d.ts +24 -4
  48. package/dist/src/hosts/canvas.d.ts.map +1 -1
  49. package/dist/src/hosts/canvas.js +107 -41
  50. package/dist/src/hosts/canvas.js.map +1 -1
  51. package/dist/src/hosts/codeblock.d.ts +10 -12
  52. package/dist/src/hosts/codeblock.d.ts.map +1 -1
  53. package/dist/src/hosts/codeblock.js +38 -35
  54. package/dist/src/hosts/codeblock.js.map +1 -1
  55. package/dist/src/hosts/flex-container.d.ts +3 -3
  56. package/dist/src/hosts/flex-container.d.ts.map +1 -1
  57. package/dist/src/hosts/flex-container.js +20 -5
  58. package/dist/src/hosts/flex-container.js.map +1 -1
  59. package/dist/src/hosts/index.d.ts +3 -2
  60. package/dist/src/hosts/index.d.ts.map +1 -1
  61. package/dist/src/hosts/index.js +2 -1
  62. package/dist/src/hosts/index.js.map +1 -1
  63. package/dist/src/hosts/layout-helpers.d.ts +10 -0
  64. package/dist/src/hosts/layout-helpers.d.ts.map +1 -0
  65. package/dist/src/hosts/layout-helpers.js +10 -0
  66. package/dist/src/hosts/layout-helpers.js.map +1 -0
  67. package/dist/src/hosts/leaf.d.ts +14 -0
  68. package/dist/src/hosts/leaf.d.ts.map +1 -0
  69. package/dist/src/hosts/leaf.js +31 -0
  70. package/dist/src/hosts/leaf.js.map +1 -0
  71. package/dist/src/hosts/overlay-item.d.ts +2 -2
  72. package/dist/src/hosts/overlay-item.d.ts.map +1 -1
  73. package/dist/src/hosts/overlay-item.js +7 -2
  74. package/dist/src/hosts/overlay-item.js.map +1 -1
  75. package/dist/src/hosts/overlay.d.ts +2 -2
  76. package/dist/src/hosts/overlay.d.ts.map +1 -1
  77. package/dist/src/hosts/overlay.js +6 -9
  78. package/dist/src/hosts/overlay.js.map +1 -1
  79. package/dist/src/hosts/scroll.d.ts +54 -26
  80. package/dist/src/hosts/scroll.d.ts.map +1 -1
  81. package/dist/src/hosts/scroll.js +185 -87
  82. package/dist/src/hosts/scroll.js.map +1 -1
  83. package/dist/src/hosts/single-child.d.ts.map +1 -1
  84. package/dist/src/hosts/single-child.js +2 -0
  85. package/dist/src/hosts/single-child.js.map +1 -1
  86. package/dist/src/hosts/spacer.d.ts +3 -3
  87. package/dist/src/hosts/spacer.d.ts.map +1 -1
  88. package/dist/src/hosts/spacer.js +8 -3
  89. package/dist/src/hosts/spacer.js.map +1 -1
  90. package/dist/src/hosts/text.d.ts +22 -18
  91. package/dist/src/hosts/text.d.ts.map +1 -1
  92. package/dist/src/hosts/text.js +108 -131
  93. package/dist/src/hosts/text.js.map +1 -1
  94. package/dist/src/hosts/vstack.js +1 -1
  95. package/dist/src/hosts/vstack.js.map +1 -1
  96. package/dist/src/hosts/zstack.d.ts +3 -3
  97. package/dist/src/hosts/zstack.d.ts.map +1 -1
  98. package/dist/src/hosts/zstack.js +13 -8
  99. package/dist/src/hosts/zstack.js.map +1 -1
  100. package/dist/src/index.d.ts +2 -2
  101. package/dist/src/index.d.ts.map +1 -1
  102. package/dist/src/internal/dev/hmr.d.ts +20 -0
  103. package/dist/src/internal/dev/hmr.d.ts.map +1 -0
  104. package/dist/src/internal/dev/hmr.js +93 -0
  105. package/dist/src/internal/dev/hmr.js.map +1 -0
  106. package/dist/src/internal/dev/runtime.d.ts +24 -0
  107. package/dist/src/internal/dev/runtime.d.ts.map +1 -0
  108. package/dist/src/internal/dev/runtime.js +135 -0
  109. package/dist/src/internal/dev/runtime.js.map +1 -0
  110. package/dist/src/internal/dev/ui.d.ts +13 -0
  111. package/dist/src/internal/dev/ui.d.ts.map +1 -0
  112. package/dist/src/internal/dev/ui.js +51 -0
  113. package/dist/src/internal/dev/ui.js.map +1 -0
  114. package/dist/src/internal/renderer/context.d.ts +9 -0
  115. package/dist/src/internal/renderer/context.d.ts.map +1 -0
  116. package/dist/src/internal/renderer/context.js +22 -0
  117. package/dist/src/internal/renderer/context.js.map +1 -0
  118. package/dist/src/internal/renderer/core/FrameBuilder.d.ts +18 -0
  119. package/dist/src/internal/renderer/core/FrameBuilder.d.ts.map +1 -0
  120. package/dist/src/internal/renderer/core/FrameBuilder.js +40 -0
  121. package/dist/src/internal/renderer/core/FrameBuilder.js.map +1 -0
  122. package/dist/src/internal/renderer/core/RendererState.d.ts +41 -0
  123. package/dist/src/internal/renderer/core/RendererState.d.ts.map +1 -0
  124. package/dist/src/internal/renderer/core/RendererState.js +70 -0
  125. package/dist/src/internal/renderer/core/RendererState.js.map +1 -0
  126. package/dist/src/internal/renderer/core/index.d.ts +3 -0
  127. package/dist/src/internal/renderer/core/index.d.ts.map +1 -0
  128. package/dist/src/internal/renderer/core/index.js +3 -0
  129. package/dist/src/internal/renderer/core/index.js.map +1 -0
  130. package/dist/src/internal/renderer/index.d.ts +40 -0
  131. package/dist/src/internal/renderer/index.d.ts.map +1 -0
  132. package/dist/src/internal/renderer/index.js +543 -0
  133. package/dist/src/internal/renderer/index.js.map +1 -0
  134. package/dist/src/internal/renderer/input/InputProcessor.d.ts +30 -0
  135. package/dist/src/internal/renderer/input/InputProcessor.d.ts.map +1 -0
  136. package/dist/src/internal/renderer/input/InputProcessor.js +122 -0
  137. package/dist/src/internal/renderer/input/InputProcessor.js.map +1 -0
  138. package/dist/src/internal/renderer/input/index.d.ts +2 -0
  139. package/dist/src/internal/renderer/input/index.d.ts.map +1 -0
  140. package/dist/src/internal/renderer/input/index.js +2 -0
  141. package/dist/src/internal/renderer/input/index.js.map +1 -0
  142. package/dist/src/internal/renderer/lifecycle/EventBus.d.ts +42 -0
  143. package/dist/src/internal/renderer/lifecycle/EventBus.d.ts.map +1 -0
  144. package/dist/src/internal/renderer/lifecycle/EventBus.js +97 -0
  145. package/dist/src/internal/renderer/lifecycle/EventBus.js.map +1 -0
  146. package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.d.ts +13 -0
  147. package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.d.ts.map +1 -0
  148. package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.js +111 -0
  149. package/dist/src/internal/renderer/lifecycle/ProcessLifecycle.js.map +1 -0
  150. package/dist/src/internal/renderer/lifecycle/RenderCache.d.ts +3 -0
  151. package/dist/src/internal/renderer/lifecycle/RenderCache.d.ts.map +1 -0
  152. package/dist/src/internal/renderer/lifecycle/RenderCache.js +9 -0
  153. package/dist/src/internal/renderer/lifecycle/RenderCache.js.map +1 -0
  154. package/dist/src/internal/renderer/lifecycle/index.d.ts +4 -0
  155. package/dist/src/internal/renderer/lifecycle/index.d.ts.map +1 -0
  156. package/dist/src/internal/renderer/lifecycle/index.js +4 -0
  157. package/dist/src/internal/renderer/lifecycle/index.js.map +1 -0
  158. package/dist/src/internal/renderer/modes/FullscreenRenderer.d.ts +12 -0
  159. package/dist/src/internal/renderer/modes/FullscreenRenderer.d.ts.map +1 -0
  160. package/dist/src/internal/renderer/modes/FullscreenRenderer.js +54 -0
  161. package/dist/src/internal/renderer/modes/FullscreenRenderer.js.map +1 -0
  162. package/dist/src/internal/renderer/modes/InlineRenderer.d.ts +25 -0
  163. package/dist/src/internal/renderer/modes/InlineRenderer.d.ts.map +1 -0
  164. package/dist/src/internal/renderer/modes/InlineRenderer.js +166 -0
  165. package/dist/src/internal/renderer/modes/InlineRenderer.js.map +1 -0
  166. package/dist/src/internal/renderer/modes/RendererMode.d.ts +42 -0
  167. package/dist/src/internal/renderer/modes/RendererMode.d.ts.map +1 -0
  168. package/dist/src/internal/renderer/modes/RendererMode.js +2 -0
  169. package/dist/src/internal/renderer/modes/RendererMode.js.map +1 -0
  170. package/dist/src/internal/renderer/modes/StaticContentRenderer.d.ts +25 -0
  171. package/dist/src/internal/renderer/modes/StaticContentRenderer.d.ts.map +1 -0
  172. package/dist/src/internal/renderer/modes/StaticContentRenderer.js +49 -0
  173. package/dist/src/internal/renderer/modes/StaticContentRenderer.js.map +1 -0
  174. package/dist/src/internal/renderer/modes/index.d.ts +5 -0
  175. package/dist/src/internal/renderer/modes/index.d.ts.map +1 -0
  176. package/dist/src/internal/renderer/modes/index.js +4 -0
  177. package/dist/src/internal/renderer/modes/index.js.map +1 -0
  178. package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.d.ts +13 -0
  179. package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.d.ts.map +1 -0
  180. package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.js +75 -0
  181. package/dist/src/internal/renderer/terminal/KeyboardCapabilityProbe.js.map +1 -0
  182. package/dist/src/internal/renderer/terminal/TerminalSetup.d.ts +29 -0
  183. package/dist/src/internal/renderer/terminal/TerminalSetup.d.ts.map +1 -0
  184. package/dist/src/internal/renderer/terminal/TerminalSetup.js +82 -0
  185. package/dist/src/internal/renderer/terminal/TerminalSetup.js.map +1 -0
  186. package/dist/src/internal/renderer/terminal/index.d.ts +3 -0
  187. package/dist/src/internal/renderer/terminal/index.d.ts.map +1 -0
  188. package/dist/src/internal/renderer/terminal/index.js +3 -0
  189. package/dist/src/internal/renderer/terminal/index.js.map +1 -0
  190. package/dist/src/internal/renderer/types.d.ts +122 -0
  191. package/dist/src/internal/renderer/types.d.ts.map +1 -0
  192. package/dist/src/internal/renderer/types.js +2 -0
  193. package/dist/src/internal/renderer/types.js.map +1 -0
  194. package/dist/src/motion/hooks.d.ts +1 -1
  195. package/dist/src/motion/hooks.js +1 -1
  196. package/dist/src/reconciler/host-config.js +2 -2
  197. package/dist/src/reconciler/host-config.js.map +1 -1
  198. package/dist/src/reconciler/types.d.ts +5 -1
  199. package/dist/src/reconciler/types.d.ts.map +1 -1
  200. package/dist/src/renderer-context.d.ts +1 -8
  201. package/dist/src/renderer-context.d.ts.map +1 -1
  202. package/dist/src/renderer-context.js +1 -21
  203. package/dist/src/renderer-context.js.map +1 -1
  204. package/dist/src/renderer-types.d.ts +1 -115
  205. package/dist/src/renderer-types.d.ts.map +1 -1
  206. package/dist/src/renderer.d.ts +1 -31
  207. package/dist/src/renderer.d.ts.map +1 -1
  208. package/dist/src/renderer.js +1 -495
  209. package/dist/src/renderer.js.map +1 -1
  210. package/dist/src/test/render-tui.d.ts +3 -3
  211. package/dist/src/test/render-tui.d.ts.map +1 -1
  212. package/dist/src/test/render-tui.js +16 -9
  213. package/dist/src/test/render-tui.js.map +1 -1
  214. package/dist/src/utils/alignment.d.ts +1 -1
  215. package/dist/src/utils/alignment.d.ts.map +1 -1
  216. package/dist/src/utils/alignment.js +0 -2
  217. package/dist/src/utils/alignment.js.map +1 -1
  218. package/dist/src/utils/border.d.ts +1 -1
  219. package/dist/src/utils/border.d.ts.map +1 -1
  220. package/dist/src/utils/border.js +2 -0
  221. package/dist/src/utils/border.js.map +1 -1
  222. package/dist/src/utils/console-helpers.d.ts +19 -0
  223. package/dist/src/utils/console-helpers.d.ts.map +1 -0
  224. package/dist/src/utils/console-helpers.js +61 -0
  225. package/dist/src/utils/console-helpers.js.map +1 -0
  226. package/dist/src/utils/index.d.ts +2 -1
  227. package/dist/src/utils/index.d.ts.map +1 -1
  228. package/dist/src/utils/index.js +2 -1
  229. package/dist/src/utils/index.js.map +1 -1
  230. package/dist/src/utils/styles.d.ts +8 -1
  231. package/dist/src/utils/styles.d.ts.map +1 -1
  232. package/dist/src/utils/styles.js +10 -8
  233. package/dist/src/utils/styles.js.map +1 -1
  234. package/dist/src/utils/text-layout.d.ts +22 -0
  235. package/dist/src/utils/text-layout.d.ts.map +1 -0
  236. package/dist/src/utils/text-layout.js +37 -0
  237. package/dist/src/utils/text-layout.js.map +1 -0
  238. package/dist/src/utils/text-wrap.d.ts +31 -1
  239. package/dist/src/utils/text-wrap.d.ts.map +1 -1
  240. package/dist/src/utils/text-wrap.js +205 -48
  241. package/dist/src/utils/text-wrap.js.map +1 -1
  242. package/dist/src/visualize/index.js +1 -1
  243. package/dist/src/visualize/index.js.map +1 -1
  244. package/dist/tsconfig.tsbuildinfo +1 -1
  245. package/package.json +2 -2
  246. package/src/codeblock.tsx +2 -2
  247. package/src/components/ListView.tsx +21 -23
  248. package/src/components/Markdown.tsx +3 -3
  249. package/src/components/MultilineTextInput.tsx +138 -344
  250. package/src/components/TextInput.tsx +54 -99
  251. package/src/components/text-editing.ts +180 -0
  252. package/src/console/ConsolePopover.tsx +124 -107
  253. package/src/debug/DebugOverlay.ts +15 -74
  254. package/src/debug/DiagnosticsPanel.tsx +1 -1
  255. package/src/dev.tsx +5 -458
  256. package/src/hooks/use-scroll.ts +85 -145
  257. package/src/hosts/base.ts +86 -3
  258. package/src/hosts/box.ts +37 -2
  259. package/src/hosts/canvas.ts +128 -42
  260. package/src/hosts/codeblock.ts +48 -35
  261. package/src/hosts/flex-container.ts +25 -6
  262. package/src/hosts/index.ts +11 -2
  263. package/src/hosts/layout-helpers.ts +20 -0
  264. package/src/hosts/leaf.ts +36 -0
  265. package/src/hosts/overlay-item.ts +8 -2
  266. package/src/hosts/overlay.ts +13 -11
  267. package/src/hosts/scroll.ts +228 -106
  268. package/src/hosts/single-child.ts +2 -0
  269. package/src/hosts/spacer.ts +8 -3
  270. package/src/hosts/text.ts +126 -132
  271. package/src/hosts/vstack.ts +1 -1
  272. package/src/hosts/zstack.ts +14 -9
  273. package/src/index.ts +2 -2
  274. package/src/internal/dev/hmr.ts +101 -0
  275. package/src/internal/dev/runtime.ts +170 -0
  276. package/src/internal/dev/ui.tsx +87 -0
  277. package/src/internal/renderer/context.ts +27 -0
  278. package/src/{renderer → internal/renderer}/core/FrameBuilder.ts +2 -2
  279. package/src/internal/renderer/index.ts +689 -0
  280. package/src/{renderer → internal/renderer}/input/InputProcessor.ts +10 -1
  281. package/src/{renderer → internal/renderer}/lifecycle/EventBus.ts +9 -1
  282. package/src/internal/renderer/lifecycle/ProcessLifecycle.ts +125 -0
  283. package/src/internal/renderer/lifecycle/index.ts +3 -0
  284. package/src/{renderer → internal/renderer}/modes/InlineRenderer.ts +5 -2
  285. package/src/{renderer → internal/renderer}/modes/RendererMode.ts +1 -1
  286. package/src/{renderer → internal/renderer}/modes/StaticContentRenderer.ts +5 -2
  287. package/src/internal/renderer/terminal/KeyboardCapabilityProbe.ts +91 -0
  288. package/src/{renderer/lifecycle → internal/renderer/terminal}/TerminalSetup.ts +4 -22
  289. package/src/internal/renderer/terminal/index.ts +2 -0
  290. package/src/internal/renderer/types.ts +129 -0
  291. package/src/motion/hooks.ts +1 -1
  292. package/src/reconciler/host-config.ts +2 -2
  293. package/src/reconciler/types.ts +7 -1
  294. package/src/renderer-context.ts +1 -27
  295. package/src/renderer-types.ts +10 -123
  296. package/src/renderer.ts +1 -619
  297. package/src/test/render-tui.ts +16 -10
  298. package/src/utils/alignment.ts +1 -3
  299. package/src/utils/border.ts +11 -1
  300. package/src/utils/console-helpers.ts +86 -0
  301. package/src/utils/index.ts +15 -1
  302. package/src/utils/styles.ts +16 -4
  303. package/src/utils/text-layout.ts +65 -0
  304. package/src/utils/text-wrap.ts +261 -48
  305. package/src/visualize/index.tsx +1 -1
  306. package/src/renderer/lifecycle/ResizeManager.ts +0 -65
  307. package/src/renderer/lifecycle/index.ts +0 -4
  308. /package/src/{renderer → internal/renderer}/core/RendererState.ts +0 -0
  309. /package/src/{renderer → internal/renderer}/core/index.ts +0 -0
  310. /package/src/{renderer → internal/renderer}/input/index.ts +0 -0
  311. /package/src/{renderer → internal/renderer}/lifecycle/RenderCache.ts +0 -0
  312. /package/src/{renderer → internal/renderer}/modes/FullscreenRenderer.ts +0 -0
  313. /package/src/{renderer → internal/renderer}/modes/index.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/dev.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAQH,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEvE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,EAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAanD;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAE3D;AAmCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CA6BrC;AAED,MAAM,WAAW,UAAU;IAC1B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,uBAAuB;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IAChC,yCAAyC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,UAAU;IAC1B,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,iCAAiC;IACjC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,iCAAiC;IACjC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AA4FD,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,aAAa,EACb,UAAU,EACV,IAAI,GACJ,EAAE,eAAe,mBA2CjB;AAED,KAAK,OAAO,GAAG;IACd,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CACtD,CAAA;AAED,wBAAgB,eAAe,CAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,EACrB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,UAAU,GAAG;IAAE,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;CAAE,GACvD,UAAU,CAmGZ"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/dev.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA"}
package/dist/src/dev.js CHANGED
@@ -1,338 +1,8 @@
1
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
- });
6
- }
7
- return path;
8
- };
9
- import { jsx as _jsx, jsxs as _jsxs } from "@effect-tui/react/jsx-runtime";
10
1
  /**
11
2
  * Development utilities for hot module replacement (HMR).
12
- *
13
3
  * Use render(..., { dev: true, importMeta: import.meta }) to enable HMR.
14
- *
15
- * Enables hot reload during development:
16
- * - File changes trigger re-render without process restart
17
- * - Terminal stays stable (no screen flash)
18
- * - State preserved when using Effect's globalValue with effect-atom
19
- * - Debug console panel (` to toggle, ~ for screenshot)
20
- * - Remote control when EFFECT_TUI_REMOTE=1
21
4
  */
22
- import { readFileSync } from "node:fs";
23
- import { stat } from "node:fs/promises";
24
- import { dirname } from "node:path";
25
- import { Colors } from "@effect-tui/core";
26
- import * as watcher from "@parcel/watcher";
27
- import { globalValue } from "effect/GlobalValue";
28
- import React from "react";
29
- import { Overlay } from "./components/Overlay.js";
30
- import { ConsolePopover } from "./console/ConsolePopover.js";
31
- import { copyToClipboard, copyToClipboardSync } from "./console/clipboard.js";
32
- import { useConsole } from "./console/useConsole.js";
33
- import { DiagnosticsPanel } from "./debug/DiagnosticsPanel.js";
34
- import { ToastContainer, ToastProvider, useToast } from "./dev/Toast.js";
35
- import { useKeyboard } from "./hooks/use-keyboard.js";
36
- import { enableRemote } from "./remote/index.js";
37
- import { useRenderer, useTerminalSize } from "./renderer-context.js";
38
- /**
39
- * Pipeable combinator that makes an atom persist across hot reloads.
40
- *
41
- * This is the cleanest way to define HMR-persistent atoms - just pipe it!
42
- * Combines globalValue (for persistence) + keepAlive (prevents registry cleanup).
43
- *
44
- * @example
45
- * ```tsx
46
- * import { Atom } from "@effect-atom/atom-react"
47
- * import { hmr, render } from "@effect-tui/react"
48
- *
49
- * // Just pipe hmr() - that's it!
50
- * const countAtom = Atom.make(0).pipe(hmr("count"))
51
- * const userAtom = Atom.make<User | null>(null).pipe(hmr("user"))
52
- *
53
- * export default function App() {
54
- * const count = useAtomValue(countAtom)
55
- * // Edit this file - count persists!
56
- * }
57
- *
58
- * render(<App />, { dev: true, importMeta: import.meta })
59
- * ```
60
- */
61
- export function hmr(key) {
62
- return (self) => {
63
- return globalValue(Symbol.for(`hmr/${key}`), () => {
64
- // Apply keepAlive if it's an atom (just sets keepAlive: true)
65
- if (typeof self === "object" && self !== null && "keepAlive" in self) {
66
- return Object.assign(Object.create(Object.getPrototypeOf(self)), {
67
- ...self,
68
- keepAlive: true,
69
- });
70
- }
71
- return self;
72
- });
73
- };
74
- }
75
- /**
76
- * Wrap any value creation in HMR persistence.
77
- *
78
- * @example
79
- * ```tsx
80
- * const countAtom = hmrState("count", () => Atom.make(0).pipe(Atom.keepAlive))
81
- * ```
82
- */
83
- export function hmrState(key, create) {
84
- return globalValue(Symbol.for(`hmr/${key}`), create);
85
- }
86
- // Cache for runtime key extraction
87
- const keyCache = new Map();
88
- /**
89
- * Parse stack trace to get file path and line number.
90
- * Returns null if parsing fails.
91
- */
92
- function parseStack(stack) {
93
- // Bun stack format: " at functionName (file:line:col)" or " at file:line:col"
94
- const lines = stack.split("\n");
95
- // Skip first line (Error message) and find caller (skip autoHmr itself)
96
- for (let i = 2; i < lines.length; i++) {
97
- const match = lines[i].match(/\((.+?):(\d+):(\d+)\)/) || lines[i].match(/at\s+(.+?):(\d+):(\d+)/);
98
- if (match) {
99
- return { file: match[1], line: parseInt(match[2], 10), col: parseInt(match[3], 10) };
100
- }
101
- }
102
- return null;
103
- }
104
- /**
105
- * Extract variable name from source line using regex.
106
- * Returns null if extraction fails.
107
- */
108
- function extractVarName(source, line) {
109
- const lines = source.split("\n");
110
- if (line < 1 || line > lines.length)
111
- return null;
112
- const sourceLine = lines[line - 1];
113
- const match = sourceLine.match(/(?:export\s+)?(?:const|let|var)\s+(\w+)\s*=/);
114
- return match?.[1] ?? null;
115
- }
116
- /**
117
- * Auto-keyed HMR persistence for atoms.
118
- *
119
- * When used with the HMR plugin (recommended), keys are injected at load time
120
- * based on the variable name. Without the plugin, falls back to runtime
121
- * stack trace parsing.
122
- *
123
- * @example
124
- * ```tsx
125
- * import { Atom } from "@effect-atom/atom-react"
126
- * import { autoHmr, render } from "@effect-tui/react"
127
- *
128
- * // No manual key needed - derived from variable name!
129
- * const countAtom = Atom.make(0).pipe(autoHmr)
130
- * const userAtom = Atom.make<User | null>(null).pipe(autoHmr)
131
- *
132
- * // To enable compile-time transform (faster, more reliable):
133
- * // bun --preload @effect-tui/react/hmr-plugin run src/app.tsx
134
- * ```
135
- */
136
- export function autoHmr(self) {
137
- // Get stack trace for caller location
138
- const stack = new Error().stack ?? "";
139
- const location = parseStack(stack);
140
- if (!location) {
141
- // Fallback: use a hash of the stack trace
142
- const fallbackKey = `unknown:${stack.slice(0, 100)}`;
143
- return hmr(fallbackKey)(self);
144
- }
145
- const cacheKey = `${location.file}:${location.line}:${location.col}`;
146
- // Check cache first
147
- let key = keyCache.get(cacheKey);
148
- if (!key) {
149
- try {
150
- // Read source file and extract variable name
151
- const source = readFileSync(location.file, "utf-8");
152
- const varName = extractVarName(source, location.line);
153
- key = `${location.file}:${varName ?? `line${location.line}`}`;
154
- }
155
- catch {
156
- // File read failed, use line-based key
157
- key = `${location.file}:line${location.line}`;
158
- }
159
- keyCache.set(cacheKey, key);
160
- }
161
- return hmr(key)(self);
162
- }
163
- /**
164
- * Clear require.cache for project files to ensure fresh imports.
165
- * Bun uses require.cache internally even for ESM modules.
166
- * This is necessary because query-string cache-busting only affects
167
- * the entry point, not transitive dependencies.
168
- */
169
- function clearProjectCache(projectRoot) {
170
- for (const file of Object.keys(require.cache)) {
171
- if (file.startsWith(projectRoot) && !file.includes("node_modules")) {
172
- delete require.cache[file];
173
- }
174
- }
175
- }
176
- /**
177
- * Wait for a file to stabilize (no size changes) before proceeding.
178
- * This avoids importing partially-written files.
179
- */
180
- async function awaitWriteFinish(path, stabilityMs) {
181
- let lastSize = -1;
182
- let stableCount = 0;
183
- const checkInterval = 10;
184
- while (stableCount < stabilityMs / checkInterval) {
185
- try {
186
- const stats = await stat(path);
187
- if (stats.size === lastSize) {
188
- stableCount++;
189
- }
190
- else {
191
- lastSize = stats.size;
192
- stableCount = 0;
193
- }
194
- }
195
- catch {
196
- // File might be temporarily unavailable during write
197
- stableCount = 0;
198
- }
199
- await new Promise((r) => setTimeout(r, checkInterval));
200
- }
201
- }
202
- /**
203
- * Internal component that handles screenshot with toast notification
204
- */
205
- function ScreenshotHandler() {
206
- const renderer = useRenderer();
207
- const { show } = useToast();
208
- useKeyboard((key) => {
209
- // ~ (tilde) - screenshot
210
- if (key.name === "char" && key.text === "~") {
211
- const ansiOutput = renderer.getScreenshot();
212
- if (!ansiOutput)
213
- return;
214
- // Copy actual content to clipboard
215
- const copied = copyToClipboardSync(ansiOutput);
216
- if (!copied) {
217
- copyToClipboard(ansiOutput);
218
- }
219
- // Also save to file as backup
220
- const tmpPath = `/tmp/tui-screenshot-${Date.now()}.txt`;
221
- Bun.write(tmpPath, ansiOutput);
222
- show("Screenshot copied!", "screenshot", 2500);
223
- key.preventDefault?.();
224
- }
225
- });
226
- return null;
227
- }
228
- /**
229
- * Overlay for renderer diagnostics stats.
230
- */
231
- function StatsOverlay({ sampleMs, title }) {
232
- const { width, height } = useTerminalSize();
233
- return (_jsxs("vstack", { width: width, height: height, children: [_jsxs("hstack", { width: width, children: [_jsx("spacer", {}), _jsx("box", { padding: 1, border: "rounded", borderColor: Colors.ansi.gray(8), bg: Colors.ansi.gray(2), children: _jsx(DiagnosticsPanel, { sampleMs: sampleMs, title: title ?? "Renderer Stats" }) })] }), _jsx("spacer", {})] }));
234
- }
235
- /**
236
- * Wrapper component that provides dev mode features:
237
- * - Debug console panel (` backtick to toggle)
238
- * - Screenshot support (~ tilde) with toast notification
239
- * - Auto-show console on errors
240
- * - Optional renderer stats overlay (showStats)
241
- *
242
- * Use this to wrap your app when you need dev UI features without the dev runtime
243
- * (e.g., when you need to pass props or load the app manually).
244
- */
245
- export function DevWrapper({ children, showStats, statsSampleMs, statsTitle, mode, }) {
246
- const { visible } = useConsole({ autoShowOnError: true, initiallyVisible: false });
247
- // Inline mode: content flows naturally in vstack
248
- if (mode === "inline") {
249
- return (_jsx(ToastProvider, { children: _jsxs("vstack", { children: [_jsx(ScreenshotHandler, {}), _jsx(ToastContainer, {}), children, visible && _jsx(ConsolePopover, { fixedHeight: 5, mode: "inline" })] }) }));
250
- }
251
- // Fullscreen mode: Overlay with toast/console positioned by alignment
252
- return (_jsx(ToastProvider, { children: _jsxs(Overlay, { children: [_jsx(ScreenshotHandler, {}), children, visible && (_jsx(Overlay.Item, { alignment: { v: "bottom" }, children: _jsx(ConsolePopover, { fixedHeight: 12 }) })), showStats && (_jsx(Overlay.Item, { alignment: { v: "top", h: "right" }, children: _jsx(StatsOverlay, { sampleMs: statsSampleMs, title: statsTitle }) })), _jsx(Overlay.Item, { alignment: { v: "top" }, children: _jsx(ToastContainer, {}) })] }) }));
253
- }
254
- export function startDevRuntime(entryPath, renderer, root, options) {
255
- const watchExtensions = options?.watchExtensions ?? [".ts", ".tsx"];
256
- const debounceMs = options?.debounce ?? 150;
257
- const stabilityMs = options?.awaitWriteFinish ?? 50;
258
- // Dev mode always enables remote control with entry path for identification
259
- const stopRemote = enableRemote(renderer, { entryPath });
260
- let debounceTimer = null;
261
- let version = 0;
262
- let subscription = null;
263
- // Determine project root for cache clearing
264
- const projectRoot = options?.watchDirs?.[0] ?? dirname(entryPath);
265
- const reload = async () => {
266
- const thisVersion = ++version;
267
- try {
268
- // Clear module cache for project files before re-importing
269
- clearProjectCache(projectRoot);
270
- // Cache-bust by adding query string with version
271
- const mod = await import(__rewriteRelativeImportExtension(`${entryPath}?v=${thisVersion}`));
272
- // Skip if a newer render was triggered
273
- if (thisVersion !== version)
274
- return;
275
- const App = mod.default;
276
- if (!App) {
277
- const err = new Error(`No default export found in ${entryPath}`);
278
- options?.onError?.(err);
279
- console.error("[effect-tui] Dev render failed:", err.message);
280
- return;
281
- }
282
- // Render the component wrapped in DevWrapper for console panel
283
- const appElement = typeof App === "function" ? React.createElement(App) : App;
284
- const wrapped = React.createElement(DevWrapper, {
285
- showStats: options?.showStats,
286
- statsSampleMs: options?.statsSampleMs,
287
- statsTitle: options?.statsTitle,
288
- mode: options?.mode,
289
- }, appElement);
290
- root.render(wrapped);
291
- }
292
- catch (err) {
293
- const error = err instanceof Error ? err : new Error(String(err));
294
- options?.onError?.(error);
295
- console.error("[effect-tui] Dev render error:", error.message);
296
- }
297
- };
298
- const ready = (async () => {
299
- await reload();
300
- try {
301
- subscription = await watcher.subscribe(projectRoot, async (err, events) => {
302
- if (err) {
303
- options?.onError?.(err);
304
- console.error("[effect-tui] Dev watcher error:", err);
305
- return;
306
- }
307
- // Filter to relevant file extensions
308
- const relevantEvents = events.filter((event) => watchExtensions.some((ext) => event.path.endsWith(ext)));
309
- if (relevantEvents.length === 0)
310
- return;
311
- // Debounce rapid changes
312
- if (debounceTimer)
313
- clearTimeout(debounceTimer);
314
- debounceTimer = setTimeout(async () => {
315
- // Wait for file writes to stabilize
316
- const changedPath = relevantEvents[0].path;
317
- await awaitWriteFinish(changedPath, stabilityMs);
318
- options?.onReload?.();
319
- await reload();
320
- }, debounceMs);
321
- });
322
- }
323
- catch (err) {
324
- console.error(`[effect-tui] Failed to watch ${projectRoot}:`, err);
325
- }
326
- })();
327
- const stop = async () => {
328
- if (debounceTimer)
329
- clearTimeout(debounceTimer);
330
- if (subscription) {
331
- await subscription.unsubscribe();
332
- }
333
- stopRemote();
334
- renderer.stop();
335
- };
336
- return { ready, reload, stop };
337
- }
5
+ export { hmr, hmrState, autoHmr } from "./internal/dev/hmr.js";
6
+ export { DevWrapper } from "./internal/dev/ui.js";
7
+ export { startDevRuntime } from "./internal/dev/runtime.js";
338
8
  //# sourceMappingURL=dev.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/dev.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/dev.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA"}
@@ -1,20 +1,20 @@
1
- import type { ScrollProps } from "../hosts/scroll.js";
1
+ import type { ScrollAlign, ScrollAxis, ScrollLayoutChange, ScrollProps } from "../hosts/scroll.js";
2
2
  export interface ScrollState {
3
- /** Current scroll offset (pixels from start) for the primary axis */
4
- offset: number;
5
- /** Maximum scroll offset for the primary axis */
6
- maxOffset: number;
7
- /** Viewport size for the primary axis */
8
- viewportSize: number;
9
- /** Whether viewport size has been measured by the host (primary axis) */
10
- viewportMeasured: boolean;
11
- /** Total content size for the primary axis */
12
- contentSize: number;
13
- /** Whether we're at the start edge (primary axis) */
14
- atStart: boolean;
15
- /** Whether we're at the end edge (primary axis) */
16
- atEnd: boolean;
17
- /** Current horizontal offset (pixels from start) */
3
+ /** Current vertical offset (pixels from top) */
4
+ offsetY: number;
5
+ /** Maximum vertical offset */
6
+ maxOffsetY: number;
7
+ /** Vertical viewport size */
8
+ viewportSizeY: number;
9
+ /** Whether vertical viewport size has been measured by the host */
10
+ viewportMeasuredY: boolean;
11
+ /** Total vertical content size */
12
+ contentSizeY: number;
13
+ /** Whether we're at the top edge */
14
+ atStartY: boolean;
15
+ /** Whether we're at the bottom edge */
16
+ atEndY: boolean;
17
+ /** Current horizontal offset (pixels from left) */
18
18
  offsetX: number;
19
19
  /** Maximum horizontal offset */
20
20
  maxOffsetX: number;
@@ -31,31 +31,25 @@ export interface ScrollState {
31
31
  }
32
32
  export interface UseScrollOptions {
33
33
  /** Scroll axis: "vertical" (default), "horizontal", or "both" */
34
- axis?: "vertical" | "horizontal" | "both";
35
- /** Controlled content size for the primary axis (skips host measurement when provided) */
36
- contentSize?: number;
34
+ axis?: ScrollAxis;
37
35
  /** Controlled content width (skips host measurement when provided) */
38
36
  contentWidth?: number;
39
37
  /** Controlled content height (skips host measurement when provided) */
40
38
  contentHeight?: number;
41
- /** @internal Initial viewport size override (useful for tests) */
42
- initialViewportSize?: number;
43
39
  /** @internal Initial viewport width override (useful for tests) */
44
40
  initialViewportWidth?: number;
45
41
  /** @internal Initial viewport height override (useful for tests) */
46
42
  initialViewportHeight?: number;
47
- /** @internal Initial content size override (useful for tests) */
48
- initialContentSize?: number;
49
43
  /** @internal Initial content width override (useful for tests) */
50
44
  initialContentWidth?: number;
51
45
  /** @internal Initial content height override (useful for tests) */
52
46
  initialContentHeight?: number;
53
- /** Initial scroll offset for the primary axis */
54
- initialOffset?: number;
47
+ /** Initial vertical scroll offset */
48
+ initialOffsetY?: number;
55
49
  /** Initial horizontal scroll offset */
56
50
  initialOffsetX?: number;
57
51
  /** Alignment when content is smaller than viewport */
58
- align?: "start" | "end";
52
+ align?: ScrollAlign;
59
53
  /** Whether to show scrollbars */
60
54
  showScrollbar?: boolean;
61
55
  /** Enable keyboard navigation (default: true) */
@@ -70,22 +64,24 @@ export interface UseScrollOptions {
70
64
  arrowSpeed?: number;
71
65
  /** Scroll speed for page up/down (fraction of viewport, default: 0.5) */
72
66
  pageSpeed?: number;
67
+ /** Optional layout callback (content/viewport/offset/rect). */
68
+ onScrollLayoutChange?: (event: ScrollLayoutChange) => void;
73
69
  }
74
70
  export interface UseScrollReturn {
75
71
  /** Current scroll state */
76
72
  state: ScrollState;
77
- /** Set scroll offset directly (primary axis) */
78
- setOffset: (offset: number) => void;
73
+ /** Set vertical scroll offset directly */
74
+ setOffsetY: (offsetY: number) => void;
79
75
  /** Set horizontal scroll offset directly */
80
76
  setOffsetX: (offsetX: number) => void;
81
- /** Scroll by delta pixels (primary axis) */
82
- scrollBy: (delta: number) => void;
77
+ /** Scroll by delta pixels vertically */
78
+ scrollByY: (delta: number) => void;
83
79
  /** Scroll by delta pixels horizontally */
84
80
  scrollByX: (delta: number) => void;
85
- /** Scroll to start (primary axis) */
86
- scrollToStart: () => void;
87
- /** Scroll to end (primary axis) */
88
- scrollToEnd: () => void;
81
+ /** Scroll to top */
82
+ scrollToStartY: () => void;
83
+ /** Scroll to bottom */
84
+ scrollToEndY: () => void;
89
85
  /** Scroll to horizontal start */
90
86
  scrollToStartX: () => void;
91
87
  /** Scroll to horizontal end */
@@ -99,7 +95,7 @@ export interface UseScrollReturn {
99
95
  * @param totalSize - Optional known total content size (avoids stale state issues)
100
96
  * @param axis - Axis to scroll (defaults to vertical)
101
97
  */
102
- scrollToVisible: (position: number, itemSize?: number, padding?: number, totalSize?: number, axis?: "vertical" | "horizontal") => void;
98
+ scrollIntoView: (position: number, itemSize?: number, padding?: number, totalSize?: number, axis?: "vertical" | "horizontal") => void;
103
99
  /** Props to spread on <scroll> element */
104
100
  scrollProps: ScrollProps;
105
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-scroll.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-scroll.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAmFrD,MAAM,WAAW,WAAW;IAC3B,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAA;IACpB,yEAAyE;IACzE,gBAAgB,EAAE,OAAO,CAAA;IACzB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAA;IACnB,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAA;IAChB,mDAAmD;IACnD,KAAK,EAAE,OAAO,CAAA;IACd,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAA;IACf,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,yDAAyD;IACzD,iBAAiB,EAAE,OAAO,CAAA;IAC1B,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,iDAAiD;IACjD,QAAQ,EAAE,OAAO,CAAA;IACjB,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,gBAAgB;IAChC,iEAAiE;IACjE,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAA;IACzC,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IACvB,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iDAAiD;IACjD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC/B,2BAA2B;IAC3B,KAAK,EAAE,WAAW,CAAA;IAClB,gDAAgD;IAChD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,4CAA4C;IAC5C,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,0CAA0C;IAC1C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,qCAAqC;IACrC,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,mCAAmC;IACnC,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,iCAAiC;IACjC,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,+BAA+B;IAC/B,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB;;;;;;;;OAQG;IACH,eAAe,EAAE,CAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,KAC5B,IAAI,CAAA;IACT,0CAA0C;IAC1C,WAAW,EAAE,WAAW,CAAA;CACxB;AAsED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAyazE"}
1
+ {"version":3,"file":"use-scroll.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-scroll.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAmFlG,MAAM,WAAW,WAAW;IAC3B,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAA;IACrB,mEAAmE;IACnE,iBAAiB,EAAE,OAAO,CAAA;IAC1B,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAA;IACjB,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAA;IACf,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAA;IACrB,yDAAyD;IACzD,iBAAiB,EAAE,OAAO,CAAA;IAC1B,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,iDAAiD;IACjD,QAAQ,EAAE,OAAO,CAAA;IACjB,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,gBAAgB;IAChC,iEAAiE;IACjE,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,oEAAoE;IACpE,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,kEAAkE;IAClE,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,mEAAmE;IACnE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uCAAuC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iDAAiD;IACjD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAA;CAC1D;AAED,MAAM,WAAW,eAAe;IAC/B,2BAA2B;IAC3B,KAAK,EAAE,WAAW,CAAA;IAClB,0CAA0C;IAC1C,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,4CAA4C;IAC5C,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,wCAAwC;IACxC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,0CAA0C;IAC1C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,oBAAoB;IACpB,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,uBAAuB;IACvB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,iCAAiC;IACjC,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,+BAA+B;IAC/B,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB;;;;;;;;OAQG;IACH,cAAc,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU,GAAG,YAAY,KAC5B,IAAI,CAAA;IACT,0CAA0C;IAC1C,WAAW,EAAE,WAAW,CAAA;CACxB;AAsED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAE,gBAAqB,GAAG,eAAe,CAiXzE"}