@assistant-ui/react 0.14.18 → 0.14.20

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 (334) hide show
  1. package/dist/client/ExternalThread.d.ts +3 -2
  2. package/dist/client/ExternalThread.d.ts.map +1 -1
  3. package/dist/client/ExternalThread.js +721 -256
  4. package/dist/client/ExternalThread.js.map +1 -1
  5. package/dist/client/InMemoryThreadList.d.ts.map +1 -1
  6. package/dist/client/InMemoryThreadList.js +292 -108
  7. package/dist/client/InMemoryThreadList.js.map +1 -1
  8. package/dist/client/SingleThreadList.js +139 -53
  9. package/dist/client/SingleThreadList.js.map +1 -1
  10. package/dist/context/ReadonlyStore.js.map +1 -1
  11. package/dist/context/providers/MessageProvider.js +38 -5
  12. package/dist/context/providers/MessageProvider.js.map +1 -1
  13. package/dist/context/providers/ThreadViewportProvider.js +76 -20
  14. package/dist/context/providers/ThreadViewportProvider.js.map +1 -1
  15. package/dist/context/react/ThreadViewportContext.js.map +1 -1
  16. package/dist/context/react/utils/createContextHook.js.map +1 -1
  17. package/dist/context/react/utils/createContextStoreHook.js +17 -2
  18. package/dist/context/react/utils/createContextStoreHook.js.map +1 -1
  19. package/dist/context/react/utils/createStateHookForRuntime.js.map +1 -1
  20. package/dist/context/react/utils/ensureBinding.js.map +1 -1
  21. package/dist/context/react/utils/useRuntimeState.js +18 -2
  22. package/dist/context/react/utils/useRuntimeState.js.map +1 -1
  23. package/dist/context/stores/ThreadViewport.js.map +1 -1
  24. package/dist/devtools/DevToolsHooks.js.map +1 -1
  25. package/dist/hooks/useMessageQuote.js.map +1 -1
  26. package/dist/hooks/useMessageTiming.js +4 -1
  27. package/dist/hooks/useMessageTiming.js.map +1 -1
  28. package/dist/hooks/useToolCallElapsed.d.ts +23 -0
  29. package/dist/hooks/useToolCallElapsed.d.ts.map +1 -0
  30. package/dist/hooks/useToolCallElapsed.js +72 -0
  31. package/dist/hooks/useToolCallElapsed.js.map +1 -0
  32. package/dist/index.d.ts +4 -2
  33. package/dist/index.js +3 -1
  34. package/dist/internal.js.map +1 -1
  35. package/dist/legacy-runtime/AssistantRuntimeProvider.js +46 -10
  36. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
  37. package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
  38. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js +27 -6
  39. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js.map +1 -1
  40. package/dist/legacy-runtime/hooks/AssistantContext.js +13 -2
  41. package/dist/legacy-runtime/hooks/AssistantContext.js.map +1 -1
  42. package/dist/legacy-runtime/hooks/AttachmentContext.js +9 -1
  43. package/dist/legacy-runtime/hooks/AttachmentContext.js.map +1 -1
  44. package/dist/legacy-runtime/hooks/ComposerContext.js +9 -1
  45. package/dist/legacy-runtime/hooks/ComposerContext.js.map +1 -1
  46. package/dist/legacy-runtime/hooks/MessageContext.js +12 -2
  47. package/dist/legacy-runtime/hooks/MessageContext.js.map +1 -1
  48. package/dist/legacy-runtime/hooks/MessagePartContext.js +9 -1
  49. package/dist/legacy-runtime/hooks/MessagePartContext.js.map +1 -1
  50. package/dist/legacy-runtime/hooks/ThreadContext.js +33 -5
  51. package/dist/legacy-runtime/hooks/ThreadContext.js.map +1 -1
  52. package/dist/legacy-runtime/hooks/ThreadListItemContext.js +9 -1
  53. package/dist/legacy-runtime/hooks/ThreadListItemContext.js.map +1 -1
  54. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js +3 -3
  55. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js.map +1 -1
  56. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.js +71 -31
  57. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.js.map +1 -1
  58. package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.js.map +1 -1
  59. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +24 -16
  60. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  61. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js +17 -12
  62. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js.map +1 -1
  63. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js +17 -3
  64. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js.map +1 -1
  65. package/dist/mcp-apps/McpAppRenderer.js +6 -6
  66. package/dist/mcp-apps/McpAppRenderer.js.map +1 -1
  67. package/dist/mcp-apps/McpAppsRemoteHost.js +3 -3
  68. package/dist/mcp-apps/McpAppsRemoteHost.js.map +1 -1
  69. package/dist/mcp-apps/app-frame.js +33 -14
  70. package/dist/mcp-apps/app-frame.js.map +1 -1
  71. package/dist/mcp-apps/bridge.js.map +1 -1
  72. package/dist/mcp-apps/types.js.map +1 -1
  73. package/dist/mcp-apps/utils.js.map +1 -1
  74. package/dist/model-context/frame/useAssistantFrameHost.js +32 -14
  75. package/dist/model-context/frame/useAssistantFrameHost.js.map +1 -1
  76. package/dist/model-context/makeAssistantVisible.js +64 -26
  77. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  78. package/dist/primitives/actionBar/ActionBarCopy.js +94 -20
  79. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  80. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  81. package/dist/primitives/actionBar/ActionBarExportMarkdown.js +105 -37
  82. package/dist/primitives/actionBar/ActionBarExportMarkdown.js.map +1 -1
  83. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +60 -11
  84. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  85. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +60 -11
  86. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  87. package/dist/primitives/actionBar/ActionBarInteractionContext.js +3 -1
  88. package/dist/primitives/actionBar/ActionBarInteractionContext.js.map +1 -1
  89. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  90. package/dist/primitives/actionBar/ActionBarRoot.js +84 -25
  91. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
  92. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
  93. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +45 -14
  94. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
  95. package/dist/primitives/actionBar/useActionBarFloatStatus.js +22 -10
  96. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
  97. package/dist/primitives/actionBar.js.map +1 -1
  98. package/dist/primitives/actionBarMore/ActionBarMoreContent.js +44 -7
  99. package/dist/primitives/actionBarMore/ActionBarMoreContent.js.map +1 -1
  100. package/dist/primitives/actionBarMore/ActionBarMoreItem.js +28 -6
  101. package/dist/primitives/actionBarMore/ActionBarMoreItem.js.map +1 -1
  102. package/dist/primitives/actionBarMore/ActionBarMoreRoot.js +103 -36
  103. package/dist/primitives/actionBarMore/ActionBarMoreRoot.js.map +1 -1
  104. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js +28 -6
  105. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js.map +1 -1
  106. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js +28 -6
  107. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js.map +1 -1
  108. package/dist/primitives/actionBarMore/scope.js.map +1 -1
  109. package/dist/primitives/actionBarMore.js.map +1 -1
  110. package/dist/primitives/assistantModal/AssistantModalAnchor.js +27 -6
  111. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  112. package/dist/primitives/assistantModal/AssistantModalContent.js +71 -10
  113. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  114. package/dist/primitives/assistantModal/AssistantModalRoot.js +93 -26
  115. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  116. package/dist/primitives/assistantModal/AssistantModalTrigger.js +27 -6
  117. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  118. package/dist/primitives/assistantModal/scope.js.map +1 -1
  119. package/dist/primitives/assistantModal.js.map +1 -1
  120. package/dist/primitives/attachment/AttachmentName.js +13 -1
  121. package/dist/primitives/attachment/AttachmentName.js.map +1 -1
  122. package/dist/primitives/attachment/AttachmentRemove.js +11 -4
  123. package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
  124. package/dist/primitives/attachment/AttachmentRoot.js +13 -4
  125. package/dist/primitives/attachment/AttachmentRoot.js.map +1 -1
  126. package/dist/primitives/attachment/AttachmentThumb.js +20 -9
  127. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
  128. package/dist/primitives/attachment.js.map +1 -1
  129. package/dist/primitives/branchPicker/BranchPickerCount.js +14 -2
  130. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
  131. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  132. package/dist/primitives/branchPicker/BranchPickerNumber.js +14 -2
  133. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
  134. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  135. package/dist/primitives/branchPicker/BranchPickerRoot.js +34 -6
  136. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  137. package/dist/primitives/branchPicker.js.map +1 -1
  138. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js +16 -5
  139. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js.map +1 -1
  140. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js +13 -4
  141. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js.map +1 -1
  142. package/dist/primitives/chainOfThought.js.map +1 -1
  143. package/dist/primitives/composer/ComposerAddAttachment.js +37 -24
  144. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  145. package/dist/primitives/composer/ComposerAttachmentDropzone.js +124 -49
  146. package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
  147. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  148. package/dist/primitives/composer/ComposerDictate.js.map +1 -1
  149. package/dist/primitives/composer/ComposerDictationTranscript.js +32 -7
  150. package/dist/primitives/composer/ComposerDictationTranscript.js.map +1 -1
  151. package/dist/primitives/composer/ComposerInput.js +26 -26
  152. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  153. package/dist/primitives/composer/ComposerInputPluginContext.js +71 -25
  154. package/dist/primitives/composer/ComposerInputPluginContext.js.map +1 -1
  155. package/dist/primitives/composer/ComposerQuote.js +92 -23
  156. package/dist/primitives/composer/ComposerQuote.js.map +1 -1
  157. package/dist/primitives/composer/ComposerRoot.js +45 -11
  158. package/dist/primitives/composer/ComposerRoot.js.map +1 -1
  159. package/dist/primitives/composer/ComposerSend.js +9 -2
  160. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  161. package/dist/primitives/composer/ComposerStopDictation.js +15 -5
  162. package/dist/primitives/composer/ComposerStopDictation.js.map +1 -1
  163. package/dist/primitives/composer/trigger/TriggerPopover.d.ts.map +1 -1
  164. package/dist/primitives/composer/trigger/TriggerPopover.js +215 -75
  165. package/dist/primitives/composer/trigger/TriggerPopover.js.map +1 -1
  166. package/dist/primitives/composer/trigger/TriggerPopoverAction.js.map +1 -1
  167. package/dist/primitives/composer/trigger/TriggerPopoverBack.js +35 -7
  168. package/dist/primitives/composer/trigger/TriggerPopoverBack.js.map +1 -1
  169. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js +134 -28
  170. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js.map +1 -1
  171. package/dist/primitives/composer/trigger/TriggerPopoverDirective.js.map +1 -1
  172. package/dist/primitives/composer/trigger/TriggerPopoverItems.js +132 -28
  173. package/dist/primitives/composer/trigger/TriggerPopoverItems.js.map +1 -1
  174. package/dist/primitives/composer/trigger/TriggerPopoverResource.js +124 -52
  175. package/dist/primitives/composer/trigger/TriggerPopoverResource.js.map +1 -1
  176. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js +181 -78
  177. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js.map +1 -1
  178. package/dist/primitives/composer/trigger/detectTrigger.js.map +1 -1
  179. package/dist/primitives/composer/trigger/index.js.map +1 -1
  180. package/dist/primitives/composer/trigger/triggerDetectionResource.js +28 -14
  181. package/dist/primitives/composer/trigger/triggerDetectionResource.js.map +1 -1
  182. package/dist/primitives/composer/trigger/triggerKeyboardResource.js +115 -58
  183. package/dist/primitives/composer/trigger/triggerKeyboardResource.js.map +1 -1
  184. package/dist/primitives/composer/trigger/triggerNavigationResource.js +202 -70
  185. package/dist/primitives/composer/trigger/triggerNavigationResource.js.map +1 -1
  186. package/dist/primitives/composer/trigger/triggerSelectionResource.js +49 -13
  187. package/dist/primitives/composer/trigger/triggerSelectionResource.js.map +1 -1
  188. package/dist/primitives/composer.js.map +1 -1
  189. package/dist/primitives/dropdownMenuRenderPrimitives.js.map +1 -1
  190. package/dist/primitives/error/ErrorMessage.js +28 -6
  191. package/dist/primitives/error/ErrorMessage.js.map +1 -1
  192. package/dist/primitives/error/ErrorRoot.js +14 -5
  193. package/dist/primitives/error/ErrorRoot.js.map +1 -1
  194. package/dist/primitives/error.js.map +1 -1
  195. package/dist/primitives/message/MessageError.js +2 -1
  196. package/dist/primitives/message/MessageError.js.map +1 -1
  197. package/dist/primitives/message/MessageIf.js +50 -20
  198. package/dist/primitives/message/MessageIf.js.map +1 -1
  199. package/dist/primitives/message/MessageParts.js +41 -7
  200. package/dist/primitives/message/MessageParts.js.map +1 -1
  201. package/dist/primitives/message/MessagePartsGrouped.js +399 -94
  202. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  203. package/dist/primitives/message/MessageRoot.js +197 -65
  204. package/dist/primitives/message/MessageRoot.js.map +1 -1
  205. package/dist/primitives/message.js.map +1 -1
  206. package/dist/primitives/messagePart/MessagePartImage.js +15 -5
  207. package/dist/primitives/messagePart/MessagePartImage.js.map +1 -1
  208. package/dist/primitives/messagePart/MessagePartText.js +35 -7
  209. package/dist/primitives/messagePart/MessagePartText.js.map +1 -1
  210. package/dist/primitives/messagePart/useMessagePartData.js +5 -4
  211. package/dist/primitives/messagePart/useMessagePartData.js.map +1 -1
  212. package/dist/primitives/messagePart/useMessagePartFile.js +5 -4
  213. package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -1
  214. package/dist/primitives/messagePart/useMessagePartImage.js +5 -4
  215. package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -1
  216. package/dist/primitives/messagePart/useMessagePartReasoning.js +5 -4
  217. package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -1
  218. package/dist/primitives/messagePart/useMessagePartSource.js +5 -4
  219. package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -1
  220. package/dist/primitives/messagePart/useMessagePartText.js +5 -4
  221. package/dist/primitives/messagePart/useMessagePartText.js.map +1 -1
  222. package/dist/primitives/messagePart.js.map +1 -1
  223. package/dist/primitives/queueItem/QueueItemRemove.js +11 -4
  224. package/dist/primitives/queueItem/QueueItemRemove.js.map +1 -1
  225. package/dist/primitives/queueItem/QueueItemSteer.js +11 -4
  226. package/dist/primitives/queueItem/QueueItemSteer.js.map +1 -1
  227. package/dist/primitives/queueItem/QueueItemText.js +20 -6
  228. package/dist/primitives/queueItem/QueueItemText.js.map +1 -1
  229. package/dist/primitives/queueItem.js.map +1 -1
  230. package/dist/primitives/reasoning/useScrollLock.js +61 -43
  231. package/dist/primitives/reasoning/useScrollLock.js.map +1 -1
  232. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js +56 -16
  233. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js.map +1 -1
  234. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js +120 -59
  235. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js.map +1 -1
  236. package/dist/primitives/selectionToolbar.js.map +1 -1
  237. package/dist/primitives/suggestion/SuggestionDescription.js +20 -6
  238. package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -1
  239. package/dist/primitives/suggestion/SuggestionTitle.js +20 -6
  240. package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -1
  241. package/dist/primitives/suggestion/SuggestionTrigger.js +39 -26
  242. package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -1
  243. package/dist/primitives/suggestion.js.map +1 -1
  244. package/dist/primitives/thread/ThreadEmpty.js +6 -2
  245. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  246. package/dist/primitives/thread/ThreadIf.js +32 -10
  247. package/dist/primitives/thread/ThreadIf.js.map +1 -1
  248. package/dist/primitives/thread/ThreadRoot.js +13 -4
  249. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  250. package/dist/primitives/thread/ThreadScrollToBottom.js +24 -6
  251. package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -1
  252. package/dist/primitives/thread/ThreadSuggestion.js +18 -6
  253. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  254. package/dist/primitives/thread/ThreadViewport.js +185 -47
  255. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  256. package/dist/primitives/thread/ThreadViewportFooter.js +22 -9
  257. package/dist/primitives/thread/ThreadViewportFooter.js.map +1 -1
  258. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.js.map +1 -1
  259. package/dist/primitives/thread/topAnchor/createReserveObservers.js.map +1 -1
  260. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js.map +1 -1
  261. package/dist/primitives/thread/topAnchor/topAnchorTurn.js.map +1 -1
  262. package/dist/primitives/thread/topAnchor/topAnchorUtils.js.map +1 -1
  263. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js +19 -4
  264. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js.map +1 -1
  265. package/dist/primitives/thread/useThreadViewportAutoScroll.js +16 -16
  266. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  267. package/dist/primitives/thread.js.map +1 -1
  268. package/dist/primitives/threadList/ThreadListLoadMore.js.map +1 -1
  269. package/dist/primitives/threadList/ThreadListNew.js +53 -11
  270. package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
  271. package/dist/primitives/threadList/ThreadListRoot.js +13 -4
  272. package/dist/primitives/threadList/ThreadListRoot.js.map +1 -1
  273. package/dist/primitives/threadList.js.map +1 -1
  274. package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
  275. package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -1
  276. package/dist/primitives/threadListItem/ThreadListItemRoot.js +26 -7
  277. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  278. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
  279. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -1
  280. package/dist/primitives/threadListItem.js.map +1 -1
  281. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js +44 -7
  282. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js.map +1 -1
  283. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js +28 -6
  284. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js.map +1 -1
  285. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js +25 -5
  286. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js.map +1 -1
  287. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js +28 -6
  288. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js.map +1 -1
  289. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js +28 -6
  290. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js.map +1 -1
  291. package/dist/primitives/threadListItemMore/scope.js.map +1 -1
  292. package/dist/primitives/threadListItemMore.js.map +1 -1
  293. package/dist/sandbox-host/SandboxHost.js.map +1 -1
  294. package/dist/tests/remote-thread-list-test-helpers.js.map +1 -1
  295. package/dist/tests/setup.js.map +1 -1
  296. package/dist/unstable/useComposerInputHistory.js.map +1 -1
  297. package/dist/unstable/useMentionAdapter.js.map +1 -1
  298. package/dist/unstable/useMessageStallDetection.d.ts +29 -0
  299. package/dist/unstable/useMessageStallDetection.d.ts.map +1 -0
  300. package/dist/unstable/useMessageStallDetection.js +69 -0
  301. package/dist/unstable/useMessageStallDetection.js.map +1 -0
  302. package/dist/unstable/useSlashCommandAdapter.js.map +1 -1
  303. package/dist/utils/Primitive.js +57 -12
  304. package/dist/utils/Primitive.js.map +1 -1
  305. package/dist/utils/createActionButton.js +23 -7
  306. package/dist/utils/createActionButton.js.map +1 -1
  307. package/dist/utils/getSelectionMessageId.js.map +1 -1
  308. package/dist/utils/hooks/useManagedRef.js +16 -8
  309. package/dist/utils/hooks/useManagedRef.js.map +1 -1
  310. package/dist/utils/hooks/useMediaQuery.js +25 -10
  311. package/dist/utils/hooks/useMediaQuery.js.map +1 -1
  312. package/dist/utils/hooks/useOnResizeContent.js +29 -19
  313. package/dist/utils/hooks/useOnResizeContent.js.map +1 -1
  314. package/dist/utils/hooks/useOnScrollToBottom.js +20 -4
  315. package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -1
  316. package/dist/utils/hooks/useSizeHandle.js +23 -15
  317. package/dist/utils/hooks/useSizeHandle.js.map +1 -1
  318. package/dist/utils/json/is-json-equal.js.map +1 -1
  319. package/dist/utils/json/is-json.js.map +1 -1
  320. package/dist/utils/smooth/SmoothContext.js +41 -11
  321. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  322. package/dist/utils/smooth/useSmooth.js +5 -5
  323. package/dist/utils/smooth/useSmooth.js.map +1 -1
  324. package/dist/utils/useToolArgsFieldStatus.js +13 -5
  325. package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
  326. package/package.json +9 -9
  327. package/src/client/ExternalThread.ts +81 -52
  328. package/src/client/InMemoryThreadList.ts +12 -14
  329. package/src/hooks/useToolCallElapsed.ts +52 -0
  330. package/src/index.ts +11 -0
  331. package/src/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.test.ts +10 -6
  332. package/src/primitives/composer/trigger/TriggerPopover.tsx +4 -5
  333. package/src/tests/toolCallTiming.test.tsx +221 -0
  334. package/src/unstable/useMessageStallDetection.ts +91 -0
@@ -1,17 +1,26 @@
1
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
1
2
  import { useEffectEvent, useRef } from "@assistant-ui/tap/react-shim";
2
3
  import { resource } from "@assistant-ui/tap";
3
4
  //#region src/primitives/composer/trigger/triggerSelectionResource.ts
4
5
  /** Owns composer text mutation + behavior dispatch on item selection. */
5
- const useTriggerSelectionResource = ({ behavior, trigger, aui, triggerChar, setCursorPosition, onSelected }) => {
6
+ const useTriggerSelectionResource = (t0) => {
7
+ const $ = c(15);
8
+ const { behavior, trigger, aui, triggerChar, setCursorPosition, onSelected } = t0;
6
9
  const selectItemOverrideRef = useRef(null);
7
- const registerSelectItemOverride = useEffectEvent((fn) => {
8
- selectItemOverrideRef.current = fn;
9
- return () => {
10
- if (selectItemOverrideRef.current === fn) selectItemOverrideRef.current = null;
10
+ let t1;
11
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
12
+ t1 = (fn) => {
13
+ selectItemOverrideRef.current = fn;
14
+ return () => {
15
+ if (selectItemOverrideRef.current === fn) selectItemOverrideRef.current = null;
16
+ };
11
17
  };
12
- });
13
- return {
14
- selectItem: useEffectEvent((item) => {
18
+ $[0] = t1;
19
+ } else t1 = $[0];
20
+ const registerSelectItemOverride = useEffectEvent(t1);
21
+ let t2;
22
+ if ($[1] !== aui || $[2] !== behavior || $[3] !== onSelected || $[4] !== trigger || $[5] !== triggerChar) {
23
+ t2 = (item) => {
15
24
  if (!trigger || !behavior) return;
16
25
  if (selectItemOverrideRef.current?.(item)) {
17
26
  onSelected();
@@ -33,13 +42,40 @@ const useTriggerSelectionResource = ({ behavior, trigger, aui, triggerChar, setC
33
42
  behavior.onExecute(item);
34
43
  }
35
44
  onSelected();
36
- }),
37
- close: useEffectEvent(() => {
45
+ };
46
+ $[1] = aui;
47
+ $[2] = behavior;
48
+ $[3] = onSelected;
49
+ $[4] = trigger;
50
+ $[5] = triggerChar;
51
+ $[6] = t2;
52
+ } else t2 = $[6];
53
+ const selectItem = useEffectEvent(t2);
54
+ let t3;
55
+ if ($[7] !== onSelected || $[8] !== setCursorPosition || $[9] !== trigger) {
56
+ t3 = () => {
38
57
  onSelected();
39
58
  if (trigger) setCursorPosition(trigger.offset);
40
- }),
41
- registerSelectItemOverride
42
- };
59
+ };
60
+ $[7] = onSelected;
61
+ $[8] = setCursorPosition;
62
+ $[9] = trigger;
63
+ $[10] = t3;
64
+ } else t3 = $[10];
65
+ const close = useEffectEvent(t3);
66
+ let t4;
67
+ if ($[11] !== close || $[12] !== registerSelectItemOverride || $[13] !== selectItem) {
68
+ t4 = {
69
+ selectItem,
70
+ close,
71
+ registerSelectItemOverride
72
+ };
73
+ $[11] = close;
74
+ $[12] = registerSelectItemOverride;
75
+ $[13] = selectItem;
76
+ $[14] = t4;
77
+ } else t4 = $[14];
78
+ return t4;
43
79
  };
44
80
  const TriggerSelectionResource = resource(useTriggerSelectionResource);
45
81
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"triggerSelectionResource.js","names":[],"sources":["../../../../src/primitives/composer/trigger/triggerSelectionResource.ts"],"sourcesContent":["import { useEffectEvent, useRef } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport type {\n Unstable_DirectiveFormatter,\n Unstable_TriggerItem,\n} from \"@assistant-ui/core\";\nimport type { AssistantClient } from \"@assistant-ui/store\";\nimport type { DetectedTrigger } from \"./triggerDetectionResource\";\n\n/** External override for selection (used by Lexical's DirectivePlugin). */\nexport type SelectItemOverride = (item: Unstable_TriggerItem) => boolean;\n\nexport type TriggerBehavior =\n | {\n readonly kind: \"directive\";\n readonly formatter: Unstable_DirectiveFormatter;\n readonly onInserted?: (item: Unstable_TriggerItem) => void;\n }\n | {\n readonly kind: \"action\";\n readonly formatter: Unstable_DirectiveFormatter;\n readonly onExecute: (item: Unstable_TriggerItem) => void;\n readonly removeOnExecute?: boolean;\n };\n\nexport type TriggerSelectionResourceOutput = {\n /** Select an item — runs override (if any) then applies behavior. */\n selectItem(item: Unstable_TriggerItem): void;\n /** Close the popover (moves cursor before trigger to deactivate detection). */\n close(): void;\n /** Register a Lexical-style selection override. Returns unregister fn. */\n registerSelectItemOverride(fn: SelectItemOverride): () => void;\n};\n\n/** Owns composer text mutation + behavior dispatch on item selection. */\nconst useTriggerSelectionResource = ({\n behavior,\n trigger,\n aui,\n triggerChar,\n setCursorPosition,\n onSelected,\n}: {\n behavior: TriggerBehavior | undefined;\n trigger: DetectedTrigger | null;\n aui: AssistantClient;\n triggerChar: string;\n setCursorPosition: (pos: number) => void;\n /** Called after a successful selection so the parent can reset nav state. */\n onSelected: () => void;\n}): TriggerSelectionResourceOutput => {\n // Select-item override: lets Lexical's DirectivePlugin intercept selection\n // and drive its own node insertion.\n const selectItemOverrideRef = useRef<SelectItemOverride | null>(null);\n\n const registerSelectItemOverride = useEffectEvent(\n (fn: SelectItemOverride) => {\n selectItemOverrideRef.current = fn;\n return () => {\n if (selectItemOverrideRef.current === fn) {\n selectItemOverrideRef.current = null;\n }\n };\n },\n );\n\n const selectItem = useEffectEvent((item: Unstable_TriggerItem) => {\n if (!trigger || !behavior) return;\n\n if (selectItemOverrideRef.current?.(item)) {\n onSelected();\n return;\n }\n\n const currentText = aui.composer().getState().text;\n const before = currentText.slice(0, trigger.offset);\n const after = currentText.slice(\n trigger.offset + triggerChar.length + trigger.query.length,\n );\n\n const insertDirective = () => {\n const directive = behavior.formatter.serialize(item);\n aui\n .composer()\n .setText(\n before + directive + (after.startsWith(\" \") ? after : ` ${after}`),\n );\n };\n\n if (behavior.kind === \"directive\") {\n insertDirective();\n behavior.onInserted?.(item);\n } else {\n if (behavior.removeOnExecute) {\n aui\n .composer()\n .setText(before + (after.startsWith(\" \") ? after.slice(1) : after));\n } else {\n // Leave directive chip in the composer as an audit trail\n insertDirective();\n }\n behavior.onExecute(item);\n }\n\n onSelected();\n });\n\n const close = useEffectEvent(() => {\n onSelected();\n // Move cursor before the trigger so trigger detection deactivates\n if (trigger) {\n setCursorPosition(trigger.offset);\n }\n });\n\n return {\n selectItem,\n close,\n registerSelectItemOverride,\n };\n};\n\nexport const TriggerSelectionResource = resource(useTriggerSelectionResource);\n"],"mappings":";;;;AAmCA,MAAM,+BAA+B,EACnC,UACA,SACA,KACA,aACA,mBACA,iBASoC;CAGpC,MAAM,wBAAwB,OAAkC,IAAI;CAEpE,MAAM,6BAA6B,gBAChC,OAA2B;EAC1B,sBAAsB,UAAU;EAChC,aAAa;GACX,IAAI,sBAAsB,YAAY,IACpC,sBAAsB,UAAU;EAEpC;CACF,CACF;CAmDA,OAAO;EACL,YAlDiB,gBAAgB,SAA+B;GAChE,IAAI,CAAC,WAAW,CAAC,UAAU;GAE3B,IAAI,sBAAsB,UAAU,IAAI,GAAG;IACzC,WAAW;IACX;GACF;GAEA,MAAM,cAAc,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;GAC9C,MAAM,SAAS,YAAY,MAAM,GAAG,QAAQ,MAAM;GAClD,MAAM,QAAQ,YAAY,MACxB,QAAQ,SAAS,YAAY,SAAS,QAAQ,MAAM,MACtD;GAEA,MAAM,wBAAwB;IAC5B,MAAM,YAAY,SAAS,UAAU,UAAU,IAAI;IACnD,IACG,SAAS,CAAC,CACV,QACC,SAAS,aAAa,MAAM,WAAW,GAAG,IAAI,QAAQ,IAAI,QAC5D;GACJ;GAEA,IAAI,SAAS,SAAS,aAAa;IACjC,gBAAgB;IAChB,SAAS,aAAa,IAAI;GAC5B,OAAO;IACL,IAAI,SAAS,iBACX,IACG,SAAS,CAAC,CACV,QAAQ,UAAU,MAAM,WAAW,GAAG,IAAI,MAAM,MAAM,CAAC,IAAI,MAAM;SAGpE,gBAAgB;IAElB,SAAS,UAAU,IAAI;GACzB;GAEA,WAAW;EACb,CAWW;EACT,OAVY,qBAAqB;GACjC,WAAW;GAEX,IAAI,SACF,kBAAkB,QAAQ,MAAM;EAEpC,CAIM;EACJ;CACF;AACF;AAEA,MAAa,2BAA2B,SAAS,2BAA2B"}
1
+ {"version":3,"file":"triggerSelectionResource.js","names":["useEffectEvent","useRef","resource","Unstable_DirectiveFormatter","Unstable_TriggerItem","AssistantClient","DetectedTrigger","SelectItemOverride","item","TriggerBehavior","kind","formatter","onInserted","onExecute","removeOnExecute","TriggerSelectionResourceOutput","selectItem","close","registerSelectItemOverride","fn","useTriggerSelectionResource","t0","$","_c","behavior","trigger","aui","triggerChar","setCursorPosition","onSelected","selectItemOverrideRef","t1","Symbol","for","current","t2","currentText","composer","getState","text","before","slice","offset","after","length","query","insertDirective","directive","serialize","setText","startsWith","t3","t4","TriggerSelectionResource"],"sources":["../../../../src/primitives/composer/trigger/triggerSelectionResource.ts"],"sourcesContent":["import { useEffectEvent, useRef } from \"react\";\nimport { resource } from \"@assistant-ui/tap\";\nimport type {\n Unstable_DirectiveFormatter,\n Unstable_TriggerItem,\n} from \"@assistant-ui/core\";\nimport type { AssistantClient } from \"@assistant-ui/store\";\nimport type { DetectedTrigger } from \"./triggerDetectionResource\";\n\n/** External override for selection (used by Lexical's DirectivePlugin). */\nexport type SelectItemOverride = (item: Unstable_TriggerItem) => boolean;\n\nexport type TriggerBehavior =\n | {\n readonly kind: \"directive\";\n readonly formatter: Unstable_DirectiveFormatter;\n readonly onInserted?: (item: Unstable_TriggerItem) => void;\n }\n | {\n readonly kind: \"action\";\n readonly formatter: Unstable_DirectiveFormatter;\n readonly onExecute: (item: Unstable_TriggerItem) => void;\n readonly removeOnExecute?: boolean;\n };\n\nexport type TriggerSelectionResourceOutput = {\n /** Select an item — runs override (if any) then applies behavior. */\n selectItem(item: Unstable_TriggerItem): void;\n /** Close the popover (moves cursor before trigger to deactivate detection). */\n close(): void;\n /** Register a Lexical-style selection override. Returns unregister fn. */\n registerSelectItemOverride(fn: SelectItemOverride): () => void;\n};\n\n/** Owns composer text mutation + behavior dispatch on item selection. */\nconst useTriggerSelectionResource = ({\n behavior,\n trigger,\n aui,\n triggerChar,\n setCursorPosition,\n onSelected,\n}: {\n behavior: TriggerBehavior | undefined;\n trigger: DetectedTrigger | null;\n aui: AssistantClient;\n triggerChar: string;\n setCursorPosition: (pos: number) => void;\n /** Called after a successful selection so the parent can reset nav state. */\n onSelected: () => void;\n}): TriggerSelectionResourceOutput => {\n // Select-item override: lets Lexical's DirectivePlugin intercept selection\n // and drive its own node insertion.\n const selectItemOverrideRef = useRef<SelectItemOverride | null>(null);\n\n const registerSelectItemOverride = useEffectEvent(\n (fn: SelectItemOverride) => {\n selectItemOverrideRef.current = fn;\n return () => {\n if (selectItemOverrideRef.current === fn) {\n selectItemOverrideRef.current = null;\n }\n };\n },\n );\n\n const selectItem = useEffectEvent((item: Unstable_TriggerItem) => {\n if (!trigger || !behavior) return;\n\n if (selectItemOverrideRef.current?.(item)) {\n onSelected();\n return;\n }\n\n const currentText = aui.composer().getState().text;\n const before = currentText.slice(0, trigger.offset);\n const after = currentText.slice(\n trigger.offset + triggerChar.length + trigger.query.length,\n );\n\n const insertDirective = () => {\n const directive = behavior.formatter.serialize(item);\n aui\n .composer()\n .setText(\n before + directive + (after.startsWith(\" \") ? after : ` ${after}`),\n );\n };\n\n if (behavior.kind === \"directive\") {\n insertDirective();\n behavior.onInserted?.(item);\n } else {\n if (behavior.removeOnExecute) {\n aui\n .composer()\n .setText(before + (after.startsWith(\" \") ? after.slice(1) : after));\n } else {\n // Leave directive chip in the composer as an audit trail\n insertDirective();\n }\n behavior.onExecute(item);\n }\n\n onSelected();\n });\n\n const close = useEffectEvent(() => {\n onSelected();\n // Move cursor before the trigger so trigger detection deactivates\n if (trigger) {\n setCursorPosition(trigger.offset);\n }\n });\n\n return {\n selectItem,\n close,\n registerSelectItemOverride,\n };\n};\n\nexport const TriggerSelectionResource = resource(useTriggerSelectionResource);\n"],"mappings":";;;;;AAmCA,MAAMoB,+BAA8BC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAC,MAAA,EAAAC,UAAAC,SAAAC,KAAAC,aAAAC,mBAAAC,eAAAR;CAkBnC,MAAAS,wBAA8B7B,OAAkC,IAAI;CAAE,IAAA8B;CAAA,IAAAT,EAAA,OAAAU,OAAAC,IAAA,2BAAA,GAAA;EAGpEF,MAAAZ,OAAA;GACEW,sBAAqBI,UAAWf;GAAH,aACtB;IACL,IAAIW,sBAAqBI,YAAaf,IACpCW,sBAAqBI,UAAW;GACjC;EACF;EACFZ,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CARH,MAAAJ,6BAAmClB,eACjC+B,EAQF;CAAE,IAAAI;CAAA,IAAAb,EAAA,OAAAI,OAAAJ,EAAA,OAAAE,YAAAF,EAAA,OAAAO,cAAAP,EAAA,OAAAG,WAAAH,EAAA,OAAAK,aAAA;EAEgCQ,MAAA3B,SAAA;GAChC,IAAI,CAACiB,WAAD,CAAaD,UAAQ;GAEzB,IAAIM,sBAAqBI,UAAW1B,IAAI,GAAC;IACvCqB,WAAW;IAAC;GAAA;GAId,MAAAO,cAAoBV,IAAGW,SAAU,CAAC,CAAAC,SAAU,CAAC,CAAAC;GAC7C,MAAAC,SAAeJ,YAAWK,MAAO,GAAGhB,QAAOiB,MAAO;GAClD,MAAAC,QAAcP,YAAWK,MACvBhB,QAAOiB,SAAUf,YAAWiB,SAAUnB,QAAOoB,MAAMD,MACrD;GAEA,MAAAE,wBAAwB;IACtB,MAAAC,YAAkBvB,SAAQb,UAAUqC,UAAWxC,IAAI;IACnDkB,IAAGW,SACS,CAAC,CAAAY,QAETT,SAASO,aAAaJ,MAAKO,WAAY,GAAyB,IAA1CP,QAAA,IAAoCA,QAC5D;GAAC;GAGL,IAAInB,SAAQd,SAAU,aAAW;IAC/BoC,gBAAgB;IAChBtB,SAAQZ,aAAcJ,IAAI;GAAC,OAAA;IAE3B,IAAIgB,SAAQV,iBACVY,IAAGW,SACS,CAAC,CAAAY,QACFT,UAAUG,MAAKO,WAAY,GAA4B,IAArBP,MAAKF,MAAO,CAAS,IAA7CE,MAA+C;SAGpEG,gBAAgB;IAElBtB,SAAQX,UAAWL,IAAI;GAAC;GAG1BqB,WAAW;EAAC;EACbP,EAAA,KAAAI;EAAAJ,EAAA,KAAAE;EAAAF,EAAA,KAAAO;EAAAP,EAAA,KAAAG;EAAAH,EAAA,KAAAK;EAAAL,EAAA,KAAAa;CAAA,OAAAA,KAAAb,EAAA;CAvCD,MAAAN,aAAmBhB,eAAemC,EAuCjC;CAAE,IAAAgB;CAAA,IAAA7B,EAAA,OAAAO,cAAAP,EAAA,OAAAM,qBAAAN,EAAA,OAAAG,SAAA;EAE0B0B,WAAA;GAC3BtB,WAAW;GAEX,IAAIJ,SACFG,kBAAkBH,QAAOiB,MAAO;EACjC;EACFpB,EAAA,KAAAO;EAAAP,EAAA,KAAAM;EAAAN,EAAA,KAAAG;EAAAH,EAAA,MAAA6B;CAAA,OAAAA,KAAA7B,EAAA;CAND,MAAAL,QAAcjB,eAAemD,EAM5B;CAAE,IAAAC;CAAA,IAAA9B,EAAA,QAAAL,SAAAK,EAAA,QAAAJ,8BAAAI,EAAA,QAAAN,YAAA;EAEIoC,KAAA;GAAApC;GAAAC;GAAAC;EAIP;EAACI,EAAA,MAAAL;EAAAK,EAAA,MAAAJ;EAAAI,EAAA,MAAAN;EAAAM,EAAA,MAAA8B;CAAA,OAAAA,KAAA9B,EAAA;CAAA,OAJM8B;AAIN;AAGH,MAAaC,2BAA2BnD,SAASkB,2BAA2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"composer.js","names":[],"sources":["../../src/primitives/composer.ts"],"sourcesContent":["export { ComposerPrimitiveRoot as Root } from \"./composer/ComposerRoot\";\nexport { ComposerPrimitiveInput as Input } from \"./composer/ComposerInput\";\nexport { ComposerPrimitiveSend as Send } from \"./composer/ComposerSend\";\nexport { ComposerPrimitiveCancel as Cancel } from \"./composer/ComposerCancel\";\nexport { ComposerPrimitiveAddAttachment as AddAttachment } from \"./composer/ComposerAddAttachment\";\nexport { ComposerPrimitiveAttachments as Attachments } from \"./composer/ComposerAttachments\";\nexport { ComposerPrimitiveAttachmentByIndex as AttachmentByIndex } from \"./composer/ComposerAttachments\";\nexport { ComposerPrimitiveAttachmentDropzone as AttachmentDropzone } from \"./composer/ComposerAttachmentDropzone\";\nexport { ComposerPrimitiveDictate as Dictate } from \"./composer/ComposerDictate\";\nexport { ComposerPrimitiveStopDictation as StopDictation } from \"./composer/ComposerStopDictation\";\nexport { ComposerPrimitiveDictationTranscript as DictationTranscript } from \"./composer/ComposerDictationTranscript\";\nexport { ComposerPrimitiveIf as If } from \"./composer/ComposerIf\";\nexport { ComposerPrimitiveQuote as Quote } from \"./composer/ComposerQuote\";\nexport { ComposerPrimitiveQuoteText as QuoteText } from \"./composer/ComposerQuote\";\nexport { ComposerPrimitiveQuoteDismiss as QuoteDismiss } from \"./composer/ComposerQuote\";\nexport { ComposerPrimitiveQueue as Queue } from \"./composer/ComposerQueue\";\n\nexport { ComposerPrimitiveTriggerPopover as Unstable_TriggerPopover } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverRoot as Unstable_TriggerPopoverRoot } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverCategories as Unstable_TriggerPopoverCategories } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverCategoryItem as Unstable_TriggerPopoverCategoryItem } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverItems as Unstable_TriggerPopoverItems } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverItem as Unstable_TriggerPopoverItem } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverBack as Unstable_TriggerPopoverBack } from \"./composer/trigger\";\nexport { useTriggerPopoverRootContext as unstable_useTriggerPopoverRootContext } from \"./composer/trigger\";\nexport { useTriggerPopoverRootContextOptional as unstable_useTriggerPopoverRootContextOptional } from \"./composer/trigger\";\nexport { useTriggerPopoverScopeContext as unstable_useTriggerPopoverScopeContext } from \"./composer/trigger\";\nexport { useTriggerPopoverScopeContextOptional as unstable_useTriggerPopoverScopeContextOptional } from \"./composer/trigger\";\nexport { useTriggerPopoverTriggers as unstable_useTriggerPopoverTriggers } from \"./composer/trigger\";\nexport { useTriggerPopoverTriggersOptional as unstable_useTriggerPopoverTriggersOptional } from \"./composer/trigger\";\nexport type { RegisteredTrigger as Unstable_RegisteredTrigger } from \"./composer/trigger\";\n"],"mappings":""}
1
+ {"version":3,"file":"composer.js","names":["ComposerPrimitiveRoot","Root","ComposerPrimitiveInput","Input","ComposerPrimitiveSend","Send","ComposerPrimitiveCancel","Cancel","ComposerPrimitiveAddAttachment","AddAttachment","ComposerPrimitiveAttachments","Attachments","ComposerPrimitiveAttachmentByIndex","AttachmentByIndex","ComposerPrimitiveAttachmentDropzone","AttachmentDropzone","ComposerPrimitiveDictate","Dictate","ComposerPrimitiveStopDictation","StopDictation","ComposerPrimitiveDictationTranscript","DictationTranscript","ComposerPrimitiveIf","If","ComposerPrimitiveQuote","Quote","ComposerPrimitiveQuoteText","QuoteText","ComposerPrimitiveQuoteDismiss","QuoteDismiss","ComposerPrimitiveQueue","Queue","ComposerPrimitiveTriggerPopover","Unstable_TriggerPopover","ComposerPrimitiveTriggerPopoverRoot","Unstable_TriggerPopoverRoot","ComposerPrimitiveTriggerPopoverCategories","Unstable_TriggerPopoverCategories","ComposerPrimitiveTriggerPopoverCategoryItem","Unstable_TriggerPopoverCategoryItem","ComposerPrimitiveTriggerPopoverItems","Unstable_TriggerPopoverItems","ComposerPrimitiveTriggerPopoverItem","Unstable_TriggerPopoverItem","ComposerPrimitiveTriggerPopoverBack","Unstable_TriggerPopoverBack","useTriggerPopoverRootContext","unstable_useTriggerPopoverRootContext","useTriggerPopoverRootContextOptional","unstable_useTriggerPopoverRootContextOptional","useTriggerPopoverScopeContext","unstable_useTriggerPopoverScopeContext","useTriggerPopoverScopeContextOptional","unstable_useTriggerPopoverScopeContextOptional","useTriggerPopoverTriggers","unstable_useTriggerPopoverTriggers","useTriggerPopoverTriggersOptional","unstable_useTriggerPopoverTriggersOptional","RegisteredTrigger","Unstable_RegisteredTrigger"],"sources":["../../src/primitives/composer.ts"],"sourcesContent":["export { ComposerPrimitiveRoot as Root } from \"./composer/ComposerRoot\";\nexport { ComposerPrimitiveInput as Input } from \"./composer/ComposerInput\";\nexport { ComposerPrimitiveSend as Send } from \"./composer/ComposerSend\";\nexport { ComposerPrimitiveCancel as Cancel } from \"./composer/ComposerCancel\";\nexport { ComposerPrimitiveAddAttachment as AddAttachment } from \"./composer/ComposerAddAttachment\";\nexport { ComposerPrimitiveAttachments as Attachments } from \"./composer/ComposerAttachments\";\nexport { ComposerPrimitiveAttachmentByIndex as AttachmentByIndex } from \"./composer/ComposerAttachments\";\nexport { ComposerPrimitiveAttachmentDropzone as AttachmentDropzone } from \"./composer/ComposerAttachmentDropzone\";\nexport { ComposerPrimitiveDictate as Dictate } from \"./composer/ComposerDictate\";\nexport { ComposerPrimitiveStopDictation as StopDictation } from \"./composer/ComposerStopDictation\";\nexport { ComposerPrimitiveDictationTranscript as DictationTranscript } from \"./composer/ComposerDictationTranscript\";\nexport { ComposerPrimitiveIf as If } from \"./composer/ComposerIf\";\nexport { ComposerPrimitiveQuote as Quote } from \"./composer/ComposerQuote\";\nexport { ComposerPrimitiveQuoteText as QuoteText } from \"./composer/ComposerQuote\";\nexport { ComposerPrimitiveQuoteDismiss as QuoteDismiss } from \"./composer/ComposerQuote\";\nexport { ComposerPrimitiveQueue as Queue } from \"./composer/ComposerQueue\";\n\nexport { ComposerPrimitiveTriggerPopover as Unstable_TriggerPopover } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverRoot as Unstable_TriggerPopoverRoot } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverCategories as Unstable_TriggerPopoverCategories } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverCategoryItem as Unstable_TriggerPopoverCategoryItem } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverItems as Unstable_TriggerPopoverItems } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverItem as Unstable_TriggerPopoverItem } from \"./composer/trigger\";\nexport { ComposerPrimitiveTriggerPopoverBack as Unstable_TriggerPopoverBack } from \"./composer/trigger\";\nexport { useTriggerPopoverRootContext as unstable_useTriggerPopoverRootContext } from \"./composer/trigger\";\nexport { useTriggerPopoverRootContextOptional as unstable_useTriggerPopoverRootContextOptional } from \"./composer/trigger\";\nexport { useTriggerPopoverScopeContext as unstable_useTriggerPopoverScopeContext } from \"./composer/trigger\";\nexport { useTriggerPopoverScopeContextOptional as unstable_useTriggerPopoverScopeContextOptional } from \"./composer/trigger\";\nexport { useTriggerPopoverTriggers as unstable_useTriggerPopoverTriggers } from \"./composer/trigger\";\nexport { useTriggerPopoverTriggersOptional as unstable_useTriggerPopoverTriggersOptional } from \"./composer/trigger\";\nexport type { RegisteredTrigger as Unstable_RegisteredTrigger } from \"./composer/trigger\";\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"dropdownMenuRenderPrimitives.js","names":["DropdownMenuPrimitive"],"sources":["../../src/primitives/dropdownMenuRenderPrimitives.ts"],"sourcesContent":["import { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\nimport { withRenderProp } from \"../utils/Primitive\";\n\nexport const DropdownMenuRenderTrigger = withRenderProp(\n DropdownMenuPrimitive.Trigger,\n);\nexport const DropdownMenuRenderContent = withRenderProp(\n DropdownMenuPrimitive.Content,\n);\nexport const DropdownMenuRenderItem = withRenderProp(\n DropdownMenuPrimitive.Item,\n);\nexport const DropdownMenuRenderSeparator = withRenderProp(\n DropdownMenuPrimitive.Separator,\n);\n"],"mappings":";;;AAGA,MAAa,4BAA4B,eACvCA,aAAsB,OACxB;AACA,MAAa,4BAA4B,eACvCA,aAAsB,OACxB;AACA,MAAa,yBAAyB,eACpCA,aAAsB,IACxB;AACA,MAAa,8BAA8B,eACzCA,aAAsB,SACxB"}
1
+ {"version":3,"file":"dropdownMenuRenderPrimitives.js","names":["DropdownMenu","DropdownMenuPrimitive","withRenderProp","DropdownMenuRenderTrigger","Trigger","DropdownMenuRenderContent","Content","DropdownMenuRenderItem","Item","DropdownMenuRenderSeparator","Separator"],"sources":["../../src/primitives/dropdownMenuRenderPrimitives.ts"],"sourcesContent":["import { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\nimport { withRenderProp } from \"../utils/Primitive\";\n\nexport const DropdownMenuRenderTrigger = withRenderProp(\n DropdownMenuPrimitive.Trigger,\n);\nexport const DropdownMenuRenderContent = withRenderProp(\n DropdownMenuPrimitive.Content,\n);\nexport const DropdownMenuRenderItem = withRenderProp(\n DropdownMenuPrimitive.Item,\n);\nexport const DropdownMenuRenderSeparator = withRenderProp(\n DropdownMenuPrimitive.Separator,\n);\n"],"mappings":";;;AAGA,MAAaG,4BAA4BD,eACvCD,aAAsBG,OACxB;AACA,MAAaC,4BAA4BH,eACvCD,aAAsBK,OACxB;AACA,MAAaC,yBAAyBL,eACpCD,aAAsBO,IACxB;AACA,MAAaC,8BAA8BP,eACzCD,aAAsBS,SACxB"}
@@ -1,17 +1,39 @@
1
1
  "use client";
2
2
  import { Primitive } from "../../utils/Primitive.js";
3
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
3
4
  import { useMessageError } from "@assistant-ui/core/react";
4
5
  import { forwardRef } from "@assistant-ui/tap/react-shim";
5
6
  import { jsx } from "react/jsx-runtime";
6
7
  //#region src/primitives/error/ErrorMessage.tsx
7
- const ErrorPrimitiveMessage = forwardRef(({ children, ...props }, forwardRef) => {
8
+ const ErrorPrimitiveMessage = forwardRef((t0, forwardRef) => {
9
+ const $ = c(7);
10
+ let children;
11
+ let props;
12
+ if ($[0] !== t0) {
13
+ ({children, ...props} = t0);
14
+ $[0] = t0;
15
+ $[1] = children;
16
+ $[2] = props;
17
+ } else {
18
+ children = $[1];
19
+ props = $[2];
20
+ }
8
21
  const error = useMessageError();
9
22
  if (error === void 0) return null;
10
- return /* @__PURE__ */ jsx(Primitive.span, {
11
- ...props,
12
- ref: forwardRef,
13
- children: children ?? String(error)
14
- });
23
+ const t1 = children ?? String(error);
24
+ let t2;
25
+ if ($[3] !== forwardRef || $[4] !== props || $[5] !== t1) {
26
+ t2 = /* @__PURE__ */ jsx(Primitive.span, {
27
+ ...props,
28
+ ref: forwardRef,
29
+ children: t1
30
+ });
31
+ $[3] = forwardRef;
32
+ $[4] = props;
33
+ $[5] = t1;
34
+ $[6] = t2;
35
+ } else t2 = $[6];
36
+ return t2;
15
37
  });
16
38
  ErrorPrimitiveMessage.displayName = "ErrorPrimitive.Message";
17
39
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorMessage.js","names":[],"sources":["../../../src/primitives/error/ErrorMessage.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport { useMessageError } from \"@assistant-ui/core/react\";\n\nexport namespace ErrorPrimitiveMessage {\n export type Element = ComponentRef<typeof Primitive.span>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.span>;\n}\n\nexport const ErrorPrimitiveMessage = forwardRef<\n ErrorPrimitiveMessage.Element,\n ErrorPrimitiveMessage.Props\n>(({ children, ...props }, forwardRef) => {\n const error = useMessageError();\n\n if (error === undefined) return null;\n\n return (\n <Primitive.span {...props} ref={forwardRef}>\n {children ?? String(error)}\n </Primitive.span>\n );\n});\n\nErrorPrimitiveMessage.displayName = \"ErrorPrimitive.Message\";\n"],"mappings":";;;;;;AAeA,MAAa,wBAAwB,YAGlC,EAAE,UAAU,GAAG,SAAS,eAAe;CACxC,MAAM,QAAQ,gBAAgB;CAE9B,IAAI,UAAU,KAAA,GAAW,OAAO;CAEhC,OACE,oBAAC,UAAU,MAAX;EAAgB,GAAI;EAAO,KAAK;YAC7B,YAAY,OAAO,KAAK;CACX,CAAA;AAEpB,CAAC;AAED,sBAAsB,cAAc"}
1
+ {"version":3,"file":"ErrorMessage.js","names":["c","_c","Primitive","ComponentRef","forwardRef","ComponentPropsWithoutRef","useMessageError","ErrorPrimitiveMessage","Element","span","Props","t0","$","children","props","error","undefined","t1","String","t2","displayName"],"sources":["../../../src/primitives/error/ErrorMessage.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport { useMessageError } from \"@assistant-ui/core/react\";\n\nexport namespace ErrorPrimitiveMessage {\n export type Element = ComponentRef<typeof Primitive.span>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.span>;\n}\n\nexport const ErrorPrimitiveMessage = forwardRef<\n ErrorPrimitiveMessage.Element,\n ErrorPrimitiveMessage.Props\n>(({ children, ...props }, forwardRef) => {\n const error = useMessageError();\n\n if (error === undefined) return null;\n\n return (\n <Primitive.span {...props} ref={forwardRef}>\n {children ?? String(error)}\n </Primitive.span>\n );\n});\n\nErrorPrimitiveMessage.displayName = \"ErrorPrimitive.Message\";\n"],"mappings":";;;;;;;AAeA,MAAaO,wBAAwBH,YAGnCO,IAAAP,eAAA;CAAA,MAAAQ,IAAAX,EAAA,CAAA;CAAA,IAAAY;CAAA,IAAAC;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAAC,CAAA,CAAAE,aAAAC,SAAAH;EAAsBC,EAAA,KAAAD;EAAAC,EAAA,KAAAC;EAAAD,EAAA,KAAAE;CAAA,OAAA;EAAAD,WAAAD,EAAA;EAAAE,QAAAF,EAAA;CAAA;CACvB,MAAAG,QAAcT,gBAAgB;CAE9B,IAAIS,UAAUC,KAAAA,GAAS,OAAS;CAI3B,MAAAC,KAAAJ,YAAYK,OAAOH,KAAK;CAAC,IAAAI;CAAA,IAAAP,EAAA,OAAAR,cAAAQ,EAAA,OAAAE,SAAAF,EAAA,OAAAK,IAAA;EAD5BE,KAAA,oBAAA,UAAA,MAAA;GAAA,GAAoBL;GAAYV,KAAAA;aAC7Ba;EACH,CAAA;EAAiBL,EAAA,KAAAR;EAAAQ,EAAA,KAAAE;EAAAF,EAAA,KAAAK;EAAAL,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,OAFjBO;AAEiB,CAEpB;AAEDZ,sBAAsBa,cAAc"}
@@ -1,14 +1,23 @@
1
1
  "use client";
2
2
  import { Primitive } from "../../utils/Primitive.js";
3
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
3
4
  import { forwardRef } from "@assistant-ui/tap/react-shim";
4
5
  import { jsx } from "react/jsx-runtime";
5
6
  //#region src/primitives/error/ErrorRoot.tsx
6
7
  const ErrorPrimitiveRoot = forwardRef((props, forwardRef) => {
7
- return /* @__PURE__ */ jsx(Primitive.div, {
8
- role: "alert",
9
- ...props,
10
- ref: forwardRef
11
- });
8
+ const $ = c(3);
9
+ let t0;
10
+ if ($[0] !== forwardRef || $[1] !== props) {
11
+ t0 = /* @__PURE__ */ jsx(Primitive.div, {
12
+ role: "alert",
13
+ ...props,
14
+ ref: forwardRef
15
+ });
16
+ $[0] = forwardRef;
17
+ $[1] = props;
18
+ $[2] = t0;
19
+ } else t0 = $[2];
20
+ return t0;
12
21
  });
13
22
  ErrorPrimitiveRoot.displayName = "ErrorPrimitive.Root";
14
23
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorRoot.js","names":[],"sources":["../../../src/primitives/error/ErrorRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n type ComponentPropsWithoutRef,\n} from \"react\";\n\nexport namespace ErrorPrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\nexport const ErrorPrimitiveRoot = forwardRef<\n ErrorPrimitiveRoot.Element,\n ErrorPrimitiveRoot.Props\n>((props, forwardRef) => {\n return <Primitive.div role=\"alert\" {...props} ref={forwardRef} />;\n});\n\nErrorPrimitiveRoot.displayName = \"ErrorPrimitive.Root\";\n"],"mappings":";;;;;AAcA,MAAa,qBAAqB,YAG/B,OAAO,eAAe;CACvB,OAAO,oBAAC,UAAU,KAAX;EAAe,MAAK;EAAQ,GAAI;EAAO,KAAK;CAAa,CAAA;AAClE,CAAC;AAED,mBAAmB,cAAc"}
1
+ {"version":3,"file":"ErrorRoot.js","names":["c","_c","Primitive","ComponentRef","forwardRef","ComponentPropsWithoutRef","ErrorPrimitiveRoot","Element","div","Props","props","$","t0","displayName"],"sources":["../../../src/primitives/error/ErrorRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n type ComponentPropsWithoutRef,\n} from \"react\";\n\nexport namespace ErrorPrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\nexport const ErrorPrimitiveRoot = forwardRef<\n ErrorPrimitiveRoot.Element,\n ErrorPrimitiveRoot.Props\n>((props, forwardRef) => {\n return <Primitive.div role=\"alert\" {...props} ref={forwardRef} />;\n});\n\nErrorPrimitiveRoot.displayName = \"ErrorPrimitive.Root\";\n"],"mappings":";;;;;;AAcA,MAAaM,qBAAqBF,YAGhCM,OAAAN,eAAA;CAAA,MAAAO,IAAAV,EAAA,CAAA;CAAA,IAAAW;CAAA,IAAAD,EAAA,OAAAP,cAAAO,EAAA,OAAAD,OAAA;EACOE,KAAA,oBAAA,UAAA,KAAA;GAAoB,MAAA;GAAO,GAAKF;GAAYN,KAAAA;EAAU,CAAA;EAAIO,EAAA,KAAAP;EAAAO,EAAA,KAAAD;EAAAC,EAAA,KAAAC;CAAA,OAAAA,KAAAD,EAAA;CAAA,OAA1DC;AAA0D,CAClE;AAEDN,mBAAmBO,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","names":[],"sources":["../../src/primitives/error.ts"],"sourcesContent":["export { ErrorPrimitiveRoot as Root } from \"./error/ErrorRoot\";\nexport { ErrorPrimitiveMessage as Message } from \"./error/ErrorMessage\";\n"],"mappings":""}
1
+ {"version":3,"file":"error.js","names":["ErrorPrimitiveRoot","Root","ErrorPrimitiveMessage","Message"],"sources":["../../src/primitives/error.ts"],"sourcesContent":["export { ErrorPrimitiveRoot as Root } from \"./error/ErrorRoot\";\nexport { ErrorPrimitiveMessage as Message } from \"./error/ErrorMessage\";\n"],"mappings":""}
@@ -1,7 +1,8 @@
1
1
  "use client";
2
2
  import { useMessageError } from "@assistant-ui/core/react";
3
3
  //#region src/primitives/message/MessageError.ts
4
- const MessagePrimitiveError = ({ children }) => {
4
+ const MessagePrimitiveError = (t0) => {
5
+ const { children } = t0;
5
6
  return useMessageError() !== void 0 ? children : null;
6
7
  };
7
8
  MessagePrimitiveError.displayName = "MessagePrimitive.Error";
@@ -1 +1 @@
1
- {"version":3,"file":"MessageError.js","names":[],"sources":["../../../src/primitives/message/MessageError.ts"],"sourcesContent":["\"use client\";\n\nimport type { FC, PropsWithChildren } from \"react\";\nimport { useMessageError } from \"@assistant-ui/core/react\";\n\nexport const MessagePrimitiveError: FC<PropsWithChildren> = ({ children }) => {\n const error = useMessageError();\n return error !== undefined ? children : null;\n};\n\nMessagePrimitiveError.displayName = \"MessagePrimitive.Error\";\n"],"mappings":";;;AAKA,MAAa,yBAAgD,EAAE,eAAe;CAE5E,OADc,gBACH,MAAM,KAAA,IAAY,WAAW;AAC1C;AAEA,sBAAsB,cAAc"}
1
+ {"version":3,"file":"MessageError.js","names":["FC","PropsWithChildren","useMessageError","MessagePrimitiveError","t0","children","error","undefined","displayName"],"sources":["../../../src/primitives/message/MessageError.ts"],"sourcesContent":["\"use client\";\n\nimport type { FC, PropsWithChildren } from \"react\";\nimport { useMessageError } from \"@assistant-ui/core/react\";\n\nexport const MessagePrimitiveError: FC<PropsWithChildren> = ({ children }) => {\n const error = useMessageError();\n return error !== undefined ? children : null;\n};\n\nMessagePrimitiveError.displayName = \"MessagePrimitive.Error\";\n"],"mappings":";;;AAKA,MAAaG,yBAA+CC,OAAA;CAAC,MAAA,EAAAC,aAAAD;CAC3B,OAAlBF,gBACPI,MAAUC,KAAAA,IAAVF,WAAA;AAAqC;AAG9CF,sBAAsBK,cAAc"}
@@ -1,31 +1,61 @@
1
1
  "use client";
2
2
  import { useAuiState } from "@assistant-ui/store";
3
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
3
4
  //#region src/primitives/message/MessageIf.ts
4
5
  const useMessageIf = (props) => {
5
- return useAuiState((s) => {
6
- const { role, attachments, parts, branchCount, isLast, speech, isCopied, isHovering } = s.message;
7
- if (props.hasBranches === true && branchCount < 2) return false;
8
- if (props.user && role !== "user") return false;
9
- if (props.assistant && role !== "assistant") return false;
10
- if (props.system && role !== "system") return false;
11
- if (props.lastOrHover === true && !isHovering && !isLast) return false;
12
- if (props.last !== void 0 && props.last !== isLast) return false;
13
- if (props.copied === true && !isCopied) return false;
14
- if (props.copied === false && isCopied) return false;
15
- if (props.speaking === true && speech == null) return false;
16
- if (props.speaking === false && speech != null) return false;
17
- if (props.hasAttachments === true && (role !== "user" || !attachments?.length)) return false;
18
- if (props.hasAttachments === false && role === "user" && attachments?.length) return false;
19
- if (props.hasContent === true && parts.length === 0) return false;
20
- if (props.hasContent === false && parts.length > 0) return false;
21
- if (props.submittedFeedback !== void 0 && (s.message.metadata.submittedFeedback?.type ?? null) !== props.submittedFeedback) return false;
22
- return true;
23
- });
6
+ const $ = c(12);
7
+ let t0;
8
+ if ($[0] !== props.assistant || $[1] !== props.copied || $[2] !== props.hasAttachments || $[3] !== props.hasBranches || $[4] !== props.hasContent || $[5] !== props.last || $[6] !== props.lastOrHover || $[7] !== props.speaking || $[8] !== props.submittedFeedback || $[9] !== props.system || $[10] !== props.user) {
9
+ t0 = (s) => {
10
+ const { role, attachments, parts, branchCount, isLast, speech, isCopied, isHovering } = s.message;
11
+ if (props.hasBranches === true && branchCount < 2) return false;
12
+ if (props.user && role !== "user") return false;
13
+ if (props.assistant && role !== "assistant") return false;
14
+ if (props.system && role !== "system") return false;
15
+ if (props.lastOrHover === true && !isHovering && !isLast) return false;
16
+ if (props.last !== void 0 && props.last !== isLast) return false;
17
+ if (props.copied === true && !isCopied) return false;
18
+ if (props.copied === false && isCopied) return false;
19
+ if (props.speaking === true && speech == null) return false;
20
+ if (props.speaking === false && speech != null) return false;
21
+ if (props.hasAttachments === true && (role !== "user" || !attachments?.length)) return false;
22
+ if (props.hasAttachments === false && role === "user" && attachments?.length) return false;
23
+ if (props.hasContent === true && parts.length === 0) return false;
24
+ if (props.hasContent === false && parts.length > 0) return false;
25
+ if (props.submittedFeedback !== void 0 && (s.message.metadata.submittedFeedback?.type ?? null) !== props.submittedFeedback) return false;
26
+ return true;
27
+ };
28
+ $[0] = props.assistant;
29
+ $[1] = props.copied;
30
+ $[2] = props.hasAttachments;
31
+ $[3] = props.hasBranches;
32
+ $[4] = props.hasContent;
33
+ $[5] = props.last;
34
+ $[6] = props.lastOrHover;
35
+ $[7] = props.speaking;
36
+ $[8] = props.submittedFeedback;
37
+ $[9] = props.system;
38
+ $[10] = props.user;
39
+ $[11] = t0;
40
+ } else t0 = $[11];
41
+ return useAuiState(t0);
24
42
  };
25
43
  /**
26
44
  * @deprecated Use `<AuiIf condition={(s) => s.message...} />` instead.
27
45
  */
28
- const MessagePrimitiveIf = ({ children, ...query }) => {
46
+ const MessagePrimitiveIf = (t0) => {
47
+ const $ = c(3);
48
+ let children;
49
+ let query;
50
+ if ($[0] !== t0) {
51
+ ({children, ...query} = t0);
52
+ $[0] = t0;
53
+ $[1] = children;
54
+ $[2] = query;
55
+ } else {
56
+ children = $[1];
57
+ query = $[2];
58
+ }
29
59
  return useMessageIf(query) ? children : null;
30
60
  };
31
61
  MessagePrimitiveIf.displayName = "MessagePrimitive.If";
@@ -1 +1 @@
1
- {"version":3,"file":"MessageIf.js","names":[],"sources":["../../../src/primitives/message/MessageIf.ts"],"sourcesContent":["\"use client\";\n\nimport type { FC, PropsWithChildren } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport type { RequireAtLeastOne } from \"../../utils/RequireAtLeastOne\";\n\ntype MessageIfFilters = {\n user: boolean | undefined;\n assistant: boolean | undefined;\n system: boolean | undefined;\n hasBranches: boolean | undefined;\n copied: boolean | undefined;\n lastOrHover: boolean | undefined;\n last: boolean | undefined;\n speaking: boolean | undefined;\n hasAttachments: boolean | undefined;\n hasContent: boolean | undefined;\n submittedFeedback: \"positive\" | \"negative\" | null | undefined;\n};\ntype UseMessageIfProps = RequireAtLeastOne<MessageIfFilters>;\n\nconst useMessageIf = (props: UseMessageIfProps) => {\n return useAuiState((s) => {\n const {\n role,\n attachments,\n parts,\n branchCount,\n isLast,\n speech,\n isCopied,\n isHovering,\n } = s.message;\n\n if (props.hasBranches === true && branchCount < 2) return false;\n\n if (props.user && role !== \"user\") return false;\n if (props.assistant && role !== \"assistant\") return false;\n if (props.system && role !== \"system\") return false;\n\n if (props.lastOrHover === true && !isHovering && !isLast) return false;\n if (props.last !== undefined && props.last !== isLast) return false;\n\n if (props.copied === true && !isCopied) return false;\n if (props.copied === false && isCopied) return false;\n\n if (props.speaking === true && speech == null) return false;\n if (props.speaking === false && speech != null) return false;\n\n if (\n props.hasAttachments === true &&\n (role !== \"user\" || !attachments?.length)\n )\n return false;\n if (\n props.hasAttachments === false &&\n role === \"user\" &&\n attachments?.length\n )\n return false;\n\n if (props.hasContent === true && parts.length === 0) return false;\n if (props.hasContent === false && parts.length > 0) return false;\n\n if (\n props.submittedFeedback !== undefined &&\n (s.message.metadata.submittedFeedback?.type ?? null) !==\n props.submittedFeedback\n )\n return false;\n\n return true;\n });\n};\n\nexport namespace MessagePrimitiveIf {\n export type Props = PropsWithChildren<UseMessageIfProps>;\n}\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.message...} />` instead.\n */\nexport const MessagePrimitiveIf: FC<MessagePrimitiveIf.Props> = ({\n children,\n ...query\n}) => {\n const result = useMessageIf(query);\n return result ? children : null;\n};\n\nMessagePrimitiveIf.displayName = \"MessagePrimitive.If\";\n"],"mappings":";;;AAqBA,MAAM,gBAAgB,UAA6B;CACjD,OAAO,aAAa,MAAM;EACxB,MAAM,EACJ,MACA,aACA,OACA,aACA,QACA,QACA,UACA,eACE,EAAE;EAEN,IAAI,MAAM,gBAAgB,QAAQ,cAAc,GAAG,OAAO;EAE1D,IAAI,MAAM,QAAQ,SAAS,QAAQ,OAAO;EAC1C,IAAI,MAAM,aAAa,SAAS,aAAa,OAAO;EACpD,IAAI,MAAM,UAAU,SAAS,UAAU,OAAO;EAE9C,IAAI,MAAM,gBAAgB,QAAQ,CAAC,cAAc,CAAC,QAAQ,OAAO;EACjE,IAAI,MAAM,SAAS,KAAA,KAAa,MAAM,SAAS,QAAQ,OAAO;EAE9D,IAAI,MAAM,WAAW,QAAQ,CAAC,UAAU,OAAO;EAC/C,IAAI,MAAM,WAAW,SAAS,UAAU,OAAO;EAE/C,IAAI,MAAM,aAAa,QAAQ,UAAU,MAAM,OAAO;EACtD,IAAI,MAAM,aAAa,SAAS,UAAU,MAAM,OAAO;EAEvD,IACE,MAAM,mBAAmB,SACxB,SAAS,UAAU,CAAC,aAAa,SAElC,OAAO;EACT,IACE,MAAM,mBAAmB,SACzB,SAAS,UACT,aAAa,QAEb,OAAO;EAET,IAAI,MAAM,eAAe,QAAQ,MAAM,WAAW,GAAG,OAAO;EAC5D,IAAI,MAAM,eAAe,SAAS,MAAM,SAAS,GAAG,OAAO;EAE3D,IACE,MAAM,sBAAsB,KAAA,MAC3B,EAAE,QAAQ,SAAS,mBAAmB,QAAQ,UAC7C,MAAM,mBAER,OAAO;EAET,OAAO;CACT,CAAC;AACH;;;;AASA,MAAa,sBAAoD,EAC/D,UACA,GAAG,YACC;CAEJ,OADe,aAAa,KAChB,IAAI,WAAW;AAC7B;AAEA,mBAAmB,cAAc"}
1
+ {"version":3,"file":"MessageIf.js","names":["c","_c","FC","PropsWithChildren","useAuiState","RequireAtLeastOne","MessageIfFilters","user","assistant","system","hasBranches","copied","lastOrHover","last","speaking","hasAttachments","hasContent","submittedFeedback","UseMessageIfProps","useMessageIf","props","$","t0","s","role","attachments","parts","branchCount","isLast","speech","isCopied","isHovering","message","undefined","length","metadata","type","MessagePrimitiveIf","Props","children","query","result","displayName"],"sources":["../../../src/primitives/message/MessageIf.ts"],"sourcesContent":["\"use client\";\n\nimport type { FC, PropsWithChildren } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\nimport type { RequireAtLeastOne } from \"../../utils/RequireAtLeastOne\";\n\ntype MessageIfFilters = {\n user: boolean | undefined;\n assistant: boolean | undefined;\n system: boolean | undefined;\n hasBranches: boolean | undefined;\n copied: boolean | undefined;\n lastOrHover: boolean | undefined;\n last: boolean | undefined;\n speaking: boolean | undefined;\n hasAttachments: boolean | undefined;\n hasContent: boolean | undefined;\n submittedFeedback: \"positive\" | \"negative\" | null | undefined;\n};\ntype UseMessageIfProps = RequireAtLeastOne<MessageIfFilters>;\n\nconst useMessageIf = (props: UseMessageIfProps) => {\n return useAuiState((s) => {\n const {\n role,\n attachments,\n parts,\n branchCount,\n isLast,\n speech,\n isCopied,\n isHovering,\n } = s.message;\n\n if (props.hasBranches === true && branchCount < 2) return false;\n\n if (props.user && role !== \"user\") return false;\n if (props.assistant && role !== \"assistant\") return false;\n if (props.system && role !== \"system\") return false;\n\n if (props.lastOrHover === true && !isHovering && !isLast) return false;\n if (props.last !== undefined && props.last !== isLast) return false;\n\n if (props.copied === true && !isCopied) return false;\n if (props.copied === false && isCopied) return false;\n\n if (props.speaking === true && speech == null) return false;\n if (props.speaking === false && speech != null) return false;\n\n if (\n props.hasAttachments === true &&\n (role !== \"user\" || !attachments?.length)\n )\n return false;\n if (\n props.hasAttachments === false &&\n role === \"user\" &&\n attachments?.length\n )\n return false;\n\n if (props.hasContent === true && parts.length === 0) return false;\n if (props.hasContent === false && parts.length > 0) return false;\n\n if (\n props.submittedFeedback !== undefined &&\n (s.message.metadata.submittedFeedback?.type ?? null) !==\n props.submittedFeedback\n )\n return false;\n\n return true;\n });\n};\n\nexport namespace MessagePrimitiveIf {\n export type Props = PropsWithChildren<UseMessageIfProps>;\n}\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.message...} />` instead.\n */\nexport const MessagePrimitiveIf: FC<MessagePrimitiveIf.Props> = ({\n children,\n ...query\n}) => {\n const result = useMessageIf(query);\n return result ? children : null;\n};\n\nMessagePrimitiveIf.displayName = \"MessagePrimitive.If\";\n"],"mappings":";;;;AAqBA,MAAMmB,gBAAeC,UAAA;CAAA,MAAAC,IAAApB,EAAA,EAAA;CAAA,IAAAqB;CAAA,IAAAD,EAAA,OAAAD,MAAAZ,aAAAa,EAAA,OAAAD,MAAAT,UAAAU,EAAA,OAAAD,MAAAL,kBAAAM,EAAA,OAAAD,MAAAV,eAAAW,EAAA,OAAAD,MAAAJ,cAAAK,EAAA,OAAAD,MAAAP,QAAAQ,EAAA,OAAAD,MAAAR,eAAAS,EAAA,OAAAD,MAAAN,YAAAO,EAAA,OAAAD,MAAAH,qBAAAI,EAAA,OAAAD,MAAAX,UAAAY,EAAA,QAAAD,MAAAb,MAAA;EACAe,MAAAC,MAAA;GACjB,MAAA,EAAAC,MAAAC,aAAAC,OAAAC,aAAAC,QAAAC,QAAAC,UAAAC,eASIR,EAACS;GAEL,IAAIZ,MAAKV,gBAAiB,QAAQiB,cAAc,GAAC,OAAS;GAE1D,IAAIP,MAAKb,QAASiB,SAAS,QAAM,OAAS;GAC1C,IAAIJ,MAAKZ,aAAcgB,SAAS,aAAW,OAAS;GACpD,IAAIJ,MAAKX,UAAWe,SAAS,UAAQ,OAAS;GAE9C,IAAIJ,MAAKR,gBAAiB,QAAtB,CAA+BmB,cAA/B,CAA8CH,QAAM,OAAS;GACjE,IAAIR,MAAKP,SAAUoB,KAAAA,KAAab,MAAKP,SAAUe,QAAM,OAAS;GAE9D,IAAIR,MAAKT,WAAY,QAAjB,CAA0BmB,UAAQ,OAAS;GAC/C,IAAIV,MAAKT,WAAY,SAAjBmB,UAAkC,OAAS;GAE/C,IAAIV,MAAKN,aAAc,QAAQe,UAAU,MAAI,OAAS;GACtD,IAAIT,MAAKN,aAAc,SAASe,UAAU,MAAI,OAAS;GAEvD,IACET,MAAKL,mBAAoB,SACxBS,SAAS,UAAT,CAAoBC,aAAWS,SAAS,OAElC;GACT,IACEd,MAAKL,mBAAoB,SACzBS,SAAS,UACTC,aAAWS,QAAQ,OAEZ;GAET,IAAId,MAAKJ,eAAgB,QAAQU,MAAKQ,WAAY,GAAC,OAAS;GAC5D,IAAId,MAAKJ,eAAgB,SAASU,MAAKQ,SAAU,GAAC,OAAS;GAE3D,IACEd,MAAKH,sBAAuBgB,KAAAA,MAC3BV,EAACS,QAAQG,SAASlB,mBAAwBmB,QAA1C,UACChB,MAAKH,mBAAkB,OAElB;GAAM,OAER;EAAI;EACZI,EAAA,KAAAD,MAAAZ;EAAAa,EAAA,KAAAD,MAAAT;EAAAU,EAAA,KAAAD,MAAAL;EAAAM,EAAA,KAAAD,MAAAV;EAAAW,EAAA,KAAAD,MAAAJ;EAAAK,EAAA,KAAAD,MAAAP;EAAAQ,EAAA,KAAAD,MAAAR;EAAAS,EAAA,KAAAD,MAAAN;EAAAO,EAAA,KAAAD,MAAAH;EAAAI,EAAA,KAAAD,MAAAX;EAAAY,EAAA,MAAAD,MAAAb;EAAAc,EAAA,MAAAC;CAAA,OAAAA,KAAAD,EAAA;CAAA,OAlDMjB,YAAYkB,EAkDlB;AAAC;;;;AAUJ,MAAae,sBAAmDf,OAAA;CAAA,MAAAD,IAAApB,EAAA,CAAA;CAAA,IAAAsC;CAAA,IAAAC;CAAA,IAAAnB,EAAA,OAAAC,IAAA;EAAC,CAAA,CAAAiB,aAAAC,SAAAlB;EAGhED,EAAA,KAAAC;EAAAD,EAAA,KAAAkB;EAAAlB,EAAA,KAAAmB;CAAA,OAAA;EAAAD,WAAAlB,EAAA;EAAAmB,QAAAnB,EAAA;CAAA;CACoC,OAApBF,aAAaqB,KACrBC,IAAAF,WAAA;AAAwB;AAGjCF,mBAAmBK,cAAc"}
@@ -2,6 +2,7 @@
2
2
  import { MessagePartPrimitiveText } from "../messagePart/MessagePartText.js";
3
3
  import { MessagePartPrimitiveImage } from "../messagePart/MessagePartImage.js";
4
4
  import { MessagePartPrimitiveInProgress } from "../messagePart/MessagePartInProgress.js";
5
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
5
6
  import { MessagePartComponent as MessagePartComponentBase, MessagePrimitivePartByIndex as MessagePrimitivePartByIndexBase, MessagePrimitiveParts as MessagePrimitiveParts$1, messagePartsDefaultComponents } from "@assistant-ui/core/react";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
7
8
  //#region src/primitives/message/MessageParts.tsx
@@ -20,10 +21,30 @@ const webDefaultComponents = {
20
21
  * Renders the parts of a message with web-specific default components.
21
22
  */
22
23
  const MessagePrimitiveParts = (props) => {
23
- if ("children" in props) return /* @__PURE__ */ jsx(MessagePrimitiveParts$1, { children: props.children });
24
- const { components, ...rest } = props;
25
- return /* @__PURE__ */ jsx(MessagePrimitiveParts$1, {
26
- components: components ? {
24
+ const $ = c(10);
25
+ if ("children" in props) {
26
+ let t0;
27
+ if ($[0] !== props.children) {
28
+ t0 = /* @__PURE__ */ jsx(MessagePrimitiveParts$1, { children: props.children });
29
+ $[0] = props.children;
30
+ $[1] = t0;
31
+ } else t0 = $[1];
32
+ return t0;
33
+ }
34
+ let components;
35
+ let rest;
36
+ if ($[2] !== props) {
37
+ ({components, ...rest} = props);
38
+ $[2] = props;
39
+ $[3] = components;
40
+ $[4] = rest;
41
+ } else {
42
+ components = $[3];
43
+ rest = $[4];
44
+ }
45
+ let t0;
46
+ if ($[5] !== components) {
47
+ t0 = components ? {
27
48
  Text: components.Text ?? webDefaultComponents.Text,
28
49
  Image: components.Image ?? webDefaultComponents.Image,
29
50
  Reasoning: components.Reasoning ?? messagePartsDefaultComponents.Reasoning,
@@ -39,9 +60,22 @@ const MessagePrimitiveParts = (props) => {
39
60
  Empty: components.Empty,
40
61
  Quote: components.Quote,
41
62
  generativeUI: components.generativeUI
42
- } : webDefaultComponents,
43
- ...rest
44
- });
63
+ } : webDefaultComponents;
64
+ $[5] = components;
65
+ $[6] = t0;
66
+ } else t0 = $[6];
67
+ const t1 = t0;
68
+ let t2;
69
+ if ($[7] !== rest || $[8] !== t1) {
70
+ t2 = /* @__PURE__ */ jsx(MessagePrimitiveParts$1, {
71
+ components: t1,
72
+ ...rest
73
+ });
74
+ $[7] = rest;
75
+ $[8] = t1;
76
+ $[9] = t2;
77
+ } else t2 = $[9];
78
+ return t2;
45
79
  };
46
80
  MessagePrimitiveParts.displayName = "MessagePrimitive.Parts";
47
81
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"MessageParts.js","names":["MessagePrimitivePartsBase"],"sources":["../../../src/primitives/message/MessageParts.tsx"],"sourcesContent":["\"use client\";\n\nimport type { FC } from \"react\";\nimport {\n MessagePrimitiveParts as MessagePrimitivePartsBase,\n MessagePartComponent as MessagePartComponentBase,\n MessagePrimitivePartByIndex as MessagePrimitivePartByIndexBase,\n messagePartsDefaultComponents,\n} from \"@assistant-ui/core/react\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\n\nconst webDefaultComponents = {\n ...messagePartsDefaultComponents,\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <MessagePartPrimitiveText />\n <MessagePartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </MessagePartPrimitiveInProgress>\n </p>\n ),\n Image: () => <MessagePartPrimitiveImage />,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\nexport namespace MessagePrimitiveParts {\n export type Props = MessagePrimitivePartsBase.Props;\n}\n\n/**\n * Renders the parts of a message with web-specific default components.\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = (\n props,\n) => {\n if (\"children\" in props) {\n return (\n <MessagePrimitivePartsBase>{props.children}</MessagePrimitivePartsBase>\n );\n }\n\n const { components, ...rest } = props;\n const merged = components\n ? {\n Text: components.Text ?? webDefaultComponents.Text,\n Image: components.Image ?? webDefaultComponents.Image,\n Reasoning:\n components.Reasoning ?? messagePartsDefaultComponents.Reasoning,\n Source: components.Source ?? messagePartsDefaultComponents.Source,\n File: components.File ?? messagePartsDefaultComponents.File,\n Unstable_Audio:\n components.Unstable_Audio ??\n messagePartsDefaultComponents.Unstable_Audio,\n ...(\"ChainOfThought\" in components\n ? { ChainOfThought: components.ChainOfThought }\n : {\n tools: components.tools,\n data: components.data,\n ToolGroup:\n components.ToolGroup ?? messagePartsDefaultComponents.ToolGroup,\n ReasoningGroup:\n components.ReasoningGroup ??\n messagePartsDefaultComponents.ReasoningGroup,\n }),\n Empty: components.Empty,\n Quote: components.Quote,\n generativeUI: components.generativeUI,\n }\n : webDefaultComponents;\n\n return <MessagePrimitivePartsBase components={merged as any} {...rest} />;\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n\n// Re-export everything else unchanged\nexport {\n MessagePartComponentBase as MessagePartComponent,\n MessagePrimitivePartByIndexBase as MessagePrimitivePartByIndex,\n};\n"],"mappings":";;;;;;;AAaA,MAAM,uBAAuB;CAC3B,GAAG;CACH,YACE,qBAAC,KAAD;EAAG,OAAO,EAAE,YAAY,WAAW;YAAnC,CACE,oBAAC,0BAAD,CAA2B,CAAA,GAC3B,oBAAC,gCAAD,EAAA,UACE,oBAAC,QAAD;GAAM,OAAO,EAAE,YAAY,SAAS;aAAI;EAAgB,CAAA,EAC1B,CAAA,CAC/B;;CAEL,aAAa,oBAAC,2BAAD,CAA4B,CAAA;AAC3C;;;;AASA,MAAa,yBACX,UACG;CACH,IAAI,cAAc,OAChB,OACE,oBAACA,yBAAD,EAAA,UAA4B,MAAM,SAAoC,CAAA;CAI1E,MAAM,EAAE,YAAY,GAAG,SAAS;CA6BhC,OAAO,oBAACA,yBAAD;EAA2B,YA5BnB,aACX;GACE,MAAM,WAAW,QAAQ,qBAAqB;GAC9C,OAAO,WAAW,SAAS,qBAAqB;GAChD,WACE,WAAW,aAAa,8BAA8B;GACxD,QAAQ,WAAW,UAAU,8BAA8B;GAC3D,MAAM,WAAW,QAAQ,8BAA8B;GACvD,gBACE,WAAW,kBACX,8BAA8B;GAChC,GAAI,oBAAoB,aACpB,EAAE,gBAAgB,WAAW,eAAe,IAC5C;IACE,OAAO,WAAW;IAClB,MAAM,WAAW;IACjB,WACE,WAAW,aAAa,8BAA8B;IACxD,gBACE,WAAW,kBACX,8BAA8B;GAClC;GACJ,OAAO,WAAW;GAClB,OAAO,WAAW;GAClB,cAAc,WAAW;EAC3B,IACA;EAEyD,GAAI;CAAO,CAAA;AAC1E;AAEA,sBAAsB,cAAc"}
1
+ {"version":3,"file":"MessageParts.js","names":["c","_c","FC","MessagePrimitiveParts","MessagePrimitivePartsBase","MessagePartComponent","MessagePartComponentBase","MessagePrimitivePartByIndex","MessagePrimitivePartByIndexBase","messagePartsDefaultComponents","MessagePartPrimitiveText","MessagePartPrimitiveImage","MessagePartPrimitiveInProgress","webDefaultComponents","Text","whiteSpace","fontFamily","Image","Props","props","$","t0","children","components","rest","Reasoning","Source","File","Unstable_Audio","ChainOfThought","tools","data","ToolGroup","ReasoningGroup","Empty","Quote","generativeUI","merged","t1","t2","displayName"],"sources":["../../../src/primitives/message/MessageParts.tsx"],"sourcesContent":["\"use client\";\n\nimport type { FC } from \"react\";\nimport {\n MessagePrimitiveParts as MessagePrimitivePartsBase,\n MessagePartComponent as MessagePartComponentBase,\n MessagePrimitivePartByIndex as MessagePrimitivePartByIndexBase,\n messagePartsDefaultComponents,\n} from \"@assistant-ui/core/react\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\n\nconst webDefaultComponents = {\n ...messagePartsDefaultComponents,\n Text: () => (\n <p style={{ whiteSpace: \"pre-line\" }}>\n <MessagePartPrimitiveText />\n <MessagePartPrimitiveInProgress>\n <span style={{ fontFamily: \"revert\" }}>{\" \\u25CF\"}</span>\n </MessagePartPrimitiveInProgress>\n </p>\n ),\n Image: () => <MessagePartPrimitiveImage />,\n} satisfies MessagePrimitiveParts.Props[\"components\"];\n\nexport namespace MessagePrimitiveParts {\n export type Props = MessagePrimitivePartsBase.Props;\n}\n\n/**\n * Renders the parts of a message with web-specific default components.\n */\nexport const MessagePrimitiveParts: FC<MessagePrimitiveParts.Props> = (\n props,\n) => {\n if (\"children\" in props) {\n return (\n <MessagePrimitivePartsBase>{props.children}</MessagePrimitivePartsBase>\n );\n }\n\n const { components, ...rest } = props;\n const merged = components\n ? {\n Text: components.Text ?? webDefaultComponents.Text,\n Image: components.Image ?? webDefaultComponents.Image,\n Reasoning:\n components.Reasoning ?? messagePartsDefaultComponents.Reasoning,\n Source: components.Source ?? messagePartsDefaultComponents.Source,\n File: components.File ?? messagePartsDefaultComponents.File,\n Unstable_Audio:\n components.Unstable_Audio ??\n messagePartsDefaultComponents.Unstable_Audio,\n ...(\"ChainOfThought\" in components\n ? { ChainOfThought: components.ChainOfThought }\n : {\n tools: components.tools,\n data: components.data,\n ToolGroup:\n components.ToolGroup ?? messagePartsDefaultComponents.ToolGroup,\n ReasoningGroup:\n components.ReasoningGroup ??\n messagePartsDefaultComponents.ReasoningGroup,\n }),\n Empty: components.Empty,\n Quote: components.Quote,\n generativeUI: components.generativeUI,\n }\n : webDefaultComponents;\n\n return <MessagePrimitivePartsBase components={merged as any} {...rest} />;\n};\n\nMessagePrimitiveParts.displayName = \"MessagePrimitive.Parts\";\n\n// Re-export everything else unchanged\nexport {\n MessagePartComponentBase as MessagePartComponent,\n MessagePrimitivePartByIndexBase as MessagePrimitivePartByIndex,\n};\n"],"mappings":";;;;;;;;AAaA,MAAMa,uBAAuB;CAC3B,GAAGJ;CACHK,YACE,qBAAC,KAAD;EAAG,OAAO,EAAEC,YAAY,WAAW;YAAnC,CACE,oBAAC,0BAAD,CAAyB,CAAA,GACzB,oBAAC,gCAAD,EAAA,UACE,oBAAC,QAAD;GAAM,OAAO,EAAEC,YAAY,SAAS;aAAI;EAAgB,CAAA,EAC1B,CAAA,CAC/B;;CAELC,aAAa,oBAAC,2BAAD,CAA0B,CAAA;AACzC;;;;AASA,MAAad,yBAAyDgB,UAAA;CAAA,MAAAC,IAAAnB,EAAA,EAAA;CAGpE,IAAI,cAAckB,OAAK;EAAA,IAAAE;EAAA,IAAAD,EAAA,OAAAD,MAAAG,UAAA;GAEnBD,KAAA,oBAAC,yBAAD,EAAA,UAA4BF,MAAKG,SAAP,CAAA;GAA6CF,EAAA,KAAAD,MAAAG;GAAAF,EAAA,KAAAC;EAAA,OAAAA,KAAAD,EAAA;EAAA,OAAvEC;CAAuE;CAE1E,IAAAE;CAAA,IAAAC;CAAA,IAAAJ,EAAA,OAAAD,OAAA;EAED,CAAA,CAAAI,eAAAC,QAAgCL;EAAMC,EAAA,KAAAD;EAAAC,EAAA,KAAAG;EAAAH,EAAA,KAAAI;CAAA,OAAA;EAAAD,aAAAH,EAAA;EAAAI,OAAAJ,EAAA;CAAA;CAAA,IAAAC;CAAA,IAAAD,EAAA,OAAAG,YAAA;EACvBF,KAAAE,aAAA;GAAAT,MAEHS,WAAUT,QAASD,qBAAoBC;GAAKG,OAC3CM,WAAUN,SAAUJ,qBAAoBI;GAAMQ,WAEnDF,WAAUE,aAAchB,8BAA6BgB;GAAUC,QACzDH,WAAUG,UAAWjB,8BAA6BiB;GAAOC,MAC3DJ,WAAUI,QAASlB,8BAA6BkB;GAAKC,gBAEzDL,WAAUK,kBACVnB,8BAA6BmB;GAAe,GAC1C,oBAAoBL,aAApB,EAAAM,gBACkBN,WAAUM,eAS5B,IAVA;IAAAC,OAGSP,WAAUO;IAAMC,MACjBR,WAAUQ;IAAKC,WAEnBT,WAAUS,aAAcvB,8BAA6BuB;IAAUC,gBAE/DV,WAAUU,kBACVxB,8BAA6BwB;GACjC;GAACC,OACEX,WAAUW;GAAMC,OAChBZ,WAAUY;GAAMC,cACTb,WAAUa;EAEP,IA1BRvB;EA0BSO,EAAA,KAAAG;EAAAH,EAAA,KAAAC;CAAA,OAAAA,KAAAD,EAAA;CAEsB,MAAAkB,KAAAD;CAAa,IAAAE;CAAA,IAAAnB,EAAA,OAAAI,QAAAJ,EAAA,OAAAkB,IAAA;EAApDC,KAAA,oBAAC,yBAAD;GAAuC,YAAAD;GAAa,GAAMd;EAAI,CAAA;EAAIJ,EAAA,KAAAI;EAAAJ,EAAA,KAAAkB;EAAAlB,EAAA,KAAAmB;CAAA,OAAAA,KAAAnB,EAAA;CAAA,OAAlEmB;AAAkE;AAG3EpC,sBAAsBqC,cAAc"}