@assistant-ui/react-native 0.1.41 → 0.1.43
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.
- package/dist/index.d.ts +5 -4
- package/dist/index.js +4 -3
- package/dist/primitives/actionBar/ActionBarCopy.d.ts +3 -3
- package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarCopy.js +23 -19
- package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarEdit.d.ts +7 -5
- package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarEdit.js +21 -11
- package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +3 -3
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +26 -16
- package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +3 -3
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +26 -16
- package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarReload.d.ts +7 -5
- package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
- package/dist/primitives/actionBar/ActionBarReload.js +21 -11
- package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
- package/dist/primitives/actionBar/ActionBarSpeak.d.ts +14 -0
- package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarSpeak.js +61 -0
- package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -0
- package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +14 -0
- package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -0
- package/dist/primitives/actionBar/ActionBarStopSpeaking.js +61 -0
- package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -0
- package/dist/primitives/actionBar.d.ts +4 -2
- package/dist/primitives/actionBar.js +6 -2
- package/dist/primitives/actionBar.js.map +1 -1
- package/dist/primitives/attachment/AttachmentName.d.ts +2 -3
- package/dist/primitives/attachment/AttachmentName.d.ts.map +1 -1
- package/dist/primitives/attachment/AttachmentRemove.d.ts +2 -3
- package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -1
- package/dist/primitives/attachment/AttachmentRoot.d.ts +2 -3
- package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -1
- package/dist/primitives/attachment/AttachmentThumb.d.ts +2 -3
- package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerCount.d.ts +2 -3
- package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNext.d.ts +7 -5
- package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNext.js +21 -11
- package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerNumber.d.ts +2 -3
- package/dist/primitives/branchPicker/BranchPickerNumber.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +7 -5
- package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
- package/dist/primitives/branchPicker/BranchPickerPrevious.js +21 -11
- package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts +2 -3
- package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts.map +1 -1
- package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts +2 -3
- package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerAddAttachment.d.ts +4 -7
- package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerAddAttachment.js +2 -4
- package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
- package/dist/primitives/composer/ComposerAttachments.d.ts +4 -5
- package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerCancel.d.ts +2 -3
- package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerInput.d.ts +2 -3
- package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerQuote.d.ts +2 -3
- package/dist/primitives/composer/ComposerQuote.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerQuoteDismiss.d.ts +2 -3
- package/dist/primitives/composer/ComposerQuoteDismiss.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerQuoteText.d.ts +2 -3
- package/dist/primitives/composer/ComposerQuoteText.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerRoot.d.ts +2 -3
- package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -1
- package/dist/primitives/composer/ComposerSend.d.ts +2 -3
- package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
- package/dist/primitives/error/ErrorMessage.d.ts +2 -3
- package/dist/primitives/error/ErrorMessage.d.ts.map +1 -1
- package/dist/primitives/error/ErrorRoot.d.ts +2 -3
- package/dist/primitives/error/ErrorRoot.d.ts.map +1 -1
- package/dist/primitives/message/MessageAttachments.d.ts +4 -5
- package/dist/primitives/message/MessageAttachments.d.ts.map +1 -1
- package/dist/primitives/message/MessageContent.d.ts +2 -3
- package/dist/primitives/message/MessageContent.d.ts.map +1 -1
- package/dist/primitives/message/MessageIf.d.ts +2 -3
- package/dist/primitives/message/MessageIf.d.ts.map +1 -1
- package/dist/primitives/message/MessageParts.d.ts +3 -3
- package/dist/primitives/message/MessageParts.d.ts.map +1 -1
- package/dist/primitives/message/MessageRoot.d.ts +2 -3
- package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
- package/dist/primitives/messagePart/MessagePartImage.d.ts +11 -0
- package/dist/primitives/messagePart/MessagePartImage.d.ts.map +1 -0
- package/dist/primitives/messagePart/MessagePartImage.js +39 -0
- package/dist/primitives/messagePart/MessagePartImage.js.map +1 -0
- package/dist/primitives/messagePart/MessagePartInProgress.d.ts +2 -0
- package/dist/primitives/messagePart/MessagePartInProgress.js +2 -0
- package/dist/primitives/messagePart/MessagePartText.d.ts +11 -0
- package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -0
- package/dist/primitives/messagePart/MessagePartText.js +32 -0
- package/dist/primitives/messagePart/MessagePartText.js.map +1 -0
- package/dist/primitives/messagePart.d.ts +10 -0
- package/dist/primitives/messagePart.d.ts.map +1 -0
- package/dist/primitives/messagePart.js +16 -0
- package/dist/primitives/messagePart.js.map +1 -0
- package/dist/primitives/queueItem/QueueItemRemove.d.ts +2 -3
- package/dist/primitives/queueItem/QueueItemRemove.d.ts.map +1 -1
- package/dist/primitives/queueItem/QueueItemSteer.d.ts +2 -3
- package/dist/primitives/queueItem/QueueItemSteer.d.ts.map +1 -1
- package/dist/primitives/queueItem/QueueItemText.d.ts +2 -3
- package/dist/primitives/queueItem/QueueItemText.d.ts.map +1 -1
- package/dist/primitives/suggestion/SuggestionDescription.d.ts +2 -3
- package/dist/primitives/suggestion/SuggestionDescription.d.ts.map +1 -1
- package/dist/primitives/suggestion/SuggestionTitle.d.ts +2 -3
- package/dist/primitives/suggestion/SuggestionTitle.d.ts.map +1 -1
- package/dist/primitives/suggestion/SuggestionTrigger.d.ts +2 -3
- package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadEmpty.d.ts +2 -3
- package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadIf.d.ts +2 -3
- package/dist/primitives/thread/ThreadIf.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadMessages.d.ts +9 -5
- package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadMessages.js +244 -171
- package/dist/primitives/thread/ThreadMessages.js.map +1 -1
- package/dist/primitives/thread/ThreadRoot.d.ts +2 -3
- package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
- package/dist/primitives/thread/ThreadSuggestion.d.ts +2 -3
- package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
- package/dist/primitives/threadList/ThreadListItems.d.ts +2 -3
- package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -1
- package/dist/primitives/threadList/ThreadListNew.d.ts +2 -3
- package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
- package/dist/primitives/threadList/ThreadListRoot.d.ts +2 -3
- package/dist/primitives/threadList/ThreadListRoot.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +2 -3
- package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +2 -3
- package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +2 -3
- package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +2 -3
- package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -1
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +2 -3
- package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -1
- package/package.json +13 -11
- package/src/index.ts +30 -0
- package/src/primitives/accessibilityRole.test.tsx +20 -0
- package/src/primitives/actionBar/ActionBar.test.tsx +299 -0
- package/src/primitives/actionBar/ActionBarCopy.tsx +8 -3
- package/src/primitives/actionBar/ActionBarEdit.tsx +16 -4
- package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +14 -3
- package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +14 -3
- package/src/primitives/actionBar/ActionBarReload.tsx +16 -4
- package/src/primitives/actionBar/ActionBarSpeak.tsx +42 -0
- package/src/primitives/actionBar/ActionBarStopSpeaking.tsx +42 -0
- package/src/primitives/actionBar.ts +8 -0
- package/src/primitives/branchPicker/BranchPickerNext.test.tsx +52 -3
- package/src/primitives/branchPicker/BranchPickerNext.tsx +16 -4
- package/src/primitives/branchPicker/BranchPickerPrevious.test.tsx +52 -6
- package/src/primitives/branchPicker/BranchPickerPrevious.tsx +16 -4
- package/src/primitives/composer/ComposerAddAttachment.tsx +3 -8
- package/src/primitives/messagePart/MessagePartImage.test.tsx +91 -0
- package/src/primitives/messagePart/MessagePartImage.tsx +33 -0
- package/src/primitives/messagePart/MessagePartInProgress.ts +1 -0
- package/src/primitives/messagePart/MessagePartText.test.tsx +80 -0
- package/src/primitives/messagePart/MessagePartText.tsx +36 -0
- package/src/primitives/messagePart.ts +10 -0
- package/src/primitives/thread/ThreadMessages.test.tsx +335 -54
- package/src/primitives/thread/ThreadMessages.tsx +104 -26
|
@@ -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","t3","t4","undefined","t5","Symbol","for","contentHeight","viewportHeight","scrollY","metricsRef","isAtBottomRef","lastScrollEventYRef","initializeScrollRequestedRef","pendingScrollToBottomRef","t6","updateIsAtBottom","t7","animated","contentHeight_0","viewportHeight_0","Math","max","scrollToEnd","scrollToBottom","t8","event","wasAtBottom","previousViewportHeight","viewportHeight_1","nativeEvent","layout","height","pending","handleLayout","t9","event_0","contentOffset","contentSize","layoutMeasurement","previousEventY","wasPinnedToBottom","y","upwardMove","handleScroll","t10","_width","metrics","previousContentHeight","wasAtBottom_0","pendingScroll","handleContentSizeChange","t11","t12","t13","t14","t15","ThreadMessagesFlatList","flatListProps","onContentSizeChange","onLayout","onScroll","scrollEventThrottle","messages","_temp3","length","handleAutoScrollContentSizeChange","handleAutoScrollLayout","handleAutoScrollScroll","renderItem","keyExtractor","_temp4","scrollTracking","width","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 autoScroll = true,\n scrollToBottomOnRunStart = true,\n scrollToBottomOnInitialize = true,\n scrollToBottomOnThreadSwitch = true,\n}: {\n flatListRef: RefObject<FlatList<ThreadMessage> | null>;\n hasMessages: boolean;\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 lastScrollEventYRef = useRef(0);\n const initializeScrollRequestedRef = useRef(false);\n const pendingScrollToBottomRef = useRef<false | { animated: boolean }>(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 metricsRef.current.scrollY = Math.max(0, contentHeight - viewportHeight);\n isAtBottomRef.current = true;\n flatListRef.current?.scrollToEnd({ 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 = event.nativeEvent.layout.height;\n metricsRef.current.viewportHeight = viewportHeight;\n updateIsAtBottom();\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 const pending = pendingScrollToBottomRef.current;\n scrollToBottom(pending ? pending.animated : false);\n } else {\n isAtBottomRef.current = true;\n }\n },\n [autoScroll, scrollToBottom, updateIsAtBottom],\n );\n\n const handleScroll = useCallback(\n (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const { contentOffset, contentSize, layoutMeasurement } =\n event.nativeEvent;\n const previousEventY = lastScrollEventYRef.current;\n const wasPinnedToBottom = isAtBottomRef.current;\n lastScrollEventYRef.current = contentOffset.y;\n metricsRef.current = {\n contentHeight: contentSize.height,\n viewportHeight: layoutMeasurement.height,\n scrollY: contentOffset.y,\n };\n updateIsAtBottom();\n const upwardMove = contentOffset.y < previousEventY;\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 [updateIsAtBottom],\n );\n\n const handleContentSizeChange = useCallback(\n (_width: number, height: number) => {\n const metrics = metricsRef.current;\n const previousContentHeight = metrics.contentHeight;\n const wasAtBottom = isAtBottomRef.current;\n metrics.contentHeight = height;\n updateIsAtBottom();\n\n // FlatList.scrollToEnd is a no-op before the list has measured, so the\n // initialize and thread-switch scrolls land on the next content-size\n // event, once real metrics exist.\n const pendingScroll = pendingScrollToBottomRef.current;\n if (pendingScroll) {\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 (height <= previousContentHeight) return;\n\n scrollToBottom(false);\n },\n [autoScroll, 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 = { animated: false };\n scrollToBottom(false);\n }, [hasMessages, scrollToBottom, scrollToBottomOnInitialize]);\n\n useAuiEvent(\"thread.runStart\", () => {\n if (!scrollToBottomOnRunStart) return;\n pendingScrollToBottomRef.current = { animated: true };\n scrollToBottom(true);\n });\n\n useAuiEvent(\"threads.selectionChanged\", () => {\n if (!scrollToBottomOnThreadSwitch) return;\n initializeScrollRequestedRef.current = false;\n lastScrollEventYRef.current = 0;\n pendingScrollToBottomRef.current = { animated: false };\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 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 {...(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","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","history","hasMore","isLoadingMore","loadMore","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","onStartReached","onStartReachedThreshold","scrollEventThrottle","messages","_temp3","length","handleAutoScrollContentSizeChange","handleAutoScrollLayout","handleAutoScrollScroll","renderItem","keyExtractor","_temp4","scrollTracking","canLoadMore","info","handleStartReached","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 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 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 = history?.hasMore && !history.isLoadingMore;\n\n const handleStartReached = useCallback<\n NonNullable<FlatListProps<ThreadMessage>[\"onStartReached\"]>\n >(\n (info) => {\n onStartReached?.(info);\n history?.loadMore();\n },\n [history, 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,9 @@
|
|
|
1
1
|
import { ViewProps } from "react-native";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
//#region src/primitives/thread/ThreadRoot.d.ts
|
|
4
|
-
type ThreadRootProps = ViewProps & {
|
|
4
|
+
export type ThreadRootProps = ViewProps & {
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
};
|
|
7
|
-
declare const ThreadRoot: ({ children, ...viewProps }: ThreadRootProps) => import("react").JSX.Element;
|
|
7
|
+
export declare const ThreadRoot: ({ children, ...viewProps }: ThreadRootProps) => import("react").JSX.Element;
|
|
8
8
|
//#endregion
|
|
9
|
-
export { ThreadRoot, ThreadRootProps };
|
|
10
9
|
//# sourceMappingURL=ThreadRoot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadRoot.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ThreadRoot.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"mappings":";;;YAGY,kBAAkB;EAC5B,UAAU;;qBAGC,eAAc,aAAA,aAA4B,oCAAe,IAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PressableProps } from "react-native";
|
|
2
2
|
//#region src/primitives/thread/ThreadSuggestion.d.ts
|
|
3
|
-
type ThreadSuggestionProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
3
|
+
export type ThreadSuggestionProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
4
4
|
children: PressableProps["children"];
|
|
5
5
|
/** The suggestion prompt. */
|
|
6
6
|
prompt: string;
|
|
@@ -16,7 +16,6 @@ type ThreadSuggestionProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
|
16
16
|
*/
|
|
17
17
|
clearComposer?: boolean | undefined;
|
|
18
18
|
};
|
|
19
|
-
declare const ThreadSuggestion: ({ children, prompt, send, clearComposer, disabled: disabledProp, ...pressableProps }: ThreadSuggestionProps) => import("react").JSX.Element;
|
|
19
|
+
export declare const ThreadSuggestion: ({ children, prompt, send, clearComposer, disabled: disabledProp, ...pressableProps }: ThreadSuggestionProps) => import("react").JSX.Element;
|
|
20
20
|
//#endregion
|
|
21
|
-
export { ThreadSuggestion, ThreadSuggestionProps };
|
|
22
21
|
//# sourceMappingURL=ThreadSuggestion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadSuggestion.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadSuggestion.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ThreadSuggestion.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadSuggestion.tsx"],"mappings":";;YAGY,wBAAwB,KAClC;EAGA,UAAU;;EAEV;;;;;EAKA;;;;;;EAMA;;qBAGW,qBAAoB,UAAA,QAAA,MAAA,eAAA,UAAA,iBAAA,kBAO9B,0CAAqB,IAAA"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { FlatListProps } from "react-native";
|
|
2
2
|
import { ReactElement } from "react";
|
|
3
3
|
//#region src/primitives/threadList/ThreadListItems.d.ts
|
|
4
|
-
type ThreadListItemsProps = Omit<FlatListProps<string>, "data" | "renderItem"> & {
|
|
4
|
+
export type ThreadListItemsProps = Omit<FlatListProps<string>, "data" | "renderItem"> & {
|
|
5
5
|
renderItem: (props: {
|
|
6
6
|
threadId: string;
|
|
7
7
|
index: number;
|
|
8
8
|
}) => ReactElement;
|
|
9
9
|
};
|
|
10
|
-
declare const ThreadListItems: ({ renderItem, ...flatListProps }: ThreadListItemsProps) => import("react").JSX.Element;
|
|
10
|
+
export declare const ThreadListItems: ({ renderItem, ...flatListProps }: ThreadListItemsProps) => import("react").JSX.Element;
|
|
11
11
|
//#endregion
|
|
12
|
-
export { ThreadListItems, ThreadListItemsProps };
|
|
13
12
|
//# sourceMappingURL=ThreadListItems.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItems.d.ts","names":[],"sources":["../../../src/primitives/threadList/ThreadListItems.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ThreadListItems.d.ts","names":[],"sources":["../../../src/primitives/threadList/ThreadListItems.tsx"],"mappings":";;;YAKY,uBAAuB,KACjC;EAGA,aAAa;IAAS;IAAkB;QAAoB;;qBAGjD,oBAAmB,eAAA,iBAG7B,yCAAoB,IAAA"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { PressableProps, PressableStateCallbackType } from "react-native";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
//#region src/primitives/threadList/ThreadListNew.d.ts
|
|
4
|
-
type ThreadListNewProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
4
|
+
export type ThreadListNewProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
5
5
|
children: ReactNode | ((state: PressableStateCallbackType & {
|
|
6
6
|
isActive: boolean;
|
|
7
7
|
}) => ReactNode);
|
|
8
8
|
};
|
|
9
|
-
declare const ThreadListNew: ({ children, accessibilityState, ...pressableProps }: ThreadListNewProps) => import("react").JSX.Element;
|
|
9
|
+
export declare const ThreadListNew: ({ children, accessibilityState, ...pressableProps }: ThreadListNewProps) => import("react").JSX.Element;
|
|
10
10
|
//#endregion
|
|
11
|
-
export { ThreadListNew, ThreadListNewProps };
|
|
12
11
|
//# sourceMappingURL=ThreadListNew.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListNew.d.ts","names":[],"sources":["../../../src/primitives/threadList/ThreadListNew.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ThreadListNew.d.ts","names":[],"sources":["../../../src/primitives/threadList/ThreadListNew.tsx"],"mappings":";;;YASY,qBAAqB,KAC/B;EAGA,UACI,cAEE,OAAO;IAA+B;QACnC;;qBAGE,kBAAiB,UAAA,uBAAA,kBAI3B,uCAAkB,IAAA"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { ViewProps } from "react-native";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
//#region src/primitives/threadList/ThreadListRoot.d.ts
|
|
4
|
-
type ThreadListRootProps = ViewProps & {
|
|
4
|
+
export type ThreadListRootProps = ViewProps & {
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
};
|
|
7
|
-
declare const ThreadListRoot: ({ children, ...viewProps }: ThreadListRootProps) => import("react").JSX.Element;
|
|
7
|
+
export declare const ThreadListRoot: ({ children, ...viewProps }: ThreadListRootProps) => import("react").JSX.Element;
|
|
8
8
|
//#endregion
|
|
9
|
-
export { ThreadListRoot, ThreadListRootProps };
|
|
10
9
|
//# sourceMappingURL=ThreadListRoot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListRoot.d.ts","names":[],"sources":["../../../src/primitives/threadList/ThreadListRoot.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ThreadListRoot.d.ts","names":[],"sources":["../../../src/primitives/threadList/ThreadListRoot.tsx"],"mappings":";;;YAGY,sBAAsB;EAChC,UAAU;;qBAGC,mBAAkB,aAAA,aAG5B,wCAAmB,IAAA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { PressableProps } from "react-native";
|
|
2
2
|
//#region src/primitives/threadListItem/ThreadListItemArchive.d.ts
|
|
3
|
-
type ThreadListItemArchiveProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
3
|
+
export type ThreadListItemArchiveProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
4
4
|
children: PressableProps["children"];
|
|
5
5
|
};
|
|
6
|
-
declare const ThreadListItemArchive: ({ children, ...pressableProps }: ThreadListItemArchiveProps) => import("react").JSX.Element;
|
|
6
|
+
export declare const ThreadListItemArchive: ({ children, ...pressableProps }: ThreadListItemArchiveProps) => import("react").JSX.Element;
|
|
7
7
|
//#endregion
|
|
8
|
-
export { ThreadListItemArchive, ThreadListItemArchiveProps };
|
|
9
8
|
//# sourceMappingURL=ThreadListItemArchive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItemArchive.d.ts","names":[],"sources":["../../../src/primitives/threadListItem/ThreadListItemArchive.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ThreadListItemArchive.d.ts","names":[],"sources":["../../../src/primitives/threadListItem/ThreadListItemArchive.tsx"],"mappings":";;YAGY,6BAA6B,KACvC;EAGA,UAAU;;qBAGC,0BAAyB,aAAA,kBAGnC,+CAA0B,IAAA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { PressableProps } from "react-native";
|
|
2
2
|
//#region src/primitives/threadListItem/ThreadListItemDelete.d.ts
|
|
3
|
-
type ThreadListItemDeleteProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
3
|
+
export type ThreadListItemDeleteProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
4
4
|
children: PressableProps["children"];
|
|
5
5
|
};
|
|
6
|
-
declare const ThreadListItemDelete: ({ children, ...pressableProps }: ThreadListItemDeleteProps) => import("react").JSX.Element;
|
|
6
|
+
export declare const ThreadListItemDelete: ({ children, ...pressableProps }: ThreadListItemDeleteProps) => import("react").JSX.Element;
|
|
7
7
|
//#endregion
|
|
8
|
-
export { ThreadListItemDelete, ThreadListItemDeleteProps };
|
|
9
8
|
//# sourceMappingURL=ThreadListItemDelete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItemDelete.d.ts","names":[],"sources":["../../../src/primitives/threadListItem/ThreadListItemDelete.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ThreadListItemDelete.d.ts","names":[],"sources":["../../../src/primitives/threadListItem/ThreadListItemDelete.tsx"],"mappings":";;YAGY,4BAA4B,KACtC;EAGA,UAAU;;qBAGC,yBAAwB,aAAA,kBAGlC,8CAAyB,IAAA"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { ViewProps } from "react-native";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
//#region src/primitives/threadListItem/ThreadListItemRoot.d.ts
|
|
4
|
-
type ThreadListItemRootProps = ViewProps & {
|
|
4
|
+
export type ThreadListItemRootProps = ViewProps & {
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
};
|
|
7
|
-
declare const ThreadListItemRoot: ({ children, ...viewProps }: ThreadListItemRootProps) => import("react").JSX.Element;
|
|
7
|
+
export declare const ThreadListItemRoot: ({ children, ...viewProps }: ThreadListItemRootProps) => import("react").JSX.Element;
|
|
8
8
|
//#endregion
|
|
9
|
-
export { ThreadListItemRoot, ThreadListItemRootProps };
|
|
10
9
|
//# sourceMappingURL=ThreadListItemRoot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItemRoot.d.ts","names":[],"sources":["../../../src/primitives/threadListItem/ThreadListItemRoot.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ThreadListItemRoot.d.ts","names":[],"sources":["../../../src/primitives/threadListItem/ThreadListItemRoot.tsx"],"mappings":";;;YAGY,0BAA0B;EACpC,UAAU;;qBAGC,uBAAsB,aAAA,aAGhC,4CAAuB,IAAA"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { PressableProps, PressableStateCallbackType } from "react-native";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
//#region src/primitives/threadListItem/ThreadListItemTrigger.d.ts
|
|
4
|
-
type ThreadListItemTriggerProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
4
|
+
export type ThreadListItemTriggerProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
5
5
|
children: ReactNode | ((state: PressableStateCallbackType & {
|
|
6
6
|
isActive: boolean;
|
|
7
7
|
}) => ReactNode);
|
|
8
8
|
};
|
|
9
|
-
declare const ThreadListItemTrigger: ({ children, accessibilityState, ...pressableProps }: ThreadListItemTriggerProps) => import("react").JSX.Element;
|
|
9
|
+
export declare const ThreadListItemTrigger: ({ children, accessibilityState, ...pressableProps }: ThreadListItemTriggerProps) => import("react").JSX.Element;
|
|
10
10
|
//#endregion
|
|
11
|
-
export { ThreadListItemTrigger, ThreadListItemTriggerProps };
|
|
12
11
|
//# sourceMappingURL=ThreadListItemTrigger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItemTrigger.d.ts","names":[],"sources":["../../../src/primitives/threadListItem/ThreadListItemTrigger.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ThreadListItemTrigger.d.ts","names":[],"sources":["../../../src/primitives/threadListItem/ThreadListItemTrigger.tsx"],"mappings":";;;YASY,6BAA6B,KACvC;EAGA,UACI,cAEE,OAAO;IAA+B;QACnC;;qBAGE,0BAAyB,UAAA,uBAAA,kBAInC,+CAA0B,IAAA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { PressableProps } from "react-native";
|
|
2
2
|
//#region src/primitives/threadListItem/ThreadListItemUnarchive.d.ts
|
|
3
|
-
type ThreadListItemUnarchiveProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
3
|
+
export type ThreadListItemUnarchiveProps = Omit<PressableProps, "onPress" | "children"> & {
|
|
4
4
|
children: PressableProps["children"];
|
|
5
5
|
};
|
|
6
|
-
declare const ThreadListItemUnarchive: ({ children, ...pressableProps }: ThreadListItemUnarchiveProps) => import("react").JSX.Element;
|
|
6
|
+
export declare const ThreadListItemUnarchive: ({ children, ...pressableProps }: ThreadListItemUnarchiveProps) => import("react").JSX.Element;
|
|
7
7
|
//#endregion
|
|
8
|
-
export { ThreadListItemUnarchive, ThreadListItemUnarchiveProps };
|
|
9
8
|
//# sourceMappingURL=ThreadListItemUnarchive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadListItemUnarchive.d.ts","names":[],"sources":["../../../src/primitives/threadListItem/ThreadListItemUnarchive.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ThreadListItemUnarchive.d.ts","names":[],"sources":["../../../src/primitives/threadListItem/ThreadListItemUnarchive.tsx"],"mappings":";;YAGY,+BAA+B,KACzC;EAGA,UAAU;;qBAGC,4BAA2B,aAAA,kBAGrC,iDAA4B,IAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@assistant-ui/react-native",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.43",
|
|
4
4
|
"description": "React Native bindings for assistant-ui",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"assistant",
|
|
@@ -31,10 +31,11 @@
|
|
|
31
31
|
],
|
|
32
32
|
"sideEffects": false,
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@assistant-ui/core": "^0.3.
|
|
35
|
-
"@assistant-ui/store": "^0.3.
|
|
36
|
-
"@assistant-ui/tap": "^0.9.
|
|
37
|
-
"assistant-
|
|
34
|
+
"@assistant-ui/core": "^0.3.20",
|
|
35
|
+
"@assistant-ui/store": "^0.3.14",
|
|
36
|
+
"@assistant-ui/tap": "^0.9.18",
|
|
37
|
+
"assistant-cloud": "^0.2.2",
|
|
38
|
+
"assistant-stream": "^0.3.44"
|
|
38
39
|
},
|
|
39
40
|
"peerDependencies": {
|
|
40
41
|
"@types/react": "*",
|
|
@@ -47,16 +48,16 @@
|
|
|
47
48
|
}
|
|
48
49
|
},
|
|
49
50
|
"devDependencies": {
|
|
50
|
-
"@assistant-ui/x-buildutils": "0.0.
|
|
51
|
+
"@assistant-ui/x-buildutils": "0.0.28",
|
|
51
52
|
"@babel/core": "^7.29.7",
|
|
52
|
-
"@types/react": "^19.
|
|
53
|
-
"@types/react-dom": "^19.
|
|
53
|
+
"@types/react": "^19.3.0",
|
|
54
|
+
"@types/react-dom": "^19.3.0",
|
|
54
55
|
"jsdom": "^30.0.1",
|
|
55
|
-
"react": "^19.
|
|
56
|
-
"react-dom": "^19.
|
|
56
|
+
"react": "^19.3.0",
|
|
57
|
+
"react-dom": "^19.3.0",
|
|
57
58
|
"react-native": "^0.87.1",
|
|
58
59
|
"react-native-web": "^0.21.2",
|
|
59
|
-
"vitest": "^
|
|
60
|
+
"vitest": "^5.0.1"
|
|
60
61
|
},
|
|
61
62
|
"publishConfig": {
|
|
62
63
|
"access": "public",
|
|
@@ -74,6 +75,7 @@
|
|
|
74
75
|
"scripts": {
|
|
75
76
|
"build": "aui-build",
|
|
76
77
|
"test": "vitest run",
|
|
78
|
+
"typecheck": "tsc --noEmit",
|
|
77
79
|
"test:watch": "vitest"
|
|
78
80
|
}
|
|
79
81
|
}
|
package/src/index.ts
CHANGED
|
@@ -94,6 +94,7 @@ export type {
|
|
|
94
94
|
AttachmentState,
|
|
95
95
|
ThreadListItemState,
|
|
96
96
|
QueueItemState,
|
|
97
|
+
TaskState,
|
|
97
98
|
} from "@assistant-ui/core/store";
|
|
98
99
|
|
|
99
100
|
// Store hooks and components
|
|
@@ -127,12 +128,41 @@ export {
|
|
|
127
128
|
type LocalRuntimeOptions,
|
|
128
129
|
} from "./runtimes/useLocalRuntime";
|
|
129
130
|
export { useRemoteThreadListRuntime } from "./runtimes/useRemoteThreadListRuntime";
|
|
131
|
+
export {
|
|
132
|
+
getExternalStoreMessages,
|
|
133
|
+
bindExternalStoreMessage,
|
|
134
|
+
pickExternalStoreSharedOptions,
|
|
135
|
+
createMessageQueue,
|
|
136
|
+
MessageNotSentError,
|
|
137
|
+
isMessageNotSentError,
|
|
138
|
+
type ExternalStoreAdapter,
|
|
139
|
+
type ExternalStoreMessageConverter,
|
|
140
|
+
type ExternalStoreSharedOptions,
|
|
141
|
+
type ExternalStoreThreadListAdapter,
|
|
142
|
+
type ExternalStoreThreadData,
|
|
143
|
+
type ExternalStoreBranchChange,
|
|
144
|
+
type ExternalThreadQueueAdapter,
|
|
145
|
+
type ExternalThreadBranchAdapter,
|
|
146
|
+
type MessageQueueDriver,
|
|
147
|
+
type MessageQueueController,
|
|
148
|
+
} from "@assistant-ui/core";
|
|
149
|
+
export {
|
|
150
|
+
useExternalStoreRuntime,
|
|
151
|
+
useExternalStoreSharedOptions,
|
|
152
|
+
useExternalMessageConverter,
|
|
153
|
+
convertExternalMessages as unstable_convertExternalMessages,
|
|
154
|
+
createExternalMessageConversionCache as unstable_createExternalMessageConversionCache,
|
|
155
|
+
createMessageConverter as unstable_createMessageConverter,
|
|
156
|
+
type ExternalMessageConversionCache as Unstable_ExternalMessageConversionCache,
|
|
157
|
+
type JoinStrategy,
|
|
158
|
+
} from "@assistant-ui/core/react";
|
|
130
159
|
|
|
131
160
|
// Primitives
|
|
132
161
|
export * as ThreadPrimitive from "./primitives/thread";
|
|
133
162
|
export * as ComposerPrimitive from "./primitives/composer";
|
|
134
163
|
export * as QueueItemPrimitive from "./primitives/queueItem";
|
|
135
164
|
export * as MessagePrimitive from "./primitives/message";
|
|
165
|
+
export * as MessagePartPrimitive from "./primitives/messagePart";
|
|
136
166
|
export * as ThreadListPrimitive from "./primitives/threadList";
|
|
137
167
|
export * as ActionBarPrimitive from "./primitives/actionBar";
|
|
138
168
|
export * as BranchPickerPrimitive from "./primitives/branchPicker";
|
|
@@ -7,6 +7,8 @@ import { ActionBarEdit } from "./actionBar/ActionBarEdit";
|
|
|
7
7
|
import { ActionBarFeedbackNegative } from "./actionBar/ActionBarFeedbackNegative";
|
|
8
8
|
import { ActionBarFeedbackPositive } from "./actionBar/ActionBarFeedbackPositive";
|
|
9
9
|
import { ActionBarReload } from "./actionBar/ActionBarReload";
|
|
10
|
+
import { ActionBarSpeak } from "./actionBar/ActionBarSpeak";
|
|
11
|
+
import { ActionBarStopSpeaking } from "./actionBar/ActionBarStopSpeaking";
|
|
10
12
|
import { AttachmentRemove } from "./attachment/AttachmentRemove";
|
|
11
13
|
import { BranchPickerNext } from "./branchPicker/BranchPickerNext";
|
|
12
14
|
import { BranchPickerPrevious } from "./branchPicker/BranchPickerPrevious";
|
|
@@ -64,6 +66,8 @@ vi.mock("@assistant-ui/core/react", () => ({
|
|
|
64
66
|
isSubmitted: false,
|
|
65
67
|
}),
|
|
66
68
|
useActionBarReload: () => ({ reload: vi.fn(), disabled: false }),
|
|
69
|
+
useActionBarSpeak: () => ({ speak: vi.fn(), disabled: false }),
|
|
70
|
+
useActionBarStopSpeaking: () => ({ stopSpeaking: vi.fn(), disabled: false }),
|
|
67
71
|
useBranchPickerNext: () => ({ next: vi.fn(), disabled: false }),
|
|
68
72
|
useBranchPickerPrevious: () => ({ previous: vi.fn(), disabled: false }),
|
|
69
73
|
useComposerAddAttachment: () => ({ disabled: false }),
|
|
@@ -134,6 +138,22 @@ const actionable: ReadonlyArray<{
|
|
|
134
138
|
</ActionBarReload>
|
|
135
139
|
),
|
|
136
140
|
},
|
|
141
|
+
{
|
|
142
|
+
name: "ActionBarSpeak",
|
|
143
|
+
render: (e) => (
|
|
144
|
+
<ActionBarSpeak testID="t" {...e}>
|
|
145
|
+
x
|
|
146
|
+
</ActionBarSpeak>
|
|
147
|
+
),
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: "ActionBarStopSpeaking",
|
|
151
|
+
render: (e) => (
|
|
152
|
+
<ActionBarStopSpeaking testID="t" {...e}>
|
|
153
|
+
x
|
|
154
|
+
</ActionBarStopSpeaking>
|
|
155
|
+
),
|
|
156
|
+
},
|
|
137
157
|
{
|
|
138
158
|
name: "AttachmentRemove",
|
|
139
159
|
render: (e) => (
|