@assistant-ui/react-native 0.1.42 → 0.1.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/dist/context/AssistantContext.d.ts +2 -2
  2. package/dist/context/AssistantContext.d.ts.map +1 -0
  3. package/dist/context/providers/AttachmentByIndexProvider.d.ts +2 -2
  4. package/dist/context/providers/AttachmentByIndexProvider.d.ts.map +1 -0
  5. package/dist/context/providers/RuntimeAdapterProvider.d.ts +2 -2
  6. package/dist/context/providers/RuntimeAdapterProvider.d.ts.map +1 -0
  7. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts +2 -2
  8. package/dist/context/providers/ThreadListItemRuntimeProvider.d.ts.map +1 -0
  9. package/dist/index.d.ts +54 -22
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +5 -4
  12. package/dist/internal.d.ts +4 -3
  13. package/dist/internal.d.ts.map +1 -0
  14. package/dist/primitives/actionBar/ActionBarCopy.d.ts +9 -11
  15. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  16. package/dist/primitives/actionBar/ActionBarCopy.js +23 -19
  17. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  18. package/dist/primitives/actionBar/ActionBarEdit.d.ts +7 -7
  19. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
  20. package/dist/primitives/actionBar/ActionBarEdit.js +21 -11
  21. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  22. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +8 -10
  23. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
  24. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +35 -17
  25. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  26. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +8 -10
  27. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -1
  28. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +35 -17
  29. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  30. package/dist/primitives/actionBar/ActionBarReload.d.ts +7 -7
  31. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  32. package/dist/primitives/actionBar/ActionBarReload.js +21 -11
  33. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  34. package/dist/primitives/actionBar/ActionBarSpeak.d.ts +12 -0
  35. package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -0
  36. package/dist/primitives/actionBar/ActionBarSpeak.js +61 -0
  37. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -0
  38. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +12 -0
  39. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -0
  40. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +61 -0
  41. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -0
  42. package/dist/primitives/actionBar.d.ts +7 -10
  43. package/dist/primitives/actionBar.d.ts.map +1 -1
  44. package/dist/primitives/actionBar.js +6 -2
  45. package/dist/primitives/actionBar.js.map +1 -1
  46. package/dist/primitives/attachment/AttachmentName.d.ts +4 -7
  47. package/dist/primitives/attachment/AttachmentName.d.ts.map +1 -1
  48. package/dist/primitives/attachment/AttachmentRemove.d.ts +4 -7
  49. package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -1
  50. package/dist/primitives/attachment/AttachmentRoot.d.ts +5 -8
  51. package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -1
  52. package/dist/primitives/attachment/AttachmentThumb.d.ts +4 -7
  53. package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -1
  54. package/dist/primitives/attachment.d.ts +4 -9
  55. package/dist/primitives/attachment.d.ts.map +1 -1
  56. package/dist/primitives/branchPicker/BranchPickerCount.d.ts +3 -6
  57. package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -1
  58. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +7 -7
  59. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  60. package/dist/primitives/branchPicker/BranchPickerNext.js +21 -11
  61. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  62. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts +3 -6
  63. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts.map +1 -1
  64. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +7 -7
  65. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  66. package/dist/primitives/branchPicker/BranchPickerPrevious.js +21 -11
  67. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  68. package/dist/primitives/branchPicker.d.ts +4 -9
  69. package/dist/primitives/branchPicker.d.ts.map +1 -1
  70. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts +4 -7
  71. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts.map +1 -1
  72. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts +5 -8
  73. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts.map +1 -1
  74. package/dist/primitives/chainOfThought.d.ts +3 -8
  75. package/dist/primitives/chainOfThought.d.ts.map +1 -1
  76. package/dist/primitives/composer/ComposerAddAttachment.d.ts +4 -7
  77. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  78. package/dist/primitives/composer/ComposerAttachments.d.ts +5 -8
  79. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -1
  80. package/dist/primitives/composer/ComposerCancel.d.ts +4 -7
  81. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
  82. package/dist/primitives/composer/ComposerIf.d.ts +2 -2
  83. package/dist/primitives/composer/ComposerIf.d.ts.map +1 -0
  84. package/dist/primitives/composer/ComposerInput.d.ts +10 -13
  85. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  86. package/dist/primitives/composer/ComposerInput.js +1 -1
  87. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  88. package/dist/primitives/composer/ComposerQueue.d.ts +2 -2
  89. package/dist/primitives/composer/ComposerQueue.d.ts.map +1 -0
  90. package/dist/primitives/composer/ComposerQuote.d.ts +5 -8
  91. package/dist/primitives/composer/ComposerQuote.d.ts.map +1 -1
  92. package/dist/primitives/composer/ComposerQuoteDismiss.d.ts +4 -7
  93. package/dist/primitives/composer/ComposerQuoteDismiss.d.ts.map +1 -1
  94. package/dist/primitives/composer/ComposerQuoteText.d.ts +5 -8
  95. package/dist/primitives/composer/ComposerQuoteText.d.ts.map +1 -1
  96. package/dist/primitives/composer/ComposerRoot.d.ts +5 -8
  97. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -1
  98. package/dist/primitives/composer/ComposerSend.d.ts +4 -7
  99. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  100. package/dist/primitives/composer.d.ts +11 -16
  101. package/dist/primitives/composer.d.ts.map +1 -1
  102. package/dist/primitives/error/ErrorMessage.d.ts +7 -10
  103. package/dist/primitives/error/ErrorMessage.d.ts.map +1 -1
  104. package/dist/primitives/error/ErrorRoot.d.ts +7 -10
  105. package/dist/primitives/error/ErrorRoot.d.ts.map +1 -1
  106. package/dist/primitives/error/index.d.ts +2 -7
  107. package/dist/primitives/error/index.d.ts.map +1 -1
  108. package/dist/primitives/message/MessageAttachments.d.ts +5 -8
  109. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -1
  110. package/dist/primitives/message/MessageContent.d.ts +47 -49
  111. package/dist/primitives/message/MessageContent.d.ts.map +1 -1
  112. package/dist/primitives/message/MessageContent.js +27 -21
  113. package/dist/primitives/message/MessageContent.js.map +1 -1
  114. package/dist/primitives/message/MessageIf.d.ts +8 -11
  115. package/dist/primitives/message/MessageIf.d.ts.map +1 -1
  116. package/dist/primitives/message/MessageParts.d.ts +6 -8
  117. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  118. package/dist/primitives/message/MessageRoot.d.ts +5 -8
  119. package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
  120. package/dist/primitives/message.d.ts +6 -11
  121. package/dist/primitives/message.d.ts.map +1 -1
  122. package/dist/primitives/messagePart/MessagePartImage.d.ts +9 -0
  123. package/dist/primitives/messagePart/MessagePartImage.d.ts.map +1 -0
  124. package/dist/primitives/messagePart/MessagePartImage.js +39 -0
  125. package/dist/primitives/messagePart/MessagePartImage.js.map +1 -0
  126. package/dist/primitives/messagePart/MessagePartInProgress.d.ts +2 -0
  127. package/dist/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -0
  128. package/dist/primitives/messagePart/MessagePartInProgress.js +2 -0
  129. package/dist/primitives/messagePart/MessagePartText.d.ts +9 -0
  130. package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -0
  131. package/dist/primitives/messagePart/MessagePartText.js +32 -0
  132. package/dist/primitives/messagePart/MessagePartText.js.map +1 -0
  133. package/dist/primitives/messagePart.d.ts +5 -0
  134. package/dist/primitives/messagePart.d.ts.map +1 -0
  135. package/dist/primitives/messagePart.js +16 -0
  136. package/dist/primitives/messagePart.js.map +1 -0
  137. package/dist/primitives/queueItem/QueueItemRemove.d.ts +4 -7
  138. package/dist/primitives/queueItem/QueueItemRemove.d.ts.map +1 -1
  139. package/dist/primitives/queueItem/QueueItemSteer.d.ts +4 -7
  140. package/dist/primitives/queueItem/QueueItemSteer.d.ts.map +1 -1
  141. package/dist/primitives/queueItem/QueueItemText.d.ts +5 -8
  142. package/dist/primitives/queueItem/QueueItemText.d.ts.map +1 -1
  143. package/dist/primitives/queueItem.d.ts +3 -8
  144. package/dist/primitives/queueItem.d.ts.map +1 -1
  145. package/dist/primitives/suggestion/SuggestionDescription.d.ts +5 -8
  146. package/dist/primitives/suggestion/SuggestionDescription.d.ts.map +1 -1
  147. package/dist/primitives/suggestion/SuggestionTitle.d.ts +5 -8
  148. package/dist/primitives/suggestion/SuggestionTitle.d.ts.map +1 -1
  149. package/dist/primitives/suggestion/SuggestionTrigger.d.ts +15 -18
  150. package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -1
  151. package/dist/primitives/suggestion/SuggestionTrigger.js +1 -1
  152. package/dist/primitives/suggestion.d.ts +3 -8
  153. package/dist/primitives/suggestion.d.ts.map +1 -1
  154. package/dist/primitives/thread/ThreadEmpty.d.ts +4 -7
  155. package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -1
  156. package/dist/primitives/thread/ThreadIf.d.ts +6 -9
  157. package/dist/primitives/thread/ThreadIf.d.ts.map +1 -1
  158. package/dist/primitives/thread/ThreadMessages.d.ts +41 -37
  159. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
  160. package/dist/primitives/thread/ThreadMessages.js +123 -72
  161. package/dist/primitives/thread/ThreadMessages.js.map +1 -1
  162. package/dist/primitives/thread/ThreadRoot.d.ts +5 -8
  163. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  164. package/dist/primitives/thread/ThreadSuggestion.d.ts +17 -20
  165. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  166. package/dist/primitives/thread.d.ts +8 -11
  167. package/dist/primitives/thread.d.ts.map +1 -1
  168. package/dist/primitives/threadList/ThreadListItems.d.ts +8 -11
  169. package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -1
  170. package/dist/primitives/threadList/ThreadListItems.js +1 -1
  171. package/dist/primitives/threadList/ThreadListNew.d.ts +7 -10
  172. package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
  173. package/dist/primitives/threadList/ThreadListNew.js +21 -17
  174. package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
  175. package/dist/primitives/threadList/ThreadListRoot.d.ts +5 -8
  176. package/dist/primitives/threadList/ThreadListRoot.d.ts.map +1 -1
  177. package/dist/primitives/threadList.d.ts +3 -8
  178. package/dist/primitives/threadList.d.ts.map +1 -1
  179. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +4 -7
  180. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -1
  181. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +4 -7
  182. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -1
  183. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +5 -8
  184. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -1
  185. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +7 -10
  186. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -1
  187. package/dist/primitives/threadListItem/ThreadListItemTrigger.js +21 -17
  188. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
  189. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +4 -7
  190. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -1
  191. package/dist/primitives/threadListItem.d.ts +6 -11
  192. package/dist/primitives/threadListItem.d.ts.map +1 -1
  193. package/dist/runtimes/useLocalRuntime.d.ts +2 -2
  194. package/dist/runtimes/useLocalRuntime.d.ts.map +1 -0
  195. package/dist/runtimes/useRemoteThreadListRuntime.d.ts +2 -2
  196. package/dist/runtimes/useRemoteThreadListRuntime.d.ts.map +1 -0
  197. package/package.json +13 -12
  198. package/src/index.ts +91 -1
  199. package/src/primitives/accessibilityRole.test.tsx +20 -0
  200. package/src/primitives/actionBar/ActionBar.test.tsx +375 -0
  201. package/src/primitives/actionBar/ActionBarCopy.tsx +8 -3
  202. package/src/primitives/actionBar/ActionBarEdit.tsx +16 -4
  203. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +18 -4
  204. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +18 -4
  205. package/src/primitives/actionBar/ActionBarReload.tsx +16 -4
  206. package/src/primitives/actionBar/ActionBarSpeak.tsx +42 -0
  207. package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +42 -0
  208. package/src/primitives/actionBar.ts +8 -0
  209. package/src/primitives/branchPicker/BranchPickerNext.test.tsx +52 -3
  210. package/src/primitives/branchPicker/BranchPickerNext.tsx +16 -4
  211. package/src/primitives/branchPicker/BranchPickerPrevious.test.tsx +52 -6
  212. package/src/primitives/branchPicker/BranchPickerPrevious.tsx +16 -4
  213. package/src/primitives/composer/ComposerInput.test.tsx +17 -1
  214. package/src/primitives/composer/ComposerInput.tsx +6 -1
  215. package/src/primitives/message/MessageContent.test.tsx +64 -3
  216. package/src/primitives/message/MessageContent.tsx +5 -3
  217. package/src/primitives/messagePart/MessagePartImage.test.tsx +91 -0
  218. package/src/primitives/messagePart/MessagePartImage.tsx +33 -0
  219. package/src/primitives/messagePart/MessagePartInProgress.ts +1 -0
  220. package/src/primitives/messagePart/MessagePartText.test.tsx +80 -0
  221. package/src/primitives/messagePart/MessagePartText.tsx +36 -0
  222. package/src/primitives/messagePart.ts +10 -0
  223. package/src/primitives/thread/ThreadMessages.test.tsx +190 -6
  224. package/src/primitives/thread/ThreadMessages.tsx +68 -1
  225. package/src/primitives/threadList/ThreadListNew.test.tsx +35 -8
  226. package/src/primitives/threadList/ThreadListNew.tsx +4 -1
  227. package/src/primitives/threadListItem/ThreadListItemTrigger.test.tsx +32 -6
  228. package/src/primitives/threadListItem/ThreadListItemTrigger.tsx +4 -1
@@ -1,12 +1,35 @@
1
- import { RenderChildrenWithAccessor, useAuiEvent, useAuiState } from "@assistant-ui/store";
2
1
  import { MessageByIndexProvider } from "@assistant-ui/core/react";
2
+ import { RenderChildrenWithAccessor, useAuiEvent, useAuiState } from "@assistant-ui/store";
3
3
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
4
4
  import { FlatList } from "react-native";
5
5
  import { jsx } from "react/jsx-runtime";
6
- import { forwardRef, memo, useEffect, useRef } from "@assistant-ui/tap/react-shim";
6
+ import { forwardRef, memo, useCallback, useEffect, useRef } from "@assistant-ui/tap/react-shim";
7
7
  //#region src/primitives/thread/ThreadMessages.tsx
8
8
  const DEFAULT_SYSTEM_MESSAGE = () => null;
9
9
  const AT_BOTTOM_THRESHOLD = 4;
10
+ const useHistoryLoad = (history, onStartReached) => {
11
+ const loadRequestedRef = useRef(false);
12
+ const hasMore = history?.hasMore ?? false;
13
+ const isLoadingMore = history?.isLoadingMore ?? false;
14
+ useEffect(() => {
15
+ loadRequestedRef.current = isLoadingMore;
16
+ });
17
+ const handleStartReached = useCallback((info) => {
18
+ onStartReached?.(info);
19
+ if (loadRequestedRef.current) return;
20
+ loadRequestedRef.current = true;
21
+ try {
22
+ history?.loadMore();
23
+ } catch (error) {
24
+ loadRequestedRef.current = false;
25
+ throw error;
26
+ }
27
+ }, [history, onStartReached]);
28
+ return {
29
+ canLoadMore: hasMore && !isLoadingMore,
30
+ handleStartReached
31
+ };
32
+ };
10
33
  const getComponent = (components, role, isEditing) => {
11
34
  switch (role) {
12
35
  case "user": if (isEditing) return components.UserEditComposer ?? components.EditComposer ?? components.UserMessage ?? components.Message;
@@ -300,50 +323,59 @@ const useThreadMessagesFlatListAutoScroll = (t0) => {
300
323
  return t16;
301
324
  };
302
325
  const ThreadMessagesFlatList = forwardRef((t0, forwardedRef) => {
303
- const $ = c(48);
326
+ const $ = c(58);
304
327
  let autoScroll;
305
328
  let children;
306
329
  let components;
307
330
  let flatListProps;
331
+ let history;
308
332
  let onContentSizeChange;
309
333
  let onLayout;
310
334
  let onScroll;
335
+ let onStartReached;
336
+ let onStartReachedThreshold;
311
337
  let scrollEventThrottle;
312
338
  let scrollToBottomOnInitialize;
313
339
  let scrollToBottomOnRunStart;
314
340
  let scrollToBottomOnThreadSwitch;
315
341
  if ($[0] !== t0) {
316
- ({autoScroll, components, children, onContentSizeChange, onLayout, onScroll, scrollEventThrottle, scrollToBottomOnInitialize, scrollToBottomOnRunStart, scrollToBottomOnThreadSwitch, ...flatListProps} = t0);
342
+ ({autoScroll, components, children, onContentSizeChange, onLayout, onScroll, onStartReached, onStartReachedThreshold, scrollEventThrottle, scrollToBottomOnInitialize, scrollToBottomOnRunStart, scrollToBottomOnThreadSwitch, history, ...flatListProps} = t0);
317
343
  $[0] = t0;
318
344
  $[1] = autoScroll;
319
345
  $[2] = children;
320
346
  $[3] = components;
321
347
  $[4] = flatListProps;
322
- $[5] = onContentSizeChange;
323
- $[6] = onLayout;
324
- $[7] = onScroll;
325
- $[8] = scrollEventThrottle;
326
- $[9] = scrollToBottomOnInitialize;
327
- $[10] = scrollToBottomOnRunStart;
328
- $[11] = scrollToBottomOnThreadSwitch;
348
+ $[5] = history;
349
+ $[6] = onContentSizeChange;
350
+ $[7] = onLayout;
351
+ $[8] = onScroll;
352
+ $[9] = onStartReached;
353
+ $[10] = onStartReachedThreshold;
354
+ $[11] = scrollEventThrottle;
355
+ $[12] = scrollToBottomOnInitialize;
356
+ $[13] = scrollToBottomOnRunStart;
357
+ $[14] = scrollToBottomOnThreadSwitch;
329
358
  } else {
330
359
  autoScroll = $[1];
331
360
  children = $[2];
332
361
  components = $[3];
333
362
  flatListProps = $[4];
334
- onContentSizeChange = $[5];
335
- onLayout = $[6];
336
- onScroll = $[7];
337
- scrollEventThrottle = $[8];
338
- scrollToBottomOnInitialize = $[9];
339
- scrollToBottomOnRunStart = $[10];
340
- scrollToBottomOnThreadSwitch = $[11];
363
+ history = $[5];
364
+ onContentSizeChange = $[6];
365
+ onLayout = $[7];
366
+ onScroll = $[8];
367
+ onStartReached = $[9];
368
+ onStartReachedThreshold = $[10];
369
+ scrollEventThrottle = $[11];
370
+ scrollToBottomOnInitialize = $[12];
371
+ scrollToBottomOnRunStart = $[13];
372
+ scrollToBottomOnThreadSwitch = $[14];
341
373
  }
342
374
  const messages = useAuiState(_temp3);
343
375
  const [flatListRef, setFlatListRef] = useComposedFlatListRef(forwardedRef);
344
376
  const t1 = messages.length > 0;
345
377
  let t2;
346
- if ($[12] !== autoScroll || $[13] !== flatListProps.horizontal || $[14] !== flatListRef || $[15] !== scrollToBottomOnInitialize || $[16] !== scrollToBottomOnRunStart || $[17] !== scrollToBottomOnThreadSwitch || $[18] !== t1) {
378
+ if ($[15] !== autoScroll || $[16] !== flatListProps.horizontal || $[17] !== flatListRef || $[18] !== scrollToBottomOnInitialize || $[19] !== scrollToBottomOnRunStart || $[20] !== scrollToBottomOnThreadSwitch || $[21] !== t1) {
347
379
  t2 = {
348
380
  flatListRef,
349
381
  hasMessages: t1,
@@ -353,18 +385,18 @@ const ThreadMessagesFlatList = forwardRef((t0, forwardedRef) => {
353
385
  scrollToBottomOnRunStart,
354
386
  scrollToBottomOnThreadSwitch
355
387
  };
356
- $[12] = autoScroll;
357
- $[13] = flatListProps.horizontal;
358
- $[14] = flatListRef;
359
- $[15] = scrollToBottomOnInitialize;
360
- $[16] = scrollToBottomOnRunStart;
361
- $[17] = scrollToBottomOnThreadSwitch;
362
- $[18] = t1;
363
- $[19] = t2;
364
- } else t2 = $[19];
388
+ $[15] = autoScroll;
389
+ $[16] = flatListProps.horizontal;
390
+ $[17] = flatListRef;
391
+ $[18] = scrollToBottomOnInitialize;
392
+ $[19] = scrollToBottomOnRunStart;
393
+ $[20] = scrollToBottomOnThreadSwitch;
394
+ $[21] = t1;
395
+ $[22] = t2;
396
+ } else t2 = $[22];
365
397
  const { handleContentSizeChange: handleAutoScrollContentSizeChange, handleLayout: handleAutoScrollLayout, handleScroll: handleAutoScrollScroll } = useThreadMessagesFlatListAutoScroll(t2);
366
398
  let t3;
367
- if ($[20] !== children || $[21] !== components) {
399
+ if ($[23] !== children || $[24] !== components) {
368
400
  t3 = (t4) => {
369
401
  const { index } = t4;
370
402
  if (children) return /* @__PURE__ */ jsx(ThreadMessageByChildren, {
@@ -376,54 +408,55 @@ const ThreadMessagesFlatList = forwardRef((t0, forwardedRef) => {
376
408
  components
377
409
  });
378
410
  };
379
- $[20] = children;
380
- $[21] = components;
381
- $[22] = t3;
382
- } else t3 = $[22];
411
+ $[23] = children;
412
+ $[24] = components;
413
+ $[25] = t3;
414
+ } else t3 = $[25];
383
415
  const renderItem = t3;
384
416
  const keyExtractor = _temp4;
385
417
  const scrollTracking = (autoScroll ?? true) || (scrollToBottomOnInitialize ?? true) || (scrollToBottomOnRunStart ?? true) || (scrollToBottomOnThreadSwitch ?? true);
386
418
  let t4;
387
- if ($[23] !== handleAutoScrollLayout || $[24] !== onLayout) {
419
+ if ($[26] !== handleAutoScrollLayout || $[27] !== onLayout) {
388
420
  t4 = (event) => {
389
421
  handleAutoScrollLayout(event);
390
422
  onLayout?.(event);
391
423
  };
392
- $[23] = handleAutoScrollLayout;
393
- $[24] = onLayout;
394
- $[25] = t4;
395
- } else t4 = $[25];
424
+ $[26] = handleAutoScrollLayout;
425
+ $[27] = onLayout;
426
+ $[28] = t4;
427
+ } else t4 = $[28];
396
428
  const handleLayout = t4;
397
429
  let t5;
398
- if ($[26] !== handleAutoScrollScroll || $[27] !== onScroll) {
430
+ if ($[29] !== handleAutoScrollScroll || $[30] !== onScroll) {
399
431
  t5 = (event_0) => {
400
432
  handleAutoScrollScroll(event_0);
401
433
  onScroll?.(event_0);
402
434
  };
403
- $[26] = handleAutoScrollScroll;
404
- $[27] = onScroll;
405
- $[28] = t5;
406
- } else t5 = $[28];
435
+ $[29] = handleAutoScrollScroll;
436
+ $[30] = onScroll;
437
+ $[31] = t5;
438
+ } else t5 = $[31];
407
439
  const handleScroll = t5;
408
440
  let t6;
409
- if ($[29] !== handleAutoScrollContentSizeChange || $[30] !== onContentSizeChange) {
441
+ if ($[32] !== handleAutoScrollContentSizeChange || $[33] !== onContentSizeChange) {
410
442
  t6 = (width, height) => {
411
443
  handleAutoScrollContentSizeChange(width, height);
412
444
  onContentSizeChange?.(width, height);
413
445
  };
414
- $[29] = handleAutoScrollContentSizeChange;
415
- $[30] = onContentSizeChange;
416
- $[31] = t6;
417
- } else t6 = $[31];
446
+ $[32] = handleAutoScrollContentSizeChange;
447
+ $[33] = onContentSizeChange;
448
+ $[34] = t6;
449
+ } else t6 = $[34];
418
450
  const handleContentSizeChange = t6;
451
+ const { canLoadMore, handleStartReached } = useHistoryLoad(history, onStartReached);
419
452
  const t7 = messages;
420
453
  let t8;
421
- if ($[32] === Symbol.for("react.memo_cache_sentinel")) {
454
+ if ($[35] === Symbol.for("react.memo_cache_sentinel")) {
422
455
  t8 = { minIndexForVisible: 0 };
423
- $[32] = t8;
424
- } else t8 = $[32];
456
+ $[35] = t8;
457
+ } else t8 = $[35];
425
458
  let t9;
426
- if ($[33] !== handleContentSizeChange || $[34] !== handleLayout || $[35] !== handleScroll || $[36] !== onContentSizeChange || $[37] !== onLayout || $[38] !== onScroll || $[39] !== scrollEventThrottle || $[40] !== scrollTracking) {
459
+ if ($[36] !== handleContentSizeChange || $[37] !== handleLayout || $[38] !== handleScroll || $[39] !== onContentSizeChange || $[40] !== onLayout || $[41] !== onScroll || $[42] !== scrollEventThrottle || $[43] !== scrollTracking) {
427
460
  t9 = scrollTracking ? {
428
461
  onContentSizeChange: handleContentSizeChange,
429
462
  onLayout: handleLayout,
@@ -435,35 +468,53 @@ const ThreadMessagesFlatList = forwardRef((t0, forwardedRef) => {
435
468
  ...onScroll && { onScroll },
436
469
  ...scrollEventThrottle !== void 0 && { scrollEventThrottle }
437
470
  };
438
- $[33] = handleContentSizeChange;
439
- $[34] = handleLayout;
440
- $[35] = handleScroll;
441
- $[36] = onContentSizeChange;
442
- $[37] = onLayout;
443
- $[38] = onScroll;
444
- $[39] = scrollEventThrottle;
445
- $[40] = scrollTracking;
446
- $[41] = t9;
447
- } else t9 = $[41];
471
+ $[36] = handleContentSizeChange;
472
+ $[37] = handleLayout;
473
+ $[38] = handleScroll;
474
+ $[39] = onContentSizeChange;
475
+ $[40] = onLayout;
476
+ $[41] = onScroll;
477
+ $[42] = scrollEventThrottle;
478
+ $[43] = scrollTracking;
479
+ $[44] = t9;
480
+ } else t9 = $[44];
448
481
  let t10;
449
- if ($[42] !== flatListProps || $[43] !== renderItem || $[44] !== setFlatListRef || $[45] !== t7 || $[46] !== t9) {
450
- t10 = /* @__PURE__ */ jsx(FlatList, {
482
+ if ($[45] !== canLoadMore || $[46] !== handleStartReached || $[47] !== history || $[48] !== onStartReached || $[49] !== onStartReachedThreshold) {
483
+ t10 = history ? {
484
+ ...canLoadMore ? { onStartReached: handleStartReached } : onStartReached ? { onStartReached } : {},
485
+ onStartReachedThreshold: onStartReachedThreshold ?? 1
486
+ } : {
487
+ ...onStartReached && { onStartReached },
488
+ ...onStartReachedThreshold !== void 0 && { onStartReachedThreshold }
489
+ };
490
+ $[45] = canLoadMore;
491
+ $[46] = handleStartReached;
492
+ $[47] = history;
493
+ $[48] = onStartReached;
494
+ $[49] = onStartReachedThreshold;
495
+ $[50] = t10;
496
+ } else t10 = $[50];
497
+ let t11;
498
+ if ($[51] !== flatListProps || $[52] !== renderItem || $[53] !== setFlatListRef || $[54] !== t10 || $[55] !== t7 || $[56] !== t9) {
499
+ t11 = /* @__PURE__ */ jsx(FlatList, {
451
500
  ref: setFlatListRef,
452
501
  data: t7,
453
502
  renderItem,
454
503
  keyExtractor,
455
504
  maintainVisibleContentPosition: t8,
456
505
  ...t9,
506
+ ...t10,
457
507
  ...flatListProps
458
508
  });
459
- $[42] = flatListProps;
460
- $[43] = renderItem;
461
- $[44] = setFlatListRef;
462
- $[45] = t7;
463
- $[46] = t9;
464
- $[47] = t10;
465
- } else t10 = $[47];
466
- return t10;
509
+ $[51] = flatListProps;
510
+ $[52] = renderItem;
511
+ $[53] = setFlatListRef;
512
+ $[54] = t10;
513
+ $[55] = t7;
514
+ $[56] = t9;
515
+ $[57] = t11;
516
+ } else t11 = $[57];
517
+ return t11;
467
518
  });
468
519
  ThreadMessagesFlatList.displayName = "ThreadPrimitive.MessagesFlatList";
469
520
  /** @deprecated Use ThreadPrimitive.MessagesFlatList instead. */
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadMessages.js","names":["ComponentType","FC","ForwardedRef","ReactNode","RefObject","forwardRef","memo","useCallback","useEffect","useRef","FlatList","FlatListProps","LayoutChangeEvent","NativeScrollEvent","NativeSyntheticEvent","MessageState","ThreadMessage","RenderChildrenWithAccessor","useAuiEvent","useAuiState","MessageByIndexProvider","MessageComponents","Message","EditComposer","UserEditComposer","AssistantEditComposer","SystemEditComposer","UserMessage","AssistantMessage","SystemMessage","MessagesContent","components","children","value","message","ThreadMessagesFlatListProps","Omit","autoScroll","scrollToBottomOnRunStart","scrollToBottomOnInitialize","scrollToBottomOnThreadSwitch","ThreadMessagesProps","DEFAULT_SYSTEM_MESSAGE","AT_BOTTOM_THRESHOLD","getComponent","role","isEditing","_exhaustiveCheck","Error","ThreadMessageComponent","t0","$","_c","_temp","_temp2","t1","Component","t2","ThreadMessageByIndex","index","prev","next","displayName","ThreadMessageByChildren","aui","thread","getState","getItem","setForwardedRef","ref","T","current","useComposedFlatListRef","forwardedRef","flatListRef","node","setFlatListRef","const","useThreadMessagesFlatListAutoScroll","hasMessages","horizontal","t3","t4","t5","undefined","t6","Symbol","for","contentHeight","viewportHeight","scrollY","metricsRef","isAtBottomRef","lastScrollEventOffsetRef","initializeScrollRequestedRef","contentSizeVersionRef","pendingScrollToBottomRef","t7","updateIsAtBottom","t8","animated","contentHeight_0","viewportHeight_0","offset","Math","max","scrollToOffset","scrollToBottom","t9","event","wasAtBottom","previousViewportHeight","viewportHeight_1","nativeEvent","layout","width","height","pending","minimumContentSizeVersion","handleLayout","t10","event_0","contentOffset","contentSize","layoutMeasurement","scrollOffset","x","y","previousEventOffset","wasPinnedToBottom","upwardMove","handleScroll","t11","metrics","contentHeight_1","previousContentHeight","wasAtBottom_0","pendingScroll","handleContentSizeChange","t12","t13","t14","t15","t16","ThreadMessagesFlatList","flatListProps","onContentSizeChange","onLayout","onScroll","scrollEventThrottle","messages","_temp3","length","handleAutoScrollContentSizeChange","handleAutoScrollLayout","handleAutoScrollScroll","renderItem","keyExtractor","_temp4","scrollTracking","minIndexForVisible","ThreadMessages","props","s","s_0","composer","item","id"],"sources":["../../../src/primitives/thread/ThreadMessages.tsx"],"sourcesContent":["import {\n type ComponentType,\n type FC,\n type ForwardedRef,\n type ReactNode,\n type RefObject,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport {\n FlatList,\n type FlatListProps,\n type LayoutChangeEvent,\n type NativeScrollEvent,\n type NativeSyntheticEvent,\n} from \"react-native\";\nimport type { MessageState, ThreadMessage } from \"@assistant-ui/core\";\nimport {\n RenderChildrenWithAccessor,\n useAuiEvent,\n useAuiState,\n} from \"@assistant-ui/store\";\nimport { MessageByIndexProvider } from \"@assistant-ui/core/react\";\n\ntype MessageComponents =\n | {\n Message: ComponentType;\n EditComposer?: ComponentType | undefined;\n UserEditComposer?: ComponentType | undefined;\n AssistantEditComposer?: ComponentType | undefined;\n SystemEditComposer?: ComponentType | undefined;\n UserMessage?: ComponentType | undefined;\n AssistantMessage?: ComponentType | undefined;\n SystemMessage?: ComponentType | undefined;\n }\n | {\n Message?: ComponentType | undefined;\n EditComposer?: ComponentType | undefined;\n UserEditComposer?: ComponentType | undefined;\n AssistantEditComposer?: ComponentType | undefined;\n SystemEditComposer?: ComponentType | undefined;\n UserMessage: ComponentType;\n AssistantMessage: ComponentType;\n SystemMessage?: ComponentType | undefined;\n };\n\ntype MessagesContent =\n | {\n /** @deprecated Use the children render function instead. */\n components: MessageComponents;\n children?: never;\n }\n | {\n children: (value: { message: MessageState }) => ReactNode;\n components?: never;\n };\n\nexport type ThreadMessagesFlatListProps = Omit<\n FlatListProps<ThreadMessage>,\n \"data\" | \"renderItem\" | \"children\"\n> &\n MessagesContent & {\n autoScroll?: boolean | undefined;\n scrollToBottomOnRunStart?: boolean | undefined;\n scrollToBottomOnInitialize?: boolean | undefined;\n scrollToBottomOnThreadSwitch?: boolean | undefined;\n };\n\n/** @deprecated Use ThreadMessagesFlatListProps instead. */\nexport type ThreadMessagesProps = ThreadMessagesFlatListProps;\n\nconst DEFAULT_SYSTEM_MESSAGE = () => null;\nconst AT_BOTTOM_THRESHOLD = 4;\n\nconst getComponent = (\n components: MessageComponents,\n role: ThreadMessage[\"role\"],\n isEditing: boolean,\n) => {\n switch (role) {\n case \"user\":\n if (isEditing) {\n return (\n components.UserEditComposer ??\n components.EditComposer ??\n components.UserMessage ??\n (components.Message as ComponentType)\n );\n } else {\n return components.UserMessage ?? (components.Message as ComponentType);\n }\n case \"assistant\":\n if (isEditing) {\n return (\n components.AssistantEditComposer ??\n components.EditComposer ??\n components.AssistantMessage ??\n (components.Message as ComponentType)\n );\n } else {\n return (\n components.AssistantMessage ?? (components.Message as ComponentType)\n );\n }\n case \"system\":\n if (isEditing) {\n return (\n components.SystemEditComposer ??\n components.EditComposer ??\n components.SystemMessage ??\n (components.Message as ComponentType) ??\n DEFAULT_SYSTEM_MESSAGE\n );\n } else {\n return (\n components.SystemMessage ??\n (components.Message as ComponentType) ??\n DEFAULT_SYSTEM_MESSAGE\n );\n }\n default: {\n const _exhaustiveCheck: never = role;\n throw new Error(`Unknown message role: ${_exhaustiveCheck}`);\n }\n }\n};\n\nconst ThreadMessageComponent: FC<{ components: MessageComponents }> = ({\n components,\n}) => {\n const role = useAuiState((s) => s.message.role);\n const isEditing = useAuiState((s) => s.message.composer.isEditing);\n const Component = getComponent(components, role, isEditing);\n\n return <Component />;\n};\n\nconst ThreadMessageByIndex = memo(\n ({ index, components }: { index: number; components: MessageComponents }) => {\n return (\n <MessageByIndexProvider index={index}>\n <ThreadMessageComponent components={components} />\n </MessageByIndexProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index && prev.components === next.components,\n);\nThreadMessageByIndex.displayName = \"ThreadPrimitive.MessageByIndex\";\n\nconst ThreadMessageByChildren = memo(\n ({\n index,\n children,\n }: {\n index: number;\n children: (value: { message: MessageState }) => ReactNode;\n }) => {\n return (\n <MessageByIndexProvider index={index}>\n <RenderChildrenWithAccessor\n getItemState={(aui) => aui.thread.message({ index }).getState()}\n >\n {(getItem) =>\n children({\n get message() {\n return getItem();\n },\n })\n }\n </RenderChildrenWithAccessor>\n </MessageByIndexProvider>\n );\n },\n (prev, next) => prev.index === next.index && prev.children === next.children,\n);\nThreadMessageByChildren.displayName = \"ThreadPrimitive.MessageByChildren\";\n\nconst setForwardedRef = <T,>(ref: ForwardedRef<T>, value: T | null) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n};\n\nconst useComposedFlatListRef = (\n forwardedRef: ForwardedRef<FlatList<ThreadMessage>>,\n) => {\n const flatListRef = useRef<FlatList<ThreadMessage> | null>(null);\n\n const setFlatListRef = useCallback(\n (node: FlatList<ThreadMessage> | null) => {\n flatListRef.current = node;\n setForwardedRef(forwardedRef, node);\n },\n [forwardedRef],\n );\n\n return [flatListRef, setFlatListRef] as const;\n};\n\nconst useThreadMessagesFlatListAutoScroll = ({\n flatListRef,\n hasMessages,\n horizontal = false,\n autoScroll = true,\n scrollToBottomOnRunStart = true,\n scrollToBottomOnInitialize = true,\n scrollToBottomOnThreadSwitch = true,\n}: {\n flatListRef: RefObject<FlatList<ThreadMessage> | null>;\n hasMessages: boolean;\n horizontal?: boolean | null | undefined;\n autoScroll?: boolean | undefined;\n scrollToBottomOnRunStart?: boolean | undefined;\n scrollToBottomOnInitialize?: boolean | undefined;\n scrollToBottomOnThreadSwitch?: boolean | undefined;\n}) => {\n const metricsRef = useRef({\n contentHeight: 0,\n viewportHeight: 0,\n scrollY: 0,\n });\n const isAtBottomRef = useRef(true);\n const lastScrollEventOffsetRef = useRef(0);\n const initializeScrollRequestedRef = useRef(false);\n const contentSizeVersionRef = useRef(0);\n const pendingScrollToBottomRef = useRef<\n | false\n | {\n animated: boolean;\n minimumContentSizeVersion: number;\n }\n >(false);\n\n const updateIsAtBottom = useCallback(() => {\n const { contentHeight, scrollY, viewportHeight } = metricsRef.current;\n isAtBottomRef.current =\n contentHeight <= viewportHeight ||\n contentHeight - scrollY - viewportHeight <= AT_BOTTOM_THRESHOLD;\n }, []);\n\n // Commanding a scroll records the intended position immediately; the\n // native scroll echo is bridged and throttled, so waiting for it lets a\n // fast stream observe stale metrics and drop out of following.\n const scrollToBottom = useCallback(\n (animated: boolean) => {\n const { contentHeight, viewportHeight } = metricsRef.current;\n const offset = Math.max(0, contentHeight - viewportHeight);\n metricsRef.current.scrollY = offset;\n isAtBottomRef.current = true;\n flatListRef.current?.scrollToOffset({ offset, animated });\n },\n [flatListRef],\n );\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n const wasAtBottom = isAtBottomRef.current;\n const previousViewportHeight = metricsRef.current.viewportHeight;\n const viewportHeight = horizontal\n ? event.nativeEvent.layout.width\n : event.nativeEvent.layout.height;\n metricsRef.current.viewportHeight = viewportHeight;\n updateIsAtBottom();\n const pending = pendingScrollToBottomRef.current;\n if (\n pending &&\n contentSizeVersionRef.current >= pending.minimumContentSizeVersion &&\n viewportHeight > 0\n ) {\n pendingScrollToBottomRef.current = false;\n scrollToBottom(pending.animated);\n return;\n }\n if (!wasAtBottom) return;\n // Layout changes are never user gestures, so they must not unpin. Past\n // the first measurement, a viewport change while pinned re-commands the\n // bottom position, since no content-size event follows a bare keyboard\n // open or close.\n if (\n autoScroll &&\n previousViewportHeight !== 0 &&\n viewportHeight !== previousViewportHeight\n ) {\n scrollToBottom(pending ? pending.animated : false);\n } else {\n isAtBottomRef.current = true;\n }\n },\n [autoScroll, horizontal, scrollToBottom, updateIsAtBottom],\n );\n\n const handleScroll = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const { contentOffset, contentSize, layoutMeasurement } =\n event.nativeEvent;\n const scrollOffset = horizontal ? contentOffset.x : contentOffset.y;\n const previousEventOffset = lastScrollEventOffsetRef.current;\n const wasPinnedToBottom = isAtBottomRef.current;\n lastScrollEventOffsetRef.current = scrollOffset;\n metricsRef.current = {\n contentHeight: horizontal ? contentSize.width : contentSize.height,\n viewportHeight: horizontal\n ? layoutMeasurement.width\n : layoutMeasurement.height,\n scrollY: scrollOffset,\n };\n updateIsAtBottom();\n const upwardMove = scrollOffset < previousEventOffset;\n // Only a deliberate upward move unpins or cancels a pending scroll.\n // Gestures are detected echo-to-echo because a commanded scroll\n // optimistically moves the tracked position ahead of its ascending\n // animation echoes, and those echoes must not unpin mid-flight.\n if (wasPinnedToBottom && !upwardMove) {\n isAtBottomRef.current = true;\n }\n if (!isAtBottomRef.current && upwardMove) {\n pendingScrollToBottomRef.current = false;\n }\n },\n [horizontal, updateIsAtBottom],\n );\n\n const handleContentSizeChange = useCallback(\n (width: number, height: number) => {\n const metrics = metricsRef.current;\n const contentHeight = horizontal ? width : height;\n const previousContentHeight = metrics.contentHeight;\n const wasAtBottom = isAtBottomRef.current;\n if (contentHeight > 0) contentSizeVersionRef.current += 1;\n metrics.contentHeight = contentHeight;\n updateIsAtBottom();\n\n // Initialize and thread-switch requests are repeated after the list has\n // measured so the explicit bottom offset uses real content metrics.\n const pendingScroll = pendingScrollToBottomRef.current;\n if (\n pendingScroll &&\n contentSizeVersionRef.current >=\n pendingScroll.minimumContentSizeVersion &&\n metrics.viewportHeight > 0\n ) {\n pendingScrollToBottomRef.current = false;\n scrollToBottom(pendingScroll.animated);\n return;\n }\n\n if (!autoScroll) return;\n if (!wasAtBottom) return;\n if (previousContentHeight === 0) return;\n if (contentHeight <= previousContentHeight) return;\n\n scrollToBottom(false);\n },\n [autoScroll, horizontal, scrollToBottom, updateIsAtBottom],\n );\n\n useEffect(() => {\n if (!scrollToBottomOnInitialize) return;\n if (!hasMessages) {\n initializeScrollRequestedRef.current = false;\n return;\n }\n if (initializeScrollRequestedRef.current) return;\n\n initializeScrollRequestedRef.current = true;\n pendingScrollToBottomRef.current = {\n animated: false,\n minimumContentSizeVersion: Math.max(1, contentSizeVersionRef.current),\n };\n scrollToBottom(false);\n }, [hasMessages, scrollToBottom, scrollToBottomOnInitialize]);\n\n useAuiEvent(\"thread.runStart\", () => {\n if (!scrollToBottomOnRunStart) return;\n pendingScrollToBottomRef.current = {\n animated: true,\n minimumContentSizeVersion: contentSizeVersionRef.current + 1,\n };\n scrollToBottom(true);\n });\n\n useAuiEvent(\"threads.selectionChanged\", () => {\n if (!scrollToBottomOnThreadSwitch) return;\n initializeScrollRequestedRef.current = false;\n lastScrollEventOffsetRef.current = 0;\n pendingScrollToBottomRef.current = {\n animated: false,\n minimumContentSizeVersion: contentSizeVersionRef.current + 1,\n };\n scrollToBottom(false);\n });\n\n return {\n handleLayout,\n handleScroll,\n handleContentSizeChange,\n };\n};\n\nexport const ThreadMessagesFlatList = forwardRef<\n FlatList<ThreadMessage>,\n ThreadMessagesFlatListProps\n>(\n (\n {\n autoScroll,\n components,\n children,\n onContentSizeChange,\n onLayout,\n onScroll,\n scrollEventThrottle,\n scrollToBottomOnInitialize,\n scrollToBottomOnRunStart,\n scrollToBottomOnThreadSwitch,\n ...flatListProps\n },\n forwardedRef,\n ) => {\n const messages = useAuiState((s) => s.thread.messages);\n const [flatListRef, setFlatListRef] = useComposedFlatListRef(forwardedRef);\n const {\n handleContentSizeChange: handleAutoScrollContentSizeChange,\n handleLayout: handleAutoScrollLayout,\n handleScroll: handleAutoScrollScroll,\n } = useThreadMessagesFlatListAutoScroll({\n flatListRef,\n hasMessages: messages.length > 0,\n horizontal: flatListProps.horizontal,\n autoScroll,\n scrollToBottomOnInitialize,\n scrollToBottomOnRunStart,\n scrollToBottomOnThreadSwitch,\n });\n\n const renderItem = useCallback(\n ({ index }: { item: ThreadMessage; index: number }) => {\n if (children) {\n return (\n <ThreadMessageByChildren index={index}>\n {children}\n </ThreadMessageByChildren>\n );\n }\n return <ThreadMessageByIndex index={index} components={components!} />;\n },\n [components, children],\n );\n\n const keyExtractor = useCallback((item: ThreadMessage) => item.id, []);\n\n const scrollTracking =\n (autoScroll ?? true) ||\n (scrollToBottomOnInitialize ?? true) ||\n (scrollToBottomOnRunStart ?? true) ||\n (scrollToBottomOnThreadSwitch ?? true);\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n handleAutoScrollLayout(event);\n onLayout?.(event);\n },\n [handleAutoScrollLayout, onLayout],\n );\n\n const handleScroll = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n handleAutoScrollScroll(event);\n onScroll?.(event);\n },\n [handleAutoScrollScroll, onScroll],\n );\n\n const handleContentSizeChange = useCallback(\n (width: number, height: number) => {\n handleAutoScrollContentSizeChange(width, height);\n onContentSizeChange?.(width, height);\n },\n [handleAutoScrollContentSizeChange, onContentSizeChange],\n );\n\n return (\n <FlatList\n ref={setFlatListRef}\n data={messages as unknown as ThreadMessage[]}\n renderItem={renderItem}\n keyExtractor={keyExtractor}\n maintainVisibleContentPosition={{ minIndexForVisible: 0 }}\n {...(scrollTracking\n ? {\n onContentSizeChange: handleContentSizeChange,\n onLayout: handleLayout,\n onScroll: handleScroll,\n scrollEventThrottle: scrollEventThrottle ?? 16,\n }\n : {\n ...(onContentSizeChange && { onContentSizeChange }),\n ...(onLayout && { onLayout }),\n ...(onScroll && { onScroll }),\n ...(scrollEventThrottle !== undefined && { scrollEventThrottle }),\n })}\n {...flatListProps}\n />\n );\n },\n);\nThreadMessagesFlatList.displayName = \"ThreadPrimitive.MessagesFlatList\";\n\n/** @deprecated Use ThreadPrimitive.MessagesFlatList instead. */\nexport const ThreadMessages = forwardRef<\n FlatList<ThreadMessage>,\n ThreadMessagesProps\n>(\n (\n {\n autoScroll = false,\n scrollToBottomOnInitialize = false,\n scrollToBottomOnRunStart = false,\n scrollToBottomOnThreadSwitch = false,\n ...props\n },\n ref,\n ) => (\n <ThreadMessagesFlatList\n ref={ref}\n autoScroll={autoScroll}\n scrollToBottomOnInitialize={scrollToBottomOnInitialize}\n scrollToBottomOnRunStart={scrollToBottomOnRunStart}\n scrollToBottomOnThreadSwitch={scrollToBottomOnThreadSwitch}\n {...props}\n />\n ),\n);\nThreadMessages.displayName = \"ThreadPrimitive.Messages\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThreadMessages.js","names":["ComponentType","FC","ForwardedRef","ReactNode","RefObject","forwardRef","memo","useCallback","useEffect","useRef","FlatList","FlatListProps","LayoutChangeEvent","NativeScrollEvent","NativeSyntheticEvent","ThreadMessage","MessageState","RenderChildrenWithAccessor","useAuiEvent","useAuiState","MessageByIndexProvider","MessageComponents","Message","EditComposer","UserEditComposer","AssistantEditComposer","SystemEditComposer","UserMessage","AssistantMessage","SystemMessage","MessagesContent","components","children","value","message","ThreadMessagesFlatListProps","Omit","autoScroll","scrollToBottomOnRunStart","scrollToBottomOnInitialize","scrollToBottomOnThreadSwitch","history","hasMore","isLoadingMore","loadMore","ThreadMessagesProps","DEFAULT_SYSTEM_MESSAGE","AT_BOTTOM_THRESHOLD","useHistoryLoad","onStartReached","loadRequestedRef","current","handleStartReached","NonNullable","info","error","canLoadMore","getComponent","role","isEditing","_exhaustiveCheck","Error","ThreadMessageComponent","t0","$","_c","_temp","_temp2","t1","Component","t2","ThreadMessageByIndex","index","prev","next","displayName","ThreadMessageByChildren","aui","thread","getState","getItem","setForwardedRef","ref","T","useComposedFlatListRef","forwardedRef","flatListRef","node","setFlatListRef","const","useThreadMessagesFlatListAutoScroll","hasMessages","horizontal","t3","t4","t5","undefined","t6","Symbol","for","contentHeight","viewportHeight","scrollY","metricsRef","isAtBottomRef","lastScrollEventOffsetRef","initializeScrollRequestedRef","contentSizeVersionRef","pendingScrollToBottomRef","t7","updateIsAtBottom","t8","animated","contentHeight_0","viewportHeight_0","offset","Math","max","scrollToOffset","scrollToBottom","t9","event","wasAtBottom","previousViewportHeight","viewportHeight_1","nativeEvent","layout","width","height","pending","minimumContentSizeVersion","handleLayout","t10","event_0","contentOffset","contentSize","layoutMeasurement","scrollOffset","x","y","previousEventOffset","wasPinnedToBottom","upwardMove","handleScroll","t11","metrics","contentHeight_1","previousContentHeight","wasAtBottom_0","pendingScroll","handleContentSizeChange","t12","t13","t14","t15","t16","ThreadMessagesFlatList","flatListProps","onContentSizeChange","onLayout","onScroll","onStartReachedThreshold","scrollEventThrottle","messages","_temp3","length","handleAutoScrollContentSizeChange","handleAutoScrollLayout","handleAutoScrollScroll","renderItem","keyExtractor","_temp4","scrollTracking","minIndexForVisible","ThreadMessages","props","s","s_0","composer","item","id"],"sources":["../../../src/primitives/thread/ThreadMessages.tsx"],"sourcesContent":["import {\n type ComponentType,\n type FC,\n type ForwardedRef,\n type ReactNode,\n type RefObject,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport {\n FlatList,\n type FlatListProps,\n type LayoutChangeEvent,\n type NativeScrollEvent,\n type NativeSyntheticEvent,\n} from \"react-native\";\nimport type { ThreadMessage } from \"@assistant-ui/core\";\nimport type { MessageState } from \"@assistant-ui/core/store\";\nimport {\n RenderChildrenWithAccessor,\n useAuiEvent,\n useAuiState,\n} from \"@assistant-ui/store\";\nimport { MessageByIndexProvider } from \"@assistant-ui/core/react\";\n\ntype MessageComponents =\n | {\n Message: ComponentType;\n EditComposer?: ComponentType | undefined;\n UserEditComposer?: ComponentType | undefined;\n AssistantEditComposer?: ComponentType | undefined;\n SystemEditComposer?: ComponentType | undefined;\n UserMessage?: ComponentType | undefined;\n AssistantMessage?: ComponentType | undefined;\n SystemMessage?: ComponentType | undefined;\n }\n | {\n Message?: ComponentType | undefined;\n EditComposer?: ComponentType | undefined;\n UserEditComposer?: ComponentType | undefined;\n AssistantEditComposer?: ComponentType | undefined;\n SystemEditComposer?: ComponentType | undefined;\n UserMessage: ComponentType;\n AssistantMessage: ComponentType;\n SystemMessage?: ComponentType | undefined;\n };\n\ntype MessagesContent =\n | {\n /** @deprecated Use the children render function instead. */\n components: MessageComponents;\n children?: never;\n }\n | {\n children: (value: { message: MessageState }) => ReactNode;\n components?: never;\n };\n\nexport type ThreadMessagesFlatListProps = Omit<\n FlatListProps<ThreadMessage>,\n \"data\" | \"renderItem\" | \"children\"\n> &\n MessagesContent & {\n autoScroll?: boolean | undefined;\n scrollToBottomOnRunStart?: boolean | undefined;\n scrollToBottomOnInitialize?: boolean | undefined;\n scrollToBottomOnThreadSwitch?: boolean | undefined;\n history?:\n | {\n hasMore: boolean;\n isLoadingMore: boolean;\n loadMore: () => void;\n }\n | undefined;\n };\n\n/** @deprecated Use ThreadMessagesFlatListProps instead. */\nexport type ThreadMessagesProps = ThreadMessagesFlatListProps;\n\nconst DEFAULT_SYSTEM_MESSAGE = () => null;\nconst AT_BOTTOM_THRESHOLD = 4;\n\nconst useHistoryLoad = (\n history: ThreadMessagesFlatListProps[\"history\"],\n onStartReached: FlatListProps<ThreadMessage>[\"onStartReached\"],\n) => {\n const loadRequestedRef = useRef(false);\n const hasMore = history?.hasMore ?? false;\n const isLoadingMore = history?.isLoadingMore ?? false;\n\n // The latch is scoped to one commit so a no-op load cannot disable paging.\n useEffect(() => {\n loadRequestedRef.current = isLoadingMore;\n });\n\n const handleStartReached = useCallback<\n NonNullable<FlatListProps<ThreadMessage>[\"onStartReached\"]>\n >(\n (info) => {\n onStartReached?.(info);\n if (loadRequestedRef.current) return;\n loadRequestedRef.current = true;\n try {\n history?.loadMore();\n } catch (error) {\n loadRequestedRef.current = false;\n throw error;\n }\n },\n [history, onStartReached],\n );\n\n return {\n canLoadMore: hasMore && !isLoadingMore,\n handleStartReached,\n };\n};\n\nconst getComponent = (\n components: MessageComponents,\n role: ThreadMessage[\"role\"],\n isEditing: boolean,\n) => {\n switch (role) {\n case \"user\":\n if (isEditing) {\n return (\n components.UserEditComposer ??\n components.EditComposer ??\n components.UserMessage ??\n (components.Message as ComponentType)\n );\n } else {\n return components.UserMessage ?? (components.Message as ComponentType);\n }\n case \"assistant\":\n if (isEditing) {\n return (\n components.AssistantEditComposer ??\n components.EditComposer ??\n components.AssistantMessage ??\n (components.Message as ComponentType)\n );\n } else {\n return (\n components.AssistantMessage ?? (components.Message as ComponentType)\n );\n }\n case \"system\":\n if (isEditing) {\n return (\n components.SystemEditComposer ??\n components.EditComposer ??\n components.SystemMessage ??\n (components.Message as ComponentType) ??\n DEFAULT_SYSTEM_MESSAGE\n );\n } else {\n return (\n components.SystemMessage ??\n (components.Message as ComponentType) ??\n DEFAULT_SYSTEM_MESSAGE\n );\n }\n default: {\n const _exhaustiveCheck: never = role;\n throw new Error(`Unknown message role: ${_exhaustiveCheck}`);\n }\n }\n};\n\nconst ThreadMessageComponent: FC<{ components: MessageComponents }> = ({\n components,\n}) => {\n const role = useAuiState((s) => s.message.role);\n const isEditing = useAuiState((s) => s.message.composer.isEditing);\n const Component = getComponent(components, role, isEditing);\n\n return <Component />;\n};\n\nconst ThreadMessageByIndex = memo(\n ({ index, components }: { index: number; components: MessageComponents }) => {\n return (\n <MessageByIndexProvider index={index}>\n <ThreadMessageComponent components={components} />\n </MessageByIndexProvider>\n );\n },\n (prev, next) =>\n prev.index === next.index && prev.components === next.components,\n);\nThreadMessageByIndex.displayName = \"ThreadPrimitive.MessageByIndex\";\n\nconst ThreadMessageByChildren = memo(\n ({\n index,\n children,\n }: {\n index: number;\n children: (value: { message: MessageState }) => ReactNode;\n }) => {\n return (\n <MessageByIndexProvider index={index}>\n <RenderChildrenWithAccessor\n getItemState={(aui) => aui.thread.message({ index }).getState()}\n >\n {(getItem) =>\n children({\n get message() {\n return getItem();\n },\n })\n }\n </RenderChildrenWithAccessor>\n </MessageByIndexProvider>\n );\n },\n (prev, next) => prev.index === next.index && prev.children === next.children,\n);\nThreadMessageByChildren.displayName = \"ThreadPrimitive.MessageByChildren\";\n\nconst setForwardedRef = <T,>(ref: ForwardedRef<T>, value: T | null) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n};\n\nconst useComposedFlatListRef = (\n forwardedRef: ForwardedRef<FlatList<ThreadMessage>>,\n) => {\n const flatListRef = useRef<FlatList<ThreadMessage> | null>(null);\n\n const setFlatListRef = useCallback(\n (node: FlatList<ThreadMessage> | null) => {\n flatListRef.current = node;\n setForwardedRef(forwardedRef, node);\n },\n [forwardedRef],\n );\n\n return [flatListRef, setFlatListRef] as const;\n};\n\nconst useThreadMessagesFlatListAutoScroll = ({\n flatListRef,\n hasMessages,\n horizontal = false,\n autoScroll = true,\n scrollToBottomOnRunStart = true,\n scrollToBottomOnInitialize = true,\n scrollToBottomOnThreadSwitch = true,\n}: {\n flatListRef: RefObject<FlatList<ThreadMessage> | null>;\n hasMessages: boolean;\n horizontal?: boolean | null | undefined;\n autoScroll?: boolean | undefined;\n scrollToBottomOnRunStart?: boolean | undefined;\n scrollToBottomOnInitialize?: boolean | undefined;\n scrollToBottomOnThreadSwitch?: boolean | undefined;\n}) => {\n const metricsRef = useRef({\n contentHeight: 0,\n viewportHeight: 0,\n scrollY: 0,\n });\n const isAtBottomRef = useRef(true);\n const lastScrollEventOffsetRef = useRef(0);\n const initializeScrollRequestedRef = useRef(false);\n const contentSizeVersionRef = useRef(0);\n const pendingScrollToBottomRef = useRef<\n | false\n | {\n animated: boolean;\n minimumContentSizeVersion: number;\n }\n >(false);\n\n const updateIsAtBottom = useCallback(() => {\n const { contentHeight, scrollY, viewportHeight } = metricsRef.current;\n isAtBottomRef.current =\n contentHeight <= viewportHeight ||\n contentHeight - scrollY - viewportHeight <= AT_BOTTOM_THRESHOLD;\n }, []);\n\n // Commanding a scroll records the intended position immediately; the\n // native scroll echo is bridged and throttled, so waiting for it lets a\n // fast stream observe stale metrics and drop out of following.\n const scrollToBottom = useCallback(\n (animated: boolean) => {\n const { contentHeight, viewportHeight } = metricsRef.current;\n const offset = Math.max(0, contentHeight - viewportHeight);\n metricsRef.current.scrollY = offset;\n isAtBottomRef.current = true;\n flatListRef.current?.scrollToOffset({ offset, animated });\n },\n [flatListRef],\n );\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n const wasAtBottom = isAtBottomRef.current;\n const previousViewportHeight = metricsRef.current.viewportHeight;\n const viewportHeight = horizontal\n ? event.nativeEvent.layout.width\n : event.nativeEvent.layout.height;\n metricsRef.current.viewportHeight = viewportHeight;\n updateIsAtBottom();\n const pending = pendingScrollToBottomRef.current;\n if (\n pending &&\n contentSizeVersionRef.current >= pending.minimumContentSizeVersion &&\n viewportHeight > 0\n ) {\n pendingScrollToBottomRef.current = false;\n scrollToBottom(pending.animated);\n return;\n }\n if (!wasAtBottom) return;\n // Layout changes are never user gestures, so they must not unpin. Past\n // the first measurement, a viewport change while pinned re-commands the\n // bottom position, since no content-size event follows a bare keyboard\n // open or close.\n if (\n autoScroll &&\n previousViewportHeight !== 0 &&\n viewportHeight !== previousViewportHeight\n ) {\n scrollToBottom(pending ? pending.animated : false);\n } else {\n isAtBottomRef.current = true;\n }\n },\n [autoScroll, horizontal, scrollToBottom, updateIsAtBottom],\n );\n\n const handleScroll = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const { contentOffset, contentSize, layoutMeasurement } =\n event.nativeEvent;\n const scrollOffset = horizontal ? contentOffset.x : contentOffset.y;\n const previousEventOffset = lastScrollEventOffsetRef.current;\n const wasPinnedToBottom = isAtBottomRef.current;\n lastScrollEventOffsetRef.current = scrollOffset;\n metricsRef.current = {\n contentHeight: horizontal ? contentSize.width : contentSize.height,\n viewportHeight: horizontal\n ? layoutMeasurement.width\n : layoutMeasurement.height,\n scrollY: scrollOffset,\n };\n updateIsAtBottom();\n const upwardMove = scrollOffset < previousEventOffset;\n // Only a deliberate upward move unpins or cancels a pending scroll.\n // Gestures are detected echo-to-echo because a commanded scroll\n // optimistically moves the tracked position ahead of its ascending\n // animation echoes, and those echoes must not unpin mid-flight.\n if (wasPinnedToBottom && !upwardMove) {\n isAtBottomRef.current = true;\n }\n if (!isAtBottomRef.current && upwardMove) {\n pendingScrollToBottomRef.current = false;\n }\n },\n [horizontal, updateIsAtBottom],\n );\n\n const handleContentSizeChange = useCallback(\n (width: number, height: number) => {\n const metrics = metricsRef.current;\n const contentHeight = horizontal ? width : height;\n const previousContentHeight = metrics.contentHeight;\n const wasAtBottom = isAtBottomRef.current;\n if (contentHeight > 0) contentSizeVersionRef.current += 1;\n metrics.contentHeight = contentHeight;\n updateIsAtBottom();\n\n // Initialize and thread-switch requests are repeated after the list has\n // measured so the explicit bottom offset uses real content metrics.\n const pendingScroll = pendingScrollToBottomRef.current;\n if (\n pendingScroll &&\n contentSizeVersionRef.current >=\n pendingScroll.minimumContentSizeVersion &&\n metrics.viewportHeight > 0\n ) {\n pendingScrollToBottomRef.current = false;\n scrollToBottom(pendingScroll.animated);\n return;\n }\n\n if (!autoScroll) return;\n if (!wasAtBottom) return;\n if (previousContentHeight === 0) return;\n if (contentHeight <= previousContentHeight) return;\n\n scrollToBottom(false);\n },\n [autoScroll, horizontal, scrollToBottom, updateIsAtBottom],\n );\n\n useEffect(() => {\n if (!scrollToBottomOnInitialize) return;\n if (!hasMessages) {\n initializeScrollRequestedRef.current = false;\n return;\n }\n if (initializeScrollRequestedRef.current) return;\n\n initializeScrollRequestedRef.current = true;\n pendingScrollToBottomRef.current = {\n animated: false,\n minimumContentSizeVersion: Math.max(1, contentSizeVersionRef.current),\n };\n scrollToBottom(false);\n }, [hasMessages, scrollToBottom, scrollToBottomOnInitialize]);\n\n useAuiEvent(\"thread.runStart\", () => {\n if (!scrollToBottomOnRunStart) return;\n pendingScrollToBottomRef.current = {\n animated: true,\n minimumContentSizeVersion: contentSizeVersionRef.current + 1,\n };\n scrollToBottom(true);\n });\n\n useAuiEvent(\"threads.selectionChanged\", () => {\n if (!scrollToBottomOnThreadSwitch) return;\n initializeScrollRequestedRef.current = false;\n lastScrollEventOffsetRef.current = 0;\n pendingScrollToBottomRef.current = {\n animated: false,\n minimumContentSizeVersion: contentSizeVersionRef.current + 1,\n };\n scrollToBottom(false);\n });\n\n return {\n handleLayout,\n handleScroll,\n handleContentSizeChange,\n };\n};\n\nexport const ThreadMessagesFlatList = forwardRef<\n FlatList<ThreadMessage>,\n ThreadMessagesFlatListProps\n>(\n (\n {\n autoScroll,\n components,\n children,\n onContentSizeChange,\n onLayout,\n onScroll,\n onStartReached,\n onStartReachedThreshold,\n scrollEventThrottle,\n scrollToBottomOnInitialize,\n scrollToBottomOnRunStart,\n scrollToBottomOnThreadSwitch,\n history,\n ...flatListProps\n },\n forwardedRef,\n ) => {\n const messages = useAuiState((s) => s.thread.messages);\n const [flatListRef, setFlatListRef] = useComposedFlatListRef(forwardedRef);\n const {\n handleContentSizeChange: handleAutoScrollContentSizeChange,\n handleLayout: handleAutoScrollLayout,\n handleScroll: handleAutoScrollScroll,\n } = useThreadMessagesFlatListAutoScroll({\n flatListRef,\n hasMessages: messages.length > 0,\n horizontal: flatListProps.horizontal,\n autoScroll,\n scrollToBottomOnInitialize,\n scrollToBottomOnRunStart,\n scrollToBottomOnThreadSwitch,\n });\n\n const renderItem = useCallback(\n ({ index }: { item: ThreadMessage; index: number }) => {\n if (children) {\n return (\n <ThreadMessageByChildren index={index}>\n {children}\n </ThreadMessageByChildren>\n );\n }\n return <ThreadMessageByIndex index={index} components={components!} />;\n },\n [components, children],\n );\n\n const keyExtractor = useCallback((item: ThreadMessage) => item.id, []);\n\n const scrollTracking =\n (autoScroll ?? true) ||\n (scrollToBottomOnInitialize ?? true) ||\n (scrollToBottomOnRunStart ?? true) ||\n (scrollToBottomOnThreadSwitch ?? true);\n\n const handleLayout = useCallback(\n (event: LayoutChangeEvent) => {\n handleAutoScrollLayout(event);\n onLayout?.(event);\n },\n [handleAutoScrollLayout, onLayout],\n );\n\n const handleScroll = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n handleAutoScrollScroll(event);\n onScroll?.(event);\n },\n [handleAutoScrollScroll, onScroll],\n );\n\n const handleContentSizeChange = useCallback(\n (width: number, height: number) => {\n handleAutoScrollContentSizeChange(width, height);\n onContentSizeChange?.(width, height);\n },\n [handleAutoScrollContentSizeChange, onContentSizeChange],\n );\n\n const { canLoadMore, handleStartReached } = useHistoryLoad(\n history,\n onStartReached,\n );\n\n return (\n <FlatList\n ref={setFlatListRef}\n data={messages as unknown as ThreadMessage[]}\n renderItem={renderItem}\n keyExtractor={keyExtractor}\n maintainVisibleContentPosition={{ minIndexForVisible: 0 }}\n {...(scrollTracking\n ? {\n onContentSizeChange: handleContentSizeChange,\n onLayout: handleLayout,\n onScroll: handleScroll,\n scrollEventThrottle: scrollEventThrottle ?? 16,\n }\n : {\n ...(onContentSizeChange && { onContentSizeChange }),\n ...(onLayout && { onLayout }),\n ...(onScroll && { onScroll }),\n ...(scrollEventThrottle !== undefined && { scrollEventThrottle }),\n })}\n {...(history\n ? {\n ...(canLoadMore\n ? { onStartReached: handleStartReached }\n : onStartReached\n ? { onStartReached }\n : {}),\n onStartReachedThreshold: onStartReachedThreshold ?? 1,\n }\n : {\n ...(onStartReached && { onStartReached }),\n ...(onStartReachedThreshold !== undefined && {\n onStartReachedThreshold,\n }),\n })}\n {...flatListProps}\n />\n );\n },\n);\nThreadMessagesFlatList.displayName = \"ThreadPrimitive.MessagesFlatList\";\n\n/** @deprecated Use ThreadPrimitive.MessagesFlatList instead. */\nexport const ThreadMessages = forwardRef<\n FlatList<ThreadMessage>,\n ThreadMessagesProps\n>(\n (\n {\n autoScroll = false,\n scrollToBottomOnInitialize = false,\n scrollToBottomOnRunStart = false,\n scrollToBottomOnThreadSwitch = false,\n ...props\n },\n ref,\n ) => (\n <ThreadMessagesFlatList\n ref={ref}\n autoScroll={autoScroll}\n scrollToBottomOnInitialize={scrollToBottomOnInitialize}\n scrollToBottomOnRunStart={scrollToBottomOnRunStart}\n scrollToBottomOnThreadSwitch={scrollToBottomOnThreadSwitch}\n {...props}\n />\n ),\n);\nThreadMessages.displayName = \"ThreadPrimitive.Messages\";\n"],"mappings":"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"}
@@ -1,10 +1,7 @@
1
- import { ViewProps } from "react-native";
2
- import { ReactNode } from "react";
3
- //#region src/primitives/thread/ThreadRoot.d.ts
4
- type ThreadRootProps = ViewProps & {
5
- children: ReactNode;
1
+ import type { ReactNode } from "react";
2
+ import { type ViewProps } from "react-native";
3
+ export type ThreadRootProps = ViewProps & {
4
+ children: ReactNode;
6
5
  };
7
- declare const ThreadRoot: ({ children, ...viewProps }: ThreadRootProps) => import("react").JSX.Element;
8
- //#endregion
9
- export { ThreadRoot, ThreadRootProps };
6
+ export declare const ThreadRoot: ({ children, ...viewProps }: ThreadRootProps) => import("react").JSX.Element;
10
7
  //# sourceMappingURL=ThreadRoot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadRoot.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"mappings":";;;KAGY,kBAAkB;EAC5B,UAAU;;cAGC,eAAc,aAAA,aAA4B,oCAAe,IAAA"}
1
+ {"version":3,"file":"ThreadRoot.d.ts","sourceRoot":"","sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG;IACxC,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,4BAA4B,eAAe,gCAErE,CAAC"}
@@ -1,22 +1,19 @@
1
- import { PressableProps } from "react-native";
2
- //#region src/primitives/thread/ThreadSuggestion.d.ts
3
- type ThreadSuggestionProps = Omit<PressableProps, "onPress" | "children"> & {
4
- children: PressableProps["children"];
5
- /** The suggestion prompt. */
6
- prompt: string;
7
- /**
8
- * When true, automatically sends the message.
9
- * When false, replaces or appends the composer text with the suggestion.
10
- */
11
- send?: boolean | undefined;
12
- /**
13
- * Whether to clear the composer. When send is false, determines if composer
14
- * text is replaced (true) or appended (false).
15
- * @default true
16
- */
17
- clearComposer?: boolean | undefined;
1
+ import { type PressableProps } from "react-native";
2
+ export type ThreadSuggestionProps = Omit<PressableProps, "onPress" | "children"> & {
3
+ children: PressableProps["children"];
4
+ /** The suggestion prompt. */
5
+ prompt: string;
6
+ /**
7
+ * When true, automatically sends the message.
8
+ * When false, replaces or appends the composer text with the suggestion.
9
+ */
10
+ send?: boolean | undefined;
11
+ /**
12
+ * Whether to clear the composer. When send is false, determines if composer
13
+ * text is replaced (true) or appended (false).
14
+ * @default true
15
+ */
16
+ clearComposer?: boolean | undefined;
18
17
  };
19
- declare const ThreadSuggestion: ({ children, prompt, send, clearComposer, disabled: disabledProp, ...pressableProps }: ThreadSuggestionProps) => import("react").JSX.Element;
20
- //#endregion
21
- export { ThreadSuggestion, ThreadSuggestionProps };
18
+ export declare const ThreadSuggestion: ({ children, prompt, send, clearComposer, disabled: disabledProp, ...pressableProps }: ThreadSuggestionProps) => import("react").JSX.Element;
22
19
  //# sourceMappingURL=ThreadSuggestion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadSuggestion.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadSuggestion.tsx"],"mappings":";;KAGY,wBAAwB,KAClC;EAGA,UAAU;;EAEV;;;;;EAKA;;;;;;EAMA;;cAGW,qBAAoB,UAAA,QAAA,MAAA,eAAA,UAAA,iBAAA,kBAO9B,0CAAqB,IAAA"}
1
+ {"version":3,"file":"ThreadSuggestion.d.ts","sourceRoot":"","sources":["../../../src/primitives/thread/ThreadSuggestion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9D,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,cAAc,EACd,SAAS,GAAG,UAAU,CACvB,GAAG;IACF,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACrC,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,sFAO9B,qBAAqB,gCAiBvB,CAAC"}
@@ -1,12 +1,9 @@
1
- import { ThreadRoot, ThreadRootProps } from "./thread/ThreadRoot.js";
2
- import { ThreadMessages, ThreadMessagesFlatList, ThreadMessagesFlatListProps, ThreadMessagesProps } from "./thread/ThreadMessages.js";
3
- import { ThreadEmpty, ThreadEmptyProps } from "./thread/ThreadEmpty.js";
4
- import { ThreadIf, ThreadIfProps } from "./thread/ThreadIf.js";
5
- import { ThreadSuggestion, ThreadSuggestionProps } from "./thread/ThreadSuggestion.js";
6
- import { ThreadPrimitiveMessageByIndex as MessageByIndex, ThreadPrimitiveSuggestionByIndex as SuggestionByIndex, ThreadPrimitiveSuggestions as Suggestions, ThreadPrimitiveUnstable_MessageById as Unstable_MessageById } from "@assistant-ui/core/react";
7
- declare namespace thread_d_exports {
8
- export { ThreadEmpty as Empty, ThreadEmptyProps as EmptyProps, ThreadIf as If, ThreadIfProps as IfProps, MessageByIndex, ThreadMessages as Messages, ThreadMessagesFlatList as MessagesFlatList, ThreadMessagesFlatListProps as MessagesFlatListProps, ThreadMessagesProps as MessagesProps, ThreadRoot as Root, ThreadRootProps as RootProps, ThreadSuggestion as Suggestion, SuggestionByIndex, ThreadSuggestionProps as SuggestionProps, Suggestions, Unstable_MessageById };
9
- }
10
- //#endregion
11
- export { ThreadEmpty as Empty, type ThreadEmptyProps as EmptyProps, ThreadIf as If, type ThreadIfProps as IfProps, MessageByIndex, ThreadMessages as Messages, ThreadMessagesFlatList as MessagesFlatList, type ThreadMessagesFlatListProps as MessagesFlatListProps, type ThreadMessagesProps as MessagesProps, ThreadRoot as Root, type ThreadRootProps as RootProps, ThreadSuggestion as Suggestion, SuggestionByIndex, type ThreadSuggestionProps as SuggestionProps, Suggestions, Unstable_MessageById, thread_d_exports };
1
+ export { ThreadRoot as Root, type ThreadRootProps as RootProps, } from "./thread/ThreadRoot.js";
2
+ export { ThreadMessagesFlatList as MessagesFlatList, type ThreadMessagesFlatListProps as MessagesFlatListProps, ThreadMessages as Messages, type ThreadMessagesProps as MessagesProps, } from "./thread/ThreadMessages.js";
3
+ export { ThreadPrimitiveMessageByIndex as MessageByIndex } from "@assistant-ui/core/react";
4
+ export { ThreadPrimitiveUnstable_MessageById as Unstable_MessageById } from "@assistant-ui/core/react";
5
+ export { ThreadEmpty as Empty, type ThreadEmptyProps as EmptyProps, } from "./thread/ThreadEmpty.js";
6
+ export { ThreadIf as If, type ThreadIfProps as IfProps, } from "./thread/ThreadIf.js";
7
+ export { ThreadSuggestion as Suggestion, type ThreadSuggestionProps as SuggestionProps, } from "./thread/ThreadSuggestion.js";
8
+ export { ThreadPrimitiveSuggestions as Suggestions, ThreadPrimitiveSuggestionByIndex as SuggestionByIndex, } from "@assistant-ui/core/react";
12
9
  //# sourceMappingURL=thread.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread.d.ts","names":[],"sources":["../../src/primitives/thread.ts"],"mappings":""}
1
+ {"version":3,"file":"thread.d.ts","sourceRoot":"","sources":["../../src/primitives/thread.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,IAAI,IAAI,EAClB,KAAK,eAAe,IAAI,SAAS,GAClC,+BAA4B;AAC7B,OAAO,EACL,sBAAsB,IAAI,gBAAgB,EAC1C,KAAK,2BAA2B,IAAI,qBAAqB,EACzD,cAAc,IAAI,QAAQ,EAC1B,KAAK,mBAAmB,IAAI,aAAa,GAC1C,mCAAgC;AACjC,OAAO,EAAE,6BAA6B,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,mCAAmC,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACvG,OAAO,EACL,WAAW,IAAI,KAAK,EACpB,KAAK,gBAAgB,IAAI,UAAU,GACpC,gCAA6B;AAC9B,OAAO,EACL,QAAQ,IAAI,EAAE,EACd,KAAK,aAAa,IAAI,OAAO,GAC9B,6BAA0B;AAC3B,OAAO,EACL,gBAAgB,IAAI,UAAU,EAC9B,KAAK,qBAAqB,IAAI,eAAe,GAC9C,qCAAkC;AACnC,OAAO,EACL,0BAA0B,IAAI,WAAW,EACzC,gCAAgC,IAAI,iBAAiB,GACtD,MAAM,0BAA0B,CAAC"}
@@ -1,13 +1,10 @@
1
- import { FlatListProps } from "react-native";
2
- import { ReactElement } from "react";
3
- //#region src/primitives/threadList/ThreadListItems.d.ts
4
- type ThreadListItemsProps = Omit<FlatListProps<string>, "data" | "renderItem"> & {
5
- renderItem: (props: {
6
- threadId: string;
7
- index: number;
8
- }) => ReactElement;
1
+ import { type ReactElement } from "react";
2
+ import { type FlatListProps } from "react-native";
3
+ export type ThreadListItemsProps = Omit<FlatListProps<string>, "data" | "renderItem"> & {
4
+ renderItem: (props: {
5
+ threadId: string;
6
+ index: number;
7
+ }) => ReactElement;
9
8
  };
10
- declare const ThreadListItems: ({ renderItem, ...flatListProps }: ThreadListItemsProps) => import("react").JSX.Element;
11
- //#endregion
12
- export { ThreadListItems, ThreadListItemsProps };
9
+ export declare const ThreadListItems: ({ renderItem, ...flatListProps }: ThreadListItemsProps) => import("react").JSX.Element;
13
10
  //# sourceMappingURL=ThreadListItems.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadListItems.d.ts","names":[],"sources":["../../../src/primitives/threadList/ThreadListItems.tsx"],"mappings":";;;KAKY,uBAAuB,KACjC;EAGA,aAAa;IAAS;IAAkB;QAAoB;;cAGjD,oBAAmB,eAAA,iBAG7B,yCAAoB,IAAA"}
1
+ {"version":3,"file":"ThreadListItems.d.ts","sourceRoot":"","sources":["../../../src/primitives/threadList/ThreadListItems.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,OAAO,CAAC;AACvD,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAI5D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,aAAa,CAAC,MAAM,CAAC,EACrB,MAAM,GAAG,YAAY,CACtB,GAAG;IACF,UAAU,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,YAAY,CAAC;CAC1E,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,kCAG7B,oBAAoB,gCAwBtB,CAAC"}
@@ -1,5 +1,5 @@
1
- import { useAuiState } from "@assistant-ui/store";
2
1
  import { ThreadListItemByIndexProvider } from "@assistant-ui/core/react";
2
+ import { useAuiState } from "@assistant-ui/store";
3
3
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
4
4
  import { FlatList } from "react-native";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -1,12 +1,9 @@
1
- import { PressableProps, PressableStateCallbackType } from "react-native";
2
- import { ReactNode } from "react";
3
- //#region src/primitives/threadList/ThreadListNew.d.ts
4
- type ThreadListNewProps = Omit<PressableProps, "onPress" | "children"> & {
5
- children: ReactNode | ((state: PressableStateCallbackType & {
6
- isActive: boolean;
7
- }) => ReactNode);
1
+ import type { ReactNode } from "react";
2
+ import { type PressableProps, type PressableStateCallbackType } from "react-native";
3
+ export type ThreadListNewProps = Omit<PressableProps, "onPress" | "children"> & {
4
+ children: ReactNode | ((state: PressableStateCallbackType & {
5
+ isActive: boolean;
6
+ }) => ReactNode);
8
7
  };
9
- declare const ThreadListNew: ({ children, accessibilityState, ...pressableProps }: ThreadListNewProps) => import("react").JSX.Element;
10
- //#endregion
11
- export { ThreadListNew, ThreadListNewProps };
8
+ export declare const ThreadListNew: ({ children, accessibilityState, ...pressableProps }: ThreadListNewProps) => import("react").JSX.Element;
12
9
  //# sourceMappingURL=ThreadListNew.d.ts.map