@google/gemini-cli 0.16.0-nightly.20251113.ad1f0d99 → 0.16.0-preview.1

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 (119) hide show
  1. package/dist/google-gemini-cli-0.16.0-preview.0.tgz +0 -0
  2. package/dist/package.json +3 -3
  3. package/dist/src/config/keyBindings.d.ts +6 -0
  4. package/dist/src/config/keyBindings.js +31 -0
  5. package/dist/src/config/keyBindings.js.map +1 -1
  6. package/dist/src/config/settingPaths.d.ts +10 -0
  7. package/dist/src/config/settingPaths.js +11 -0
  8. package/dist/src/config/settingPaths.js.map +1 -0
  9. package/dist/src/config/settings.js +2 -1
  10. package/dist/src/config/settings.js.map +1 -1
  11. package/dist/src/config/settingsSchema.d.ts +10 -1
  12. package/dist/src/config/settingsSchema.js +10 -1
  13. package/dist/src/config/settingsSchema.js.map +1 -1
  14. package/dist/src/gemini.js +14 -22
  15. package/dist/src/gemini.js.map +1 -1
  16. package/dist/src/gemini.test.js +4 -0
  17. package/dist/src/gemini.test.js.map +1 -1
  18. package/dist/src/generated/git-commit.d.ts +2 -2
  19. package/dist/src/generated/git-commit.js +2 -2
  20. package/dist/src/generated/git-commit.js.map +1 -1
  21. package/dist/src/test-utils/render.js +5 -1
  22. package/dist/src/test-utils/render.js.map +1 -1
  23. package/dist/src/ui/AppContainer.js +25 -3
  24. package/dist/src/ui/AppContainer.js.map +1 -1
  25. package/dist/src/ui/commands/chatCommand.js +15 -3
  26. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  27. package/dist/src/ui/commands/chatCommand.test.js +44 -5
  28. package/dist/src/ui/commands/chatCommand.test.js.map +1 -1
  29. package/dist/src/ui/commands/toolsCommand.js +1 -4
  30. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  31. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js +1 -4
  32. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js.map +1 -1
  33. package/dist/src/ui/components/AsciiArt.d.ts +3 -0
  34. package/dist/src/ui/components/AsciiArt.js +36 -0
  35. package/dist/src/ui/components/AsciiArt.js.map +1 -1
  36. package/dist/src/ui/components/Composer.js +1 -1
  37. package/dist/src/ui/components/Composer.js.map +1 -1
  38. package/dist/src/ui/components/Header.js +6 -4
  39. package/dist/src/ui/components/Header.js.map +1 -1
  40. package/dist/src/ui/components/Header.test.js +25 -1
  41. package/dist/src/ui/components/Header.test.js.map +1 -1
  42. package/dist/src/ui/components/Help.js +1 -1
  43. package/dist/src/ui/components/Help.js.map +1 -1
  44. package/dist/src/ui/components/Help.test.js +9 -0
  45. package/dist/src/ui/components/Help.test.js.map +1 -1
  46. package/dist/src/ui/components/InputPrompt.js +2 -0
  47. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  48. package/dist/src/ui/components/StickyHeader.d.ts +3 -0
  49. package/dist/src/ui/components/StickyHeader.js +2 -2
  50. package/dist/src/ui/components/StickyHeader.js.map +1 -1
  51. package/dist/src/ui/components/StickyHeader.test.js +2 -2
  52. package/dist/src/ui/components/StickyHeader.test.js.map +1 -1
  53. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +5 -7
  54. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  55. package/dist/src/ui/components/messages/ToolGroupMessage.js +18 -12
  56. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  57. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +56 -27
  58. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  59. package/dist/src/ui/components/messages/ToolMessage.d.ts +3 -0
  60. package/dist/src/ui/components/messages/ToolMessage.js +6 -10
  61. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  62. package/dist/src/ui/components/messages/ToolMessage.test.js +3 -0
  63. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  64. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js +3 -0
  65. package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js.map +1 -1
  66. package/dist/src/ui/components/shared/ScrollableList.js +99 -9
  67. package/dist/src/ui/components/shared/ScrollableList.js.map +1 -1
  68. package/dist/src/ui/components/shared/ScrollableList.test.js +66 -0
  69. package/dist/src/ui/components/shared/ScrollableList.test.js.map +1 -1
  70. package/dist/src/ui/contexts/KeypressContext.js +0 -6
  71. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  72. package/dist/src/ui/contexts/MouseContext.js +15 -1
  73. package/dist/src/ui/contexts/MouseContext.js.map +1 -1
  74. package/dist/src/ui/contexts/MouseContext.test.js +34 -0
  75. package/dist/src/ui/contexts/MouseContext.test.js.map +1 -1
  76. package/dist/src/ui/contexts/ScrollProvider.d.ts +1 -0
  77. package/dist/src/ui/contexts/ScrollProvider.drag.test.d.ts +6 -0
  78. package/dist/src/ui/contexts/ScrollProvider.drag.test.js +307 -0
  79. package/dist/src/ui/contexts/ScrollProvider.drag.test.js.map +1 -0
  80. package/dist/src/ui/contexts/ScrollProvider.js +127 -6
  81. package/dist/src/ui/contexts/ScrollProvider.js.map +1 -1
  82. package/dist/src/ui/contexts/ScrollProvider.test.js +187 -0
  83. package/dist/src/ui/contexts/ScrollProvider.test.js.map +1 -1
  84. package/dist/src/ui/contexts/UIStateContext.d.ts +1 -0
  85. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  86. package/dist/src/ui/hooks/atCommandProcessor.js +2 -2
  87. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  88. package/dist/src/ui/hooks/slashCommandProcessor.js +6 -2
  89. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  90. package/dist/src/ui/hooks/slashCommandProcessor.test.js +82 -65
  91. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  92. package/dist/src/ui/hooks/useAlternateBuffer.d.ts +2 -0
  93. package/dist/src/ui/hooks/useAlternateBuffer.js +2 -1
  94. package/dist/src/ui/hooks/useAlternateBuffer.js.map +1 -1
  95. package/dist/src/ui/hooks/useEditorSettings.js +2 -1
  96. package/dist/src/ui/hooks/useEditorSettings.js.map +1 -1
  97. package/dist/src/ui/hooks/useEditorSettings.test.js +5 -4
  98. package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
  99. package/dist/src/ui/hooks/useKeypress.test.js +0 -19
  100. package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
  101. package/dist/src/ui/keyMatchers.test.js +37 -0
  102. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  103. package/dist/src/ui/utils/CodeColorizer.js +5 -5
  104. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  105. package/dist/src/ui/utils/CodeColorizer.test.d.ts +6 -0
  106. package/dist/src/ui/utils/CodeColorizer.test.js +38 -0
  107. package/dist/src/ui/utils/CodeColorizer.test.js.map +1 -0
  108. package/dist/src/ui/utils/mouse.d.ts +1 -1
  109. package/dist/src/ui/utils/terminalSetup.d.ts +3 -0
  110. package/dist/src/ui/utils/terminalSetup.js +9 -2
  111. package/dist/src/ui/utils/terminalSetup.js.map +1 -1
  112. package/dist/src/ui/utils/ui-sizing.js +2 -1
  113. package/dist/src/ui/utils/ui-sizing.js.map +1 -1
  114. package/dist/src/utils/events.d.ts +3 -1
  115. package/dist/src/utils/events.js +1 -0
  116. package/dist/src/utils/events.js.map +1 -1
  117. package/dist/tsconfig.tsbuildinfo +1 -1
  118. package/package.json +4 -4
  119. package/dist/google-gemini-cli-0.16.0-nightly.20251112.c961f274.tgz +0 -0
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,307 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { render } from '../../test-utils/render.js';
8
+ import { ScrollProvider, useScrollable, } from './ScrollProvider.js';
9
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
10
+ import { useRef, useImperativeHandle, forwardRef } from 'react';
11
+ import { Box } from 'ink';
12
+ // Mock useMouse hook
13
+ const mockUseMouseCallbacks = new Set();
14
+ vi.mock('../hooks/useMouse.js', async () => {
15
+ // We need to import React dynamically because this factory runs before top-level imports
16
+ const React = await import('react');
17
+ return {
18
+ useMouse: (callback) => {
19
+ React.useEffect(() => {
20
+ mockUseMouseCallbacks.add(callback);
21
+ return () => {
22
+ mockUseMouseCallbacks.delete(callback);
23
+ };
24
+ }, [callback]);
25
+ },
26
+ };
27
+ });
28
+ // Mock ink's getBoundingBox
29
+ vi.mock('ink', async (importOriginal) => {
30
+ const actual = await importOriginal();
31
+ return {
32
+ ...actual,
33
+ getBoundingBox: vi.fn(() => ({ x: 0, y: 0, width: 10, height: 10 })),
34
+ };
35
+ });
36
+ const TestScrollable = forwardRef((props, ref) => {
37
+ const elementRef = useRef(null);
38
+ useImperativeHandle(ref, () => elementRef.current);
39
+ useScrollable({
40
+ ref: elementRef,
41
+ getScrollState: props.getScrollState,
42
+ scrollBy: props.scrollBy,
43
+ hasFocus: () => true,
44
+ flashScrollbar: () => { },
45
+ }, true);
46
+ return _jsx(Box, { ref: elementRef });
47
+ });
48
+ TestScrollable.displayName = 'TestScrollable';
49
+ describe('ScrollProvider Drag', () => {
50
+ beforeEach(() => {
51
+ vi.useFakeTimers();
52
+ mockUseMouseCallbacks.clear();
53
+ });
54
+ afterEach(() => {
55
+ vi.useRealTimers();
56
+ });
57
+ it('drags the scrollbar thumb', async () => {
58
+ const scrollBy = vi.fn();
59
+ const getScrollState = vi.fn(() => ({
60
+ scrollTop: 0,
61
+ scrollHeight: 100,
62
+ innerHeight: 10,
63
+ }));
64
+ render(_jsx(ScrollProvider, { children: _jsx(TestScrollable, { id: "test-scrollable", scrollBy: scrollBy, getScrollState: getScrollState }) }));
65
+ // Scrollbar at x + width = 10.
66
+ // Height 10.
67
+ // scrollHeight 100, innerHeight 10.
68
+ // thumbHeight = 1.
69
+ // maxScrollTop = 90. maxThumbY = 9. Ratio = 10.
70
+ // Thumb at 0.
71
+ // 1. Click on thumb (row 0)
72
+ for (const callback of mockUseMouseCallbacks) {
73
+ callback({
74
+ name: 'left-press',
75
+ col: 10,
76
+ row: 0,
77
+ shift: false,
78
+ ctrl: false,
79
+ meta: false,
80
+ });
81
+ }
82
+ // 2. Move mouse to row 1
83
+ for (const callback of mockUseMouseCallbacks) {
84
+ callback({
85
+ name: 'move',
86
+ col: 10, // col doesn't matter for move if dragging
87
+ row: 1,
88
+ shift: false,
89
+ ctrl: false,
90
+ meta: false,
91
+ });
92
+ }
93
+ // Delta row = 1. Delta scroll = 10.
94
+ // scrollBy called with 10.
95
+ expect(scrollBy).toHaveBeenCalledWith(10);
96
+ // 3. Move mouse to row 2
97
+ scrollBy.mockClear();
98
+ for (const callback of mockUseMouseCallbacks) {
99
+ callback({
100
+ name: 'move',
101
+ col: 10,
102
+ row: 2,
103
+ shift: false,
104
+ ctrl: false,
105
+ meta: false,
106
+ });
107
+ }
108
+ // Delta row from start (0) is 2. Delta scroll = 20.
109
+ // startScrollTop was 0. target 20.
110
+ // scrollBy called with (20 - scrollTop). scrollTop is still 0 in mock.
111
+ expect(scrollBy).toHaveBeenCalledWith(20);
112
+ // 4. Release
113
+ for (const callback of mockUseMouseCallbacks) {
114
+ callback({
115
+ name: 'left-release',
116
+ col: 10,
117
+ row: 2,
118
+ shift: false,
119
+ ctrl: false,
120
+ meta: false,
121
+ });
122
+ }
123
+ // 5. Move again - should not scroll
124
+ scrollBy.mockClear();
125
+ for (const callback of mockUseMouseCallbacks) {
126
+ callback({
127
+ name: 'move',
128
+ col: 10,
129
+ row: 3,
130
+ shift: false,
131
+ ctrl: false,
132
+ meta: false,
133
+ });
134
+ }
135
+ expect(scrollBy).not.toHaveBeenCalled();
136
+ });
137
+ it('jumps to position and starts drag when clicking track below thumb', async () => {
138
+ const scrollBy = vi.fn();
139
+ const getScrollState = vi.fn(() => ({
140
+ scrollTop: 0,
141
+ scrollHeight: 100,
142
+ innerHeight: 10,
143
+ }));
144
+ render(_jsx(ScrollProvider, { children: _jsx(TestScrollable, { id: "test-scrollable", scrollBy: scrollBy, getScrollState: getScrollState }) }));
145
+ // Thumb at 0. Click at 5.
146
+ // thumbHeight 1.
147
+ // targetThumbY = 5.
148
+ // targetScrollTop = 50.
149
+ // 1. Click on track below thumb
150
+ for (const callback of mockUseMouseCallbacks) {
151
+ callback({
152
+ name: 'left-press',
153
+ col: 10,
154
+ row: 5,
155
+ shift: false,
156
+ ctrl: false,
157
+ meta: false,
158
+ });
159
+ }
160
+ // Should jump to 50 (delta 50)
161
+ expect(scrollBy).toHaveBeenCalledWith(50);
162
+ scrollBy.mockClear();
163
+ // 2. Move mouse to 6 - should drag
164
+ // Start drag captured at row 5, startScrollTop 50.
165
+ // Move to 6. Delta row 1. Delta scroll 10.
166
+ // Target = 60.
167
+ // scrollBy called with 60 - 0 (current state still 0).
168
+ // Note: In real app, state would update, but here getScrollState is static mock 0.
169
+ for (const callback of mockUseMouseCallbacks) {
170
+ callback({
171
+ name: 'move',
172
+ col: 10,
173
+ row: 6,
174
+ shift: false,
175
+ ctrl: false,
176
+ meta: false,
177
+ });
178
+ }
179
+ expect(scrollBy).toHaveBeenCalledWith(60);
180
+ });
181
+ it('jumps to position when clicking track above thumb', async () => {
182
+ const scrollBy = vi.fn();
183
+ // Start scrolled down
184
+ const getScrollState = vi.fn(() => ({
185
+ scrollTop: 50,
186
+ scrollHeight: 100,
187
+ innerHeight: 10,
188
+ }));
189
+ render(_jsx(ScrollProvider, { children: _jsx(TestScrollable, { id: "test-scrollable", scrollBy: scrollBy, getScrollState: getScrollState }) }));
190
+ // Thumb at 5. Click at 2.
191
+ // targetThumbY = 2.
192
+ // targetScrollTop = 20.
193
+ for (const callback of mockUseMouseCallbacks) {
194
+ callback({
195
+ name: 'left-press',
196
+ col: 10,
197
+ row: 2,
198
+ shift: false,
199
+ ctrl: false,
200
+ meta: false,
201
+ });
202
+ }
203
+ // Jump to 20 (delta = 20 - 50 = -30)
204
+ expect(scrollBy).toHaveBeenCalledWith(-30);
205
+ });
206
+ it('jumps to top when clicking very top of track', async () => {
207
+ const scrollBy = vi.fn();
208
+ const getScrollState = vi.fn(() => ({
209
+ scrollTop: 50,
210
+ scrollHeight: 100,
211
+ innerHeight: 10,
212
+ }));
213
+ render(_jsx(ScrollProvider, { children: _jsx(TestScrollable, { id: "test-scrollable", scrollBy: scrollBy, getScrollState: getScrollState }) }));
214
+ // Thumb at 5. Click at 0.
215
+ // targetThumbY = 0.
216
+ // targetScrollTop = 0.
217
+ for (const callback of mockUseMouseCallbacks) {
218
+ callback({
219
+ name: 'left-press',
220
+ col: 10,
221
+ row: 0,
222
+ shift: false,
223
+ ctrl: false,
224
+ meta: false,
225
+ });
226
+ }
227
+ // Scroll to top (delta = 0 - 50 = -50)
228
+ expect(scrollBy).toHaveBeenCalledWith(-50);
229
+ });
230
+ it('jumps to bottom when clicking very bottom of track', async () => {
231
+ const scrollBy = vi.fn();
232
+ const getScrollState = vi.fn(() => ({
233
+ scrollTop: 0,
234
+ scrollHeight: 100,
235
+ innerHeight: 10,
236
+ }));
237
+ render(_jsx(ScrollProvider, { children: _jsx(TestScrollable, { id: "test-scrollable", scrollBy: scrollBy, getScrollState: getScrollState }) }));
238
+ // Thumb at 0. Click at 9.
239
+ // targetThumbY = 9.
240
+ // targetScrollTop = 90.
241
+ for (const callback of mockUseMouseCallbacks) {
242
+ callback({
243
+ name: 'left-press',
244
+ col: 10,
245
+ row: 9,
246
+ shift: false,
247
+ ctrl: false,
248
+ meta: false,
249
+ });
250
+ }
251
+ // Scroll to bottom (delta = 90 - 0 = 90)
252
+ expect(scrollBy).toHaveBeenCalledWith(90);
253
+ });
254
+ it('uses scrollTo with 0 duration if provided', async () => {
255
+ const scrollBy = vi.fn();
256
+ const scrollTo = vi.fn();
257
+ const getScrollState = vi.fn(() => ({
258
+ scrollTop: 0,
259
+ scrollHeight: 100,
260
+ innerHeight: 10,
261
+ }));
262
+ // Custom component that provides scrollTo
263
+ const TestScrollableWithScrollTo = forwardRef((props, ref) => {
264
+ const elementRef = useRef(null);
265
+ useImperativeHandle(ref, () => elementRef.current);
266
+ useScrollable({
267
+ ref: elementRef,
268
+ getScrollState: props.getScrollState,
269
+ scrollBy: props.scrollBy,
270
+ scrollTo: props.scrollTo,
271
+ hasFocus: () => true,
272
+ flashScrollbar: () => { },
273
+ }, true);
274
+ return _jsx(Box, { ref: elementRef });
275
+ });
276
+ TestScrollableWithScrollTo.displayName = 'TestScrollableWithScrollTo';
277
+ render(_jsx(ScrollProvider, { children: _jsx(TestScrollableWithScrollTo, { id: "test-scrollable-scrollto", scrollBy: scrollBy, scrollTo: scrollTo, getScrollState: getScrollState }) }));
278
+ // Click on track (jump)
279
+ for (const callback of mockUseMouseCallbacks) {
280
+ callback({
281
+ name: 'left-press',
282
+ col: 10,
283
+ row: 5,
284
+ shift: false,
285
+ ctrl: false,
286
+ meta: false,
287
+ });
288
+ }
289
+ // Expect scrollTo to be called with target (and undefined/default duration)
290
+ expect(scrollTo).toHaveBeenCalledWith(50);
291
+ scrollTo.mockClear();
292
+ // Move mouse (drag)
293
+ for (const callback of mockUseMouseCallbacks) {
294
+ callback({
295
+ name: 'move',
296
+ col: 10,
297
+ row: 6,
298
+ shift: false,
299
+ ctrl: false,
300
+ meta: false,
301
+ });
302
+ }
303
+ // Expect scrollTo to be called with target and duration 0
304
+ expect(scrollTo).toHaveBeenCalledWith(60, 0);
305
+ });
306
+ });
307
+ //# sourceMappingURL=ScrollProvider.drag.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollProvider.drag.test.js","sourceRoot":"","sources":["../../../../src/ui/contexts/ScrollProvider.drag.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EACL,cAAc,EACd,aAAa,GAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,GAAG,EAAmB,MAAM,KAAK,CAAC;AAG3C,qBAAqB;AACrB,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAA+B,CAAC;AACrE,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACzC,yFAAyF;IACzF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO;QACL,QAAQ,EAAE,CAAC,QAAqC,EAAE,EAAE;YAClD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;gBACnB,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpC,OAAO,GAAG,EAAE;oBACV,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzC,CAAC,CAAC;YACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,4BAA4B;AAC5B,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACtC,MAAM,MAAM,GAAG,MAAM,cAAc,EAAwB,CAAC;IAC5D,OAAO;QACL,GAAG,MAAM;QACT,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;KACrE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,UAAU,CAC/B,CACE,KAIC,EACD,GAAG,EACH,EAAE;IACF,MAAM,UAAU,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;IAC5C,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAEnD,aAAa,CACX;QACE,GAAG,EAAE,UAAmC;QACxC,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;QACpB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;KACzB,EACD,IAAI,CACL,CAAC;IAEF,OAAO,KAAC,GAAG,IAAC,GAAG,EAAE,UAAU,GAAI,CAAC;AAClC,CAAC,CACF,CAAC;AACF,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAE9C,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,qBAAqB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,GAAG;YACjB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,CACJ,KAAC,cAAc,cACb,KAAC,cAAc,IACb,EAAE,EAAC,iBAAiB,EACpB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC9B,GACa,CAClB,CAAC;QAEF,+BAA+B;QAC/B,aAAa;QACb,oCAAoC;QACpC,mBAAmB;QACnB,gDAAgD;QAChD,cAAc;QAEd,4BAA4B;QAC5B,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAED,yBAAyB;QACzB,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,EAAE,EAAE,0CAA0C;gBACnD,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,2BAA2B;QAC3B,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAE1C,yBAAyB;QACzB,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAED,oDAAoD;QACpD,mCAAmC;QACnC,uEAAuE;QACvE,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAE1C,aAAa;QACb,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,cAAc;gBACpB,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,GAAG;YACjB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,CACJ,KAAC,cAAc,cACb,KAAC,cAAc,IACb,EAAE,EAAC,iBAAiB,EACpB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC9B,GACa,CAClB,CAAC;QAEF,0BAA0B;QAC1B,iBAAiB;QACjB,oBAAoB;QACpB,wBAAwB;QAExB,gCAAgC;QAChC,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAED,+BAA+B;QAC/B,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC1C,QAAQ,CAAC,SAAS,EAAE,CAAC;QAErB,mCAAmC;QACnC,mDAAmD;QACnD,2CAA2C;QAC3C,eAAe;QACf,uDAAuD;QACvD,mFAAmF;QAEnF,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAED,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,sBAAsB;QACtB,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,GAAG;YACjB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,CACJ,KAAC,cAAc,cACb,KAAC,cAAc,IACb,EAAE,EAAC,iBAAiB,EACpB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC9B,GACa,CAClB,CAAC;QAEF,0BAA0B;QAC1B,oBAAoB;QACpB,wBAAwB;QAExB,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAED,qCAAqC;QACrC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,GAAG;YACjB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,CACJ,KAAC,cAAc,cACb,KAAC,cAAc,IACb,EAAE,EAAC,iBAAiB,EACpB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC9B,GACa,CAClB,CAAC;QAEF,0BAA0B;QAC1B,oBAAoB;QACpB,uBAAuB;QAEvB,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAED,uCAAuC;QACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,GAAG;YACjB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,CACJ,KAAC,cAAc,cACb,KAAC,cAAc,IACb,EAAE,EAAC,iBAAiB,EACpB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC9B,GACa,CAClB,CAAC;QAEF,0BAA0B;QAC1B,oBAAoB;QACpB,wBAAwB;QAExB,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAED,yCAAyC;QACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YAClC,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,GAAG;YACjB,WAAW,EAAE,EAAE;SAChB,CAAC,CAAC,CAAC;QAEJ,0CAA0C;QAC1C,MAAM,0BAA0B,GAAG,UAAU,CAC3C,CACE,KAKC,EACD,GAAG,EACH,EAAE;YACF,MAAM,UAAU,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;YAC5C,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACnD,aAAa,CACX;gBACE,GAAG,EAAE,UAAmC;gBACxC,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;gBACpB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;aACzB,EACD,IAAI,CACL,CAAC;YACF,OAAO,KAAC,GAAG,IAAC,GAAG,EAAE,UAAU,GAAI,CAAC;QAClC,CAAC,CACF,CAAC;QACF,0BAA0B,CAAC,WAAW,GAAG,4BAA4B,CAAC;QAEtE,MAAM,CACJ,KAAC,cAAc,cACb,KAAC,0BAA0B,IACzB,EAAE,EAAC,0BAA0B,EAC7B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,GAC9B,GACa,CAClB,CAAC;QAEF,wBAAwB;QACxB,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,YAAY;gBAClB,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QAED,4EAA4E;QAC5E,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAE1C,QAAQ,CAAC,SAAS,EAAE,CAAC;QAErB,oBAAoB;QACpB,KAAK,MAAM,QAAQ,IAAI,qBAAqB,EAAE,CAAC;YAC7C,QAAQ,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,EAAE;gBACP,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;QACL,CAAC;QACD,0DAA0D;QAC1D,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -43,6 +43,11 @@ export const ScrollProvider = ({ children, }) => {
43
43
  }, [scrollables]);
44
44
  const pendingScrollsRef = useRef(new Map());
45
45
  const flushScheduledRef = useRef(false);
46
+ const dragStateRef = useRef({
47
+ active: false,
48
+ id: null,
49
+ offset: 0,
50
+ });
46
51
  const scheduleFlush = useCallback(() => {
47
52
  if (!flushScheduledRef.current) {
48
53
  flushScheduledRef.current = true;
@@ -71,32 +76,148 @@ export const ScrollProvider = ({ children, }) => {
71
76
  if (direction === 'up' && canScrollUp) {
72
77
  pendingScrollsRef.current.set(candidate.id, pendingDelta + delta);
73
78
  scheduleFlush();
74
- return;
79
+ return true;
75
80
  }
76
81
  if (direction === 'down' && canScrollDown) {
77
82
  pendingScrollsRef.current.set(candidate.id, pendingDelta + delta);
78
83
  scheduleFlush();
79
- return;
84
+ return true;
80
85
  }
81
86
  }
87
+ return false;
82
88
  };
83
- const handleClick = (mouseEvent) => {
89
+ const handleLeftPress = (mouseEvent) => {
90
+ // Check for scrollbar interaction first
91
+ for (const entry of scrollablesRef.current.values()) {
92
+ if (!entry.ref.current || !entry.hasFocus()) {
93
+ continue;
94
+ }
95
+ const boundingBox = getBoundingBox(entry.ref.current);
96
+ if (!boundingBox)
97
+ continue;
98
+ const { x, y, width, height } = boundingBox;
99
+ // Check if click is on the scrollbar column (x + width)
100
+ // The findScrollableCandidates logic implies scrollbar is at x + width.
101
+ if (mouseEvent.col === x + width &&
102
+ mouseEvent.row >= y &&
103
+ mouseEvent.row < y + height) {
104
+ const { scrollTop, scrollHeight, innerHeight } = entry.getScrollState();
105
+ if (scrollHeight <= innerHeight)
106
+ continue;
107
+ const thumbHeight = Math.max(1, Math.floor((innerHeight / scrollHeight) * innerHeight));
108
+ const maxScrollTop = scrollHeight - innerHeight;
109
+ const maxThumbY = innerHeight - thumbHeight;
110
+ if (maxThumbY <= 0)
111
+ continue;
112
+ const currentThumbY = Math.round((scrollTop / maxScrollTop) * maxThumbY);
113
+ const absoluteThumbTop = y + currentThumbY;
114
+ const absoluteThumbBottom = absoluteThumbTop + thumbHeight;
115
+ const isTop = mouseEvent.row === y;
116
+ const isBottom = mouseEvent.row === y + height - 1;
117
+ const hitTop = isTop ? absoluteThumbTop : absoluteThumbTop - 1;
118
+ const hitBottom = isBottom
119
+ ? absoluteThumbBottom
120
+ : absoluteThumbBottom + 1;
121
+ const isThumbClick = mouseEvent.row >= hitTop && mouseEvent.row < hitBottom;
122
+ let offset = 0;
123
+ const relativeMouseY = mouseEvent.row - y;
124
+ if (isThumbClick) {
125
+ offset = relativeMouseY - currentThumbY;
126
+ }
127
+ else {
128
+ // Track click - Jump to position
129
+ // Center the thumb on the mouse click
130
+ const targetThumbY = Math.max(0, Math.min(maxThumbY, relativeMouseY - Math.floor(thumbHeight / 2)));
131
+ const newScrollTop = Math.round((targetThumbY / maxThumbY) * maxScrollTop);
132
+ if (entry.scrollTo) {
133
+ entry.scrollTo(newScrollTop);
134
+ }
135
+ else {
136
+ entry.scrollBy(newScrollTop - scrollTop);
137
+ }
138
+ offset = relativeMouseY - targetThumbY;
139
+ }
140
+ // Start drag (for both thumb and track clicks)
141
+ dragStateRef.current = {
142
+ active: true,
143
+ id: entry.id,
144
+ offset,
145
+ };
146
+ return true;
147
+ }
148
+ }
84
149
  const candidates = findScrollableCandidates(mouseEvent, scrollablesRef.current);
85
150
  if (candidates.length > 0) {
86
151
  // The first candidate is the innermost one.
87
152
  candidates[0].flashScrollbar();
153
+ // We don't consider just flashing the scrollbar as handling the event
154
+ // in a way that should prevent other handlers (like drag warning)
155
+ // from checking it, although for left-press it doesn't matter much.
156
+ // But returning false is safer.
157
+ return false;
158
+ }
159
+ return false;
160
+ };
161
+ const handleMove = (mouseEvent) => {
162
+ const state = dragStateRef.current;
163
+ if (!state.active || !state.id)
164
+ return false;
165
+ const entry = scrollablesRef.current.get(state.id);
166
+ if (!entry || !entry.ref.current) {
167
+ state.active = false;
168
+ return false;
88
169
  }
170
+ const boundingBox = getBoundingBox(entry.ref.current);
171
+ if (!boundingBox)
172
+ return false;
173
+ const { y } = boundingBox;
174
+ const { scrollTop, scrollHeight, innerHeight } = entry.getScrollState();
175
+ const thumbHeight = Math.max(1, Math.floor((innerHeight / scrollHeight) * innerHeight));
176
+ const maxScrollTop = scrollHeight - innerHeight;
177
+ const maxThumbY = innerHeight - thumbHeight;
178
+ if (maxThumbY <= 0)
179
+ return false;
180
+ const relativeMouseY = mouseEvent.row - y;
181
+ // Calculate the target thumb position based on the mouse position and the offset.
182
+ // We clamp it to the valid range [0, maxThumbY].
183
+ const targetThumbY = Math.max(0, Math.min(maxThumbY, relativeMouseY - state.offset));
184
+ const targetScrollTop = Math.round((targetThumbY / maxThumbY) * maxScrollTop);
185
+ if (entry.scrollTo) {
186
+ entry.scrollTo(targetScrollTop, 0);
187
+ }
188
+ else {
189
+ entry.scrollBy(targetScrollTop - scrollTop);
190
+ }
191
+ return true;
192
+ };
193
+ const handleLeftRelease = () => {
194
+ if (dragStateRef.current.active) {
195
+ dragStateRef.current = {
196
+ active: false,
197
+ id: null,
198
+ offset: 0,
199
+ };
200
+ return true;
201
+ }
202
+ return false;
89
203
  };
90
204
  useMouse((event) => {
91
205
  if (event.name === 'scroll-up') {
92
- handleScroll('up', event);
206
+ return handleScroll('up', event);
93
207
  }
94
208
  else if (event.name === 'scroll-down') {
95
- handleScroll('down', event);
209
+ return handleScroll('down', event);
96
210
  }
97
211
  else if (event.name === 'left-press') {
98
- handleClick(event);
212
+ return handleLeftPress(event);
213
+ }
214
+ else if (event.name === 'move') {
215
+ return handleMove(event);
216
+ }
217
+ else if (event.name === 'left-release') {
218
+ return handleLeftRelease();
99
219
  }
220
+ return false;
100
221
  }, { isActive: true });
101
222
  const contextValue = useMemo(() => ({ register, unregister }), [register, unregister]);
102
223
  return (_jsx(ScrollContext.Provider, { value: contextValue, children: children }));
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollProvider.js","sourceRoot":"","sources":["../../../../src/ui/contexts/ScrollProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ScrollProvider.js","sourceRoot":"","sources":["../../../../src/ui/contexts/ScrollProvider.tsx"],"names":[],"mappings":"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"}