@effect-tui/react 0.12.3 → 0.13.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 (69) hide show
  1. package/README.md +21 -1
  2. package/dist/src/dev.d.ts +22 -32
  3. package/dist/src/dev.d.ts.map +1 -1
  4. package/dist/src/dev.js +42 -96
  5. package/dist/src/dev.js.map +1 -1
  6. package/dist/src/hooks/index.d.ts +3 -0
  7. package/dist/src/hooks/index.d.ts.map +1 -1
  8. package/dist/src/hooks/index.js +1 -0
  9. package/dist/src/hooks/index.js.map +1 -1
  10. package/dist/src/hooks/use-mouse.d.ts +10 -1
  11. package/dist/src/hooks/use-mouse.d.ts.map +1 -1
  12. package/dist/src/hooks/use-mouse.js +10 -2
  13. package/dist/src/hooks/use-mouse.js.map +1 -1
  14. package/dist/src/hooks/use-paste.d.ts +13 -3
  15. package/dist/src/hooks/use-paste.d.ts.map +1 -1
  16. package/dist/src/hooks/use-paste.js +15 -5
  17. package/dist/src/hooks/use-paste.js.map +1 -1
  18. package/dist/src/hooks/use-scroll.d.ts +59 -24
  19. package/dist/src/hooks/use-scroll.d.ts.map +1 -1
  20. package/dist/src/hooks/use-scroll.js +238 -79
  21. package/dist/src/hooks/use-scroll.js.map +1 -1
  22. package/dist/src/hooks/use-shortcut.d.ts +16 -0
  23. package/dist/src/hooks/use-shortcut.d.ts.map +1 -0
  24. package/dist/src/hooks/use-shortcut.js +29 -0
  25. package/dist/src/hooks/use-shortcut.js.map +1 -0
  26. package/dist/src/hosts/scroll.d.ts +4 -0
  27. package/dist/src/hosts/scroll.d.ts.map +1 -1
  28. package/dist/src/hosts/scroll.js +18 -2
  29. package/dist/src/hosts/scroll.js.map +1 -1
  30. package/dist/src/index.d.ts +6 -4
  31. package/dist/src/index.d.ts.map +1 -1
  32. package/dist/src/index.js +3 -2
  33. package/dist/src/index.js.map +1 -1
  34. package/dist/src/renderer/input/InputProcessor.d.ts.map +1 -1
  35. package/dist/src/renderer/input/InputProcessor.js +8 -1
  36. package/dist/src/renderer/input/InputProcessor.js.map +1 -1
  37. package/dist/src/renderer/lifecycle/EventBus.d.ts +2 -2
  38. package/dist/src/renderer/lifecycle/EventBus.d.ts.map +1 -1
  39. package/dist/src/renderer/lifecycle/EventBus.js +13 -1
  40. package/dist/src/renderer/lifecycle/EventBus.js.map +1 -1
  41. package/dist/src/renderer-types.d.ts +8 -1
  42. package/dist/src/renderer-types.d.ts.map +1 -1
  43. package/dist/src/renderer.d.ts +13 -2
  44. package/dist/src/renderer.d.ts.map +1 -1
  45. package/dist/src/renderer.js +48 -7
  46. package/dist/src/renderer.js.map +1 -1
  47. package/dist/src/shortcuts.d.ts +15 -0
  48. package/dist/src/shortcuts.d.ts.map +1 -0
  49. package/dist/src/shortcuts.js +149 -0
  50. package/dist/src/shortcuts.js.map +1 -0
  51. package/dist/src/test/mock-streams.d.ts.map +1 -1
  52. package/dist/src/test/mock-streams.js +0 -3
  53. package/dist/src/test/mock-streams.js.map +1 -1
  54. package/dist/tsconfig.tsbuildinfo +1 -1
  55. package/package.json +2 -2
  56. package/src/dev.tsx +59 -107
  57. package/src/hooks/index.ts +3 -0
  58. package/src/hooks/use-mouse.ts +19 -3
  59. package/src/hooks/use-paste.ts +24 -5
  60. package/src/hooks/use-scroll.ts +345 -105
  61. package/src/hooks/use-shortcut.ts +54 -0
  62. package/src/hosts/scroll.ts +21 -2
  63. package/src/index.ts +19 -6
  64. package/src/renderer/input/InputProcessor.ts +8 -1
  65. package/src/renderer/lifecycle/EventBus.ts +14 -4
  66. package/src/renderer-types.ts +9 -1
  67. package/src/renderer.ts +96 -9
  68. package/src/shortcuts.ts +180 -0
  69. package/src/test/mock-streams.ts +0 -3
package/README.md CHANGED
@@ -34,6 +34,19 @@ function App() {
34
34
  render(<App />)
35
35
  ```
36
36
 
37
+ ## Dev / HMR
38
+
39
+ Enable hot reload by passing `dev: true` and `importMeta`:
40
+
41
+ ```tsx
42
+ export default function App() { ... }
43
+
44
+ render(<App />, { dev: true, importMeta: import.meta })
45
+ ```
46
+
47
+ **Note:** When `dev: true`, the entry module's **default export** is re-imported
48
+ on each change. Keep your app as the default export for reliable HMR.
49
+
37
50
  ## JSX Elements
38
51
 
39
52
  - `<vstack>` - Vertical flex layout
@@ -46,7 +59,7 @@ render(<App />)
46
59
  ## Hooks
47
60
 
48
61
  - `useKeyboard(callback)` - Handle keyboard input
49
- - `usePaste(callback)` - Handle paste events
62
+ - `usePaste(callback)` - Handle paste events (callback receives `{ text }`)
50
63
  - `useTerminalSize()` - Get terminal dimensions (re-renders on resize)
51
64
  - `useSpring(initial, options)` - Spring animation
52
65
  - `useSprings(count, fn)` - Multiple springs
@@ -119,7 +132,14 @@ it("renders and handles input", () => {
119
132
 
120
133
  ### Options
121
134
 
135
+ `importMeta` is required whenever you pass the options object.
136
+
122
137
  ```ts
138
+ type RenderOptions = RendererOptions & {
139
+ dev?: boolean
140
+ importMeta: ImportMetaLike
141
+ }
142
+
123
143
  interface RendererOptions {
124
144
  fps?: number // Default: 60
125
145
  mode?: "fullscreen" | "inline"
package/dist/src/dev.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Development utilities for hot module replacement (HMR).
3
3
  *
4
+ * Use render(..., { dev: true, importMeta: import.meta }) to enable HMR.
5
+ *
4
6
  * Enables hot reload during development:
5
7
  * - File changes trigger re-render without process restart
6
8
  * - Terminal stays stable (no screen flash)
@@ -9,7 +11,6 @@
9
11
  * - Remote control when EFFECT_TUI_REMOTE=1
10
12
  */
11
13
  import React from "react";
12
- import { type Root } from "./renderer.js";
13
14
  import type { RendererOptions, TuiRenderer } from "./renderer-types.js";
14
15
  /**
15
16
  * Pipeable combinator that makes an atom persist across hot reloads.
@@ -20,7 +21,7 @@ import type { RendererOptions, TuiRenderer } from "./renderer-types.js";
20
21
  * @example
21
22
  * ```tsx
22
23
  * import { Atom } from "@effect-atom/atom-react"
23
- * import { hmr, devRender } from "@effect-tui/react"
24
+ * import { hmr, render } from "@effect-tui/react"
24
25
  *
25
26
  * // Just pipe hmr() - that's it!
26
27
  * const countAtom = Atom.make(0).pipe(hmr("count"))
@@ -30,6 +31,8 @@ import type { RendererOptions, TuiRenderer } from "./renderer-types.js";
30
31
  * const count = useAtomValue(countAtom)
31
32
  * // Edit this file - count persists!
32
33
  * }
34
+ *
35
+ * render(<App />, { dev: true, importMeta: import.meta })
33
36
  * ```
34
37
  */
35
38
  export declare function hmr(key: string): <A>(self: A) => A;
@@ -42,25 +45,6 @@ export declare function hmr(key: string): <A>(self: A) => A;
42
45
  * ```
43
46
  */
44
47
  export declare function hmrState<T>(key: string, create: () => T): T;
45
- /**
46
- * Simple self-running dev mode. Just add this at the bottom of your file:
47
- *
48
- * @example
49
- * ```tsx
50
- * export default function App() { ... }
51
- *
52
- * devMain(import.meta)
53
- * ```
54
- *
55
- * That's it! Handles:
56
- * - Only runs when file is the entry point (import.meta.main)
57
- * - Only initializes once across HMR reloads
58
- * - Automatically finds the file path
59
- */
60
- export declare function devMain(importMeta: {
61
- main?: boolean;
62
- url: string;
63
- }, options?: Omit<DevRenderOptions, never>): void;
64
48
  /**
65
49
  * Auto-keyed HMR persistence for atoms.
66
50
  *
@@ -71,7 +55,7 @@ export declare function devMain(importMeta: {
71
55
  * @example
72
56
  * ```tsx
73
57
  * import { Atom } from "@effect-atom/atom-react"
74
- * import { autoHmr, devRender } from "@effect-tui/react"
58
+ * import { autoHmr, render } from "@effect-tui/react"
75
59
  *
76
60
  * // No manual key needed - derived from variable name!
77
61
  * const countAtom = Atom.make(0).pipe(autoHmr)
@@ -82,7 +66,7 @@ export declare function devMain(importMeta: {
82
66
  * ```
83
67
  */
84
68
  export declare function autoHmr<A>(self: A): A;
85
- export interface DevRenderOptions extends RendererOptions {
69
+ export interface DevOptions {
86
70
  /** Directories to watch (defaults to entry file's directory) */
87
71
  watchDirs?: string[];
88
72
  /** File extensions to watch (defaults to [".ts", ".tsx"]) */
@@ -102,12 +86,12 @@ export interface DevRenderOptions extends RendererOptions {
102
86
  /** Override diagnostics panel title. */
103
87
  statsTitle?: string;
104
88
  }
105
- export interface DevRenderResult {
106
- renderer: TuiRenderer;
107
- root: Root;
108
- /** Manually trigger a reload */
109
- rerender: () => Promise<void>;
110
- /** Stop watching and cleanup */
89
+ export interface DevRuntime {
90
+ /** Promise that resolves after the first render + watcher setup. */
91
+ ready: Promise<void>;
92
+ /** Manually trigger a reload. */
93
+ reload: () => Promise<void>;
94
+ /** Stop watching and cleanup. */
111
95
  stop: () => Promise<void>;
112
96
  }
113
97
  export interface DevWrapperProps {
@@ -124,9 +108,15 @@ export interface DevWrapperProps {
124
108
  * - Auto-show console on errors
125
109
  * - Optional renderer stats overlay (showStats)
126
110
  *
127
- * Use this to wrap your app when you need dev features but can't use devRender
128
- * (e.g., when you need to pass props to your App component).
111
+ * Use this to wrap your app when you need dev UI features without the dev runtime
112
+ * (e.g., when you need to pass props or load the app manually).
129
113
  */
130
114
  export declare function DevWrapper({ children, showStats, statsSampleMs, statsTitle, mode, }: DevWrapperProps): React.ReactNode;
131
- export declare function devRender(entryPath: string, options?: DevRenderOptions): Promise<DevRenderResult>;
115
+ type DevRoot = {
116
+ render(element: React.ReactNode, sync?: boolean): void;
117
+ };
118
+ export declare function startDevRuntime(entryPath: string, renderer: TuiRenderer, root: DevRoot, options?: DevOptions & {
119
+ mode?: RendererOptions["mode"];
120
+ }): DevRuntime;
121
+ export {};
132
122
  //# sourceMappingURL=dev.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/dev.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,EAA8B,KAAK,IAAI,EAAE,MAAM,eAAe,CAAA;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEvE;;;;;;;;;;;;;;;;;;;;GAoBG;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;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,GAAG,IAAI,CAelH;AAmCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CA6BrC;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACxD,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,eAAe;IAC/B,QAAQ,EAAE,WAAW,CAAA;IACrB,IAAI,EAAE,IAAI,CAAA;IACV,gCAAgC;IAChC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,gCAAgC;IAChC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB;AAoHD,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,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAuGvG"}
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"}
package/dist/src/dev.js CHANGED
@@ -10,6 +10,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "@effect-tui/react/jsx-runtime";
10
10
  /**
11
11
  * Development utilities for hot module replacement (HMR).
12
12
  *
13
+ * Use render(..., { dev: true, importMeta: import.meta }) to enable HMR.
14
+ *
13
15
  * Enables hot reload during development:
14
16
  * - File changes trigger re-render without process restart
15
17
  * - Terminal stays stable (no screen flash)
@@ -32,7 +34,6 @@ import { DiagnosticsPanel } from "./debug/DiagnosticsPanel.js";
32
34
  import { ToastContainer, ToastProvider, useToast } from "./dev/Toast.js";
33
35
  import { useKeyboard } from "./hooks/use-keyboard.js";
34
36
  import { enableRemote } from "./remote/index.js";
35
- import { createRenderer, createRoot } from "./renderer.js";
36
37
  import { useRenderer, useTerminalSize } from "./renderer-context.js";
37
38
  /**
38
39
  * Pipeable combinator that makes an atom persist across hot reloads.
@@ -43,7 +44,7 @@ import { useRenderer, useTerminalSize } from "./renderer-context.js";
43
44
  * @example
44
45
  * ```tsx
45
46
  * import { Atom } from "@effect-atom/atom-react"
46
- * import { hmr, devRender } from "@effect-tui/react"
47
+ * import { hmr, render } from "@effect-tui/react"
47
48
  *
48
49
  * // Just pipe hmr() - that's it!
49
50
  * const countAtom = Atom.make(0).pipe(hmr("count"))
@@ -53,6 +54,8 @@ import { useRenderer, useTerminalSize } from "./renderer-context.js";
53
54
  * const count = useAtomValue(countAtom)
54
55
  * // Edit this file - count persists!
55
56
  * }
57
+ *
58
+ * render(<App />, { dev: true, importMeta: import.meta })
56
59
  * ```
57
60
  */
58
61
  export function hmr(key) {
@@ -80,36 +83,6 @@ export function hmr(key) {
80
83
  export function hmrState(key, create) {
81
84
  return globalValue(Symbol.for(`hmr/${key}`), create);
82
85
  }
83
- /**
84
- * Simple self-running dev mode. Just add this at the bottom of your file:
85
- *
86
- * @example
87
- * ```tsx
88
- * export default function App() { ... }
89
- *
90
- * devMain(import.meta)
91
- * ```
92
- *
93
- * That's it! Handles:
94
- * - Only runs when file is the entry point (import.meta.main)
95
- * - Only initializes once across HMR reloads
96
- * - Automatically finds the file path
97
- */
98
- export function devMain(importMeta, options) {
99
- // Skip if not main entry point
100
- if (!importMeta.main)
101
- return;
102
- // Skip if this is a HMR re-import (has cache-busting query string)
103
- if (importMeta.url.includes("?"))
104
- return;
105
- const key = `devMain/${importMeta.url}`;
106
- const initialized = hmrState(key, () => ({ done: false }));
107
- if (!initialized.done) {
108
- initialized.done = true;
109
- const filePath = new URL(importMeta.url).pathname;
110
- devRender(filePath, options);
111
- }
112
- }
113
86
  // Cache for runtime key extraction
114
87
  const keyCache = new Map();
115
88
  /**
@@ -150,7 +123,7 @@ function extractVarName(source, line) {
150
123
  * @example
151
124
  * ```tsx
152
125
  * import { Atom } from "@effect-atom/atom-react"
153
- * import { autoHmr, devRender } from "@effect-tui/react"
126
+ * import { autoHmr, render } from "@effect-tui/react"
154
127
  *
155
128
  * // No manual key needed - derived from variable name!
156
129
  * const countAtom = Atom.make(0).pipe(autoHmr)
@@ -226,30 +199,6 @@ async function awaitWriteFinish(path, stabilityMs) {
226
199
  await new Promise((r) => setTimeout(r, checkInterval));
227
200
  }
228
201
  }
229
- /**
230
- * Render a TUI app with hot module replacement support.
231
- *
232
- * Uses @parcel/watcher for reliable, cross-platform file watching.
233
- * When files change, the module is re-imported and the app re-renders
234
- * without restarting the process or tearing down the terminal.
235
- *
236
- * For state preservation, use effect-atom with the hmr() combinator:
237
- *
238
- * @example
239
- * ```tsx
240
- * import { Atom, useAtomValue } from "@effect-atom/atom-react"
241
- * import { hmr, devRender } from "@effect-tui/react"
242
- *
243
- * const countAtom = Atom.make(0).pipe(hmr("count"))
244
- *
245
- * export default function App() {
246
- * const count = useAtomValue(countAtom)
247
- * return <text>Count: {count}</text>
248
- * }
249
- *
250
- * devRender(import.meta.path, { mode: "inline" })
251
- * ```
252
- */
253
202
  /**
254
203
  * Internal component that handles screenshot with toast notification
255
204
  */
@@ -290,8 +239,8 @@ function StatsOverlay({ sampleMs, title }) {
290
239
  * - Auto-show console on errors
291
240
  * - Optional renderer stats overlay (showStats)
292
241
  *
293
- * Use this to wrap your app when you need dev features but can't use devRender
294
- * (e.g., when you need to pass props to your App component).
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).
295
244
  */
296
245
  export function DevWrapper({ children, showStats, statsSampleMs, statsTitle, mode, }) {
297
246
  const { visible } = useConsole({ autoShowOnError: true, initiallyVisible: false });
@@ -302,12 +251,10 @@ export function DevWrapper({ children, showStats, statsSampleMs, statsTitle, mod
302
251
  // Fullscreen mode: Overlay with toast/console positioned by alignment
303
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, {}) })] }) }));
304
253
  }
305
- export async function devRender(entryPath, options) {
254
+ export function startDevRuntime(entryPath, renderer, root, options) {
306
255
  const watchExtensions = options?.watchExtensions ?? [".ts", ".tsx"];
307
256
  const debounceMs = options?.debounce ?? 150;
308
257
  const stabilityMs = options?.awaitWriteFinish ?? 50;
309
- const renderer = createRenderer(options);
310
- const root = createRoot(renderer);
311
258
  // Dev mode always enables remote control with entry path for identification
312
259
  const stopRemote = enableRemote(renderer, { entryPath });
313
260
  let debounceTimer = null;
@@ -315,8 +262,7 @@ export async function devRender(entryPath, options) {
315
262
  let subscription = null;
316
263
  // Determine project root for cache clearing
317
264
  const projectRoot = options?.watchDirs?.[0] ?? dirname(entryPath);
318
- // Import and render the module
319
- const render = async () => {
265
+ const reload = async () => {
320
266
  const thisVersion = ++version;
321
267
  try {
322
268
  // Clear module cache for project files before re-importing
@@ -330,7 +276,7 @@ export async function devRender(entryPath, options) {
330
276
  if (!App) {
331
277
  const err = new Error(`No default export found in ${entryPath}`);
332
278
  options?.onError?.(err);
333
- console.error("[devRender]", err.message);
279
+ console.error("[effect-tui] Dev render failed:", err.message);
334
280
  return;
335
281
  }
336
282
  // Render the component wrapped in DevWrapper for console panel
@@ -346,38 +292,38 @@ export async function devRender(entryPath, options) {
346
292
  catch (err) {
347
293
  const error = err instanceof Error ? err : new Error(String(err));
348
294
  options?.onError?.(error);
349
- console.error("[devRender] Error loading module:", error.message);
295
+ console.error("[effect-tui] Dev render error:", error.message);
350
296
  }
351
297
  };
352
- // Initial render
353
- await render();
354
- // Watch for changes using @parcel/watcher
355
- try {
356
- subscription = await watcher.subscribe(projectRoot, async (err, events) => {
357
- if (err) {
358
- options?.onError?.(err);
359
- console.error("[devRender] Watcher error:", err);
360
- return;
361
- }
362
- // Filter to relevant file extensions
363
- const relevantEvents = events.filter((event) => watchExtensions.some((ext) => event.path.endsWith(ext)));
364
- if (relevantEvents.length === 0)
365
- return;
366
- // Debounce rapid changes
367
- if (debounceTimer)
368
- clearTimeout(debounceTimer);
369
- debounceTimer = setTimeout(async () => {
370
- // Wait for file writes to stabilize
371
- const changedPath = relevantEvents[0].path;
372
- await awaitWriteFinish(changedPath, stabilityMs);
373
- options?.onReload?.();
374
- await render();
375
- }, debounceMs);
376
- });
377
- }
378
- catch (err) {
379
- console.error(`[devRender] Failed to watch ${projectRoot}:`, err);
380
- }
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
+ })();
381
327
  const stop = async () => {
382
328
  if (debounceTimer)
383
329
  clearTimeout(debounceTimer);
@@ -387,6 +333,6 @@ export async function devRender(entryPath, options) {
387
333
  stopRemote();
388
334
  renderer.stop();
389
335
  };
390
- return { renderer, root, rerender: render, stop };
336
+ return { ready, reload, stop };
391
337
  }
392
338
  //# 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;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGpE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,GAAG,CAAC,GAAW;IAC9B,OAAO,CAAK,IAAO,EAAK,EAAE;QACzB,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;YACjD,8DAA8D;YAC9D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;gBACtE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE;oBAChE,GAAG,IAAI;oBACP,SAAS,EAAE,IAAI;iBACf,CAAC,CAAA;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC,CAAM,CAAA;IACR,CAAC,CAAA;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAI,GAAW,EAAE,MAAe;IACvD,OAAO,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;AACrD,CAAC;AAED,mCAAmC;AACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;AAE1C;;;GAGG;AACH,SAAS,UAAU,CAAC,KAAa;IAChC,oFAAoF;IACpF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/B,wEAAwE;IACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACjG,IAAI,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;QACrF,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,MAAc,EAAE,IAAY;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAEhD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;IAClC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAC7E,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,OAAO,CAAI,IAAO;IACjC,sCAAsC;IACtC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAA;IACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAElC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,0CAA0C;QAC1C,MAAM,WAAW,GAAG,WAAW,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;QACpD,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAA;IAEpE,oBAAoB;IACpB,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAChC,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,IAAI,CAAC;YACJ,6CAA6C;YAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YACnD,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;YACrD,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,OAAO,IAAI,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAA;QAC9D,CAAC;QAAC,MAAM,CAAC;YACR,uCAAuC;YACvC,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC9C,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAgCD;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,WAAmB;IAC7C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACpE,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3B,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,WAAmB;IAChE,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAA;IACjB,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,MAAM,aAAa,GAAG,EAAE,CAAA;IAExB,OAAO,WAAW,GAAG,WAAW,GAAG,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,WAAW,EAAE,CAAA;YACd,CAAC;iBAAM,CAAC;gBACP,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAA;gBACrB,WAAW,GAAG,CAAC,CAAA;YAChB,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,qDAAqD;YACrD,WAAW,GAAG,CAAC,CAAA;QAChB,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAA;IACvD,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACzB,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAA;IAE3B,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,yBAAyB;QACzB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAA;YAC3C,IAAI,CAAC,UAAU;gBAAE,OAAM;YAEvB,mCAAmC;YACnC,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;YAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,eAAe,CAAC,UAAU,CAAC,CAAA;YAC5B,CAAC;YAED,8BAA8B;YAC9B,MAAM,OAAO,GAAG,uBAAuB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAA;YACvD,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAE9B,IAAI,CAAC,oBAAoB,EAAE,YAAY,EAAE,IAAI,CAAC,CAAA;YAC9C,GAAG,CAAC,cAAc,EAAE,EAAE,CAAA;QACvB,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAyC;IAC/E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAA;IAE3C,OAAO,CACN,kBAAQ,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aACnC,kBAAQ,KAAK,EAAE,KAAK,aACnB,kBAAU,EACV,cAAK,OAAO,EAAE,CAAC,EAAE,MAAM,EAAC,SAAS,EAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAC1F,KAAC,gBAAgB,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,gBAAgB,GAAI,GACrE,IACE,EACT,kBAAU,IACF,CACT,CAAA;AACF,CAAC;AAUD;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,aAAa,EACb,UAAU,EACV,IAAI,GACa;IACjB,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAA;IAElF,iDAAiD;IACjD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CACN,KAAC,aAAa,cACb,6BACC,KAAC,iBAAiB,KAAG,EACrB,KAAC,cAAc,KAAG,EACjB,QAAQ,EACR,OAAO,IAAI,KAAC,cAAc,IAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAC,QAAQ,GAAG,IACpD,GACM,CAChB,CAAA;IACF,CAAC;IAED,sEAAsE;IACtE,OAAO,CACN,KAAC,aAAa,cACb,MAAC,OAAO,eAGP,KAAC,iBAAiB,KAAG,EACpB,QAAQ,EAGR,OAAO,IAAI,CACX,KAAC,OAAO,CAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,YACvC,KAAC,cAAc,IAAC,WAAW,EAAE,EAAE,GAAI,GACrB,CACf,EACA,SAAS,IAAI,CACb,KAAC,OAAO,CAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAChD,KAAC,YAAY,IAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAI,GAC9C,CACf,EACD,KAAC,OAAO,CAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,YACpC,KAAC,cAAc,KAAG,GACJ,IACN,GACK,CAChB,CAAA;AACF,CAAC;AAMD,MAAM,UAAU,eAAe,CAC9B,SAAiB,EACjB,QAAqB,EACrB,IAAa,EACb,OAAyD;IAEzD,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IACnE,MAAM,UAAU,GAAG,OAAO,EAAE,QAAQ,IAAI,GAAG,CAAA;IAC3C,MAAM,WAAW,GAAG,OAAO,EAAE,gBAAgB,IAAI,EAAE,CAAA;IAEnD,4EAA4E;IAC5E,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;IAExD,IAAI,aAAa,GAAyC,IAAI,CAAA;IAC9D,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,IAAI,YAAY,GAAqC,IAAI,CAAA;IAEzD,4CAA4C;IAC5C,MAAM,WAAW,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAA;IAEjE,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,WAAW,GAAG,EAAE,OAAO,CAAA;QAE7B,IAAI,CAAC;YACJ,2DAA2D;YAC3D,iBAAiB,CAAC,WAAW,CAAC,CAAA;YAE9B,iDAAiD;YACjD,MAAM,GAAG,GAAG,MAAM,MAAM,kCAAC,GAAG,SAAS,MAAM,WAAW,EAAE,EAAC,CAAA;YAEzD,uCAAuC;YACvC,IAAI,WAAW,KAAK,OAAO;gBAAE,OAAM;YAEnC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA;YAEvB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAA;gBAChE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;gBACvB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC7D,OAAM;YACP,CAAC;YAED,+DAA+D;YAC/D,MAAM,UAAU,GAAG,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;YAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAClC,UAAU,EACV;gBACC,SAAS,EAAE,OAAO,EAAE,SAAS;gBAC7B,aAAa,EAAE,OAAO,EAAE,aAAa;gBACrC,UAAU,EAAE,OAAO,EAAE,UAAU;gBAC/B,IAAI,EAAE,OAAO,EAAE,IAAI;aACnB,EACD,UAAU,CACV,CAAA;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;YACjE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;YACzB,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QAC/D,CAAC;IACF,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;QACzB,MAAM,MAAM,EAAE,CAAA;QAEd,IAAI,CAAC;YACJ,YAAY,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;gBACzE,IAAI,GAAG,EAAE,CAAC;oBACT,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;oBACvB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAA;oBACrD,OAAM;gBACP,CAAC;gBAED,qCAAqC;gBACrC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBAExG,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAM;gBAEvC,yBAAyB;gBACzB,IAAI,aAAa;oBAAE,YAAY,CAAC,aAAa,CAAC,CAAA;gBAC9C,aAAa,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;oBACrC,oCAAoC;oBACpC,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;oBAC1C,MAAM,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;oBAEhD,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAA;oBACrB,MAAM,MAAM,EAAE,CAAA;gBACf,CAAC,EAAE,UAAU,CAAC,CAAA;YACf,CAAC,CAAC,CAAA;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,gCAAgC,WAAW,GAAG,EAAE,GAAG,CAAC,CAAA;QACnE,CAAC;IACF,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACvB,IAAI,aAAa;YAAE,YAAY,CAAC,aAAa,CAAC,CAAA;QAC9C,IAAI,YAAY,EAAE,CAAC;YAClB,MAAM,YAAY,CAAC,WAAW,EAAE,CAAA;QACjC,CAAC;QACD,UAAU,EAAE,CAAA;QACZ,QAAQ,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC,CAAA;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAC/B,CAAC"}
@@ -2,7 +2,10 @@ export type { UseKeyboardOptions } from "./use-keyboard.js";
2
2
  export { useKeyboard } from "./use-keyboard.js";
3
3
  export type { UseMouseOptions } from "./use-mouse.js";
4
4
  export { useMouse } from "./use-mouse.js";
5
+ export type { UsePasteOptions } from "./use-paste.js";
5
6
  export { usePaste } from "./use-paste.js";
7
+ export type { ShortcutHandler, ShortcutMap, UseShortcutOptions } from "./use-shortcut.js";
8
+ export { useShortcut } from "./use-shortcut.js";
6
9
  export { useQuit } from "./use-quit.js";
7
10
  export type { ScrollState, UseScrollOptions, UseScrollReturn } from "./use-scroll.js";
8
11
  export { useScroll } from "./use-scroll.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC5F,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC5F,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  export { useKeyboard } from "./use-keyboard.js";
2
2
  export { useMouse } from "./use-mouse.js";
3
3
  export { usePaste } from "./use-paste.js";
4
+ export { useShortcut } from "./use-shortcut.js";
4
5
  export { useQuit } from "./use-quit.js";
5
6
  export { useScroll } from "./use-scroll.js";
6
7
  export { useTimer } from "./use-timer.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,9 +1,18 @@
1
1
  import type { MouseButton, MouseMsg } from "@effect-tui/core";
2
2
  export type UseMouseOptions = {
3
- /** Filter by action type */
3
+ /** Filter by action type (alias: phase) */
4
4
  action?: "press" | "release" | "drag" | "move" | "any";
5
+ /** Filter by action type */
6
+ phase?: "press" | "release" | "drag" | "move" | "any";
5
7
  /** Filter by button */
6
8
  button?: MouseButton | MouseButton[];
9
+ /** Optional predicate to drop events before they reach the handler. */
10
+ filter?: (mouse: MouseMsg) => boolean;
11
+ /**
12
+ * If true, call preventDefault when available before invoking handler.
13
+ * This stops further renderer-level handlers.
14
+ */
15
+ stopPropagation?: boolean;
7
16
  };
8
17
  /**
9
18
  * Subscribe to mouse events.
@@ -1 +1 @@
1
- {"version":3,"file":"use-mouse.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-mouse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAI7D,MAAM,MAAM,eAAe,GAAG;IAC7B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;IACtD,uBAAuB;IACvB,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;CACpC,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAwBzF"}
1
+ {"version":3,"file":"use-mouse.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-mouse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAI7D,MAAM,MAAM,eAAe,GAAG;IAC7B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;IACtD,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;IACrD,uBAAuB;IACvB,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,EAAE,CAAA;IACpC,uEAAuE;IACvE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAA;IACrC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CA+BzF"}
@@ -17,11 +17,15 @@ import { useRenderer } from "../renderer.js";
17
17
  */
18
18
  export function useMouse(handler, opts) {
19
19
  const renderer = useRenderer();
20
- const action = opts?.action ?? "any";
20
+ const action = opts?.phase ?? opts?.action ?? "any";
21
21
  const button = opts?.button;
22
+ const filter = opts?.filter;
23
+ const stopPropagation = opts?.stopPropagation ?? false;
22
24
  // Store handler in ref so we always call the latest version
23
25
  const handlerRef = useRef(handler);
24
26
  handlerRef.current = handler;
27
+ const filterRef = useRef(filter);
28
+ filterRef.current = filter;
25
29
  useEffect(() => {
26
30
  const wrapped = (mouse) => {
27
31
  // Filter by action
@@ -33,9 +37,13 @@ export function useMouse(handler, opts) {
33
37
  if (!buttons.includes(mouse.button))
34
38
  return;
35
39
  }
40
+ if (filterRef.current && !filterRef.current(mouse))
41
+ return;
42
+ if (stopPropagation && mouse.preventDefault)
43
+ mouse.preventDefault();
36
44
  handlerRef.current(mouse);
37
45
  };
38
46
  return renderer.onMouse(wrapped);
39
- }, [renderer, action, button]);
47
+ }, [renderer, action, button, stopPropagation]);
40
48
  }
41
49
  //# sourceMappingURL=use-mouse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-mouse.js","sourceRoot":"","sources":["../../../src/hooks/use-mouse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAS5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAkC,EAAE,IAAsB;IAClF,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,CAAA;IACpC,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAA;IAE3B,4DAA4D;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAClC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAA;IAE5B,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,OAAO,GAAG,CAAC,KAAe,EAAE,EAAE;YACnC,mBAAmB;YACnB,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM;gBAAE,OAAM;YAEvD,mBAAmB;YACnB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;gBACzD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;oBAAE,OAAM;YAC5C,CAAC;YAED,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAA;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"use-mouse.js","sourceRoot":"","sources":["../../../src/hooks/use-mouse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAkB5C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAkC,EAAE,IAAsB;IAClF,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,IAAI,KAAK,CAAA;IACnD,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAA;IAC3B,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAA;IAC3B,MAAM,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,KAAK,CAAA;IAEtD,4DAA4D;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAClC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAA;IAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAA;IAE1B,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,OAAO,GAAG,CAAC,KAAe,EAAE,EAAE;YACnC,mBAAmB;YACnB,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM;gBAAE,OAAM;YAEvD,mBAAmB;YACnB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;gBACzD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;oBAAE,OAAM;YAC5C,CAAC;YAED,IAAI,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAM;YAC1D,IAAI,eAAe,IAAI,KAAK,CAAC,cAAc;gBAAE,KAAK,CAAC,cAAc,EAAE,CAAA;YAEnE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAA;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;AAChD,CAAC"}
@@ -1,3 +1,13 @@
1
+ import type { PasteMsg } from "../renderer-types.js";
2
+ export type UsePasteOptions = {
3
+ /** Optional predicate to drop events before they reach the handler. */
4
+ filter?: (paste: PasteMsg) => boolean;
5
+ /**
6
+ * If true, call preventDefault when available before invoking handler.
7
+ * This stops further renderer-level handlers.
8
+ */
9
+ stopPropagation?: boolean;
10
+ };
1
11
  /**
2
12
  * Subscribe to bracketed paste events (if supported by renderer/terminal).
3
13
  *
@@ -7,10 +17,10 @@
7
17
  * @example
8
18
  * ```tsx
9
19
  * // No useCallback needed - just pass your handler directly
10
- * usePaste((text) => {
11
- * insertText(text, cursorPosition)
20
+ * usePaste((paste) => {
21
+ * insertText(paste.text, cursorPosition)
12
22
  * })
13
23
  * ```
14
24
  */
15
- export declare function usePaste(handler: (text: string) => void): void;
25
+ export declare function usePaste(handler: (paste: PasteMsg) => void, opts?: UsePasteOptions): void;
16
26
  //# sourceMappingURL=use-paste.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-paste.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-paste.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAW9D"}
1
+ {"version":3,"file":"use-paste.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-paste.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAGpD,MAAM,MAAM,eAAe,GAAG;IAC7B,uEAAuE;IACvE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAA;IACrC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAmBzF"}
@@ -9,20 +9,30 @@ import { useRenderer } from "../renderer.js";
9
9
  * @example
10
10
  * ```tsx
11
11
  * // No useCallback needed - just pass your handler directly
12
- * usePaste((text) => {
13
- * insertText(text, cursorPosition)
12
+ * usePaste((paste) => {
13
+ * insertText(paste.text, cursorPosition)
14
14
  * })
15
15
  * ```
16
16
  */
17
- export function usePaste(handler) {
17
+ export function usePaste(handler, opts) {
18
18
  const renderer = useRenderer();
19
+ const filter = opts?.filter;
20
+ const stopPropagation = opts?.stopPropagation ?? false;
19
21
  // Store handler in ref so we always call the latest version
20
22
  const handlerRef = useRef(handler);
21
23
  handlerRef.current = handler;
24
+ const filterRef = useRef(filter);
25
+ filterRef.current = filter;
22
26
  useEffect(() => {
23
27
  if (!renderer.onPaste)
24
28
  return;
25
- return renderer.onPaste((text) => handlerRef.current(text));
26
- }, [renderer]);
29
+ return renderer.onPaste((paste) => {
30
+ if (filterRef.current && !filterRef.current(paste))
31
+ return;
32
+ if (stopPropagation && paste.preventDefault)
33
+ paste.preventDefault();
34
+ handlerRef.current(paste);
35
+ });
36
+ }, [renderer, stopPropagation]);
27
37
  }
28
38
  //# sourceMappingURL=use-paste.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-paste.js","sourceRoot":"","sources":["../../../src/hooks/use-paste.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ,CAAC,OAA+B;IACvD,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAE9B,4DAA4D;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAClC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAA;IAE5B,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAM;QAC7B,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5D,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"use-paste.js","sourceRoot":"","sources":["../../../src/hooks/use-paste.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAY5C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAkC,EAAE,IAAsB;IAClF,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,CAAA;IAC3B,MAAM,eAAe,GAAG,IAAI,EAAE,eAAe,IAAI,KAAK,CAAA;IAEtD,4DAA4D;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAClC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAA;IAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;IAChC,SAAS,CAAC,OAAO,GAAG,MAAM,CAAA;IAE1B,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAM;QAC7B,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACjC,IAAI,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,OAAM;YAC1D,IAAI,eAAe,IAAI,KAAK,CAAC,cAAc;gBAAE,KAAK,CAAC,cAAc,EAAE,CAAA;YACnE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAA;AAChC,CAAC"}