@assistant-ui/react 0.15.21 → 0.15.23

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 (634) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/assistant-transport.d.ts +24 -24
  4. package/dist/assistant-transport.d.ts.map +1 -1
  5. package/dist/assistant-transport.js.map +1 -1
  6. package/dist/augmentations.d.ts +28 -5
  7. package/dist/augmentations.d.ts.map +1 -1
  8. package/dist/cloud-renderer/CloudRendererHost.d.ts +13 -0
  9. package/dist/cloud-renderer/CloudRendererHost.d.ts.map +1 -0
  10. package/dist/cloud-renderer/CloudRendererHost.js +291 -0
  11. package/dist/cloud-renderer/CloudRendererHost.js.map +1 -0
  12. package/dist/context/ReadonlyStore.d.ts +1 -3
  13. package/dist/context/ReadonlyStore.d.ts.map +1 -1
  14. package/dist/context/index.d.ts +13 -13
  15. package/dist/context/index.d.ts.map +1 -0
  16. package/dist/context/providers/AttachmentByIndexProvider.d.ts +2 -2
  17. package/dist/context/providers/AttachmentByIndexProvider.d.ts.map +1 -0
  18. package/dist/context/providers/ChainOfThoughtByIndicesProvider.d.ts +2 -2
  19. package/dist/context/providers/ChainOfThoughtByIndicesProvider.d.ts.map +1 -0
  20. package/dist/context/providers/ChainOfThoughtPartByIndexProvider.d.ts +2 -2
  21. package/dist/context/providers/ChainOfThoughtPartByIndexProvider.d.ts.map +1 -0
  22. package/dist/context/providers/MessageByIndexProvider.d.ts +2 -2
  23. package/dist/context/providers/MessageByIndexProvider.d.ts.map +1 -0
  24. package/dist/context/providers/MessageProvider.d.ts +2 -4
  25. package/dist/context/providers/MessageProvider.d.ts.map +1 -1
  26. package/dist/context/providers/PartByIndexProvider.d.ts +2 -2
  27. package/dist/context/providers/PartByIndexProvider.d.ts.map +1 -0
  28. package/dist/context/providers/SuggestionByIndexProvider.d.ts +2 -2
  29. package/dist/context/providers/SuggestionByIndexProvider.d.ts.map +1 -0
  30. package/dist/context/providers/TextMessagePartProvider.d.ts +2 -2
  31. package/dist/context/providers/TextMessagePartProvider.d.ts.map +1 -0
  32. package/dist/context/providers/ThreadListItemProvider.d.ts +2 -2
  33. package/dist/context/providers/ThreadListItemProvider.d.ts.map +1 -0
  34. package/dist/context/providers/ThreadViewportProvider.d.ts +3 -5
  35. package/dist/context/providers/ThreadViewportProvider.d.ts.map +1 -1
  36. package/dist/context/react/ThreadViewportContext.d.ts +17 -19
  37. package/dist/context/react/ThreadViewportContext.d.ts.map +1 -1
  38. package/dist/context/react/utils/createContextHook.d.ts +2 -4
  39. package/dist/context/react/utils/createContextHook.d.ts.map +1 -1
  40. package/dist/context/react/utils/createContextStoreHook.d.ts +15 -17
  41. package/dist/context/react/utils/createContextStoreHook.d.ts.map +1 -1
  42. package/dist/context/stores/ThreadViewport.d.ts +72 -74
  43. package/dist/context/stores/ThreadViewport.d.ts.map +1 -1
  44. package/dist/devtools/DevToolsHooks.d.ts +19 -20
  45. package/dist/devtools/DevToolsHooks.d.ts.map +1 -1
  46. package/dist/hooks/useMessageQuote.d.ts +1 -3
  47. package/dist/hooks/useMessageQuote.d.ts.map +1 -1
  48. package/dist/hooks/useMessageTiming.d.ts +1 -3
  49. package/dist/hooks/useMessageTiming.d.ts.map +1 -1
  50. package/dist/hooks/useToolCallElapsed.d.ts +0 -2
  51. package/dist/hooks/useToolCallElapsed.d.ts.map +1 -1
  52. package/dist/hooks/useToolCallElapsed.js +1 -1
  53. package/dist/index.d.ts +126 -82
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +14 -13
  56. package/dist/internal.d.ts +8 -11
  57. package/dist/internal.d.ts.map +1 -1
  58. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts +24 -26
  59. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -1
  60. package/dist/legacy-runtime/AssistantRuntimeProvider.js +1 -1
  61. package/dist/legacy-runtime/RuntimeAdapter.d.ts +2 -2
  62. package/dist/legacy-runtime/RuntimeAdapter.d.ts.map +1 -0
  63. package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.d.ts +2 -2
  64. package/dist/legacy-runtime/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -0
  65. package/dist/legacy-runtime/runtime/AssistantRuntime.d.ts +3 -3
  66. package/dist/legacy-runtime/runtime/AssistantRuntime.d.ts.map +1 -0
  67. package/dist/legacy-runtime/runtime/AttachmentRuntime.d.ts +3 -3
  68. package/dist/legacy-runtime/runtime/AttachmentRuntime.d.ts.map +1 -0
  69. package/dist/legacy-runtime/runtime/ComposerRuntime.d.ts +4 -3
  70. package/dist/legacy-runtime/runtime/ComposerRuntime.d.ts.map +1 -0
  71. package/dist/legacy-runtime/runtime/RuntimeBindings.d.ts +3 -3
  72. package/dist/legacy-runtime/runtime/RuntimeBindings.d.ts.map +1 -0
  73. package/dist/legacy-runtime/runtime/RuntimePathTypes.d.ts +2 -2
  74. package/dist/legacy-runtime/runtime/RuntimePathTypes.d.ts.map +1 -0
  75. package/dist/legacy-runtime/runtime/ThreadListItemRuntime.d.ts +5 -3
  76. package/dist/legacy-runtime/runtime/ThreadListItemRuntime.d.ts.map +1 -0
  77. package/dist/legacy-runtime/runtime/ThreadRuntime.d.ts +4 -3
  78. package/dist/legacy-runtime/runtime/ThreadRuntime.d.ts.map +1 -0
  79. package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.d.ts +2 -2
  80. package/dist/legacy-runtime/runtime-cores/adapters/RuntimeAdapterProvider.d.ts.map +1 -0
  81. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.d.ts +2 -2
  82. package/dist/legacy-runtime/runtime-cores/adapters/attachment/CloudFileAttachmentAdapter.d.ts.map +1 -0
  83. package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.d.ts +2 -2
  84. package/dist/legacy-runtime/runtime-cores/composer/BaseComposerRuntimeCore.d.ts.map +1 -0
  85. package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.d.ts +2 -2
  86. package/dist/legacy-runtime/runtime-cores/composer/DefaultEditComposerRuntimeCore.d.ts.map +1 -0
  87. package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.d.ts +2 -2
  88. package/dist/legacy-runtime/runtime-cores/composer/DefaultThreadComposerRuntimeCore.d.ts.map +1 -0
  89. package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.d.ts +2 -2
  90. package/dist/legacy-runtime/runtime-cores/core/AssistantRuntimeCore.d.ts.map +1 -0
  91. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.d.ts +2 -2
  92. package/dist/legacy-runtime/runtime-cores/core/BaseAssistantRuntimeCore.d.ts.map +1 -0
  93. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts +2 -2
  94. package/dist/legacy-runtime/runtime-cores/core/BaseThreadRuntimeCore.d.ts.map +1 -0
  95. package/dist/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.d.ts +2 -2
  96. package/dist/legacy-runtime/runtime-cores/core/ComposerRuntimeCore.d.ts.map +1 -0
  97. package/dist/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.d.ts +2 -2
  98. package/dist/legacy-runtime/runtime-cores/core/ThreadListRuntimeCore.d.ts.map +1 -0
  99. package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts +2 -2
  100. package/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore.d.ts.map +1 -0
  101. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts +2 -2
  102. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreAdapter.d.ts.map +1 -0
  103. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.d.ts +2 -2
  104. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreRuntimeCore.d.ts.map +1 -0
  105. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.d.ts +3 -2
  106. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadListRuntimeCore.d.ts.map +1 -0
  107. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts +2 -2
  108. package/dist/legacy-runtime/runtime-cores/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -0
  109. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.d.ts +3 -2
  110. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageConverter.d.ts.map +1 -0
  111. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts +3 -3
  112. package/dist/legacy-runtime/runtime-cores/external-store/ThreadMessageLike.d.ts.map +1 -0
  113. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.d.ts +2 -2
  114. package/dist/legacy-runtime/runtime-cores/external-store/auto-status.d.ts.map +1 -0
  115. package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.d.ts +2 -2
  116. package/dist/legacy-runtime/runtime-cores/external-store/createMessageConverter.d.ts.map +1 -0
  117. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts +2 -2
  118. package/dist/legacy-runtime/runtime-cores/external-store/external-message-converter.d.ts.map +1 -0
  119. package/dist/legacy-runtime/runtime-cores/external-store/useExternalStoreRuntime.d.ts +2 -2
  120. package/dist/legacy-runtime/runtime-cores/external-store/useExternalStoreRuntime.d.ts.map +1 -0
  121. package/dist/legacy-runtime/runtime-cores/local/ChatModelAdapter.d.ts +2 -2
  122. package/dist/legacy-runtime/runtime-cores/local/ChatModelAdapter.d.ts.map +1 -0
  123. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.d.ts +2 -2
  124. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeCore.d.ts.map +1 -0
  125. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.d.ts +4 -3
  126. package/dist/legacy-runtime/runtime-cores/local/LocalRuntimeOptions.d.ts.map +1 -0
  127. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.d.ts +3 -2
  128. package/dist/legacy-runtime/runtime-cores/local/LocalThreadListRuntimeCore.d.ts.map +1 -0
  129. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts +2 -2
  130. package/dist/legacy-runtime/runtime-cores/local/LocalThreadRuntimeCore.d.ts.map +1 -0
  131. package/dist/legacy-runtime/runtime-cores/local/shouldContinue.d.ts +2 -2
  132. package/dist/legacy-runtime/runtime-cores/local/shouldContinue.d.ts.map +1 -0
  133. package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.d.ts +2 -2
  134. package/dist/legacy-runtime/runtime-cores/local/useLocalRuntime.d.ts.map +1 -0
  135. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.d.ts +2 -2
  136. package/dist/legacy-runtime/runtime-cores/remote-thread-list/BaseSubscribable.d.ts.map +1 -0
  137. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.d.ts +2 -2
  138. package/dist/legacy-runtime/runtime-cores/remote-thread-list/EMPTY_THREAD_CORE.d.ts.map +1 -0
  139. package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.d.ts +2 -2
  140. package/dist/legacy-runtime/runtime-cores/remote-thread-list/OptimisticState.d.ts.map +1 -0
  141. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts +2 -2
  142. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListHookInstanceManager.d.ts.map +1 -0
  143. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +2 -2
  144. package/dist/legacy-runtime/runtime-cores/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -0
  145. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.d.ts +2 -2
  146. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/cloud.d.ts.map +1 -0
  147. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.d.ts +2 -2
  148. package/dist/legacy-runtime/runtime-cores/remote-thread-list/adapter/in-memory.d.ts.map +1 -0
  149. package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.d.ts +2 -2
  150. package/dist/legacy-runtime/runtime-cores/remote-thread-list/types.d.ts.map +1 -0
  151. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.d.ts +2 -2
  152. package/dist/legacy-runtime/runtime-cores/remote-thread-list/useRemoteThreadListRuntime.d.ts.map +1 -0
  153. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts +4 -3
  154. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.d.ts.map +1 -0
  155. package/dist/legacy-runtime/runtime-cores/utils/MessageRepository.js +1 -1
  156. package/dist/mcp-apps/McpAppRenderer.d.ts +49 -51
  157. package/dist/mcp-apps/McpAppRenderer.d.ts.map +1 -1
  158. package/dist/mcp-apps/McpAppRenderer.js +2 -2
  159. package/dist/mcp-apps/McpAppsRemoteHost.d.ts +1 -3
  160. package/dist/mcp-apps/McpAppsRemoteHost.d.ts.map +1 -1
  161. package/dist/mcp-apps/app-frame.d.ts +2 -4
  162. package/dist/mcp-apps/app-frame.d.ts.map +1 -1
  163. package/dist/mcp-apps/bridge.d.ts +11 -13
  164. package/dist/mcp-apps/bridge.d.ts.map +1 -1
  165. package/dist/mcp-apps/index.d.ts +5 -5
  166. package/dist/mcp-apps/index.d.ts.map +1 -0
  167. package/dist/mcp-apps/types.d.ts +95 -97
  168. package/dist/mcp-apps/types.d.ts.map +1 -1
  169. package/dist/mcp-apps/utils.d.ts +2 -3
  170. package/dist/mcp-apps/utils.d.ts.map +1 -1
  171. package/dist/model-context/frame/useAssistantFrameHost.d.ts +8 -8
  172. package/dist/model-context/frame/useAssistantFrameHost.d.ts.map +1 -1
  173. package/dist/model-context/frame/useAssistantFrameHost.js +1 -1
  174. package/dist/model-context/makeAssistantVisible.d.ts +4 -6
  175. package/dist/model-context/makeAssistantVisible.d.ts.map +1 -1
  176. package/dist/model-context/makeAssistantVisible.js +2 -2
  177. package/dist/primitives/actionBar/ActionBarCopy.d.ts +13 -14
  178. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  179. package/dist/primitives/actionBar/ActionBarCopy.js +1 -1
  180. package/dist/primitives/actionBar/ActionBarEdit.d.ts +10 -11
  181. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
  182. package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts +11 -12
  183. package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts.map +1 -1
  184. package/dist/primitives/actionBar/ActionBarExportMarkdown.js +4 -1
  185. package/dist/primitives/actionBar/ActionBarExportMarkdown.js.map +1 -1
  186. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +6 -7
  187. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
  188. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +11 -9
  189. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  190. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +6 -7
  191. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -1
  192. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +11 -9
  193. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  194. package/dist/primitives/actionBar/ActionBarInteractionContext.d.ts +1 -3
  195. package/dist/primitives/actionBar/ActionBarInteractionContext.d.ts.map +1 -1
  196. package/dist/primitives/actionBar/ActionBarReload.d.ts +10 -11
  197. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  198. package/dist/primitives/actionBar/ActionBarRoot.d.ts +49 -50
  199. package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -1
  200. package/dist/primitives/actionBar/ActionBarSpeak.d.ts +6 -7
  201. package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -1
  202. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +6 -7
  203. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
  204. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts +8 -10
  205. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -1
  206. package/dist/primitives/actionBar.d.ts +9 -14
  207. package/dist/primitives/actionBar.d.ts.map +1 -1
  208. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts +10 -12
  209. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts.map +1 -1
  210. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts +7 -9
  211. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts.map +1 -1
  212. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts +3 -5
  213. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts.map +1 -1
  214. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts +7 -9
  215. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts.map +1 -1
  216. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts +7 -9
  217. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts.map +1 -1
  218. package/dist/primitives/actionBarMore/scope.d.ts +4 -6
  219. package/dist/primitives/actionBarMore/scope.d.ts.map +1 -1
  220. package/dist/primitives/actionBarMore.d.ts +5 -10
  221. package/dist/primitives/actionBarMore.d.ts.map +1 -1
  222. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts +7 -9
  223. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts.map +1 -1
  224. package/dist/primitives/assistantModal/AssistantModalContent.d.ts +12 -14
  225. package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -1
  226. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts +5 -7
  227. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -1
  228. package/dist/primitives/assistantModal/AssistantModalRoot.js +1 -1
  229. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts +7 -9
  230. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -1
  231. package/dist/primitives/assistantModal/popoverRenderPrimitives.d.ts +7 -9
  232. package/dist/primitives/assistantModal/popoverRenderPrimitives.d.ts.map +1 -1
  233. package/dist/primitives/assistantModal/scope.d.ts +4 -6
  234. package/dist/primitives/assistantModal/scope.d.ts.map +1 -1
  235. package/dist/primitives/assistantModal.d.ts +4 -9
  236. package/dist/primitives/assistantModal.d.ts.map +1 -1
  237. package/dist/primitives/attachment/AttachmentName.d.ts +2 -4
  238. package/dist/primitives/attachment/AttachmentName.d.ts.map +1 -1
  239. package/dist/primitives/attachment/AttachmentRemove.d.ts +6 -7
  240. package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -1
  241. package/dist/primitives/attachment/AttachmentRemove.js +1 -1
  242. package/dist/primitives/attachment/AttachmentRoot.d.ts +10 -11
  243. package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -1
  244. package/dist/primitives/attachment/AttachmentThumb.d.ts +6 -7
  245. package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -1
  246. package/dist/primitives/attachment/AttachmentThumb.js +1 -1
  247. package/dist/primitives/attachment.d.ts +4 -9
  248. package/dist/primitives/attachment.d.ts.map +1 -1
  249. package/dist/primitives/branchPicker/BranchPickerCount.d.ts +6 -8
  250. package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -1
  251. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +10 -11
  252. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  253. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts +2 -4
  254. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts.map +1 -1
  255. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +10 -11
  256. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  257. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +18 -20
  258. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -1
  259. package/dist/primitives/branchPicker/BranchPickerRoot.js +1 -1
  260. package/dist/primitives/branchPicker.d.ts +5 -10
  261. package/dist/primitives/branchPicker.d.ts.map +1 -1
  262. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts +10 -11
  263. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts.map +1 -1
  264. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js +1 -1
  265. package/dist/primitives/chainOfThought/ChainOfThoughtParts.d.ts +2 -2
  266. package/dist/primitives/chainOfThought/ChainOfThoughtParts.d.ts.map +1 -0
  267. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts +6 -7
  268. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts.map +1 -1
  269. package/dist/primitives/chainOfThought.d.ts +3 -8
  270. package/dist/primitives/chainOfThought.d.ts.map +1 -1
  271. package/dist/primitives/composer/ComposerAddAttachment.d.ts +11 -12
  272. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  273. package/dist/primitives/composer/ComposerAddAttachment.js +1 -1
  274. package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts +10 -11
  275. package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts.map +1 -1
  276. package/dist/primitives/composer/ComposerAttachmentDropzone.js +9 -7
  277. package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
  278. package/dist/primitives/composer/ComposerAttachments.d.ts +2 -2
  279. package/dist/primitives/composer/ComposerAttachments.d.ts.map +1 -0
  280. package/dist/primitives/composer/ComposerCancel.d.ts +10 -11
  281. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
  282. package/dist/primitives/composer/ComposerCompactContext.d.ts +1 -3
  283. package/dist/primitives/composer/ComposerCompactContext.d.ts.map +1 -1
  284. package/dist/primitives/composer/ComposerDictate.d.ts +6 -7
  285. package/dist/primitives/composer/ComposerDictate.d.ts.map +1 -1
  286. package/dist/primitives/composer/ComposerDictationTranscript.d.ts +5 -7
  287. package/dist/primitives/composer/ComposerDictationTranscript.d.ts.map +1 -1
  288. package/dist/primitives/composer/ComposerDictationTranscript.js +1 -1
  289. package/dist/primitives/composer/ComposerIf.d.ts +3 -2
  290. package/dist/primitives/composer/ComposerIf.d.ts.map +1 -0
  291. package/dist/primitives/composer/ComposerInput.d.ts +72 -74
  292. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  293. package/dist/primitives/composer/ComposerInput.js +3 -3
  294. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  295. package/dist/primitives/composer/ComposerInputPluginContext.d.ts +22 -24
  296. package/dist/primitives/composer/ComposerInputPluginContext.d.ts.map +1 -1
  297. package/dist/primitives/composer/ComposerQueue.d.ts +2 -2
  298. package/dist/primitives/composer/ComposerQueue.d.ts.map +1 -0
  299. package/dist/primitives/composer/ComposerQuote.d.ts +13 -15
  300. package/dist/primitives/composer/ComposerQuote.d.ts.map +1 -1
  301. package/dist/primitives/composer/ComposerQuote.js +1 -1
  302. package/dist/primitives/composer/ComposerRoot.d.ts +26 -28
  303. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -1
  304. package/dist/primitives/composer/ComposerRoot.js +1 -1
  305. package/dist/primitives/composer/ComposerSend.d.ts +9 -11
  306. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  307. package/dist/primitives/composer/ComposerStopDictation.d.ts +6 -7
  308. package/dist/primitives/composer/ComposerStopDictation.d.ts.map +1 -1
  309. package/dist/primitives/composer/ComposerStopDictation.js +1 -1
  310. package/dist/primitives/composer/trigger/TriggerPopover.d.ts +27 -29
  311. package/dist/primitives/composer/trigger/TriggerPopover.d.ts.map +1 -1
  312. package/dist/primitives/composer/trigger/TriggerPopover.js +2 -2
  313. package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts +10 -12
  314. package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts.map +1 -1
  315. package/dist/primitives/composer/trigger/TriggerPopoverAction.js +1 -1
  316. package/dist/primitives/composer/trigger/TriggerPopoverBack.d.ts +5 -7
  317. package/dist/primitives/composer/trigger/TriggerPopoverBack.d.ts.map +1 -1
  318. package/dist/primitives/composer/trigger/TriggerPopoverCategories.d.ts +16 -18
  319. package/dist/primitives/composer/trigger/TriggerPopoverCategories.d.ts.map +1 -1
  320. package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts +8 -10
  321. package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts.map +1 -1
  322. package/dist/primitives/composer/trigger/TriggerPopoverDirective.js +1 -1
  323. package/dist/primitives/composer/trigger/TriggerPopoverItems.d.ts +18 -20
  324. package/dist/primitives/composer/trigger/TriggerPopoverItems.d.ts.map +1 -1
  325. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts +41 -43
  326. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts.map +1 -1
  327. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts +27 -28
  328. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts.map +1 -1
  329. package/dist/primitives/composer/trigger/detectTrigger.d.ts +3 -5
  330. package/dist/primitives/composer/trigger/detectTrigger.d.ts.map +1 -1
  331. package/dist/primitives/composer/trigger/index.d.ts +15 -18
  332. package/dist/primitives/composer/trigger/index.d.ts.map +1 -1
  333. package/dist/primitives/composer/trigger/matchesTriggerItemQuery.d.ts +1 -3
  334. package/dist/primitives/composer/trigger/matchesTriggerItemQuery.d.ts.map +1 -1
  335. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts +10 -12
  336. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts.map +1 -1
  337. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts +22 -24
  338. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts.map +1 -1
  339. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts +18 -20
  340. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts.map +1 -1
  341. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts +23 -25
  342. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts.map +1 -1
  343. package/dist/primitives/composer/useComposerInputState.d.ts +4 -6
  344. package/dist/primitives/composer/useComposerInputState.d.ts.map +1 -1
  345. package/dist/primitives/composer.d.ts +31 -25
  346. package/dist/primitives/composer.d.ts.map +1 -1
  347. package/dist/primitives/dropdownMenuRenderPrimitives.d.ts +9 -11
  348. package/dist/primitives/dropdownMenuRenderPrimitives.d.ts.map +1 -1
  349. package/dist/primitives/error/ErrorMessage.d.ts +5 -7
  350. package/dist/primitives/error/ErrorMessage.d.ts.map +1 -1
  351. package/dist/primitives/error/ErrorRoot.d.ts +5 -7
  352. package/dist/primitives/error/ErrorRoot.d.ts.map +1 -1
  353. package/dist/primitives/error.d.ts +2 -7
  354. package/dist/primitives/error.d.ts.map +1 -1
  355. package/dist/primitives/message/MessageAttachments.d.ts +2 -2
  356. package/dist/primitives/message/MessageAttachments.d.ts.map +1 -0
  357. package/dist/primitives/message/MessageError.d.ts +1 -3
  358. package/dist/primitives/message/MessageError.d.ts.map +1 -1
  359. package/dist/primitives/message/MessageIf.d.ts +15 -16
  360. package/dist/primitives/message/MessageIf.d.ts.map +1 -1
  361. package/dist/primitives/message/MessageIf.js +6 -3
  362. package/dist/primitives/message/MessageIf.js.map +1 -1
  363. package/dist/primitives/message/MessageParts.d.ts +4 -6
  364. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  365. package/dist/primitives/message/MessagePartsGrouped.d.ts +132 -133
  366. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
  367. package/dist/primitives/message/MessagePartsGrouped.js +103 -71
  368. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  369. package/dist/primitives/message/MessageRoot.d.ts +5 -7
  370. package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
  371. package/dist/primitives/message/MessageRoot.js +6 -2
  372. package/dist/primitives/message/MessageRoot.js.map +1 -1
  373. package/dist/primitives/message.d.ts +12 -12
  374. package/dist/primitives/message.d.ts.map +1 -1
  375. package/dist/primitives/messagePart/MessagePartImage.d.ts +9 -11
  376. package/dist/primitives/messagePart/MessagePartImage.d.ts.map +1 -1
  377. package/dist/primitives/messagePart/MessagePartInProgress.d.ts +2 -2
  378. package/dist/primitives/messagePart/MessagePartInProgress.d.ts.map +1 -0
  379. package/dist/primitives/messagePart/MessagePartText.d.ts +35 -37
  380. package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -1
  381. package/dist/primitives/messagePart/useMessagePartData.d.ts +1 -3
  382. package/dist/primitives/messagePart/useMessagePartData.d.ts.map +1 -1
  383. package/dist/primitives/messagePart/useMessagePartFile.d.ts +2 -4
  384. package/dist/primitives/messagePart/useMessagePartFile.d.ts.map +1 -1
  385. package/dist/primitives/messagePart/useMessagePartImage.d.ts +2 -4
  386. package/dist/primitives/messagePart/useMessagePartImage.d.ts.map +1 -1
  387. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts +2 -4
  388. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts.map +1 -1
  389. package/dist/primitives/messagePart/useMessagePartSource.d.ts +19 -21
  390. package/dist/primitives/messagePart/useMessagePartSource.d.ts.map +1 -1
  391. package/dist/primitives/messagePart/useMessagePartText.d.ts +3 -5
  392. package/dist/primitives/messagePart/useMessagePartText.d.ts.map +1 -1
  393. package/dist/primitives/messagePart.d.ts +4 -9
  394. package/dist/primitives/messagePart.d.ts.map +1 -1
  395. package/dist/primitives/queueItem/QueueItemRemove.d.ts +6 -7
  396. package/dist/primitives/queueItem/QueueItemRemove.d.ts.map +1 -1
  397. package/dist/primitives/queueItem/QueueItemRemove.js +1 -1
  398. package/dist/primitives/queueItem/QueueItemSteer.d.ts +6 -7
  399. package/dist/primitives/queueItem/QueueItemSteer.d.ts.map +1 -1
  400. package/dist/primitives/queueItem/QueueItemSteer.js +1 -1
  401. package/dist/primitives/queueItem/QueueItemText.d.ts +5 -7
  402. package/dist/primitives/queueItem/QueueItemText.d.ts.map +1 -1
  403. package/dist/primitives/queueItem/QueueItemText.js +1 -1
  404. package/dist/primitives/queueItem.d.ts +3 -8
  405. package/dist/primitives/queueItem.d.ts.map +1 -1
  406. package/dist/primitives/reasoning/useScrollLock.d.ts +1 -3
  407. package/dist/primitives/reasoning/useScrollLock.d.ts.map +1 -1
  408. package/dist/primitives/reasoning/useScrollLock.js +14 -15
  409. package/dist/primitives/reasoning/useScrollLock.js.map +1 -1
  410. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts +5 -7
  411. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts.map +1 -1
  412. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js +1 -1
  413. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts +12 -13
  414. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts.map +1 -1
  415. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js +81 -42
  416. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js.map +1 -1
  417. package/dist/primitives/selectionToolbar.d.ts +2 -7
  418. package/dist/primitives/selectionToolbar.d.ts.map +1 -1
  419. package/dist/primitives/suggestion/SuggestionDescription.d.ts +5 -7
  420. package/dist/primitives/suggestion/SuggestionDescription.d.ts.map +1 -1
  421. package/dist/primitives/suggestion/SuggestionDescription.js +1 -1
  422. package/dist/primitives/suggestion/SuggestionTitle.d.ts +5 -7
  423. package/dist/primitives/suggestion/SuggestionTitle.d.ts.map +1 -1
  424. package/dist/primitives/suggestion/SuggestionTitle.js +1 -1
  425. package/dist/primitives/suggestion/SuggestionTrigger.d.ts +35 -36
  426. package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -1
  427. package/dist/primitives/suggestion.d.ts +3 -8
  428. package/dist/primitives/suggestion.d.ts.map +1 -1
  429. package/dist/primitives/thread/ThreadEmpty.d.ts +2 -4
  430. package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -1
  431. package/dist/primitives/thread/ThreadIf.d.ts +7 -8
  432. package/dist/primitives/thread/ThreadIf.d.ts.map +1 -1
  433. package/dist/primitives/thread/ThreadMessages.d.ts +2 -2
  434. package/dist/primitives/thread/ThreadMessages.d.ts.map +1 -0
  435. package/dist/primitives/thread/ThreadRoot.d.ts +12 -13
  436. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  437. package/dist/primitives/thread/ThreadRoot.js +57 -30
  438. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  439. package/dist/primitives/thread/ThreadRootElementContext.d.ts +4 -0
  440. package/dist/primitives/thread/ThreadRootElementContext.d.ts.map +1 -0
  441. package/dist/primitives/thread/ThreadRootElementContext.js +11 -0
  442. package/dist/primitives/thread/ThreadRootElementContext.js.map +1 -0
  443. package/dist/primitives/thread/ThreadScrollToBottom.d.ts +11 -13
  444. package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -1
  445. package/dist/primitives/thread/ThreadSuggestion.d.ts +47 -48
  446. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  447. package/dist/primitives/thread/ThreadSuggestions.d.ts +2 -2
  448. package/dist/primitives/thread/ThreadSuggestions.d.ts.map +1 -0
  449. package/dist/primitives/thread/ThreadViewport.d.ts +88 -90
  450. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
  451. package/dist/primitives/thread/ThreadViewport.js +1 -1
  452. package/dist/primitives/thread/ThreadViewportFooter.d.ts +5 -7
  453. package/dist/primitives/thread/ThreadViewportFooter.d.ts.map +1 -1
  454. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.d.ts +6 -8
  455. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.d.ts.map +1 -1
  456. package/dist/primitives/thread/topAnchor/createReserveObservers.d.ts +2 -4
  457. package/dist/primitives/thread/topAnchor/createReserveObservers.d.ts.map +1 -1
  458. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.d.ts +16 -18
  459. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.d.ts.map +1 -1
  460. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js +55 -6
  461. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js.map +1 -1
  462. package/dist/primitives/thread/topAnchor/topAnchorTurn.d.ts +10 -11
  463. package/dist/primitives/thread/topAnchor/topAnchorTurn.d.ts.map +1 -1
  464. package/dist/primitives/thread/topAnchor/topAnchorUtils.d.ts +0 -2
  465. package/dist/primitives/thread/topAnchor/topAnchorUtils.d.ts.map +1 -1
  466. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.d.ts +0 -2
  467. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.d.ts.map +1 -1
  468. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts +29 -31
  469. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  470. package/dist/primitives/thread/useThreadViewportAutoScroll.js +16 -1
  471. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  472. package/dist/primitives/thread.d.ts +12 -15
  473. package/dist/primitives/thread.d.ts.map +1 -1
  474. package/dist/primitives/threadList/ThreadListItems.d.ts +2 -2
  475. package/dist/primitives/threadList/ThreadListItems.d.ts.map +1 -0
  476. package/dist/primitives/threadList/ThreadListLoadMore.d.ts +6 -7
  477. package/dist/primitives/threadList/ThreadListLoadMore.d.ts.map +1 -1
  478. package/dist/primitives/threadList/ThreadListNew.d.ts +5 -7
  479. package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
  480. package/dist/primitives/threadList/ThreadListNew.js +1 -1
  481. package/dist/primitives/threadList/ThreadListRoot.d.ts +6 -7
  482. package/dist/primitives/threadList/ThreadListRoot.d.ts.map +1 -1
  483. package/dist/primitives/threadList.d.ts +5 -9
  484. package/dist/primitives/threadList.d.ts.map +1 -1
  485. package/dist/primitives/threadListFocusGroup.d.ts +14 -16
  486. package/dist/primitives/threadListFocusGroup.d.ts.map +1 -1
  487. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +6 -7
  488. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -1
  489. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +6 -7
  490. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -1
  491. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +6 -7
  492. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -1
  493. package/dist/primitives/threadListItem/ThreadListItemRoot.js +2 -1
  494. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  495. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts +2 -2
  496. package/dist/primitives/threadListItem/ThreadListItemTitle.d.ts.map +1 -0
  497. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +6 -7
  498. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -1
  499. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +6 -7
  500. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -1
  501. package/dist/primitives/threadListItem.d.ts +6 -11
  502. package/dist/primitives/threadListItem.d.ts.map +1 -1
  503. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts +10 -12
  504. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts.map +1 -1
  505. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js +1 -0
  506. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js.map +1 -1
  507. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts +7 -9
  508. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts.map +1 -1
  509. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts +11 -13
  510. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts.map +1 -1
  511. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts +7 -9
  512. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts.map +1 -1
  513. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts +7 -9
  514. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts.map +1 -1
  515. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js +1 -0
  516. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js.map +1 -1
  517. package/dist/primitives/threadListItemMore/scope.d.ts +4 -6
  518. package/dist/primitives/threadListItemMore/scope.d.ts.map +1 -1
  519. package/dist/primitives/threadListItemMore.d.ts +5 -10
  520. package/dist/primitives/threadListItemMore.d.ts.map +1 -1
  521. package/dist/sandbox-host/SandboxHost.d.ts +24 -26
  522. package/dist/sandbox-host/SandboxHost.d.ts.map +1 -1
  523. package/dist/unstable/useComposerInput.d.ts +32 -34
  524. package/dist/unstable/useComposerInput.d.ts.map +1 -1
  525. package/dist/unstable/useComposerInput.js +1 -1
  526. package/dist/unstable/useComposerInputHistory.d.ts +3 -5
  527. package/dist/unstable/useComposerInputHistory.d.ts.map +1 -1
  528. package/dist/unstable/useComposerInputHistory.js +2 -2
  529. package/dist/unstable/useLiveCompletionAdapter.d.ts +18 -20
  530. package/dist/unstable/useLiveCompletionAdapter.d.ts.map +1 -1
  531. package/dist/unstable/useMentionAdapter.d.ts +57 -59
  532. package/dist/unstable/useMentionAdapter.d.ts.map +1 -1
  533. package/dist/unstable/useMentionAdapter.js +1 -1
  534. package/dist/unstable/useMessageStallDetection.d.ts +10 -12
  535. package/dist/unstable/useMessageStallDetection.d.ts.map +1 -1
  536. package/dist/unstable/useMessageStallDetection.js +1 -1
  537. package/dist/unstable/useModelContextSnapshot.d.ts +13 -15
  538. package/dist/unstable/useModelContextSnapshot.d.ts.map +1 -1
  539. package/dist/unstable/useSlashCommandAdapter.d.ts +20 -22
  540. package/dist/unstable/useSlashCommandAdapter.d.ts.map +1 -1
  541. package/dist/unstable/webmcp/WebMcpRegistrationResource.d.ts +8 -9
  542. package/dist/unstable/webmcp/WebMcpRegistrationResource.d.ts.map +1 -1
  543. package/dist/unstable/webmcp/WebMcpRegistrationResource.js +27 -39
  544. package/dist/unstable/webmcp/WebMcpRegistrationResource.js.map +1 -1
  545. package/dist/unstable/webmcp/convertTools.d.ts +5 -7
  546. package/dist/unstable/webmcp/convertTools.d.ts.map +1 -1
  547. package/dist/unstable/webmcp/convertTools.js +2 -2
  548. package/dist/unstable/webmcp/convertTools.js.map +1 -1
  549. package/dist/unstable/webmcp/useWebMcpProvider.d.ts +4 -6
  550. package/dist/unstable/webmcp/useWebMcpProvider.d.ts.map +1 -1
  551. package/dist/unstable/webmcp/useWebMcpProvider.js +22 -13
  552. package/dist/unstable/webmcp/useWebMcpProvider.js.map +1 -1
  553. package/dist/unstable/webmcp/webmcp-host.d.ts +23 -25
  554. package/dist/unstable/webmcp/webmcp-host.d.ts.map +1 -1
  555. package/dist/utils/Primitive.d.ts +91 -92
  556. package/dist/utils/Primitive.d.ts.map +1 -1
  557. package/dist/utils/RequireAtLeastOne.d.ts +3 -3
  558. package/dist/utils/RequireAtLeastOne.d.ts.map +1 -1
  559. package/dist/utils/createActionButton.d.ts +5 -6
  560. package/dist/utils/createActionButton.d.ts.map +1 -1
  561. package/dist/utils/getSelectionMessageId.d.ts +1 -3
  562. package/dist/utils/getSelectionMessageId.d.ts.map +1 -1
  563. package/dist/utils/getSelectionMessageId.js +2 -1
  564. package/dist/utils/getSelectionMessageId.js.map +1 -1
  565. package/dist/utils/hooks/useManagedRef.d.ts +0 -2
  566. package/dist/utils/hooks/useManagedRef.d.ts.map +1 -1
  567. package/dist/utils/hooks/useMediaQuery.d.ts +0 -2
  568. package/dist/utils/hooks/useMediaQuery.d.ts.map +1 -1
  569. package/dist/utils/hooks/useOnResizeContent.d.ts +0 -2
  570. package/dist/utils/hooks/useOnResizeContent.d.ts.map +1 -1
  571. package/dist/utils/hooks/useOnScrollToBottom.d.ts +1 -3
  572. package/dist/utils/hooks/useOnScrollToBottom.d.ts.map +1 -1
  573. package/dist/utils/hooks/useSizeHandle.d.ts +1 -3
  574. package/dist/utils/hooks/useSizeHandle.d.ts.map +1 -1
  575. package/dist/utils/smooth/SmoothContext.d.ts +105 -107
  576. package/dist/utils/smooth/SmoothContext.d.ts.map +1 -1
  577. package/dist/utils/smooth/SmoothContext.js +1 -1
  578. package/dist/utils/smooth/useSmooth.d.ts +26 -28
  579. package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
  580. package/dist/utils/smooth/useSmooth.js +1 -1
  581. package/package.json +12 -9
  582. package/src/assistant-transport.ts +5 -4
  583. package/src/cloud-renderer/CloudRendererHost.test.tsx +362 -0
  584. package/src/cloud-renderer/CloudRendererHost.tsx +249 -0
  585. package/src/index.ts +29 -1
  586. package/src/primitives/actionBar/ActionBarExportMarkdown.test.tsx +30 -0
  587. package/src/primitives/actionBar/ActionBarExportMarkdown.tsx +4 -0
  588. package/src/primitives/actionBar/ActionBarFeedback.test.tsx +87 -0
  589. package/src/primitives/actionBar/ActionBarFeedbackNegative.tsx +1 -0
  590. package/src/primitives/actionBar/ActionBarFeedbackPositive.tsx +1 -0
  591. package/src/primitives/composer/ComposerAttachmentDropzone.test.tsx +54 -0
  592. package/src/primitives/composer/ComposerAttachmentDropzone.tsx +12 -6
  593. package/src/primitives/composer/ComposerInput.test.tsx +18 -0
  594. package/src/primitives/composer/ComposerInput.tsx +8 -2
  595. package/src/primitives/message/MessageIf.test.tsx +72 -0
  596. package/src/primitives/message/MessageIf.ts +8 -3
  597. package/src/primitives/message/MessagePartsGrouped.test.tsx +151 -4
  598. package/src/primitives/message/MessagePartsGrouped.tool-interaction.test.tsx +97 -0
  599. package/src/primitives/message/MessagePartsGrouped.tsx +14 -5
  600. package/src/primitives/message/MessageRoot.test.tsx +108 -0
  601. package/src/primitives/message/MessageRoot.tsx +5 -1
  602. package/src/primitives/reasoning/useScrollLock.test.tsx +47 -0
  603. package/src/primitives/reasoning/useScrollLock.ts +15 -17
  604. package/src/primitives/selectionToolbar/SelectionToolbarRoot.test.tsx +228 -14
  605. package/src/primitives/selectionToolbar/SelectionToolbarRoot.tsx +60 -12
  606. package/src/primitives/thread/ThreadRoot.test.tsx +130 -0
  607. package/src/primitives/thread/ThreadRoot.tsx +39 -3
  608. package/src/primitives/thread/ThreadRootElementContext.ts +10 -0
  609. package/src/primitives/thread/topAnchor/mountTopAnchorReserve.test.ts +196 -0
  610. package/src/primitives/thread/topAnchor/mountTopAnchorReserve.ts +78 -5
  611. package/src/primitives/thread/useThreadViewportAutoScroll.test.tsx +222 -0
  612. package/src/primitives/thread/useThreadViewportAutoScroll.ts +37 -2
  613. package/src/primitives/threadListItem/ThreadListItemRoot.tsx +2 -0
  614. package/src/primitives/threadListItem/ThreadListKeyboardNav.test.tsx +65 -0
  615. package/src/primitives/threadListItemMore/ThreadListItemMoreContent.tsx +7 -0
  616. package/src/primitives/threadListItemMore/ThreadListItemMoreTrigger.tsx +2 -0
  617. package/src/tests/RemoteThreadListRuntime.reloadMainThread.test.tsx +8 -13
  618. package/src/tests/augmentations.test.ts +7 -0
  619. package/src/tests/remote-thread-list-test-helpers.ts +15 -0
  620. package/src/tests/threadListItemIsRunning.test.tsx +10 -7
  621. package/src/unstable/webmcp/WebMcpRegistrationResource.ts +9 -8
  622. package/src/unstable/webmcp/convertTools.test.ts +23 -3
  623. package/src/unstable/webmcp/convertTools.ts +7 -11
  624. package/src/unstable/webmcp/useWebMcpProvider.test.tsx +36 -2
  625. package/src/unstable/webmcp/useWebMcpProvider.ts +40 -13
  626. package/src/utils/getSelectionMessageId.test.ts +28 -0
  627. package/src/utils/getSelectionMessageId.ts +7 -1
  628. package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -5
  629. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +0 -1
  630. package/dist/tests/remote-thread-list-test-helpers.js +0 -29
  631. package/dist/tests/remote-thread-list-test-helpers.js.map +0 -1
  632. package/dist/tests/setup.d.ts +0 -1
  633. package/dist/tests/setup.js +0 -6
  634. package/dist/tests/setup.js.map +0 -1
@@ -5,8 +5,8 @@ import { MessagePartPrimitiveText } from "../messagePart/MessagePartText.js";
5
5
  import { MessagePartPrimitiveImage } from "../messagePart/MessagePartImage.js";
6
6
  import { MessagePartPrimitiveInProgress } from "../messagePart/MessagePartInProgress.js";
7
7
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
8
- import { useAui, useAuiState } from "@assistant-ui/store";
9
8
  import { memo } from "@assistant-ui/tap/react-shim";
9
+ import { useAui, useAuiState } from "@assistant-ui/store";
10
10
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
11
11
  //#region src/primitives/message/MessagePartsGrouped.tsx
12
12
  /**
@@ -104,20 +104,20 @@ const DataUIDisplay = (t0) => {
104
104
  let t1;
105
105
  if ($[3] !== Fallback || $[4] !== props.name) {
106
106
  t1 = (s) => {
107
- const Render = s.dataRenderers.renderers[props.name] ?? Fallback;
108
- if (Array.isArray(Render)) return Render[0] ?? Fallback;
109
- return Render;
107
+ const named = s.dataRenderers.renderers[props.name]?.[0];
108
+ if (named) return named;
109
+ return s.dataRenderers.fallbacks[0] ?? Fallback;
110
110
  };
111
111
  $[3] = Fallback;
112
112
  $[4] = props.name;
113
113
  $[5] = t1;
114
114
  } else t1 = $[5];
115
- const Render_0 = useAuiState(t1);
116
- if (!Render_0) return null;
115
+ const Render = useAuiState(t1);
116
+ if (!Render) return null;
117
117
  let t2;
118
- if ($[6] !== Render_0 || $[7] !== props) {
119
- t2 = /* @__PURE__ */ jsx(Render_0, { ...props });
120
- $[6] = Render_0;
118
+ if ($[6] !== Render || $[7] !== props) {
119
+ t2 = /* @__PURE__ */ jsx(Render, { ...props });
120
+ $[6] = Render;
121
121
  $[7] = props;
122
122
  $[8] = t2;
123
123
  } else t2 = $[8];
@@ -139,7 +139,7 @@ const defaultComponents = {
139
139
  Group: ({ children }) => children
140
140
  };
141
141
  const MessagePartComponent = (t0) => {
142
- const $ = c(37);
142
+ const $ = c(50);
143
143
  const { components: t1 } = t0;
144
144
  let t2;
145
145
  if ($[0] !== t1) {
@@ -168,118 +168,150 @@ const MessagePartComponent = (t0) => {
168
168
  const addResult = aui.part.addToolResult;
169
169
  const resume = aui.part.resumeToolCall;
170
170
  const respondToApproval = aui.part.respondToToolApproval;
171
+ const unstable_recordInteraction = aui.part.unstable_recordInteraction;
171
172
  if ("Override" in tools) {
172
173
  let t11;
173
- if ($[4] !== addResult || $[5] !== part || $[6] !== respondToApproval || $[7] !== resume || $[8] !== tools.Override) {
174
- t11 = /* @__PURE__ */ jsx(tools.Override, {
174
+ if ($[4] !== unstable_recordInteraction) {
175
+ t11 = unstable_recordInteraction && { unstable_recordInteraction };
176
+ $[4] = unstable_recordInteraction;
177
+ $[5] = t11;
178
+ } else t11 = $[5];
179
+ let t12;
180
+ if ($[6] !== addResult || $[7] !== part || $[8] !== respondToApproval || $[9] !== resume || $[10] !== t11 || $[11] !== tools.Override) {
181
+ t12 = /* @__PURE__ */ jsx(tools.Override, {
175
182
  ...part,
176
183
  addResult,
177
184
  resume,
178
- respondToApproval
185
+ respondToApproval,
186
+ ...t11
179
187
  });
180
- $[4] = addResult;
181
- $[5] = part;
182
- $[6] = respondToApproval;
183
- $[7] = resume;
184
- $[8] = tools.Override;
185
- $[9] = t11;
186
- } else t11 = $[9];
187
- return t11;
188
+ $[6] = addResult;
189
+ $[7] = part;
190
+ $[8] = respondToApproval;
191
+ $[9] = resume;
192
+ $[10] = t11;
193
+ $[11] = tools.Override;
194
+ $[12] = t12;
195
+ } else t12 = $[12];
196
+ return t12;
188
197
  }
189
- const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;
190
198
  let t11;
191
- if ($[10] !== Tool || $[11] !== addResult || $[12] !== part || $[13] !== respondToApproval || $[14] !== resume) {
192
- t11 = /* @__PURE__ */ jsx(ToolUIDisplay, {
199
+ if ($[13] !== part.toolName || $[14] !== tools.Fallback || $[15] !== tools.by_name) {
200
+ t11 = (tools.by_name && Object.hasOwn(tools.by_name, part.toolName) ? tools.by_name[part.toolName] : void 0) ?? tools.Fallback;
201
+ $[13] = part.toolName;
202
+ $[14] = tools.Fallback;
203
+ $[15] = tools.by_name;
204
+ $[16] = t11;
205
+ } else t11 = $[16];
206
+ const Tool = t11;
207
+ let t12;
208
+ if ($[17] !== unstable_recordInteraction) {
209
+ t12 = unstable_recordInteraction && { unstable_recordInteraction };
210
+ $[17] = unstable_recordInteraction;
211
+ $[18] = t12;
212
+ } else t12 = $[18];
213
+ let t13;
214
+ if ($[19] !== Tool || $[20] !== addResult || $[21] !== part || $[22] !== respondToApproval || $[23] !== resume || $[24] !== t12) {
215
+ t13 = /* @__PURE__ */ jsx(ToolUIDisplay, {
193
216
  ...part,
194
217
  Fallback: Tool,
195
218
  addResult,
196
219
  resume,
197
- respondToApproval
220
+ respondToApproval,
221
+ ...t12
198
222
  });
199
- $[10] = Tool;
200
- $[11] = addResult;
201
- $[12] = part;
202
- $[13] = respondToApproval;
203
- $[14] = resume;
204
- $[15] = t11;
205
- } else t11 = $[15];
206
- return t11;
223
+ $[19] = Tool;
224
+ $[20] = addResult;
225
+ $[21] = part;
226
+ $[22] = respondToApproval;
227
+ $[23] = resume;
228
+ $[24] = t12;
229
+ $[25] = t13;
230
+ } else t13 = $[25];
231
+ return t13;
207
232
  }
208
233
  if (part.status?.type === "requires-action") throw new Error("Encountered unexpected requires-action status");
209
234
  switch (type) {
210
235
  case "text": {
211
236
  let t11;
212
- if ($[16] !== Text || $[17] !== part) {
237
+ if ($[26] !== Text || $[27] !== part) {
213
238
  t11 = /* @__PURE__ */ jsx(Text, { ...part });
214
- $[16] = Text;
215
- $[17] = part;
216
- $[18] = t11;
217
- } else t11 = $[18];
239
+ $[26] = Text;
240
+ $[27] = part;
241
+ $[28] = t11;
242
+ } else t11 = $[28];
218
243
  return t11;
219
244
  }
220
245
  case "reasoning": {
221
246
  let t11;
222
- if ($[19] !== Reasoning || $[20] !== part) {
247
+ if ($[29] !== Reasoning || $[30] !== part) {
223
248
  t11 = /* @__PURE__ */ jsx(Reasoning, { ...part });
224
- $[19] = Reasoning;
225
- $[20] = part;
226
- $[21] = t11;
227
- } else t11 = $[21];
249
+ $[29] = Reasoning;
250
+ $[30] = part;
251
+ $[31] = t11;
252
+ } else t11 = $[31];
228
253
  return t11;
229
254
  }
230
255
  case "source": {
231
256
  let t11;
232
- if ($[22] !== Source || $[23] !== part) {
257
+ if ($[32] !== Source || $[33] !== part) {
233
258
  t11 = /* @__PURE__ */ jsx(Source, { ...part });
234
- $[22] = Source;
235
- $[23] = part;
236
- $[24] = t11;
237
- } else t11 = $[24];
259
+ $[32] = Source;
260
+ $[33] = part;
261
+ $[34] = t11;
262
+ } else t11 = $[34];
238
263
  return t11;
239
264
  }
240
265
  case "image": {
241
266
  let t11;
242
- if ($[25] !== Image || $[26] !== part) {
267
+ if ($[35] !== Image || $[36] !== part) {
243
268
  t11 = /* @__PURE__ */ jsx(Image, { ...part });
244
- $[25] = Image;
245
- $[26] = part;
246
- $[27] = t11;
247
- } else t11 = $[27];
269
+ $[35] = Image;
270
+ $[36] = part;
271
+ $[37] = t11;
272
+ } else t11 = $[37];
248
273
  return t11;
249
274
  }
250
275
  case "file": {
251
276
  let t11;
252
- if ($[28] !== File || $[29] !== part) {
277
+ if ($[38] !== File || $[39] !== part) {
253
278
  t11 = /* @__PURE__ */ jsx(File, { ...part });
254
- $[28] = File;
255
- $[29] = part;
256
- $[30] = t11;
257
- } else t11 = $[30];
279
+ $[38] = File;
280
+ $[39] = part;
281
+ $[40] = t11;
282
+ } else t11 = $[40];
258
283
  return t11;
259
284
  }
260
285
  case "audio": {
261
286
  let t11;
262
- if ($[31] !== Audio || $[32] !== part) {
287
+ if ($[41] !== Audio || $[42] !== part) {
263
288
  t11 = /* @__PURE__ */ jsx(Audio, { ...part });
264
- $[31] = Audio;
265
- $[32] = part;
266
- $[33] = t11;
267
- } else t11 = $[33];
289
+ $[41] = Audio;
290
+ $[42] = part;
291
+ $[43] = t11;
292
+ } else t11 = $[43];
268
293
  return t11;
269
294
  }
270
295
  case "data": {
271
- const Data = data?.by_name?.[part.name] ?? data?.Fallback;
272
296
  let t11;
273
- if ($[34] !== Data || $[35] !== part) {
274
- t11 = /* @__PURE__ */ jsx(DataUIDisplay, {
297
+ if ($[44] !== data || $[45] !== part.name) {
298
+ t11 = (data?.by_name && Object.hasOwn(data.by_name, part.name) ? data.by_name[part.name] : void 0) ?? data?.Fallback;
299
+ $[44] = data;
300
+ $[45] = part.name;
301
+ $[46] = t11;
302
+ } else t11 = $[46];
303
+ const Data = t11;
304
+ let t12;
305
+ if ($[47] !== Data || $[48] !== part) {
306
+ t12 = /* @__PURE__ */ jsx(DataUIDisplay, {
275
307
  ...part,
276
308
  Fallback: Data
277
309
  });
278
- $[34] = Data;
279
- $[35] = part;
280
- $[36] = t11;
281
- } else t11 = $[36];
282
- return t11;
310
+ $[47] = Data;
311
+ $[48] = part;
312
+ $[49] = t12;
313
+ } else t12 = $[49];
314
+ return t12;
283
315
  }
284
316
  default:
285
317
  console.warn(`Unknown message part type: ${type}`);
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePartsGrouped.js","names":["c","_c","ComponentType","FC","memo","PropsWithChildren","useMemo","useAuiState","useAui","PartByIndexProvider","TextMessagePartProvider","MessagePartPrimitiveText","MessagePartPrimitiveImage","Unstable_AudioMessagePartComponent","DataMessagePartComponent","DataMessagePartProps","EmptyMessagePartComponent","TextMessagePartComponent","ImageMessagePartComponent","SourceMessagePartComponent","ToolCallMessagePartComponent","ToolCallMessagePartProps","FileMessagePartComponent","ReasoningMessagePartComponent","MessagePartPrimitiveInProgress","MessagePartStatus","MessagePartGroup","groupKey","indices","GroupingFunction","parts","groupMessagePartsByParentId","groupMap","Map","i","length","part","parentId","groupId","get","push","set","groups","undefined","useMessagePartsGrouped","groupingFunction","$","_temp","t0","bb0","t1","Symbol","for","MessagePrimitiveUnstable_PartsGrouped","Props","components","Empty","Text","Reasoning","Source","Image","File","Unstable_Audio","data","by_name","Record","Fallback","tools","Override","Group","ToolUIDisplay","props","toolName","s","toolUIs","render","Render","t2","DataUIDisplay","name","dataRenderers","renderers","Array","isArray","Render_0","defaultComponents","whiteSpace","fontFamily","children","MessagePartComponentProps","MessagePartComponent","t3","t4","t5","t6","t7","t8","t9","Audio","t10","aui","_temp2","type","addResult","addToolResult","resume","resumeToolCall","respondToApproval","respondToToolApproval","t11","Tool","status","Error","Data","console","warn","MessagePartProps","partIndex","MessagePartImpl","MessagePart","prev","next","EmptyPartFallback","component","Component","COMPLETE_STATUS","Object","freeze","EmptyPartsImpl","_temp3","EmptyParts","contentLength","_temp4","messageGroups","group","groupIndex","GroupComponent","map","partsElements","displayName","MessagePrimitiveUnstable_PartsGroupedByParentId","Omit","message"],"sources":["../../../src/primitives/message/MessagePartsGrouped.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ComponentType,\n type FC,\n memo,\n type PropsWithChildren,\n useMemo,\n} from \"react\";\nimport { useAuiState, useAui } from \"@assistant-ui/store\";\nimport { PartByIndexProvider } from \"../../context/providers/PartByIndexProvider\";\nimport { TextMessagePartProvider } from \"../../context/providers/TextMessagePartProvider\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport type {\n Unstable_AudioMessagePartComponent,\n DataMessagePartComponent,\n DataMessagePartProps,\n EmptyMessagePartComponent,\n TextMessagePartComponent,\n ImageMessagePartComponent,\n SourceMessagePartComponent,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n FileMessagePartComponent,\n ReasoningMessagePartComponent,\n} from \"@assistant-ui/core/react\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\nimport type { MessagePartStatus } from \"@assistant-ui/core\";\n\ntype MessagePartGroup = {\n groupKey: string | undefined;\n indices: number[];\n};\n\nexport type GroupingFunction = (parts: readonly any[]) => MessagePartGroup[];\n\n/**\n * Groups message parts by their parent ID.\n * Parts without a parent ID appear in their chronological position as individual groups.\n * Parts with the same parent ID are grouped together at the position of their first occurrence.\n */\nconst groupMessagePartsByParentId: GroupingFunction = (\n parts: readonly any[],\n): MessagePartGroup[] => {\n // Map maintains insertion order, so groups appear in order of first occurrence\n const groupMap = new Map<string | number, number[]>();\n\n // Process each part in order\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const parentId = part?.parentId as string | undefined;\n\n // For parts without parentId, assign a unique group ID to maintain their position\n const groupId = parentId ?? i;\n\n // Get or create the indices array for this group\n const indices = groupMap.get(groupId) ?? [];\n indices.push(i);\n groupMap.set(groupId, indices);\n }\n\n // Convert map to array of groups\n const groups: MessagePartGroup[] = [];\n for (const [groupId, indices] of groupMap) {\n // Extract parentId (undefined for ungrouped parts)\n const groupKey = typeof groupId === \"string\" ? groupId : undefined;\n groups.push({ groupKey, indices });\n }\n\n return groups;\n};\n\nconst useMessagePartsGrouped = (\n groupingFunction: GroupingFunction,\n): MessagePartGroup[] => {\n const parts = useAuiState((s) => s.message.parts);\n\n return useMemo(() => {\n if (parts.length === 0) {\n return [];\n }\n return groupingFunction(parts);\n }, [parts, groupingFunction]);\n};\n\nexport namespace MessagePrimitiveUnstable_PartsGrouped {\n export type Props = {\n /**\n * Function that takes an array of message parts and returns an array of groups.\n * Each group contains a key (for identification) and an array of indices.\n *\n * @example\n * ```tsx\n * // Group by parent ID (default behavior)\n * groupingFunction={(parts) => {\n * const groups = new Map<string | number, number[]>();\n * parts.forEach((part, i) => {\n * const key = part.parentId ?? i;\n * const indices = groups.get(key) ?? [];\n * indices.push(i);\n * groups.set(key, indices);\n * });\n * return Array.from(groups.entries()).map(([key, indices]) => ({\n * groupKey: typeof key === \"string\" ? key : undefined,\n * indices\n * }));\n * }}\n * ```\n *\n * @example\n * ```tsx\n * // Group by tool name\n * import { groupMessagePartsByToolName } from \"@assistant-ui/react\";\n *\n * <MessagePrimitive.Unstable_PartsGrouped\n * groupingFunction={groupMessagePartsByToolName}\n * components={{\n * Group: ({ key, indices, children }) => {\n * if (!key) return <>{children}</>;\n * return (\n * <div className=\"tool-group\">\n * <h4>Tool: {key}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n */\n groupingFunction: GroupingFunction;\n\n /**\n * Component configuration for rendering different types of message content.\n *\n * You can provide custom components for each content type (text, image, file, etc.)\n * and configure tool rendering behavior. If not provided, default components will be used.\n */\n components:\n | {\n /** Component for rendering empty messages */\n Empty?: EmptyMessagePartComponent | undefined;\n /** Component for rendering text content */\n Text?: TextMessagePartComponent | undefined;\n /** Component for rendering reasoning content (typically hidden) */\n Reasoning?: ReasoningMessagePartComponent | undefined;\n /** Component for rendering source content */\n Source?: SourceMessagePartComponent | undefined;\n /** Component for rendering image content */\n Image?: ImageMessagePartComponent | undefined;\n /** Component for rendering file content */\n File?: FileMessagePartComponent | undefined;\n /**\n * Component for rendering audio content.\n *\n * @deprecated Render audio through the `File` slot instead, branching\n * on an `audio/*` mime type.\n */\n Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;\n /** Configuration for data part rendering */\n data?:\n | {\n /** Map data event names to specific components */\n by_name?:\n | Record<string, DataMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unmatched data events */\n Fallback?: DataMessagePartComponent | undefined;\n }\n | undefined;\n /** Configuration for tool call rendering */\n tools?:\n | {\n /** Map of tool names to their specific components */\n by_name?:\n | Record<string, ToolCallMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unregistered tools */\n Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;\n }\n | {\n /** Override component that handles all tool calls */\n Override: ComponentType<ToolCallMessagePartProps>;\n }\n | undefined;\n\n /**\n * Component for rendering grouped message parts.\n *\n * When provided, this component will automatically wrap message parts that share\n * the same group key as determined by the groupingFunction.\n *\n * The component receives:\n * - `groupKey`: The group key (or undefined for ungrouped parts)\n * - `indices`: Array of indices for the parts in this group\n * - `children`: The rendered message part components\n *\n * @example\n * ```tsx\n * // Collapsible group\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <details className=\"message-group\">\n * <summary>\n * Group {groupKey} ({indices.length} parts)\n * </summary>\n * <div className=\"group-content\">\n * {children}\n * </div>\n * </details>\n * );\n * }\n * ```\n *\n * @param groupKey - The group key (undefined for ungrouped parts)\n * @param indices - Array of indices for the parts in this group\n * @param children - Rendered message part components to display within the group\n */\n Group?: ComponentType<\n PropsWithChildren<{\n groupKey: string | undefined;\n indices: number[];\n }>\n >;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallMessagePartComponent | undefined;\n} & ToolCallMessagePartProps) => {\n const Render = useAuiState(\n (s) => s.tools.toolUIs[props.toolName]?.[0]?.render ?? Fallback,\n );\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst DataUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: DataMessagePartComponent | undefined;\n} & DataMessagePartProps) => {\n const Render = useAuiState((s) => {\n const Render = s.dataRenderers.renderers[props.name] ?? Fallback;\n if (Array.isArray(Render)) return Render[0] ?? Fallback;\n return Render;\n });\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\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 Reasoning: () => null,\n Source: () => null,\n Image: () => <MessagePartPrimitiveImage />,\n File: () => null,\n Unstable_Audio: () => null,\n Group: ({ children }) => children,\n} satisfies MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n\ntype MessagePartComponentProps = {\n components: MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n};\n\nconst MessagePartComponent: FC<MessagePartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Reasoning = defaultComponents.Reasoning,\n Image = defaultComponents.Image,\n Source = defaultComponents.Source,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n data,\n } = {},\n}) => {\n const aui = useAui();\n const part = useAuiState((s) => s.part);\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = aui.part.addToolResult;\n const resume = aui.part.resumeToolCall;\n const respondToApproval = aui.part.respondToToolApproval;\n if (\"Override\" in tools)\n return (\n <tools.Override\n {...part}\n addResult={addResult}\n resume={resume}\n respondToApproval={respondToApproval}\n />\n );\n const Tool = tools.by_name?.[part.toolName] ?? tools.Fallback;\n return (\n <ToolUIDisplay\n {...part}\n Fallback={Tool}\n addResult={addResult}\n resume={resume}\n respondToApproval={respondToApproval}\n />\n );\n }\n\n if (part.status?.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n return <Text {...part} />;\n\n case \"reasoning\":\n return <Reasoning {...part} />;\n\n case \"source\":\n return <Source {...part} />;\n\n case \"image\":\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n case \"data\": {\n const Data = data?.by_name?.[part.name] ?? data?.Fallback;\n return <DataUIDisplay {...part} Fallback={Data} />;\n }\n\n default:\n console.warn(`Unknown message part type: ${type}`);\n return null;\n }\n};\n\ntype MessagePartProps = {\n partIndex: number;\n components: MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n};\n\nconst MessagePartImpl: FC<MessagePartProps> = ({ partIndex, components }) => {\n return (\n <PartByIndexProvider index={partIndex}>\n <MessagePartComponent components={components} />\n </PartByIndexProvider>\n );\n};\n\nconst MessagePart = memo(\n MessagePartImpl,\n (prev, next) =>\n prev.partIndex === next.partIndex &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Reasoning === next.components?.Reasoning &&\n prev.components?.Source === next.components?.Source &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.tools === next.components?.tools &&\n prev.components?.data === next.components?.data &&\n prev.components?.Group === next.components?.Group,\n);\n\nconst EmptyPartFallback: FC<{\n status: MessagePartStatus;\n component: TextMessagePartComponent;\n}> = ({ status, component: Component }) => {\n return (\n <TextMessagePartProvider text=\"\" isRunning={status.type === \"running\"}>\n <Component type=\"text\" text=\"\" status={status} />\n </TextMessagePartProvider>\n );\n};\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst EmptyPartsImpl: FC<MessagePartComponentProps> = ({ components }) => {\n const status = useAuiState(\n (s) => (s.message.status ?? COMPLETE_STATUS) as MessagePartStatus,\n );\n\n if (components?.Empty) return <components.Empty status={status} />;\n\n return (\n <EmptyPartFallback\n status={status}\n component={components?.Text ?? defaultComponents.Text}\n />\n );\n};\n\nconst EmptyParts = memo(\n EmptyPartsImpl,\n (prev, next) =>\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\n/**\n * Renders the parts of a message grouped by a custom grouping function.\n *\n * This component allows you to group message parts based on any criteria you define.\n * The grouping function receives all message parts and returns an array of groups,\n * where each group has a key and an array of part indices.\n *\n * @deprecated Prefer `<MessagePrimitive.GroupedParts>` for adjacent\n * grouping — it dispatches all rendering through one `switch (part.type)`\n * and supports nested group paths. Keep this primitive only for\n * non-adjacent clustering (e.g., gathering parts with the same parent-id\n * across the message).\n *\n * @example\n * ```tsx\n * // Group by parent ID (default behavior)\n * <MessagePrimitive.Unstable_PartsGrouped\n * components={{\n * Text: ({ text }) => <p className=\"message-text\">{text}</p>,\n * Image: ({ image }) => <img src={image} alt=\"Message image\" />,\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <div className=\"parent-group border rounded p-4\">\n * <h4>Parent ID: {groupKey}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n */\nexport const MessagePrimitiveUnstable_PartsGrouped: FC<\n MessagePrimitiveUnstable_PartsGrouped.Props\n> = ({ groupingFunction, components }) => {\n const contentLength = useAuiState((s) => s.message.parts.length);\n const messageGroups = useMessagePartsGrouped(groupingFunction);\n\n const partsElements = useMemo(() => {\n if (contentLength === 0) {\n return <EmptyParts components={components} />;\n }\n\n return messageGroups.map((group, groupIndex) => {\n const GroupComponent = components?.Group ?? defaultComponents.Group;\n\n return (\n <GroupComponent\n key={`group-${groupIndex}-${group.groupKey ?? \"ungrouped\"}`}\n groupKey={group.groupKey}\n indices={group.indices}\n >\n {group.indices.map((partIndex) => (\n <MessagePart\n key={partIndex}\n partIndex={partIndex}\n components={components}\n />\n ))}\n </GroupComponent>\n );\n });\n }, [messageGroups, components, contentLength]);\n\n return <>{partsElements}</>;\n};\n\nMessagePrimitiveUnstable_PartsGrouped.displayName =\n \"MessagePrimitive.Unstable_PartsGrouped\";\n\n/**\n * Renders the parts of a message grouped by their parent ID.\n * This is a convenience wrapper around Unstable_PartsGrouped with parent ID grouping.\n *\n * @deprecated Use MessagePrimitive.Unstable_PartsGrouped instead for more flexibility\n */\nexport const MessagePrimitiveUnstable_PartsGroupedByParentId: FC<\n Omit<MessagePrimitiveUnstable_PartsGrouped.Props, \"groupingFunction\">\n> = ({ components, ...props }) => {\n return (\n <MessagePrimitiveUnstable_PartsGrouped\n {...props}\n components={components}\n groupingFunction={groupMessagePartsByParentId}\n />\n );\n};\n\nMessagePrimitiveUnstable_PartsGroupedByParentId.displayName =\n \"MessagePrimitive.Unstable_PartsGroupedByParentId\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"MessagePartsGrouped.js","names":["c","_c","ComponentType","FC","memo","PropsWithChildren","useMemo","useAuiState","useAui","PartByIndexProvider","TextMessagePartProvider","MessagePartPrimitiveText","MessagePartPrimitiveImage","Unstable_AudioMessagePartComponent","DataMessagePartComponent","DataMessagePartProps","EmptyMessagePartComponent","TextMessagePartComponent","ImageMessagePartComponent","SourceMessagePartComponent","ToolCallMessagePartComponent","ToolCallMessagePartProps","FileMessagePartComponent","ReasoningMessagePartComponent","MessagePartPrimitiveInProgress","MessagePartStatus","MessagePartGroup","groupKey","indices","GroupingFunction","parts","groupMessagePartsByParentId","groupMap","Map","i","length","part","parentId","groupId","get","push","set","groups","undefined","useMessagePartsGrouped","groupingFunction","$","_temp","t0","bb0","t1","Symbol","for","MessagePrimitiveUnstable_PartsGrouped","Props","components","Empty","Text","Reasoning","Source","Image","File","Unstable_Audio","data","by_name","Record","Fallback","tools","Override","Group","ToolUIDisplay","props","toolName","s","toolUIs","render","Render","t2","DataUIDisplay","name","named","dataRenderers","renderers","fallbacks","defaultComponents","whiteSpace","fontFamily","children","MessagePartComponentProps","MessagePartComponent","t3","t4","t5","t6","t7","t8","t9","Audio","t10","aui","_temp2","type","addResult","addToolResult","resume","resumeToolCall","respondToApproval","respondToToolApproval","unstable_recordInteraction","t11","t12","Object","hasOwn","Tool","t13","status","Error","Data","console","warn","MessagePartProps","partIndex","MessagePartImpl","MessagePart","prev","next","EmptyPartFallback","component","Component","COMPLETE_STATUS","freeze","EmptyPartsImpl","_temp3","EmptyParts","contentLength","_temp4","messageGroups","group","groupIndex","GroupComponent","map","partsElements","displayName","MessagePrimitiveUnstable_PartsGroupedByParentId","Omit","message"],"sources":["../../../src/primitives/message/MessagePartsGrouped.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n type ComponentType,\n type FC,\n memo,\n type PropsWithChildren,\n useMemo,\n} from \"react\";\nimport { useAuiState, useAui } from \"@assistant-ui/store\";\nimport { PartByIndexProvider } from \"../../context/providers/PartByIndexProvider\";\nimport { TextMessagePartProvider } from \"../../context/providers/TextMessagePartProvider\";\nimport { MessagePartPrimitiveText } from \"../messagePart/MessagePartText\";\nimport { MessagePartPrimitiveImage } from \"../messagePart/MessagePartImage\";\nimport type {\n Unstable_AudioMessagePartComponent,\n DataMessagePartComponent,\n DataMessagePartProps,\n EmptyMessagePartComponent,\n TextMessagePartComponent,\n ImageMessagePartComponent,\n SourceMessagePartComponent,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n FileMessagePartComponent,\n ReasoningMessagePartComponent,\n} from \"@assistant-ui/core/react\";\nimport { MessagePartPrimitiveInProgress } from \"../messagePart/MessagePartInProgress\";\nimport type { MessagePartStatus } from \"@assistant-ui/core\";\n\ntype MessagePartGroup = {\n groupKey: string | undefined;\n indices: number[];\n};\n\nexport type GroupingFunction = (parts: readonly any[]) => MessagePartGroup[];\n\n/**\n * Groups message parts by their parent ID.\n * Parts without a parent ID appear in their chronological position as individual groups.\n * Parts with the same parent ID are grouped together at the position of their first occurrence.\n */\nconst groupMessagePartsByParentId: GroupingFunction = (\n parts: readonly any[],\n): MessagePartGroup[] => {\n // Map maintains insertion order, so groups appear in order of first occurrence\n const groupMap = new Map<string | number, number[]>();\n\n // Process each part in order\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const parentId = part?.parentId as string | undefined;\n\n // For parts without parentId, assign a unique group ID to maintain their position\n const groupId = parentId ?? i;\n\n // Get or create the indices array for this group\n const indices = groupMap.get(groupId) ?? [];\n indices.push(i);\n groupMap.set(groupId, indices);\n }\n\n // Convert map to array of groups\n const groups: MessagePartGroup[] = [];\n for (const [groupId, indices] of groupMap) {\n // Extract parentId (undefined for ungrouped parts)\n const groupKey = typeof groupId === \"string\" ? groupId : undefined;\n groups.push({ groupKey, indices });\n }\n\n return groups;\n};\n\nconst useMessagePartsGrouped = (\n groupingFunction: GroupingFunction,\n): MessagePartGroup[] => {\n const parts = useAuiState((s) => s.message.parts);\n\n return useMemo(() => {\n if (parts.length === 0) {\n return [];\n }\n return groupingFunction(parts);\n }, [parts, groupingFunction]);\n};\n\nexport namespace MessagePrimitiveUnstable_PartsGrouped {\n export type Props = {\n /**\n * Function that takes an array of message parts and returns an array of groups.\n * Each group contains a key (for identification) and an array of indices.\n *\n * @example\n * ```tsx\n * // Group by parent ID (default behavior)\n * groupingFunction={(parts) => {\n * const groups = new Map<string | number, number[]>();\n * parts.forEach((part, i) => {\n * const key = part.parentId ?? i;\n * const indices = groups.get(key) ?? [];\n * indices.push(i);\n * groups.set(key, indices);\n * });\n * return Array.from(groups.entries()).map(([key, indices]) => ({\n * groupKey: typeof key === \"string\" ? key : undefined,\n * indices\n * }));\n * }}\n * ```\n *\n * @example\n * ```tsx\n * // Group by tool name\n * import { groupMessagePartsByToolName } from \"@assistant-ui/react\";\n *\n * <MessagePrimitive.Unstable_PartsGrouped\n * groupingFunction={groupMessagePartsByToolName}\n * components={{\n * Group: ({ key, indices, children }) => {\n * if (!key) return <>{children}</>;\n * return (\n * <div className=\"tool-group\">\n * <h4>Tool: {key}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n */\n groupingFunction: GroupingFunction;\n\n /**\n * Component configuration for rendering different types of message content.\n *\n * You can provide custom components for each content type (text, image, file, etc.)\n * and configure tool rendering behavior. If not provided, default components will be used.\n */\n components:\n | {\n /** Component for rendering empty messages */\n Empty?: EmptyMessagePartComponent | undefined;\n /** Component for rendering text content */\n Text?: TextMessagePartComponent | undefined;\n /** Component for rendering reasoning content (typically hidden) */\n Reasoning?: ReasoningMessagePartComponent | undefined;\n /** Component for rendering source content */\n Source?: SourceMessagePartComponent | undefined;\n /** Component for rendering image content */\n Image?: ImageMessagePartComponent | undefined;\n /** Component for rendering file content */\n File?: FileMessagePartComponent | undefined;\n /**\n * Component for rendering audio content.\n *\n * @deprecated Render audio through the `File` slot instead, branching\n * on an `audio/*` mime type.\n */\n Unstable_Audio?: Unstable_AudioMessagePartComponent | undefined;\n /** Configuration for data part rendering */\n data?:\n | {\n /** Map data event names to specific components */\n by_name?:\n | Record<string, DataMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unmatched data events */\n Fallback?: DataMessagePartComponent | undefined;\n }\n | undefined;\n /** Configuration for tool call rendering */\n tools?:\n | {\n /** Map of tool names to their specific components */\n by_name?:\n | Record<string, ToolCallMessagePartComponent | undefined>\n | undefined;\n /** Fallback component for unregistered tools */\n Fallback?: ComponentType<ToolCallMessagePartProps> | undefined;\n }\n | {\n /** Override component that handles all tool calls */\n Override: ComponentType<ToolCallMessagePartProps>;\n }\n | undefined;\n\n /**\n * Component for rendering grouped message parts.\n *\n * When provided, this component will automatically wrap message parts that share\n * the same group key as determined by the groupingFunction.\n *\n * The component receives:\n * - `groupKey`: The group key (or undefined for ungrouped parts)\n * - `indices`: Array of indices for the parts in this group\n * - `children`: The rendered message part components\n *\n * @example\n * ```tsx\n * // Collapsible group\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <details className=\"message-group\">\n * <summary>\n * Group {groupKey} ({indices.length} parts)\n * </summary>\n * <div className=\"group-content\">\n * {children}\n * </div>\n * </details>\n * );\n * }\n * ```\n *\n * @param groupKey - The group key (undefined for ungrouped parts)\n * @param indices - Array of indices for the parts in this group\n * @param children - Rendered message part components to display within the group\n */\n Group?: ComponentType<\n PropsWithChildren<{\n groupKey: string | undefined;\n indices: number[];\n }>\n >;\n }\n | undefined;\n };\n}\n\nconst ToolUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: ToolCallMessagePartComponent | undefined;\n} & ToolCallMessagePartProps) => {\n const Render = useAuiState(\n (s) => s.tools.toolUIs[props.toolName]?.[0]?.render ?? Fallback,\n );\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst DataUIDisplay = ({\n Fallback,\n ...props\n}: {\n Fallback: DataMessagePartComponent | undefined;\n} & DataMessagePartProps) => {\n const Render = useAuiState((s) => {\n const named = s.dataRenderers.renderers[props.name]?.[0];\n if (named) return named;\n return s.dataRenderers.fallbacks[0] ?? Fallback;\n });\n if (!Render) return null;\n return <Render {...props} />;\n};\n\nconst defaultComponents = {\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 Reasoning: () => null,\n Source: () => null,\n Image: () => <MessagePartPrimitiveImage />,\n File: () => null,\n Unstable_Audio: () => null,\n Group: ({ children }) => children,\n} satisfies MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n\ntype MessagePartComponentProps = {\n components: MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n};\n\nconst MessagePartComponent: FC<MessagePartComponentProps> = ({\n components: {\n Text = defaultComponents.Text,\n Reasoning = defaultComponents.Reasoning,\n Image = defaultComponents.Image,\n Source = defaultComponents.Source,\n File = defaultComponents.File,\n Unstable_Audio: Audio = defaultComponents.Unstable_Audio,\n tools = {},\n data,\n } = {},\n}) => {\n const aui = useAui();\n const part = useAuiState((s) => s.part);\n\n const type = part.type;\n if (type === \"tool-call\") {\n const addResult = aui.part.addToolResult;\n const resume = aui.part.resumeToolCall;\n const respondToApproval = aui.part.respondToToolApproval;\n const unstable_recordInteraction = aui.part.unstable_recordInteraction;\n if (\"Override\" in tools)\n return (\n <tools.Override\n {...part}\n addResult={addResult}\n resume={resume}\n respondToApproval={respondToApproval}\n {...(unstable_recordInteraction && { unstable_recordInteraction })}\n />\n );\n const Tool =\n (tools.by_name && Object.hasOwn(tools.by_name, part.toolName)\n ? tools.by_name[part.toolName]\n : undefined) ?? tools.Fallback;\n return (\n <ToolUIDisplay\n {...part}\n Fallback={Tool}\n addResult={addResult}\n resume={resume}\n respondToApproval={respondToApproval}\n {...(unstable_recordInteraction && { unstable_recordInteraction })}\n />\n );\n }\n\n if (part.status?.type === \"requires-action\")\n throw new Error(\"Encountered unexpected requires-action status\");\n\n switch (type) {\n case \"text\":\n return <Text {...part} />;\n\n case \"reasoning\":\n return <Reasoning {...part} />;\n\n case \"source\":\n return <Source {...part} />;\n\n case \"image\":\n return <Image {...part} />;\n\n case \"file\":\n return <File {...part} />;\n\n case \"audio\":\n return <Audio {...part} />;\n\n case \"data\": {\n const Data =\n (data?.by_name && Object.hasOwn(data.by_name, part.name)\n ? data.by_name[part.name]\n : undefined) ?? data?.Fallback;\n return <DataUIDisplay {...part} Fallback={Data} />;\n }\n\n default:\n console.warn(`Unknown message part type: ${type}`);\n return null;\n }\n};\n\ntype MessagePartProps = {\n partIndex: number;\n components: MessagePrimitiveUnstable_PartsGrouped.Props[\"components\"];\n};\n\nconst MessagePartImpl: FC<MessagePartProps> = ({ partIndex, components }) => {\n return (\n <PartByIndexProvider index={partIndex}>\n <MessagePartComponent components={components} />\n </PartByIndexProvider>\n );\n};\n\nconst MessagePart = memo(\n MessagePartImpl,\n (prev, next) =>\n prev.partIndex === next.partIndex &&\n prev.components?.Text === next.components?.Text &&\n prev.components?.Reasoning === next.components?.Reasoning &&\n prev.components?.Source === next.components?.Source &&\n prev.components?.Image === next.components?.Image &&\n prev.components?.File === next.components?.File &&\n prev.components?.Unstable_Audio === next.components?.Unstable_Audio &&\n prev.components?.tools === next.components?.tools &&\n prev.components?.data === next.components?.data &&\n prev.components?.Group === next.components?.Group,\n);\n\nconst EmptyPartFallback: FC<{\n status: MessagePartStatus;\n component: TextMessagePartComponent;\n}> = ({ status, component: Component }) => {\n return (\n <TextMessagePartProvider text=\"\" isRunning={status.type === \"running\"}>\n <Component type=\"text\" text=\"\" status={status} />\n </TextMessagePartProvider>\n );\n};\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({\n type: \"complete\",\n});\n\nconst EmptyPartsImpl: FC<MessagePartComponentProps> = ({ components }) => {\n const status = useAuiState(\n (s) => (s.message.status ?? COMPLETE_STATUS) as MessagePartStatus,\n );\n\n if (components?.Empty) return <components.Empty status={status} />;\n\n return (\n <EmptyPartFallback\n status={status}\n component={components?.Text ?? defaultComponents.Text}\n />\n );\n};\n\nconst EmptyParts = memo(\n EmptyPartsImpl,\n (prev, next) =>\n prev.components?.Empty === next.components?.Empty &&\n prev.components?.Text === next.components?.Text,\n);\n\n/**\n * Renders the parts of a message grouped by a custom grouping function.\n *\n * This component allows you to group message parts based on any criteria you define.\n * The grouping function receives all message parts and returns an array of groups,\n * where each group has a key and an array of part indices.\n *\n * @deprecated Prefer `<MessagePrimitive.GroupedParts>` for adjacent\n * grouping — it dispatches all rendering through one `switch (part.type)`\n * and supports nested group paths. Keep this primitive only for\n * non-adjacent clustering (e.g., gathering parts with the same parent-id\n * across the message).\n *\n * @example\n * ```tsx\n * // Group by parent ID (default behavior)\n * <MessagePrimitive.Unstable_PartsGrouped\n * components={{\n * Text: ({ text }) => <p className=\"message-text\">{text}</p>,\n * Image: ({ image }) => <img src={image} alt=\"Message image\" />,\n * Group: ({ groupKey, indices, children }) => {\n * if (!groupKey) return <>{children}</>;\n * return (\n * <div className=\"parent-group border rounded p-4\">\n * <h4>Parent ID: {groupKey}</h4>\n * {children}\n * </div>\n * );\n * }\n * }}\n * />\n * ```\n */\nexport const MessagePrimitiveUnstable_PartsGrouped: FC<\n MessagePrimitiveUnstable_PartsGrouped.Props\n> = ({ groupingFunction, components }) => {\n const contentLength = useAuiState((s) => s.message.parts.length);\n const messageGroups = useMessagePartsGrouped(groupingFunction);\n\n const partsElements = useMemo(() => {\n if (contentLength === 0) {\n return <EmptyParts components={components} />;\n }\n\n return messageGroups.map((group, groupIndex) => {\n const GroupComponent = components?.Group ?? defaultComponents.Group;\n\n return (\n <GroupComponent\n key={`group-${groupIndex}-${group.groupKey ?? \"ungrouped\"}`}\n groupKey={group.groupKey}\n indices={group.indices}\n >\n {group.indices.map((partIndex) => (\n <MessagePart\n key={partIndex}\n partIndex={partIndex}\n components={components}\n />\n ))}\n </GroupComponent>\n );\n });\n }, [messageGroups, components, contentLength]);\n\n return <>{partsElements}</>;\n};\n\nMessagePrimitiveUnstable_PartsGrouped.displayName =\n \"MessagePrimitive.Unstable_PartsGrouped\";\n\n/**\n * Renders the parts of a message grouped by their parent ID.\n * This is a convenience wrapper around Unstable_PartsGrouped with parent ID grouping.\n *\n * @deprecated Use MessagePrimitive.Unstable_PartsGrouped instead for more flexibility\n */\nexport const MessagePrimitiveUnstable_PartsGroupedByParentId: FC<\n Omit<MessagePrimitiveUnstable_PartsGrouped.Props, \"groupingFunction\">\n> = ({ components, ...props }) => {\n return (\n <MessagePrimitiveUnstable_PartsGrouped\n {...props}\n components={components}\n groupingFunction={groupMessagePartsByParentId}\n />\n );\n};\n\nMessagePrimitiveUnstable_PartsGroupedByParentId.displayName =\n \"MessagePrimitive.Unstable_PartsGroupedByParentId\";\n"],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import { Primitive } from "../../utils/Primitive.js";
2
- import { ComponentPropsWithoutRef, ComponentRef } from "react";
3
- //#region src/primitives/message/MessageRoot.d.ts
2
+ import { type ComponentRef, type ComponentPropsWithoutRef } from "react";
4
3
  export declare namespace MessagePrimitiveRoot {
5
- type Element = ComponentRef<typeof Primitive.div>;
6
- type Props = ComponentPropsWithoutRef<typeof Primitive.div>;
4
+ type Element = ComponentRef<typeof Primitive.div>;
5
+ type Props = ComponentPropsWithoutRef<typeof Primitive.div>;
7
6
  }
8
7
  /**
9
8
  * The root container component for a message.
@@ -29,9 +28,8 @@ export declare namespace MessagePrimitiveRoot {
29
28
  * ```
30
29
  */
31
30
  export declare const MessagePrimitiveRoot: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & {
32
- asChild?: boolean;
31
+ asChild?: boolean;
33
32
  }, "ref"> & {
34
- render?: import("react").ReactElement | undefined;
33
+ render?: import("react").ReactElement | undefined;
35
34
  } & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
36
- //#endregion
37
35
  //# sourceMappingURL=MessageRoot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageRoot.d.ts","names":[],"sources":["../../../src/primitives/message/MessageRoot.tsx"],"mappings":";;;yBAuHiB;OACH,UAAU,oBAAoB,UAAU;OACxC,QAAQ,gCAAgC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;qBA8EnD,sCAAoB,0BAAA,KAAA,qBAAA,gBAAA,kCAAA,eAAA;;;;oBAkB/B,cAAA,0CAAA,cAAA"}
1
+ {"version":3,"file":"MessageRoot.d.ts","sourceRoot":"","sources":["../../../src/primitives/message/MessageRoot.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,iCAA8B;AAClD,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,wBAAwB,EAG9B,MAAM,OAAO,CAAC;AAkHf,yBAAiB,oBAAoB,CAAC;IACpC,KAAY,OAAO,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACzD,KAAY,KAAK,GAAG,wBAAwB,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;CACpE;AAsDD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,oBAAoB;;;;0GAkB/B,CAAC"}
@@ -4,8 +4,8 @@ import { Primitive as Primitive$1 } from "../../utils/Primitive.js";
4
4
  import { useManagedRef } from "../../utils/hooks/useManagedRef.js";
5
5
  import { parseCssLength } from "../thread/topAnchor/topAnchorUtils.js";
6
6
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
7
- import { useAui, useAuiState } from "@assistant-ui/store";
8
7
  import { forwardRef } from "@assistant-ui/tap/react-shim";
8
+ import { useAui, useAuiState } from "@assistant-ui/store";
9
9
  import { jsx } from "react/jsx-runtime";
10
10
  import { useComposedRefs } from "radix-ui/internal";
11
11
  //#region src/primitives/message/MessageRoot.tsx
@@ -22,6 +22,7 @@ const useIsHoveringRef = () => {
22
22
  let t1;
23
23
  if ($[2] !== message) {
24
24
  t1 = (el) => {
25
+ let active = true;
25
26
  const handleMouseEnter = () => {
26
27
  message.setIsHovering(true);
27
28
  };
@@ -30,8 +31,11 @@ const useIsHoveringRef = () => {
30
31
  };
31
32
  el.addEventListener("mouseenter", handleMouseEnter);
32
33
  el.addEventListener("mouseleave", handleMouseLeave);
33
- if (el.matches(":hover")) queueMicrotask(() => message.setIsHovering(true));
34
+ if (el.matches(":hover")) queueMicrotask(() => {
35
+ if (active) message.setIsHovering(true);
36
+ });
34
37
  return () => {
38
+ active = false;
35
39
  el.removeEventListener("mouseenter", handleMouseEnter);
36
40
  el.removeEventListener("mouseleave", handleMouseLeave);
37
41
  message.setIsHovering(false);
@@ -1 +1 @@
1
- {"version":3,"file":"MessageRoot.js","names":["c","_c","Primitive","ComponentRef","forwardRef","ComponentPropsWithoutRef","ForwardedRef","useCallback","useAui","useAuiState","useManagedRef","useComposedRefs","useThreadViewport","useThreadViewportStore","parseCssLength","ThreadViewportStore","NonNullable","ReturnType","useIsHoveringRef","$","aui","t0","message","t1","el","handleMouseEnter","setIsHovering","handleMouseLeave","addEventListener","matches","queueMicrotask","removeEventListener","callbackRef","useIsTopAnchorUser","activeAnchorId","_temp","s_0","s","role","index","thread","messages","length","at","id","isRunning","useIsTopAnchorTarget","activeTargetId","_temp2","isLast","useTopAnchorUserRef","active","threadViewportStore","getState","registerAnchorElement","callback","useTopAnchorTargetRef","state","clamp","topAnchorMessageClamp","registerAnchorTargetElement","tallerThan","visibleHeight","targetRefCallback","MessagePrimitiveRoot","Element","div","Props","MessagePrimitiveRootInternalProps","forwardedRef","MessagePrimitiveRootDefault","props","isHoveringRef","ref","messageId","_temp3","MessagePrimitiveRootTopAnchor","isTopAnchorUser","isTopAnchorTarget","topAnchorUserRef","topAnchorTargetRef","_temp4","t2","undefined","t3","t4","turnAnchor","displayName","topAnchorTurn","anchorId","targetId"],"sources":["../../../src/primitives/message/MessageRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n type ComponentPropsWithoutRef,\n type ForwardedRef,\n useCallback,\n} from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport { useManagedRef } from \"../../utils/hooks/useManagedRef\";\nimport { useComposedRefs } from \"radix-ui/internal\";\nimport {\n useThreadViewport,\n useThreadViewportStore,\n} from \"../../context/react/ThreadViewportContext\";\nimport { parseCssLength } from \"../thread/topAnchor/topAnchorUtils\";\n\ntype ThreadViewportStore = NonNullable<\n ReturnType<typeof useThreadViewportStore>\n>;\n\nconst useIsHoveringRef = () => {\n const aui = useAui();\n const message = useAuiState(() => aui.message);\n\n const callbackRef = useCallback(\n (el: HTMLElement) => {\n const handleMouseEnter = () => {\n message.setIsHovering(true);\n };\n const handleMouseLeave = () => {\n message.setIsHovering(false);\n };\n\n el.addEventListener(\"mouseenter\", handleMouseEnter);\n el.addEventListener(\"mouseleave\", handleMouseLeave);\n\n if (el.matches(\":hover\")) {\n // TODO this is needed for SSR to work, figure out why\n queueMicrotask(() => message.setIsHovering(true));\n }\n\n return () => {\n el.removeEventListener(\"mouseenter\", handleMouseEnter);\n el.removeEventListener(\"mouseleave\", handleMouseLeave);\n message.setIsHovering(false);\n };\n },\n [message],\n );\n\n return useManagedRef(callbackRef);\n};\n\nconst useIsTopAnchorUser = () => {\n const activeAnchorId = useThreadViewport((s) => s.topAnchorTurn?.anchorId);\n return useAuiState(\n (s) =>\n s.message.role === \"user\" &&\n s.message.index > 0 &&\n s.message.index === s.thread.messages.length - 2 &&\n s.thread.messages.at(-1)?.role === \"assistant\" &&\n (s.message.id === activeAnchorId || s.thread.isRunning),\n );\n};\n\nconst useIsTopAnchorTarget = () => {\n const activeTargetId = useThreadViewport((s) => s.topAnchorTurn?.targetId);\n return useAuiState(\n (s) =>\n s.message.isLast &&\n s.message.role === \"assistant\" &&\n s.message.index >= 1 &&\n s.thread.messages.at(s.message.index - 1)?.role === \"user\" &&\n (s.message.id === activeTargetId || s.thread.isRunning),\n );\n};\n\nconst useTopAnchorUserRef = (\n active: boolean,\n threadViewportStore: ThreadViewportStore,\n) => {\n const callback = useCallback(\n (el: HTMLElement) => {\n if (!active) return;\n return threadViewportStore.getState().registerAnchorElement(el);\n },\n [active, threadViewportStore],\n );\n\n return useManagedRef<HTMLElement>(callback);\n};\n\nconst useTopAnchorTargetRef = ({\n active,\n threadViewportStore,\n}: {\n active: boolean;\n threadViewportStore: ThreadViewportStore;\n}) => {\n const targetRefCallback = useCallback(\n (el: HTMLElement) => {\n if (!active) return;\n const state = threadViewportStore.getState();\n const clamp = state.topAnchorMessageClamp;\n\n return state.registerAnchorTargetElement(el, {\n tallerThan: parseCssLength(clamp.tallerThan, el),\n visibleHeight: parseCssLength(clamp.visibleHeight, el),\n });\n },\n [active, threadViewportStore],\n );\n\n return useManagedRef<HTMLElement>(targetRefCallback);\n};\n\nexport namespace MessagePrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\ntype MessagePrimitiveRootInternalProps = MessagePrimitiveRoot.Props & {\n forwardedRef: ForwardedRef<MessagePrimitiveRoot.Element>;\n};\n\nconst MessagePrimitiveRootDefault = ({\n forwardedRef,\n ...props\n}: MessagePrimitiveRootInternalProps) => {\n const isHoveringRef = useIsHoveringRef();\n const ref = useComposedRefs<HTMLDivElement>(forwardedRef, isHoveringRef);\n const messageId = useAuiState((s) => s.message.id);\n\n return <Primitive.div {...props} ref={ref} data-message-id={messageId} />;\n};\n\nconst MessagePrimitiveRootTopAnchor = ({\n forwardedRef,\n threadViewportStore,\n ...props\n}: MessagePrimitiveRootInternalProps & {\n threadViewportStore: ThreadViewportStore;\n}) => {\n const isHoveringRef = useIsHoveringRef();\n const isTopAnchorUser = useIsTopAnchorUser();\n const isTopAnchorTarget = useIsTopAnchorTarget();\n const topAnchorUserRef = useTopAnchorUserRef(\n isTopAnchorUser,\n threadViewportStore,\n );\n const topAnchorTargetRef = useTopAnchorTargetRef({\n active: isTopAnchorTarget,\n threadViewportStore,\n });\n const ref = useComposedRefs<HTMLDivElement>(\n forwardedRef,\n isHoveringRef,\n topAnchorUserRef,\n topAnchorTargetRef,\n );\n const messageId = useAuiState((s) => s.message.id);\n\n return (\n <Primitive.div\n {...props}\n ref={ref}\n data-message-id={messageId}\n data-aui-top-anchor-user={isTopAnchorUser ? \"\" : undefined}\n data-aui-top-anchor-target={isTopAnchorTarget ? \"\" : undefined}\n />\n );\n};\n\n/**\n * The root container component for a message.\n *\n * This component provides the foundational wrapper for message content and handles\n * hover state management for the message. It automatically tracks when the user\n * is hovering over the message, which can be used by child components like action bars.\n *\n * When `turnAnchor=\"top\"` is set on the viewport, this component automatically\n * registers itself as the top-anchor user message (when it's the previous user\n * message) or as the top-anchor target (when it's the streaming assistant\n * response). No additional component is required.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.Root>\n * <MessagePrimitive.Content />\n * <ActionBarPrimitive.Root>\n * <ActionBarPrimitive.Copy />\n * <ActionBarPrimitive.Edit />\n * </ActionBarPrimitive.Root>\n * </MessagePrimitive.Root>\n * ```\n */\nexport const MessagePrimitiveRoot = forwardRef<\n MessagePrimitiveRoot.Element,\n MessagePrimitiveRoot.Props\n>((props, forwardedRef) => {\n const threadViewportStore = useThreadViewportStore();\n // turnAnchor is initial-only viewport config (see ThreadViewportProvider).\n const turnAnchor = threadViewportStore.getState().turnAnchor;\n\n if (turnAnchor === \"top\") {\n return (\n <MessagePrimitiveRootTopAnchor\n {...props}\n forwardedRef={forwardedRef}\n threadViewportStore={threadViewportStore}\n />\n );\n }\n return <MessagePrimitiveRootDefault {...props} forwardedRef={forwardedRef} />;\n});\n\nMessagePrimitiveRoot.displayName = \"MessagePrimitive.Root\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"MessageRoot.js","names":["c","_c","Primitive","ComponentRef","forwardRef","ComponentPropsWithoutRef","ForwardedRef","useCallback","useAui","useAuiState","useManagedRef","useComposedRefs","useThreadViewport","useThreadViewportStore","parseCssLength","ThreadViewportStore","NonNullable","ReturnType","useIsHoveringRef","$","aui","t0","message","t1","el","active","handleMouseEnter","setIsHovering","handleMouseLeave","addEventListener","matches","queueMicrotask","removeEventListener","callbackRef","useIsTopAnchorUser","activeAnchorId","_temp","s_0","s","role","index","thread","messages","length","at","id","isRunning","useIsTopAnchorTarget","activeTargetId","_temp2","isLast","useTopAnchorUserRef","threadViewportStore","getState","registerAnchorElement","callback","useTopAnchorTargetRef","state","clamp","topAnchorMessageClamp","registerAnchorTargetElement","tallerThan","visibleHeight","targetRefCallback","MessagePrimitiveRoot","Element","div","Props","MessagePrimitiveRootInternalProps","forwardedRef","MessagePrimitiveRootDefault","props","isHoveringRef","ref","messageId","_temp3","MessagePrimitiveRootTopAnchor","isTopAnchorUser","isTopAnchorTarget","topAnchorUserRef","topAnchorTargetRef","_temp4","t2","undefined","t3","t4","turnAnchor","displayName","topAnchorTurn","anchorId","targetId"],"sources":["../../../src/primitives/message/MessageRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n forwardRef,\n type ComponentPropsWithoutRef,\n type ForwardedRef,\n useCallback,\n} from \"react\";\nimport { useAui, useAuiState } from \"@assistant-ui/store\";\nimport { useManagedRef } from \"../../utils/hooks/useManagedRef\";\nimport { useComposedRefs } from \"radix-ui/internal\";\nimport {\n useThreadViewport,\n useThreadViewportStore,\n} from \"../../context/react/ThreadViewportContext\";\nimport { parseCssLength } from \"../thread/topAnchor/topAnchorUtils\";\n\ntype ThreadViewportStore = NonNullable<\n ReturnType<typeof useThreadViewportStore>\n>;\n\nconst useIsHoveringRef = () => {\n const aui = useAui();\n const message = useAuiState(() => aui.message);\n\n const callbackRef = useCallback(\n (el: HTMLElement) => {\n let active = true;\n const handleMouseEnter = () => {\n message.setIsHovering(true);\n };\n const handleMouseLeave = () => {\n message.setIsHovering(false);\n };\n\n el.addEventListener(\"mouseenter\", handleMouseEnter);\n el.addEventListener(\"mouseleave\", handleMouseLeave);\n\n if (el.matches(\":hover\")) {\n // TODO this is needed for SSR to work, figure out why\n queueMicrotask(() => {\n if (active) message.setIsHovering(true);\n });\n }\n\n return () => {\n active = false;\n el.removeEventListener(\"mouseenter\", handleMouseEnter);\n el.removeEventListener(\"mouseleave\", handleMouseLeave);\n message.setIsHovering(false);\n };\n },\n [message],\n );\n\n return useManagedRef(callbackRef);\n};\n\nconst useIsTopAnchorUser = () => {\n const activeAnchorId = useThreadViewport((s) => s.topAnchorTurn?.anchorId);\n return useAuiState(\n (s) =>\n s.message.role === \"user\" &&\n s.message.index > 0 &&\n s.message.index === s.thread.messages.length - 2 &&\n s.thread.messages.at(-1)?.role === \"assistant\" &&\n (s.message.id === activeAnchorId || s.thread.isRunning),\n );\n};\n\nconst useIsTopAnchorTarget = () => {\n const activeTargetId = useThreadViewport((s) => s.topAnchorTurn?.targetId);\n return useAuiState(\n (s) =>\n s.message.isLast &&\n s.message.role === \"assistant\" &&\n s.message.index >= 1 &&\n s.thread.messages.at(s.message.index - 1)?.role === \"user\" &&\n (s.message.id === activeTargetId || s.thread.isRunning),\n );\n};\n\nconst useTopAnchorUserRef = (\n active: boolean,\n threadViewportStore: ThreadViewportStore,\n) => {\n const callback = useCallback(\n (el: HTMLElement) => {\n if (!active) return;\n return threadViewportStore.getState().registerAnchorElement(el);\n },\n [active, threadViewportStore],\n );\n\n return useManagedRef<HTMLElement>(callback);\n};\n\nconst useTopAnchorTargetRef = ({\n active,\n threadViewportStore,\n}: {\n active: boolean;\n threadViewportStore: ThreadViewportStore;\n}) => {\n const targetRefCallback = useCallback(\n (el: HTMLElement) => {\n if (!active) return;\n const state = threadViewportStore.getState();\n const clamp = state.topAnchorMessageClamp;\n\n return state.registerAnchorTargetElement(el, {\n tallerThan: parseCssLength(clamp.tallerThan, el),\n visibleHeight: parseCssLength(clamp.visibleHeight, el),\n });\n },\n [active, threadViewportStore],\n );\n\n return useManagedRef<HTMLElement>(targetRefCallback);\n};\n\nexport namespace MessagePrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\ntype MessagePrimitiveRootInternalProps = MessagePrimitiveRoot.Props & {\n forwardedRef: ForwardedRef<MessagePrimitiveRoot.Element>;\n};\n\nconst MessagePrimitiveRootDefault = ({\n forwardedRef,\n ...props\n}: MessagePrimitiveRootInternalProps) => {\n const isHoveringRef = useIsHoveringRef();\n const ref = useComposedRefs<HTMLDivElement>(forwardedRef, isHoveringRef);\n const messageId = useAuiState((s) => s.message.id);\n\n return <Primitive.div {...props} ref={ref} data-message-id={messageId} />;\n};\n\nconst MessagePrimitiveRootTopAnchor = ({\n forwardedRef,\n threadViewportStore,\n ...props\n}: MessagePrimitiveRootInternalProps & {\n threadViewportStore: ThreadViewportStore;\n}) => {\n const isHoveringRef = useIsHoveringRef();\n const isTopAnchorUser = useIsTopAnchorUser();\n const isTopAnchorTarget = useIsTopAnchorTarget();\n const topAnchorUserRef = useTopAnchorUserRef(\n isTopAnchorUser,\n threadViewportStore,\n );\n const topAnchorTargetRef = useTopAnchorTargetRef({\n active: isTopAnchorTarget,\n threadViewportStore,\n });\n const ref = useComposedRefs<HTMLDivElement>(\n forwardedRef,\n isHoveringRef,\n topAnchorUserRef,\n topAnchorTargetRef,\n );\n const messageId = useAuiState((s) => s.message.id);\n\n return (\n <Primitive.div\n {...props}\n ref={ref}\n data-message-id={messageId}\n data-aui-top-anchor-user={isTopAnchorUser ? \"\" : undefined}\n data-aui-top-anchor-target={isTopAnchorTarget ? \"\" : undefined}\n />\n );\n};\n\n/**\n * The root container component for a message.\n *\n * This component provides the foundational wrapper for message content and handles\n * hover state management for the message. It automatically tracks when the user\n * is hovering over the message, which can be used by child components like action bars.\n *\n * When `turnAnchor=\"top\"` is set on the viewport, this component automatically\n * registers itself as the top-anchor user message (when it's the previous user\n * message) or as the top-anchor target (when it's the streaming assistant\n * response). No additional component is required.\n *\n * @example\n * ```tsx\n * <MessagePrimitive.Root>\n * <MessagePrimitive.Content />\n * <ActionBarPrimitive.Root>\n * <ActionBarPrimitive.Copy />\n * <ActionBarPrimitive.Edit />\n * </ActionBarPrimitive.Root>\n * </MessagePrimitive.Root>\n * ```\n */\nexport const MessagePrimitiveRoot = forwardRef<\n MessagePrimitiveRoot.Element,\n MessagePrimitiveRoot.Props\n>((props, forwardedRef) => {\n const threadViewportStore = useThreadViewportStore();\n // turnAnchor is initial-only viewport config (see ThreadViewportProvider).\n const turnAnchor = threadViewportStore.getState().turnAnchor;\n\n if (turnAnchor === \"top\") {\n return (\n <MessagePrimitiveRootTopAnchor\n {...props}\n forwardedRef={forwardedRef}\n threadViewportStore={threadViewportStore}\n />\n );\n }\n return <MessagePrimitiveRootDefault {...props} forwardedRef={forwardedRef} />;\n});\n\nMessagePrimitiveRoot.displayName = \"MessagePrimitive.Root\";\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import { MessagePrimitiveRoot } from "./message/MessageRoot.js";
2
- import { MessagePrimitivePartByIndex as MessagePrimitivePartByIndexBase, MessagePrimitiveParts } from "./message/MessageParts.js";
3
- import { MessagePrimitiveIf } from "./message/MessageIf.js";
4
- import { MessagePrimitiveAttachmentByIndex, MessagePrimitiveAttachments } from "./message/MessageAttachments.js";
5
- import { MessagePrimitiveError } from "./message/MessageError.js";
6
- import { MessagePrimitiveUnstable_PartsGrouped, MessagePrimitiveUnstable_PartsGroupedByParentId } from "./message/MessagePartsGrouped.js";
7
- import { MessagePrimitiveGenerativeUI as GenerativeUI, MessagePrimitiveGroupedParts as GroupedParts, MessagePrimitiveQuote as Quote } from "@assistant-ui/core/react";
8
- declare namespace message_d_exports {
9
- export { MessagePrimitiveAttachmentByIndex as AttachmentByIndex, MessagePrimitiveAttachments as Attachments, MessagePrimitiveParts as Content, MessagePrimitiveError as Error, GenerativeUI, GroupedParts, MessagePrimitiveIf as If, MessagePrimitivePartByIndexBase as PartByIndex, MessagePrimitiveParts as Parts, Quote, MessagePrimitiveRoot as Root, MessagePrimitiveUnstable_PartsGrouped as Unstable_PartsGrouped, MessagePrimitiveUnstable_PartsGroupedByParentId as Unstable_PartsGroupedByParentId };
10
- }
11
- //#endregion
12
- export { MessagePrimitiveAttachmentByIndex as AttachmentByIndex, MessagePrimitiveAttachments as Attachments, MessagePrimitiveParts as Content, MessagePrimitiveError as Error, GenerativeUI, GroupedParts, MessagePrimitiveIf as If, MessagePrimitivePartByIndexBase as PartByIndex, MessagePrimitiveParts as Parts, Quote, MessagePrimitiveRoot as Root, MessagePrimitiveUnstable_PartsGrouped as Unstable_PartsGrouped, MessagePrimitiveUnstable_PartsGroupedByParentId as Unstable_PartsGroupedByParentId, message_d_exports };
1
+ export { MessagePrimitiveRoot as Root } from "./message/MessageRoot.js";
2
+ export { MessagePrimitiveParts as Parts } from "./message/MessageParts.js";
3
+ export { MessagePrimitivePartByIndex as PartByIndex } from "./message/MessageParts.js";
4
+ export { MessagePrimitiveParts as Content } from "./message/MessageParts.js";
5
+ export { MessagePrimitiveIf as If } from "./message/MessageIf.js";
6
+ export { MessagePrimitiveAttachments as Attachments } from "./message/MessageAttachments.js";
7
+ export { MessagePrimitiveAttachmentByIndex as AttachmentByIndex } from "./message/MessageAttachments.js";
8
+ export { MessagePrimitiveQuote as Quote } from "@assistant-ui/core/react";
9
+ export { MessagePrimitiveError as Error } from "./message/MessageError.js";
10
+ export { MessagePrimitiveGroupedParts as GroupedParts } from "@assistant-ui/core/react";
11
+ export { MessagePrimitiveGenerativeUI as GenerativeUI } from "@assistant-ui/core/react";
12
+ export { MessagePrimitiveUnstable_PartsGrouped as Unstable_PartsGrouped, MessagePrimitiveUnstable_PartsGroupedByParentId as Unstable_PartsGroupedByParentId, } from "./message/MessagePartsGrouped.js";
13
13
  //# sourceMappingURL=message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","names":[],"sources":["../../src/primitives/message.ts"],"mappings":""}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/primitives/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,IAAI,IAAI,EAAE,iCAA8B;AACrE,OAAO,EAAE,qBAAqB,IAAI,KAAK,EAAE,kCAA+B;AACxE,OAAO,EAAE,2BAA2B,IAAI,WAAW,EAAE,kCAA+B;AACpF,OAAO,EAAE,qBAAqB,IAAI,OAAO,EAAE,kCAA+B;AAC1E,OAAO,EAAE,kBAAkB,IAAI,EAAE,EAAE,+BAA4B;AAC/D,OAAO,EAAE,2BAA2B,IAAI,WAAW,EAAE,wCAAqC;AAC1F,OAAO,EAAE,iCAAiC,IAAI,iBAAiB,EAAE,wCAAqC;AACtG,OAAO,EAAE,qBAAqB,IAAI,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,IAAI,KAAK,EAAE,kCAA+B;AACxE,OAAO,EAAE,4BAA4B,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,4BAA4B,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EACL,qCAAqC,IAAI,qBAAqB,EAC9D,+CAA+C,IAAI,+BAA+B,GACnF,yCAAsC"}
@@ -1,13 +1,12 @@
1
1
  import { Primitive } from "../../utils/Primitive.js";
2
- import { ComponentPropsWithoutRef, ComponentRef } from "react";
3
- //#region src/primitives/messagePart/MessagePartImage.d.ts
2
+ import { type ComponentRef, type ComponentPropsWithoutRef } from "react";
4
3
  export declare namespace MessagePartPrimitiveImage {
5
- type Element = ComponentRef<typeof Primitive.img>;
6
- /**
7
- * Props for the MessagePartPrimitive.Image component.
8
- * Accepts all standard img element props.
9
- */
10
- type Props = ComponentPropsWithoutRef<typeof Primitive.img>;
4
+ type Element = ComponentRef<typeof Primitive.img>;
5
+ /**
6
+ * Props for the MessagePartPrimitive.Image component.
7
+ * Accepts all standard img element props.
8
+ */
9
+ type Props = ComponentPropsWithoutRef<typeof Primitive.img>;
11
10
  }
12
11
  /**
13
12
  * Renders an image from the current message part context.
@@ -25,9 +24,8 @@ export declare namespace MessagePartPrimitiveImage {
25
24
  * ```
26
25
  */
27
26
  export declare const MessagePartPrimitiveImage: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").ClassAttributes<HTMLImageElement> & import("react").ImgHTMLAttributes<HTMLImageElement> & {
28
- asChild?: boolean;
27
+ asChild?: boolean;
29
28
  }, "ref"> & {
30
- render?: import("react").ReactElement | undefined;
29
+ render?: import("react").ReactElement | undefined;
31
30
  } & import("react").RefAttributes<HTMLImageElement>, "ref"> & import("react").RefAttributes<HTMLImageElement>>;
32
- //#endregion
33
31
  //# sourceMappingURL=MessagePartImage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePartImage.d.ts","names":[],"sources":["../../../src/primitives/messagePart/MessagePartImage.tsx"],"mappings":";;;yBAUiB;OACH,UAAU,oBAAoB,UAAU;;;;;OAKxC,QAAQ,gCAAgC,UAAU;;;;;;;;;;;;;;;;;qBAkBnD,2CAAyB,0BAAA,KAAA,qBAAA,gBAAA,oCAAA,kBAAA;;;;oBAMpC,cAAA,4CAAA,cAAA"}
1
+ {"version":3,"file":"MessagePartImage.d.ts","sourceRoot":"","sources":["../../../src/primitives/messagePart/MessagePartImage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,iCAA8B;AAClD,OAAO,EACL,KAAK,YAAY,EAEjB,KAAK,wBAAwB,EAC9B,MAAM,OAAO,CAAC;AAGf,yBAAiB,yBAAyB,CAAC;IACzC,KAAY,OAAO,GAAG,YAAY,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACzD;;;OAGG;IACH,KAAY,KAAK,GAAG,wBAAwB,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;CACpE;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,yBAAyB;;;;8GAMpC,CAAC"}