@assistant-ui/react 0.14.16 → 0.14.19

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 (380) hide show
  1. package/dist/client/ExternalThread.d.ts +5 -3
  2. package/dist/client/ExternalThread.d.ts.map +1 -1
  3. package/dist/client/ExternalThread.js +745 -255
  4. package/dist/client/ExternalThread.js.map +1 -1
  5. package/dist/client/InMemoryThreadList.d.ts +1 -1
  6. package/dist/client/InMemoryThreadList.d.ts.map +1 -1
  7. package/dist/client/InMemoryThreadList.js +299 -113
  8. package/dist/client/InMemoryThreadList.js.map +1 -1
  9. package/dist/client/SingleThreadList.d.ts +1 -6
  10. package/dist/client/SingleThreadList.d.ts.map +1 -1
  11. package/dist/client/SingleThreadList.js +143 -55
  12. package/dist/client/SingleThreadList.js.map +1 -1
  13. package/dist/context/ReadonlyStore.js.map +1 -1
  14. package/dist/context/providers/MessageProvider.js +38 -5
  15. package/dist/context/providers/MessageProvider.js.map +1 -1
  16. package/dist/context/providers/ThreadViewportProvider.js +76 -20
  17. package/dist/context/providers/ThreadViewportProvider.js.map +1 -1
  18. package/dist/context/react/ThreadViewportContext.js.map +1 -1
  19. package/dist/context/react/utils/createContextHook.js.map +1 -1
  20. package/dist/context/react/utils/createContextStoreHook.js +17 -2
  21. package/dist/context/react/utils/createContextStoreHook.js.map +1 -1
  22. package/dist/context/react/utils/createStateHookForRuntime.js.map +1 -1
  23. package/dist/context/react/utils/ensureBinding.js.map +1 -1
  24. package/dist/context/react/utils/useRuntimeState.js +18 -2
  25. package/dist/context/react/utils/useRuntimeState.js.map +1 -1
  26. package/dist/context/stores/ThreadViewport.js.map +1 -1
  27. package/dist/devtools/DevToolsHooks.js.map +1 -1
  28. package/dist/hooks/useMessageQuote.js.map +1 -1
  29. package/dist/hooks/useMessageTiming.js +4 -1
  30. package/dist/hooks/useMessageTiming.js.map +1 -1
  31. package/dist/hooks/useToolCallElapsed.d.ts +23 -0
  32. package/dist/hooks/useToolCallElapsed.d.ts.map +1 -0
  33. package/dist/hooks/useToolCallElapsed.js +72 -0
  34. package/dist/hooks/useToolCallElapsed.js.map +1 -0
  35. package/dist/index.d.ts +6 -2
  36. package/dist/index.js +5 -1
  37. package/dist/internal.js.map +1 -1
  38. package/dist/legacy-runtime/AssistantRuntimeProvider.js +46 -10
  39. package/dist/legacy-runtime/AssistantRuntimeProvider.js.map +1 -1
  40. package/dist/legacy-runtime/cloud/auiV0.js.map +1 -1
  41. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js +27 -6
  42. package/dist/legacy-runtime/cloud/useCloudThreadListRuntime.js.map +1 -1
  43. package/dist/legacy-runtime/hooks/AssistantContext.js +13 -2
  44. package/dist/legacy-runtime/hooks/AssistantContext.js.map +1 -1
  45. package/dist/legacy-runtime/hooks/AttachmentContext.js +9 -1
  46. package/dist/legacy-runtime/hooks/AttachmentContext.js.map +1 -1
  47. package/dist/legacy-runtime/hooks/ComposerContext.js +9 -1
  48. package/dist/legacy-runtime/hooks/ComposerContext.js.map +1 -1
  49. package/dist/legacy-runtime/hooks/MessageContext.js +12 -2
  50. package/dist/legacy-runtime/hooks/MessageContext.js.map +1 -1
  51. package/dist/legacy-runtime/hooks/MessagePartContext.js +9 -1
  52. package/dist/legacy-runtime/hooks/MessagePartContext.js.map +1 -1
  53. package/dist/legacy-runtime/hooks/ThreadContext.js +33 -5
  54. package/dist/legacy-runtime/hooks/ThreadContext.js.map +1 -1
  55. package/dist/legacy-runtime/hooks/ThreadListItemContext.js +9 -1
  56. package/dist/legacy-runtime/hooks/ThreadListItemContext.js.map +1 -1
  57. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js +3 -3
  58. package/dist/legacy-runtime/runtime-cores/assistant-transport/commandQueue.js.map +1 -1
  59. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.js +71 -31
  60. package/dist/legacy-runtime/runtime-cores/assistant-transport/replayBoundaryStream.js.map +1 -1
  61. package/dist/legacy-runtime/runtime-cores/assistant-transport/runManager.js.map +1 -1
  62. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js +24 -16
  63. package/dist/legacy-runtime/runtime-cores/assistant-transport/useAssistantTransportRuntime.js.map +1 -1
  64. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js +17 -12
  65. package/dist/legacy-runtime/runtime-cores/assistant-transport/useConvertedState.js.map +1 -1
  66. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js +17 -3
  67. package/dist/legacy-runtime/runtime-cores/assistant-transport/useLatestRef.js.map +1 -1
  68. package/dist/mcp-apps/McpAppRenderer.d.ts +2 -10
  69. package/dist/mcp-apps/McpAppRenderer.d.ts.map +1 -1
  70. package/dist/mcp-apps/McpAppRenderer.js +9 -8
  71. package/dist/mcp-apps/McpAppRenderer.js.map +1 -1
  72. package/dist/mcp-apps/McpAppsRemoteHost.d.ts +1 -8
  73. package/dist/mcp-apps/McpAppsRemoteHost.d.ts.map +1 -1
  74. package/dist/mcp-apps/McpAppsRemoteHost.js +6 -5
  75. package/dist/mcp-apps/McpAppsRemoteHost.js.map +1 -1
  76. package/dist/mcp-apps/app-frame.js +33 -14
  77. package/dist/mcp-apps/app-frame.js.map +1 -1
  78. package/dist/mcp-apps/bridge.js.map +1 -1
  79. package/dist/mcp-apps/types.js.map +1 -1
  80. package/dist/mcp-apps/utils.js.map +1 -1
  81. package/dist/model-context/frame/useAssistantFrameHost.js +32 -14
  82. package/dist/model-context/frame/useAssistantFrameHost.js.map +1 -1
  83. package/dist/model-context/makeAssistantVisible.js +64 -26
  84. package/dist/model-context/makeAssistantVisible.js.map +1 -1
  85. package/dist/primitives/actionBar/ActionBarCopy.js +94 -20
  86. package/dist/primitives/actionBar/ActionBarCopy.js.map +1 -1
  87. package/dist/primitives/actionBar/ActionBarEdit.js.map +1 -1
  88. package/dist/primitives/actionBar/ActionBarExportMarkdown.js +105 -37
  89. package/dist/primitives/actionBar/ActionBarExportMarkdown.js.map +1 -1
  90. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js +60 -11
  91. package/dist/primitives/actionBar/ActionBarFeedbackNegative.js.map +1 -1
  92. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js +60 -11
  93. package/dist/primitives/actionBar/ActionBarFeedbackPositive.js.map +1 -1
  94. package/dist/primitives/actionBar/ActionBarInteractionContext.js +3 -1
  95. package/dist/primitives/actionBar/ActionBarInteractionContext.js.map +1 -1
  96. package/dist/primitives/actionBar/ActionBarReload.js.map +1 -1
  97. package/dist/primitives/actionBar/ActionBarRoot.js +84 -25
  98. package/dist/primitives/actionBar/ActionBarRoot.js.map +1 -1
  99. package/dist/primitives/actionBar/ActionBarSpeak.js.map +1 -1
  100. package/dist/primitives/actionBar/ActionBarStopSpeaking.js +45 -14
  101. package/dist/primitives/actionBar/ActionBarStopSpeaking.js.map +1 -1
  102. package/dist/primitives/actionBar/useActionBarFloatStatus.js +22 -10
  103. package/dist/primitives/actionBar/useActionBarFloatStatus.js.map +1 -1
  104. package/dist/primitives/actionBar.js.map +1 -1
  105. package/dist/primitives/actionBarMore/ActionBarMoreContent.js +44 -7
  106. package/dist/primitives/actionBarMore/ActionBarMoreContent.js.map +1 -1
  107. package/dist/primitives/actionBarMore/ActionBarMoreItem.js +28 -6
  108. package/dist/primitives/actionBarMore/ActionBarMoreItem.js.map +1 -1
  109. package/dist/primitives/actionBarMore/ActionBarMoreRoot.js +103 -36
  110. package/dist/primitives/actionBarMore/ActionBarMoreRoot.js.map +1 -1
  111. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js +28 -6
  112. package/dist/primitives/actionBarMore/ActionBarMoreSeparator.js.map +1 -1
  113. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js +28 -6
  114. package/dist/primitives/actionBarMore/ActionBarMoreTrigger.js.map +1 -1
  115. package/dist/primitives/actionBarMore/scope.js.map +1 -1
  116. package/dist/primitives/actionBarMore.js.map +1 -1
  117. package/dist/primitives/assistantModal/AssistantModalAnchor.js +27 -6
  118. package/dist/primitives/assistantModal/AssistantModalAnchor.js.map +1 -1
  119. package/dist/primitives/assistantModal/AssistantModalContent.js +71 -10
  120. package/dist/primitives/assistantModal/AssistantModalContent.js.map +1 -1
  121. package/dist/primitives/assistantModal/AssistantModalRoot.js +93 -26
  122. package/dist/primitives/assistantModal/AssistantModalRoot.js.map +1 -1
  123. package/dist/primitives/assistantModal/AssistantModalTrigger.js +27 -6
  124. package/dist/primitives/assistantModal/AssistantModalTrigger.js.map +1 -1
  125. package/dist/primitives/assistantModal/scope.js.map +1 -1
  126. package/dist/primitives/assistantModal.js.map +1 -1
  127. package/dist/primitives/attachment/AttachmentName.js +13 -1
  128. package/dist/primitives/attachment/AttachmentName.js.map +1 -1
  129. package/dist/primitives/attachment/AttachmentRemove.js +11 -4
  130. package/dist/primitives/attachment/AttachmentRemove.js.map +1 -1
  131. package/dist/primitives/attachment/AttachmentRoot.js +13 -4
  132. package/dist/primitives/attachment/AttachmentRoot.js.map +1 -1
  133. package/dist/primitives/attachment/AttachmentThumb.js +20 -9
  134. package/dist/primitives/attachment/AttachmentThumb.js.map +1 -1
  135. package/dist/primitives/attachment.js.map +1 -1
  136. package/dist/primitives/branchPicker/BranchPickerCount.js +14 -2
  137. package/dist/primitives/branchPicker/BranchPickerCount.js.map +1 -1
  138. package/dist/primitives/branchPicker/BranchPickerNext.js.map +1 -1
  139. package/dist/primitives/branchPicker/BranchPickerNumber.js +14 -2
  140. package/dist/primitives/branchPicker/BranchPickerNumber.js.map +1 -1
  141. package/dist/primitives/branchPicker/BranchPickerPrevious.js.map +1 -1
  142. package/dist/primitives/branchPicker/BranchPickerRoot.js +34 -6
  143. package/dist/primitives/branchPicker/BranchPickerRoot.js.map +1 -1
  144. package/dist/primitives/branchPicker.js.map +1 -1
  145. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js +16 -5
  146. package/dist/primitives/chainOfThought/ChainOfThoughtAccordionTrigger.js.map +1 -1
  147. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js +13 -4
  148. package/dist/primitives/chainOfThought/ChainOfThoughtRoot.js.map +1 -1
  149. package/dist/primitives/chainOfThought.js.map +1 -1
  150. package/dist/primitives/composer/ComposerAddAttachment.js +37 -24
  151. package/dist/primitives/composer/ComposerAddAttachment.js.map +1 -1
  152. package/dist/primitives/composer/ComposerAttachmentDropzone.js +124 -49
  153. package/dist/primitives/composer/ComposerAttachmentDropzone.js.map +1 -1
  154. package/dist/primitives/composer/ComposerCancel.js.map +1 -1
  155. package/dist/primitives/composer/ComposerDictate.js.map +1 -1
  156. package/dist/primitives/composer/ComposerDictationTranscript.js +32 -7
  157. package/dist/primitives/composer/ComposerDictationTranscript.js.map +1 -1
  158. package/dist/primitives/composer/ComposerInput.js +29 -29
  159. package/dist/primitives/composer/ComposerInput.js.map +1 -1
  160. package/dist/primitives/composer/ComposerInputPluginContext.js +71 -25
  161. package/dist/primitives/composer/ComposerInputPluginContext.js.map +1 -1
  162. package/dist/primitives/composer/ComposerQuote.js +92 -23
  163. package/dist/primitives/composer/ComposerQuote.js.map +1 -1
  164. package/dist/primitives/composer/ComposerRoot.js +45 -11
  165. package/dist/primitives/composer/ComposerRoot.js.map +1 -1
  166. package/dist/primitives/composer/ComposerSend.js +9 -2
  167. package/dist/primitives/composer/ComposerSend.js.map +1 -1
  168. package/dist/primitives/composer/ComposerStopDictation.js +15 -5
  169. package/dist/primitives/composer/ComposerStopDictation.js.map +1 -1
  170. package/dist/primitives/composer/trigger/TriggerPopover.d.ts.map +1 -1
  171. package/dist/primitives/composer/trigger/TriggerPopover.js +215 -75
  172. package/dist/primitives/composer/trigger/TriggerPopover.js.map +1 -1
  173. package/dist/primitives/composer/trigger/TriggerPopoverAction.js.map +1 -1
  174. package/dist/primitives/composer/trigger/TriggerPopoverBack.js +35 -7
  175. package/dist/primitives/composer/trigger/TriggerPopoverBack.js.map +1 -1
  176. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js +134 -28
  177. package/dist/primitives/composer/trigger/TriggerPopoverCategories.js.map +1 -1
  178. package/dist/primitives/composer/trigger/TriggerPopoverDirective.js.map +1 -1
  179. package/dist/primitives/composer/trigger/TriggerPopoverItems.js +132 -28
  180. package/dist/primitives/composer/trigger/TriggerPopoverItems.js.map +1 -1
  181. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts +2 -10
  182. package/dist/primitives/composer/trigger/TriggerPopoverResource.d.ts.map +1 -1
  183. package/dist/primitives/composer/trigger/TriggerPopoverResource.js +126 -53
  184. package/dist/primitives/composer/trigger/TriggerPopoverResource.js.map +1 -1
  185. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js +181 -78
  186. package/dist/primitives/composer/trigger/TriggerPopoverRootContext.js.map +1 -1
  187. package/dist/primitives/composer/trigger/detectTrigger.js.map +1 -1
  188. package/dist/primitives/composer/trigger/index.js.map +1 -1
  189. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts +2 -6
  190. package/dist/primitives/composer/trigger/triggerDetectionResource.d.ts.map +1 -1
  191. package/dist/primitives/composer/trigger/triggerDetectionResource.js +30 -15
  192. package/dist/primitives/composer/trigger/triggerDetectionResource.js.map +1 -1
  193. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts +2 -17
  194. package/dist/primitives/composer/trigger/triggerKeyboardResource.d.ts.map +1 -1
  195. package/dist/primitives/composer/trigger/triggerKeyboardResource.js +117 -59
  196. package/dist/primitives/composer/trigger/triggerKeyboardResource.js.map +1 -1
  197. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts +2 -10
  198. package/dist/primitives/composer/trigger/triggerNavigationResource.d.ts.map +1 -1
  199. package/dist/primitives/composer/trigger/triggerNavigationResource.js +204 -71
  200. package/dist/primitives/composer/trigger/triggerNavigationResource.js.map +1 -1
  201. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts +2 -10
  202. package/dist/primitives/composer/trigger/triggerSelectionResource.d.ts.map +1 -1
  203. package/dist/primitives/composer/trigger/triggerSelectionResource.js +51 -14
  204. package/dist/primitives/composer/trigger/triggerSelectionResource.js.map +1 -1
  205. package/dist/primitives/composer.js.map +1 -1
  206. package/dist/primitives/dropdownMenuRenderPrimitives.js.map +1 -1
  207. package/dist/primitives/error/ErrorMessage.js +28 -6
  208. package/dist/primitives/error/ErrorMessage.js.map +1 -1
  209. package/dist/primitives/error/ErrorRoot.js +14 -5
  210. package/dist/primitives/error/ErrorRoot.js.map +1 -1
  211. package/dist/primitives/error.js.map +1 -1
  212. package/dist/primitives/message/MessageError.js +2 -1
  213. package/dist/primitives/message/MessageError.js.map +1 -1
  214. package/dist/primitives/message/MessageIf.js +50 -20
  215. package/dist/primitives/message/MessageIf.js.map +1 -1
  216. package/dist/primitives/message/MessageParts.js +41 -7
  217. package/dist/primitives/message/MessageParts.js.map +1 -1
  218. package/dist/primitives/message/MessagePartsGrouped.js +399 -94
  219. package/dist/primitives/message/MessagePartsGrouped.js.map +1 -1
  220. package/dist/primitives/message/MessageRoot.js +197 -65
  221. package/dist/primitives/message/MessageRoot.js.map +1 -1
  222. package/dist/primitives/message.js.map +1 -1
  223. package/dist/primitives/messagePart/MessagePartImage.js +15 -5
  224. package/dist/primitives/messagePart/MessagePartImage.js.map +1 -1
  225. package/dist/primitives/messagePart/MessagePartText.d.ts +5 -2
  226. package/dist/primitives/messagePart/MessagePartText.d.ts.map +1 -1
  227. package/dist/primitives/messagePart/MessagePartText.js +35 -7
  228. package/dist/primitives/messagePart/MessagePartText.js.map +1 -1
  229. package/dist/primitives/messagePart/useMessagePartData.js +5 -4
  230. package/dist/primitives/messagePart/useMessagePartData.js.map +1 -1
  231. package/dist/primitives/messagePart/useMessagePartFile.js +5 -4
  232. package/dist/primitives/messagePart/useMessagePartFile.js.map +1 -1
  233. package/dist/primitives/messagePart/useMessagePartImage.js +5 -4
  234. package/dist/primitives/messagePart/useMessagePartImage.js.map +1 -1
  235. package/dist/primitives/messagePart/useMessagePartReasoning.js +5 -4
  236. package/dist/primitives/messagePart/useMessagePartReasoning.js.map +1 -1
  237. package/dist/primitives/messagePart/useMessagePartSource.js +5 -4
  238. package/dist/primitives/messagePart/useMessagePartSource.js.map +1 -1
  239. package/dist/primitives/messagePart/useMessagePartText.js +5 -4
  240. package/dist/primitives/messagePart/useMessagePartText.js.map +1 -1
  241. package/dist/primitives/messagePart.js.map +1 -1
  242. package/dist/primitives/queueItem/QueueItemRemove.js +11 -4
  243. package/dist/primitives/queueItem/QueueItemRemove.js.map +1 -1
  244. package/dist/primitives/queueItem/QueueItemSteer.js +11 -4
  245. package/dist/primitives/queueItem/QueueItemSteer.js.map +1 -1
  246. package/dist/primitives/queueItem/QueueItemText.js +20 -6
  247. package/dist/primitives/queueItem/QueueItemText.js.map +1 -1
  248. package/dist/primitives/queueItem.js.map +1 -1
  249. package/dist/primitives/reasoning/useScrollLock.js +61 -34
  250. package/dist/primitives/reasoning/useScrollLock.js.map +1 -1
  251. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js +56 -16
  252. package/dist/primitives/selectionToolbar/SelectionToolbarQuote.js.map +1 -1
  253. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js +120 -59
  254. package/dist/primitives/selectionToolbar/SelectionToolbarRoot.js.map +1 -1
  255. package/dist/primitives/selectionToolbar.js.map +1 -1
  256. package/dist/primitives/suggestion/SuggestionDescription.js +20 -6
  257. package/dist/primitives/suggestion/SuggestionDescription.js.map +1 -1
  258. package/dist/primitives/suggestion/SuggestionTitle.js +20 -6
  259. package/dist/primitives/suggestion/SuggestionTitle.js.map +1 -1
  260. package/dist/primitives/suggestion/SuggestionTrigger.js +39 -26
  261. package/dist/primitives/suggestion/SuggestionTrigger.js.map +1 -1
  262. package/dist/primitives/suggestion.js.map +1 -1
  263. package/dist/primitives/thread/ThreadEmpty.js +6 -2
  264. package/dist/primitives/thread/ThreadEmpty.js.map +1 -1
  265. package/dist/primitives/thread/ThreadIf.js +32 -10
  266. package/dist/primitives/thread/ThreadIf.js.map +1 -1
  267. package/dist/primitives/thread/ThreadRoot.js +13 -4
  268. package/dist/primitives/thread/ThreadRoot.js.map +1 -1
  269. package/dist/primitives/thread/ThreadScrollToBottom.js +24 -6
  270. package/dist/primitives/thread/ThreadScrollToBottom.js.map +1 -1
  271. package/dist/primitives/thread/ThreadSuggestion.js +18 -6
  272. package/dist/primitives/thread/ThreadSuggestion.js.map +1 -1
  273. package/dist/primitives/thread/ThreadViewport.js +185 -47
  274. package/dist/primitives/thread/ThreadViewport.js.map +1 -1
  275. package/dist/primitives/thread/ThreadViewportFooter.js +22 -9
  276. package/dist/primitives/thread/ThreadViewportFooter.js.map +1 -1
  277. package/dist/primitives/thread/topAnchor/computeTopAnchorSlack.js.map +1 -1
  278. package/dist/primitives/thread/topAnchor/createReserveObservers.js.map +1 -1
  279. package/dist/primitives/thread/topAnchor/mountTopAnchorReserve.js.map +1 -1
  280. package/dist/primitives/thread/topAnchor/topAnchorTurn.js.map +1 -1
  281. package/dist/primitives/thread/topAnchor/topAnchorUtils.js.map +1 -1
  282. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js +19 -4
  283. package/dist/primitives/thread/topAnchor/useTopAnchorReserve.js.map +1 -1
  284. package/dist/primitives/thread/useThreadViewportAutoScroll.d.ts.map +1 -1
  285. package/dist/primitives/thread/useThreadViewportAutoScroll.js +21 -16
  286. package/dist/primitives/thread/useThreadViewportAutoScroll.js.map +1 -1
  287. package/dist/primitives/thread.js.map +1 -1
  288. package/dist/primitives/threadList/ThreadListLoadMore.js.map +1 -1
  289. package/dist/primitives/threadList/ThreadListNew.js +53 -11
  290. package/dist/primitives/threadList/ThreadListNew.js.map +1 -1
  291. package/dist/primitives/threadList/ThreadListRoot.js +13 -4
  292. package/dist/primitives/threadList/ThreadListRoot.js.map +1 -1
  293. package/dist/primitives/threadList.js.map +1 -1
  294. package/dist/primitives/threadListItem/ThreadListItemArchive.js.map +1 -1
  295. package/dist/primitives/threadListItem/ThreadListItemDelete.js.map +1 -1
  296. package/dist/primitives/threadListItem/ThreadListItemRoot.js +26 -7
  297. package/dist/primitives/threadListItem/ThreadListItemRoot.js.map +1 -1
  298. package/dist/primitives/threadListItem/ThreadListItemTrigger.js.map +1 -1
  299. package/dist/primitives/threadListItem/ThreadListItemUnarchive.js.map +1 -1
  300. package/dist/primitives/threadListItem.js.map +1 -1
  301. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js +44 -7
  302. package/dist/primitives/threadListItemMore/ThreadListItemMoreContent.js.map +1 -1
  303. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js +28 -6
  304. package/dist/primitives/threadListItemMore/ThreadListItemMoreItem.js.map +1 -1
  305. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js +25 -5
  306. package/dist/primitives/threadListItemMore/ThreadListItemMoreRoot.js.map +1 -1
  307. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js +28 -6
  308. package/dist/primitives/threadListItemMore/ThreadListItemMoreSeparator.js.map +1 -1
  309. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js +28 -6
  310. package/dist/primitives/threadListItemMore/ThreadListItemMoreTrigger.js.map +1 -1
  311. package/dist/primitives/threadListItemMore/scope.js.map +1 -1
  312. package/dist/primitives/threadListItemMore.js.map +1 -1
  313. package/dist/sandbox-host/SandboxHost.js.map +1 -1
  314. package/dist/tests/remote-thread-list-test-helpers.js.map +1 -1
  315. package/dist/tests/setup.js.map +1 -1
  316. package/dist/unstable/useComposerInputHistory.d.ts +30 -0
  317. package/dist/unstable/useComposerInputHistory.d.ts.map +1 -0
  318. package/dist/unstable/useComposerInputHistory.js +117 -0
  319. package/dist/unstable/useComposerInputHistory.js.map +1 -0
  320. package/dist/unstable/useMentionAdapter.js.map +1 -1
  321. package/dist/unstable/useMessageStallDetection.d.ts +29 -0
  322. package/dist/unstable/useMessageStallDetection.d.ts.map +1 -0
  323. package/dist/unstable/useMessageStallDetection.js +69 -0
  324. package/dist/unstable/useMessageStallDetection.js.map +1 -0
  325. package/dist/unstable/useSlashCommandAdapter.js.map +1 -1
  326. package/dist/utils/Primitive.js +57 -12
  327. package/dist/utils/Primitive.js.map +1 -1
  328. package/dist/utils/createActionButton.js +23 -7
  329. package/dist/utils/createActionButton.js.map +1 -1
  330. package/dist/utils/getSelectionMessageId.js.map +1 -1
  331. package/dist/utils/hooks/useManagedRef.js +16 -8
  332. package/dist/utils/hooks/useManagedRef.js.map +1 -1
  333. package/dist/utils/hooks/useMediaQuery.js +25 -10
  334. package/dist/utils/hooks/useMediaQuery.js.map +1 -1
  335. package/dist/utils/hooks/useOnResizeContent.js +29 -19
  336. package/dist/utils/hooks/useOnResizeContent.js.map +1 -1
  337. package/dist/utils/hooks/useOnScrollToBottom.js +20 -4
  338. package/dist/utils/hooks/useOnScrollToBottom.js.map +1 -1
  339. package/dist/utils/hooks/useSizeHandle.js +23 -15
  340. package/dist/utils/hooks/useSizeHandle.js.map +1 -1
  341. package/dist/utils/json/is-json-equal.js.map +1 -1
  342. package/dist/utils/json/is-json.js.map +1 -1
  343. package/dist/utils/smooth/SmoothContext.js +41 -11
  344. package/dist/utils/smooth/SmoothContext.js.map +1 -1
  345. package/dist/utils/smooth/useSmooth.d.ts +40 -2
  346. package/dist/utils/smooth/useSmooth.d.ts.map +1 -1
  347. package/dist/utils/smooth/useSmooth.js +52 -13
  348. package/dist/utils/smooth/useSmooth.js.map +1 -1
  349. package/dist/utils/useToolArgsFieldStatus.d.ts +2 -2
  350. package/dist/utils/useToolArgsFieldStatus.d.ts.map +1 -1
  351. package/dist/utils/useToolArgsFieldStatus.js +13 -5
  352. package/dist/utils/useToolArgsFieldStatus.js.map +1 -1
  353. package/package.json +6 -6
  354. package/src/client/ExternalThread.ts +146 -74
  355. package/src/client/InMemoryThreadList.ts +23 -21
  356. package/src/client/SingleThreadList.ts +29 -27
  357. package/src/hooks/useToolCallElapsed.ts +52 -0
  358. package/src/index.ts +19 -0
  359. package/src/mcp-apps/McpAppRenderer.tsx +5 -3
  360. package/src/mcp-apps/McpAppsRemoteHost.ts +5 -3
  361. package/src/primitives/composer/ComposerInput.test.tsx +1 -1
  362. package/src/primitives/composer/ComposerInput.tsx +3 -3
  363. package/src/primitives/composer/trigger/TriggerPopover.tsx +4 -5
  364. package/src/primitives/composer/trigger/TriggerPopoverResource.ts +5 -3
  365. package/src/primitives/composer/trigger/triggerDetectionResource.ts +21 -21
  366. package/src/primitives/composer/trigger/triggerKeyboardResource.test.ts +5 -4
  367. package/src/primitives/composer/trigger/triggerKeyboardResource.ts +99 -101
  368. package/src/primitives/composer/trigger/triggerNavigationResource.ts +92 -98
  369. package/src/primitives/composer/trigger/triggerSelectionResource.ts +76 -76
  370. package/src/primitives/messagePart/MessagePartText.tsx +3 -2
  371. package/src/primitives/reasoning/useScrollLock.ts +25 -2
  372. package/src/primitives/thread/useThreadViewportAutoScroll.ts +8 -0
  373. package/src/tests/external-thread-branches.test.tsx +160 -0
  374. package/src/tests/shouldContinue.test.ts +33 -0
  375. package/src/tests/toolCallTiming.test.tsx +221 -0
  376. package/src/unstable/useComposerInputHistory.test.tsx +201 -0
  377. package/src/unstable/useComposerInputHistory.ts +160 -0
  378. package/src/unstable/useMessageStallDetection.ts +91 -0
  379. package/src/utils/smooth/useSmooth.test.tsx +95 -0
  380. package/src/utils/smooth/useSmooth.ts +82 -10
@@ -2,7 +2,8 @@
2
2
  import { Primitive } from "../../utils/Primitive.js";
3
3
  import { useSelectionToolbarInfo } from "./SelectionToolbarRoot.js";
4
4
  import { useAui } from "@assistant-ui/store";
5
- import { forwardRef, useCallback } from "@assistant-ui/tap/react-shim";
5
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
6
+ import { forwardRef } from "@assistant-ui/tap/react-shim";
6
7
  import { jsx } from "react/jsx-runtime";
7
8
  import { composeEventHandlers } from "@radix-ui/primitive";
8
9
  //#region src/primitives/selectionToolbar/SelectionToolbarQuote.tsx
@@ -20,24 +21,63 @@ import { composeEventHandlers } from "@radix-ui/primitive";
20
21
  * </SelectionToolbarPrimitive.Quote>
21
22
  * ```
22
23
  */
23
- const SelectionToolbarPrimitiveQuote = forwardRef(({ onClick, disabled, ...props }, forwardedRef) => {
24
+ const SelectionToolbarPrimitiveQuote = forwardRef((t0, forwardedRef) => {
25
+ const $ = c(15);
26
+ let disabled;
27
+ let onClick;
28
+ let props;
29
+ if ($[0] !== t0) {
30
+ ({onClick, disabled, ...props} = t0);
31
+ $[0] = t0;
32
+ $[1] = disabled;
33
+ $[2] = onClick;
34
+ $[3] = props;
35
+ } else {
36
+ disabled = $[1];
37
+ onClick = $[2];
38
+ props = $[3];
39
+ }
24
40
  const aui = useAui();
25
41
  const info = useSelectionToolbarInfo();
26
- const handleClick = useCallback(() => {
27
- if (!info) return;
28
- aui.thread().composer().setQuote({
29
- text: info.text,
30
- messageId: info.messageId
42
+ let t1;
43
+ if ($[4] !== aui || $[5] !== info) {
44
+ t1 = () => {
45
+ if (!info) return;
46
+ aui.thread().composer().setQuote({
47
+ text: info.text,
48
+ messageId: info.messageId
49
+ });
50
+ window.getSelection()?.removeAllRanges();
51
+ };
52
+ $[4] = aui;
53
+ $[5] = info;
54
+ $[6] = t1;
55
+ } else t1 = $[6];
56
+ const handleClick = t1;
57
+ const t2 = disabled || !info;
58
+ let t3;
59
+ if ($[7] !== handleClick || $[8] !== onClick) {
60
+ t3 = composeEventHandlers(onClick, handleClick);
61
+ $[7] = handleClick;
62
+ $[8] = onClick;
63
+ $[9] = t3;
64
+ } else t3 = $[9];
65
+ let t4;
66
+ if ($[10] !== forwardedRef || $[11] !== props || $[12] !== t2 || $[13] !== t3) {
67
+ t4 = /* @__PURE__ */ jsx(Primitive.button, {
68
+ type: "button",
69
+ ...props,
70
+ ref: forwardedRef,
71
+ disabled: t2,
72
+ onClick: t3
31
73
  });
32
- window.getSelection()?.removeAllRanges();
33
- }, [aui, info]);
34
- return /* @__PURE__ */ jsx(Primitive.button, {
35
- type: "button",
36
- ...props,
37
- ref: forwardedRef,
38
- disabled: disabled || !info,
39
- onClick: composeEventHandlers(onClick, handleClick)
40
- });
74
+ $[10] = forwardedRef;
75
+ $[11] = props;
76
+ $[12] = t2;
77
+ $[13] = t3;
78
+ $[14] = t4;
79
+ } else t4 = $[14];
80
+ return t4;
41
81
  });
42
82
  SelectionToolbarPrimitiveQuote.displayName = "SelectionToolbarPrimitive.Quote";
43
83
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionToolbarQuote.js","names":[],"sources":["../../../src/primitives/selectionToolbar/SelectionToolbarQuote.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport {\n type ComponentPropsWithoutRef,\n type ComponentRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport { useSelectionToolbarInfo } from \"./SelectionToolbarRoot\";\n\nexport namespace SelectionToolbarPrimitiveQuote {\n export type Element = ComponentRef<typeof Primitive.button>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.button>;\n}\n\n/**\n * A button that quotes the currently selected text.\n *\n * Must be placed inside `SelectionToolbarPrimitive.Root`. Reads the\n * selection info from context (captured by the Root), sets it as a\n * quote in the thread composer, and clears the selection.\n *\n * @example\n * ```tsx\n * <SelectionToolbarPrimitive.Quote>\n * <QuoteIcon /> Quote\n * </SelectionToolbarPrimitive.Quote>\n * ```\n */\nexport const SelectionToolbarPrimitiveQuote = forwardRef<\n SelectionToolbarPrimitiveQuote.Element,\n SelectionToolbarPrimitiveQuote.Props\n>(({ onClick, disabled, ...props }, forwardedRef) => {\n const aui = useAui();\n const info = useSelectionToolbarInfo();\n\n const handleClick = useCallback(() => {\n if (!info) return;\n\n aui.thread().composer().setQuote({\n text: info.text,\n messageId: info.messageId,\n });\n\n window.getSelection()?.removeAllRanges();\n }, [aui, info]);\n\n return (\n <Primitive.button\n type=\"button\"\n {...props}\n ref={forwardedRef}\n disabled={disabled || !info}\n onClick={composeEventHandlers(onClick, handleClick)}\n />\n );\n});\n\nSelectionToolbarPrimitiveQuote.displayName = \"SelectionToolbarPrimitive.Quote\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAa,iCAAiC,YAG3C,EAAE,SAAS,UAAU,GAAG,SAAS,iBAAiB;CACnD,MAAM,MAAM,OAAO;CACnB,MAAM,OAAO,wBAAwB;CAErC,MAAM,cAAc,kBAAkB;EACpC,IAAI,CAAC,MAAM;EAEX,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;GAC/B,MAAM,KAAK;GACX,WAAW,KAAK;EAClB,CAAC;EAED,OAAO,aAAa,CAAC,EAAE,gBAAgB;CACzC,GAAG,CAAC,KAAK,IAAI,CAAC;CAEd,OACE,oBAAC,UAAU,QAAX;EACE,MAAK;EACL,GAAI;EACJ,KAAK;EACL,UAAU,YAAY,CAAC;EACvB,SAAS,qBAAqB,SAAS,WAAW;CACnD,CAAA;AAEL,CAAC;AAED,+BAA+B,cAAc"}
1
+ {"version":3,"file":"SelectionToolbarQuote.js","names":["c","_c","Primitive","composeEventHandlers","ComponentPropsWithoutRef","ComponentRef","forwardRef","useCallback","useAui","useSelectionToolbarInfo","SelectionToolbarPrimitiveQuote","Element","button","Props","t0","forwardedRef","$","disabled","onClick","props","aui","info","t1","thread","composer","setQuote","text","messageId","window","getSelection","removeAllRanges","handleClick","t2","t3","t4","displayName"],"sources":["../../../src/primitives/selectionToolbar/SelectionToolbarQuote.tsx"],"sourcesContent":["\"use client\";\n\nimport { Primitive } from \"../../utils/Primitive\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport {\n type ComponentPropsWithoutRef,\n type ComponentRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport { useAui } from \"@assistant-ui/store\";\nimport { useSelectionToolbarInfo } from \"./SelectionToolbarRoot\";\n\nexport namespace SelectionToolbarPrimitiveQuote {\n export type Element = ComponentRef<typeof Primitive.button>;\n export type Props = ComponentPropsWithoutRef<typeof Primitive.button>;\n}\n\n/**\n * A button that quotes the currently selected text.\n *\n * Must be placed inside `SelectionToolbarPrimitive.Root`. Reads the\n * selection info from context (captured by the Root), sets it as a\n * quote in the thread composer, and clears the selection.\n *\n * @example\n * ```tsx\n * <SelectionToolbarPrimitive.Quote>\n * <QuoteIcon /> Quote\n * </SelectionToolbarPrimitive.Quote>\n * ```\n */\nexport const SelectionToolbarPrimitiveQuote = forwardRef<\n SelectionToolbarPrimitiveQuote.Element,\n SelectionToolbarPrimitiveQuote.Props\n>(({ onClick, disabled, ...props }, forwardedRef) => {\n const aui = useAui();\n const info = useSelectionToolbarInfo();\n\n const handleClick = useCallback(() => {\n if (!info) return;\n\n aui.thread().composer().setQuote({\n text: info.text,\n messageId: info.messageId,\n });\n\n window.getSelection()?.removeAllRanges();\n }, [aui, info]);\n\n return (\n <Primitive.button\n type=\"button\"\n {...props}\n ref={forwardedRef}\n disabled={disabled || !info}\n onClick={composeEventHandlers(onClick, handleClick)}\n />\n );\n});\n\nSelectionToolbarPrimitiveQuote.displayName = \"SelectionToolbarPrimitive.Quote\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgCA,MAAaU,iCAAiCJ,YAG5CQ,IAAAC,iBAAA;CAAA,MAAAC,IAAAf,EAAA,EAAA;CAAA,IAAAgB;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAH,EAAA,OAAAF,IAAA;EAAC,CAAA,CAAAI,SAAAD,aAAAE,SAAAL;EAA+BE,EAAA,KAAAF;EAAAE,EAAA,KAAAC;EAAAD,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAA;EAAAF,WAAAD,EAAA;EAAAE,UAAAF,EAAA;EAAAG,QAAAH,EAAA;CAAA;CAChC,MAAAI,MAAYZ,OAAO;CACnB,MAAAa,OAAaZ,wBAAwB;CAAE,IAAAa;CAAA,IAAAN,EAAA,OAAAI,OAAAJ,EAAA,OAAAK,MAAA;EAEPC,WAAA;GAC9B,IAAI,CAACD,MAAI;GAETD,IAAGG,OAAQ,CAAC,CAAAC,SAAU,CAAC,CAAAC,SAAU;IAAAC,MACzBL,KAAIK;IAAKC,WACJN,KAAIM;GACjB,CAAC;GAEDC,OAAMC,aAA+B,CAAC,EAAAC,gBAAC;EAAC;EACzCd,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;EAAAL,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CATD,MAAAe,cAAoBT;CAgBN,MAAAU,KAAAf,YAAA,CAAaI;CAAI,IAAAY;CAAA,IAAAjB,EAAA,OAAAe,eAAAf,EAAA,OAAAE,SAAA;EAClBe,KAAA9B,qBAAqBe,SAASa,WAAW;EAACf,EAAA,KAAAe;EAAAf,EAAA,KAAAE;EAAAF,EAAA,KAAAiB;CAAA,OAAAA,KAAAjB,EAAA;CAAA,IAAAkB;CAAA,IAAAlB,EAAA,QAAAD,gBAAAC,EAAA,QAAAG,SAAAH,EAAA,QAAAgB,MAAAhB,EAAA,QAAAiB,IAAA;EALrDC,KAAA,oBAAA,UAAA,QAAA;GACO,MAAA;GAAQ,GACTf;GACCJ,KAAAA;GACK,UAAAiB;GACD,SAAAC;EAA0C,CAAA;EACnDjB,EAAA,MAAAD;EAAAC,EAAA,MAAAG;EAAAH,EAAA,MAAAgB;EAAAhB,EAAA,MAAAiB;EAAAjB,EAAA,MAAAkB;CAAA,OAAAA,KAAAlB,EAAA;CAAA,OANFkB;AAME,CAEL;AAEDxB,+BAA+ByB,cAAc"}
@@ -1,12 +1,15 @@
1
1
  "use client";
2
2
  import { Primitive } from "../../utils/Primitive.js";
3
3
  import { getSelectionMessageId } from "../../utils/getSelectionMessageId.js";
4
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
4
5
  import { createContext, forwardRef, useContext, useEffect, useState } from "@assistant-ui/tap/react-shim";
5
6
  import { jsx } from "react/jsx-runtime";
6
7
  import { createPortal } from "react-dom";
7
8
  //#region src/primitives/selectionToolbar/SelectionToolbarRoot.tsx
8
9
  const SelectionToolbarContext = createContext(null);
9
- const useSelectionToolbarInfo = () => useContext(SelectionToolbarContext);
10
+ const useSelectionToolbarInfo = () => {
11
+ return useContext(SelectionToolbarContext);
12
+ };
10
13
  /**
11
14
  * A floating toolbar that appears when text is selected within a message.
12
15
  *
@@ -21,72 +24,130 @@ const useSelectionToolbarInfo = () => useContext(SelectionToolbarContext);
21
24
  * </SelectionToolbarPrimitive.Root>
22
25
  * ```
23
26
  */
24
- const SelectionToolbarPrimitiveRoot = forwardRef(({ onMouseDown, style, ...props }, forwardedRef) => {
27
+ const SelectionToolbarPrimitiveRoot = forwardRef((t0, forwardedRef) => {
28
+ const $ = c(20);
29
+ let onMouseDown;
30
+ let props;
31
+ let style;
32
+ if ($[0] !== t0) {
33
+ ({onMouseDown, style, ...props} = t0);
34
+ $[0] = t0;
35
+ $[1] = onMouseDown;
36
+ $[2] = props;
37
+ $[3] = style;
38
+ } else {
39
+ onMouseDown = $[1];
40
+ props = $[2];
41
+ style = $[3];
42
+ }
25
43
  const [info, setInfo] = useState(null);
26
- useEffect(() => {
27
- const checkSelection = () => {
28
- requestAnimationFrame(() => {
29
- const sel = window.getSelection();
30
- if (!sel || sel.isCollapsed) {
31
- setInfo(null);
32
- return;
33
- }
34
- const text = sel.toString().trim();
35
- if (!text) {
36
- setInfo(null);
37
- return;
38
- }
39
- const messageId = getSelectionMessageId(sel);
40
- if (!messageId) {
41
- setInfo(null);
42
- return;
43
- }
44
- setInfo({
45
- text,
46
- messageId,
47
- rect: sel.getRangeAt(0).getBoundingClientRect()
44
+ let t1;
45
+ let t2;
46
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
47
+ t1 = () => {
48
+ const checkSelection = () => {
49
+ requestAnimationFrame(() => {
50
+ const sel = window.getSelection();
51
+ if (!sel || sel.isCollapsed) {
52
+ setInfo(null);
53
+ return;
54
+ }
55
+ const text = sel.toString().trim();
56
+ if (!text) {
57
+ setInfo(null);
58
+ return;
59
+ }
60
+ const messageId = getSelectionMessageId(sel);
61
+ if (!messageId) {
62
+ setInfo(null);
63
+ return;
64
+ }
65
+ setInfo({
66
+ text,
67
+ messageId,
68
+ rect: sel.getRangeAt(0).getBoundingClientRect()
69
+ });
48
70
  });
49
- });
71
+ };
72
+ const handleSelectionCollapse = () => {
73
+ const sel_0 = window.getSelection();
74
+ if (!sel_0 || sel_0.isCollapsed) setInfo(null);
75
+ };
76
+ const handleScroll = () => {
77
+ setInfo(null);
78
+ };
79
+ document.addEventListener("mouseup", checkSelection);
80
+ document.addEventListener("keyup", checkSelection);
81
+ document.addEventListener("selectionchange", handleSelectionCollapse);
82
+ document.addEventListener("scroll", handleScroll, true);
83
+ return () => {
84
+ document.removeEventListener("mouseup", checkSelection);
85
+ document.removeEventListener("keyup", checkSelection);
86
+ document.removeEventListener("selectionchange", handleSelectionCollapse);
87
+ document.removeEventListener("scroll", handleScroll, true);
88
+ };
50
89
  };
51
- const handleSelectionCollapse = () => {
52
- const sel = window.getSelection();
53
- if (!sel || sel.isCollapsed) setInfo(null);
54
- };
55
- const handleScroll = () => {
56
- setInfo(null);
90
+ t2 = [];
91
+ $[4] = t1;
92
+ $[5] = t2;
93
+ } else {
94
+ t1 = $[4];
95
+ t2 = $[5];
96
+ }
97
+ useEffect(t1, t2);
98
+ if (!info) return null;
99
+ const t3 = `${info.rect.top - 8}px`;
100
+ const t4 = `${info.rect.left + info.rect.width / 2}px`;
101
+ let t5;
102
+ if ($[6] !== style || $[7] !== t3 || $[8] !== t4) {
103
+ t5 = {
104
+ position: "fixed",
105
+ top: t3,
106
+ left: t4,
107
+ transform: "translate(-50%, -100%)",
108
+ zIndex: 50,
109
+ ...style
57
110
  };
58
- document.addEventListener("mouseup", checkSelection);
59
- document.addEventListener("keyup", checkSelection);
60
- document.addEventListener("selectionchange", handleSelectionCollapse);
61
- document.addEventListener("scroll", handleScroll, true);
62
- return () => {
63
- document.removeEventListener("mouseup", checkSelection);
64
- document.removeEventListener("keyup", checkSelection);
65
- document.removeEventListener("selectionchange", handleSelectionCollapse);
66
- document.removeEventListener("scroll", handleScroll, true);
111
+ $[6] = style;
112
+ $[7] = t3;
113
+ $[8] = t4;
114
+ $[9] = t5;
115
+ } else t5 = $[9];
116
+ const positionStyle = t5;
117
+ let t6;
118
+ if ($[10] !== onMouseDown) {
119
+ t6 = (e) => {
120
+ e.preventDefault();
121
+ onMouseDown?.(e);
67
122
  };
68
- }, []);
69
- if (!info) return null;
70
- const positionStyle = {
71
- position: "fixed",
72
- top: `${info.rect.top - 8}px`,
73
- left: `${info.rect.left + info.rect.width / 2}px`,
74
- transform: "translate(-50%, -100%)",
75
- zIndex: 50,
76
- ...style
77
- };
78
- return createPortal(/* @__PURE__ */ jsx(SelectionToolbarContext.Provider, {
79
- value: info,
80
- children: /* @__PURE__ */ jsx(Primitive.div, {
123
+ $[10] = onMouseDown;
124
+ $[11] = t6;
125
+ } else t6 = $[11];
126
+ let t7;
127
+ if ($[12] !== forwardedRef || $[13] !== positionStyle || $[14] !== props || $[15] !== t6) {
128
+ t7 = /* @__PURE__ */ jsx(Primitive.div, {
81
129
  ...props,
82
130
  ref: forwardedRef,
83
131
  style: positionStyle,
84
- onMouseDown: (e) => {
85
- e.preventDefault();
86
- onMouseDown?.(e);
87
- }
88
- })
89
- }), document.body);
132
+ onMouseDown: t6
133
+ });
134
+ $[12] = forwardedRef;
135
+ $[13] = positionStyle;
136
+ $[14] = props;
137
+ $[15] = t6;
138
+ $[16] = t7;
139
+ } else t7 = $[16];
140
+ let t8;
141
+ if ($[17] !== info || $[18] !== t7) {
142
+ t8 = createPortal(/* @__PURE__ */ jsx(SelectionToolbarContext.Provider, {
143
+ value: info,
144
+ children: t7
145
+ }), document.body);
146
+ $[17] = info;
147
+ $[18] = t7;
148
+ $[19] = t8;
149
+ } else t8 = $[19];
150
+ return t8;
90
151
  });
91
152
  SelectionToolbarPrimitiveRoot.displayName = "SelectionToolbarPrimitive.Root";
92
153
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionToolbarRoot.js","names":[],"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":";;;;;;;AAqBA,MAAM,0BAA0B,cAAoC,IAAI;AAExE,MAAa,gCACX,WAAW,uBAAuB;;;;;;;;;;;;;;;AAqBpC,MAAa,gCAAgC,YAG1C,EAAE,aAAa,OAAO,GAAG,SAAS,iBAAiB;CACpD,MAAM,CAAC,MAAM,WAAW,SAA+B,IAAI;CAE3D,gBAAgB;EACd,MAAM,uBAAuB;GAC3B,4BAA4B;IAC1B,MAAM,MAAM,OAAO,aAAa;IAChC,IAAI,CAAC,OAAO,IAAI,aAAa;KAC3B,QAAQ,IAAI;KACZ;IACF;IAEA,MAAM,OAAO,IAAI,SAAS,CAAC,CAAC,KAAK;IACjC,IAAI,CAAC,MAAM;KACT,QAAQ,IAAI;KACZ;IACF;IAEA,MAAM,YAAY,sBAAsB,GAAG;IAC3C,IAAI,CAAC,WAAW;KACd,QAAQ,IAAI;KACZ;IACF;IAIA,QAAQ;KAAE;KAAM;KAAW,MAFb,IAAI,WAAW,CACZ,CAAC,CAAC,sBACW;IAAE,CAAC;GACnC,CAAC;EACH;EAEA,MAAM,gCAAgC;GACpC,MAAM,MAAM,OAAO,aAAa;GAChC,IAAI,CAAC,OAAO,IAAI,aACd,QAAQ,IAAI;EAEhB;EAEA,MAAM,qBAAqB;GACzB,QAAQ,IAAI;EACd;EAEA,SAAS,iBAAiB,WAAW,cAAc;EACnD,SAAS,iBAAiB,SAAS,cAAc;EACjD,SAAS,iBAAiB,mBAAmB,uBAAuB;EACpE,SAAS,iBAAiB,UAAU,cAAc,IAAI;EAEtD,aAAa;GACX,SAAS,oBAAoB,WAAW,cAAc;GACtD,SAAS,oBAAoB,SAAS,cAAc;GACpD,SAAS,oBAAoB,mBAAmB,uBAAuB;GACvE,SAAS,oBAAoB,UAAU,cAAc,IAAI;EAC3D;CACF,GAAG,CAAC,CAAC;CAEL,IAAI,CAAC,MAAM,OAAO;CAElB,MAAM,gBAAqC;EACzC,UAAU;EACV,KAAK,GAAG,KAAK,KAAK,MAAM,EAAE;EAC1B,MAAM,GAAG,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,EAAE;EAC9C,WAAW;EACX,QAAQ;EACR,GAAG;CACL;CAEA,OAAO,aACL,oBAAC,wBAAwB,UAAzB;EAAkC,OAAO;YACvC,oBAAC,UAAU,KAAX;GACE,GAAI;GACJ,KAAK;GACL,OAAO;GACP,cAAc,MAAM;IAElB,EAAE,eAAe;IACjB,cAAc,CAAC;GACjB;EACD,CAAA;CAC+B,CAAA,GAClC,SAAS,IACX;AACF,CAAC;AAED,8BAA8B,cAAc"}
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":";;;;;;;;AAqBA,MAAMiB,0BAA0BZ,cAAoC,IAAI;AAExE,MAAaa,gCAA0B;CAAA,OACrCX,WAAWU,uBAAuB;AAAC;;;;;;;;;;;;;;;AAqBrC,MAAaE,gCAAgCb,YAG3CiB,IAAAC,iBAAA;CAAA,MAAAC,IAAAxB,EAAA,EAAA;CAAA,IAAAyB;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAH,EAAA,OAAAF,IAAA;EAAC,CAAA,CAAAG,aAAAE,UAAAD,SAAAJ;EAAgCE,EAAA,KAAAF;EAAAE,EAAA,KAAAC;EAAAD,EAAA,KAAAE;EAAAF,EAAA,KAAAG;CAAA,OAAA;EAAAF,cAAAD,EAAA;EAAAE,QAAAF,EAAA;EAAAG,QAAAH,EAAA;CAAA;CACjC,MAAA,CAAAI,MAAAC,WAAwBrB,SAA+B,IAAI;CAAE,IAAAsB;CAAA,IAAAC;CAAA,IAAAP,EAAA,OAAAQ,OAAAC,IAAA,2BAAA,GAAA;EAEnDH,WAAA;GACR,MAAAI,uBAAuB;IACrBC,4BAAsB;KACpB,MAAAC,MAAYC,OAAMC,aAAc;KAChC,IAAI,CAACF,OAAOA,IAAGG,aAAY;MACzBV,QAAQ,IAAI;MAAC;KAAA;KAIf,MAAAjB,OAAawB,IAAGI,SAAU,CAAC,CAAAC,KAAM;KACjC,IAAI,CAAC7B,MAAI;MACPiB,QAAQ,IAAI;MAAC;KAAA;KAIf,MAAAhB,YAAkBH,sBAAsB0B,GAAG;KAC3C,IAAI,CAACvB,WAAS;MACZgB,QAAQ,IAAI;MAAC;KAAA;KAMfA,QAAQ;MAAAjB;MAAAC;MAAAC,MAFMsB,IAAGO,WAAY,CAChBD,CAAK,CAAAE,sBACV9B;KAAwB,CAAC;IAAC,CACnC;GAAC;GAGJ,MAAA+B,gCAAgC;IAC9B,MAAAC,QAAYT,OAAMC,aAAc;IAChC,IAAI,CAACF,SAAOA,MAAGG,aACbV,QAAQ,IAAI;GACb;GAGH,MAAAkB,qBAAqB;IACnBlB,QAAQ,IAAI;GAAC;GAGfmB,SAAQC,iBAAkB,WAAWf,cAAc;GACnDc,SAAQC,iBAAkB,SAASf,cAAc;GACjDc,SAAQC,iBAAkB,mBAAmBJ,uBAAuB;GACpEG,SAAQC,iBAAkB,UAAUF,cAAc,IAAI;GAAC,aAEhD;IACLC,SAAQE,oBAAqB,WAAWhB,cAAc;IACtDc,SAAQE,oBAAqB,SAAShB,cAAc;IACpDc,SAAQE,oBAAqB,mBAAmBL,uBAAuB;IACvEG,SAAQE,oBAAqB,UAAUH,cAAc,IAAI;GAAC;EAC3D;EACAhB,KAAA,CAAA;EAAEP,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAA;EAAAD,KAAAN,EAAA;EAAAO,KAAAP,EAAA;CAAA;CAjDLjB,UAAUuB,IAiDPC,EAAE;CAEL,IAAI,CAACH,MAAI,OAAS;CAIX,MAAAuB,KAAA,GAAGvB,KAAId,KAAKsC,MAAO,EAAC;CACnB,MAAAC,KAAA,GAAGzB,KAAId,KAAKwC,OAAQ1B,KAAId,KAAKyC,QAAS,EAAC;CAAI,IAAAC;CAAA,IAAAhC,EAAA,OAAAG,SAAAH,EAAA,OAAA2B,MAAA3B,EAAA,OAAA6B,IAAA;EAHRG,KAAA;GAAAC,UAC/B;GAAOL,KACZD;GAAwBG,MACvBD;GAA2CK,WACtC;GAAwBC,QAC3B;GAAE,GACPhC;EACL;EAACH,EAAA,KAAAG;EAAAH,EAAA,KAAA2B;EAAA3B,EAAA,KAAA6B;EAAA7B,EAAA,KAAAgC;CAAA,OAAAA,KAAAhC,EAAA;CAPD,MAAAoC,gBAA2CJ;CAOzC,IAAAK;CAAA,IAAArC,EAAA,QAAAC,aAAA;EAQiBoC,MAAAC,MAAA;GAEXA,EAACC,eAAgB;GACjBtC,cAAcqC,CAAC;EAAC;EACjBtC,EAAA,MAAAC;EAAAD,EAAA,MAAAqC;CAAA,OAAAA,KAAArC,EAAA;CAAA,IAAAwC;CAAA,IAAAxC,EAAA,QAAAD,gBAAAC,EAAA,QAAAoC,iBAAApC,EAAA,QAAAE,SAAAF,EAAA,QAAAqC,IAAA;EARHG,KAAA,oBAAA,UAAA,KAAA;GAAA,GACMtC;GACCH,KAAAA;GACEqC,OAAAA;GACM,aAAAC;EAIZ,CAAA;EACDrC,EAAA,MAAAD;EAAAC,EAAA,MAAAoC;EAAApC,EAAA,MAAAE;EAAAF,EAAA,MAAAqC;EAAArC,EAAA,MAAAwC;CAAA,OAAAA,KAAAxC,EAAA;CAAA,IAAAyC;CAAA,IAAAzC,EAAA,QAAAI,QAAAJ,EAAA,QAAAwC,IAAA;EAXCC,KAAAxD,aACL,oBAAA,wBAAA,UAAA;GAAyCmB,OAAAA;aACvCoC;EAUF,CAAA,GACAhB,SAAQkB,IACV;EAAC1C,EAAA,MAAAI;EAAAJ,EAAA,MAAAwC;EAAAxC,EAAA,MAAAyC;CAAA,OAAAA,KAAAzC,EAAA;CAAA,OAdMyC;AAcN,CACF;AAED/C,8BAA8BiD,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectionToolbar.js","names":[],"sources":["../../src/primitives/selectionToolbar.ts"],"sourcesContent":["export {\n SelectionToolbarPrimitiveRoot as Root,\n type SelectionToolbarPrimitiveRoot,\n} from \"./selectionToolbar/SelectionToolbarRoot\";\nexport {\n SelectionToolbarPrimitiveQuote as Quote,\n type SelectionToolbarPrimitiveQuote,\n} from \"./selectionToolbar/SelectionToolbarQuote\";\n"],"mappings":""}
1
+ {"version":3,"file":"selectionToolbar.js","names":["SelectionToolbarPrimitiveRoot","Root","SelectionToolbarPrimitiveQuote","Quote"],"sources":["../../src/primitives/selectionToolbar.ts"],"sourcesContent":["export {\n SelectionToolbarPrimitiveRoot as Root,\n type SelectionToolbarPrimitiveRoot,\n} from \"./selectionToolbar/SelectionToolbarRoot\";\nexport {\n SelectionToolbarPrimitiveQuote as Quote,\n type SelectionToolbarPrimitiveQuote,\n} from \"./selectionToolbar/SelectionToolbarQuote\";\n"],"mappings":""}
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import { Primitive } from "../../utils/Primitive.js";
3
3
  import { useAuiState } from "@assistant-ui/store";
4
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
4
5
  import { forwardRef } from "@assistant-ui/tap/react-shim";
5
6
  import { jsx } from "react/jsx-runtime";
6
7
  //#region src/primitives/suggestion/SuggestionDescription.tsx
@@ -13,14 +14,27 @@ import { jsx } from "react/jsx-runtime";
13
14
  * ```
14
15
  */
15
16
  const SuggestionPrimitiveDescription = forwardRef((props, ref) => {
16
- const label = useAuiState((s) => s.suggestion.label);
17
- return /* @__PURE__ */ jsx(Primitive.span, {
18
- ...props,
19
- ref,
20
- children: props.children ?? label
21
- });
17
+ const $ = c(4);
18
+ const label = useAuiState(_temp);
19
+ const t0 = props.children ?? label;
20
+ let t1;
21
+ if ($[0] !== props || $[1] !== ref || $[2] !== t0) {
22
+ t1 = /* @__PURE__ */ jsx(Primitive.span, {
23
+ ...props,
24
+ ref,
25
+ children: t0
26
+ });
27
+ $[0] = props;
28
+ $[1] = ref;
29
+ $[2] = t0;
30
+ $[3] = t1;
31
+ } else t1 = $[3];
32
+ return t1;
22
33
  });
23
34
  SuggestionPrimitiveDescription.displayName = "SuggestionPrimitive.Description";
35
+ function _temp(s) {
36
+ return s.suggestion.label;
37
+ }
24
38
  //#endregion
25
39
  export { SuggestionPrimitiveDescription };
26
40
 
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionDescription.js","names":[],"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,MAAa,iCAAiC,YAG3C,OAAO,QAAQ;CAChB,MAAM,QAAQ,aAAa,MAAM,EAAE,WAAW,KAAK;CAEnD,OACE,oBAAC,UAAU,MAAX;EAAgB,GAAI;EAAY;YAC7B,MAAM,YAAY;CACL,CAAA;AAEpB,CAAC;AAED,+BAA+B,cAAc"}
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,6 +1,7 @@
1
1
  "use client";
2
2
  import { Primitive } from "../../utils/Primitive.js";
3
3
  import { useAuiState } from "@assistant-ui/store";
4
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
4
5
  import { forwardRef } from "@assistant-ui/tap/react-shim";
5
6
  import { jsx } from "react/jsx-runtime";
6
7
  //#region src/primitives/suggestion/SuggestionTitle.tsx
@@ -13,14 +14,27 @@ import { jsx } from "react/jsx-runtime";
13
14
  * ```
14
15
  */
15
16
  const SuggestionPrimitiveTitle = forwardRef((props, ref) => {
16
- const title = useAuiState((s) => s.suggestion.title);
17
- return /* @__PURE__ */ jsx(Primitive.span, {
18
- ...props,
19
- ref,
20
- children: props.children ?? title
21
- });
17
+ const $ = c(4);
18
+ const title = useAuiState(_temp);
19
+ const t0 = props.children ?? title;
20
+ let t1;
21
+ if ($[0] !== props || $[1] !== ref || $[2] !== t0) {
22
+ t1 = /* @__PURE__ */ jsx(Primitive.span, {
23
+ ...props,
24
+ ref,
25
+ children: t0
26
+ });
27
+ $[0] = props;
28
+ $[1] = ref;
29
+ $[2] = t0;
30
+ $[3] = t1;
31
+ } else t1 = $[3];
32
+ return t1;
22
33
  });
23
34
  SuggestionPrimitiveTitle.displayName = "SuggestionPrimitive.Title";
35
+ function _temp(s) {
36
+ return s.suggestion.title;
37
+ }
24
38
  //#endregion
25
39
  export { SuggestionPrimitiveTitle };
26
40
 
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionTitle.js","names":[],"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,MAAa,2BAA2B,YAGrC,OAAO,QAAQ;CAChB,MAAM,QAAQ,aAAa,MAAM,EAAE,WAAW,KAAK;CAEnD,OACE,oBAAC,UAAU,MAAX;EAAgB,GAAI;EAAY;YAC7B,MAAM,YAAY;CACL,CAAA;AAEpB,CAAC;AAED,yBAAyB,cAAc"}
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,35 +1,42 @@
1
1
  "use client";
2
2
  import { createActionButton } from "../../utils/createActionButton.js";
3
3
  import { useAui, useAuiState } from "@assistant-ui/store";
4
- import { useCallback } from "@assistant-ui/tap/react-shim";
4
+ import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
5
5
  //#region src/primitives/suggestion/SuggestionTrigger.ts
6
- const useSuggestionTrigger = ({ send, clearComposer = true }) => {
6
+ const useSuggestionTrigger = (t0) => {
7
+ const $ = c(5);
8
+ const { send, clearComposer: t1 } = t0;
9
+ const clearComposer = t1 === void 0 ? true : t1;
7
10
  const aui = useAui();
8
- const disabled = useAuiState((s) => s.thread.isDisabled);
9
- const prompt = useAuiState((s) => s.suggestion.prompt);
11
+ const disabled = useAuiState(_temp);
12
+ const prompt = useAuiState(_temp2);
10
13
  const resolvedSend = send ?? false;
11
- const callback = useCallback(() => {
12
- const isRunning = aui.thread().getState().isRunning;
13
- if (resolvedSend && !isRunning) {
14
- aui.thread().append({
15
- content: [{
16
- type: "text",
17
- text: prompt
18
- }],
19
- runConfig: aui.composer().getState().runConfig
20
- });
21
- if (clearComposer) aui.composer().setText("");
22
- } else if (clearComposer) aui.composer().setText(prompt);
23
- else {
24
- const currentText = aui.composer().getState().text;
25
- aui.composer().setText(currentText.trim() ? `${currentText} ${prompt}` : prompt);
26
- }
27
- }, [
28
- aui,
29
- resolvedSend,
30
- clearComposer,
31
- prompt
32
- ]);
14
+ let t2;
15
+ if ($[0] !== aui || $[1] !== clearComposer || $[2] !== prompt || $[3] !== resolvedSend) {
16
+ t2 = () => {
17
+ const isRunning = aui.thread().getState().isRunning;
18
+ if (resolvedSend && !isRunning) {
19
+ aui.thread().append({
20
+ content: [{
21
+ type: "text",
22
+ text: prompt
23
+ }],
24
+ runConfig: aui.composer().getState().runConfig
25
+ });
26
+ if (clearComposer) aui.composer().setText("");
27
+ } else if (clearComposer) aui.composer().setText(prompt);
28
+ else {
29
+ const currentText = aui.composer().getState().text;
30
+ aui.composer().setText(currentText.trim() ? `${currentText} ${prompt}` : prompt);
31
+ }
32
+ };
33
+ $[0] = aui;
34
+ $[1] = clearComposer;
35
+ $[2] = prompt;
36
+ $[3] = resolvedSend;
37
+ $[4] = t2;
38
+ } else t2 = $[4];
39
+ const callback = t2;
33
40
  if (disabled) return null;
34
41
  return callback;
35
42
  };
@@ -44,6 +51,12 @@ const useSuggestionTrigger = ({ send, clearComposer = true }) => {
44
51
  * ```
45
52
  */
46
53
  const SuggestionPrimitiveTrigger = createActionButton("SuggestionPrimitive.Trigger", useSuggestionTrigger, ["send", "clearComposer"]);
54
+ function _temp(s) {
55
+ return s.thread.isDisabled;
56
+ }
57
+ function _temp2(s_0) {
58
+ return s_0.suggestion.prompt;
59
+ }
47
60
  //#endregion
48
61
  export { SuggestionPrimitiveTrigger };
49
62
 
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionTrigger.js","names":[],"sources":["../../../src/primitives/suggestion/SuggestionTrigger.ts"],"sourcesContent":["\"use client\";\n\nimport {\n type ActionButtonElement,\n type ActionButtonProps,\n createActionButton,\n} from \"../../utils/createActionButton\";\nimport { useCallback } from \"react\";\nimport { useAuiState, useAui } from \"@assistant-ui/store\";\n\nconst useSuggestionTrigger = ({\n send,\n clearComposer = true,\n}: {\n /**\n * When true, automatically sends the message.\n * When false, replaces or appends the composer text with the suggestion - depending on the value of `clearComposer`.\n */\n send?: boolean | undefined;\n\n /**\n * Whether to clear the composer after sending.\n * When send is set to false, determines if composer text is replaced with suggestion (true, default),\n * or if it's appended to the composer text (false).\n *\n * @default true\n */\n clearComposer?: boolean | undefined;\n}) => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.thread.isDisabled);\n const prompt = useAuiState((s) => s.suggestion.prompt);\n\n const resolvedSend = send ?? false;\n\n const callback = useCallback(() => {\n const isRunning = aui.thread().getState().isRunning;\n\n if (resolvedSend && !isRunning) {\n aui.thread().append({\n content: [{ type: \"text\", text: prompt }],\n runConfig: aui.composer().getState().runConfig,\n });\n if (clearComposer) {\n aui.composer().setText(\"\");\n }\n } else {\n if (clearComposer) {\n aui.composer().setText(prompt);\n } else {\n const currentText = aui.composer().getState().text;\n aui\n .composer()\n .setText(currentText.trim() ? `${currentText} ${prompt}` : prompt);\n }\n }\n }, [aui, resolvedSend, clearComposer, prompt]);\n\n if (disabled) return null;\n return callback;\n};\n\nexport namespace SuggestionPrimitiveTrigger {\n export type Element = ActionButtonElement;\n export type Props = ActionButtonProps<typeof useSuggestionTrigger>;\n}\n\n/**\n * A button that triggers the suggestion action (send or insert into composer).\n *\n * @example\n * ```tsx\n * <SuggestionPrimitive.Trigger send>\n * Click me\n * </SuggestionPrimitive.Trigger>\n * ```\n */\nexport const SuggestionPrimitiveTrigger = createActionButton(\n \"SuggestionPrimitive.Trigger\",\n useSuggestionTrigger,\n [\"send\", \"clearComposer\"],\n);\n"],"mappings":";;;;;AAUA,MAAM,wBAAwB,EAC5B,MACA,gBAAgB,WAgBZ;CACJ,MAAM,MAAM,OAAO;CACnB,MAAM,WAAW,aAAa,MAAM,EAAE,OAAO,UAAU;CACvD,MAAM,SAAS,aAAa,MAAM,EAAE,WAAW,MAAM;CAErD,MAAM,eAAe,QAAQ;CAE7B,MAAM,WAAW,kBAAkB;EACjC,MAAM,YAAY,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;EAE1C,IAAI,gBAAgB,CAAC,WAAW;GAC9B,IAAI,OAAO,CAAC,CAAC,OAAO;IAClB,SAAS,CAAC;KAAE,MAAM;KAAQ,MAAM;IAAO,CAAC;IACxC,WAAW,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;GACvC,CAAC;GACD,IAAI,eACF,IAAI,SAAS,CAAC,CAAC,QAAQ,EAAE;EAE7B,OACE,IAAI,eACF,IAAI,SAAS,CAAC,CAAC,QAAQ,MAAM;OACxB;GACL,MAAM,cAAc,IAAI,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;GAC9C,IACG,SAAS,CAAC,CACV,QAAQ,YAAY,KAAK,IAAI,GAAG,YAAY,GAAG,WAAW,MAAM;EACrE;CAEJ,GAAG;EAAC;EAAK;EAAc;EAAe;CAAM,CAAC;CAE7C,IAAI,UAAU,OAAO;CACrB,OAAO;AACT;;;;;;;;;;;AAiBA,MAAa,6BAA6B,mBACxC,+BACA,sBACA,CAAC,QAAQ,eAAe,CAC1B"}
1
+ {"version":3,"file":"SuggestionTrigger.js","names":["c","_c","ActionButtonElement","ActionButtonProps","createActionButton","useCallback","useAuiState","useAui","useSuggestionTrigger","t0","$","send","clearComposer","t1","undefined","aui","disabled","_temp","prompt","_temp2","resolvedSend","t2","isRunning","thread","getState","append","content","type","text","runConfig","composer","setText","currentText","trim","callback","SuggestionPrimitiveTrigger","Element","Props","s","isDisabled","s_0","suggestion"],"sources":["../../../src/primitives/suggestion/SuggestionTrigger.ts"],"sourcesContent":["\"use client\";\n\nimport {\n type ActionButtonElement,\n type ActionButtonProps,\n createActionButton,\n} from \"../../utils/createActionButton\";\nimport { useCallback } from \"react\";\nimport { useAuiState, useAui } from \"@assistant-ui/store\";\n\nconst useSuggestionTrigger = ({\n send,\n clearComposer = true,\n}: {\n /**\n * When true, automatically sends the message.\n * When false, replaces or appends the composer text with the suggestion - depending on the value of `clearComposer`.\n */\n send?: boolean | undefined;\n\n /**\n * Whether to clear the composer after sending.\n * When send is set to false, determines if composer text is replaced with suggestion (true, default),\n * or if it's appended to the composer text (false).\n *\n * @default true\n */\n clearComposer?: boolean | undefined;\n}) => {\n const aui = useAui();\n const disabled = useAuiState((s) => s.thread.isDisabled);\n const prompt = useAuiState((s) => s.suggestion.prompt);\n\n const resolvedSend = send ?? false;\n\n const callback = useCallback(() => {\n const isRunning = aui.thread().getState().isRunning;\n\n if (resolvedSend && !isRunning) {\n aui.thread().append({\n content: [{ type: \"text\", text: prompt }],\n runConfig: aui.composer().getState().runConfig,\n });\n if (clearComposer) {\n aui.composer().setText(\"\");\n }\n } else {\n if (clearComposer) {\n aui.composer().setText(prompt);\n } else {\n const currentText = aui.composer().getState().text;\n aui\n .composer()\n .setText(currentText.trim() ? `${currentText} ${prompt}` : prompt);\n }\n }\n }, [aui, resolvedSend, clearComposer, prompt]);\n\n if (disabled) return null;\n return callback;\n};\n\nexport namespace SuggestionPrimitiveTrigger {\n export type Element = ActionButtonElement;\n export type Props = ActionButtonProps<typeof useSuggestionTrigger>;\n}\n\n/**\n * A button that triggers the suggestion action (send or insert into composer).\n *\n * @example\n * ```tsx\n * <SuggestionPrimitive.Trigger send>\n * Click me\n * </SuggestionPrimitive.Trigger>\n * ```\n */\nexport const SuggestionPrimitiveTrigger = createActionButton(\n \"SuggestionPrimitive.Trigger\",\n useSuggestionTrigger,\n [\"send\", \"clearComposer\"],\n);\n"],"mappings":";;;;;AAUA,MAAMQ,wBAAuBC,OAAA;CAAA,MAAAC,IAAAT,EAAA,CAAA;CAAC,MAAA,EAAAU,MAAAC,eAAAC,OAAAJ;CAE5B,MAAAG,gBAAAC,OAAAC,KAAAA,IAAA,OAAAD;CAiBA,MAAAE,MAAYR,OAAO;CACnB,MAAAS,WAAiBV,YAAYW,KAA0B;CACvD,MAAAC,SAAeZ,YAAYa,MAA0B;CAErD,MAAAC,eAAqBT,QAAA;CAAc,IAAAU;CAAA,IAAAX,EAAA,OAAAK,OAAAL,EAAA,OAAAE,iBAAAF,EAAA,OAAAQ,UAAAR,EAAA,OAAAU,cAAA;EAENC,WAAA;GAC3B,MAAAC,YAAkBP,IAAGQ,OAAQ,CAAC,CAAAC,SAAU,CAAC,CAAAF;GAEzC,IAAIF,gBAAA,CAAiBE,WAAS;IAC5BP,IAAGQ,OAAQ,CAAC,CAAAE,OAAQ;KAAAC,SACT,CAAC;MAAAC,MAAQ;MAAMC,MAAQV;KAAO,CAAC;KAACW,WAC9Bd,IAAGe,SAAU,CAAC,CAAAN,SAAU,CAAC,CAAAK;IACtC,CAAC;IACD,IAAIjB,eACFG,IAAGe,SAAU,CAAC,CAAAC,QAAS,EAAE;GAC1B,OAED,IAAInB,eACFG,IAAGe,SAAU,CAAC,CAAAC,QAASb,MAAM;QAAC;IAE9B,MAAAc,cAAoBjB,IAAGe,SAAU,CAAC,CAAAN,SAAU,CAAC,CAAAI;IAC7Cb,IAAGe,SACS,CAAC,CAAAC,QACFC,YAAWC,KAA4C,IAAvD,GAAwBD,YAAW,GAAId,WAAvCA,MAAwD;GAAC;EAEvE;EACFR,EAAA,KAAAK;EAAAL,EAAA,KAAAE;EAAAF,EAAA,KAAAQ;EAAAR,EAAA,KAAAU;EAAAV,EAAA,KAAAW;CAAA,OAAAA,KAAAX,EAAA;CArBD,MAAAwB,WAAiBb;CAuBjB,IAAIL,UAAQ,OAAS;CAAK,OACnBkB;AAAQ;;;;;;;;;;;AAkBjB,MAAaC,6BAA6B/B,mBACxC,+BACAI,sBACA,CAAC,QAAQ,eAAe,CAC1B;AAvE6B,SAAAS,MAAAqB,GAAA;CAAA,OAoBSA,EAACf,OAAOgB;AAAW;AApB5B,SAAApB,OAAAqB,KAAA;CAAA,OAqBOF,IAACG,WAAWvB;AAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"suggestion.js","names":[],"sources":["../../src/primitives/suggestion.ts"],"sourcesContent":["export { SuggestionPrimitiveTitle as Title } from \"./suggestion/SuggestionTitle\";\nexport { SuggestionPrimitiveDescription as Description } from \"./suggestion/SuggestionDescription\";\nexport { SuggestionPrimitiveTrigger as Trigger } from \"./suggestion/SuggestionTrigger\";\n"],"mappings":""}
1
+ {"version":3,"file":"suggestion.js","names":["SuggestionPrimitiveTitle","Title","SuggestionPrimitiveDescription","Description","SuggestionPrimitiveTrigger","Trigger"],"sources":["../../src/primitives/suggestion.ts"],"sourcesContent":["export { SuggestionPrimitiveTitle as Title } from \"./suggestion/SuggestionTitle\";\nexport { SuggestionPrimitiveDescription as Description } from \"./suggestion/SuggestionDescription\";\nexport { SuggestionPrimitiveTrigger as Trigger } from \"./suggestion/SuggestionTrigger\";\n"],"mappings":""}
@@ -4,10 +4,14 @@ import { useAuiState } from "@assistant-ui/store";
4
4
  /**
5
5
  * @deprecated Use `<AuiIf condition={(s) => s.thread.isEmpty} />` instead.
6
6
  */
7
- const ThreadPrimitiveEmpty = ({ children }) => {
8
- return useAuiState((s) => s.thread.isEmpty) ? children : null;
7
+ const ThreadPrimitiveEmpty = (t0) => {
8
+ const { children } = t0;
9
+ return useAuiState(_temp) ? children : null;
9
10
  };
10
11
  ThreadPrimitiveEmpty.displayName = "ThreadPrimitive.Empty";
12
+ function _temp(s) {
13
+ return s.thread.isEmpty;
14
+ }
11
15
  //#endregion
12
16
  export { ThreadPrimitiveEmpty };
13
17
 
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadEmpty.js","names":[],"sources":["../../../src/primitives/thread/ThreadEmpty.ts"],"sourcesContent":["\"use client\";\n\nimport type { FC, PropsWithChildren } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace ThreadPrimitiveEmpty {\n export type Props = PropsWithChildren;\n}\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.thread.isEmpty} />` instead.\n */\nexport const ThreadPrimitiveEmpty: FC<ThreadPrimitiveEmpty.Props> = ({\n children,\n}) => {\n const empty = useAuiState((s) => s.thread.isEmpty);\n return empty ? children : null;\n};\n\nThreadPrimitiveEmpty.displayName = \"ThreadPrimitive.Empty\";\n"],"mappings":";;;;;;AAYA,MAAa,wBAAwD,EACnE,eACI;CAEJ,OADc,aAAa,MAAM,EAAE,OAAO,OAC/B,IAAI,WAAW;AAC5B;AAEA,qBAAqB,cAAc"}
1
+ {"version":3,"file":"ThreadEmpty.js","names":["FC","PropsWithChildren","useAuiState","ThreadPrimitiveEmpty","Props","t0","children","empty","_temp","displayName","s","thread","isEmpty"],"sources":["../../../src/primitives/thread/ThreadEmpty.ts"],"sourcesContent":["\"use client\";\n\nimport type { FC, PropsWithChildren } from \"react\";\nimport { useAuiState } from \"@assistant-ui/store\";\n\nexport namespace ThreadPrimitiveEmpty {\n export type Props = PropsWithChildren;\n}\n\n/**\n * @deprecated Use `<AuiIf condition={(s) => s.thread.isEmpty} />` instead.\n */\nexport const ThreadPrimitiveEmpty: FC<ThreadPrimitiveEmpty.Props> = ({\n children,\n}) => {\n const empty = useAuiState((s) => s.thread.isEmpty);\n return empty ? children : null;\n};\n\nThreadPrimitiveEmpty.displayName = \"ThreadPrimitive.Empty\";\n"],"mappings":";;;;;;AAYA,MAAaG,wBAAuDE,OAAA;CAAC,MAAA,EAAAC,aAAAD;CAGhB,OAArCH,YAAYM,KACnBD,IAAAD,WAAA;AAAuB;AAGhCH,qBAAqBM,cAAc;AAPiC,SAAAD,MAAAE,GAAA;CAAA,OAGjCA,EAACC,OAAOC;AAAQ"}