@mcp-b/react-components 0.48.0 → 0.49.0

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 (299) hide show
  1. package/dist/AgentChatQueue-C_Jaw3Ia.d.ts +48 -0
  2. package/dist/AgentToolRunsContext-GMe_hSnD.d.ts +35 -0
  3. package/dist/Avatar-o2NO1fCG.d.ts +124 -0
  4. package/dist/{Button-CZt3yywF.d.ts → Button-DjONW5UW.d.ts} +1 -1
  5. package/dist/{CodeBlock-C380GD5t.d.ts → CodeBlock--r6GS8YV.d.ts} +8 -2
  6. package/dist/{CodeBlock-BSJl682D.js → CodeBlock-g8sADidM.js} +8 -8
  7. package/dist/{FileTree-DvE0hNZu.js → FileTree-H8mMg4rV.js} +21 -30
  8. package/dist/{IconButton-BAUFhUk8.d.ts → IconButton-ByiyjkYE.d.ts} +2 -2
  9. package/dist/{Message-D_vCVEGB.d.ts → Message-DyaTBiV7.d.ts} +17 -4
  10. package/dist/MessageScrollerVirtual-D4afYwVB.d.ts +84 -0
  11. package/dist/{PromptInput-DtJHyp0S.d.ts → PromptInput-C4Mofitz.d.ts} +44 -31
  12. package/dist/PromptInputApproval-D2hpn54U.d.ts +44 -0
  13. package/dist/Separator-CzhtLYE1.d.ts +41 -0
  14. package/dist/Toolbar-CGY004u0.d.ts +155 -0
  15. package/dist/{Workspace-LIoU30n7.d.ts → Workspace-HzGrWDX3.d.ts} +1 -1
  16. package/dist/{WorkspaceFile-Dq-GC0_T.d.ts → WorkspaceFile-Bouauobc.d.ts} +1 -1
  17. package/dist/{WorkspaceFileView-C_WnYm-a.js → WorkspaceFileView-DYPtRVpM.js} +5 -4
  18. package/dist/{WorkspaceLink-B1d2GIGl.js → WorkspaceLink-BYZG-V_I.js} +8 -91
  19. package/dist/{WorkspaceMessageResponse-BqOezptB.js → WorkspaceMessageResponse-CUJk9_P5.js} +2 -2
  20. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  21. package/dist/components/agents-sdk/AgentChat.d.ts +198 -2
  22. package/dist/components/agents-sdk/AgentChat.js +527 -672
  23. package/dist/components/agents-sdk/AgentChatQueue.d.ts +2 -0
  24. package/dist/components/agents-sdk/AgentChatQueue.js +206 -0
  25. package/dist/components/agents-sdk/AgentEvent.js +2 -2
  26. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +2 -2
  27. package/dist/components/agents-sdk/AgentToolRunsContext.js +1 -36
  28. package/dist/components/agents-sdk/BrowserLiveScreen.js +22 -14
  29. package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
  30. package/dist/components/agents-sdk/BrowserReplay.d.ts +1 -1
  31. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  32. package/dist/components/agents-sdk/BrowserRunPanel.d.ts +3 -0
  33. package/dist/components/agents-sdk/BrowserRunPanel.js +32 -31
  34. package/dist/components/agents-sdk/EmployeeChrome.d.ts +212 -0
  35. package/dist/components/agents-sdk/EmployeeChrome.js +555 -0
  36. package/dist/components/agents-sdk/ManagerOffice.d.ts +79 -40
  37. package/dist/components/agents-sdk/ManagerOffice.js +291 -281
  38. package/dist/components/agents-sdk/McpConnectionRequest.d.ts +4 -4
  39. package/dist/components/agents-sdk/McpConnectionRequest.js +4 -3
  40. package/dist/components/agents-sdk/McpConnectorForm.d.ts +38 -1
  41. package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
  42. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +93 -1
  43. package/dist/components/agents-sdk/McpPluginCatalog.js +5 -4
  44. package/dist/components/agents-sdk/McpServerIcon.d.ts +17 -0
  45. package/dist/components/agents-sdk/McpServerIcon.js +25 -0
  46. package/dist/components/agents-sdk/McpServerPicker.d.ts +4 -3
  47. package/dist/components/agents-sdk/McpServerPicker.js +4 -3
  48. package/dist/components/agents-sdk/ModelSelector.d.ts +4 -4
  49. package/dist/components/agents-sdk/ModelSelector.js +4 -4
  50. package/dist/components/agents-sdk/PromptInputApproval.d.ts +1 -43
  51. package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
  52. package/dist/components/agents-sdk/PromptInputCommands.d.ts +1 -1
  53. package/dist/components/agents-sdk/PromptInputCommands.js +2 -3
  54. package/dist/components/agents-sdk/SessionCompaction.d.ts +88 -1
  55. package/dist/components/agents-sdk/SessionCompaction.js +2 -2
  56. package/dist/components/agents-sdk/SubagentRunDetails.d.ts +30 -1
  57. package/dist/components/agents-sdk/SubagentRunDetails.js +57 -1
  58. package/dist/components/agents-sdk/SubagentRunIndicator.d.ts +9 -9
  59. package/dist/components/agents-sdk/SubagentRunIndicator.js +19 -24
  60. package/dist/components/agents-sdk/SubagentRunList.d.ts +6 -3
  61. package/dist/components/agents-sdk/SubagentRunList.js +4 -2
  62. package/dist/components/agents-sdk/SubagentRunPanel.d.ts +60 -0
  63. package/dist/components/agents-sdk/SubagentRunPanel.js +255 -0
  64. package/dist/components/agents-sdk/SubagentRunSelector.d.ts +8 -4
  65. package/dist/components/agents-sdk/SubagentRunSelector.js +5 -3
  66. package/dist/components/agents-sdk/ThinkChat.d.ts +102 -2
  67. package/dist/components/agents-sdk/ThinkChat.js +233 -2
  68. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +76 -1
  69. package/dist/components/agents-sdk/ThinkChatActivity.js +18 -10
  70. package/dist/components/agents-sdk/ThinkChatContext.d.ts +27 -1
  71. package/dist/components/agents-sdk/ThinkChatContext.js +1 -1
  72. package/dist/components/agents-sdk/ThinkChatToolPanels.js +24 -19
  73. package/dist/components/agents-sdk/ThinkExecutionDetail.js +2 -2
  74. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
  75. package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
  76. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +85 -28
  77. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +159 -102
  78. package/dist/components/agents-sdk/ThinkFullApp.d.ts +40 -158
  79. package/dist/components/agents-sdk/ThinkFullApp.js +71 -290
  80. package/dist/components/agents-sdk/ThinkRecoveryNotice.d.ts +18 -1
  81. package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
  82. package/dist/components/agents-sdk/ThinkRoutineActions.d.ts +51 -0
  83. package/dist/components/agents-sdk/ThinkRoutineActions.js +201 -0
  84. package/dist/components/agents-sdk/ThinkRoutineBrowser.d.ts +4 -1
  85. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +17 -15
  86. package/dist/components/agents-sdk/ThinkRoutineDetail.js +11 -11
  87. package/dist/components/agents-sdk/ThinkRoutineForm.d.ts +2 -1
  88. package/dist/components/agents-sdk/ThinkRoutineForm.js +14 -14
  89. package/dist/components/agents-sdk/ThinkRoutineRuns.js +7 -7
  90. package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +90 -1
  91. package/dist/components/agents-sdk/ThinkThreadPicker.js +3 -3
  92. package/dist/components/agents-sdk/Workspace.d.ts +1 -1
  93. package/dist/components/agents-sdk/Workspace.js +7 -13
  94. package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
  95. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  96. package/dist/components/agents-sdk/WorkspaceConcept.d.ts +1 -1
  97. package/dist/components/agents-sdk/WorkspaceCorrespondence.d.ts +10 -1
  98. package/dist/components/agents-sdk/WorkspaceCorrespondence.js +10 -7
  99. package/dist/components/agents-sdk/WorkspaceExecution.d.ts +5 -14
  100. package/dist/components/agents-sdk/WorkspaceExecution.js +24 -38
  101. package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +5 -2
  102. package/dist/components/agents-sdk/WorkspaceExplorer.js +3 -2
  103. package/dist/components/agents-sdk/WorkspaceFile.d.ts +1 -1
  104. package/dist/components/agents-sdk/WorkspaceFileView.d.ts +1 -1
  105. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  106. package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
  107. package/dist/components/agents-sdk/WorkspaceLink.js +1 -1
  108. package/dist/components/agents-sdk/WorkspaceLive.d.ts +60 -1
  109. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +47 -1
  110. package/dist/components/agents-sdk/WorkspaceMessageResponse.js +1 -1
  111. package/dist/components/agents-sdk/WorkspaceMountManager.d.ts +3 -2
  112. package/dist/components/agents-sdk/WorkspaceMountManager.js +6 -9
  113. package/dist/components/agents-sdk/WorkspaceNavigationRestoration.d.ts +38 -0
  114. package/dist/components/agents-sdk/WorkspaceNavigationRestoration.js +86 -0
  115. package/dist/components/agents-sdk/WorkspaceProject.d.ts +5 -14
  116. package/dist/components/agents-sdk/WorkspaceProject.js +21 -35
  117. package/dist/components/agents-sdk/WorkspaceUserScript.d.ts +1 -1
  118. package/dist/components/agents-sdk/WorkspaceUserScript.js +8 -5
  119. package/dist/components/ai-sdk/Activity.d.ts +1 -1
  120. package/dist/components/ai-sdk/Activity.js +1 -1
  121. package/dist/components/ai-sdk/AgentAttention.d.ts +2 -2
  122. package/dist/components/ai-sdk/AgentChatStartScreen.d.ts +89 -2
  123. package/dist/components/ai-sdk/AgentChatStartScreen.js +64 -43
  124. package/dist/components/ai-sdk/AgentMessageParts.d.ts +45 -1
  125. package/dist/components/ai-sdk/Approval.d.ts +1 -1
  126. package/dist/components/ai-sdk/Approval.js +2 -2
  127. package/dist/components/ai-sdk/Artifact.d.ts +2 -2
  128. package/dist/components/ai-sdk/Artifact.js +1 -1
  129. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  130. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  131. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  132. package/dist/components/ai-sdk/CodeBlock.d.ts +1 -1
  133. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  134. package/dist/components/ai-sdk/ComposerLink.js +2 -3
  135. package/dist/components/ai-sdk/ConnectedAppCards.d.ts +9 -1
  136. package/dist/components/ai-sdk/ConnectedAppCards.js +28 -21
  137. package/dist/components/ai-sdk/Context.d.ts +7 -3
  138. package/dist/components/ai-sdk/Context.js +7 -17
  139. package/dist/components/ai-sdk/Conversation.d.ts +2 -2
  140. package/dist/components/ai-sdk/Conversation.js +1 -1
  141. package/dist/components/ai-sdk/Goal.d.ts +3 -3
  142. package/dist/components/ai-sdk/Goal.js +3 -3
  143. package/dist/components/ai-sdk/InlineCitation.d.ts +1 -1
  144. package/dist/components/ai-sdk/MediaPreviewCard.d.ts +1 -1
  145. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  146. package/dist/components/ai-sdk/Message.d.ts +2 -2
  147. package/dist/components/ai-sdk/Message.js +12 -3
  148. package/dist/components/ai-sdk/MessageScroller.d.ts +1 -1
  149. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  150. package/dist/components/ai-sdk/MessageScrollerVirtual.d.ts +2 -76
  151. package/dist/components/ai-sdk/MessageScrollerVirtual.js +39 -5
  152. package/dist/components/ai-sdk/Plan.d.ts +1 -1
  153. package/dist/components/ai-sdk/Plan.js +1 -1
  154. package/dist/components/ai-sdk/PromptInput.d.ts +2 -2
  155. package/dist/components/ai-sdk/PromptInput.js +175 -231
  156. package/dist/components/ai-sdk/PromptInputComposerEditor.js +32 -9
  157. package/dist/components/ai-sdk/Queue.d.ts +28 -5
  158. package/dist/components/ai-sdk/Queue.js +20 -5
  159. package/dist/components/ai-sdk/Reasoning.d.ts +1 -1
  160. package/dist/components/ai-sdk/Reasoning.js +5 -5
  161. package/dist/components/ai-sdk/Sources.d.ts +1 -1
  162. package/dist/components/ai-sdk/Sources.js +1 -1
  163. package/dist/components/ai-sdk/Task.d.ts +1 -1
  164. package/dist/components/ai-sdk/Task.js +1 -1
  165. package/dist/components/extension/ChatGptSignInScreen.d.ts +1 -1
  166. package/dist/components/extension/ChatGptSignInScreen.js +1 -1
  167. package/dist/components/extension/CodexModelSelector.d.ts +5 -0
  168. package/dist/components/extension/CodexModelSelector.js +2 -2
  169. package/dist/components/extension/ConversationTabPicker.d.ts +1 -0
  170. package/dist/components/extension/ConversationTabPicker.js +2 -2
  171. package/dist/components/foundations/AlertDialog.d.ts +1 -1
  172. package/dist/components/foundations/AppIcon.d.ts +3 -2
  173. package/dist/components/foundations/Autocomplete.js +6 -1
  174. package/dist/components/foundations/Avatar.d.ts +1 -121
  175. package/dist/components/foundations/Button.d.ts +1 -1
  176. package/dist/components/foundations/Card.d.ts +22 -27
  177. package/dist/components/foundations/Card.js +51 -32
  178. package/dist/components/foundations/Checkbox.js +1 -1
  179. package/dist/components/foundations/CheckboxGroup.d.ts +1 -1
  180. package/dist/components/foundations/Collapsible.d.ts +1 -1
  181. package/dist/components/foundations/Collapsible.js +1 -1
  182. package/dist/components/foundations/Combobox.js +6 -1
  183. package/dist/components/foundations/ContextMenu.js +1 -1
  184. package/dist/components/foundations/Dialog.d.ts +106 -1
  185. package/dist/components/foundations/EmptyState.d.ts +1 -1
  186. package/dist/components/foundations/Field.d.ts +2 -1
  187. package/dist/components/foundations/Fieldset.d.ts +1 -1
  188. package/dist/components/foundations/Form.d.ts +4 -4
  189. package/dist/components/foundations/IconButton.d.ts +1 -1
  190. package/dist/components/foundations/Label.d.ts +1 -1
  191. package/dist/components/foundations/LinkButton.d.ts +2 -2
  192. package/dist/components/foundations/Menubar.js +1 -1
  193. package/dist/components/foundations/Meter.d.ts +1 -1
  194. package/dist/components/foundations/NumberField.d.ts +1 -1
  195. package/dist/components/foundations/ScrollArea.d.ts +1 -1
  196. package/dist/components/foundations/SearchField.d.ts +1 -1
  197. package/dist/components/foundations/SearchField.js +1 -1
  198. package/dist/components/foundations/Select.js +7 -2
  199. package/dist/components/foundations/Separator.d.ts +1 -40
  200. package/dist/components/foundations/Stepper.d.ts +1 -1
  201. package/dist/components/foundations/Stepper.js +1 -1
  202. package/dist/components/foundations/Textarea.d.ts +1 -1
  203. package/dist/components/foundations/Toast.d.ts +5 -1
  204. package/dist/components/foundations/Toast.js +1 -1
  205. package/dist/components/foundations/Toggle.d.ts +70 -1
  206. package/dist/components/foundations/ToggleGroup.d.ts +4 -3
  207. package/dist/components/foundations/ToggleGroup.js +1 -1
  208. package/dist/components/foundations/Toolbar.d.ts +1 -151
  209. package/dist/components/foundations/TransitionSurface.d.ts +1 -1
  210. package/dist/components/foundations/icons.js +1 -1
  211. package/dist/components/general-purpose/ActionGuide.d.ts +10 -26
  212. package/dist/components/general-purpose/ActionGuide.js +4 -18
  213. package/dist/components/general-purpose/AppTopBar.d.ts +4 -2
  214. package/dist/components/general-purpose/Commit.d.ts +2 -2
  215. package/dist/components/general-purpose/Commit.js +2 -2
  216. package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
  217. package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
  218. package/dist/components/general-purpose/FileTree.d.ts +1 -7
  219. package/dist/components/general-purpose/FileTree.js +1 -1
  220. package/dist/components/general-purpose/PricingPlanCard.d.ts +4 -0
  221. package/dist/components/general-purpose/PricingPlanCard.js +2 -2
  222. package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
  223. package/dist/components/general-purpose/ResizableSidePanel.d.ts +2 -2
  224. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +128 -2
  225. package/dist/components/general-purpose/ResponsiveSidebarShell.js +120 -102
  226. package/dist/components/general-purpose/SettingsFormDialog.d.ts +14 -27
  227. package/dist/components/general-purpose/SettingsFormDialog.js +42 -72
  228. package/dist/components/general-purpose/SetupChecklist.d.ts +1 -0
  229. package/dist/components/general-purpose/SetupChecklist.js +76 -1
  230. package/dist/components/general-purpose/Terminal.d.ts +3 -3
  231. package/dist/components/general-purpose/Terminal.js +11 -6
  232. package/dist/components/general-purpose/TestResults.d.ts +23 -11
  233. package/dist/components/general-purpose/TestResults.js +49 -51
  234. package/dist/components/general-purpose/ThemeModeControl.d.ts +2 -0
  235. package/dist/components/general-purpose/ThemeModeControl.js +2 -2
  236. package/dist/components/general-purpose/WebPreview.d.ts +29 -4
  237. package/dist/components/general-purpose/WebPreview.js +39 -14
  238. package/dist/components/nanites/AgentConnection.js +2 -2
  239. package/dist/components/nanites/AgentToolDetail.d.ts +13 -11
  240. package/dist/components/nanites/AgentToolDetail.js +21 -42
  241. package/dist/{copy-button-Dk2vRe9j.js → copy-button-CSDuDfdP.js} +1 -1
  242. package/dist/{copy-button-C0JyjClr.d.ts → copy-button-OUwOdgEm.d.ts} +1 -1
  243. package/dist/mcp-server-mAErsxHU.js +27 -0
  244. package/dist/styles/activity.css +1 -96
  245. package/dist/styles/agent-chat.css +75 -102
  246. package/dist/styles/agent-tool-detail.css +0 -16
  247. package/dist/styles/base.css +1 -1
  248. package/dist/styles/browser-run-panel.css +1 -15
  249. package/dist/styles/button.css +7 -1
  250. package/dist/styles/code-block.css +12 -0
  251. package/dist/styles/composition-motion.css +0 -2
  252. package/dist/styles/employee-chrome.css +43 -0
  253. package/dist/styles/file-tree.css +5 -0
  254. package/dist/styles/index.css +4 -2
  255. package/dist/styles/message.css +2 -10
  256. package/dist/styles/queue.css +71 -0
  257. package/dist/styles/subagent-run.css +122 -6
  258. package/dist/styles/test-results.css +2 -5
  259. package/dist/styles/think-chat-activity.css +13 -0
  260. package/dist/styles/think-chat-tool-panels.css +81 -0
  261. package/dist/styles/think-execution-workbench.css +2 -8
  262. package/dist/styles/think-full-app.css +42 -251
  263. package/dist/styles/{think-routine-library.css → think-routine.css} +64 -80
  264. package/dist/styles/web-preview.css +15 -1
  265. package/dist/utils/mcp-server-catalog.d.ts +1112 -2
  266. package/dist/utils/mcp-server-catalog.js +28 -9
  267. package/dist/utils/structured-code.d.ts +1 -1
  268. package/dist/{workspace-assets-GqsCYxqT.js → workspace-assets-Bg7XhPsk.js} +2 -2
  269. package/package.json +7 -3
  270. package/dist/AgentChat-BLmQghkt.d.ts +0 -327
  271. package/dist/AgentChatStartScreen-Bkv7Avni.d.ts +0 -84
  272. package/dist/AgentMessageParts-C7L-Mv9U.d.ts +0 -46
  273. package/dist/AgentToolRunsContext-jtmveaRE.d.ts +0 -57
  274. package/dist/Dialog-B_FhRWaz.d.ts +0 -107
  275. package/dist/McpConnectorForm-CeYNY0MI.d.ts +0 -39
  276. package/dist/McpPluginCatalog-3qWu8oK1.d.ts +0 -92
  277. package/dist/ResponsiveSidebarShell-BTVPxLJK.d.ts +0 -123
  278. package/dist/SessionCompaction-CmTJFpzj.d.ts +0 -89
  279. package/dist/SetupChecklist-DeTU9YpW.js +0 -77
  280. package/dist/ThinkChat-CwMdEum8.d.ts +0 -185
  281. package/dist/ThinkChat-DiI6hhDP.js +0 -332
  282. package/dist/ThinkChatActivity-B3lGVS-6.d.ts +0 -77
  283. package/dist/ThinkChatContext-COIgzkYp.d.ts +0 -28
  284. package/dist/ThinkRecoveryNotice-DGWr94rk.d.ts +0 -19
  285. package/dist/ThinkThreadPicker-yFz4vvIf.d.ts +0 -91
  286. package/dist/Toggle-DLrIf5YH.d.ts +0 -69
  287. package/dist/WorkspaceLive-DfjH1Ypm.d.ts +0 -61
  288. package/dist/WorkspaceMessageResponse-kJYU8Onj.d.ts +0 -48
  289. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +0 -31
  290. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +0 -34
  291. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +0 -80
  292. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +0 -159
  293. package/dist/components/agents-sdk/ThinkSidepanel.d.ts +0 -200
  294. package/dist/components/agents-sdk/ThinkSidepanel.js +0 -775
  295. package/dist/mcp-server-7NR24ASj.js +0 -69
  296. package/dist/mcp-server-catalog-C_g7C-9o.d.ts +0 -1108
  297. package/dist/styles/think-sidepanel.css +0 -78
  298. package/dist/think-agent-Cip5KAPj.d.ts +0 -7
  299. package/dist/{icons-CeGfXO21.js → icons-cuEtsgj9.js} +1 -1
@@ -1,8 +1,8 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { R as PencilIcon } from "../../icons-CeGfXO21.js";
2
+ import { R as PencilIcon } from "../../icons-cuEtsgj9.js";
3
3
  import { Button } from "../foundations/Button.js";
4
- import { Kbd } from "../foundations/Kbd.js";
5
4
  import { o as formatUnknownValue } from "../../format-COCyV98Z.js";
5
+ import { Kbd } from "../foundations/Kbd.js";
6
6
  import * as React from "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  //#region src/components/ai-sdk/Approval.tsx
@@ -1,4 +1,4 @@
1
- import { n as IconButtonProps } from "../../IconButton-BAUFhUk8.js";
1
+ import { n as IconButtonProps } from "../../IconButton-ByiyjkYE.js";
2
2
  import * as React from "react";
3
3
 
4
4
  //#region src/components/ai-sdk/Artifact.d.ts
@@ -45,7 +45,7 @@ declare function Artifact({
45
45
  ref,
46
46
  ...props
47
47
  }: ArtifactProps & {
48
- ref?: React.Ref<HTMLDivElement>;
48
+ /** Ref forwarded to the component's rendered root element. */ref?: React.Ref<HTMLDivElement>;
49
49
  }): React.JSX.Element;
50
50
  interface ArtifactHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}
51
51
  declare function ArtifactHeader({
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { K as SpinnerIcon, et as WarningIcon, nt as XIcon } from "../../icons-CeGfXO21.js";
2
+ import { K as SpinnerIcon, et as WarningIcon, nt as XIcon } from "../../icons-cuEtsgj9.js";
3
3
  import { Button, buttonVariants } from "../foundations/Button.js";
4
4
  import { IconButton } from "../foundations/IconButton.js";
5
5
  import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
@@ -34,7 +34,7 @@ declare function ChainOfThought({
34
34
  ref,
35
35
  ...props
36
36
  }: ChainOfThoughtProps & {
37
- ref?: React.Ref<HTMLDivElement>;
37
+ /** Ref forwarded to the component's rendered root element. */ref?: React.Ref<HTMLDivElement>;
38
38
  }): React.JSX.Element;
39
39
  interface ChainOfThoughtHeaderProps extends Omit<React.ComponentProps<typeof Collapsible.Trigger>, "unstyled"> {}
40
40
  /**
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
+ import { K as SpinnerIcon, _ as DotIcon, d as CheckIcon, p as ChevronRightIcon } from "../../icons-cuEtsgj9.js";
2
3
  import { Collapsible } from "../foundations/Collapsible.js";
3
- import { K as SpinnerIcon, _ as DotIcon, d as CheckIcon, p as ChevronRightIcon } from "../../icons-CeGfXO21.js";
4
4
  import "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/components/ai-sdk/ChainOfThought.tsx
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { s as BookmarkIcon } from "../../icons-CeGfXO21.js";
2
+ import { s as BookmarkIcon } from "../../icons-cuEtsgj9.js";
3
3
  import { Marker, MarkerIcon } from "../foundations/Marker.js";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { C as CodeBlockLanguageSelectorValueProps, D as CODE_BLOCK_LANGUAGES, E as CodeBlockTitleProps, O as CodeBlockLanguage, S as CodeBlockLanguageSelectorValue, T as CodeBlockTitle, _ as CodeBlockLanguageSelectorItem, a as CodeBlockContainerProps, b as CodeBlockLanguageSelectorTrigger, c as CodeBlockCopyButton, d as CodeBlockFilenameProps, f as CodeBlockHeader, g as CodeBlockLanguageSelectorContentProps, h as CodeBlockLanguageSelectorContent, i as CodeBlockContainer, l as CodeBlockCopyButtonProps, m as CodeBlockLanguageSelector, n as CodeBlockActions, o as CodeBlockContent, p as CodeBlockHeaderProps, r as CodeBlockActionsProps, s as CodeBlockContentProps, t as CodeBlock, u as CodeBlockFilename, v as CodeBlockLanguageSelectorItemProps, w as CodeBlockProps, x as CodeBlockLanguageSelectorTriggerProps, y as CodeBlockLanguageSelectorProps } from "../../CodeBlock-C380GD5t.js";
1
+ import { C as CodeBlockLanguageSelectorValueProps, D as CODE_BLOCK_LANGUAGES, E as CodeBlockTitleProps, O as CodeBlockLanguage, S as CodeBlockLanguageSelectorValue, T as CodeBlockTitle, _ as CodeBlockLanguageSelectorItem, a as CodeBlockContainerProps, b as CodeBlockLanguageSelectorTrigger, c as CodeBlockCopyButton, d as CodeBlockFilenameProps, f as CodeBlockHeader, g as CodeBlockLanguageSelectorContentProps, h as CodeBlockLanguageSelectorContent, i as CodeBlockContainer, l as CodeBlockCopyButtonProps, m as CodeBlockLanguageSelector, n as CodeBlockActions, o as CodeBlockContent, p as CodeBlockHeaderProps, r as CodeBlockActionsProps, s as CodeBlockContentProps, t as CodeBlock, u as CodeBlockFilename, v as CodeBlockLanguageSelectorItemProps, w as CodeBlockProps, x as CodeBlockLanguageSelectorTriggerProps, y as CodeBlockLanguageSelectorProps } from "../../CodeBlock--r6GS8YV.js";
2
2
  export { CODE_BLOCK_LANGUAGES, CodeBlock, CodeBlockActions, CodeBlockActionsProps, CodeBlockContainer, CodeBlockContainerProps, CodeBlockContent, CodeBlockContentProps, CodeBlockCopyButton, CodeBlockCopyButtonProps, CodeBlockFilename, CodeBlockFilenameProps, CodeBlockHeader, CodeBlockHeaderProps, type CodeBlockLanguage, CodeBlockLanguageSelector, CodeBlockLanguageSelectorContent, CodeBlockLanguageSelectorContentProps, CodeBlockLanguageSelectorItem, CodeBlockLanguageSelectorItemProps, CodeBlockLanguageSelectorProps, CodeBlockLanguageSelectorTrigger, CodeBlockLanguageSelectorTriggerProps, CodeBlockLanguageSelectorValue, CodeBlockLanguageSelectorValueProps, CodeBlockProps, CodeBlockTitle, CodeBlockTitleProps };
@@ -1,2 +1,2 @@
1
- import { a as CodeBlockCopyButton, c as CodeBlockLanguageSelector, d as CodeBlockLanguageSelectorTrigger, f as CodeBlockLanguageSelectorValue, i as CodeBlockContent, l as CodeBlockLanguageSelectorContent, m as CODE_BLOCK_LANGUAGES, n as CodeBlockActions, o as CodeBlockFilename, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock, u as CodeBlockLanguageSelectorItem } from "../../CodeBlock-BSJl682D.js";
1
+ import { a as CodeBlockCopyButton, c as CodeBlockLanguageSelector, d as CodeBlockLanguageSelectorTrigger, f as CodeBlockLanguageSelectorValue, i as CodeBlockContent, l as CodeBlockLanguageSelectorContent, m as CODE_BLOCK_LANGUAGES, n as CodeBlockActions, o as CodeBlockFilename, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock, u as CodeBlockLanguageSelectorItem } from "../../CodeBlock-g8sADidM.js";
2
2
  export { CODE_BLOCK_LANGUAGES, CodeBlock, CodeBlockActions, CodeBlockContainer, CodeBlockContent, CodeBlockCopyButton, CodeBlockFilename, CodeBlockHeader, CodeBlockLanguageSelector, CodeBlockLanguageSelectorContent, CodeBlockLanguageSelectorItem, CodeBlockLanguageSelectorTrigger, CodeBlockLanguageSelectorValue, CodeBlockTitle };
@@ -1,9 +1,8 @@
1
1
  import { brandHexFromIconSrc, parseComposerHref, sampleImageAccent } from "../../utils/composer-link.js";
2
- import { getMcpServerIconSrc } from "../../utils/mcp-server-catalog.js";
2
+ import { findCatalogMcpServerCard, getMcpServerIconSrc } from "../../utils/mcp-server-catalog.js";
3
3
  import { t as cx } from "../../class-names-BiMDVpUo.js";
4
- import { c as BoxIcon } from "../../icons-CeGfXO21.js";
4
+ import { c as BoxIcon } from "../../icons-cuEtsgj9.js";
5
5
  import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
6
- import { n as findCatalogMcpServerCard } from "../../mcp-server-7NR24ASj.js";
7
6
  import * as React from "react";
8
7
  import { jsx, jsxs } from "react/jsx-runtime";
9
8
  //#region src/components/ai-sdk/ComposerLink.tsx
@@ -29,17 +29,25 @@ type ConnectedAppCardProps = Omit<CardProps, "children" | "hover" | "size" | "ti
29
29
  headerActions?: React.ReactNode;
30
30
  };
31
31
  interface EmailMessageDraft {
32
+ /** Sender label or address shown in the draft header. */
32
33
  from?: string;
34
+ /** Recipient label or address shown in the draft header. */
33
35
  to?: string;
36
+ /** Visible message subject, required even while the draft body is empty. */
34
37
  subject: string;
38
+ /** Editable plain-text message body. */
35
39
  body?: string;
36
40
  }
37
41
  interface EmailMessageCardProps extends ConnectedAppCardProps, EmailMessageDraft {
38
42
  /** Person-shaped To. The address string remains the route. */
39
43
  correspondent?: Correspondent;
44
+ /** Receives the complete draft after an editable field changes. */
40
45
  onChange?: (next: EmailMessageDraft) => void;
46
+ /** Discards the pending draft. */
41
47
  onDiscard?: () => void | Promise<void>;
48
+ /** Rejects the draft with human-authored feedback. */
42
49
  onReject?: (reason: string) => void | Promise<void>;
50
+ /** Releases the pending draft for delivery. */
43
51
  onSend?: () => void | Promise<void>;
44
52
  }
45
53
  /**
@@ -61,7 +69,7 @@ declare function EmailMessageCard({
61
69
  ref,
62
70
  ...props
63
71
  }: EmailMessageCardProps & {
64
- ref?: React.Ref<HTMLDivElement>;
72
+ /** Ref forwarded to the component's rendered root element. */ref?: React.Ref<HTMLDivElement>;
65
73
  }): React.JSX.Element;
66
74
  interface SlackMessageDraft {
67
75
  workspace?: string;
@@ -1,12 +1,12 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { G as SlackIcon, O as MailIcon, _ as DotIcon, d as CheckIcon, nt as XIcon, u as CalendarIcon } from "../../icons-CeGfXO21.js";
2
+ import { G as SlackIcon, O as MailIcon, _ as DotIcon, d as CheckIcon, nt as XIcon, u as CalendarIcon } from "../../icons-cuEtsgj9.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { Field } from "../foundations/Field.js";
5
5
  import { Textarea } from "../foundations/Textarea.js";
6
- import { Card, CardAction, CardContent, CardFooter, CardHeader, CardTitle } from "../foundations/Card.js";
7
- import { DescriptionList } from "../foundations/DescriptionList.js";
8
6
  import { Input } from "../foundations/Input.js";
7
+ import { DescriptionList } from "../foundations/DescriptionList.js";
9
8
  import { CorrespondentName, emailDestinationCorrespondent, slackDestinationCorrespondent } from "./Correspondent.js";
9
+ import { Card, CardAction, CardContent, CardFooter, CardHeader, CardTitle } from "../foundations/Card.js";
10
10
  import * as React from "react";
11
11
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
12
12
  //#region src/components/ai-sdk/ConnectedAppCards.tsx
@@ -98,32 +98,38 @@ function ConnectedAppCardFrame({ children, className, headerActions, icon, kind,
98
98
  const saveBlocked = saveState !== void 0;
99
99
  const saveErrorMessage = saveState?.status === "error" ? saveState.message : "";
100
100
  return /* @__PURE__ */ jsxs(Card, {
101
+ render: /* @__PURE__ */ jsx("article", {}),
101
102
  ...props,
102
103
  ref,
103
- role: props.role ?? "article",
104
104
  "aria-labelledby": ariaLabelledBy,
105
105
  "data-slot": slot,
106
106
  "data-state": state,
107
107
  size: "sm",
108
108
  className: cx("connected-app-card", className),
109
109
  children: [
110
- /* @__PURE__ */ jsxs(CardHeader, { children: [/* @__PURE__ */ jsxs(CardTitle, {
111
- id: titleId,
112
- className: "connected-app-card__title",
113
- render: /* @__PURE__ */ jsx("h3", {}),
114
- children: [/* @__PURE__ */ jsx("span", {
115
- className: "connected-app-card__icon",
116
- "aria-hidden": "true",
117
- children: icon
118
- }), kind]
119
- }), /* @__PURE__ */ jsxs(CardAction, {
120
- className: "sigvelo-cluster",
121
- children: [/* @__PURE__ */ jsxs("span", {
122
- className: "connected-app-card__status",
123
- "data-state": state,
124
- children: [/* @__PURE__ */ jsx(StateIcon, { size: 14 }), state === "pending" && !hasDecision ? "Sending" : stateLabels[state]]
125
- }), headerActions]
126
- })] }),
110
+ /* @__PURE__ */ jsxs(CardHeader, {
111
+ render: /* @__PURE__ */ jsx("header", {}),
112
+ children: [/* @__PURE__ */ jsxs(CardTitle, {
113
+ id: titleId,
114
+ className: "connected-app-card__title",
115
+ render: (props) => /* @__PURE__ */ jsx("h3", {
116
+ ...props,
117
+ children: props.children
118
+ }),
119
+ children: [/* @__PURE__ */ jsx("span", {
120
+ className: "connected-app-card__icon",
121
+ "aria-hidden": "true",
122
+ children: icon
123
+ }), kind]
124
+ }), /* @__PURE__ */ jsxs(CardAction, {
125
+ className: "sigvelo-cluster",
126
+ children: [/* @__PURE__ */ jsxs("span", {
127
+ className: "connected-app-card__status",
128
+ "data-state": state,
129
+ children: [/* @__PURE__ */ jsx(StateIcon, { size: 14 }), state === "pending" && !hasDecision ? "Sending" : stateLabels[state]]
130
+ }), headerActions]
131
+ })]
132
+ }),
127
133
  /* @__PURE__ */ jsxs(CardContent, { children: [
128
134
  children,
129
135
  hasDecision && decision.reject ? /* @__PURE__ */ jsxs(Field.Root, { children: [/* @__PURE__ */ jsx(Field.Label, { children: "Tell the agent what to do differently" }), /* @__PURE__ */ jsx(Field.Control, {
@@ -160,6 +166,7 @@ function ConnectedAppCardFrame({ children, className, headerActions, icon, kind,
160
166
  })
161
167
  ] }),
162
168
  hasDecision ? /* @__PURE__ */ jsxs(CardFooter, {
169
+ render: /* @__PURE__ */ jsx("footer", {}),
163
170
  className: "connected-app-card__footer",
164
171
  children: [
165
172
  decision.send ? /* @__PURE__ */ jsx(Button, {
@@ -1,4 +1,4 @@
1
- import { PopoverPositionerProps, PopoverProps } from "../foundations/Popover.js";
1
+ import { PopoverPositionerProps, PopoverProps, PopoverTriggerProps } from "../foundations/Popover.js";
2
2
  import * as React from "react";
3
3
  import { LanguageModelUsage, UIMessage } from "ai";
4
4
 
@@ -14,8 +14,11 @@ interface ContextProps extends React.HTMLAttributes<HTMLDivElement> {
14
14
  modelId?: string;
15
15
  /** Optional total cost in USD. */
16
16
  totalCostUsd?: number;
17
+ /** Controlled visibility of the usage-details popover. */
17
18
  open?: PopoverProps["open"];
19
+ /** Initial visibility when the popover is uncontrolled. */
18
20
  defaultOpen?: PopoverProps["defaultOpen"];
21
+ /** Receives visibility changes from the usage-details popover. */
19
22
  onOpenChange?: PopoverProps["onOpenChange"];
20
23
  }
21
24
  /**
@@ -57,9 +60,10 @@ declare function Context({
57
60
  ref,
58
61
  ...props
59
62
  }: ContextProps & {
60
- ref?: React.Ref<HTMLDivElement>;
63
+ /** Ref forwarded to the component's rendered root element. */ref?: React.Ref<HTMLDivElement>;
61
64
  }): React.JSX.Element;
62
- interface ContextTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {}
65
+ interface ContextTriggerProps extends PopoverTriggerProps {}
66
+ /** Context ring trigger; use `render` to compose a custom control and `children` for its content. */
63
67
  declare function ContextTrigger({
64
68
  className,
65
69
  children,
@@ -1,6 +1,6 @@
1
- import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { Popover } from "../foundations/Popover.js";
1
+ import { n as mergeBaseClassName, t as cx } from "../../class-names-BiMDVpUo.js";
3
2
  import { Separator } from "../foundations/Separator.js";
3
+ import { Popover } from "../foundations/Popover.js";
4
4
  import { t as ProgressRing } from "../../progress-ring-Cgii90dC.js";
5
5
  import * as React from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -65,27 +65,17 @@ function Context({ className, usedTokens, maxTokens, usage, modelId, totalCostUs
65
65
  })
66
66
  });
67
67
  }
68
+ /** Context ring trigger; use `render` to compose a custom control and `children` for its content. */
68
69
  function ContextTrigger({ className, children, ...props }) {
69
70
  const { usedTokens, maxTokens } = useContextContext();
70
71
  const percent = maxTokens > 0 ? usedTokens / maxTokens * 100 : 0;
71
- if (React.isValidElement(children)) return /* @__PURE__ */ jsx(Popover.Trigger, {
72
- unstyled: true,
73
- className: cx("context__trigger", className),
74
- ...props,
75
- render: children
76
- });
77
- if (children) return /* @__PURE__ */ jsx(Popover.Trigger, {
78
- unstyled: true,
79
- className: cx("context__trigger", className),
80
- ...props,
81
- children
82
- });
72
+ const hasContent = children != null && typeof children !== "boolean" && children !== "";
83
73
  return /* @__PURE__ */ jsx(Popover.Trigger, {
84
74
  unstyled: true,
85
- className: cx("context__trigger", className),
86
- "aria-label": `Context usage: ${percent.toFixed(0)}%`,
75
+ className: mergeBaseClassName("context__trigger", className),
76
+ "aria-label": hasContent ? void 0 : `Context usage: ${percent.toFixed(0)}%`,
87
77
  ...props,
88
- children: /* @__PURE__ */ jsx(ProgressRing, {
78
+ children: hasContent ? children : /* @__PURE__ */ jsx(ProgressRing, {
89
79
  percent,
90
80
  size: 16,
91
81
  stroke: 2.5
@@ -1,4 +1,4 @@
1
- import { n as IconButtonProps } from "../../IconButton-BAUFhUk8.js";
1
+ import { n as IconButtonProps } from "../../IconButton-ByiyjkYE.js";
2
2
  import { MessageScrollerButtonProps, MessageScrollerItemProps } from "./MessageScroller.js";
3
3
  import * as React from "react";
4
4
  import { UIMessage } from "ai";
@@ -55,7 +55,7 @@ declare function Conversation({
55
55
  ref,
56
56
  ...props
57
57
  }: ConversationProps & {
58
- ref?: React.Ref<HTMLDivElement>;
58
+ /** Ref forwarded to the component's rendered root element. */ref?: React.Ref<HTMLDivElement>;
59
59
  }): React.JSX.Element;
60
60
  interface ConversationContentProps extends React.HTMLAttributes<HTMLDivElement> {}
61
61
  /**
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { n as ArrowDownIcon, v as DownloadIcon } from "../../icons-CeGfXO21.js";
2
+ import { n as ArrowDownIcon, v as DownloadIcon } from "../../icons-cuEtsgj9.js";
3
3
  import { IconButton } from "../foundations/IconButton.js";
4
4
  import { t as assignRef } from "../../merge-refs-DF_7w2x_.js";
5
5
  import { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport } from "./MessageScroller.js";
@@ -15,8 +15,8 @@ interface GoalProps extends React.HTMLAttributes<HTMLDivElement> {
15
15
  /**
16
16
  * Presentation-only banner for a persisted conversation goal — an objective
17
17
  * the agent keeps pursuing across turns until it completes, pauses, or
18
- * blocks on the user. Renders in `AgentChat`'s `composerTray` slot, sharing the
19
- * queued-message tray docked above the composer. The row is capped: the
18
+ * blocks on the user. Compose it in `PromptInputHeader` or an explicit tray
19
+ * alongside `AgentChat.Queue`. The row is capped: the
20
20
  * objective truncates to one line, so pass full objective and progress text
21
21
  * via `title` (or a popover) rather than rendering it inline.
22
22
  *
@@ -30,7 +30,7 @@ declare function Goal({
30
30
  ref,
31
31
  ...props
32
32
  }: GoalProps & {
33
- ref?: React.Ref<HTMLDivElement>;
33
+ /** Ref forwarded to the component's rendered root element. */ref?: React.Ref<HTMLDivElement>;
34
34
  }): React.JSX.Element;
35
35
  interface GoalIconProps extends React.HTMLAttributes<HTMLSpanElement> {}
36
36
  declare function GoalIcon({
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { L as PauseIcon, Q as TrashIcon, X as TargetIcon, z as PlayIcon } from "../../icons-CeGfXO21.js";
2
+ import { L as PauseIcon, Q as TrashIcon, X as TargetIcon, z as PlayIcon } from "../../icons-cuEtsgj9.js";
3
3
  import { IconButton } from "../foundations/IconButton.js";
4
4
  import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
5
5
  import * as React from "react";
@@ -16,8 +16,8 @@ const STATUS_LABELS = {
16
16
  /**
17
17
  * Presentation-only banner for a persisted conversation goal — an objective
18
18
  * the agent keeps pursuing across turns until it completes, pauses, or
19
- * blocks on the user. Renders in `AgentChat`'s `composerTray` slot, sharing the
20
- * queued-message tray docked above the composer. The row is capped: the
19
+ * blocks on the user. Compose it in `PromptInputHeader` or an explicit tray
20
+ * alongside `AgentChat.Queue`. The row is capped: the
21
21
  * objective truncates to one line, so pass full objective and progress text
22
22
  * via `title` (or a popover) rather than rendering it inline.
23
23
  *
@@ -22,7 +22,7 @@ declare function InlineCitation({
22
22
  ref,
23
23
  ...props
24
24
  }: InlineCitationProps & {
25
- ref?: React.Ref<HTMLSpanElement>;
25
+ /** Ref forwarded to the component's rendered root element. */ref?: React.Ref<HTMLSpanElement>;
26
26
  }): React.JSX.Element;
27
27
  interface InlineCitationTextProps extends React.ComponentPropsWithoutRef<"span"> {}
28
28
  /** Claim text whose citation is placed by the consuming app. */
@@ -23,7 +23,7 @@ declare function MediaPreviewCard({
23
23
  ref,
24
24
  ...props
25
25
  }: MediaPreviewCardProps & {
26
- ref?: React.Ref<HTMLDivElement>;
26
+ /** Ref forwarded to the component's rendered root element. */ref?: React.Ref<HTMLDivElement>;
27
27
  }): React.JSX.Element;
28
28
  type FixedVideoProps = "autoPlay" | "controls" | "loop" | "muted" | "playsInline" | "preload";
29
29
  interface MediaPreviewCardVideoProps extends Omit<React.VideoHTMLAttributes<HTMLVideoElement>, FixedVideoProps> {
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { z as PlayIcon } from "../../icons-CeGfXO21.js";
2
+ import { z as PlayIcon } from "../../icons-cuEtsgj9.js";
3
3
  import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
4
4
  import { Card } from "../foundations/Card.js";
5
5
  import * as React from "react";
@@ -1,2 +1,2 @@
1
- import { A as MessageToolbar, C as MessageMetaProps, D as MessageRole, E as MessageResponseProps, O as MessageTimestamp, S as MessageMeta, T as MessageResponse, _ as MessageBranchProps, a as MessageActionsProps, b as MessageContent, c as MessageBranch, d as MessageBranchNext, f as MessageBranchNextProps, g as MessageBranchPreviousProps, h as MessageBranchPrevious, i as MessageActions, j as MessageToolbarProps, k as MessageTimestampProps, l as MessageBranchContent, m as MessageBranchPageProps, n as MessageAction, o as MessageAttachment, p as MessageBranchPage, r as MessageActionProps, s as MessageAttachmentProps, t as Message, u as MessageBranchContentProps, v as MessageBranchSelector, w as MessageProps, x as MessageContentProps, y as MessageBranchSelectorProps } from "../../Message-D_vCVEGB.js";
2
- export { Message, MessageAction, MessageActionProps, MessageActions, MessageActionsProps, MessageAttachment, MessageAttachmentProps, MessageBranch, MessageBranchContent, MessageBranchContentProps, MessageBranchNext, MessageBranchNextProps, MessageBranchPage, MessageBranchPageProps, MessageBranchPrevious, MessageBranchPreviousProps, MessageBranchProps, MessageBranchSelector, MessageBranchSelectorProps, MessageContent, MessageContentProps, MessageMeta, MessageMetaProps, MessageProps, MessageResponse, MessageResponseProps, MessageRole, MessageTimestamp, MessageTimestampProps, MessageToolbar, MessageToolbarProps };
1
+ import { A as MessageTimestamp, C as MessageCopyActionProps, D as MessageResponse, E as MessageProps, M as MessageToolbar, N as MessageToolbarProps, O as MessageResponseProps, S as MessageCopyAction, T as MessageMetaProps, _ as MessageBranchProps, a as MessageActionsProps, b as MessageContent, c as MessageBranch, d as MessageBranchNext, f as MessageBranchNextProps, g as MessageBranchPreviousProps, h as MessageBranchPrevious, i as MessageActions, j as MessageTimestampProps, k as MessageRole, l as MessageBranchContent, m as MessageBranchPageProps, n as MessageAction, o as MessageAttachment, p as MessageBranchPage, r as MessageActionProps, s as MessageAttachmentProps, t as Message, u as MessageBranchContentProps, v as MessageBranchSelector, w as MessageMeta, x as MessageContentProps, y as MessageBranchSelectorProps } from "../../Message-DyaTBiV7.js";
2
+ export { Message, MessageAction, MessageActionProps, MessageActions, MessageActionsProps, MessageAttachment, MessageAttachmentProps, MessageBranch, MessageBranchContent, MessageBranchContentProps, MessageBranchNext, MessageBranchNextProps, MessageBranchPage, MessageBranchPageProps, MessageBranchPrevious, MessageBranchPreviousProps, MessageBranchProps, MessageBranchSelector, MessageBranchSelectorProps, MessageContent, MessageContentProps, MessageCopyAction, MessageCopyActionProps, MessageMeta, MessageMetaProps, MessageProps, MessageResponse, MessageResponseProps, MessageRole, MessageTimestamp, MessageTimestampProps, MessageToolbar, MessageToolbarProps };
@@ -1,8 +1,9 @@
1
1
  import { parseComposerHref } from "../../utils/composer-link.js";
2
2
  import { t as cx } from "../../class-names-BiMDVpUo.js";
3
- import { S as FileIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../../icons-CeGfXO21.js";
3
+ import { S as FileIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../../icons-cuEtsgj9.js";
4
4
  import { Button } from "../foundations/Button.js";
5
5
  import { IconButton } from "../foundations/IconButton.js";
6
+ import { t as CopyButton } from "../../copy-button-CSDuDfdP.js";
6
7
  import { t as AttachmentPreview } from "../../attachment-preview-1CXJvrmb.js";
7
8
  import { n as clamp } from "../../format-COCyV98Z.js";
8
9
  import { ComposerLink } from "./ComposerLink.js";
@@ -144,10 +145,11 @@ function MessageAttachment({ part, className, ...props }) {
144
145
  * Horizontal list of action buttons (copy, retry, thumbs-up, etc.) shown
145
146
  * alongside or beneath a message.
146
147
  */
147
- function MessageActions({ className, children, ref, ...props }) {
148
+ function MessageActions({ reserveSpace = false, className, children, ref, ...props }) {
148
149
  return /* @__PURE__ */ jsx("div", {
149
150
  ref,
150
151
  className: cx("message__actions", className),
152
+ "data-reserve-space": reserveSpace || void 0,
151
153
  role: "group",
152
154
  ...props,
153
155
  children
@@ -171,6 +173,13 @@ function MessageAction({ className, label, tooltip, variant = "ghost", color = "
171
173
  children
172
174
  });
173
175
  }
176
+ /** Copy a message with the shared clipboard feedback and message action treatment. */
177
+ function MessageCopyAction({ className, ...props }) {
178
+ return /* @__PURE__ */ jsx(CopyButton, {
179
+ className: cx("message__action", className),
180
+ ...props
181
+ });
182
+ }
174
183
  /**
175
184
  * Horizontal container that places children in a row with space between —
176
185
  * typically a {@link MessageBranchSelector} on one side and
@@ -308,4 +317,4 @@ function MessageBranchPage({ className, format, ref, ...props }) {
308
317
  });
309
318
  }
310
319
  //#endregion
311
- export { Message, MessageAction, MessageActions, MessageAttachment, MessageBranch, MessageBranchContent, MessageBranchNext, MessageBranchPage, MessageBranchPrevious, MessageBranchSelector, MessageContent, MessageMeta, MessageResponse, MessageTimestamp, MessageToolbar };
320
+ export { Message, MessageAction, MessageActions, MessageAttachment, MessageBranch, MessageBranchContent, MessageBranchNext, MessageBranchPage, MessageBranchPrevious, MessageBranchSelector, MessageContent, MessageCopyAction, MessageMeta, MessageResponse, MessageTimestamp, MessageToolbar };
@@ -1,4 +1,4 @@
1
- import { r as ButtonProps } from "../../Button-CZt3yywF.js";
1
+ import { r as ButtonProps } from "../../Button-DjONW5UW.js";
2
2
  import * as React from "react";
3
3
  import { MessageScroller as MessageScroller$1, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility } from "@shadcn/react/message-scroller";
4
4
 
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { n as ArrowDownIcon } from "../../icons-CeGfXO21.js";
2
+ import { n as ArrowDownIcon } from "../../icons-cuEtsgj9.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { t as messageScrollerContract } from "../../message-scroller-C8cplcQO.js";
5
5
  import "react";
@@ -1,76 +1,2 @@
1
- import { r as ButtonProps } from "../../Button-CZt3yywF.js";
2
- import * as React from "react";
3
-
4
- //#region src/components/ai-sdk/MessageScrollerVirtual.d.ts
5
- interface VirtualMessageScrollerProps<Item> extends Omit<React.HTMLAttributes<HTMLDivElement>, "children"> {
6
- items: readonly Item[];
7
- /**
8
- * Stable per-item key. Must survive prepends and stream updates — the
9
- * virtualizer tracks identity by key to keep scroll anchored. Message ids,
10
- * never indexes (deliberately not passed here).
11
- */
12
- getItemKey: (item: Item) => string | number;
13
- renderItem: (item: Item, index: number) => React.ReactNode;
14
- /**
15
- * Pre-measurement height estimate in px. Rows are measured once rendered;
16
- * changing this later never re-estimates already-measured rows — only rows
17
- * measured afterward see the new value.
18
- */
19
- estimateSize?: number;
20
- /** Rows rendered beyond the viewport on each side. */
21
- overscan?: number;
22
- /** Rendered inside the viewport when `items` is empty. */
23
- emptyState?: React.ReactNode;
24
- /**
25
- * Props for the inner content element. Defaults to `role="log"` with
26
- * `aria-live="off"` — windowing re-inserts old rows as they scroll back
27
- * into view, and a live region would announce them as new; override via
28
- * these props only with that in mind.
29
- */
30
- contentProps?: React.HTMLAttributes<HTMLDivElement>;
31
- /** Accessible label for the scroll-to-latest button. */
32
- scrollButtonLabel?: string;
33
- scrollButtonProps?: Omit<ButtonProps, "onClick" | "aria-label" | "tabIndex">;
34
- }
35
- /**
36
- * Windowed chat transcript for unbounded threads (hours-long agent runs):
37
- * only the visible slice of rows exists in the DOM, end-anchored so streaming
38
- * growth and appends keep the viewport pinned while reading history doesn't
39
- * get yanked to the bottom (TanStack Virtual `anchorTo: 'end'`).
40
- *
41
- * Windowing means rows unmount when scrolled away, so browser find-in-page
42
- * only searches the rendered window, and any disclosure state living inside a
43
- * row is lost unless it is persisted — wrap the transcript in
44
- * `ExpansionStateProvider` (AgentChat does) and give disclosures a `stateKey`.
45
- * New turns pin to the bottom.
46
- *
47
- * Host-side contract (what the consuming app must do — the scroller cannot
48
- * compensate for any of these):
49
- * - Give every item a stable id for `getItemKey`; keys must not change when
50
- * older history is prepended or the last message grows.
51
- * - Keep unchanged items referentially stable across updates so memoized row
52
- * content skips re-rendering. Rebuilding the array element-by-element —
53
- * e.g. structured-clone over a worker/extension boundary per delta —
54
- * defeats this; clone once per batch, not per row.
55
- * - Throttle stream deltas before they reach React state (AI SDK
56
- * `experimental_throttle: 50` or equivalent); the scroller re-windows per
57
- * update.
58
- * - Bound the data itself: windowing caps DOM size, not JS memory. Truncate
59
- * stored tool output at the buffer (Codex caps at 20k chars) and keep
60
- * compaction on so a six-hour run doesn't hold every byte it ever streamed.
61
- */
62
- declare function VirtualMessageScroller<Item>({
63
- items,
64
- getItemKey,
65
- renderItem,
66
- estimateSize,
67
- overscan,
68
- emptyState,
69
- contentProps,
70
- scrollButtonLabel,
71
- scrollButtonProps,
72
- className,
73
- ...props
74
- }: VirtualMessageScrollerProps<Item>): React.JSX.Element;
75
- //#endregion
76
- export { VirtualMessageScroller, VirtualMessageScrollerProps };
1
+ import { n as VirtualMessageScroller, r as VirtualMessageScrollerProps, t as VirtualMessageScrollAnchor } from "../../MessageScrollerVirtual-D4afYwVB.js";
2
+ export { VirtualMessageScrollAnchor, VirtualMessageScroller, VirtualMessageScrollerProps };
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { n as ArrowDownIcon } from "../../icons-CeGfXO21.js";
2
+ import { n as ArrowDownIcon } from "../../icons-cuEtsgj9.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { t as messageScrollerContract } from "../../message-scroller-C8cplcQO.js";
5
5
  import * as React from "react";
@@ -33,8 +33,11 @@ import { useVirtualizer } from "@tanstack/react-virtual";
33
33
  * stored tool output at the buffer (Codex caps at 20k chars) and keep
34
34
  * compaction on so a six-hour run doesn't hold every byte it ever streamed.
35
35
  */
36
- function VirtualMessageScroller({ items, getItemKey, renderItem, estimateSize = 160, overscan = 6, emptyState, contentProps, scrollButtonLabel = "Scroll to latest", scrollButtonProps, className, ...props }) {
36
+ function VirtualMessageScroller({ items, getItemKey, renderItem, estimateSize = 160, overscan = 6, emptyState, contentProps, scrollButtonLabel = "Scroll to latest", scrollButtonProps, className, scrollAnchor, ...props }) {
37
37
  const viewportRef = React.useRef(null);
38
+ const initialAnchor = React.useRef(scrollAnchor?.current);
39
+ const restoring = React.useRef(true);
40
+ const contentRef = React.useRef(null);
38
41
  const warnedBadKey = React.useRef(false);
39
42
  const [atEnd, setAtEnd] = React.useState(true);
40
43
  const [scrollEdges, setScrollEdges] = React.useState();
@@ -52,6 +55,17 @@ function VirtualMessageScroller({ items, getItemKey, renderItem, estimateSize =
52
55
  seen.add(key);
53
56
  }
54
57
  }, [items, getItemKey]);
58
+ const recordAnchor = (instance) => {
59
+ const viewport = viewportRef.current;
60
+ if (restoring.current || !scrollAnchor || !viewport) return;
61
+ const scrollTop = viewport.scrollTop;
62
+ const first = instance.getVirtualItems().find((item) => item.end > scrollTop);
63
+ if (first) scrollAnchor.current = {
64
+ key: getItemKey(items[first.index]),
65
+ offset: scrollTop - first.start,
66
+ followLatest: viewport.scrollHeight - viewport.clientHeight - scrollTop <= instance.options.scrollEndThreshold
67
+ };
68
+ };
55
69
  const virtualizer = useVirtualizer({
56
70
  count: items.length,
57
71
  getScrollElement: () => viewportRef.current,
@@ -62,17 +76,35 @@ function VirtualMessageScroller({ items, getItemKey, renderItem, estimateSize =
62
76
  scrollEndThreshold: 80,
63
77
  overscan,
64
78
  gap: 16,
65
- initialOffset: () => items.length * (estimateSize + 16),
79
+ initialOffset: () => {
80
+ const anchor = initialAnchor.current;
81
+ const index = anchor && !anchor.followLatest ? items.findIndex((item) => getItemKey(item) === anchor.key) : -1;
82
+ return index < 0 ? items.length * (estimateSize + 16) : index * (estimateSize + 16);
83
+ },
66
84
  onChange: (instance) => {
67
85
  setAtEnd(instance.isAtEnd());
86
+ recordAnchor(instance);
68
87
  const start = (viewportRef.current?.scrollTop ?? 0) > 1;
69
88
  const end = instance.getDistanceFromEnd() > 1;
70
89
  setScrollEdges(start && end ? "start end" : start ? "start" : end ? "end" : void 0);
71
90
  }
72
91
  });
73
92
  React.useLayoutEffect(() => {
74
- virtualizer.scrollToEnd();
75
- }, []);
93
+ if (!restoring.current) return;
94
+ const anchor = initialAnchor.current;
95
+ const index = anchor && !anchor.followLatest ? items.findIndex((item) => getItemKey(item) === anchor.key) : -1;
96
+ if (index >= 0 && anchor) {
97
+ const row = contentRef.current?.querySelector(`:scope > [data-index="${index}"]`);
98
+ if (!row) return;
99
+ virtualizer.measureElement(row);
100
+ const height = Number.parseFloat(contentRef.current?.style.height ?? "0");
101
+ if (Math.abs(height - virtualizer.getTotalSize()) > .5) return;
102
+ const item = virtualizer.getVirtualItems().find((item) => item.index === index);
103
+ if (!item) return;
104
+ virtualizer.scrollToOffset(item.start + anchor.offset);
105
+ } else virtualizer.scrollToEnd();
106
+ restoring.current = false;
107
+ });
76
108
  return /* @__PURE__ */ jsxs("div", {
77
109
  "data-slot": messageScrollerContract.root.slot,
78
110
  className: cx(messageScrollerContract.root.className, className),
@@ -80,6 +112,7 @@ function VirtualMessageScroller({ items, getItemKey, renderItem, estimateSize =
80
112
  "data-recipe": "fill-host",
81
113
  children: [/* @__PURE__ */ jsx("div", {
82
114
  ref: viewportRef,
115
+ onScroll: () => recordAnchor(virtualizer),
83
116
  "aria-label": messageScrollerContract.viewport.ariaLabel,
84
117
  "data-slot": messageScrollerContract.viewport.slot,
85
118
  "data-recipe": "scroll-fade-y",
@@ -89,6 +122,7 @@ function VirtualMessageScroller({ items, getItemKey, renderItem, estimateSize =
89
122
  tabIndex: messageScrollerContract.viewport.tabIndex,
90
123
  children: items.length === 0 ? emptyState : /* @__PURE__ */ jsx("div", {
91
124
  ...resolvedContentProps,
125
+ ref: contentRef,
92
126
  "aria-live": contentAriaLive,
93
127
  "aria-relevant": contentAriaRelevant,
94
128
  className: cx(messageScrollerContract.content.virtualClassName, contentClassName),
@@ -19,7 +19,7 @@ declare function Plan({
19
19
  ref,
20
20
  ...props
21
21
  }: PlanProps & {
22
- ref?: React.Ref<HTMLDivElement>;
22
+ /** Ref forwarded to the component's rendered root element. */ref?: React.Ref<HTMLDivElement>;
23
23
  }): React.JSX.Element;
24
24
  interface PlanHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}
25
25
  declare function PlanHeader({