@uipath/apollo-wind 2.66.1 → 2.67.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 (57) hide show
  1. package/dist/components/ui/attachment.cjs +174 -0
  2. package/dist/components/ui/attachment.d.ts +39 -0
  3. package/dist/components/ui/attachment.js +113 -0
  4. package/dist/components/ui/bubble.cjs +123 -0
  5. package/dist/components/ui/bubble.d.ts +28 -0
  6. package/dist/components/ui/bubble.js +77 -0
  7. package/dist/components/ui/index.cjs +268 -213
  8. package/dist/components/ui/index.d.ts +6 -1
  9. package/dist/components/ui/index.js +6 -1
  10. package/dist/components/ui/marker.cjs +89 -0
  11. package/dist/components/ui/marker.d.ts +16 -0
  12. package/dist/components/ui/marker.js +46 -0
  13. package/dist/components/ui/message-scroller/index.cjs +58 -0
  14. package/dist/components/ui/message-scroller/index.d.ts +1 -0
  15. package/dist/components/ui/message-scroller/index.js +1 -0
  16. package/dist/components/ui/message-scroller/message-scroller.cjs +137 -0
  17. package/dist/components/ui/message-scroller/message-scroller.d.ts +60 -0
  18. package/dist/components/ui/message-scroller/message-scroller.js +73 -0
  19. package/dist/components/ui/message-scroller/primitive/components.cjs +357 -0
  20. package/dist/components/ui/message-scroller/primitive/components.d.ts +28 -0
  21. package/dist/components/ui/message-scroller/primitive/components.js +299 -0
  22. package/dist/components/ui/message-scroller/primitive/geometry.cjs +232 -0
  23. package/dist/components/ui/message-scroller/primitive/geometry.d.ts +54 -0
  24. package/dist/components/ui/message-scroller/primitive/geometry.js +153 -0
  25. package/dist/components/ui/message-scroller/primitive/index.cjs +53 -0
  26. package/dist/components/ui/message-scroller/primitive/index.d.ts +23 -0
  27. package/dist/components/ui/message-scroller/primitive/index.js +10 -0
  28. package/dist/components/ui/message-scroller/primitive/stores.cjs +81 -0
  29. package/dist/components/ui/message-scroller/primitive/stores.d.ts +6 -0
  30. package/dist/components/ui/message-scroller/primitive/stores.js +38 -0
  31. package/dist/components/ui/message-scroller/primitive/types.cjs +82 -0
  32. package/dist/components/ui/message-scroller/primitive/types.d.ts +89 -0
  33. package/dist/components/ui/message-scroller/primitive/types.js +24 -0
  34. package/dist/components/ui/message-scroller/primitive/use-message-scroller-commands.cjs +213 -0
  35. package/dist/components/ui/message-scroller/primitive/use-message-scroller-commands.d.ts +18 -0
  36. package/dist/components/ui/message-scroller/primitive/use-message-scroller-commands.js +179 -0
  37. package/dist/components/ui/message-scroller/primitive/use-message-scroller-controller.cjs +474 -0
  38. package/dist/components/ui/message-scroller/primitive/use-message-scroller-controller.d.ts +6 -0
  39. package/dist/components/ui/message-scroller/primitive/use-message-scroller-controller.js +440 -0
  40. package/dist/components/ui/message-scroller/primitive/use-message-scroller-refs.cjs +124 -0
  41. package/dist/components/ui/message-scroller/primitive/use-message-scroller-refs.d.ts +52 -0
  42. package/dist/components/ui/message-scroller/primitive/use-message-scroller-refs.js +84 -0
  43. package/dist/components/ui/message-scroller/primitive/use-render.cjs +116 -0
  44. package/dist/components/ui/message-scroller/primitive/use-render.d.ts +21 -0
  45. package/dist/components/ui/message-scroller/primitive/use-render.js +76 -0
  46. package/dist/components/ui/message-scroller/primitive/utils.cjs +41 -0
  47. package/dist/components/ui/message-scroller/primitive/utils.d.ts +3 -0
  48. package/dist/components/ui/message-scroller/primitive/utils.js +7 -0
  49. package/dist/components/ui/message.cjs +96 -0
  50. package/dist/components/ui/message.d.ts +17 -0
  51. package/dist/components/ui/message.js +47 -0
  52. package/dist/index.cjs +164 -51
  53. package/dist/index.d.ts +10 -0
  54. package/dist/index.js +6 -1
  55. package/dist/styles.css +720 -0
  56. package/dist/tailwind.utilities.css +223 -0
  57. package/package.json +1 -1
@@ -0,0 +1,474 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ useMessageScrollerController: ()=>useMessageScrollerController
28
+ });
29
+ const external_react_namespaceObject = require("react");
30
+ const external_geometry_cjs_namespaceObject = require("./geometry.cjs");
31
+ const external_types_cjs_namespaceObject = require("./types.cjs");
32
+ const external_use_message_scroller_commands_cjs_namespaceObject = require("./use-message-scroller-commands.cjs");
33
+ const external_use_message_scroller_refs_cjs_namespaceObject = require("./use-message-scroller-refs.cjs");
34
+ function useElementRef(elementRef, onMount) {
35
+ return external_react_namespaceObject.useCallback((element)=>{
36
+ elementRef.current = element;
37
+ if (element) onMount();
38
+ }, [
39
+ elementRef,
40
+ onMount
41
+ ]);
42
+ }
43
+ function useMessageScrollerController({ autoScroll = false, defaultScrollPosition = 'end', scrollEdgeThreshold = external_types_cjs_namespaceObject.DEFAULT_SCROLL_EDGE_THRESHOLD, scrollPreviousItemPeek = external_types_cjs_namespaceObject.DEFAULT_SCROLL_PREVIOUS_ITEM_PEEK, scrollMargin = external_types_cjs_namespaceObject.DEFAULT_SCROLL_MARGIN }) {
44
+ const refs = (0, external_use_message_scroller_refs_cjs_namespaceObject.useMessageScrollerRefs)({
45
+ autoScroll,
46
+ defaultScrollPosition,
47
+ scrollEdgeThreshold,
48
+ scrollMargin,
49
+ scrollPreviousItemPeek
50
+ });
51
+ const { streamingTurnRef, autoScrollRef, autoscrollingRef, autoscrollingTimeoutRef, contentRef, defaultScrollPositionAppliedRef, firstItemRef, itemCountRef, lastScrollTopRef, messageElementsRef, modeRef, pendingScrollFrameRef, pendingScrollToMessageRef, prependRestoreRef, preserveScrollOnPrependRef, pendingDefaultScrollStore, rootRef, scrollEdgeThresholdRef, scrollMarginRef, scrollPreviousItemPeekRef, spacerGapRef, spacerHeightRef, spacerRef, stateFrameRef, stateStore, viewportRef, visibilityFrameRef, visibilityObserverRef, visibilityStore, visibleMessageIdsRef, handledScrollAnchorsRef } = refs;
52
+ const previousDefaultScrollPositionRef = external_react_namespaceObject.useRef(defaultScrollPosition);
53
+ if (previousDefaultScrollPositionRef.current !== defaultScrollPosition) {
54
+ previousDefaultScrollPositionRef.current = defaultScrollPosition;
55
+ defaultScrollPositionAppliedRef.current = false;
56
+ }
57
+ const writeStateAttributes = external_react_namespaceObject.useCallback((state)=>{
58
+ const root = rootRef.current;
59
+ const viewport = viewportRef.current;
60
+ const scrollable = [
61
+ state.start && 'start',
62
+ state.end && 'end'
63
+ ].filter(Boolean).join(' ');
64
+ const autoScrolling = autoscrollingRef.current;
65
+ for (const element of [
66
+ root,
67
+ viewport
68
+ ])if (element) {
69
+ if (scrollable) element.setAttribute('data-scrollable', scrollable);
70
+ else element.removeAttribute('data-scrollable');
71
+ element.toggleAttribute('data-autoscrolling', autoScrolling);
72
+ }
73
+ }, []);
74
+ const reconcileFollowMode = external_react_namespaceObject.useCallback((scrollable)=>{
75
+ const scrollTop = viewportRef.current?.scrollTop ?? 0;
76
+ const scrolledUp = scrollTop < lastScrollTopRef.current - external_types_cjs_namespaceObject.SCROLL_POSITION_EPSILON;
77
+ lastScrollTopRef.current = scrollTop;
78
+ if (autoScrollRef.current && !scrollable.end && 'settling-jump' !== modeRef.current && 'anchored-to-message' !== modeRef.current) modeRef.current = 'following-bottom';
79
+ else if ('following-bottom' === modeRef.current && scrollable.end && scrolledUp && !autoscrollingRef.current) modeRef.current = 'free-scrolling';
80
+ }, []);
81
+ const commitScrollState = external_react_namespaceObject.useCallback(()=>{
82
+ const nextState = (0, external_geometry_cjs_namespaceObject.getMessageScrollerScrollable)({
83
+ content: contentRef.current,
84
+ scrollEdgeThreshold: scrollEdgeThresholdRef.current,
85
+ spacer: spacerRef.current,
86
+ viewport: viewportRef.current
87
+ });
88
+ reconcileFollowMode(nextState);
89
+ const publishedState = 'following-bottom' === modeRef.current ? {
90
+ ...nextState,
91
+ end: false
92
+ } : nextState;
93
+ writeStateAttributes(publishedState);
94
+ stateStore.setSnapshot(publishedState);
95
+ }, [
96
+ reconcileFollowMode,
97
+ stateStore,
98
+ writeStateAttributes
99
+ ]);
100
+ const scheduleStateCommit = external_react_namespaceObject.useCallback(()=>{
101
+ if (null !== stateFrameRef.current) return;
102
+ stateFrameRef.current = window.requestAnimationFrame(()=>{
103
+ stateFrameRef.current = null;
104
+ commitScrollState();
105
+ });
106
+ }, [
107
+ commitScrollState
108
+ ]);
109
+ const scheduleVisibilitySync = external_react_namespaceObject.useCallback(()=>{
110
+ if (!visibilityStore.hasListeners()) return;
111
+ if (null !== visibilityFrameRef.current) return;
112
+ visibilityFrameRef.current = window.requestAnimationFrame(()=>{
113
+ visibilityFrameRef.current = null;
114
+ if (!visibilityStore.hasListeners()) return;
115
+ visibilityStore.setSnapshot((0, external_geometry_cjs_namespaceObject.getMessageScrollerVisibilityState)({
116
+ content: contentRef.current,
117
+ scrollMargin: scrollMarginRef.current,
118
+ scrollPreviousItemPeek: scrollPreviousItemPeekRef.current,
119
+ spacer: spacerRef.current,
120
+ viewport: viewportRef.current,
121
+ visibleMessageIds: visibleMessageIdsRef.current
122
+ }));
123
+ });
124
+ }, [
125
+ visibilityStore
126
+ ]);
127
+ const { flushPendingScrollToMessage, reanchorToAnchoredMessage, scrollToElement, scrollToEnd, scrollToMessage, scrollToStart } = (0, external_use_message_scroller_commands_cjs_namespaceObject.useMessageScrollerCommands)({
128
+ refs,
129
+ commitScrollState,
130
+ scheduleStateCommit,
131
+ scheduleVisibilitySync
132
+ });
133
+ const restorePrependedAnchor = external_react_namespaceObject.useCallback(()=>{
134
+ const anchor = prependRestoreRef.current;
135
+ const viewport = viewportRef.current;
136
+ if (!anchor || !viewport || !anchor.element.isConnected) return false;
137
+ const nextViewportTop = (0, external_geometry_cjs_namespaceObject.getElementViewportTop)(anchor.element, viewport);
138
+ const delta = nextViewportTop - anchor.viewportTop;
139
+ if (Math.abs(delta) <= external_types_cjs_namespaceObject.SCROLL_POSITION_EPSILON) return false;
140
+ viewport.scrollTop += delta;
141
+ anchor.viewportTop = (0, external_geometry_cjs_namespaceObject.getElementViewportTop)(anchor.element, viewport);
142
+ scheduleStateCommit();
143
+ scheduleVisibilitySync();
144
+ return true;
145
+ }, [
146
+ scheduleStateCommit,
147
+ scheduleVisibilitySync
148
+ ]);
149
+ const capturePrependAnchor = external_react_namespaceObject.useCallback(()=>{
150
+ const content = contentRef.current;
151
+ const viewport = viewportRef.current;
152
+ if (!content || !viewport) {
153
+ prependRestoreRef.current = null;
154
+ return;
155
+ }
156
+ const anchor = (0, external_geometry_cjs_namespaceObject.getFirstVisibleMessageItem)({
157
+ content,
158
+ spacer: spacerRef.current,
159
+ viewport
160
+ });
161
+ prependRestoreRef.current = anchor ? {
162
+ element: anchor,
163
+ viewportTop: (0, external_geometry_cjs_namespaceObject.getElementViewportTop)(anchor, viewport)
164
+ } : null;
165
+ }, []);
166
+ const schedulePendingScrollToMessageFlush = external_react_namespaceObject.useCallback(()=>{
167
+ if (null !== pendingScrollFrameRef.current) return;
168
+ pendingScrollFrameRef.current = window.requestAnimationFrame(()=>{
169
+ pendingScrollFrameRef.current = null;
170
+ if (flushPendingScrollToMessage()) capturePrependAnchor();
171
+ });
172
+ }, [
173
+ capturePrependAnchor,
174
+ flushPendingScrollToMessage
175
+ ]);
176
+ const applyDefaultScrollPosition = external_react_namespaceObject.useCallback(()=>{
177
+ if (!defaultScrollPosition || defaultScrollPositionAppliedRef.current || 0 === itemCountRef.current) return false;
178
+ let handled = false;
179
+ if ('last-anchor' === defaultScrollPosition) {
180
+ const content = contentRef.current;
181
+ const viewport = viewportRef.current;
182
+ const anchor = content && viewport ? (0, external_geometry_cjs_namespaceObject.getLastScrollAnchor)((0, external_geometry_cjs_namespaceObject.getMessageScrollerItems)(content, spacerRef.current)) : null;
183
+ if (content && viewport && anchor) {
184
+ const anchorTop = (0, external_geometry_cjs_namespaceObject.getElementTop)(anchor, viewport);
185
+ const contentBottom = (0, external_geometry_cjs_namespaceObject.getContentBottom)({
186
+ content,
187
+ spacer: spacerRef.current,
188
+ viewport
189
+ });
190
+ const lastTurnFits = contentBottom - anchorTop <= viewport.clientHeight;
191
+ handled = lastTurnFits ? scrollToEnd({
192
+ behavior: 'auto'
193
+ }) : scrollToElement(anchor, {
194
+ align: 'start'
195
+ }, {
196
+ keepPreviousPeek: true
197
+ });
198
+ } else handled = scrollToEnd({
199
+ behavior: 'auto'
200
+ });
201
+ } else handled = 'end' === defaultScrollPosition ? scrollToEnd({
202
+ behavior: 'auto'
203
+ }) : scrollToStart({
204
+ behavior: 'auto'
205
+ });
206
+ if (!handled) return false;
207
+ (0, external_use_message_scroller_refs_cjs_namespaceObject.markDefaultScrollPositionApplied)(refs);
208
+ return true;
209
+ }, [
210
+ defaultScrollPosition,
211
+ scrollToElement,
212
+ scrollToEnd,
213
+ scrollToStart
214
+ ]);
215
+ const handleContentChange = external_react_namespaceObject.useCallback(()=>{
216
+ const content = contentRef.current;
217
+ if (!content) return;
218
+ const items = (0, external_geometry_cjs_namespaceObject.getMessageScrollerItems)(content, spacerRef.current);
219
+ const previousItemCount = itemCountRef.current;
220
+ const previousFirstItem = firstItemRef.current;
221
+ itemCountRef.current = items.length;
222
+ firstItemRef.current = items[0] ?? null;
223
+ const reconcileScrollPosition = ()=>{
224
+ if (flushPendingScrollToMessage()) return;
225
+ if (0 === previousItemCount) {
226
+ if (applyDefaultScrollPosition()) return;
227
+ if (items.length > 0 && autoScrollRef.current && scrollToEnd({
228
+ behavior: 'auto'
229
+ })) return;
230
+ commitScrollState();
231
+ scheduleVisibilitySync();
232
+ return;
233
+ }
234
+ const previousFirstItemIndex = previousFirstItem ? items.indexOf(previousFirstItem) : -1;
235
+ const didPrepend = preserveScrollOnPrependRef.current && previousFirstItemIndex > 0;
236
+ if (didPrepend) return void restorePrependedAnchor();
237
+ if (items.length > previousItemCount) {
238
+ const anchor = (0, external_geometry_cjs_namespaceObject.getNewScrollAnchor)(items, previousItemCount);
239
+ if (anchor) {
240
+ if (autoScrollRef.current && 'following-bottom' === modeRef.current && (0, external_geometry_cjs_namespaceObject.hasMultipleNewScrollAnchors)(items, previousItemCount)) return void scrollToEnd({
241
+ behavior: 'auto'
242
+ });
243
+ scrollToElement(anchor, {
244
+ align: 'start'
245
+ }, {
246
+ keepPreviousPeek: true
247
+ });
248
+ handledScrollAnchorsRef.current.add(anchor);
249
+ return;
250
+ }
251
+ }
252
+ if (items.length === previousItemCount) {
253
+ const anchor = (0, external_geometry_cjs_namespaceObject.getUnanchoredScrollAnchor)(items, handledScrollAnchorsRef.current);
254
+ if (anchor) {
255
+ scrollToElement(anchor, {
256
+ align: 'start'
257
+ }, {
258
+ keepPreviousPeek: true
259
+ });
260
+ handledScrollAnchorsRef.current.add(anchor);
261
+ return;
262
+ }
263
+ }
264
+ if ('following-bottom' === modeRef.current && autoScrollRef.current) scrollToEnd({
265
+ behavior: 'auto'
266
+ });
267
+ else {
268
+ commitScrollState();
269
+ scheduleVisibilitySync();
270
+ }
271
+ };
272
+ reconcileScrollPosition();
273
+ capturePrependAnchor();
274
+ }, [
275
+ applyDefaultScrollPosition,
276
+ capturePrependAnchor,
277
+ commitScrollState,
278
+ flushPendingScrollToMessage,
279
+ restorePrependedAnchor,
280
+ scheduleVisibilitySync,
281
+ scrollToElement,
282
+ scrollToEnd
283
+ ]);
284
+ const handleResize = external_react_namespaceObject.useCallback(()=>{
285
+ if ('following-bottom' === modeRef.current && autoScrollRef.current) return void scrollToEnd({
286
+ behavior: 'auto'
287
+ });
288
+ const previousSpacerHeight = spacerHeightRef.current;
289
+ if (reanchorToAnchoredMessage()) {
290
+ if (autoScrollRef.current && previousSpacerHeight > 0 && 0 === spacerHeightRef.current) scrollToEnd({
291
+ behavior: 'auto'
292
+ });
293
+ return;
294
+ }
295
+ scheduleStateCommit();
296
+ scheduleVisibilitySync();
297
+ }, [
298
+ reanchorToAnchoredMessage,
299
+ scheduleStateCommit,
300
+ scheduleVisibilitySync,
301
+ scrollToEnd
302
+ ]);
303
+ const observeVisibility = external_react_namespaceObject.useCallback(()=>{
304
+ const viewport = viewportRef.current;
305
+ if (!viewport || !visibilityStore.hasListeners()) return;
306
+ if ("u" < typeof IntersectionObserver) return void scheduleVisibilitySync();
307
+ if (!visibilityObserverRef.current) visibilityObserverRef.current = new IntersectionObserver((entries)=>{
308
+ for (const entry of entries){
309
+ const messageId = entry.target.dataset.messageId;
310
+ if (messageId) if (entry.isIntersecting) visibleMessageIdsRef.current.add(messageId);
311
+ else visibleMessageIdsRef.current.delete(messageId);
312
+ }
313
+ scheduleVisibilitySync();
314
+ }, {
315
+ root: viewport,
316
+ rootMargin: `${-(scrollMarginRef.current + scrollPreviousItemPeekRef.current)}px 0px 0px 0px`,
317
+ threshold: [
318
+ 0,
319
+ 0.01,
320
+ 0.5,
321
+ 1
322
+ ]
323
+ });
324
+ messageElementsRef.current.forEach((element)=>{
325
+ visibilityObserverRef.current?.observe(element);
326
+ });
327
+ scheduleVisibilitySync();
328
+ }, [
329
+ scheduleVisibilitySync,
330
+ visibilityStore
331
+ ]);
332
+ const unobserveVisibility = external_react_namespaceObject.useCallback(()=>{
333
+ if (null !== visibilityFrameRef.current) {
334
+ window.cancelAnimationFrame(visibilityFrameRef.current);
335
+ visibilityFrameRef.current = null;
336
+ }
337
+ visibilityObserverRef.current?.disconnect();
338
+ visibilityObserverRef.current = null;
339
+ visibleMessageIdsRef.current.clear();
340
+ visibilityStore.setSnapshot(external_types_cjs_namespaceObject.EMPTY_MESSAGE_SCROLLER_VISIBILITY_STATE);
341
+ }, [
342
+ visibilityStore
343
+ ]);
344
+ const registerMessage = external_react_namespaceObject.useCallback((messageId, element, removedElement)=>{
345
+ if (element) {
346
+ messageElementsRef.current.set(messageId, element);
347
+ visibilityObserverRef.current?.observe(element);
348
+ scheduleVisibilitySync();
349
+ if (pendingScrollToMessageRef.current?.messageId === messageId) schedulePendingScrollToMessageFlush();
350
+ return;
351
+ }
352
+ if (removedElement && messageElementsRef.current.get(messageId) === removedElement) {
353
+ messageElementsRef.current.delete(messageId);
354
+ visibleMessageIdsRef.current.delete(messageId);
355
+ visibilityObserverRef.current?.unobserve(removedElement);
356
+ scheduleVisibilitySync();
357
+ }
358
+ }, [
359
+ schedulePendingScrollToMessageFlush,
360
+ scheduleVisibilitySync
361
+ ]);
362
+ const userScrollIntent = external_react_namespaceObject.useCallback(()=>{
363
+ if ('following-bottom' === modeRef.current || 'anchored-to-message' === modeRef.current || 'settling-jump' === modeRef.current) {
364
+ streamingTurnRef.current = null;
365
+ modeRef.current = 'free-scrolling';
366
+ }
367
+ }, []);
368
+ const mirrorStateAttributes = external_react_namespaceObject.useCallback(()=>writeStateAttributes(stateStore.getSnapshot()), [
369
+ stateStore,
370
+ writeStateAttributes
371
+ ]);
372
+ const setRootElement = useElementRef(rootRef, mirrorStateAttributes);
373
+ const setViewportElement = useElementRef(viewportRef, mirrorStateAttributes);
374
+ const setContentElement = external_react_namespaceObject.useCallback((element)=>{
375
+ contentRef.current = element;
376
+ }, []);
377
+ const setSpacerElement = external_react_namespaceObject.useCallback((element)=>{
378
+ spacerRef.current = element;
379
+ spacerGapRef.current = (0, external_geometry_cjs_namespaceObject.getFlexGap)(element?.parentElement ?? null);
380
+ }, []);
381
+ const syncAfterScroll = external_react_namespaceObject.useCallback(()=>{
382
+ commitScrollState();
383
+ scheduleVisibilitySync();
384
+ capturePrependAnchor();
385
+ }, [
386
+ capturePrependAnchor,
387
+ commitScrollState,
388
+ scheduleVisibilitySync
389
+ ]);
390
+ const context = external_react_namespaceObject.useMemo(()=>({
391
+ handleContentChange,
392
+ handleResize,
393
+ observeVisibility,
394
+ pendingDefaultScrollStore,
395
+ preserveScrollOnPrependRef,
396
+ scrollToEnd,
397
+ scrollToMessage,
398
+ scrollToStart,
399
+ setContentElement,
400
+ setRootElement,
401
+ setSpacerElement,
402
+ setViewportElement,
403
+ stateStore,
404
+ syncAfterScroll,
405
+ unobserveVisibility,
406
+ userScrollIntent,
407
+ viewportRef,
408
+ visibilityStore
409
+ }), [
410
+ handleContentChange,
411
+ handleResize,
412
+ observeVisibility,
413
+ pendingDefaultScrollStore,
414
+ scrollToEnd,
415
+ scrollToMessage,
416
+ scrollToStart,
417
+ setContentElement,
418
+ setRootElement,
419
+ setSpacerElement,
420
+ setViewportElement,
421
+ stateStore,
422
+ syncAfterScroll,
423
+ unobserveVisibility,
424
+ userScrollIntent,
425
+ visibilityStore
426
+ ]);
427
+ external_react_namespaceObject.useLayoutEffect(()=>{
428
+ if (applyDefaultScrollPosition()) return;
429
+ if (0 === itemCountRef.current) (0, external_use_message_scroller_refs_cjs_namespaceObject.clearPendingDefaultScroll)(refs);
430
+ }, [
431
+ applyDefaultScrollPosition
432
+ ]);
433
+ external_react_namespaceObject.useEffect(()=>()=>{
434
+ if (null !== stateFrameRef.current) {
435
+ window.cancelAnimationFrame(stateFrameRef.current);
436
+ stateFrameRef.current = null;
437
+ }
438
+ if (null !== visibilityFrameRef.current) {
439
+ window.cancelAnimationFrame(visibilityFrameRef.current);
440
+ visibilityFrameRef.current = null;
441
+ }
442
+ if (null !== autoscrollingTimeoutRef.current) {
443
+ window.clearTimeout(autoscrollingTimeoutRef.current);
444
+ autoscrollingTimeoutRef.current = null;
445
+ }
446
+ if (null !== pendingScrollFrameRef.current) {
447
+ window.cancelAnimationFrame(pendingScrollFrameRef.current);
448
+ pendingScrollFrameRef.current = null;
449
+ }
450
+ visibilityObserverRef.current?.disconnect();
451
+ visibilityObserverRef.current = null;
452
+ }, []);
453
+ external_react_namespaceObject.useLayoutEffect(()=>{
454
+ if (autoScroll && 'following-bottom' === modeRef.current && itemCountRef.current > 0) return void scrollToEnd({
455
+ behavior: 'auto'
456
+ });
457
+ commitScrollState();
458
+ }, [
459
+ autoScroll,
460
+ commitScrollState,
461
+ scrollToEnd
462
+ ]);
463
+ return {
464
+ context,
465
+ registerMessage
466
+ };
467
+ }
468
+ exports.useMessageScrollerController = __webpack_exports__.useMessageScrollerController;
469
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
470
+ "useMessageScrollerController"
471
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
472
+ Object.defineProperty(exports, '__esModule', {
473
+ value: true
474
+ });
@@ -0,0 +1,6 @@
1
+ import type { MessageScrollerContextValue, MessageScrollerProviderProps, MessageScrollerRegisterMessage } from './types';
2
+ declare function useMessageScrollerController({ autoScroll, defaultScrollPosition, scrollEdgeThreshold, scrollPreviousItemPeek, scrollMargin, }: MessageScrollerProviderProps): {
3
+ context: MessageScrollerContextValue;
4
+ registerMessage: MessageScrollerRegisterMessage;
5
+ };
6
+ export { useMessageScrollerController };