@assistant-ui/react 0.14.26 → 0.14.28

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 (496) hide show
  1. package/README.md +1 -1
  2. package/dist/augmentations.d.ts.map +1 -1
  3. package/dist/client/ExternalThread.d.ts +6 -4
  4. package/dist/client/ExternalThread.d.ts.map +1 -1
  5. package/dist/client/ExternalThread.js +4 -3
  6. package/dist/client/ExternalThread.js.map +1 -1
  7. package/dist/client/InMemoryThreadList.d.ts +0 -1
  8. package/dist/client/InMemoryThreadList.d.ts.map +1 -1
  9. package/dist/client/InMemoryThreadList.js +4 -1
  10. package/dist/client/InMemoryThreadList.js.map +1 -1
  11. package/dist/client/SingleThreadList.d.ts +0 -1
  12. package/dist/client/SingleThreadList.d.ts.map +1 -1
  13. package/dist/context/ReadonlyStore.d.ts +0 -1
  14. package/dist/context/ReadonlyStore.d.ts.map +1 -1
  15. package/dist/context/providers/MessageProvider.d.ts +0 -1
  16. package/dist/context/providers/MessageProvider.d.ts.map +1 -1
  17. package/dist/context/providers/ThreadViewportProvider.d.ts +0 -1
  18. package/dist/context/providers/ThreadViewportProvider.d.ts.map +1 -1
  19. package/dist/context/react/ThreadViewportContext.d.ts +15 -16
  20. package/dist/context/react/ThreadViewportContext.d.ts.map +1 -1
  21. package/dist/context/react/utils/createContextHook.d.ts +0 -1
  22. package/dist/context/react/utils/createContextHook.d.ts.map +1 -1
  23. package/dist/context/react/utils/createContextStoreHook.d.ts +2 -3
  24. package/dist/context/react/utils/createContextStoreHook.d.ts.map +1 -1
  25. package/dist/context/react/utils/createStateHookForRuntime.d.ts +0 -1
  26. package/dist/context/react/utils/createStateHookForRuntime.d.ts.map +1 -1
  27. package/dist/context/react/utils/ensureBinding.d.ts.map +1 -1
  28. package/dist/context/react/utils/useRuntimeState.d.ts +0 -1
  29. package/dist/context/react/utils/useRuntimeState.d.ts.map +1 -1
  30. package/dist/context/stores/ThreadViewport.d.ts +25 -15
  31. package/dist/context/stores/ThreadViewport.d.ts.map +1 -1
  32. package/dist/devtools/DevToolsHooks.d.ts +0 -1
  33. package/dist/devtools/DevToolsHooks.d.ts.map +1 -1
  34. package/dist/hooks/useMessageQuote.d.ts +0 -1
  35. package/dist/hooks/useMessageQuote.d.ts.map +1 -1
  36. package/dist/hooks/useMessageTiming.d.ts +0 -1
  37. package/dist/hooks/useMessageTiming.d.ts.map +1 -1
  38. package/dist/hooks/useToolCallElapsed.d.ts.map +1 -1
  39. package/dist/index.d.ts +5 -3
  40. package/dist/internal.d.ts +0 -2
  41. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts +0 -1
  42. package/dist/legacy-runtime/AssistantRuntimeProvider.d.ts.map +1 -1
  43. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
  44. package/dist/legacy-runtime/cloud/auiV0.d.ts +11 -2
  45. package/dist/legacy-runtime/cloud/auiV0.d.ts.map +1 -1
  46. package/dist/legacy-runtime/cloud/auiV0.js +31 -2
  47. package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
  48. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts +1 -5
  49. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  50. package/dist/legacy-runtime/hooks/AssistantContext.d.ts +0 -1
  51. package/dist/legacy-runtime/hooks/AssistantContext.d.ts.map +1 -1
  52. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts +12 -13
  53. package/dist/legacy-runtime/hooks/AttachmentContext.d.ts.map +1 -1
  54. package/dist/legacy-runtime/hooks/ComposerContext.d.ts +0 -1
  55. package/dist/legacy-runtime/hooks/ComposerContext.d.ts.map +1 -1
  56. package/dist/legacy-runtime/hooks/MessageContext.d.ts +0 -1
  57. package/dist/legacy-runtime/hooks/MessageContext.d.ts.map +1 -1
  58. package/dist/legacy-runtime/hooks/MessagePartContext.d.ts +0 -1
  59. package/dist/legacy-runtime/hooks/MessagePartContext.d.ts.map +1 -1
  60. package/dist/legacy-runtime/hooks/ThreadContext.d.ts +0 -1
  61. package/dist/legacy-runtime/hooks/ThreadContext.d.ts.map +1 -1
  62. package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts +0 -1
  63. package/dist/legacy-runtime/hooks/ThreadListItemContext.d.ts.map +1 -1
  64. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.d.ts +0 -1
  65. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.d.ts.map +1 -1
  66. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.d.ts +1 -4
  67. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.d.ts.map +1 -1
  68. package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.d.ts.map +1 -1
  69. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts +0 -1
  70. package/dist/legacy-runtime/runtime-cores/assistant-transport/types.d.ts.map +1 -1
  71. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts +0 -1
  72. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.d.ts.map +1 -1
  73. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.d.ts +0 -1
  74. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.d.ts.map +1 -1
  75. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.d.ts.map +1 -1
  76. package/dist/mcp-apps/McpAppRenderer.d.ts +12 -7
  77. package/dist/mcp-apps/McpAppRenderer.d.ts.map +1 -1
  78. package/dist/mcp-apps/McpAppRenderer.js +29 -7
  79. package/dist/mcp-apps/McpAppRenderer.js.map +1 -1
  80. package/dist/mcp-apps/McpAppsRemoteHost.d.ts +0 -1
  81. package/dist/mcp-apps/McpAppsRemoteHost.d.ts.map +1 -1
  82. package/dist/mcp-apps/McpAppsRemoteHost.js +32 -1
  83. package/dist/mcp-apps/McpAppsRemoteHost.js.map +1 -1
  84. package/dist/mcp-apps/app-frame.d.ts +1 -12
  85. package/dist/mcp-apps/app-frame.d.ts.map +1 -1
  86. package/dist/mcp-apps/app-frame.js +1 -1
  87. package/dist/mcp-apps/app-frame.js.map +1 -1
  88. package/dist/mcp-apps/bridge.d.ts +0 -1
  89. package/dist/mcp-apps/bridge.d.ts.map +1 -1
  90. package/dist/mcp-apps/bridge.js +4 -3
  91. package/dist/mcp-apps/bridge.js.map +1 -1
  92. package/dist/mcp-apps/types.d.ts +10 -7
  93. package/dist/mcp-apps/types.d.ts.map +1 -1
  94. package/dist/mcp-apps/types.js.map +1 -1
  95. package/dist/mcp-apps/utils.d.ts +0 -1
  96. package/dist/mcp-apps/utils.d.ts.map +1 -1
  97. package/dist/model-context/frame/useAssistantFrameHost.d.ts +1 -6
  98. package/dist/model-context/frame/useAssistantFrameHost.d.ts.map +1 -1
  99. package/dist/model-context/makeAssistantVisible.d.ts +0 -1
  100. package/dist/model-context/makeAssistantVisible.d.ts.map +1 -1
  101. package/dist/model-context/makeAssistantVisible.js +7 -1
  102. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  103. package/dist/primitives/actionBar/ActionBarCopy.d.ts +1 -4
  104. package/dist/primitives/actionBar/ActionBarCopy.d.ts.map +1 -1
  105. package/dist/primitives/actionBar/ActionBarEdit.d.ts +0 -1
  106. package/dist/primitives/actionBar/ActionBarEdit.d.ts.map +1 -1
  107. package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts +1 -5
  108. package/dist/primitives/actionBar/ActionBarExportMarkdown.d.ts.map +1 -1
  109. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts +0 -1
  110. package/dist/primitives/actionBar/ActionBarFeedbackNegative.d.ts.map +1 -1
  111. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts +0 -1
  112. package/dist/primitives/actionBar/ActionBarFeedbackPositive.d.ts.map +1 -1
  113. package/dist/primitives/actionBar/ActionBarInteractionContext.d.ts.map +1 -1
  114. package/dist/primitives/actionBar/ActionBarReload.d.ts +0 -1
  115. package/dist/primitives/actionBar/ActionBarReload.d.ts.map +1 -1
  116. package/dist/primitives/actionBar/ActionBarRoot.d.ts +0 -1
  117. package/dist/primitives/actionBar/ActionBarRoot.d.ts.map +1 -1
  118. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
  119. package/dist/primitives/actionBar/ActionBarSpeak.d.ts +0 -1
  120. package/dist/primitives/actionBar/ActionBarSpeak.d.ts.map +1 -1
  121. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts +0 -1
  122. package/dist/primitives/actionBar/ActionBarStopSpeaking.d.ts.map +1 -1
  123. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts +1 -6
  124. package/dist/primitives/actionBar/useActionBarFloatStatus.d.ts.map +1 -1
  125. package/dist/primitives/actionBar.d.ts +0 -2
  126. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts +0 -1
  127. package/dist/primitives/actionBarMore/ActionBarMoreContent.d.ts.map +1 -1
  128. package/dist/primitives/actionBarMore/ActionBarMoreContent.js.map +1 -1
  129. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts +0 -1
  130. package/dist/primitives/actionBarMore/ActionBarMoreItem.d.ts.map +1 -1
  131. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts +0 -1
  132. package/dist/primitives/actionBarMore/ActionBarMoreRoot.d.ts.map +1 -1
  133. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts +0 -1
  134. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.d.ts.map +1 -1
  135. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts +0 -1
  136. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.d.ts.map +1 -1
  137. package/dist/primitives/actionBarMore/scope.d.ts +0 -1
  138. package/dist/primitives/actionBarMore/scope.d.ts.map +1 -1
  139. package/dist/primitives/actionBarMore.d.ts +0 -2
  140. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts +6 -4
  141. package/dist/primitives/assistantModal/AssistantModalAnchor.d.ts.map +1 -1
  142. package/dist/primitives/assistantModal/AssistantModalAnchor.js +2 -2
  143. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  144. package/dist/primitives/assistantModal/AssistantModalContent.d.ts +4 -2
  145. package/dist/primitives/assistantModal/AssistantModalContent.d.ts.map +1 -1
  146. package/dist/primitives/assistantModal/AssistantModalContent.js +2 -1
  147. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  148. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts +0 -1
  149. package/dist/primitives/assistantModal/AssistantModalRoot.d.ts.map +1 -1
  150. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts +6 -4
  151. package/dist/primitives/assistantModal/AssistantModalTrigger.d.ts.map +1 -1
  152. package/dist/primitives/assistantModal/AssistantModalTrigger.js +2 -2
  153. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  154. package/dist/primitives/assistantModal/popoverRenderPrimitives.d.ts +14 -0
  155. package/dist/primitives/assistantModal/popoverRenderPrimitives.d.ts.map +1 -0
  156. package/dist/primitives/assistantModal/popoverRenderPrimitives.js +10 -0
  157. package/dist/primitives/assistantModal/popoverRenderPrimitives.js.map +1 -0
  158. package/dist/primitives/assistantModal/scope.d.ts +0 -1
  159. package/dist/primitives/assistantModal/scope.d.ts.map +1 -1
  160. package/dist/primitives/assistantModal.d.ts +0 -2
  161. package/dist/primitives/attachment/AttachmentName.d.ts +0 -1
  162. package/dist/primitives/attachment/AttachmentName.d.ts.map +1 -1
  163. package/dist/primitives/attachment/AttachmentRemove.d.ts +0 -1
  164. package/dist/primitives/attachment/AttachmentRemove.d.ts.map +1 -1
  165. package/dist/primitives/attachment/AttachmentRoot.d.ts +0 -1
  166. package/dist/primitives/attachment/AttachmentRoot.d.ts.map +1 -1
  167. package/dist/primitives/attachment/AttachmentThumb.d.ts +0 -1
  168. package/dist/primitives/attachment/AttachmentThumb.d.ts.map +1 -1
  169. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
  170. package/dist/primitives/attachment.d.ts +0 -2
  171. package/dist/primitives/branchPicker/BranchPickerCount.d.ts +0 -1
  172. package/dist/primitives/branchPicker/BranchPickerCount.d.ts.map +1 -1
  173. package/dist/primitives/branchPicker/BranchPickerNext.d.ts +0 -1
  174. package/dist/primitives/branchPicker/BranchPickerNext.d.ts.map +1 -1
  175. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts +0 -1
  176. package/dist/primitives/branchPicker/BranchPickerNumber.d.ts.map +1 -1
  177. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts +0 -1
  178. package/dist/primitives/branchPicker/BranchPickerPrevious.d.ts.map +1 -1
  179. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts +0 -1
  180. package/dist/primitives/branchPicker/BranchPickerRoot.d.ts.map +1 -1
  181. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  182. package/dist/primitives/branchPicker.d.ts +0 -2
  183. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts +0 -1
  184. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.d.ts.map +1 -1
  185. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts +0 -1
  186. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.d.ts.map +1 -1
  187. package/dist/primitives/chainOfThought.d.ts +0 -2
  188. package/dist/primitives/composer/ComposerAddAttachment.d.ts +5 -6
  189. package/dist/primitives/composer/ComposerAddAttachment.d.ts.map +1 -1
  190. package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts +0 -1
  191. package/dist/primitives/composer/ComposerAttachmentDropzone.d.ts.map +1 -1
  192. package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
  193. package/dist/primitives/composer/ComposerCancel.d.ts +0 -1
  194. package/dist/primitives/composer/ComposerCancel.d.ts.map +1 -1
  195. package/dist/primitives/composer/ComposerCompactContext.d.ts +9 -0
  196. package/dist/primitives/composer/ComposerCompactContext.d.ts.map +1 -0
  197. package/dist/primitives/composer/ComposerCompactContext.js +11 -0
  198. package/dist/primitives/composer/ComposerCompactContext.js.map +1 -0
  199. package/dist/primitives/composer/ComposerDictate.d.ts +0 -1
  200. package/dist/primitives/composer/ComposerDictate.d.ts.map +1 -1
  201. package/dist/primitives/composer/ComposerDictationTranscript.d.ts +0 -1
  202. package/dist/primitives/composer/ComposerDictationTranscript.d.ts.map +1 -1
  203. package/dist/primitives/composer/ComposerDictationTranscript.js.map +1 -1
  204. package/dist/primitives/composer/ComposerInput.d.ts +0 -1
  205. package/dist/primitives/composer/ComposerInput.d.ts.map +1 -1
  206. package/dist/primitives/composer/ComposerInput.js +17 -2
  207. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  208. package/dist/primitives/composer/ComposerInputPluginContext.d.ts +4 -3
  209. package/dist/primitives/composer/ComposerInputPluginContext.d.ts.map +1 -1
  210. package/dist/primitives/composer/ComposerQuote.d.ts +0 -1
  211. package/dist/primitives/composer/ComposerQuote.d.ts.map +1 -1
  212. package/dist/primitives/composer/ComposerQuote.js.map +1 -1
  213. package/dist/primitives/composer/ComposerRoot.d.ts +27 -3
  214. package/dist/primitives/composer/ComposerRoot.d.ts.map +1 -1
  215. package/dist/primitives/composer/ComposerRoot.js +109 -30
  216. package/dist/primitives/composer/ComposerRoot.js.map +1 -1
  217. package/dist/primitives/composer/ComposerSend.d.ts +0 -1
  218. package/dist/primitives/composer/ComposerSend.d.ts.map +1 -1
  219. package/dist/primitives/composer/ComposerStopDictation.d.ts +0 -1
  220. package/dist/primitives/composer/ComposerStopDictation.d.ts.map +1 -1
  221. package/dist/primitives/composer/trigger/TriggerPopover.d.ts +10 -5
  222. package/dist/primitives/composer/trigger/TriggerPopover.d.ts.map +1 -1
  223. package/dist/primitives/composer/trigger/TriggerPopover.js.map +1 -1
  224. package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts +5 -3
  225. package/dist/primitives/composer/trigger/TriggerPopoverAction.d.ts.map +1 -1
  226. package/dist/primitives/composer/trigger/TriggerPopoverAction.js +3 -2
  227. package/dist/primitives/composer/trigger/TriggerPopoverAction.js.map +1 -1
  228. package/dist/primitives/composer/trigger/TriggerPopoverBack.d.ts +0 -1
  229. package/dist/primitives/composer/trigger/TriggerPopoverBack.d.ts.map +1 -1
  230. package/dist/primitives/composer/trigger/TriggerPopoverCategories.d.ts +0 -1
  231. package/dist/primitives/composer/trigger/TriggerPopoverCategories.d.ts.map +1 -1
  232. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js.map +1 -1
  233. package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts +3 -2
  234. package/dist/primitives/composer/trigger/TriggerPopoverDirective.d.ts.map +1 -1
  235. package/dist/primitives/composer/trigger/TriggerPopoverItems.d.ts +0 -1
  236. package/dist/primitives/composer/trigger/TriggerPopoverItems.d.ts.map +1 -1
  237. package/dist/primitives/composer/trigger/TriggerPopoverItems.js.map +1 -1
  238. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts +10 -6
  239. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts.map +1 -1
  240. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts +8 -5
  241. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.d.ts.map +1 -1
  242. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js.map +1 -1
  243. package/dist/primitives/composer/trigger/detectTrigger.d.ts +1 -1
  244. package/dist/primitives/composer/trigger/index.d.ts +0 -1
  245. package/dist/primitives/composer/trigger/index.d.ts.map +1 -1
  246. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts +5 -2
  247. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts.map +1 -1
  248. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts +7 -4
  249. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts.map +1 -1
  250. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts +13 -7
  251. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts.map +1 -1
  252. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts +7 -4
  253. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts.map +1 -1
  254. package/dist/primitives/composer/useComposerInputState.d.ts.map +1 -1
  255. package/dist/primitives/composer.d.ts +0 -2
  256. package/dist/primitives/dropdownMenuRenderPrimitives.d.ts +0 -1
  257. package/dist/primitives/dropdownMenuRenderPrimitives.d.ts.map +1 -1
  258. package/dist/primitives/error/ErrorMessage.d.ts +0 -1
  259. package/dist/primitives/error/ErrorMessage.d.ts.map +1 -1
  260. package/dist/primitives/error/ErrorMessage.js.map +1 -1
  261. package/dist/primitives/error/ErrorRoot.d.ts +0 -1
  262. package/dist/primitives/error/ErrorRoot.d.ts.map +1 -1
  263. package/dist/primitives/error.d.ts +0 -2
  264. package/dist/primitives/message/MessageError.d.ts +0 -1
  265. package/dist/primitives/message/MessageError.d.ts.map +1 -1
  266. package/dist/primitives/message/MessageIf.d.ts +0 -1
  267. package/dist/primitives/message/MessageIf.d.ts.map +1 -1
  268. package/dist/primitives/message/MessageParts.d.ts +0 -1
  269. package/dist/primitives/message/MessageParts.d.ts.map +1 -1
  270. package/dist/primitives/message/MessageParts.js.map +1 -1
  271. package/dist/primitives/message/MessagePartsGrouped.d.ts +25 -12
  272. package/dist/primitives/message/MessagePartsGrouped.d.ts.map +1 -1
  273. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  274. package/dist/primitives/message/MessageRoot.d.ts +0 -1
  275. package/dist/primitives/message/MessageRoot.d.ts.map +1 -1
  276. package/dist/primitives/message.d.ts +0 -2
  277. package/dist/primitives/messagePart/MessagePartImage.d.ts +0 -1
  278. package/dist/primitives/messagePart/MessagePartImage.d.ts.map +1 -1
  279. package/dist/primitives/messagePart/MessagePartText.d.ts +0 -1
  280. package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -1
  281. package/dist/primitives/messagePart/MessagePartText.js.map +1 -1
  282. package/dist/primitives/messagePart/useMessagePartData.d.ts +3 -3
  283. package/dist/primitives/messagePart/useMessagePartData.d.ts.map +1 -1
  284. package/dist/primitives/messagePart/useMessagePartData.js +3 -2
  285. package/dist/primitives/messagePart/useMessagePartData.js.map +1 -1
  286. package/dist/primitives/messagePart/useMessagePartFile.d.ts +5 -5
  287. package/dist/primitives/messagePart/useMessagePartFile.d.ts.map +1 -1
  288. package/dist/primitives/messagePart/useMessagePartFile.js +11 -3
  289. package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -1
  290. package/dist/primitives/messagePart/useMessagePartImage.d.ts +5 -5
  291. package/dist/primitives/messagePart/useMessagePartImage.d.ts.map +1 -1
  292. package/dist/primitives/messagePart/useMessagePartImage.js +10 -3
  293. package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -1
  294. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts +5 -5
  295. package/dist/primitives/messagePart/useMessagePartReasoning.d.ts.map +1 -1
  296. package/dist/primitives/messagePart/useMessagePartReasoning.js +10 -3
  297. package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -1
  298. package/dist/primitives/messagePart/useMessagePartSource.d.ts +6 -4
  299. package/dist/primitives/messagePart/useMessagePartSource.d.ts.map +1 -1
  300. package/dist/primitives/messagePart/useMessagePartSource.js +12 -3
  301. package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -1
  302. package/dist/primitives/messagePart/useMessagePartText.d.ts +6 -6
  303. package/dist/primitives/messagePart/useMessagePartText.d.ts.map +1 -1
  304. package/dist/primitives/messagePart/useMessagePartText.js +10 -3
  305. package/dist/primitives/messagePart/useMessagePartText.js.map +1 -1
  306. package/dist/primitives/messagePart.d.ts +0 -2
  307. package/dist/primitives/queueItem/QueueItemRemove.d.ts +0 -1
  308. package/dist/primitives/queueItem/QueueItemRemove.d.ts.map +1 -1
  309. package/dist/primitives/queueItem/QueueItemSteer.d.ts +0 -1
  310. package/dist/primitives/queueItem/QueueItemSteer.d.ts.map +1 -1
  311. package/dist/primitives/queueItem/QueueItemText.d.ts +0 -1
  312. package/dist/primitives/queueItem/QueueItemText.d.ts.map +1 -1
  313. package/dist/primitives/queueItem/QueueItemText.js.map +1 -1
  314. package/dist/primitives/queueItem.d.ts +0 -2
  315. package/dist/primitives/reasoning/useScrollLock.d.ts +0 -1
  316. package/dist/primitives/reasoning/useScrollLock.d.ts.map +1 -1
  317. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts +0 -1
  318. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.d.ts.map +1 -1
  319. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts +0 -1
  320. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.d.ts.map +1 -1
  321. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js +2 -1
  322. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js.map +1 -1
  323. package/dist/primitives/selectionToolbar.d.ts +0 -2
  324. package/dist/primitives/suggestion/SuggestionDescription.d.ts +0 -1
  325. package/dist/primitives/suggestion/SuggestionDescription.d.ts.map +1 -1
  326. package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -1
  327. package/dist/primitives/suggestion/SuggestionTitle.d.ts +0 -1
  328. package/dist/primitives/suggestion/SuggestionTitle.d.ts.map +1 -1
  329. package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -1
  330. package/dist/primitives/suggestion/SuggestionTrigger.d.ts +1 -5
  331. package/dist/primitives/suggestion/SuggestionTrigger.d.ts.map +1 -1
  332. package/dist/primitives/suggestion.d.ts +0 -2
  333. package/dist/primitives/thread/ThreadEmpty.d.ts +0 -1
  334. package/dist/primitives/thread/ThreadEmpty.d.ts.map +1 -1
  335. package/dist/primitives/thread/ThreadIf.d.ts +0 -1
  336. package/dist/primitives/thread/ThreadIf.d.ts.map +1 -1
  337. package/dist/primitives/thread/ThreadRoot.d.ts +0 -1
  338. package/dist/primitives/thread/ThreadRoot.d.ts.map +1 -1
  339. package/dist/primitives/thread/ThreadScrollToBottom.d.ts +1 -4
  340. package/dist/primitives/thread/ThreadScrollToBottom.d.ts.map +1 -1
  341. package/dist/primitives/thread/ThreadSuggestion.d.ts +13 -14
  342. package/dist/primitives/thread/ThreadSuggestion.d.ts.map +1 -1
  343. package/dist/primitives/thread/ThreadViewport.d.ts +0 -1
  344. package/dist/primitives/thread/ThreadViewport.d.ts.map +1 -1
  345. package/dist/primitives/thread/ThreadViewport.js +53 -19
  346. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  347. package/dist/primitives/thread/ThreadViewportFooter.d.ts +0 -1
  348. package/dist/primitives/thread/ThreadViewportFooter.d.ts.map +1 -1
  349. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.d.ts +2 -11
  350. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.d.ts.map +1 -1
  351. package/dist/primitives/thread/topAnchor/createReserveObservers.d.ts.map +1 -1
  352. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.d.ts +4 -0
  353. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.d.ts.map +1 -1
  354. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js +14 -1
  355. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js.map +1 -1
  356. package/dist/primitives/thread/topAnchor/topAnchorTurn.d.ts +14 -5
  357. package/dist/primitives/thread/topAnchor/topAnchorTurn.d.ts.map +1 -1
  358. package/dist/primitives/thread/topAnchor/topAnchorTurn.js +14 -1
  359. package/dist/primitives/thread/topAnchor/topAnchorTurn.js.map +1 -1
  360. package/dist/primitives/thread/topAnchor/topAnchorUtils.d.ts.map +1 -1
  361. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.d.ts.map +1 -1
  362. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts +1 -7
  363. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  364. package/dist/primitives/thread/useThreadViewportAutoScroll.js +2 -1
  365. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  366. package/dist/primitives/thread.d.ts +0 -2
  367. package/dist/primitives/threadList/ThreadListLoadMore.d.ts +0 -1
  368. package/dist/primitives/threadList/ThreadListLoadMore.d.ts.map +1 -1
  369. package/dist/primitives/threadList/ThreadListNew.d.ts +0 -1
  370. package/dist/primitives/threadList/ThreadListNew.d.ts.map +1 -1
  371. package/dist/primitives/threadList/ThreadListRoot.d.ts +0 -1
  372. package/dist/primitives/threadList/ThreadListRoot.d.ts.map +1 -1
  373. package/dist/primitives/threadList/ThreadListRoot.js.map +1 -1
  374. package/dist/primitives/threadList.d.ts +0 -2
  375. package/dist/primitives/threadListFocusGroup.d.ts +0 -1
  376. package/dist/primitives/threadListFocusGroup.d.ts.map +1 -1
  377. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts +0 -1
  378. package/dist/primitives/threadListItem/ThreadListItemArchive.d.ts.map +1 -1
  379. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts +0 -1
  380. package/dist/primitives/threadListItem/ThreadListItemDelete.d.ts.map +1 -1
  381. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts +0 -1
  382. package/dist/primitives/threadListItem/ThreadListItemRoot.d.ts.map +1 -1
  383. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  384. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts +0 -1
  385. package/dist/primitives/threadListItem/ThreadListItemTrigger.d.ts.map +1 -1
  386. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
  387. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts +0 -1
  388. package/dist/primitives/threadListItem/ThreadListItemUnarchive.d.ts.map +1 -1
  389. package/dist/primitives/threadListItem.d.ts +0 -2
  390. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts +0 -1
  391. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.d.ts.map +1 -1
  392. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js.map +1 -1
  393. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts +0 -1
  394. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.d.ts.map +1 -1
  395. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts +0 -1
  396. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.d.ts.map +1 -1
  397. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js.map +1 -1
  398. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts +0 -1
  399. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.d.ts.map +1 -1
  400. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts +0 -1
  401. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.d.ts.map +1 -1
  402. package/dist/primitives/threadListItemMore/scope.d.ts +0 -1
  403. package/dist/primitives/threadListItemMore/scope.d.ts.map +1 -1
  404. package/dist/primitives/threadListItemMore.d.ts +0 -2
  405. package/dist/sandbox-host/SandboxHost.d.ts +1 -10
  406. package/dist/sandbox-host/SandboxHost.d.ts.map +1 -1
  407. package/dist/tests/remote-thread-list-test-helpers.d.ts +0 -1
  408. package/dist/tests/remote-thread-list-test-helpers.d.ts.map +1 -1
  409. package/dist/tests/setup.d.ts +1 -1
  410. package/dist/unstable/useComposerInput.d.ts +2 -2
  411. package/dist/unstable/useComposerInput.d.ts.map +1 -1
  412. package/dist/unstable/useComposerInputHistory.d.ts +2 -2
  413. package/dist/unstable/useComposerInputHistory.d.ts.map +1 -1
  414. package/dist/unstable/useLiveCompletionAdapter.d.ts +4 -3
  415. package/dist/unstable/useLiveCompletionAdapter.d.ts.map +1 -1
  416. package/dist/unstable/useMentionAdapter.d.ts +19 -10
  417. package/dist/unstable/useMentionAdapter.d.ts.map +1 -1
  418. package/dist/unstable/useMessageStallDetection.d.ts +3 -1
  419. package/dist/unstable/useMessageStallDetection.d.ts.map +1 -1
  420. package/dist/unstable/useSlashCommandAdapter.d.ts +6 -4
  421. package/dist/unstable/useSlashCommandAdapter.d.ts.map +1 -1
  422. package/dist/utils/Primitive.d.ts +0 -1
  423. package/dist/utils/Primitive.d.ts.map +1 -1
  424. package/dist/utils/Primitive.js.map +1 -1
  425. package/dist/utils/RequireAtLeastOne.d.ts +1 -1
  426. package/dist/utils/RequireAtLeastOne.d.ts.map +1 -1
  427. package/dist/utils/createActionButton.d.ts +0 -1
  428. package/dist/utils/createActionButton.d.ts.map +1 -1
  429. package/dist/utils/getSelectionMessageId.d.ts.map +1 -1
  430. package/dist/utils/getSelectionMessageId.js +32 -7
  431. package/dist/utils/getSelectionMessageId.js.map +1 -1
  432. package/dist/utils/hooks/useManagedRef.d.ts.map +1 -1
  433. package/dist/utils/hooks/useMediaQuery.d.ts.map +1 -1
  434. package/dist/utils/hooks/useOnResizeContent.d.ts.map +1 -1
  435. package/dist/utils/hooks/useOnScrollToBottom.d.ts.map +1 -1
  436. package/dist/utils/hooks/useSizeHandle.d.ts +0 -1
  437. package/dist/utils/hooks/useSizeHandle.d.ts.map +1 -1
  438. package/dist/utils/smooth/SmoothContext.d.ts +71 -72
  439. package/dist/utils/smooth/SmoothContext.d.ts.map +1 -1
  440. package/dist/utils/smooth/useSmooth.d.ts +0 -1
  441. package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
  442. package/dist/utils/useToolArgsFieldStatus.d.ts +2 -2
  443. package/dist/utils/useToolArgsFieldStatus.d.ts.map +1 -1
  444. package/package.json +23 -23
  445. package/src/client/ExternalThread.ts +2 -1
  446. package/src/index.ts +3 -0
  447. package/src/legacy-runtime/cloud/auiV0.ts +72 -3
  448. package/src/mcp-apps/McpAppRenderer.test.tsx +141 -0
  449. package/src/mcp-apps/McpAppRenderer.tsx +48 -10
  450. package/src/mcp-apps/McpAppsRemoteHost.test.ts +126 -0
  451. package/src/mcp-apps/McpAppsRemoteHost.ts +40 -1
  452. package/src/mcp-apps/app-frame.tsx +3 -1
  453. package/src/mcp-apps/bridge.ts +1 -1
  454. package/src/mcp-apps/types.ts +16 -8
  455. package/src/model-context/makeAssistantVisible.test.tsx +146 -0
  456. package/src/model-context/makeAssistantVisible.tsx +18 -1
  457. package/src/primitives/assistantModal/AssistantModalAnchor.tsx +6 -8
  458. package/src/primitives/assistantModal/AssistantModalContent.tsx +5 -5
  459. package/src/primitives/assistantModal/AssistantModalTrigger.test.tsx +80 -0
  460. package/src/primitives/assistantModal/AssistantModalTrigger.tsx +6 -8
  461. package/src/primitives/assistantModal/popoverRenderPrimitives.ts +6 -0
  462. package/src/primitives/composer/ComposerCompactContext.tsx +13 -0
  463. package/src/primitives/composer/ComposerInput.tsx +35 -0
  464. package/src/primitives/composer/ComposerRoot.test.tsx +382 -0
  465. package/src/primitives/composer/ComposerRoot.tsx +86 -7
  466. package/src/primitives/messagePart/useMessagePartData.ts +3 -2
  467. package/src/primitives/messagePart/useMessagePartFile.ts +19 -7
  468. package/src/primitives/messagePart/useMessagePartImage.ts +18 -7
  469. package/src/primitives/messagePart/useMessagePartReasoning.ts +15 -6
  470. package/src/primitives/messagePart/useMessagePartSource.ts +20 -7
  471. package/src/primitives/messagePart/useMessagePartText.ts +15 -5
  472. package/src/primitives/thread/ThreadViewport.tsx +15 -0
  473. package/src/primitives/thread/topAnchor/mountTopAnchorReserve.test.ts +243 -0
  474. package/src/primitives/thread/topAnchor/mountTopAnchorReserve.ts +28 -7
  475. package/src/primitives/thread/topAnchor/topAnchorTurn.test.ts +69 -0
  476. package/src/primitives/thread/topAnchor/topAnchorTurn.ts +29 -0
  477. package/src/primitives/thread/useThreadViewportAutoScroll.test.tsx +86 -1
  478. package/src/primitives/thread/useThreadViewportAutoScroll.ts +6 -1
  479. package/src/tests/BaseComposerRuntimeCore.test.ts +12 -3
  480. package/src/tests/LocalThreadRuntimeCore.test.ts +4 -1
  481. package/src/tests/auiV0Encode.test.ts +134 -1
  482. package/src/tests/external-thread-attachments.test.tsx +81 -0
  483. package/src/tests/messagePartSwitchRace.test.tsx +158 -0
  484. package/src/tests/messagePartTypeMismatch.test.tsx +146 -0
  485. package/src/utils/getSelectionMessageId.test.ts +175 -0
  486. package/src/utils/getSelectionMessageId.ts +57 -6
  487. package/dist/utils/json/is-json-equal.d.ts +0 -5
  488. package/dist/utils/json/is-json-equal.d.ts.map +0 -1
  489. package/dist/utils/json/is-json-equal.js +0 -26
  490. package/dist/utils/json/is-json-equal.js.map +0 -1
  491. package/dist/utils/json/is-json.d.ts +0 -10
  492. package/dist/utils/json/is-json.d.ts.map +0 -1
  493. package/dist/utils/json/is-json.js +0 -22
  494. package/dist/utils/json/is-json.js.map +0 -1
  495. package/src/utils/json/is-json-equal.ts +0 -48
  496. package/src/utils/json/is-json.ts +0 -58
@@ -1,10 +1,10 @@
1
- import { ReasoningMessagePart, TextMessagePart } from "@assistant-ui/core";
2
-
1
+ import { MessagePartStatus, ReasoningMessagePart, TextMessagePart } from "@assistant-ui/core";
3
2
  //#region src/primitives/messagePart/useMessagePartText.d.ts
4
3
  /**
5
4
  * @deprecated Use {@link useAuiState} to select and narrow `s.part`.
6
- * Return `null` for optional rendering, or throw inside the selector to
7
- * preserve the old hook's strict behavior.
5
+ * Return `null` for optional rendering. Do not throw inside the selector:
6
+ * selectors run inside `useSyncExternalStore`'s `getSnapshot`, so a transient
7
+ * part mismatch during thread switches can unmount the React root.
8
8
  *
9
9
  * @example
10
10
  * ```tsx
@@ -17,9 +17,9 @@ import { ReasoningMessagePart, TextMessagePart } from "@assistant-ui/core";
17
17
  * See the {@link https://assistant-ui.com/docs/migrations/v0-12 migration guide}.
18
18
  */
19
19
  declare const useMessagePartText: () => (TextMessagePart & {
20
- readonly status: import("@assistant-ui/core").MessagePartStatus | import("@assistant-ui/core").ToolCallMessagePartStatus;
20
+ readonly status: MessagePartStatus | import("@assistant-ui/core").ToolCallMessagePartStatus;
21
21
  }) | (ReasoningMessagePart & {
22
- readonly status: import("@assistant-ui/core").MessagePartStatus | import("@assistant-ui/core").ToolCallMessagePartStatus;
22
+ readonly status: MessagePartStatus | import("@assistant-ui/core").ToolCallMessagePartStatus;
23
23
  });
24
24
  //#endregion
25
25
  export { useMessagePartText };
@@ -1 +1 @@
1
- {"version":3,"file":"useMessagePartText.d.ts","names":[],"sources":["../../../src/primitives/messagePart/useMessagePartText.ts"],"mappings":";;;;;AAwBA;;;;;;;;;;;;;cAAa,kBAAA,SAAkB,eAAA;EAAA;MAAA,oBAAA;EAAA"}
1
+ {"version":3,"file":"useMessagePartText.d.ts","names":[],"sources":["../../../src/primitives/messagePart/useMessagePartText.ts"],"mappings":";;;;;;;;;;;;;;;;;;cAkCa,2BAAkB"}
@@ -1,10 +1,17 @@
1
1
  "use client";
2
2
  import { useAuiState } from "@assistant-ui/store";
3
3
  //#region src/primitives/messagePart/useMessagePartText.ts
4
+ const COMPLETE_STATUS = Object.freeze({ type: "complete" });
5
+ const EMPTY_TEXT_PART = Object.freeze({
6
+ type: "text",
7
+ text: "",
8
+ status: COMPLETE_STATUS
9
+ });
4
10
  /**
5
11
  * @deprecated Use {@link useAuiState} to select and narrow `s.part`.
6
- * Return `null` for optional rendering, or throw inside the selector to
7
- * preserve the old hook's strict behavior.
12
+ * Return `null` for optional rendering. Do not throw inside the selector:
13
+ * selectors run inside `useSyncExternalStore`'s `getSnapshot`, so a transient
14
+ * part mismatch during thread switches can unmount the React root.
8
15
  *
9
16
  * @example
10
17
  * ```tsx
@@ -20,7 +27,7 @@ const useMessagePartText = () => {
20
27
  return useAuiState(_temp);
21
28
  };
22
29
  function _temp(s) {
23
- if (s.part.type !== "text" && s.part.type !== "reasoning") throw new Error("MessagePartText can only be used inside text or reasoning message parts.");
30
+ if (s.part.type !== "text" && s.part.type !== "reasoning") return EMPTY_TEXT_PART;
24
31
  return s.part;
25
32
  }
26
33
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"useMessagePartText.js","names":["TextMessagePart","ReasoningMessagePart","MessagePartState","useAuiState","useMessagePartText","text","_temp","s","part","type","Error"],"sources":["../../../src/primitives/messagePart/useMessagePartText.ts"],"sourcesContent":["\"use client\";\n\nimport type {\n TextMessagePart,\n ReasoningMessagePart,\n MessagePartState,\n} from \"@assistant-ui/core\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\n/**\n * @deprecated Use {@link useAuiState} to select and narrow `s.part`.\n * Return `null` for optional rendering, or throw inside the selector to\n * preserve the old hook's strict behavior.\n *\n * @example\n * ```tsx\n * const text = useAuiState((s) => {\n * if (s.part.type !== \"text\" && s.part.type !== \"reasoning\") return null;\n * return s.part;\n * });\n * ```\n *\n * See the {@link https://assistant-ui.com/docs/migrations/v0-12 migration guide}.\n */\nexport const useMessagePartText = () => {\n const text = useAuiState((s) => {\n if (s.part.type !== \"text\" && s.part.type !== \"reasoning\")\n throw new Error(\n \"MessagePartText can only be used inside text or reasoning message parts.\",\n );\n\n return s.part as MessagePartState &\n (TextMessagePart | ReasoningMessagePart);\n });\n\n return text;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAwBA,MAAaI,2BAAqB;CAS7B,OARUD,YAAYG,KAUlBD;AAAI;AAXqB,SAAAC,MAAAC,GAAA;CAE9B,IAAIA,EAACC,KAAKC,SAAU,UAAUF,EAACC,KAAKC,SAAU,aAC5C,MAAM,IAAIC,MACR,0EACF;CAAE,OAEGH,EAACC;AACkC"}
1
+ {"version":3,"file":"useMessagePartText.js","names":["TextMessagePart","ReasoningMessagePart","MessagePartState","MessagePartStatus","useAuiState","COMPLETE_STATUS","Object","freeze","type","EMPTY_TEXT_PART","text","status","useMessagePartText","_temp","s","part"],"sources":["../../../src/primitives/messagePart/useMessagePartText.ts"],"sourcesContent":["\"use client\";\n\nimport type {\n TextMessagePart,\n ReasoningMessagePart,\n MessagePartState,\n MessagePartStatus,\n} from \"@assistant-ui/core\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nconst COMPLETE_STATUS: MessagePartStatus = Object.freeze({ type: \"complete\" });\n\nconst EMPTY_TEXT_PART: MessagePartState & TextMessagePart = Object.freeze({\n type: \"text\",\n text: \"\",\n status: COMPLETE_STATUS,\n});\n\n/**\n * @deprecated Use {@link useAuiState} to select and narrow `s.part`.\n * Return `null` for optional rendering. Do not throw inside the selector:\n * selectors run inside `useSyncExternalStore`'s `getSnapshot`, so a transient\n * part mismatch during thread switches can unmount the React root.\n *\n * @example\n * ```tsx\n * const text = useAuiState((s) => {\n * if (s.part.type !== \"text\" && s.part.type !== \"reasoning\") return null;\n * return s.part;\n * });\n * ```\n *\n * See the {@link https://assistant-ui.com/docs/migrations/v0-12 migration guide}.\n */\nexport const useMessagePartText = () => {\n // Runs inside useSyncExternalStore's getSnapshot, where a throw tears down\n // the React root; the module-level frozen sentinel keeps snapshots stable.\n const text = useAuiState((s) => {\n if (s.part.type !== \"text\" && s.part.type !== \"reasoning\")\n return EMPTY_TEXT_PART;\n\n return s.part as MessagePartState &\n (TextMessagePart | ReasoningMessagePart);\n });\n\n return text;\n};\n"],"mappings":";;;AAUA,MAAMK,kBAAqCC,OAAOC,OAAO,EAAEC,MAAM,WAAW,CAAC;AAE7E,MAAMC,kBAAsDH,OAAOC,OAAO;CACxEC,MAAM;CACNE,MAAM;CACNC,QAAQN;AACV,CAAC;;;;;;;;;;;;;;;;;AAkBD,MAAaO,2BAAqB;CAS7B,OANUR,YAAYS,KAQlBH;AAAI;AAXqB,SAAAG,MAAAC,GAAA;CAI9B,IAAIA,EAACC,KAAKP,SAAU,UAAUM,EAACC,KAAKP,SAAU,aAAW,OAChDC;CAAgB,OAElBK,EAACC;AACkC"}
@@ -2,8 +2,6 @@ import { MessagePartPrimitiveText } from "./messagePart/MessagePartText.js";
2
2
  import { MessagePartPrimitiveImage } from "./messagePart/MessagePartImage.js";
3
3
  import { MessagePartPrimitiveInProgress } from "./messagePart/MessagePartInProgress.js";
4
4
  import { PartPrimitiveMessages as Messages } from "@assistant-ui/core/react";
5
-
6
- //#region src/primitives/messagePart.d.ts
7
5
  declare namespace messagePart_d_exports {
8
6
  export { MessagePartPrimitiveImage as Image, MessagePartPrimitiveInProgress as InProgress, Messages, MessagePartPrimitiveText as Text };
9
7
  }
@@ -1,5 +1,4 @@
1
1
  import { ActionButtonElement, ActionButtonProps } from "../../utils/createActionButton.js";
2
-
3
2
  //#region src/primitives/queueItem/QueueItemRemove.d.ts
4
3
  declare const useQueueItemRemove: () => () => void;
5
4
  declare namespace QueueItemPrimitiveRemove {
@@ -1 +1 @@
1
- {"version":3,"file":"QueueItemRemove.d.ts","names":[],"sources":["../../../src/primitives/queueItem/QueueItemRemove.ts"],"mappings":";;;cAUM,kBAAA;AAAA,kBAUW,wBAAA;EAAA,KACH,OAAA,GAAU,mBAAA;EAAA,KACV,KAAA,GAAQ,iBAAA,QAAyB,kBAAA;AAAA;;AAJ9C;AAED;;;;;;cAaa,wBAAA,kBAAwB,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,iBAAA,oBAAA,oBAAA,CAAA,iBAAA"}
1
+ {"version":3,"file":"QueueItemRemove.d.ts","names":[],"sources":["../../../src/primitives/queueItem/QueueItemRemove.ts"],"mappings":";;cAUM;kBAUW;OACH,UAAU;OACV,QAAQ,yBAAyB;;;;;;;;;;cAWlC,0CAAwB,0BAAA,KAAA,qBAAA,gBAAA,qCAAA,qBAAA;;;;oBAGpC,cAAA,6CAAA,cAAA"}
@@ -1,5 +1,4 @@
1
1
  import { ActionButtonElement, ActionButtonProps } from "../../utils/createActionButton.js";
2
-
3
2
  //#region src/primitives/queueItem/QueueItemSteer.d.ts
4
3
  declare const useQueueItemSteer: () => () => void;
5
4
  declare namespace QueueItemPrimitiveSteer {
@@ -1 +1 @@
1
- {"version":3,"file":"QueueItemSteer.d.ts","names":[],"sources":["../../../src/primitives/queueItem/QueueItemSteer.ts"],"mappings":";;;cAUM,iBAAA;AAAA,kBAUW,uBAAA;EAAA,KACH,OAAA,GAAU,mBAAA;EAAA,KACV,KAAA,GAAQ,iBAAA,QAAyB,iBAAA;AAAA;;AAJ9C;AAED;;;;;;cAaa,uBAAA,kBAAuB,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,iBAAA,oBAAA,oBAAA,CAAA,iBAAA"}
1
+ {"version":3,"file":"QueueItemSteer.d.ts","names":[],"sources":["../../../src/primitives/queueItem/QueueItemSteer.ts"],"mappings":";;cAUM;kBAUW;OACH,UAAU;OACV,QAAQ,yBAAyB;;;;;;;;;;cAWlC,yCAAuB,0BAAA,KAAA,qBAAA,gBAAA,qCAAA,qBAAA;;;;oBAGnC,cAAA,6CAAA,cAAA"}
@@ -1,6 +1,5 @@
1
1
  import { Primitive } from "../../utils/Primitive.js";
2
2
  import { ComponentPropsWithoutRef, ComponentRef } from "react";
3
-
4
3
  //#region src/primitives/queueItem/QueueItemText.d.ts
5
4
  declare namespace QueueItemPrimitiveText {
6
5
  type Element = ComponentRef<typeof Primitive.span>;
@@ -1 +1 @@
1
- {"version":3,"file":"QueueItemText.d.ts","names":[],"sources":["../../../src/primitives/queueItem/QueueItemText.tsx"],"mappings":";;;;kBAUiB,sBAAA;EAAA,KACH,OAAA,GAAU,YAAA,QAAoB,SAAA,CAAU,IAAA;EAAA,KACxC,KAAA,GAAQ,wBAAA,QAAgC,SAAA,CAAU,IAAA;AAAA;;;;;;;;;cAWnD,sBAAA,kBAAsB,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,eAAA,oBAAA,cAAA,CAAA,eAAA"}
1
+ {"version":3,"file":"QueueItemText.d.ts","names":[],"sources":["../../../src/primitives/queueItem/QueueItemText.tsx"],"mappings":";;;kBAUiB;OACH,UAAU,oBAAoB,UAAU;OACxC,QAAQ,gCAAgC,UAAU;;;;;;;;;;cAWnD,wCAAsB,0BAAA,KAAA,qBAAA,gBAAA,mCAAA,eAAA;;;;oBAWjC,cAAA,2CAAA,cAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueueItemText.js","names":["c","_c","Primitive","ComponentRef","ComponentPropsWithoutRef","forwardRef","useAuiState","QueueItemPrimitiveText","Element","span","Props","props","ref","$","prompt","_temp","t0","children","t1","displayName","s","queueItem"],"sources":["../../../src/primitives/queueItem/QueueItemText.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n type ComponentPropsWithoutRef,\n forwardRef,\n} from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace QueueItemPrimitiveText {\n export type Element = ComponentRef<typeof Primitive.span>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.span>;\n}\n\n/**\n * Renders the prompt text of a queue item.\n *\n * @example\n * ```tsx\n * <QueueItemPrimitive.Text />\n * ```\n */\nexport const QueueItemPrimitiveText = forwardRef<\n QueueItemPrimitiveText.Element,\n QueueItemPrimitiveText.Props\n>((props, ref) => {\n const prompt = useAuiState((s) => s.queueItem.prompt);\n\n return (\n <Primitive.span {...props} ref={ref}>\n {props.children ?? prompt}\n </Primitive.span>\n );\n});\n\nQueueItemPrimitiveText.displayName = \"QueueItemPrimitive.Text\";\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,MAAaO,yBAAyBF,YAGpCM,OAAAC,QAAA;CAAA,MAAAC,IAAAZ,EAAA,CAAA;CACA,MAAAa,SAAeR,YAAYS,KAAyB;CAI/C,MAAAC,KAAAL,MAAKM,YAALH;CAAwB,IAAAI;CAAA,IAAAL,EAAA,OAAAF,SAAAE,EAAA,OAAAD,OAAAC,EAAA,OAAAG,IAAA;EAD3BE,KAAA,oBAAA,UAAA,MAAA;GAAA,GAAoBP;GAAYC;aAC7BI;EACH,CAAA;EAAiBH,EAAA,KAAAF;EAAAE,EAAA,KAAAD;EAAAC,EAAA,KAAAG;EAAAH,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAFjBK;AAEiB,CAEpB;AAEDX,uBAAuBY,cAAc;AAVnC,SAAAJ,MAAAK,GAAA;CAAA,OACkCA,EAACC,UAAUP;AAAO"}
1
+ {"version":3,"file":"QueueItemText.js","names":["c","_c","Primitive","ComponentRef","ComponentPropsWithoutRef","forwardRef","useAuiState","QueueItemPrimitiveText","Element","span","Props","props","ref","$","prompt","_temp","t0","children","t1","displayName","s","queueItem"],"sources":["../../../src/primitives/queueItem/QueueItemText.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentRef,\n type ComponentPropsWithoutRef,\n forwardRef,\n} from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace QueueItemPrimitiveText {\n export type Element = ComponentRef<typeof Primitive.span>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.span>;\n}\n\n/**\n * Renders the prompt text of a queue item.\n *\n * @example\n * ```tsx\n * <QueueItemPrimitive.Text />\n * ```\n */\nexport const QueueItemPrimitiveText = forwardRef<\n QueueItemPrimitiveText.Element,\n QueueItemPrimitiveText.Props\n>((props, ref) => {\n const prompt = useAuiState((s) => s.queueItem.prompt);\n\n return (\n <Primitive.span {...props} ref={ref}>\n {props.children ?? prompt}\n </Primitive.span>\n );\n});\n\nQueueItemPrimitiveText.displayName = \"QueueItemPrimitive.Text\";\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,MAAaO,yBAAyBF,YAGpCM,OAAAC,QAAA;CAAA,MAAAC,IAAAZ,EAAA,CAAA;CACA,MAAAa,SAAeR,YAAYS,KAAyB;CAI/C,MAAAC,KAAAL,MAAKM,YAALH;CAAwB,IAAAI;CAAA,IAAAL,EAAA,OAAAF,SAAAE,EAAA,OAAAD,OAAAC,EAAA,OAAAG,IAAA;EAD3BE,KAAA,oBAAA,UAAA,MAAA;GAAA,GAAoBP;GAAYC;GAC7BI,UAAAA;EACH,CAAA;EAAiBH,EAAA,KAAAF;EAAAE,EAAA,KAAAD;EAAAC,EAAA,KAAAG;EAAAH,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAFjBK;AAEiB,CAEpB;AAEDX,uBAAuBY,cAAc;AAVnC,SAAAJ,MAAAK,GAAA;CAAA,OACkCA,EAACC,UAAUP;AAAO"}
@@ -1,8 +1,6 @@
1
1
  import { QueueItemPrimitiveText } from "./queueItem/QueueItemText.js";
2
2
  import { QueueItemPrimitiveSteer } from "./queueItem/QueueItemSteer.js";
3
3
  import { QueueItemPrimitiveRemove } from "./queueItem/QueueItemRemove.js";
4
-
5
- //#region src/primitives/queueItem.d.ts
6
4
  declare namespace queueItem_d_exports {
7
5
  export { QueueItemPrimitiveRemove as Remove, QueueItemPrimitiveSteer as Steer, QueueItemPrimitiveText as Text };
8
6
  }
@@ -1,5 +1,4 @@
1
1
  import { RefObject } from "react";
2
-
3
2
  //#region src/primitives/reasoning/useScrollLock.d.ts
4
3
  /**
5
4
  * Locks scroll position during collapsible/height animations and hides scrollbar.
@@ -1 +1 @@
1
- {"version":3,"file":"useScrollLock.d.ts","names":[],"sources":["../../../src/primitives/reasoning/useScrollLock.ts"],"mappings":";;;;;AA8BA;;;;;;;;;;;;;;;;;AAE2B;;;;;;;cAFd,aAAA,aAA2B,WAAA,GAAc,WAAA,EACpD,kBAAA,EAAoB,SAAA,CAAU,CAAA,UAC9B,iBAAA"}
1
+ {"version":3,"file":"useScrollLock.d.ts","names":[],"sources":["../../../src/primitives/reasoning/useScrollLock.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8Ba,gBAAiB,UAAU,cAAc,aACpD,oBAAoB,UAAU,WAC9B"}
@@ -1,6 +1,5 @@
1
1
  import { Primitive } from "../../utils/Primitive.js";
2
2
  import { ComponentPropsWithoutRef, ComponentRef } from "react";
3
-
4
3
  //#region src/primitives/selectionToolbar/SelectionToolbarQuote.d.ts
5
4
  declare namespace SelectionToolbarPrimitiveQuote {
6
5
  type Element = ComponentRef<typeof Primitive.button>;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionToolbarQuote.d.ts","names":[],"sources":["../../../src/primitives/selectionToolbar/SelectionToolbarQuote.tsx"],"mappings":";;;;kBAaiB,8BAAA;EAAA,KACH,OAAA,GAAU,YAAA,QAAoB,SAAA,CAAU,MAAA;EAAA,KACxC,KAAA,GAAQ,wBAAA,QAAgC,SAAA,CAAU,MAAA;AAAA;;;;;;;;;;;;;;;cAiBnD,8BAAA,kBAA8B,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,iBAAA,oBAAA,oBAAA,CAAA,iBAAA"}
1
+ {"version":3,"file":"SelectionToolbarQuote.d.ts","names":[],"sources":["../../../src/primitives/selectionToolbar/SelectionToolbarQuote.tsx"],"mappings":";;;kBAaiB;OACH,UAAU,oBAAoB,UAAU;OACxC,QAAQ,gCAAgC,UAAU;;;;;;;;;;;;;;;;cAiBnD,gDAA8B,0BAAA,KAAA,qBAAA,gBAAA,qCAAA,qBAAA;;;;oBA2BzC,cAAA,6CAAA,cAAA"}
@@ -1,6 +1,5 @@
1
1
  import { Primitive } from "../../utils/Primitive.js";
2
2
  import { ComponentPropsWithoutRef, ComponentRef } from "react";
3
-
4
3
  //#region src/primitives/selectionToolbar/SelectionToolbarRoot.d.ts
5
4
  type SelectionInfo = {
6
5
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionToolbarRoot.d.ts","names":[],"sources":["../../../src/primitives/selectionToolbar/SelectionToolbarRoot.tsx"],"mappings":";;;;KAeK,aAAA;EACH,IAAA;EACA,SAAA;EACA,IAAA,EAAM,OAAO;AAAA;AAAA,cAKF,uBAAA,QAAuB,aAAA;AAAA,kBAGnB,6BAAA;EAAA,KACH,OAAA,GAAU,YAAA,QAAoB,SAAA,CAAU,GAAA;EAAA,KACxC,KAAA,GAAQ,wBAAA,QAAgC,SAAA,CAAU,GAAA;AAAA;;AAVjD;AAKf;;;;AAAoC;AAGpC;;;;;;;cAmBa,6BAAA,kBAA6B,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,cAAA,oBAAA,cAAA,CAAA,cAAA"}
1
+ {"version":3,"file":"SelectionToolbarRoot.d.ts","names":[],"sources":["../../../src/primitives/selectionToolbar/SelectionToolbarRoot.tsx"],"mappings":";;;KAeK;EACH;EACA;EACA,MAAM;;cAKK,+BAAuB;kBAGnB;OACH,UAAU,oBAAoB,UAAU;OACxC,QAAQ,gCAAgC,UAAU;;;;;;;;;;;;;;;;cAiBnD,+CAA6B,0BAAA,KAAA,qBAAA,gBAAA,kCAAA,eAAA;;;;oBAmFxC,cAAA,0CAAA,cAAA"}
@@ -62,10 +62,11 @@ const SelectionToolbarPrimitiveRoot = forwardRef((t0, forwardedRef) => {
62
62
  setInfo(null);
63
63
  return;
64
64
  }
65
+ const rect = sel.getRangeAt(0).getBoundingClientRect();
65
66
  setInfo({
66
67
  text,
67
68
  messageId,
68
- rect: sel.getRangeAt(0).getBoundingClientRect()
69
+ rect
69
70
  });
70
71
  });
71
72
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionToolbarRoot.js","names":["c","_c","Primitive","ComponentPropsWithoutRef","ComponentRef","createContext","forwardRef","useContext","useEffect","useState","createPortal","getSelectionMessageId","SelectionInfo","text","messageId","rect","DOMRect","SelectionToolbarContext","useSelectionToolbarInfo","SelectionToolbarPrimitiveRoot","Element","div","Props","t0","forwardedRef","$","onMouseDown","props","style","info","setInfo","t1","t2","Symbol","for","checkSelection","requestAnimationFrame","sel","window","getSelection","isCollapsed","toString","trim","range","getRangeAt","getBoundingClientRect","handleSelectionCollapse","sel_0","handleScroll","document","addEventListener","removeEventListener","t3","top","t4","left","width","t5","position","transform","zIndex","positionStyle","t6","e","preventDefault","t7","t8","body","displayName"],"sources":["../../../src/primitives/selectionToolbar/SelectionToolbarRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentPropsWithoutRef,\n type ComponentRef,\n createContext,\n forwardRef,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { getSelectionMessageId } from \"../../utils/getSelectionMessageId\";\n\ntype SelectionInfo = {\n text: string;\n messageId: string;\n rect: DOMRect;\n};\n\nconst SelectionToolbarContext = createContext<SelectionInfo | null>(null);\n\nexport const useSelectionToolbarInfo = () =>\n useContext(SelectionToolbarContext);\n\nexport namespace SelectionToolbarPrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\n/**\n * A floating toolbar that appears when text is selected within a message.\n *\n * Listens for mouse and keyboard selection events, validates that the\n * selection is within a single message, and renders a positioned portal\n * near the selection. Prevents mousedown from clearing the selection.\n *\n * @example\n * ```tsx\n * <SelectionToolbarPrimitive.Root>\n * <SelectionToolbarPrimitive.Quote>Quote</SelectionToolbarPrimitive.Quote>\n * </SelectionToolbarPrimitive.Root>\n * ```\n */\nexport const SelectionToolbarPrimitiveRoot = forwardRef<\n SelectionToolbarPrimitiveRoot.Element,\n SelectionToolbarPrimitiveRoot.Props\n>(({ onMouseDown, style, ...props }, forwardedRef) => {\n const [info, setInfo] = useState<SelectionInfo | null>(null);\n\n useEffect(() => {\n const checkSelection = () => {\n requestAnimationFrame(() => {\n const sel = window.getSelection();\n if (!sel || sel.isCollapsed) {\n setInfo(null);\n return;\n }\n\n const text = sel.toString().trim();\n if (!text) {\n setInfo(null);\n return;\n }\n\n const messageId = getSelectionMessageId(sel);\n if (!messageId) {\n setInfo(null);\n return;\n }\n\n const range = sel.getRangeAt(0);\n const rect = range.getBoundingClientRect();\n setInfo({ text, messageId, rect });\n });\n };\n\n const handleSelectionCollapse = () => {\n const sel = window.getSelection();\n if (!sel || sel.isCollapsed) {\n setInfo(null);\n }\n };\n\n const handleScroll = () => {\n setInfo(null);\n };\n\n document.addEventListener(\"mouseup\", checkSelection);\n document.addEventListener(\"keyup\", checkSelection);\n document.addEventListener(\"selectionchange\", handleSelectionCollapse);\n document.addEventListener(\"scroll\", handleScroll, true);\n\n return () => {\n document.removeEventListener(\"mouseup\", checkSelection);\n document.removeEventListener(\"keyup\", checkSelection);\n document.removeEventListener(\"selectionchange\", handleSelectionCollapse);\n document.removeEventListener(\"scroll\", handleScroll, true);\n };\n }, []);\n\n if (!info) return null;\n\n const positionStyle: React.CSSProperties = {\n position: \"fixed\",\n top: `${info.rect.top - 8}px`,\n left: `${info.rect.left + info.rect.width / 2}px`,\n transform: \"translate(-50%, -100%)\",\n zIndex: 50,\n ...style,\n };\n\n return createPortal(\n <SelectionToolbarContext.Provider value={info}>\n <Primitive.div\n {...props}\n ref={forwardedRef}\n style={positionStyle}\n onMouseDown={(e) => {\n // Prevent mousedown from clearing the text selection\n e.preventDefault();\n onMouseDown?.(e);\n }}\n />\n </SelectionToolbarContext.Provider>,\n document.body,\n );\n});\n\nSelectionToolbarPrimitiveRoot.displayName = \"SelectionToolbarPrimitive.Root\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"SelectionToolbarRoot.js","names":["c","_c","Primitive","ComponentPropsWithoutRef","ComponentRef","createContext","forwardRef","useContext","useEffect","useState","createPortal","getSelectionMessageId","SelectionInfo","text","messageId","rect","DOMRect","SelectionToolbarContext","useSelectionToolbarInfo","SelectionToolbarPrimitiveRoot","Element","div","Props","t0","forwardedRef","$","onMouseDown","props","style","info","setInfo","t1","t2","Symbol","for","checkSelection","requestAnimationFrame","sel","window","getSelection","isCollapsed","toString","trim","range","getRangeAt","getBoundingClientRect","handleSelectionCollapse","sel_0","handleScroll","document","addEventListener","removeEventListener","t3","top","t4","left","width","t5","position","transform","zIndex","positionStyle","t6","e","preventDefault","t7","t8","body","displayName"],"sources":["../../../src/primitives/selectionToolbar/SelectionToolbarRoot.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ComponentPropsWithoutRef,\n type ComponentRef,\n createContext,\n forwardRef,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { getSelectionMessageId } from \"../../utils/getSelectionMessageId\";\n\ntype SelectionInfo = {\n text: string;\n messageId: string;\n rect: DOMRect;\n};\n\nconst SelectionToolbarContext = createContext<SelectionInfo | null>(null);\n\nexport const useSelectionToolbarInfo = () =>\n useContext(SelectionToolbarContext);\n\nexport namespace SelectionToolbarPrimitiveRoot {\n export type Element = ComponentRef<typeof Primitive.div>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.div>;\n}\n\n/**\n * A floating toolbar that appears when text is selected within a message.\n *\n * Listens for mouse and keyboard selection events, validates that the\n * selection is within a single message, and renders a positioned portal\n * near the selection. Prevents mousedown from clearing the selection.\n *\n * @example\n * ```tsx\n * <SelectionToolbarPrimitive.Root>\n * <SelectionToolbarPrimitive.Quote>Quote</SelectionToolbarPrimitive.Quote>\n * </SelectionToolbarPrimitive.Root>\n * ```\n */\nexport const SelectionToolbarPrimitiveRoot = forwardRef<\n SelectionToolbarPrimitiveRoot.Element,\n SelectionToolbarPrimitiveRoot.Props\n>(({ onMouseDown, style, ...props }, forwardedRef) => {\n const [info, setInfo] = useState<SelectionInfo | null>(null);\n\n useEffect(() => {\n const checkSelection = () => {\n requestAnimationFrame(() => {\n const sel = window.getSelection();\n if (!sel || sel.isCollapsed) {\n setInfo(null);\n return;\n }\n\n const text = sel.toString().trim();\n if (!text) {\n setInfo(null);\n return;\n }\n\n const messageId = getSelectionMessageId(sel);\n if (!messageId) {\n setInfo(null);\n return;\n }\n\n const range = sel.getRangeAt(0);\n const rect = range.getBoundingClientRect();\n setInfo({ text, messageId, rect });\n });\n };\n\n const handleSelectionCollapse = () => {\n const sel = window.getSelection();\n if (!sel || sel.isCollapsed) {\n setInfo(null);\n }\n };\n\n const handleScroll = () => {\n setInfo(null);\n };\n\n document.addEventListener(\"mouseup\", checkSelection);\n document.addEventListener(\"keyup\", checkSelection);\n document.addEventListener(\"selectionchange\", handleSelectionCollapse);\n document.addEventListener(\"scroll\", handleScroll, true);\n\n return () => {\n document.removeEventListener(\"mouseup\", checkSelection);\n document.removeEventListener(\"keyup\", checkSelection);\n document.removeEventListener(\"selectionchange\", handleSelectionCollapse);\n document.removeEventListener(\"scroll\", handleScroll, true);\n };\n }, []);\n\n if (!info) return null;\n\n const positionStyle: React.CSSProperties = {\n position: \"fixed\",\n top: `${info.rect.top - 8}px`,\n left: `${info.rect.left + info.rect.width / 2}px`,\n transform: \"translate(-50%, -100%)\",\n zIndex: 50,\n ...style,\n };\n\n return createPortal(\n <SelectionToolbarContext.Provider value={info}>\n <Primitive.div\n {...props}\n ref={forwardedRef}\n style={positionStyle}\n onMouseDown={(e) => {\n // Prevent mousedown from clearing the text selection\n e.preventDefault();\n onMouseDown?.(e);\n }}\n />\n </SelectionToolbarContext.Provider>,\n document.body,\n );\n});\n\nSelectionToolbarPrimitiveRoot.displayName = \"SelectionToolbarPrimitive.Root\";\n"],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  import { SelectionToolbarPrimitiveRoot } from "./selectionToolbar/SelectionToolbarRoot.js";
2
2
  import { SelectionToolbarPrimitiveQuote } from "./selectionToolbar/SelectionToolbarQuote.js";
3
-
4
- //#region src/primitives/selectionToolbar.d.ts
5
3
  declare namespace selectionToolbar_d_exports {
6
4
  export { SelectionToolbarPrimitiveQuote as Quote, SelectionToolbarPrimitiveRoot as Root, SelectionToolbarPrimitiveQuote, SelectionToolbarPrimitiveRoot };
7
5
  }
@@ -1,6 +1,5 @@
1
1
  import { Primitive } from "../../utils/Primitive.js";
2
2
  import { ComponentPropsWithoutRef, ElementRef } from "react";
3
-
4
3
  //#region src/primitives/suggestion/SuggestionDescription.d.ts
5
4
  declare namespace SuggestionPrimitiveDescription {
6
5
  type Element = ElementRef<typeof Primitive.span>;
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionDescription.d.ts","names":[],"sources":["../../../src/primitives/suggestion/SuggestionDescription.tsx"],"mappings":";;;;kBAUiB,8BAAA;EAAA,KACH,OAAA,GAAU,UAAA,QAAkB,SAAA,CAAU,IAAA;EAAA,KACtC,KAAA,GAAQ,wBAAA,QAAgC,SAAA,CAAU,IAAA;AAAA;;;;;;;;;cAWnD,8BAAA,kBAA8B,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,eAAA,oBAAA,cAAA,CAAA,eAAA"}
1
+ {"version":3,"file":"SuggestionDescription.d.ts","names":[],"sources":["../../../src/primitives/suggestion/SuggestionDescription.tsx"],"mappings":";;;kBAUiB;OACH,UAAU,kBAAkB,UAAU;OACtC,QAAQ,gCAAgC,UAAU;;;;;;;;;;cAWnD,gDAA8B,0BAAA,KAAA,qBAAA,gBAAA,mCAAA,eAAA;;;;oBAWzC,cAAA,2CAAA,cAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionDescription.js","names":["c","_c","Primitive","ElementRef","forwardRef","ComponentPropsWithoutRef","useAuiState","SuggestionPrimitiveDescription","Element","span","Props","props","ref","$","label","_temp","t0","children","t1","displayName","s","suggestion"],"sources":["../../../src/primitives/suggestion/SuggestionDescription.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ElementRef,\n forwardRef,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace SuggestionPrimitiveDescription {\n export type Element = ElementRef<typeof Primitive.span>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.span>;\n}\n\n/**\n * Renders the description/label of the suggestion.\n *\n * @example\n * ```tsx\n * <SuggestionPrimitive.Description />\n * ```\n */\nexport const SuggestionPrimitiveDescription = forwardRef<\n SuggestionPrimitiveDescription.Element,\n SuggestionPrimitiveDescription.Props\n>((props, ref) => {\n const label = useAuiState((s) => s.suggestion.label);\n\n return (\n <Primitive.span {...props} ref={ref}>\n {props.children ?? label}\n </Primitive.span>\n );\n});\n\nSuggestionPrimitiveDescription.displayName = \"SuggestionPrimitive.Description\";\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,MAAaO,iCAAiCH,YAG5CO,OAAAC,QAAA;CAAA,MAAAC,IAAAZ,EAAA,CAAA;CACA,MAAAa,QAAcR,YAAYS,KAAyB;CAI9C,MAAAC,KAAAL,MAAKM,YAALH;CAAuB,IAAAI;CAAA,IAAAL,EAAA,OAAAF,SAAAE,EAAA,OAAAD,OAAAC,EAAA,OAAAG,IAAA;EAD1BE,KAAA,oBAAA,UAAA,MAAA;GAAA,GAAoBP;GAAYC;aAC7BI;EACH,CAAA;EAAiBH,EAAA,KAAAF;EAAAE,EAAA,KAAAD;EAAAC,EAAA,KAAAG;EAAAH,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAFjBK;AAEiB,CAEpB;AAEDX,+BAA+BY,cAAc;AAV3C,SAAAJ,MAAAK,GAAA;CAAA,OACiCA,EAACC,WAAWP;AAAM"}
1
+ {"version":3,"file":"SuggestionDescription.js","names":["c","_c","Primitive","ElementRef","forwardRef","ComponentPropsWithoutRef","useAuiState","SuggestionPrimitiveDescription","Element","span","Props","props","ref","$","label","_temp","t0","children","t1","displayName","s","suggestion"],"sources":["../../../src/primitives/suggestion/SuggestionDescription.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ElementRef,\n forwardRef,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace SuggestionPrimitiveDescription {\n export type Element = ElementRef<typeof Primitive.span>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.span>;\n}\n\n/**\n * Renders the description/label of the suggestion.\n *\n * @example\n * ```tsx\n * <SuggestionPrimitive.Description />\n * ```\n */\nexport const SuggestionPrimitiveDescription = forwardRef<\n SuggestionPrimitiveDescription.Element,\n SuggestionPrimitiveDescription.Props\n>((props, ref) => {\n const label = useAuiState((s) => s.suggestion.label);\n\n return (\n <Primitive.span {...props} ref={ref}>\n {props.children ?? label}\n </Primitive.span>\n );\n});\n\nSuggestionPrimitiveDescription.displayName = \"SuggestionPrimitive.Description\";\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,MAAaO,iCAAiCH,YAG5CO,OAAAC,QAAA;CAAA,MAAAC,IAAAZ,EAAA,CAAA;CACA,MAAAa,QAAcR,YAAYS,KAAyB;CAI9C,MAAAC,KAAAL,MAAKM,YAALH;CAAuB,IAAAI;CAAA,IAAAL,EAAA,OAAAF,SAAAE,EAAA,OAAAD,OAAAC,EAAA,OAAAG,IAAA;EAD1BE,KAAA,oBAAA,UAAA,MAAA;GAAA,GAAoBP;GAAYC;GAC7BI,UAAAA;EACH,CAAA;EAAiBH,EAAA,KAAAF;EAAAE,EAAA,KAAAD;EAAAC,EAAA,KAAAG;EAAAH,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAFjBK;AAEiB,CAEpB;AAEDX,+BAA+BY,cAAc;AAV3C,SAAAJ,MAAAK,GAAA;CAAA,OACiCA,EAACC,WAAWP;AAAM"}
@@ -1,6 +1,5 @@
1
1
  import { Primitive } from "../../utils/Primitive.js";
2
2
  import { ComponentPropsWithoutRef, ElementRef } from "react";
3
-
4
3
  //#region src/primitives/suggestion/SuggestionTitle.d.ts
5
4
  declare namespace SuggestionPrimitiveTitle {
6
5
  type Element = ElementRef<typeof Primitive.span>;
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionTitle.d.ts","names":[],"sources":["../../../src/primitives/suggestion/SuggestionTitle.tsx"],"mappings":";;;;kBAUiB,wBAAA;EAAA,KACH,OAAA,GAAU,UAAA,QAAkB,SAAA,CAAU,IAAA;EAAA,KACtC,KAAA,GAAQ,wBAAA,QAAgC,SAAA,CAAU,IAAA;AAAA;;;;;;;;;cAWnD,wBAAA,kBAAwB,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,eAAA,oBAAA,cAAA,CAAA,eAAA"}
1
+ {"version":3,"file":"SuggestionTitle.d.ts","names":[],"sources":["../../../src/primitives/suggestion/SuggestionTitle.tsx"],"mappings":";;;kBAUiB;OACH,UAAU,kBAAkB,UAAU;OACtC,QAAQ,gCAAgC,UAAU;;;;;;;;;;cAWnD,0CAAwB,0BAAA,KAAA,qBAAA,gBAAA,mCAAA,eAAA;;;;oBAWnC,cAAA,2CAAA,cAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionTitle.js","names":["c","_c","Primitive","ElementRef","forwardRef","ComponentPropsWithoutRef","useAuiState","SuggestionPrimitiveTitle","Element","span","Props","props","ref","$","title","_temp","t0","children","t1","displayName","s","suggestion"],"sources":["../../../src/primitives/suggestion/SuggestionTitle.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ElementRef,\n forwardRef,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace SuggestionPrimitiveTitle {\n export type Element = ElementRef<typeof Primitive.span>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.span>;\n}\n\n/**\n * Renders the title of the suggestion.\n *\n * @example\n * ```tsx\n * <SuggestionPrimitive.Title />\n * ```\n */\nexport const SuggestionPrimitiveTitle = forwardRef<\n SuggestionPrimitiveTitle.Element,\n SuggestionPrimitiveTitle.Props\n>((props, ref) => {\n const title = useAuiState((s) => s.suggestion.title);\n\n return (\n <Primitive.span {...props} ref={ref}>\n {props.children ?? title}\n </Primitive.span>\n );\n});\n\nSuggestionPrimitiveTitle.displayName = \"SuggestionPrimitive.Title\";\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,MAAaO,2BAA2BH,YAGtCO,OAAAC,QAAA;CAAA,MAAAC,IAAAZ,EAAA,CAAA;CACA,MAAAa,QAAcR,YAAYS,KAAyB;CAI9C,MAAAC,KAAAL,MAAKM,YAALH;CAAuB,IAAAI;CAAA,IAAAL,EAAA,OAAAF,SAAAE,EAAA,OAAAD,OAAAC,EAAA,OAAAG,IAAA;EAD1BE,KAAA,oBAAA,UAAA,MAAA;GAAA,GAAoBP;GAAYC;aAC7BI;EACH,CAAA;EAAiBH,EAAA,KAAAF;EAAAE,EAAA,KAAAD;EAAAC,EAAA,KAAAG;EAAAH,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAFjBK;AAEiB,CAEpB;AAEDX,yBAAyBY,cAAc;AAVrC,SAAAJ,MAAAK,GAAA;CAAA,OACiCA,EAACC,WAAWP;AAAM"}
1
+ {"version":3,"file":"SuggestionTitle.js","names":["c","_c","Primitive","ElementRef","forwardRef","ComponentPropsWithoutRef","useAuiState","SuggestionPrimitiveTitle","Element","span","Props","props","ref","$","title","_temp","t0","children","t1","displayName","s","suggestion"],"sources":["../../../src/primitives/suggestion/SuggestionTitle.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport {\n type ElementRef,\n forwardRef,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace SuggestionPrimitiveTitle {\n export type Element = ElementRef<typeof Primitive.span>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.span>;\n}\n\n/**\n * Renders the title of the suggestion.\n *\n * @example\n * ```tsx\n * <SuggestionPrimitive.Title />\n * ```\n */\nexport const SuggestionPrimitiveTitle = forwardRef<\n SuggestionPrimitiveTitle.Element,\n SuggestionPrimitiveTitle.Props\n>((props, ref) => {\n const title = useAuiState((s) => s.suggestion.title);\n\n return (\n <Primitive.span {...props} ref={ref}>\n {props.children ?? title}\n </Primitive.span>\n );\n});\n\nSuggestionPrimitiveTitle.displayName = \"SuggestionPrimitive.Title\";\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,MAAaO,2BAA2BH,YAGtCO,OAAAC,QAAA;CAAA,MAAAC,IAAAZ,EAAA,CAAA;CACA,MAAAa,QAAcR,YAAYS,KAAyB;CAI9C,MAAAC,KAAAL,MAAKM,YAALH;CAAuB,IAAAI;CAAA,IAAAL,EAAA,OAAAF,SAAAE,EAAA,OAAAD,OAAAC,EAAA,OAAAG,IAAA;EAD1BE,KAAA,oBAAA,UAAA,MAAA;GAAA,GAAoBP;GAAYC;GAC7BI,UAAAA;EACH,CAAA;EAAiBH,EAAA,KAAAF;EAAAE,EAAA,KAAAD;EAAAC,EAAA,KAAAG;EAAAH,EAAA,KAAAK;CAAA,OAAAA,KAAAL,EAAA;CAAA,OAFjBK;AAEiB,CAEpB;AAEDX,yBAAyBY,cAAc;AAVrC,SAAAJ,MAAAK,GAAA;CAAA,OACiCA,EAACC,WAAWP;AAAM"}
@@ -1,10 +1,6 @@
1
1
  import { ActionButtonElement, ActionButtonProps } from "../../utils/createActionButton.js";
2
-
3
2
  //#region src/primitives/suggestion/SuggestionTrigger.d.ts
4
- declare const useSuggestionTrigger: ({
5
- send,
6
- clearComposer
7
- }: {
3
+ declare const useSuggestionTrigger: ({ send, clearComposer }: {
8
4
  /**
9
5
  * When true, automatically sends the message.
10
6
  * When false, replaces or appends the composer text with the suggestion - depending on the value of `clearComposer`.
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionTrigger.d.ts","names":[],"sources":["../../../src/primitives/suggestion/SuggestionTrigger.ts"],"mappings":";;;cAUM,oBAAA;EAAwB,IAAA;EAAA;AAAA;;AAJU;;;EAYtC,IAAA;EAR4B;;;;;;;EAiB5B,aAAA;AAAA;AAAA,kBAmCe,0BAAA;EAAA,KACH,OAAA,GAAU,mBAAA;EAAA,KACV,KAAA,GAAQ,iBAAA,QAAyB,oBAAA;AAAA;;;;;;;;;;AAAoB;cAatD,0BAAA,kBAA0B,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,iBAAA,oBAAA,oBAAA,CAAA,iBAAA;;;;;EAAA"}
1
+ {"version":3,"file":"SuggestionTrigger.d.ts","names":[],"sources":["../../../src/primitives/suggestion/SuggestionTrigger.ts"],"mappings":";;cAUM,yBAAwB,MAAA;;;;;EAQ5B;;;;;;;;EASA;;kBAmCe;OACH,UAAU;OACV,QAAQ,yBAAyB;;;;;;;;;;;;cAalC,4CAA0B,0BAAA,KAAA,qBAAA,gBAAA,qCAAA,qBAAA;;;;;;;;;EA3D9B;;;;;;;;EASS;oBAsDjB,cAAA"}
@@ -1,8 +1,6 @@
1
1
  import { SuggestionPrimitiveTitle } from "./suggestion/SuggestionTitle.js";
2
2
  import { SuggestionPrimitiveDescription } from "./suggestion/SuggestionDescription.js";
3
3
  import { SuggestionPrimitiveTrigger } from "./suggestion/SuggestionTrigger.js";
4
-
5
- //#region src/primitives/suggestion.d.ts
6
4
  declare namespace suggestion_d_exports {
7
5
  export { SuggestionPrimitiveDescription as Description, SuggestionPrimitiveTitle as Title, SuggestionPrimitiveTrigger as Trigger };
8
6
  }
@@ -1,5 +1,4 @@
1
1
  import { FC, PropsWithChildren } from "react";
2
-
3
2
  //#region src/primitives/thread/ThreadEmpty.d.ts
4
3
  declare namespace ThreadPrimitiveEmpty {
5
4
  type Props = PropsWithChildren;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadEmpty.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadEmpty.ts"],"mappings":";;;kBAKiB,oBAAA;EAAA,KACH,KAAA,GAAQ,iBAAiB;AAAA;;;;cAM1B,oBAAA,EAAsB,EAAE,CAAC,oBAAA,CAAqB,KAAA"}
1
+ {"version":3,"file":"ThreadEmpty.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadEmpty.ts"],"mappings":";;kBAKiB;OACH,QAAQ;;;;;cAMT,sBAAsB,GAAG,qBAAqB"}
@@ -1,6 +1,5 @@
1
1
  import { RequireAtLeastOne } from "../../utils/RequireAtLeastOne.js";
2
2
  import { FC, PropsWithChildren } from "react";
3
-
4
3
  //#region src/primitives/thread/ThreadIf.d.ts
5
4
  type ThreadIfFilters = {
6
5
  empty: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadIf.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadIf.ts"],"mappings":";;;;KAMK,eAAA;EACH,KAAA;EACA,OAAA;EACA,QAAA;AAAA;AAAA,KAGG,gBAAA,GAAmB,iBAAiB,CAAC,eAAA;AAAA,kBAgBzB,iBAAA;EAAA,KACH,KAAA,GAAQ,iBAAiB,CAAC,gBAAA;AAAA;;AApB9B;AAAA;cA0BG,iBAAA,EAAmB,EAAE,CAAC,iBAAA,CAAkB,KAAA"}
1
+ {"version":3,"file":"ThreadIf.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadIf.ts"],"mappings":";;;KAMK;EACH;EACA;EACA;;KAGG,mBAAmB,kBAAkB;kBAgBzB;OACH,QAAQ,kBAAkB;;;;;cAM3B,mBAAmB,GAAG,kBAAkB"}
@@ -1,6 +1,5 @@
1
1
  import { Primitive } from "../../utils/Primitive.js";
2
2
  import { ComponentPropsWithoutRef, ComponentRef } from "react";
3
-
4
3
  //#region src/primitives/thread/ThreadRoot.d.ts
5
4
  declare namespace ThreadPrimitiveRoot {
6
5
  type Element = ComponentRef<typeof Primitive.div>;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadRoot.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"mappings":";;;;kBASiB,mBAAA;EAAA,KACH,OAAA,GAAU,YAAA,QAAoB,SAAA,CAAU,GAAA;EADrC;;;;EAAA,KAMH,KAAA,GAAQ,wBAAA,QAAgC,SAAA,CAAU,GAAA;AAAA;;;;;;;;;;;;;AAAG;AAoBnE;;;;cAAa,mBAAA,kBAAmB,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,cAAA,oBAAA,cAAA,CAAA,cAAA"}
1
+ {"version":3,"file":"ThreadRoot.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadRoot.tsx"],"mappings":";;;kBASiB;OACH,UAAU,oBAAoB,UAAU;;;;;OAKxC,QAAQ,gCAAgC,UAAU;;;;;;;;;;;;;;;;;;;cAoBnD,qCAAmB,0BAAA,KAAA,qBAAA,gBAAA,kCAAA,eAAA;;;;oBAK9B,cAAA,0CAAA,cAAA"}
@@ -1,14 +1,11 @@
1
1
  import { ActionButtonElement, ActionButtonProps } from "../../utils/createActionButton.js";
2
-
3
2
  //#region src/primitives/thread/ThreadScrollToBottom.d.ts
4
3
  declare namespace useThreadScrollToBottom {
5
4
  type Options = {
6
5
  behavior?: ScrollBehavior | undefined;
7
6
  };
8
7
  }
9
- declare const useThreadScrollToBottom: ({
10
- behavior
11
- }?: useThreadScrollToBottom.Options) => (() => void) | null;
8
+ declare const useThreadScrollToBottom: ({ behavior }?: useThreadScrollToBottom.Options) => (() => void) | null;
12
9
  declare namespace ThreadPrimitiveScrollToBottom {
13
10
  type Element = ActionButtonElement;
14
11
  type Props = ActionButtonProps<typeof useThreadScrollToBottom>;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadScrollToBottom.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadScrollToBottom.ts"],"mappings":";;;kBAaiB,uBAAA;EAAA,KACH,OAAA;IACV,QAAA,GAAW,cAAc;EAAA;AAAA;AAAA,cAIvB,uBAAA;EAA2B;AAAA,IAE9B,uBAAA,CAAwB,OAAY;AAAA,kBAatB,6BAAA;EAAA,KACH,OAAA,GAAU,mBAAA;EAAA,KACV,KAAA,GAAQ,iBAAA,QAAyB,uBAAA;AAAA;AAAA,cAGlC,6BAAA,kBAA6B,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,iBAAA,oBAAA,oBAAA,CAAA,iBAAA"}
1
+ {"version":3,"file":"ThreadScrollToBottom.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadScrollToBottom.ts"],"mappings":";;kBAaiB;OACH;IACV,WAAW;;;cAIT,4BAA2B,aAE9B,wBAAwB;kBAaV;OACH,UAAU;OACV,QAAQ,yBAAyB;;cAGlC,+CAA6B,0BAAA,KAAA,qBAAA,gBAAA,qCAAA,qBAAA;;;;oBAIzC,cAAA,6BAAA,wBAAA,0BAAA,cAAA"}
@@ -1,14 +1,8 @@
1
1
  import { ActionButtonElement, ActionButtonProps } from "../../utils/createActionButton.js";
2
-
3
2
  //#region src/primitives/thread/ThreadSuggestion.d.ts
4
- declare const useThreadSuggestion: ({
5
- prompt,
6
- send,
7
- clearComposer,
8
- autoSend,
9
- method: _method
10
- }: {
11
- /** The suggestion prompt. */prompt: string;
3
+ declare const useThreadSuggestion: ({ prompt, send, clearComposer, autoSend, method: _method }: {
4
+ /** The suggestion prompt. */
5
+ prompt: string;
12
6
  /**
13
7
  * When true, automatically sends the message.
14
8
  * When false, replaces or appends the composer text with the suggestion - depending on the value of `clearComposer`.
@@ -21,8 +15,10 @@ declare const useThreadSuggestion: ({
21
15
  *
22
16
  * @default true
23
17
  */
24
- clearComposer?: boolean | undefined; /** @deprecated Use `send` instead. */
25
- autoSend?: boolean | undefined; /** @deprecated Use `clearComposer` instead. */
18
+ clearComposer?: boolean | undefined;
19
+ /** @deprecated Use `send` instead. */
20
+ autoSend?: boolean | undefined;
21
+ /** @deprecated Use `clearComposer` instead. */
26
22
  method?: "replace";
27
23
  }) => (() => void) | null;
28
24
  declare namespace ThreadPrimitiveSuggestion {
@@ -34,7 +30,8 @@ declare const ThreadPrimitiveSuggestion: import("react").ForwardRefExoticCompone
34
30
  }, "ref"> & {
35
31
  render?: import("react").ReactElement | undefined;
36
32
  } & import("react").RefAttributes<HTMLButtonElement>, "ref"> & {
37
- /** The suggestion prompt. */prompt: string;
33
+ /** The suggestion prompt. */
34
+ prompt: string;
38
35
  /**
39
36
  * When true, automatically sends the message.
40
37
  * When false, replaces or appends the composer text with the suggestion - depending on the value of `clearComposer`.
@@ -47,8 +44,10 @@ declare const ThreadPrimitiveSuggestion: import("react").ForwardRefExoticCompone
47
44
  *
48
45
  * @default true
49
46
  */
50
- clearComposer?: boolean | undefined; /** @deprecated Use `send` instead. */
51
- autoSend?: boolean | undefined; /** @deprecated Use `clearComposer` instead. */
47
+ clearComposer?: boolean | undefined;
48
+ /** @deprecated Use `send` instead. */
49
+ autoSend?: boolean | undefined;
50
+ /** @deprecated Use `clearComposer` instead. */
52
51
  method?: "replace";
53
52
  } & import("react").RefAttributes<HTMLButtonElement>>;
54
53
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadSuggestion.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadSuggestion.ts"],"mappings":";;;cASM,mBAAA;EAAuB,MAAA;EAAA,IAAA;EAAA,aAAA;EAAA,QAAA;EAAA,MAAA,EAAA;AAAA;+BAQ3B,MAAA;EAgCD;;;;EA1BC,IAAA;EAd2B;;;;;;;EAuB3B,aAAA,wBAvB2B;EA0B3B,QAAA,wBA1B2B;EA6B3B,MAAA;AAAA;AAAA,kBAae,yBAAA;EAAA,KACH,OAAA,GAAU,mBAAA;EAAA,KACV,KAAA,GAAQ,iBAAA,QAAyB,mBAAA;AAAA;AAAA,cAGlC,yBAAA,kBAAyB,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,iBAAA,oBAAA,oBAAA,CAAA,iBAAA;;;;;EALI;EAClB;;;;;EAAV;;;;;;AACoD;uCAOjE;kCAJqC"}
1
+ {"version":3,"file":"ThreadSuggestion.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadSuggestion.ts"],"mappings":";;cASM,wBAAuB,QAAA,MAAA,eAAA,UAAA,QAAA;;EAQ3B;;;;;EAMA;;;;;;;;EASA;;EAGA;;EAGA;;kBAae;OACH,UAAU;OACV,QAAQ,yBAAyB;;cAGlC,2CAAyB,0BAAA,KAAA,qBAAA,gBAAA,qCAAA,qBAAA;;;;;;EAvC5B;;;;;EAMD;;;;;;;;EASS;;EAGL;;EAGF;oBAsBV,cAAA"}
@@ -1,6 +1,5 @@
1
1
  import { Primitive } from "../../utils/Primitive.js";
2
2
  import { ComponentPropsWithoutRef, ComponentRef } from "react";
3
-
4
3
  //#region src/primitives/thread/ThreadViewport.d.ts
5
4
  declare namespace ThreadPrimitiveViewport {
6
5
  type Element = ComponentRef<typeof Primitive.div>;
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadViewport.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadViewport.tsx"],"mappings":";;;;kBA2BiB,uBAAA;EAAA,KACH,OAAA,GAAU,YAAA,QAAoB,SAAA,CAAU,GAAA;EAAA,KACxC,KAAA,GAAQ,wBAAA,QAAgC,SAAA,CAAU,GAAA;IAFxB;;;;;;IASpC,UAAA;IAP0C;;;;;IAc1C,UAAA;IAdkB;;;;;IAqBlB,qBAAA;MAME;;;;;MAAA,UAAA;MA4B0B;AAsHhC;;;;MA5IM,aAAA;IAAA;;;;;;IAQF,wBAAA;IAoIgC;;;;;IA7HhC,0BAAA;;;;;;IAOA,4BAAA;EAAA;AAAA;;;;;;;;;;;;;;;;;cAsHS,uBAAA,kBAAuB,yBAAA,CAAA,IAAA,CAAA,IAAA,iBAAA,eAAA,CAAA,cAAA,oBAAA,cAAA,CAAA,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAlJ9B,UAAA;;;;;;IAMA,aAAA;EAAA"}
1
+ {"version":3,"file":"ThreadViewport.d.ts","names":[],"sources":["../../../src/primitives/thread/ThreadViewport.tsx"],"mappings":";;;kBA4BiB;OACH,UAAU,oBAAoB,UAAU;OACxC,QAAQ,gCAAgC,UAAU;;;;;;;IAO5D;;;;;;IAOA;;;;;;IAOA;;;;;;MAME;;;;;;MAMA;;;;;;;IAQF;;;;;;IAOA;;;;;;IAOA;;;;;;;;;;;;;;;;;;;cAoIS,yCAAuB,0BAAA,KAAA,qBAAA,gBAAA,kCAAA,eAAA;;;;;;;;;;;EApLnB;;;;;;EAOA;;;;;;EAOW;;;;;;IAMtB;;;;;;IAMA;;;;;;;EAQyB;;;;;;EAOE;;;;;;EAOE;oBA+IjC,cAAA"}
@@ -6,7 +6,7 @@ import { useManagedRef } from "../../utils/hooks/useManagedRef.js";
6
6
  import { useThreadViewportAutoScroll } from "./useThreadViewportAutoScroll.js";
7
7
  import { useSizeHandle } from "../../utils/hooks/useSizeHandle.js";
8
8
  import { useTopAnchorReserve } from "./topAnchor/useTopAnchorReserve.js";
9
- import { getActiveTopAnchorAnchorId, getActiveTopAnchorTargetId } from "./topAnchor/topAnchorTurn.js";
9
+ import { getActiveTopAnchorAnchorId, getActiveTopAnchorTargetId, isTopAnchorTurnValid } from "./topAnchor/topAnchorTurn.js";
10
10
  import { useAuiEvent, useAuiState } from "@assistant-ui/store";
11
11
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
12
12
  import { forwardRef, useLayoutEffect } from "@assistant-ui/tap/react-shim";
@@ -20,7 +20,7 @@ const useViewportElementRef = () => {
20
20
  return useManagedRef(useThreadViewport(_temp3));
21
21
  };
22
22
  const useTopAnchorTurn = (enabled) => {
23
- const $ = c(13);
23
+ const $ = c(21);
24
24
  const threadViewportStore = useThreadViewportStore();
25
25
  let t0;
26
26
  if ($[0] !== enabled) {
@@ -42,6 +42,7 @@ const useTopAnchorTurn = (enabled) => {
42
42
  $[3] = t1;
43
43
  } else t1 = $[3];
44
44
  const activeTargetId = useAuiState(t1);
45
+ const topAnchorTurn = useThreadViewport(_temp4);
45
46
  let t2;
46
47
  bb0: {
47
48
  if (!activeAnchorId || !activeTargetId) {
@@ -62,34 +63,64 @@ const useTopAnchorTurn = (enabled) => {
62
63
  }
63
64
  const activeTurn = t2;
64
65
  let t3;
66
+ if ($[7] !== enabled || $[8] !== topAnchorTurn) {
67
+ t3 = (s_2) => enabled && !!topAnchorTurn && isTopAnchorTurnValid(topAnchorTurn, s_2.thread.messages);
68
+ $[7] = enabled;
69
+ $[8] = topAnchorTurn;
70
+ $[9] = t3;
71
+ } else t3 = $[9];
72
+ const topAnchorTurnIsValid = useAuiState(t3);
65
73
  let t4;
66
- if ($[7] !== activeTurn || $[8] !== threadViewportStore) {
67
- t3 = () => {
74
+ let t5;
75
+ if ($[10] !== threadViewportStore || $[11] !== topAnchorTurn || $[12] !== topAnchorTurnIsValid) {
76
+ t4 = () => {
77
+ if (!topAnchorTurn || topAnchorTurnIsValid) return;
78
+ threadViewportStore.getState().setTopAnchorTurn(null);
79
+ };
80
+ t5 = [
81
+ threadViewportStore,
82
+ topAnchorTurn,
83
+ topAnchorTurnIsValid
84
+ ];
85
+ $[10] = threadViewportStore;
86
+ $[11] = topAnchorTurn;
87
+ $[12] = topAnchorTurnIsValid;
88
+ $[13] = t4;
89
+ $[14] = t5;
90
+ } else {
91
+ t4 = $[13];
92
+ t5 = $[14];
93
+ }
94
+ useLayoutEffect(t4, t5);
95
+ let t6;
96
+ let t7;
97
+ if ($[15] !== activeTurn || $[16] !== threadViewportStore) {
98
+ t6 = () => {
68
99
  if (!activeTurn) return;
69
100
  const state = threadViewportStore.getState();
70
101
  const current = state.topAnchorTurn;
71
102
  if (current?.anchorId === activeTurn.anchorId && current.targetId === activeTurn.targetId) return;
72
103
  state.setTopAnchorTurn(activeTurn);
73
104
  };
74
- t4 = [activeTurn, threadViewportStore];
75
- $[7] = activeTurn;
76
- $[8] = threadViewportStore;
77
- $[9] = t3;
78
- $[10] = t4;
105
+ t7 = [activeTurn, threadViewportStore];
106
+ $[15] = activeTurn;
107
+ $[16] = threadViewportStore;
108
+ $[17] = t6;
109
+ $[18] = t7;
79
110
  } else {
80
- t3 = $[9];
81
- t4 = $[10];
111
+ t6 = $[17];
112
+ t7 = $[18];
82
113
  }
83
- useLayoutEffect(t3, t4);
84
- let t5;
85
- if ($[11] !== threadViewportStore) {
86
- t5 = () => {
114
+ useLayoutEffect(t6, t7);
115
+ let t8;
116
+ if ($[19] !== threadViewportStore) {
117
+ t8 = () => {
87
118
  threadViewportStore.getState().setTopAnchorTurn(null);
88
119
  };
89
- $[11] = threadViewportStore;
90
- $[12] = t5;
91
- } else t5 = $[12];
92
- const clearTopAnchorTurn = t5;
120
+ $[19] = threadViewportStore;
121
+ $[20] = t8;
122
+ } else t8 = $[20];
123
+ const clearTopAnchorTurn = t8;
93
124
  useAuiEvent("thread.initialize", clearTopAnchorTurn);
94
125
  useAuiEvent("threadListItem.switchedTo", clearTopAnchorTurn);
95
126
  };
@@ -235,6 +266,9 @@ function _temp2(el) {
235
266
  function _temp3(s) {
236
267
  return s.registerViewportElement;
237
268
  }
269
+ function _temp4(s_1) {
270
+ return s_1.topAnchorTurn;
271
+ }
238
272
  //#endregion
239
273
  export { ThreadPrimitiveViewport };
240
274