@mcp-b/react-components 0.40.0 → 0.42.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 (228) hide show
  1. package/dist/{AgentChat-CVO7xyLC.d.ts → AgentChat-DVr2giwD.d.ts} +1 -1
  2. package/dist/{AgentToolRunsContext-BCVqCtJ1.d.ts → AgentToolRunsContext-daY67hFM.d.ts} +12 -0
  3. package/dist/{CodeBlock-CWk1FVtm.js → CodeBlock-BjELA-_s.js} +1 -1
  4. package/dist/{FileTree-xqHYBw4g.js → FileTree-DMYRdT6R.js} +1 -1
  5. package/dist/McpConnectorForm-MRm1r59e.d.ts +39 -0
  6. package/dist/{Message-DBsHHhcM.d.ts → Message-D_vCVEGB.d.ts} +20 -1
  7. package/dist/{ThinkChatActivity-D6-_5Phw.d.ts → ThinkChatActivity-CsDql-ER.d.ts} +4 -1
  8. package/dist/{ThinkExecutionRun-lYYgyeE1.d.ts → ThinkExecutionRun-k8bpyXqt.d.ts} +3 -3
  9. package/dist/{WorkspaceFileView-Lab3om3F.js → WorkspaceFileView-DwdXiKku.js} +17 -22
  10. package/dist/{WorkspaceMessageResponse-Cy28WGSz.d.ts → WorkspaceMessageResponse-D66ty4FO.d.ts} +1 -1
  11. package/dist/components/agents-sdk/AgentActivity.js +4 -3
  12. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  13. package/dist/components/agents-sdk/AgentChat.js +42 -18
  14. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
  15. package/dist/components/agents-sdk/AgentToolRunsContext.js +12 -0
  16. package/dist/components/agents-sdk/BrowserLiveScreen.d.ts +135 -0
  17. package/dist/components/agents-sdk/BrowserLiveScreen.js +637 -0
  18. package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -2
  19. package/dist/components/agents-sdk/BrowserLiveView.js +6 -9
  20. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  21. package/dist/components/agents-sdk/BrowserRunPanel.d.ts +1 -1
  22. package/dist/components/agents-sdk/BrowserRunPanel.js +8 -13
  23. package/dist/components/agents-sdk/ManagerOffice.d.ts +168 -0
  24. package/dist/components/agents-sdk/ManagerOffice.js +698 -0
  25. package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
  26. package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
  27. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +8 -2
  28. package/dist/components/agents-sdk/McpPluginCatalog.js +82 -62
  29. package/dist/components/agents-sdk/McpServerPicker.d.ts +1 -1
  30. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  31. package/dist/components/agents-sdk/ModelSelector.js +1 -1
  32. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  33. package/dist/components/agents-sdk/SubagentRunDetails.d.ts +1 -9
  34. package/dist/components/agents-sdk/SubagentRunDetails.js +1 -9
  35. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  36. package/dist/components/agents-sdk/SubagentRunSelector.d.ts +4 -2
  37. package/dist/components/agents-sdk/SubagentRunSelector.js +7 -6
  38. package/dist/components/agents-sdk/ThinkChat.d.ts +4 -4
  39. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  40. package/dist/components/agents-sdk/ThinkChatActivity.js +18 -4
  41. package/dist/components/agents-sdk/ThinkChatToolPanels.js +7 -3
  42. package/dist/components/agents-sdk/ThinkExecutionDetail.d.ts +1 -1
  43. package/dist/components/agents-sdk/ThinkExecutionDetail.js +45 -43
  44. package/dist/components/agents-sdk/ThinkExecutionRun.d.ts +2 -2
  45. package/dist/components/agents-sdk/ThinkExecutionRun.js +5 -6
  46. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
  47. package/dist/components/agents-sdk/ThinkExecutionStatus.js +8 -12
  48. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +8 -1
  49. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +43 -37
  50. package/dist/components/agents-sdk/ThinkFullApp.d.ts +42 -78
  51. package/dist/components/agents-sdk/ThinkFullApp.js +121 -202
  52. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
  53. package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -1
  54. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +1 -1
  55. package/dist/components/agents-sdk/ThinkRoutineDetail.js +4 -15
  56. package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
  57. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +7 -6
  58. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +112 -140
  59. package/dist/components/agents-sdk/ThinkRoutineRuns.d.ts +1 -1
  60. package/dist/components/agents-sdk/ThinkRoutineRuns.js +3 -10
  61. package/dist/components/agents-sdk/ThinkThreadPicker.js +2 -1
  62. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  63. package/dist/components/agents-sdk/WorkspaceExplorer.js +2 -1
  64. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  65. package/dist/components/agents-sdk/WorkspaceHeader.js +2 -1
  66. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  67. package/dist/components/agents-sdk/WorkspaceMountManager.js +11 -11
  68. package/dist/components/ai-sdk/Activity.js +1 -1
  69. package/dist/components/ai-sdk/AgentAttention.d.ts +1 -1
  70. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  71. package/dist/components/ai-sdk/Approval.js +1 -1
  72. package/dist/components/ai-sdk/Artifact.js +1 -1
  73. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  74. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  75. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  76. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  77. package/dist/components/ai-sdk/Conversation.js +1 -1
  78. package/dist/components/ai-sdk/Goal.js +1 -1
  79. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  80. package/dist/components/ai-sdk/Message.d.ts +2 -2
  81. package/dist/components/ai-sdk/Message.js +25 -3
  82. package/dist/components/ai-sdk/MessageScroller.js +3 -2
  83. package/dist/components/ai-sdk/MessageScrollerVirtual.js +2 -1
  84. package/dist/components/ai-sdk/Plan.js +1 -1
  85. package/dist/components/ai-sdk/PromptInput.js +21 -15
  86. package/dist/components/ai-sdk/Queue.d.ts +4 -4
  87. package/dist/components/ai-sdk/Queue.js +6 -15
  88. package/dist/components/ai-sdk/Reasoning.js +1 -1
  89. package/dist/components/ai-sdk/Sources.js +1 -1
  90. package/dist/components/ai-sdk/Task.d.ts +2 -2
  91. package/dist/components/ai-sdk/Task.js +2 -2
  92. package/dist/components/extension/ChatGptSignInScreen.js +2 -1
  93. package/dist/components/extension/CodexModelSelector.js +1 -1
  94. package/dist/components/extension/ConversationTabPicker.js +1 -1
  95. package/dist/components/foundations/Avatar.d.ts +1 -10
  96. package/dist/components/foundations/Avatar.js +1 -10
  97. package/dist/components/foundations/Checkbox.js +1 -1
  98. package/dist/components/foundations/CheckboxGroup.js +1 -0
  99. package/dist/components/foundations/ContextMenu.js +1 -1
  100. package/dist/components/foundations/LinkButton.d.ts +12 -10
  101. package/dist/components/foundations/LinkButton.js +15 -11
  102. package/dist/components/foundations/Menubar.js +1 -1
  103. package/dist/components/foundations/SearchField.js +1 -1
  104. package/dist/components/foundations/Select.js +1 -1
  105. package/dist/components/foundations/Stepper.js +1 -1
  106. package/dist/components/foundations/Toast.js +1 -1
  107. package/dist/components/foundations/ToggleGroup.d.ts +79 -1
  108. package/dist/components/foundations/icons.d.ts +2 -2
  109. package/dist/components/foundations/icons.js +2 -2
  110. package/dist/components/general-purpose/AppFrame.js +1 -0
  111. package/dist/components/general-purpose/AppTopBar.d.ts +6 -0
  112. package/dist/components/general-purpose/AppTopBar.js +2 -1
  113. package/dist/components/general-purpose/Commit.d.ts +2 -2
  114. package/dist/components/general-purpose/Commit.js +5 -13
  115. package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
  116. package/dist/components/general-purpose/EnvironmentVariables.js +4 -7
  117. package/dist/components/general-purpose/FileTree.js +1 -1
  118. package/dist/components/general-purpose/PricingBillingToggle.js +4 -9
  119. package/dist/components/general-purpose/PricingPlanCard.js +15 -14
  120. package/dist/components/general-purpose/ResizableSidePanel.d.ts +8 -0
  121. package/dist/components/general-purpose/ResizableSidePanel.js +3 -2
  122. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +105 -2
  123. package/dist/components/general-purpose/ResponsiveSidebarShell.js +112 -56
  124. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  125. package/dist/components/general-purpose/Terminal.d.ts +1 -1
  126. package/dist/components/general-purpose/Terminal.js +4 -12
  127. package/dist/components/general-purpose/TestResults.d.ts +1 -1
  128. package/dist/components/general-purpose/TestResults.js +8 -21
  129. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  130. package/dist/components/general-purpose/WebPreview.d.ts +4 -1
  131. package/dist/components/general-purpose/WebPreview.js +6 -14
  132. package/dist/components/nanites/AgentConnection.js +2 -2
  133. package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
  134. package/dist/components/nanites/AgentToolDetail.js +6 -5
  135. package/dist/components/nanites/NaniteScene.js +11 -11
  136. package/dist/{copy-button-Bc7jsYv_.js → copy-button-lys9N_aI.js} +1 -1
  137. package/dist/{icons-DwgNir1Q.d.ts → icons-0corjfxR.d.ts} +1 -16
  138. package/dist/{icons-MmIXciMO.js → icons-CVFSeTJn.js} +2 -5
  139. package/dist/styles/accordion.css +1 -0
  140. package/dist/styles/action-guide.css +8 -7
  141. package/dist/styles/activity-header.css +13 -39
  142. package/dist/styles/activity.css +40 -55
  143. package/dist/styles/agent-attention.css +19 -19
  144. package/dist/styles/agent-chat.css +94 -42
  145. package/dist/styles/agent-connection.css +10 -4
  146. package/dist/styles/agent-tool-detail.css +5 -15
  147. package/dist/styles/alert-dialog.css +4 -4
  148. package/dist/styles/app-frame.css +1 -3
  149. package/dist/styles/app-icon.css +12 -18
  150. package/dist/styles/app-top-bar.css +31 -9
  151. package/dist/styles/approval.css +1 -0
  152. package/dist/styles/artifact.css +6 -6
  153. package/dist/styles/attachment-preview.css +5 -4
  154. package/dist/styles/avatar.css +6 -22
  155. package/dist/styles/base.css +2 -8
  156. package/dist/styles/browser-live-screen.css +38 -0
  157. package/dist/styles/browser-live-view.css +12 -4
  158. package/dist/styles/browser-replay.css +6 -6
  159. package/dist/styles/browser-run-panel.css +21 -18
  160. package/dist/styles/button.css +15 -6
  161. package/dist/styles/card.css +5 -5
  162. package/dist/styles/chatgpt-sign-in-screen.css +6 -6
  163. package/dist/styles/code-block.css +14 -13
  164. package/dist/styles/codex-model-selector.css +2 -0
  165. package/dist/styles/collapsible.css +1 -0
  166. package/dist/styles/commit.css +30 -7
  167. package/dist/styles/context.css +9 -9
  168. package/dist/styles/conversation-tab-picker.css +1 -1
  169. package/dist/styles/conversation.css +6 -8
  170. package/dist/styles/dialog.css +4 -4
  171. package/dist/styles/empty-state.css +3 -3
  172. package/dist/styles/environment-variables.css +12 -9
  173. package/dist/styles/field.css +2 -1
  174. package/dist/styles/fieldset.css +2 -2
  175. package/dist/styles/index.css +8 -7
  176. package/dist/styles/manager-office.css +480 -0
  177. package/dist/styles/mcp-plugin-catalog.css +44 -39
  178. package/dist/styles/mcp-server-picker.css +4 -4
  179. package/dist/styles/message-scroller.css +9 -11
  180. package/dist/styles/message.css +74 -28
  181. package/dist/styles/nanite-scene.css +9 -9
  182. package/dist/styles/navigation-menu.css +1 -0
  183. package/dist/styles/plan.css +13 -12
  184. package/dist/styles/pricing-page.css +37 -30
  185. package/dist/styles/prompt-input.css +26 -18
  186. package/dist/styles/queue.css +1 -0
  187. package/dist/styles/reasoning.css +1 -9
  188. package/dist/styles/recipes.css +29 -58
  189. package/dist/styles/responsive-sidebar-shell.css +107 -29
  190. package/dist/styles/separator.css +5 -5
  191. package/dist/styles/sources.css +4 -4
  192. package/dist/styles/stepper.css +1 -0
  193. package/dist/styles/streamdown.css +31 -21
  194. package/dist/styles/subagent-run.css +20 -3
  195. package/dist/styles/tabs.css +1 -0
  196. package/dist/styles/task.css +5 -17
  197. package/dist/styles/terminal.css +29 -10
  198. package/dist/styles/test-results.css +16 -7
  199. package/dist/styles/think-execution-status.css +10 -26
  200. package/dist/styles/think-execution-workbench.css +98 -108
  201. package/dist/styles/think-full-app.css +75 -225
  202. package/dist/styles/think-routine-library.css +26 -95
  203. package/dist/styles/think-thread-picker.css +17 -12
  204. package/dist/styles/transition-surface.css +7 -8
  205. package/dist/styles/utilities.css +75 -0
  206. package/dist/styles/web-preview.css +46 -22
  207. package/dist/styles/workspace-explorer.css +22 -44
  208. package/dist/styles/workspace-mount-manager.css +24 -2
  209. package/dist/utils/favicon.d.ts +6 -1
  210. package/dist/utils/favicon.js +18 -1
  211. package/package.json +37 -35
  212. package/dist/ResponsiveSidebarShell-DWjULskY.d.ts +0 -68
  213. package/dist/ToggleGroup-_pQMyHGM.d.ts +0 -80
  214. package/dist/components/agents-sdk/AgentActivityPreview.d.ts +0 -46
  215. package/dist/components/agents-sdk/AgentActivityPreview.js +0 -93
  216. package/dist/components/agents-sdk/ThinkThreadShell.d.ts +0 -38
  217. package/dist/components/agents-sdk/ThinkThreadShell.js +0 -27
  218. package/dist/components/foundations/Badge.d.ts +0 -62
  219. package/dist/components/foundations/Badge.js +0 -55
  220. package/dist/components/foundations/StatusPill.d.ts +0 -43
  221. package/dist/components/foundations/StatusPill.js +0 -35
  222. package/dist/components/general-purpose/Shell.d.ts +0 -149
  223. package/dist/components/general-purpose/Shell.js +0 -116
  224. package/dist/styles/agent-activity-preview-overlay.css +0 -169
  225. package/dist/styles/agent-activity-preview.css +0 -209
  226. package/dist/styles/badge.css +0 -120
  227. package/dist/styles/shell.css +0 -122
  228. package/dist/styles/status-pill.css +0 -39
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { H as PlayIcon, Y as SpinnerIcon, b as EllipsisIcon, f as ChevronDownIcon, nt as WarningIcon } from "../../icons-MmIXciMO.js";
3
- import { Button, buttonVariants } from "../foundations/Button.js";
2
+ import { K as SpinnerIcon, y as EllipsisIcon, z as PlayIcon } from "../../icons-CVFSeTJn.js";
3
+ import { buttonVariants } from "../foundations/Button.js";
4
4
  import { Menu } from "../foundations/Menu.js";
5
5
  import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
6
6
  import { n as isPlainPrimaryLinkActivation, t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
@@ -18,64 +18,62 @@ function RoutineTopBarActions({ appBarActions, busy, onDelete, editLink, onRun,
18
18
  const moreActionsRef = React.useRef(null);
19
19
  const hasMenu = Boolean(editLink || onDelete);
20
20
  if (!appBarActions && !onRun && !hasMenu) return null;
21
- return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(AppTopBar.Trailing, {
22
- "aria-label": "Schedule actions",
23
- children: [
24
- appBarActions,
25
- onRun ? /* @__PURE__ */ jsx(AppTopBar.Button, {
26
- label: "Run schedule",
27
- tooltip: "Run now",
28
- disabled: busy,
29
- onClick: onRun,
30
- children: busy ? /* @__PURE__ */ jsx(SpinnerIcon, {}) : /* @__PURE__ */ jsx(PlayIcon, {})
31
- }) : null,
32
- hasMenu ? /* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */ jsx(AppTopBar.Button, {
33
- label: "More schedule actions",
34
- tooltip: "More actions",
21
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
22
+ appBarActions,
23
+ onRun ? /* @__PURE__ */ jsx(AppTopBar.Button, {
24
+ label: "Run schedule",
25
+ tooltip: "Run now",
26
+ disabled: busy,
27
+ onClick: onRun,
28
+ children: busy ? /* @__PURE__ */ jsx(SpinnerIcon, {}) : /* @__PURE__ */ jsx(PlayIcon, {})
29
+ }) : null,
30
+ hasMenu ? /* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */ jsx(AppTopBar.Button, {
31
+ label: "More schedule actions",
32
+ tooltip: "More actions",
33
+ disabled: busy,
34
+ render: /* @__PURE__ */ jsx(Menu.Trigger, {
35
+ ref: moreActionsRef,
36
+ unstyled: true
37
+ }),
38
+ children: /* @__PURE__ */ jsx(EllipsisIcon, {})
39
+ }), /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
40
+ align: "end",
41
+ sideOffset: 4,
42
+ children: /* @__PURE__ */ jsxs(Menu.Popup, { children: [editLink ? /* @__PURE__ */ jsx(Menu.Item, {
43
+ render: editLink,
44
+ children: "Edit schedule"
45
+ }) : null, onDelete ? /* @__PURE__ */ jsx(Menu.Item, {
46
+ variant: "destructive",
35
47
  disabled: busy,
36
- render: /* @__PURE__ */ jsx(Menu.Trigger, {
37
- ref: moreActionsRef,
38
- unstyled: true
39
- }),
40
- children: /* @__PURE__ */ jsx(EllipsisIcon, {})
41
- }), /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
42
- align: "end",
43
- sideOffset: 4,
44
- children: /* @__PURE__ */ jsxs(Menu.Popup, { children: [editLink ? /* @__PURE__ */ jsx(Menu.Item, {
45
- render: editLink,
46
- children: "Edit schedule"
47
- }) : null, onDelete ? /* @__PURE__ */ jsx(Menu.Item, {
48
- variant: "destructive",
49
- disabled: busy,
50
- onClick: () => setDeleteOpen(true),
51
- children: "Delete schedule"
52
- }) : null] })
53
- }) })] }) : null
54
- ]
55
- }), onDelete ? /* @__PURE__ */ jsx(AlertDialog.Root, {
56
- open: deleteOpen,
57
- onOpenChange: setDeleteOpen,
58
- children: /* @__PURE__ */ jsxs(AlertDialog.Portal, { children: [/* @__PURE__ */ jsx(AlertDialog.Backdrop, {}), /* @__PURE__ */ jsx(AlertDialog.Viewport, { children: /* @__PURE__ */ jsxs(AlertDialog.Popup, {
59
- finalFocus: moreActionsRef,
60
- children: [
61
- /* @__PURE__ */ jsxs(AlertDialog.Title, { children: [
62
- "Delete ",
63
- routineName,
64
- "?"
65
- ] }),
66
- /* @__PURE__ */ jsx(AlertDialog.Description, { children: "This permanently deletes the schedule and stops its future runs." }),
67
- /* @__PURE__ */ jsxs(AlertDialog.Footer, { children: [/* @__PURE__ */ jsx(AlertDialog.Close, {
68
- disabled: busy,
69
- children: "Cancel"
70
- }), /* @__PURE__ */ jsx(AlertDialog.Close, {
71
- color: "destructive",
72
- disabled: busy,
73
- onClick: onDelete,
74
- children: "Delete schedule"
75
- })] })
76
- ]
77
- }) })] })
78
- }) : null] });
48
+ onClick: () => setDeleteOpen(true),
49
+ children: "Delete schedule"
50
+ }) : null] })
51
+ }) })] }) : null,
52
+ onDelete ? /* @__PURE__ */ jsx(AlertDialog.Root, {
53
+ open: deleteOpen,
54
+ onOpenChange: setDeleteOpen,
55
+ children: /* @__PURE__ */ jsxs(AlertDialog.Portal, { children: [/* @__PURE__ */ jsx(AlertDialog.Backdrop, {}), /* @__PURE__ */ jsx(AlertDialog.Viewport, { children: /* @__PURE__ */ jsxs(AlertDialog.Popup, {
56
+ finalFocus: moreActionsRef,
57
+ children: [
58
+ /* @__PURE__ */ jsxs(AlertDialog.Title, { children: [
59
+ "Delete ",
60
+ routineName,
61
+ "?"
62
+ ] }),
63
+ /* @__PURE__ */ jsx(AlertDialog.Description, { children: "This permanently deletes the schedule and stops its future runs." }),
64
+ /* @__PURE__ */ jsxs(AlertDialog.Footer, { children: [/* @__PURE__ */ jsx(AlertDialog.Close, {
65
+ disabled: busy,
66
+ children: "Cancel"
67
+ }), /* @__PURE__ */ jsx(AlertDialog.Close, {
68
+ color: "destructive",
69
+ disabled: busy,
70
+ onClick: onDelete,
71
+ children: "Delete schedule"
72
+ })] })
73
+ ]
74
+ }) })] })
75
+ }) : null
76
+ ] });
79
77
  }
80
78
  /**
81
79
  * Full-page, cross-agent routine library. This intentionally does not live in
@@ -85,7 +83,7 @@ function RoutineTopBarActions({ appBarActions, busy, onDelete, editLink, onRun,
85
83
  * and `ThinkRoutineRuns`; consumers compose `ThinkRoutineForm` in their create
86
84
  * route and may also use these surfaces independently.
87
85
  */
88
- function ThinkRoutineLibrary({ appBarActions, appBarLeading, className, createRoutineLink, error: catalogError, onDeleteRoutine, onRoutineEnabledChange, onRunRoutine, renderEditRoutineLink, renderRoutineLink, renderRoutineDetail, renderRunLink, ref, routines, selectedRoutineId, showOwner = true, ...props }) {
86
+ function ThinkRoutineLibrary({ bar, className, createRoutineLink, error: catalogError, onDeleteRoutine, onRoutineEnabledChange, onRunRoutine, renderEditRoutineLink, renderRoutineLink, renderRoutineDetail, renderRunLink, ref, routines, selectedRoutineId, showOwner = true, ...props }) {
89
87
  const [busy, setBusy] = React.useState(false);
90
88
  const [announcement, setAnnouncement] = React.useState("");
91
89
  const [actionError, setActionError] = React.useState(null);
@@ -110,91 +108,65 @@ function ThinkRoutineLibrary({ appBarActions, appBarLeading, className, createRo
110
108
  renderRunLink: renderRunLink ? (run) => renderRunLink(selectedRoutine, run) : void 0,
111
109
  onEnabledChange: onRoutineEnabledChange ? (enabled) => void perform(() => onRoutineEnabledChange(selectedRoutine, enabled), `${selectedRoutine.name} ${enabled ? "activated" : "paused"}.`) : void 0
112
110
  } : void 0;
113
- return /* @__PURE__ */ jsxs("div", {
111
+ return /* @__PURE__ */ jsxs(ResponsiveSidebarShell, {
114
112
  ref,
115
113
  className: cx("think-routine-library", className),
116
114
  ...props,
117
- children: [
118
- catalogError || actionError ? /* @__PURE__ */ jsxs("div", {
119
- className: "think-routine-library__error",
120
- role: "alert",
121
- children: [/* @__PURE__ */ jsx(WarningIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", { children: catalogError || actionError })]
122
- }) : null,
123
- /* @__PURE__ */ jsx(ResponsiveSidebarShell, {
124
- className: "think-routine-library__layout",
125
- sidebarLabel: "schedules",
126
- defaultSidebarOpen: false,
127
- toolbarLabel: "Schedule navigation controls",
128
- showMainLabel: "Show selected schedule",
129
- topBar: ({ sidebarId, sidebarOpen, sidebarToggle, toggleSidebar }) => /* @__PURE__ */ jsxs(AppTopBar.Root, {
130
- "aria-label": "Schedule controls",
131
- children: [
132
- /* @__PURE__ */ jsxs(AppTopBar.Leading, { children: [sidebarToggle, appBarLeading] }),
133
- /* @__PURE__ */ jsxs(AppTopBar.Title, { children: [/* @__PURE__ */ jsx("span", {
134
- className: "think-routine-library__app-title",
135
- children: selectedRoutine?.name ?? "Schedules"
136
- }), selectedRoutine ? /* @__PURE__ */ jsxs(Button, {
137
- type: "button",
138
- variant: "ghost",
139
- color: "neutral",
140
- size: "sm",
141
- className: "think-routine-library__schedule-trigger",
142
- "aria-controls": sidebarId,
143
- "aria-expanded": sidebarOpen,
144
- onClick: (event) => toggleSidebar(event.currentTarget),
145
- children: [/* @__PURE__ */ jsx("span", { children: selectedRoutine.name }), /* @__PURE__ */ jsx(ChevronDownIcon, { "aria-hidden": "true" })]
146
- }) : null] }),
147
- /* @__PURE__ */ jsx(RoutineTopBarActions, {
148
- appBarActions,
149
- busy,
150
- routineName: selectedRoutine?.name ?? "schedule",
151
- editLink: selectedRoutine && renderEditRoutineLink ? renderEditRoutineLink(selectedRoutine) : void 0,
152
- onRun: selectedRoutine && onRunRoutine ? () => void perform(() => onRunRoutine(selectedRoutine), `Started ${selectedRoutine.name}.`) : void 0,
153
- onDelete: selectedRoutine && onDeleteRoutine ? () => void perform(() => onDeleteRoutine(selectedRoutine), `Deleted ${selectedRoutine.name}.`) : void 0
154
- })
155
- ]
156
- }),
157
- sidebar: ({ closeSidebarOnCompact }) => /* @__PURE__ */ jsx(ThinkRoutineBrowser, {
158
- routines,
159
- selectedRoutineId,
160
- showOwner,
161
- renderRoutineLink,
162
- createRoutineLink,
163
- onRoutineLinkClick: (event) => {
164
- if (!isPlainPrimaryLinkActivation(event)) return;
165
- closeSidebarOnCompact();
166
- }
167
- }),
168
- children: /* @__PURE__ */ jsx("main", {
169
- className: "think-routine-library__main",
170
- children: detailProps ? /* @__PURE__ */ jsx(React.Fragment, { children: renderRoutineDetail ? renderRoutineDetail({
171
- ...detailProps,
172
- defaultDetail: /* @__PURE__ */ jsx(ThinkRoutineDetail, {
173
- ...detailProps,
174
- showOwner
175
- })
176
- }) : /* @__PURE__ */ jsx(ThinkRoutineDetail, {
177
- ...detailProps,
178
- showOwner
179
- }) }, detailProps.routine.id) : /* @__PURE__ */ jsx(EmptyState, {
180
- className: "think-routine-library__empty-detail",
181
- title: selectedRoutineId ? "Schedule unavailable" : routines.length ? "Select a schedule" : "No schedules yet",
182
- description: routines.length ? "Select an available schedule." : "Create a schedule to run recurring Think prompts.",
183
- children: !routines.length && createRoutineLink ? /* @__PURE__ */ jsx(NavigationLink, {
184
- render: createRoutineLink,
185
- className: buttonVariants({ color: "primary" }),
186
- children: "Create schedule"
187
- }) : null
188
- })
115
+ sidebarLabel: "schedules",
116
+ showMainLabel: "Show selected schedule",
117
+ error: catalogError || actionError || void 0,
118
+ bar: {
119
+ ...bar,
120
+ label: "Schedule controls",
121
+ title: bar?.title ?? selectedRoutine?.name ?? "Schedules",
122
+ compactTitleTrigger: selectedRoutine ? /* @__PURE__ */ jsx("span", { children: selectedRoutine.name }) : void 0,
123
+ actions: /* @__PURE__ */ jsx(RoutineTopBarActions, {
124
+ appBarActions: bar?.actions,
125
+ busy,
126
+ routineName: selectedRoutine?.name ?? "schedule",
127
+ editLink: selectedRoutine && renderEditRoutineLink ? renderEditRoutineLink(selectedRoutine) : void 0,
128
+ onRun: selectedRoutine && onRunRoutine ? () => void perform(() => onRunRoutine(selectedRoutine), `Started ${selectedRoutine.name}.`) : void 0,
129
+ onDelete: selectedRoutine && onDeleteRoutine ? () => void perform(() => onDeleteRoutine(selectedRoutine), `Deleted ${selectedRoutine.name}.`) : void 0
130
+ })
131
+ },
132
+ sidebar: ({ closeSidebarOnCompact }) => /* @__PURE__ */ jsx(ThinkRoutineBrowser, {
133
+ routines,
134
+ selectedRoutineId,
135
+ showOwner,
136
+ renderRoutineLink,
137
+ createRoutineLink,
138
+ onRoutineLinkClick: (event) => {
139
+ if (!isPlainPrimaryLinkActivation(event)) return;
140
+ closeSidebarOnCompact();
141
+ }
142
+ }),
143
+ children: [/* @__PURE__ */ jsx("main", {
144
+ className: "think-routine-library__main",
145
+ children: detailProps ? /* @__PURE__ */ jsx(React.Fragment, { children: renderRoutineDetail ? renderRoutineDetail({
146
+ ...detailProps,
147
+ defaultDetail: /* @__PURE__ */ jsx(ThinkRoutineDetail, {
148
+ ...detailProps,
149
+ showOwner
189
150
  })
190
- }),
191
- /* @__PURE__ */ jsx("div", {
192
- className: "think-routine-library__status sigvelo-visually-hidden",
193
- role: "status",
194
- "aria-atomic": "true",
195
- children: announcement
151
+ }) : /* @__PURE__ */ jsx(ThinkRoutineDetail, {
152
+ ...detailProps,
153
+ showOwner
154
+ }) }, detailProps.routine.id) : /* @__PURE__ */ jsx(EmptyState, {
155
+ className: "think-routine-library__empty-detail",
156
+ title: selectedRoutineId ? "Schedule unavailable" : routines.length ? "Select a schedule" : "No schedules yet",
157
+ description: routines.length ? "Select an available schedule." : "Create a schedule to run recurring Think prompts.",
158
+ children: !routines.length && createRoutineLink ? /* @__PURE__ */ jsx(NavigationLink, {
159
+ render: createRoutineLink,
160
+ className: buttonVariants({ color: "primary" }),
161
+ children: "Create schedule"
162
+ }) : null
196
163
  })
197
- ]
164
+ }), /* @__PURE__ */ jsx("div", {
165
+ className: "think-routine-library__status sigvelo-visually-hidden",
166
+ role: "status",
167
+ "aria-atomic": "true",
168
+ children: announcement
169
+ })]
198
170
  });
199
171
  }
200
172
  //#endregion
@@ -1,4 +1,4 @@
1
- import { t as ThinkExecutionRun } from "../../ThinkExecutionRun-lYYgyeE1.js";
1
+ import { t as ThinkExecutionRun } from "../../ThinkExecutionRun-k8bpyXqt.js";
2
2
  import * as React from "react";
3
3
 
4
4
  //#region src/components/agents-sdk/ThinkRoutineRuns.d.ts
@@ -1,7 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
2
  import { buttonVariants } from "../foundations/Button.js";
3
3
  import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
4
- import { Badge } from "../foundations/Badge.js";
5
4
  import { EmptyState } from "../foundations/EmptyState.js";
6
5
  import { getThinkExecutionRunAccessibleName, getThinkExecutionRunId, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
7
6
  import { ThinkExecutionRunSummary } from "./ThinkExecutionStatus.js";
@@ -16,18 +15,12 @@ function ThinkRoutineRuns({ className, runs, title = "Recent runs", emptyState =
16
15
  className: cx("think-routine-runs", "think-routine-library__runs", className),
17
16
  "aria-labelledby": titleId,
18
17
  ...props,
19
- children: [/* @__PURE__ */ jsxs("div", {
18
+ children: [/* @__PURE__ */ jsx("div", {
20
19
  className: "think-routine-library__section-heading",
21
- children: [/* @__PURE__ */ jsx("h2", {
20
+ children: /* @__PURE__ */ jsx("h2", {
22
21
  id: titleId,
23
22
  children: title
24
- }), /* @__PURE__ */ jsx(Badge, {
25
- variant: "ghost",
26
- color: "neutral",
27
- size: "sm",
28
- "aria-label": `${runs.length} recorded runs`,
29
- children: runs.length
30
- })]
23
+ })
31
24
  }), runs.length ? /* @__PURE__ */ jsx("ol", {
32
25
  className: "think-routine-library__run-list",
33
26
  children: runs.map((run) => {
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { U as PlusIcon, Y as SpinnerIcon, nt as WarningIcon, t as ArchiveIcon, v as DotIcon } from "../../icons-MmIXciMO.js";
2
+ import { $ as WarningIcon, B as PlusIcon, K as SpinnerIcon, _ as DotIcon, t as ArchiveIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Button, buttonVariants } from "../foundations/Button.js";
4
4
  import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
5
5
  import { n as isPlainPrimaryLinkActivation, t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
@@ -156,6 +156,7 @@ function ThinkThreadPicker({ threads, renderThreadLink, onCreate, onSelect, onDe
156
156
  ref,
157
157
  className: cx("think-thread-picker", className),
158
158
  ...props,
159
+ "data-recipe": "fill-host",
159
160
  children: [
160
161
  /* @__PURE__ */ jsxs("header", {
161
162
  className: "think-thread-picker__header",
@@ -1,5 +1,5 @@
1
1
  import { SearchField } from "../foundations/SearchField.js";
2
- import { i as FileTreeFolder, r as FileTreeFile, t as FileTree } from "../../FileTree-xqHYBw4g.js";
2
+ import { i as FileTreeFolder, r as FileTreeFile, t as FileTree } from "../../FileTree-DMYRdT6R.js";
3
3
  import { WorkspaceHeader } from "./WorkspaceHeader.js";
4
4
  import * as React from "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -2,7 +2,7 @@ import { t as cx } from "../../class-names-BiMDVpUo.js";
2
2
  import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
3
3
  import { a as WorkspaceNavigationRestorationBoundary, n as WorkspaceNavigationProvider, o as useRequiredWorkspaceNavigationRestoration, r as resolveWorkspaceLink } from "../../WorkspaceLink-DtH66bAY.js";
4
4
  import { WorkspaceBrowser } from "./WorkspaceBrowser.js";
5
- import { t as WorkspaceFileView } from "../../WorkspaceFileView-Lab3om3F.js";
5
+ import { t as WorkspaceFileView } from "../../WorkspaceFileView-DwdXiKku.js";
6
6
  import * as React from "react";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  //#region src/components/agents-sdk/WorkspaceExplorer.tsx
@@ -89,6 +89,7 @@ function WorkspaceExplorerContent({ workspace, navigation, className, title = "W
89
89
  return /* @__PURE__ */ jsx("div", {
90
90
  ref: mergeRefs(explorerRef, ref),
91
91
  className: cx("workspace-explorer", className),
92
+ "data-recipe": "fill-host",
92
93
  ...props,
93
94
  children: fileDestination ? /* @__PURE__ */ jsx(WorkspaceNavigationProvider, {
94
95
  root: workspace.root,
@@ -1,2 +1,2 @@
1
- import { t as WorkspaceFileView } from "../../WorkspaceFileView-Lab3om3F.js";
1
+ import { t as WorkspaceFileView } from "../../WorkspaceFileView-DwdXiKku.js";
2
2
  export { WorkspaceFileView };
@@ -1,4 +1,4 @@
1
- import { G as RefreshIcon } from "../../icons-MmIXciMO.js";
1
+ import { H as RefreshIcon } from "../../icons-CVFSeTJn.js";
2
2
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
3
3
  import "react";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -7,6 +7,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
7
  function WorkspaceHeader({ title, fileCount, path, leading, actions, copyAction, isRefreshing, onRefresh }) {
8
8
  return /* @__PURE__ */ jsxs(AppTopBar.Root, {
9
9
  className: "workspace-explorer__header",
10
+ titleAlign: "start",
10
11
  "aria-label": "Workspace controls",
11
12
  children: [
12
13
  /* @__PURE__ */ jsx(AppTopBar.Leading, { children: leading }),
@@ -1,2 +1,2 @@
1
- import { i as WorkspaceMessageResponseProps, n as WorkspaceHtmlArtifactRenderer, r as WorkspaceMessageResponse, t as WorkspaceHtmlArtifactRenderInput } from "../../WorkspaceMessageResponse-Cy28WGSz.js";
1
+ import { i as WorkspaceMessageResponseProps, n as WorkspaceHtmlArtifactRenderer, r as WorkspaceMessageResponse, t as WorkspaceHtmlArtifactRenderInput } from "../../WorkspaceMessageResponse-D66ty4FO.js";
2
2
  export { WorkspaceHtmlArtifactRenderInput, WorkspaceHtmlArtifactRenderer, WorkspaceMessageResponse, WorkspaceMessageResponseProps };
@@ -1,9 +1,8 @@
1
- import { z as PaperclipIcon } from "../../icons-MmIXciMO.js";
1
+ import { $ as WarningIcon, I as PaperclipIcon, T as InfoIcon, d as CheckIcon, tt as XIcon } from "../../icons-CVFSeTJn.js";
2
2
  import { Button } from "../foundations/Button.js";
3
3
  import { Popover } from "../foundations/Popover.js";
4
4
  import { Card, CardAction, CardFooter, CardHeader, CardTitle } from "../foundations/Card.js";
5
5
  import { EmptyState } from "../foundations/EmptyState.js";
6
- import { StatusPill } from "../foundations/StatusPill.js";
7
6
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
8
7
  import "react";
9
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -14,11 +13,11 @@ function permissionLabel(permission) {
14
13
  if (permission === "denied") return "Access denied";
15
14
  return "Unavailable";
16
15
  }
17
- function permissionColor(permission) {
18
- if (permission === "granted") return "success";
19
- if (permission === "prompt") return "warning";
20
- if (permission === "denied") return "destructive";
21
- return "neutral";
16
+ function permissionIcon(permission) {
17
+ if (permission === "granted") return /* @__PURE__ */ jsx(CheckIcon, {});
18
+ if (permission === "prompt") return /* @__PURE__ */ jsx(InfoIcon, {});
19
+ if (permission === "denied") return /* @__PURE__ */ jsx(XIcon, {});
20
+ return /* @__PURE__ */ jsx(WarningIcon, {});
22
21
  }
23
22
  /** Controlled local-mount presentation; native handles and persistence stay in the host. */
24
23
  function WorkspaceMountManager({ mounts, adding = false, busyMountId = null, error, onAdd, onReconnect, onRemove, triggerLabel = "Attach local folders" }) {
@@ -55,10 +54,11 @@ function WorkspaceMountManager({ mounts, adding = false, busyMountId = null, err
55
54
  children: [/* @__PURE__ */ jsxs(CardHeader, { children: [/* @__PURE__ */ jsx(CardTitle, {
56
55
  className: "workspace-mount-manager__path",
57
56
  children: /* @__PURE__ */ jsx("code", { children: mount.path })
58
- }), /* @__PURE__ */ jsx(CardAction, { children: /* @__PURE__ */ jsx(StatusPill, {
59
- color: permissionColor(mount.permission),
60
- size: "sm",
61
- children: permissionLabel(mount.permission)
57
+ }), /* @__PURE__ */ jsx(CardAction, { children: /* @__PURE__ */ jsxs("span", {
58
+ className: "workspace-mount-manager__permission",
59
+ "data-permission": mount.permission,
60
+ role: "status",
61
+ children: [permissionIcon(mount.permission), permissionLabel(mount.permission)]
62
62
  }) })] }), /* @__PURE__ */ jsxs(CardFooter, { children: [mount.permission !== "granted" ? /* @__PURE__ */ jsx(Button, {
63
63
  type: "button",
64
64
  size: "sm",
@@ -1,7 +1,7 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "../foundations/Collapsible.js";
3
3
  import { useExpansionState } from "./ExpansionState.js";
4
- import { m as ChevronRightIcon } from "../../icons-MmIXciMO.js";
4
+ import { p as ChevronRightIcon } from "../../icons-CVFSeTJn.js";
5
5
  import * as React from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region src/components/ai-sdk/Activity.tsx
@@ -2,7 +2,7 @@ import { r as ButtonProps } from "../../Button-CZt3yywF.js";
2
2
  import * as React from "react";
3
3
 
4
4
  //#region src/components/ai-sdk/AgentAttention.d.ts
5
- type AgentAttentionTone = "neutral" | "warning";
5
+ type AgentAttentionTone = "neutral" | "attention";
6
6
  interface AgentAttentionProps extends React.HTMLAttributes<HTMLDivElement> {
7
7
  /** Visual emphasis only; products retain ownership of the underlying state. */
8
8
  tone?: AgentAttentionTone;
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { it as XIcon } from "../../icons-MmIXciMO.js";
2
+ import { tt as XIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { IconButton } from "../foundations/IconButton.js";
5
5
  import { PromptInputTray } from "./PromptInput.js";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { V as PencilIcon } from "../../icons-MmIXciMO.js";
2
+ import { R as PencilIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { Kbd } from "../foundations/Kbd.js";
5
5
  import { a as formatUnknownValue } from "../../format-DB2mX9DA.js";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { Y as SpinnerIcon, it as XIcon, nt as WarningIcon } from "../../icons-MmIXciMO.js";
2
+ import { $ as WarningIcon, K as SpinnerIcon, tt as XIcon } from "../../icons-CVFSeTJn.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";
@@ -1,5 +1,5 @@
1
1
  import { Collapsible } from "../foundations/Collapsible.js";
2
- import { O as IconProps } from "../../icons-DwgNir1Q.js";
2
+ import { E as IconProps } from "../../icons-0corjfxR.js";
3
3
  import * as React from "react";
4
4
 
5
5
  //#region src/components/ai-sdk/ChainOfThought.d.ts
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "../foundations/Collapsible.js";
3
- import { Y as SpinnerIcon, d as CheckIcon, m as ChevronRightIcon, v as DotIcon } from "../../icons-MmIXciMO.js";
3
+ import { K as SpinnerIcon, _ as DotIcon, d as CheckIcon, p as ChevronRightIcon } from "../../icons-CVFSeTJn.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-MmIXciMO.js";
2
+ import { s as BookmarkIcon } from "../../icons-CVFSeTJn.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 { 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-CWk1FVtm.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-BjELA-_s.js";
2
2
  export { CODE_BLOCK_LANGUAGES, CodeBlock, CodeBlockActions, CodeBlockContainer, CodeBlockContent, CodeBlockCopyButton, CodeBlockFilename, CodeBlockHeader, CodeBlockLanguageSelector, CodeBlockLanguageSelectorContent, CodeBlockLanguageSelectorItem, CodeBlockLanguageSelectorTrigger, CodeBlockLanguageSelectorValue, CodeBlockTitle };
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { n as ArrowDownIcon, y as DownloadIcon } from "../../icons-MmIXciMO.js";
2
+ import { n as ArrowDownIcon, v as DownloadIcon } from "../../icons-CVFSeTJn.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";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { $ as TargetIcon, B as PauseIcon, H as PlayIcon, tt as TrashIcon } from "../../icons-MmIXciMO.js";
2
+ import { L as PauseIcon, Q as TrashIcon, X as TargetIcon, z as PlayIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { IconButton } from "../foundations/IconButton.js";
4
4
  import { i as formatErrorMessage } from "../../format-DB2mX9DA.js";
5
5
  import * as React from "react";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { H as PlayIcon } from "../../icons-MmIXciMO.js";
2
+ import { z as PlayIcon } from "../../icons-CVFSeTJn.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 { C as MessageResponse, D as MessageToolbarProps, E as MessageToolbar, S as MessageProps, T as MessageRole, _ 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, 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 MessageResponseProps, x as MessageContentProps, y as MessageBranchSelectorProps } from "../../Message-DBsHHhcM.js";
2
- export { Message, MessageAction, MessageActionProps, MessageActions, MessageActionsProps, MessageAttachment, MessageAttachmentProps, MessageBranch, MessageBranchContent, MessageBranchContentProps, MessageBranchNext, MessageBranchNextProps, MessageBranchPage, MessageBranchPageProps, MessageBranchPrevious, MessageBranchPreviousProps, MessageBranchProps, MessageBranchSelector, MessageBranchSelectorProps, MessageContent, MessageContentProps, MessageProps, MessageResponse, MessageResponseProps, MessageRole, MessageToolbar, MessageToolbarProps };
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,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { C as FileIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../../icons-MmIXciMO.js";
2
+ import { S as FileIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { IconButton } from "../foundations/IconButton.js";
5
5
  import { t as AttachmentPreview } from "../../attachment-preview-1CXJvrmb.js";
@@ -52,6 +52,28 @@ function MessageContent({ className, children, ref, ...props }) {
52
52
  children
53
53
  });
54
54
  }
55
+ /** Quiet message metadata and actions shown on hover or keyboard focus. */
56
+ function MessageMeta({ className, children, ref, ...props }) {
57
+ return /* @__PURE__ */ jsx("div", {
58
+ ref,
59
+ className: cx("message__meta", className),
60
+ ...props,
61
+ children
62
+ });
63
+ }
64
+ /** Machine-readable message time with a compact local-time label. */
65
+ function MessageTimestamp({ date, className, ...props }) {
66
+ return /* @__PURE__ */ jsx("time", {
67
+ className: cx("message__timestamp", className),
68
+ dateTime: date.toISOString(),
69
+ title: date.toLocaleString(),
70
+ ...props,
71
+ children: date.toLocaleTimeString(void 0, {
72
+ hour: "numeric",
73
+ minute: "2-digit"
74
+ })
75
+ });
76
+ }
55
77
  const streamdownPlugins = {
56
78
  cjk,
57
79
  code
@@ -59,7 +81,7 @@ const streamdownPlugins = {
59
81
  const messageResponseComponents = { img: "img" };
60
82
  const MessageResponse = React.memo(function MessageResponse({ className, components, ...props }) {
61
83
  return /* @__PURE__ */ jsx(Streamdown, {
62
- className: cx("message__response", className),
84
+ className: cx("message__response", "sigvelo-reader-text", className),
63
85
  components: components ? {
64
86
  ...messageResponseComponents,
65
87
  ...components
@@ -270,4 +292,4 @@ function MessageBranchPage({ className, format, ref, ...props }) {
270
292
  });
271
293
  }
272
294
  //#endregion
273
- export { Message, MessageAction, MessageActions, MessageAttachment, MessageBranch, MessageBranchContent, MessageBranchNext, MessageBranchPage, MessageBranchPrevious, MessageBranchSelector, MessageContent, MessageResponse, MessageToolbar };
295
+ export { Message, MessageAction, MessageActions, MessageAttachment, MessageBranch, MessageBranchContent, MessageBranchNext, MessageBranchPage, MessageBranchPrevious, MessageBranchSelector, MessageContent, MessageMeta, MessageResponse, MessageTimestamp, MessageToolbar };
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { n as ArrowDownIcon } from "../../icons-MmIXciMO.js";
2
+ import { n as ArrowDownIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { t as messageScrollerContract } from "../../message-scroller-C8cplcQO.js";
5
5
  import "react";
@@ -17,7 +17,8 @@ function MessageScroller({ className, ...props }) {
17
17
  return /* @__PURE__ */ jsx(MessageScroller$1.Root, {
18
18
  "data-slot": messageScrollerContract.root.slot,
19
19
  className: cx(messageScrollerContract.root.className, className),
20
- ...props
20
+ ...props,
21
+ "data-recipe": "fill-host"
21
22
  });
22
23
  }
23
24
  function MessageScrollerViewport({ "aria-label": ariaLabel = messageScrollerContract.viewport.ariaLabel, className, role = messageScrollerContract.viewport.role, tabIndex = messageScrollerContract.viewport.tabIndex, ...props }) {