@mcp-b/react-components 0.30.0 → 0.30.1

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 (99) hide show
  1. package/dist/{CodeBlock-CM5gfmdq.js → CodeBlock-B5I7wje1.js} +1 -1
  2. package/dist/{FileTree-4WP4Uc_m.js → FileTree-DbQMpvxV.js} +1 -1
  3. package/dist/MenuDisclosureGroup-BUOZ42me.js +32 -0
  4. package/dist/{ModelSelector-DzdEs2fX.js → ModelSelector-DZcpUBgn.js} +1 -1
  5. package/dist/{ThinkChat-Dsm1xF3a.js → ThinkChat-yid8e_Jb.js} +1 -1
  6. package/dist/{WorkspaceFileView-hd1-cpuz.js → WorkspaceFileView-BeUpr6TU.js} +65 -88
  7. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  8. package/dist/components/agents-sdk/AgentActivityPreview.js +3 -3
  9. package/dist/components/agents-sdk/AgentChat.js +9 -9
  10. package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
  11. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  12. package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
  13. package/dist/components/agents-sdk/McpConnectionRequest.js +2 -2
  14. package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
  15. package/dist/components/agents-sdk/McpPluginCatalog.js +3 -3
  16. package/dist/components/agents-sdk/McpServerPicker.d.ts +9 -1
  17. package/dist/components/agents-sdk/McpServerPicker.js +7 -7
  18. package/dist/components/agents-sdk/ModelSelector.js +1 -1
  19. package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
  20. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  21. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  22. package/dist/components/agents-sdk/SubagentRunSelector.js +2 -2
  23. package/dist/components/agents-sdk/ThinkChat.js +1 -1
  24. package/dist/components/agents-sdk/ThinkChatActivity.js +1 -1
  25. package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
  26. package/dist/components/agents-sdk/ThinkExecutionDetail.js +1 -1
  27. package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
  28. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +3 -3
  29. package/dist/components/agents-sdk/ThinkFullApp.d.ts +12 -0
  30. package/dist/components/agents-sdk/ThinkFullApp.js +30 -11
  31. package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
  32. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +2 -2
  33. package/dist/components/agents-sdk/ThinkRoutineForm.js +3 -3
  34. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +3 -0
  35. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +38 -33
  36. package/dist/components/agents-sdk/ThinkRoutineRuns.js +2 -2
  37. package/dist/components/agents-sdk/ThinkThreadPicker.js +3 -3
  38. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  39. package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -3
  40. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  41. package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
  42. package/dist/components/agents-sdk/WorkspaceMountManager.js +3 -3
  43. package/dist/components/ai-sdk/Activity.js +1 -1
  44. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  45. package/dist/components/ai-sdk/Approval.js +1 -1
  46. package/dist/components/ai-sdk/Artifact.js +1 -1
  47. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  48. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  49. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  50. package/dist/components/ai-sdk/Conversation.js +1 -1
  51. package/dist/components/ai-sdk/Goal.js +1 -1
  52. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  53. package/dist/components/ai-sdk/Message.js +1 -1
  54. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  55. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  56. package/dist/components/ai-sdk/Plan.js +1 -1
  57. package/dist/components/ai-sdk/PromptInput.js +3 -3
  58. package/dist/components/ai-sdk/Queue.js +1 -1
  59. package/dist/components/ai-sdk/Reasoning.js +1 -1
  60. package/dist/components/ai-sdk/Sources.js +1 -1
  61. package/dist/components/ai-sdk/Task.js +1 -1
  62. package/dist/components/extension/ChatGptSignInScreen.js +2 -2
  63. package/dist/components/extension/CodexModelSelector.js +2 -2
  64. package/dist/components/extension/ConversationTabPicker.js +3 -3
  65. package/dist/components/foundations/Checkbox.js +1 -1
  66. package/dist/components/foundations/Collapsible.js +1 -1
  67. package/dist/components/foundations/ContextMenu.js +1 -1
  68. package/dist/components/foundations/Menubar.js +1 -1
  69. package/dist/components/foundations/SearchField.js +1 -1
  70. package/dist/components/foundations/Select.js +1 -1
  71. package/dist/components/foundations/Stepper.js +1 -1
  72. package/dist/components/foundations/Toast.js +1 -1
  73. package/dist/components/foundations/icons.js +1 -1
  74. package/dist/components/general-purpose/Commit.js +3 -3
  75. package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
  76. package/dist/components/general-purpose/FileTree.js +1 -1
  77. package/dist/components/general-purpose/PricingPlanCard.js +2 -2
  78. package/dist/components/general-purpose/PricingUsageCalculator.js +1 -1
  79. package/dist/components/general-purpose/ResizableSidePanel.d.ts +6 -0
  80. package/dist/components/general-purpose/ResizableSidePanel.js +10 -2
  81. package/dist/components/general-purpose/ResponsiveSidebarShell.js +1 -1
  82. package/dist/components/general-purpose/SettingsFormDialog.js +2 -2
  83. package/dist/components/general-purpose/SetupChecklist.d.ts +3 -0
  84. package/dist/components/general-purpose/SetupChecklist.js +20 -14
  85. package/dist/components/general-purpose/Terminal.js +2 -2
  86. package/dist/components/general-purpose/TestResults.js +1 -1
  87. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  88. package/dist/components/general-purpose/WebPreview.js +2 -2
  89. package/dist/components/nanites/AgentConnection.js +2 -2
  90. package/dist/components/nanites/AgentToolDetail.js +2 -2
  91. package/dist/{copy-button-CsNSSKYG.js → copy-button-4YvddK4e.js} +1 -1
  92. package/dist/styles/file-tree.css +1 -0
  93. package/dist/styles/index.css +1 -0
  94. package/dist/styles/mcp-server-picker.css +1 -3
  95. package/dist/styles/menu-disclosure-group.css +13 -0
  96. package/dist/styles/think-full-app.css +1 -1
  97. package/dist/styles/workspace-explorer.css +0 -9
  98. package/package.json +2 -2
  99. package/dist/{icons-B1Qw05te.js → icons-B4mGvCvc.js} +1 -1
@@ -62,6 +62,8 @@ interface ThinkFullAppProps<AgentT extends ThinkFullAppAgent<State>, State = unk
62
62
  threadStatusSummary?: ThinkThreadStatusSummary;
63
63
  /** Whether narrow layouts render the built-in chat/workbench switch. Defaults to true. */
64
64
  showMobileViewSwitch?: boolean;
65
+ /** Whether desktop layouts render the built-in workbench switch. Defaults to true. */
66
+ showWorkbenchViewSwitch?: boolean;
65
67
  /** Hide the thread app bar when a narrow workbench supplies its own navigation. */
66
68
  hideAppBarInWorkbench?: boolean;
67
69
  /** Whole native execution selected by the application route. */
@@ -107,6 +109,12 @@ interface ThinkFullAppProps<AgentT extends ThinkFullAppAgent<State>, State = unk
107
109
  defaultWorkbenchView?: ThinkFullAppWorkbenchView;
108
110
  /** Called when the shell toolbar asks to switch workbench lanes. */
109
111
  onWorkbenchViewChange?: (view: ThinkFullAppWorkbenchView) => void;
112
+ /** Whether the desktop workbench panel is open. Omit for internal state. */
113
+ workbenchOpen?: boolean;
114
+ /** Initial desktop workbench state when `workbenchOpen` is uncontrolled. */
115
+ defaultWorkbenchOpen?: boolean;
116
+ /** Called when toolbar or resize input opens or closes the workbench. */
117
+ onWorkbenchOpenChange?: (open: boolean) => void;
110
118
  }
111
119
  /** Combines ThinkChat with an optional resizable workbench shell. */
112
120
  declare function ThinkFullApp<AgentT extends ThinkFullAppAgent<State>, State = unknown, MessageT extends UIMessage = UIMessage>({
@@ -117,6 +125,7 @@ declare function ThinkFullApp<AgentT extends ThinkFullAppAgent<State>, State = u
117
125
  chat,
118
126
  className,
119
127
  defaultMobileView,
128
+ defaultWorkbenchOpen,
120
129
  defaultWorkbenchView,
121
130
  defaultThreadSidebarOpen,
122
131
  hideAppBarInWorkbench,
@@ -125,18 +134,21 @@ declare function ThinkFullApp<AgentT extends ThinkFullAppAgent<State>, State = u
125
134
  onMobileViewChange,
126
135
  onThreadSidebarOpenChange,
127
136
  onWorkbenchViewChange,
137
+ onWorkbenchOpenChange,
128
138
  plugins,
129
139
  ref,
130
140
  renderAgentToolRunLink,
131
141
  renderExecutionRunLink,
132
142
  selectedExecutionRun,
133
143
  showMobileViewSwitch,
144
+ showWorkbenchViewSwitch,
134
145
  sourceKey,
135
146
  style,
136
147
  threadSidebar,
137
148
  threadSidebarOpen,
138
149
  threadStatusSummary,
139
150
  workbenchPanels,
151
+ workbenchOpen,
140
152
  workbenchView,
141
153
  workspace,
142
154
  ...props
@@ -1,10 +1,10 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { $ as TerminalIcon, C as FileIcon, J as SpinnerIcon, c as BoxIcon, f as ChevronDownIcon } from "../../icons-B1Qw05te.js";
2
+ import { $ as TerminalIcon, C as FileIcon, J as SpinnerIcon, c as BoxIcon, f as ChevronDownIcon } from "../../icons-B4mGvCvc.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
5
5
  import { ScrollArea } from "../foundations/ScrollArea.js";
6
6
  import { McpPluginCatalog } from "./McpPluginCatalog.js";
7
- import { c as resolveThinkApprovalProps, l as useSourceScopedAgentToolEvents, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-Dsm1xF3a.js";
7
+ import { c as resolveThinkApprovalProps, l as useSourceScopedAgentToolEvents, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-yid8e_Jb.js";
8
8
  import { a as WorkspaceNavigationRestorationBoundary, i as WorkspaceNavigationFocusRestorer, n as WorkspaceNavigationProvider } from "../../WorkspaceLink-DZeLe_jN.js";
9
9
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
10
10
  import { useWorkspace } from "./Workspace.js";
@@ -21,6 +21,7 @@ const workbenchPanelDefaultWidth = 340;
21
21
  const workbenchPanelMinWidth = 300;
22
22
  const workbenchPanelMaxWidth = 600;
23
23
  const workbenchPanelKeyboardStep = 24;
24
+ const workbenchPanelCollapseThreshold = 240;
24
25
  function WorkspacePanel({ config }) {
25
26
  const selectedPath = config.navigation.current.destination.kind === "file" ? config.navigation.current.destination.path : null;
26
27
  return /* @__PURE__ */ jsx(WorkspaceExplorer, {
@@ -45,7 +46,7 @@ function PluginsPanel({ config }) {
45
46
  });
46
47
  }
47
48
  /** Combines ThinkChat with an optional resizable workbench shell. */
48
- function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat, className, defaultMobileView, defaultWorkbenchView, defaultThreadSidebarOpen, hideAppBarInWorkbench = false, messages, mobileView, onMobileViewChange, onThreadSidebarOpenChange, onWorkbenchViewChange, plugins, ref, renderAgentToolRunLink, renderExecutionRunLink, selectedExecutionRun = null, showMobileViewSwitch = true, sourceKey, style, threadSidebar, threadSidebarOpen, threadStatusSummary, workbenchPanels, workbenchView, workspace, ...props }) {
49
+ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat, className, defaultMobileView, defaultWorkbenchOpen, defaultWorkbenchView, defaultThreadSidebarOpen, hideAppBarInWorkbench = false, messages, mobileView, onMobileViewChange, onThreadSidebarOpenChange, onWorkbenchViewChange, onWorkbenchOpenChange, plugins, ref, renderAgentToolRunLink, renderExecutionRunLink, selectedExecutionRun = null, showMobileViewSwitch = true, showWorkbenchViewSwitch = true, sourceKey, style, threadSidebar, threadSidebarOpen, threadStatusSummary, workbenchPanels, workbenchOpen, workbenchView, workspace, ...props }) {
49
50
  const appRef = React.useRef(null);
50
51
  const workbenchPanelRef = React.useRef(null);
51
52
  const pendingPanelFocusRef = React.useRef(null);
@@ -72,9 +73,11 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
72
73
  ]);
73
74
  const [innerMobileView, setInnerMobileView] = React.useState(defaultMobileView ?? "chat");
74
75
  const [innerWorkbenchView, setInnerWorkbenchView] = React.useState(defaultWorkbenchView ?? "files");
76
+ const [innerWorkbenchOpen, setInnerWorkbenchOpen] = React.useState(defaultWorkbenchOpen ?? true);
75
77
  const agentTools = useSourceScopedAgentToolEvents(agent);
76
78
  const requestedMobileView = mobileView ?? innerMobileView;
77
79
  const requestedWorkbenchView = workbenchView ?? innerWorkbenchView;
80
+ const requestedWorkbenchOpen = workbenchOpen ?? innerWorkbenchOpen;
78
81
  const setWorkbenchView = React.useCallback((next) => {
79
82
  if (workbenchView === void 0) setInnerWorkbenchView(next);
80
83
  onWorkbenchViewChange?.(next);
@@ -83,6 +86,10 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
83
86
  if (mobileView === void 0) setInnerMobileView(next);
84
87
  onMobileViewChange?.(next);
85
88
  }, [mobileView, onMobileViewChange]);
89
+ const setWorkbenchOpen = React.useCallback((next) => {
90
+ if (workbenchOpen === void 0) setInnerWorkbenchOpen(next);
91
+ onWorkbenchOpenChange?.(next);
92
+ }, [onWorkbenchOpenChange, workbenchOpen]);
86
93
  const updateAppView = React.useCallback((update) => {
87
94
  React.startTransition(update);
88
95
  }, []);
@@ -98,7 +105,7 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
98
105
  const availableWorkbenchPanels = [];
99
106
  if (workspace !== void 0) availableWorkbenchPanels.push({
100
107
  id: "files",
101
- label: "Files",
108
+ label: "Workspace",
102
109
  icon: /* @__PURE__ */ jsx(FileIcon, {}),
103
110
  render: () => /* @__PURE__ */ jsx(WorkspacePanel, { config: workspace })
104
111
  });
@@ -129,13 +136,15 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
129
136
  render: () => /* @__PURE__ */ jsx(PluginsPanel, { config: plugins })
130
137
  });
131
138
  if (workbenchPanels) availableWorkbenchPanels.push(...workbenchPanels);
132
- const activePanel = availableWorkbenchPanels.find((panel) => panel.id === requestedWorkbenchView) ?? availableWorkbenchPanels[0];
139
+ const selectedPanel = availableWorkbenchPanels.find((panel) => panel.id === requestedWorkbenchView) ?? availableWorkbenchPanels[0];
140
+ const activePanel = requestedWorkbenchOpen ? selectedPanel : void 0;
133
141
  const activeWorkbenchView = activePanel?.id;
134
142
  const hasWorkbench = activePanel !== void 0;
143
+ const hasAvailableWorkbench = selectedPanel !== void 0;
135
144
  const activeMobileView = hasWorkbench ? requestedMobileView : "chat";
136
- const showWorkbenchViewSwitch = availableWorkbenchPanels.length > 1;
145
+ const shouldShowWorkbenchViewSwitch = showWorkbenchViewSwitch && availableWorkbenchPanels.length > 0;
137
146
  const workbenchViews = availableWorkbenchPanels;
138
- const shouldRenderInlineAppBar = !threadSidebar && (Boolean(appBarActions || appBarLeading || appBarTitle || threadSidebar) || hasWorkbench);
147
+ const shouldRenderInlineAppBar = !threadSidebar && (Boolean(appBarActions || appBarLeading || appBarTitle || threadSidebar) || hasAvailableWorkbench);
139
148
  const hasAppBarRow = shouldRenderInlineAppBar;
140
149
  React.useLayoutEffect(() => {
141
150
  const pendingFocus = pendingPanelFocusRef.current;
@@ -183,19 +192,27 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
183
192
  }) : null] }) : null,
184
193
  /* @__PURE__ */ jsxs(AppTopBar.Trailing, { children: [
185
194
  appBarActions,
186
- showWorkbenchViewSwitch && activeWorkbenchView ? /* @__PURE__ */ jsx(ThinkFullAppViewSwitch, {
195
+ shouldShowWorkbenchViewSwitch && selectedPanel ? /* @__PURE__ */ jsx(ThinkFullAppViewSwitch, {
187
196
  className: "think-full-app__workbench-view-switch",
188
197
  views: workbenchViews,
189
198
  value: activeWorkbenchView,
199
+ allowEmpty: true,
190
200
  onValueChange: (next) => {
191
- if (next) updateWorkbenchPanel(next);
201
+ updateAppView(() => {
202
+ if (!next) {
203
+ setWorkbenchOpen(false);
204
+ return;
205
+ }
206
+ updateWorkbenchPanel(next);
207
+ setWorkbenchOpen(true);
208
+ });
192
209
  },
193
210
  "aria-label": "Workbench views"
194
211
  }) : null,
195
- activePanel && showMobileViewSwitch ? /* @__PURE__ */ jsx(ThinkFullAppViewSwitch, {
212
+ selectedPanel && showMobileViewSwitch ? /* @__PURE__ */ jsx(ThinkFullAppViewSwitch, {
196
213
  className: "think-full-app__mobile-view-switch",
197
214
  views: workbenchViews,
198
- value: activeMobileView === "workbench" ? activePanel.id : void 0,
215
+ value: activeMobileView === "workbench" ? activeWorkbenchView : void 0,
199
216
  allowEmpty: true,
200
217
  onValueChange: (next) => {
201
218
  updateAppView(() => {
@@ -221,6 +238,8 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
221
238
  minSize: workbenchPanelMinWidth,
222
239
  maxSize: workbenchPanelMaxWidth,
223
240
  keyboardStep: workbenchPanelKeyboardStep,
241
+ collapseThreshold: workbenchPanelCollapseThreshold,
242
+ onCollapse: () => setWorkbenchOpen(false),
224
243
  "data-has-thread-sidebar": threadSidebar ? "true" : "false",
225
244
  "data-has-workbench": hasWorkbench ? "true" : "false",
226
245
  "data-has-workbench-topbar": hasAppBarRow ? "true" : "false",
@@ -1,5 +1,5 @@
1
- import { TransitionSurface } from "../foundations/TransitionSurface.js";
2
1
  import { AgentChatTurnError } from "../ai-sdk/AgentChatTurnError.js";
2
+ import { TransitionSurface } from "../foundations/TransitionSurface.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/agents-sdk/ThinkRecoveryNotice.tsx
5
5
  function connectionReason(error) {
@@ -1,9 +1,9 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { H as PlusIcon } from "../../icons-B1Qw05te.js";
3
- import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
2
+ import { H as PlusIcon } from "../../icons-B4mGvCvc.js";
4
3
  import { buttonVariants } from "../foundations/Button.js";
5
4
  import { Tooltip } from "../foundations/Tooltip.js";
6
5
  import { t as capitalize } from "../../format-CmopcfqJ.js";
6
+ import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
7
7
  import { SearchField } from "../foundations/SearchField.js";
8
8
  import { ToggleGroup } from "../foundations/ToggleGroup.js";
9
9
  import { getThinkRoutineNextRun } from "./ThinkRoutine.js";
@@ -1,11 +1,11 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { J as SpinnerIcon } from "../../icons-B1Qw05te.js";
3
- import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
2
+ import { J as SpinnerIcon } from "../../icons-B4mGvCvc.js";
4
3
  import { Button, buttonVariants } from "../foundations/Button.js";
5
- import { Select } from "../foundations/Select.js";
6
4
  import { Field } from "../foundations/Field.js";
7
5
  import { Form } from "../foundations/Form.js";
8
6
  import { Textarea } from "../foundations/Textarea.js";
7
+ import { Select } from "../foundations/Select.js";
8
+ import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
9
9
  import * as React from "react";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
11
  //#region src/components/agents-sdk/ThinkRoutineForm.tsx
@@ -32,6 +32,8 @@ interface ThinkRoutineLibraryProps<TRoutine extends ThinkRoutine = ThinkRoutine>
32
32
  error?: React.ReactNode;
33
33
  /** Product navigation rendered after the built-in schedule navigation control. */
34
34
  appBarLeading?: React.ReactNode;
35
+ /** Product navigation rendered before the selected schedule actions. */
36
+ appBarActions?: React.ReactNode;
35
37
  /** Starts the selected routine immediately. */
36
38
  onRunRoutine?: (routine: TRoutine) => void | Promise<void>;
37
39
  /** Activates or pauses the selected app-owned routine. */
@@ -53,6 +55,7 @@ interface ThinkRoutineLibraryProps<TRoutine extends ThinkRoutine = ThinkRoutine>
53
55
  * route and may also use these surfaces independently.
54
56
  */
55
57
  declare function ThinkRoutineLibrary<TRoutine extends ThinkRoutine = ThinkRoutine>({
58
+ appBarActions,
56
59
  appBarLeading,
57
60
  className,
58
61
  createRoutineLink,
@@ -1,9 +1,9 @@
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-B1Qw05te.js";
3
- import { n as isPlainPrimaryLinkActivation, t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
2
+ import { J as SpinnerIcon, V as PlayIcon, b as EllipsisIcon, f as ChevronDownIcon, tt as WarningIcon } from "../../icons-B4mGvCvc.js";
4
3
  import { Button, buttonVariants } from "../foundations/Button.js";
5
- import { i as formatErrorMessage } from "../../format-CmopcfqJ.js";
6
4
  import { Menu } from "../foundations/Menu.js";
5
+ import { i as formatErrorMessage } from "../../format-CmopcfqJ.js";
6
+ import { n as isPlainPrimaryLinkActivation, t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
7
7
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
8
8
  import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
9
9
  import { AlertDialog } from "../foundations/AlertDialog.js";
@@ -12,41 +12,45 @@ import { ThinkRoutineDetail } from "./ThinkRoutineDetail.js";
12
12
  import * as React from "react";
13
13
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
14
14
  //#region src/components/agents-sdk/ThinkRoutineLibrary.tsx
15
- function RoutineTopBarActions({ busy, onDelete, editLink, onRun, routineName }) {
15
+ function RoutineTopBarActions({ appBarActions, busy, onDelete, editLink, onRun, routineName }) {
16
16
  const [deleteOpen, setDeleteOpen] = React.useState(false);
17
17
  const moreActionsRef = React.useRef(null);
18
18
  const hasMenu = Boolean(editLink || onDelete);
19
- if (!onRun && !hasMenu) return null;
19
+ if (!appBarActions && !onRun && !hasMenu) return null;
20
20
  return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(AppTopBar.Trailing, {
21
21
  "aria-label": "Schedule actions",
22
- children: [onRun ? /* @__PURE__ */ jsx(AppTopBar.Button, {
23
- label: "Run schedule",
24
- tooltip: "Run now",
25
- disabled: busy,
26
- onClick: onRun,
27
- children: busy ? /* @__PURE__ */ jsx(SpinnerIcon, {}) : /* @__PURE__ */ jsx(PlayIcon, {})
28
- }) : null, hasMenu ? /* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */ jsx(AppTopBar.Button, {
29
- label: "More schedule actions",
30
- tooltip: "More actions",
31
- disabled: busy,
32
- render: /* @__PURE__ */ jsx(Menu.Trigger, {
33
- ref: moreActionsRef,
34
- unstyled: true
35
- }),
36
- children: /* @__PURE__ */ jsx(EllipsisIcon, {})
37
- }), /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
38
- align: "end",
39
- sideOffset: 4,
40
- children: /* @__PURE__ */ jsxs(Menu.Popup, { children: [editLink ? /* @__PURE__ */ jsx(Menu.Item, {
41
- render: editLink,
42
- children: "Edit schedule"
43
- }) : null, onDelete ? /* @__PURE__ */ jsx(Menu.Item, {
44
- variant: "destructive",
22
+ children: [
23
+ appBarActions,
24
+ onRun ? /* @__PURE__ */ jsx(AppTopBar.Button, {
25
+ label: "Run schedule",
26
+ tooltip: "Run now",
45
27
  disabled: busy,
46
- onClick: () => setDeleteOpen(true),
47
- children: "Delete schedule"
48
- }) : null] })
49
- }) })] }) : null]
28
+ onClick: onRun,
29
+ children: busy ? /* @__PURE__ */ jsx(SpinnerIcon, {}) : /* @__PURE__ */ jsx(PlayIcon, {})
30
+ }) : null,
31
+ hasMenu ? /* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */ jsx(AppTopBar.Button, {
32
+ label: "More schedule actions",
33
+ tooltip: "More actions",
34
+ disabled: busy,
35
+ render: /* @__PURE__ */ jsx(Menu.Trigger, {
36
+ ref: moreActionsRef,
37
+ unstyled: true
38
+ }),
39
+ children: /* @__PURE__ */ jsx(EllipsisIcon, {})
40
+ }), /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
41
+ align: "end",
42
+ sideOffset: 4,
43
+ children: /* @__PURE__ */ jsxs(Menu.Popup, { children: [editLink ? /* @__PURE__ */ jsx(Menu.Item, {
44
+ render: editLink,
45
+ children: "Edit schedule"
46
+ }) : null, onDelete ? /* @__PURE__ */ jsx(Menu.Item, {
47
+ variant: "destructive",
48
+ disabled: busy,
49
+ onClick: () => setDeleteOpen(true),
50
+ children: "Delete schedule"
51
+ }) : null] })
52
+ }) })] }) : null
53
+ ]
50
54
  }), onDelete ? /* @__PURE__ */ jsx(AlertDialog.Root, {
51
55
  open: deleteOpen,
52
56
  onOpenChange: setDeleteOpen,
@@ -80,7 +84,7 @@ function RoutineTopBarActions({ busy, onDelete, editLink, onRun, routineName })
80
84
  * and `ThinkRoutineRuns`; consumers compose `ThinkRoutineForm` in their create
81
85
  * route and may also use these surfaces independently.
82
86
  */
83
- function ThinkRoutineLibrary({ appBarLeading, className, createRoutineLink, error: catalogError, onDeleteRoutine, onRoutineEnabledChange, onRunRoutine, renderEditRoutineLink, renderRoutineLink, renderRoutineDetail, renderRunLink, ref, routines, selectedRoutineId, showOwner = true, ...props }) {
87
+ function ThinkRoutineLibrary({ appBarActions, appBarLeading, className, createRoutineLink, error: catalogError, onDeleteRoutine, onRoutineEnabledChange, onRunRoutine, renderEditRoutineLink, renderRoutineLink, renderRoutineDetail, renderRunLink, ref, routines, selectedRoutineId, showOwner = true, ...props }) {
84
88
  const [busy, setBusy] = React.useState(false);
85
89
  const [announcement, setAnnouncement] = React.useState("");
86
90
  const [actionError, setActionError] = React.useState(null);
@@ -140,6 +144,7 @@ function ThinkRoutineLibrary({ appBarLeading, className, createRoutineLink, erro
140
144
  children: [/* @__PURE__ */ jsx("span", { children: selectedRoutine.name }), /* @__PURE__ */ jsx(ChevronDownIcon, { "aria-hidden": "true" })]
141
145
  }) : null] }),
142
146
  /* @__PURE__ */ jsx(RoutineTopBarActions, {
147
+ appBarActions,
143
148
  busy,
144
149
  routineName: selectedRoutine?.name ?? "schedule",
145
150
  editLink: selectedRoutine && renderEditRoutineLink ? renderEditRoutineLink(selectedRoutine) : void 0,
@@ -1,8 +1,8 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
3
2
  import { buttonVariants } from "../foundations/Button.js";
4
- import { EmptyState } from "../foundations/EmptyState.js";
5
3
  import { Badge } from "../foundations/Badge.js";
4
+ import { EmptyState } from "../foundations/EmptyState.js";
5
+ import { t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
6
6
  import { getThinkExecutionRunAccessibleName, getThinkExecutionRunId, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
7
7
  import { ThinkExecutionRunSummary } from "./ThinkExecutionStatus.js";
8
8
  import * as React from "react";
@@ -1,10 +1,10 @@
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-B1Qw05te.js";
3
- import { n as isPlainPrimaryLinkActivation, t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
2
+ import { H as PlusIcon, J as SpinnerIcon, t as ArchiveIcon, tt as WarningIcon, v as DotIcon } from "../../icons-B4mGvCvc.js";
4
3
  import { Button, buttonVariants } from "../foundations/Button.js";
5
4
  import { i as formatErrorMessage } from "../../format-CmopcfqJ.js";
6
- import { EmptyState } from "../foundations/EmptyState.js";
7
5
  import { ScrollArea } from "../foundations/ScrollArea.js";
6
+ import { EmptyState } from "../foundations/EmptyState.js";
7
+ import { n as isPlainPrimaryLinkActivation, t as NavigationLink } from "../../navigation-link-kqMa81v5.js";
8
8
  import { SearchField } from "../foundations/SearchField.js";
9
9
  import { AlertDialog } from "../foundations/AlertDialog.js";
10
10
  import * as React from "react";
@@ -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-4WP4Uc_m.js";
2
+ import { i as FileTreeFolder, r as FileTreeFile, t as FileTree } from "../../FileTree-DbQMpvxV.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";
@@ -3,7 +3,7 @@ import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
3
3
  import { inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceMediaPath, isWorkspaceSkillPath, parseWorkspaceSkill } from "./WorkspaceFile.js";
4
4
  import { a as WorkspaceNavigationRestorationBoundary, n as WorkspaceNavigationProvider, o as useRequiredWorkspaceNavigationRestoration, r as resolveWorkspaceLink, t as WorkspaceFileLink } from "../../WorkspaceLink-DZeLe_jN.js";
5
5
  import { WorkspaceBrowser } from "./WorkspaceBrowser.js";
6
- import { t as WorkspaceFileView } from "../../WorkspaceFileView-hd1-cpuz.js";
6
+ import { t as WorkspaceFileView } from "../../WorkspaceFileView-BeUpr6TU.js";
7
7
  import { useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryKey, workspaceDirectoryQueryOptions, workspaceDirectoryQueryPrefix, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions } from "./Workspace.js";
8
8
  import * as React from "react";
9
9
  import { jsx } from "react/jsx-runtime";
@@ -104,8 +104,6 @@ function WorkspaceExplorerContent({ workspace, navigation, className, title = "W
104
104
  path: fileDestination.path,
105
105
  isLoading: selectedPath !== fileDestination.path || loadingPaths.has(fileDestination.path),
106
106
  isRefreshing: isLoading,
107
- leading,
108
- actions,
109
107
  onRefresh: refresh
110
108
  })
111
109
  }) : /* @__PURE__ */ jsx(WorkspaceBrowser, {
@@ -1,2 +1,2 @@
1
- import { t as WorkspaceFileView } from "../../WorkspaceFileView-hd1-cpuz.js";
1
+ import { t as WorkspaceFileView } from "../../WorkspaceFileView-BeUpr6TU.js";
2
2
  export { WorkspaceFileView };
@@ -1,4 +1,4 @@
1
- import { W as RefreshIcon } from "../../icons-B1Qw05te.js";
1
+ import { W as RefreshIcon } from "../../icons-B4mGvCvc.js";
2
2
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
3
3
  import "react";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,10 +1,10 @@
1
- import { w as FolderIcon } from "../../icons-B1Qw05te.js";
1
+ import { R as PaperclipIcon } from "../../icons-B4mGvCvc.js";
2
2
  import { Button } from "../foundations/Button.js";
3
3
  import { Popover } from "../foundations/Popover.js";
4
+ import { Card, CardAction, CardFooter, CardHeader, CardTitle } from "../foundations/Card.js";
4
5
  import { EmptyState } from "../foundations/EmptyState.js";
5
6
  import { StatusPill } from "../foundations/StatusPill.js";
6
7
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
7
- import { Card, CardAction, CardFooter, CardHeader, CardTitle } from "../foundations/Card.js";
8
8
  import "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
10
  //#region src/components/agents-sdk/WorkspaceMountManager.tsx
@@ -26,7 +26,7 @@ function WorkspaceMountManager({ mounts, adding = false, busyMountId = null, err
26
26
  return /* @__PURE__ */ jsxs(Popover.Root, { children: [/* @__PURE__ */ jsx(AppTopBar.Button, {
27
27
  label: triggerLabel,
28
28
  render: /* @__PURE__ */ jsx(Popover.Trigger, { unstyled: true }),
29
- children: /* @__PURE__ */ jsx(FolderIcon, {})
29
+ children: /* @__PURE__ */ jsx(PaperclipIcon, {})
30
30
  }), /* @__PURE__ */ jsx(Popover.Portal, { children: /* @__PURE__ */ jsx(Popover.Positioner, {
31
31
  side: "bottom",
32
32
  align: "end",
@@ -1,7 +1,7 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { m as ChevronRightIcon } from "../../icons-B1Qw05te.js";
3
2
  import { Collapsible } from "../foundations/Collapsible.js";
4
3
  import { useExpansionState } from "./ExpansionState.js";
4
+ import { m as ChevronRightIcon } from "../../icons-B4mGvCvc.js";
5
5
  import "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region src/components/ai-sdk/Activity.tsx
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { rt as XIcon } from "../../icons-B1Qw05te.js";
2
+ import { rt as XIcon } from "../../icons-B4mGvCvc.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-B1Qw05te.js";
2
+ import { B as PencilIcon } from "../../icons-B4mGvCvc.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { Kbd } from "../foundations/Kbd.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 { rt as XIcon } from "../../icons-B1Qw05te.js";
2
+ import { rt as XIcon } from "../../icons-B4mGvCvc.js";
3
3
  import { IconButton } from "../foundations/IconButton.js";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { J as SpinnerIcon, d as CheckIcon, m as ChevronRightIcon, v as DotIcon } from "../../icons-B1Qw05te.js";
3
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";
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-B1Qw05te.js";
2
+ import { s as BookmarkIcon } from "../../icons-B4mGvCvc.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-CM5gfmdq.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-B5I7wje1.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-B1Qw05te.js";
2
+ import { n as ArrowDownIcon, y as DownloadIcon } from "../../icons-B4mGvCvc.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-B1Qw05te.js";
2
+ import { Q as TargetIcon, V as PlayIcon, et as TrashIcon, z as PauseIcon } from "../../icons-B4mGvCvc.js";
3
3
  import { IconButton } from "../foundations/IconButton.js";
4
4
  import { i as formatErrorMessage } from "../../format-CmopcfqJ.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-B1Qw05te.js";
2
+ import { V as PlayIcon } from "../../icons-B4mGvCvc.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,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-B1Qw05te.js";
2
+ import { C as FileIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../../icons-B4mGvCvc.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";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { n as ArrowDownIcon } from "../../icons-B1Qw05te.js";
2
+ import { n as ArrowDownIcon } from "../../icons-B4mGvCvc.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { n as ArrowDownIcon } from "../../icons-B1Qw05te.js";
2
+ import { n as ArrowDownIcon } from "../../icons-B4mGvCvc.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import * as React from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -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-B1Qw05te.js";
2
+ import { d as CheckIcon, i as ArrowRightIcon, v as DotIcon } from "../../icons-B4mGvCvc.js";
3
3
  import { Popover } from "../foundations/Popover.js";
4
4
  import { t as ProgressRing } from "../../progress-ring-Dz_ztrW2.js";
5
5
  import * as React from "react";
@@ -1,15 +1,15 @@
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-B1Qw05te.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";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { Tooltip } from "../foundations/Tooltip.js";
5
5
  import { IconButton } from "../foundations/IconButton.js";
6
- import { t as AttachmentPreview } from "../../attachment-preview-1CXJvrmb.js";
7
- import { i as formatErrorMessage, n as clamp, r as formatClock } from "../../format-CmopcfqJ.js";
8
6
  import { Combobox } from "../foundations/Combobox.js";
9
7
  import { Kbd } from "../foundations/Kbd.js";
10
8
  import { Menu } from "../foundations/Menu.js";
11
9
  import { Select } from "../foundations/Select.js";
12
10
  import { Tabs } from "../foundations/Tabs.js";
11
+ import { t as AttachmentPreview } from "../../attachment-preview-1CXJvrmb.js";
12
+ import { i as formatErrorMessage, n as clamp, r as formatClock } from "../../format-CmopcfqJ.js";
13
13
  import * as React from "react";
14
14
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
15
  //#region src/components/ai-sdk/PromptInput.tsx
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { C as FileIcon, d as CheckIcon, m as ChevronRightIcon, v as DotIcon } from "../../icons-B1Qw05te.js";
3
2
  import { Collapsible } from "../foundations/Collapsible.js";
3
+ import { C as FileIcon, d as CheckIcon, m as ChevronRightIcon, v as DotIcon } from "../../icons-B4mGvCvc.js";
4
4
  import { Button } from "../foundations/Button.js";
5
5
  import { Badge } from "../foundations/Badge.js";
6
6
  import { ScrollArea } from "../foundations/ScrollArea.js";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { J as SpinnerIcon } from "../../icons-B1Qw05te.js";
3
2
  import { Collapsible } from "../foundations/Collapsible.js";
3
+ import { J as SpinnerIcon } from "../../icons-B4mGvCvc.js";
4
4
  import { ActivityContent, ActivityText, ActivityTrigger } from "./Activity.js";
5
5
  import { MessageResponse } from "./Message.js";
6
6
  import * as React from "react";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { k as LinkIcon, m as ChevronRightIcon } from "../../icons-B1Qw05te.js";
3
2
  import { Collapsible } from "../foundations/Collapsible.js";
3
+ import { k as LinkIcon, m as ChevronRightIcon } from "../../icons-B4mGvCvc.js";
4
4
  import "react";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/components/ai-sdk/Sources.tsx
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { C as FileIcon, G as SearchIcon, m as ChevronRightIcon } from "../../icons-B1Qw05te.js";
3
2
  import { Collapsible } from "../foundations/Collapsible.js";
3
+ import { C as FileIcon, G as SearchIcon, m as ChevronRightIcon } from "../../icons-B4mGvCvc.js";
4
4
  import "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/components/ai-sdk/Task.tsx
@@ -1,7 +1,7 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { J as SpinnerIcon } from "../../icons-B1Qw05te.js";
2
+ import { J as SpinnerIcon } from "../../icons-B4mGvCvc.js";
3
3
  import { Button } from "../foundations/Button.js";
4
- import { u as ModelSelectorLogo } from "../../ModelSelector-DzdEs2fX.js";
4
+ import { u as ModelSelectorLogo } from "../../ModelSelector-DZcpUBgn.js";
5
5
  import "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region src/components/extension/ChatGptSignInScreen.tsx