@mcp-b/react-components 0.39.0 → 0.41.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 (188) 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/AppTopBar-ZdgmB_Lu.d.ts +97 -0
  4. package/dist/{CodeBlock-DO4Hdu1R.js → CodeBlock-BjELA-_s.js} +1 -1
  5. package/dist/{FileTree-DbQMpvxV.js → FileTree-DMYRdT6R.js} +1 -1
  6. package/dist/McpConnectorForm-MRm1r59e.d.ts +39 -0
  7. package/dist/{Message-DBsHHhcM.d.ts → Message-D_vCVEGB.d.ts} +20 -1
  8. package/dist/{ThinkChatActivity-D6-_5Phw.d.ts → ThinkChatActivity-DyGHj01E.d.ts} +1 -1
  9. package/dist/{ThinkExecutionRun-lYYgyeE1.d.ts → ThinkExecutionRun-k8bpyXqt.d.ts} +3 -3
  10. package/dist/Toolbar-CBOseBQr.d.ts +152 -0
  11. package/dist/{WorkspaceFileView-D0r7xnq5.js → WorkspaceFileView-D0yFwoDr.js} +3 -3
  12. package/dist/{WorkspaceMessageResponse-Cy28WGSz.d.ts → WorkspaceMessageResponse-D66ty4FO.d.ts} +1 -1
  13. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  14. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  15. package/dist/components/agents-sdk/AgentChat.js +41 -18
  16. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
  17. package/dist/components/agents-sdk/AgentToolRunsContext.js +12 -0
  18. package/dist/components/agents-sdk/BrowserLiveScreen.d.ts +135 -0
  19. package/dist/components/agents-sdk/BrowserLiveScreen.js +637 -0
  20. package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -2
  21. package/dist/components/agents-sdk/BrowserLiveView.js +6 -9
  22. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  23. package/dist/components/agents-sdk/BrowserRunPanel.d.ts +72 -25
  24. package/dist/components/agents-sdk/BrowserRunPanel.js +111 -70
  25. package/dist/components/agents-sdk/ManagerOffice.d.ts +156 -0
  26. package/dist/components/agents-sdk/ManagerOffice.js +662 -0
  27. package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
  28. package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
  29. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +8 -2
  30. package/dist/components/agents-sdk/McpPluginCatalog.js +79 -61
  31. package/dist/components/agents-sdk/McpServerPicker.d.ts +1 -1
  32. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  33. package/dist/components/agents-sdk/ModelSelector.js +1 -1
  34. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  35. package/dist/components/agents-sdk/SubagentRunDetails.d.ts +1 -9
  36. package/dist/components/agents-sdk/SubagentRunDetails.js +1 -9
  37. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  38. package/dist/components/agents-sdk/SubagentRunSelector.d.ts +4 -2
  39. package/dist/components/agents-sdk/SubagentRunSelector.js +7 -6
  40. package/dist/components/agents-sdk/ThinkChat.d.ts +4 -4
  41. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  42. package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
  43. package/dist/components/agents-sdk/ThinkExecutionDetail.d.ts +1 -1
  44. package/dist/components/agents-sdk/ThinkExecutionDetail.js +43 -43
  45. package/dist/components/agents-sdk/ThinkExecutionRun.d.ts +2 -2
  46. package/dist/components/agents-sdk/ThinkExecutionRun.js +5 -6
  47. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
  48. package/dist/components/agents-sdk/ThinkExecutionStatus.js +8 -12
  49. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +8 -1
  50. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +43 -38
  51. package/dist/components/agents-sdk/ThinkFullApp.d.ts +18 -6
  52. package/dist/components/agents-sdk/ThinkFullApp.js +112 -144
  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.js +69 -89
  58. package/dist/components/agents-sdk/ThinkRoutineRuns.d.ts +1 -1
  59. package/dist/components/agents-sdk/ThinkRoutineRuns.js +3 -10
  60. package/dist/components/agents-sdk/ThinkThreadPicker.js +1 -1
  61. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  62. package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
  63. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  64. package/dist/components/agents-sdk/WorkspaceHeader.js +2 -1
  65. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  66. package/dist/components/agents-sdk/WorkspaceMountManager.js +11 -11
  67. package/dist/components/ai-sdk/Activity.js +1 -1
  68. package/dist/components/ai-sdk/AgentAttention.d.ts +1 -1
  69. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  70. package/dist/components/ai-sdk/Approval.js +1 -1
  71. package/dist/components/ai-sdk/Artifact.js +1 -1
  72. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  73. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  74. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  75. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  76. package/dist/components/ai-sdk/Conversation.js +1 -1
  77. package/dist/components/ai-sdk/Goal.js +1 -1
  78. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  79. package/dist/components/ai-sdk/Message.d.ts +2 -2
  80. package/dist/components/ai-sdk/Message.js +25 -3
  81. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  82. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  83. package/dist/components/ai-sdk/Plan.js +1 -1
  84. package/dist/components/ai-sdk/PromptInput.js +1 -1
  85. package/dist/components/ai-sdk/Queue.d.ts +4 -4
  86. package/dist/components/ai-sdk/Queue.js +6 -15
  87. package/dist/components/ai-sdk/Reasoning.js +1 -1
  88. package/dist/components/ai-sdk/Sources.js +1 -1
  89. package/dist/components/ai-sdk/Task.d.ts +2 -2
  90. package/dist/components/ai-sdk/Task.js +2 -2
  91. package/dist/components/extension/ChatGptSignInScreen.d.ts +21 -10
  92. package/dist/components/extension/ChatGptSignInScreen.js +42 -34
  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/Toolbar.d.ts +1 -151
  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/AppTopBar.d.ts +1 -90
  111. package/dist/components/general-purpose/AppTopBar.js +2 -1
  112. package/dist/components/general-purpose/Commit.d.ts +2 -2
  113. package/dist/components/general-purpose/Commit.js +5 -13
  114. package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
  115. package/dist/components/general-purpose/EnvironmentVariables.js +4 -7
  116. package/dist/components/general-purpose/FileTree.js +1 -1
  117. package/dist/components/general-purpose/PricingBillingToggle.js +4 -9
  118. package/dist/components/general-purpose/PricingPlanCard.js +15 -14
  119. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +95 -2
  120. package/dist/components/general-purpose/ResponsiveSidebarShell.js +90 -34
  121. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  122. package/dist/components/general-purpose/Terminal.d.ts +1 -1
  123. package/dist/components/general-purpose/Terminal.js +4 -12
  124. package/dist/components/general-purpose/TestResults.d.ts +1 -1
  125. package/dist/components/general-purpose/TestResults.js +8 -21
  126. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  127. package/dist/components/general-purpose/WebPreview.d.ts +1 -1
  128. package/dist/components/general-purpose/WebPreview.js +4 -12
  129. package/dist/components/nanites/AgentConnection.js +2 -2
  130. package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
  131. package/dist/components/nanites/AgentToolDetail.js +7 -7
  132. package/dist/components/nanites/NaniteScene.js +11 -11
  133. package/dist/{copy-button-4YvddK4e.js → copy-button-lys9N_aI.js} +1 -1
  134. package/dist/{icons-BGZ916hb.d.ts → icons-0corjfxR.d.ts} +6 -16
  135. package/dist/{icons-B4mGvCvc.js → icons-CVFSeTJn.js} +3 -5
  136. package/dist/styles/agent-attention.css +5 -5
  137. package/dist/styles/agent-chat.css +47 -12
  138. package/dist/styles/agent-tool-detail.css +2 -12
  139. package/dist/styles/app-icon.css +12 -18
  140. package/dist/styles/app-top-bar.css +32 -6
  141. package/dist/styles/avatar.css +6 -22
  142. package/dist/styles/base.css +2 -8
  143. package/dist/styles/browser-live-screen.css +38 -0
  144. package/dist/styles/browser-live-view.css +12 -4
  145. package/dist/styles/browser-run-panel.css +20 -16
  146. package/dist/styles/chatgpt-sign-in-screen.css +11 -5
  147. package/dist/styles/commit.css +24 -1
  148. package/dist/styles/environment-variables.css +3 -0
  149. package/dist/styles/index.css +5 -4
  150. package/dist/styles/manager-office.css +486 -0
  151. package/dist/styles/mcp-plugin-catalog.css +39 -35
  152. package/dist/styles/mcp-server-picker.css +1 -1
  153. package/dist/styles/message.css +41 -18
  154. package/dist/styles/nanite-scene.css +9 -9
  155. package/dist/styles/pricing-page.css +12 -8
  156. package/dist/styles/prompt-input.css +8 -13
  157. package/dist/styles/recipes.css +1 -57
  158. package/dist/styles/responsive-sidebar-shell.css +70 -20
  159. package/dist/styles/subagent-run.css +20 -3
  160. package/dist/styles/terminal.css +19 -0
  161. package/dist/styles/test-results.css +10 -1
  162. package/dist/styles/think-execution-status.css +8 -24
  163. package/dist/styles/think-execution-workbench.css +98 -105
  164. package/dist/styles/think-full-app.css +81 -185
  165. package/dist/styles/think-routine-library.css +0 -40
  166. package/dist/styles/think-thread-picker.css +8 -3
  167. package/dist/styles/transition-surface.css +7 -8
  168. package/dist/styles/utilities.css +42 -0
  169. package/dist/styles/web-preview.css +28 -5
  170. package/dist/styles/workspace-explorer.css +4 -23
  171. package/dist/styles/workspace-mount-manager.css +22 -0
  172. package/package.json +37 -35
  173. package/dist/ResponsiveSidebarShell-DWjULskY.d.ts +0 -68
  174. package/dist/components/agents-sdk/AgentActivityPreview.d.ts +0 -46
  175. package/dist/components/agents-sdk/AgentActivityPreview.js +0 -93
  176. package/dist/components/agents-sdk/ThinkThreadShell.d.ts +0 -38
  177. package/dist/components/agents-sdk/ThinkThreadShell.js +0 -27
  178. package/dist/components/foundations/Badge.d.ts +0 -62
  179. package/dist/components/foundations/Badge.js +0 -55
  180. package/dist/components/foundations/StatusPill.d.ts +0 -43
  181. package/dist/components/foundations/StatusPill.js +0 -35
  182. package/dist/components/general-purpose/Shell.d.ts +0 -149
  183. package/dist/components/general-purpose/Shell.js +0 -116
  184. package/dist/styles/agent-activity-preview-overlay.css +0 -169
  185. package/dist/styles/agent-activity-preview.css +0 -209
  186. package/dist/styles/badge.css +0 -120
  187. package/dist/styles/shell.css +0 -122
  188. package/dist/styles/status-pill.css +0 -39
@@ -1,5 +1,4 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { Badge } from "../foundations/Badge.js";
3
2
  import { getThinkRoutineNextRun } from "./ThinkRoutine.js";
4
3
  import { Switch } from "../foundations/Switch.js";
5
4
  import { ThinkRoutineRuns } from "./ThinkRoutineRuns.js";
@@ -25,20 +24,10 @@ function ThinkRoutineDetail({ busy = false, className, routine, showOwner = true
25
24
  className: "think-routine-library__detail-header",
26
25
  children: /* @__PURE__ */ jsxs("div", {
27
26
  className: "think-routine-library__detail-heading",
28
- children: [
29
- /* @__PURE__ */ jsx(Badge, {
30
- className: "think-routine-library__state",
31
- variant: "ghost",
32
- color: routine.enabled ? "success" : "neutral",
33
- size: "sm",
34
- children: routine.enabled ? "Active" : "Paused"
35
- }),
36
- /* @__PURE__ */ jsx("h1", {
37
- id: titleId,
38
- children: routine.name
39
- }),
40
- routine.description ? /* @__PURE__ */ jsx("p", { children: routine.description }) : null
41
- ]
27
+ children: [/* @__PURE__ */ jsx("h1", {
28
+ id: titleId,
29
+ children: routine.name
30
+ }), routine.description ? /* @__PURE__ */ jsx("p", { children: routine.description }) : null]
42
31
  })
43
32
  }),
44
33
  /* @__PURE__ */ jsxs("div", {
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { J as SpinnerIcon } from "../../icons-B4mGvCvc.js";
2
+ import { K as SpinnerIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Button, buttonVariants } from "../foundations/Button.js";
4
4
  import { Field } from "../foundations/Field.js";
5
5
  import { Form } from "../foundations/Form.js";
@@ -1,13 +1,13 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { J as SpinnerIcon, V as PlayIcon, b as EllipsisIcon, f as ChevronDownIcon, tt as WarningIcon } from "../../icons-B4mGvCvc.js";
3
- import { Button, buttonVariants } from "../foundations/Button.js";
2
+ import { $ as WarningIcon, 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";
7
7
  import { EmptyState } from "../foundations/EmptyState.js";
8
8
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
9
- import { AlertDialog } from "../foundations/AlertDialog.js";
10
9
  import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
10
+ import { AlertDialog } from "../foundations/AlertDialog.js";
11
11
  import { ThinkRoutineBrowser } from "./ThinkRoutineBrowser.js";
12
12
  import { ThinkRoutineDetail } from "./ThinkRoutineDetail.js";
13
13
  import * as React from "react";
@@ -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
@@ -123,36 +121,18 @@ function ThinkRoutineLibrary({ appBarActions, appBarLeading, className, createRo
123
121
  /* @__PURE__ */ jsx(ResponsiveSidebarShell, {
124
122
  className: "think-routine-library__layout",
125
123
  sidebarLabel: "schedules",
126
- defaultSidebarOpen: false,
127
- toolbarLabel: "Schedule navigation controls",
128
124
  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
- ]
125
+ topBarProps: { "aria-label": "Schedule controls" },
126
+ topBarLeading: appBarLeading,
127
+ topBarTitle: selectedRoutine?.name ?? "Schedules",
128
+ compactTitleTrigger: selectedRoutine ? /* @__PURE__ */ jsx("span", { children: selectedRoutine.name }) : void 0,
129
+ topBarTrailing: /* @__PURE__ */ jsx(RoutineTopBarActions, {
130
+ appBarActions,
131
+ busy,
132
+ routineName: selectedRoutine?.name ?? "schedule",
133
+ editLink: selectedRoutine && renderEditRoutineLink ? renderEditRoutineLink(selectedRoutine) : void 0,
134
+ onRun: selectedRoutine && onRunRoutine ? () => void perform(() => onRunRoutine(selectedRoutine), `Started ${selectedRoutine.name}.`) : void 0,
135
+ onDelete: selectedRoutine && onDeleteRoutine ? () => void perform(() => onDeleteRoutine(selectedRoutine), `Deleted ${selectedRoutine.name}.`) : void 0
156
136
  }),
157
137
  sidebar: ({ closeSidebarOnCompact }) => /* @__PURE__ */ jsx(ThinkRoutineBrowser, {
158
138
  routines,
@@ -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 { H as PlusIcon, J as SpinnerIcon, t as ArchiveIcon, tt as WarningIcon, v as DotIcon } from "../../icons-B4mGvCvc.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";
@@ -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-DbQMpvxV.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-D0r7xnq5.js";
5
+ import { t as WorkspaceFileView } from "../../WorkspaceFileView-D0yFwoDr.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
@@ -1,2 +1,2 @@
1
- import { t as WorkspaceFileView } from "../../WorkspaceFileView-D0r7xnq5.js";
1
+ import { t as WorkspaceFileView } from "../../WorkspaceFileView-D0yFwoDr.js";
2
2
  export { WorkspaceFileView };
@@ -1,4 +1,4 @@
1
- import { W as RefreshIcon } from "../../icons-B4mGvCvc.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 { R as PaperclipIcon } from "../../icons-B4mGvCvc.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-B4mGvCvc.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 { rt as XIcon } from "../../icons-B4mGvCvc.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 { B as PencilIcon } from "../../icons-B4mGvCvc.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 { J as SpinnerIcon, rt as XIcon, tt as WarningIcon } from "../../icons-B4mGvCvc.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-BGZ916hb.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 { J as SpinnerIcon, d as CheckIcon, m as ChevronRightIcon, v as DotIcon } from "../../icons-B4mGvCvc.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-B4mGvCvc.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-DO4Hdu1R.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-B4mGvCvc.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 { Q as TargetIcon, V as PlayIcon, et as TrashIcon, z as PauseIcon } from "../../icons-B4mGvCvc.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 { V as PlayIcon } from "../../icons-B4mGvCvc.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-B4mGvCvc.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-B4mGvCvc.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";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { n as ArrowDownIcon } from "../../icons-B4mGvCvc.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 * as React from "react";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { d as CheckIcon, i as ArrowRightIcon, v as DotIcon } from "../../icons-B4mGvCvc.js";
2
+ import { _ as DotIcon, d as CheckIcon, i as ArrowRightIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Popover } from "../foundations/Popover.js";
4
4
  import { t as ProgressRing } from "../../progress-ring-BEocM1e3.js";
5
5
  import * as React from "react";
@@ -1,5 +1,5 @@
1
1
  import { n as mergeBaseClassName, t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { C as FileIcon, F as MonitorIcon, H as PlusIcon, J as SpinnerIcon, N as MicrophoneIcon, R as PaperclipIcon, X as StopIcon, Y as SquareIcon, a as ArrowUpIcon, d as CheckIcon, f as ChevronDownIcon, nt as WrenchIcon, rt as XIcon, tt as WarningIcon, w as FolderIcon } from "../../icons-B4mGvCvc.js";
2
+ import { $ as WarningIcon, B as PlusIcon, C as FolderIcon, I as PaperclipIcon, J as StopIcon, K as SpinnerIcon, N as MonitorIcon, S as FileIcon, a as ArrowUpIcon, d as CheckIcon, et as WrenchIcon, f as ChevronDownIcon, j as MicrophoneIcon, q as SquareIcon, tt as XIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { Tooltip } from "../foundations/Tooltip.js";
5
5
  import { IconButton } from "../foundations/IconButton.js";
@@ -24,9 +24,9 @@ interface QueueProps extends React.HTMLAttributes<HTMLDivElement> {
24
24
  * Use for agent work queues, todo groups, and attachment queues. Do not use it
25
25
  * for navigation or arbitrary card lists.
26
26
  *
27
- * Sigvelo changes: uses shared Collapsible, ScrollArea, Badge, and Button
28
- * components; normalizes Vercel-compatible `completed` status to `complete`;
29
- * maps all styling to Sigvelo queue CSS tokens/classes.
27
+ * Sigvelo changes: uses shared Collapsible, ScrollArea, and Button components;
28
+ * normalizes Vercel-compatible `completed` status to `complete`; maps all
29
+ * styling to Sigvelo queue CSS tokens/classes.
30
30
  *
31
31
  * Section triggers inherit Collapsible keyboard behavior. Status indicators
32
32
  * are decorative, so visible item text must carry the real meaning. Add new
@@ -84,7 +84,7 @@ declare function QueueSectionTrigger({
84
84
  ref?: React.Ref<HTMLButtonElement>;
85
85
  }): React.JSX.Element;
86
86
  interface QueueSectionLabelProps extends React.HTMLAttributes<HTMLSpanElement> {
87
- /** Optional count rendered as a trailing badge. */
87
+ /** Optional item total shown as ordinary label text. */
88
88
  count?: number;
89
89
  label?: string;
90
90
  icon?: React.ReactNode;