@mcp-b/react-components 0.40.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 (196) 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-CWk1FVtm.js → CodeBlock-BjELA-_s.js} +1 -1
  5. package/dist/{FileTree-xqHYBw4g.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/{ToggleGroup-_pQMyHGM.d.ts → ToggleGroup-BrQZOQn_.d.ts} +1 -1
  11. package/dist/Toolbar-CBOseBQr.d.ts +152 -0
  12. package/dist/{WorkspaceFileView-Lab3om3F.js → WorkspaceFileView-D0yFwoDr.js} +2 -2
  13. package/dist/{WorkspaceMessageResponse-Cy28WGSz.d.ts → WorkspaceMessageResponse-D66ty4FO.d.ts} +1 -1
  14. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  15. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  16. package/dist/components/agents-sdk/AgentChat.js +41 -18
  17. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
  18. package/dist/components/agents-sdk/AgentToolRunsContext.js +12 -0
  19. package/dist/components/agents-sdk/BrowserLiveScreen.d.ts +135 -0
  20. package/dist/components/agents-sdk/BrowserLiveScreen.js +637 -0
  21. package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -2
  22. package/dist/components/agents-sdk/BrowserLiveView.js +6 -9
  23. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  24. package/dist/components/agents-sdk/BrowserRunPanel.d.ts +1 -1
  25. package/dist/components/agents-sdk/BrowserRunPanel.js +6 -12
  26. package/dist/components/agents-sdk/ManagerOffice.d.ts +156 -0
  27. package/dist/components/agents-sdk/ManagerOffice.js +662 -0
  28. package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
  29. package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
  30. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +8 -2
  31. package/dist/components/agents-sdk/McpPluginCatalog.js +80 -62
  32. package/dist/components/agents-sdk/McpServerPicker.d.ts +1 -1
  33. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  34. package/dist/components/agents-sdk/ModelSelector.js +2 -2
  35. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  36. package/dist/components/agents-sdk/SubagentRunDetails.d.ts +1 -9
  37. package/dist/components/agents-sdk/SubagentRunDetails.js +1 -9
  38. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  39. package/dist/components/agents-sdk/SubagentRunSelector.d.ts +4 -2
  40. package/dist/components/agents-sdk/SubagentRunSelector.js +7 -6
  41. package/dist/components/agents-sdk/ThinkChat.d.ts +4 -4
  42. package/dist/components/agents-sdk/ThinkChat.js +1 -1
  43. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  44. package/dist/components/agents-sdk/ThinkChatActivity.js +1 -1
  45. package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
  46. package/dist/components/agents-sdk/ThinkExecutionDetail.d.ts +1 -1
  47. package/dist/components/agents-sdk/ThinkExecutionDetail.js +43 -43
  48. package/dist/components/agents-sdk/ThinkExecutionRun.d.ts +2 -2
  49. package/dist/components/agents-sdk/ThinkExecutionRun.js +5 -6
  50. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
  51. package/dist/components/agents-sdk/ThinkExecutionStatus.js +8 -12
  52. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +8 -1
  53. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +42 -37
  54. package/dist/components/agents-sdk/ThinkFullApp.d.ts +18 -6
  55. package/dist/components/agents-sdk/ThinkFullApp.js +113 -145
  56. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
  57. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +1 -1
  58. package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -1
  59. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +1 -1
  60. package/dist/components/agents-sdk/ThinkRoutineDetail.js +5 -16
  61. package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
  62. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +69 -89
  63. package/dist/components/agents-sdk/ThinkRoutineRuns.d.ts +1 -1
  64. package/dist/components/agents-sdk/ThinkRoutineRuns.js +3 -10
  65. package/dist/components/agents-sdk/ThinkThreadPicker.js +2 -2
  66. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  67. package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
  68. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  69. package/dist/components/agents-sdk/WorkspaceHeader.js +2 -1
  70. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  71. package/dist/components/agents-sdk/WorkspaceMountManager.js +11 -11
  72. package/dist/components/ai-sdk/Activity.js +1 -1
  73. package/dist/components/ai-sdk/AgentAttention.d.ts +1 -1
  74. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  75. package/dist/components/ai-sdk/Approval.js +1 -1
  76. package/dist/components/ai-sdk/Artifact.js +1 -1
  77. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  78. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  79. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  80. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  81. package/dist/components/ai-sdk/Conversation.js +1 -1
  82. package/dist/components/ai-sdk/Goal.js +1 -1
  83. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  84. package/dist/components/ai-sdk/Message.d.ts +2 -2
  85. package/dist/components/ai-sdk/Message.js +25 -3
  86. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  87. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  88. package/dist/components/ai-sdk/Plan.js +1 -1
  89. package/dist/components/ai-sdk/PromptInput.js +1 -1
  90. package/dist/components/ai-sdk/Queue.d.ts +4 -4
  91. package/dist/components/ai-sdk/Queue.js +6 -15
  92. package/dist/components/ai-sdk/Reasoning.js +1 -1
  93. package/dist/components/ai-sdk/Sources.js +1 -1
  94. package/dist/components/ai-sdk/Task.d.ts +2 -2
  95. package/dist/components/ai-sdk/Task.js +2 -2
  96. package/dist/components/extension/ChatGptSignInScreen.js +1 -1
  97. package/dist/components/extension/CodexModelSelector.js +1 -1
  98. package/dist/components/extension/ConversationTabPicker.js +1 -1
  99. package/dist/components/foundations/Avatar.d.ts +1 -10
  100. package/dist/components/foundations/Avatar.js +1 -10
  101. package/dist/components/foundations/Checkbox.js +1 -1
  102. package/dist/components/foundations/CheckboxGroup.js +1 -0
  103. package/dist/components/foundations/ContextMenu.js +1 -1
  104. package/dist/components/foundations/LinkButton.d.ts +12 -10
  105. package/dist/components/foundations/LinkButton.js +15 -11
  106. package/dist/components/foundations/Menubar.js +1 -1
  107. package/dist/components/foundations/SearchField.js +1 -1
  108. package/dist/components/foundations/Select.js +1 -1
  109. package/dist/components/foundations/Stepper.js +1 -1
  110. package/dist/components/foundations/Toast.js +1 -1
  111. package/dist/components/foundations/ToggleGroup.d.ts +1 -1
  112. package/dist/components/foundations/ToggleGroup.js +1 -1
  113. package/dist/components/foundations/Toolbar.d.ts +1 -151
  114. package/dist/components/foundations/icons.d.ts +2 -2
  115. package/dist/components/foundations/icons.js +2 -2
  116. package/dist/components/general-purpose/AppTopBar.d.ts +1 -90
  117. package/dist/components/general-purpose/AppTopBar.js +2 -1
  118. package/dist/components/general-purpose/Commit.d.ts +2 -2
  119. package/dist/components/general-purpose/Commit.js +5 -13
  120. package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
  121. package/dist/components/general-purpose/EnvironmentVariables.js +4 -7
  122. package/dist/components/general-purpose/FileTree.js +1 -1
  123. package/dist/components/general-purpose/PricingBillingToggle.js +5 -10
  124. package/dist/components/general-purpose/PricingPlanCard.js +15 -14
  125. package/dist/components/general-purpose/PricingUsageCalculator.js +1 -1
  126. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +95 -2
  127. package/dist/components/general-purpose/ResponsiveSidebarShell.js +90 -34
  128. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  129. package/dist/components/general-purpose/Terminal.d.ts +1 -1
  130. package/dist/components/general-purpose/Terminal.js +4 -12
  131. package/dist/components/general-purpose/TestResults.d.ts +1 -1
  132. package/dist/components/general-purpose/TestResults.js +8 -21
  133. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  134. package/dist/components/general-purpose/WebPreview.d.ts +1 -1
  135. package/dist/components/general-purpose/WebPreview.js +4 -12
  136. package/dist/components/nanites/AgentConnection.js +2 -2
  137. package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
  138. package/dist/components/nanites/AgentToolDetail.js +7 -7
  139. package/dist/components/nanites/NaniteScene.js +11 -11
  140. package/dist/{copy-button-Bc7jsYv_.js → copy-button-lys9N_aI.js} +1 -1
  141. package/dist/{icons-DwgNir1Q.d.ts → icons-0corjfxR.d.ts} +1 -16
  142. package/dist/{icons-MmIXciMO.js → icons-CVFSeTJn.js} +2 -5
  143. package/dist/styles/agent-attention.css +5 -5
  144. package/dist/styles/agent-chat.css +47 -12
  145. package/dist/styles/agent-tool-detail.css +2 -12
  146. package/dist/styles/app-icon.css +12 -18
  147. package/dist/styles/app-top-bar.css +32 -6
  148. package/dist/styles/avatar.css +6 -22
  149. package/dist/styles/base.css +2 -8
  150. package/dist/styles/browser-live-screen.css +38 -0
  151. package/dist/styles/browser-live-view.css +12 -4
  152. package/dist/styles/browser-run-panel.css +20 -18
  153. package/dist/styles/chatgpt-sign-in-screen.css +5 -5
  154. package/dist/styles/commit.css +24 -1
  155. package/dist/styles/environment-variables.css +3 -0
  156. package/dist/styles/index.css +5 -4
  157. package/dist/styles/manager-office.css +486 -0
  158. package/dist/styles/mcp-plugin-catalog.css +39 -35
  159. package/dist/styles/mcp-server-picker.css +1 -1
  160. package/dist/styles/message.css +41 -18
  161. package/dist/styles/nanite-scene.css +9 -9
  162. package/dist/styles/pricing-page.css +12 -8
  163. package/dist/styles/prompt-input.css +8 -13
  164. package/dist/styles/recipes.css +1 -57
  165. package/dist/styles/responsive-sidebar-shell.css +70 -20
  166. package/dist/styles/subagent-run.css +20 -3
  167. package/dist/styles/terminal.css +19 -0
  168. package/dist/styles/test-results.css +10 -1
  169. package/dist/styles/think-execution-status.css +8 -24
  170. package/dist/styles/think-execution-workbench.css +98 -105
  171. package/dist/styles/think-full-app.css +81 -193
  172. package/dist/styles/think-routine-library.css +0 -40
  173. package/dist/styles/think-thread-picker.css +8 -3
  174. package/dist/styles/transition-surface.css +7 -8
  175. package/dist/styles/utilities.css +42 -0
  176. package/dist/styles/web-preview.css +28 -5
  177. package/dist/styles/workspace-explorer.css +4 -23
  178. package/dist/styles/workspace-mount-manager.css +22 -0
  179. package/package.json +37 -35
  180. package/dist/ResponsiveSidebarShell-DWjULskY.d.ts +0 -68
  181. package/dist/components/agents-sdk/AgentActivityPreview.d.ts +0 -46
  182. package/dist/components/agents-sdk/AgentActivityPreview.js +0 -93
  183. package/dist/components/agents-sdk/ThinkThreadShell.d.ts +0 -38
  184. package/dist/components/agents-sdk/ThinkThreadShell.js +0 -27
  185. package/dist/components/foundations/Badge.d.ts +0 -62
  186. package/dist/components/foundations/Badge.js +0 -55
  187. package/dist/components/foundations/StatusPill.d.ts +0 -43
  188. package/dist/components/foundations/StatusPill.js +0 -35
  189. package/dist/components/general-purpose/Shell.d.ts +0 -149
  190. package/dist/components/general-purpose/Shell.js +0 -116
  191. package/dist/styles/agent-activity-preview-overlay.css +0 -169
  192. package/dist/styles/agent-activity-preview.css +0 -209
  193. package/dist/styles/badge.css +0 -120
  194. package/dist/styles/shell.css +0 -122
  195. package/dist/styles/status-pill.css +0 -39
  196. package/dist/{ThinkChat-DkA4Wr71.js → ThinkChat-BES_3Mb-.js} +1 -1
@@ -1,28 +1,24 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { C as FileIcon, Y as SpinnerIcon, c as BoxIcon, et as TerminalIcon, f as ChevronDownIcon } from "../../icons-MmIXciMO.js";
3
- import { Button } from "../foundations/Button.js";
2
+ import { K as SpinnerIcon, S as FileIcon, Z as TerminalIcon, c as BoxIcon } from "../../icons-CVFSeTJn.js";
4
3
  import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
5
- import { ScrollArea } from "../foundations/ScrollArea.js";
6
4
  import { EmptyState } from "../foundations/EmptyState.js";
7
- import { AppTopBar } from "../general-purpose/AppTopBar.js";
8
5
  import { ResizableSidePanel } from "../general-purpose/ResizableSidePanel.js";
9
- import { a as WorkspaceNavigationRestorationBoundary, i as WorkspaceNavigationFocusRestorer, n as WorkspaceNavigationProvider } from "../../WorkspaceLink-DtH66bAY.js";
10
- import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-DkA4Wr71.js";
6
+ import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
11
7
  import { McpPluginCatalog } from "./McpPluginCatalog.js";
8
+ import { a as WorkspaceNavigationRestorationBoundary, i as WorkspaceNavigationFocusRestorer, n as WorkspaceNavigationProvider } from "../../WorkspaceLink-DtH66bAY.js";
9
+ import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../../ThinkChat-BES_3Mb-.js";
12
10
  import { ThinkExecutionWorkbench } from "./ThinkExecutionWorkbench.js";
13
11
  import { ThinkFullAppViewSwitch } from "./ThinkFullAppViewSwitch.js";
14
12
  import { ThinkThreadStatusIndicators } from "./ThinkThreadPicker.js";
15
- import { ThinkThreadShell } from "./ThinkThreadShell.js";
16
13
  import { useWorkspace } from "./Workspace.js";
17
14
  import { WorkspaceExplorer } from "./WorkspaceExplorer.js";
18
15
  import * as React from "react";
19
- import { jsx, jsxs } from "react/jsx-runtime";
16
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
20
17
  //#region src/components/agents-sdk/ThinkFullApp.tsx
21
- const workbenchPanelDefaultWidth = 340;
22
- const workbenchPanelMinWidth = 300;
23
- const workbenchPanelMaxWidth = 600;
24
- const workbenchPanelKeyboardStep = 24;
25
- const workbenchPanelCollapseThreshold = 240;
18
+ const conversationDefaultWidth = 393;
19
+ const conversationMinWidth = 320;
20
+ const conversationMaxWidth = 640;
21
+ const conversationKeyboardStep = 24;
26
22
  function WorkspacePanel({ config }) {
27
23
  const selectedPath = config.navigation.current.destination.kind === "file" ? config.navigation.current.destination.path : null;
28
24
  return /* @__PURE__ */ jsx(WorkspaceExplorer, {
@@ -40,12 +36,6 @@ function WorkspacePanel({ config }) {
40
36
  actions: config.actions
41
37
  });
42
38
  }
43
- function PluginsPanel({ config }) {
44
- return /* @__PURE__ */ jsxs(ScrollArea.Root, {
45
- className: "think-full-app__workbench",
46
- children: [/* @__PURE__ */ jsx(ScrollArea.Viewport, { children: /* @__PURE__ */ jsx(ScrollArea.Content, { children: /* @__PURE__ */ jsx(McpPluginCatalog, { ...config }) }) }), /* @__PURE__ */ jsx(ScrollArea.Scrollbar, { children: /* @__PURE__ */ jsx(ScrollArea.Thumb, {}) })]
47
- });
48
- }
49
39
  /**
50
40
  * Approval discovery and background-agent events need a live connection, so they
51
41
  * live here rather than in the shell, which also renders before there is one.
@@ -82,7 +72,7 @@ function ThinkFullAppThreadChat({ agent, agentTools, chat, messages, renderAgent
82
72
  });
83
73
  }
84
74
  /** Combines ThinkChat with an optional resizable workbench shell. */
85
- function ThinkFullApp({ appBarActions, appBarLeading, appBarTitle, className, conversation, defaultMobileView, defaultWorkbenchOpen, defaultWorkbenchView, defaultThreadSidebarOpen, hideAppBarInWorkbench = false, messages, mobileView, onMobileViewChange, onThreadSidebarOpenChange, onWorkbenchOpenChange, onWorkbenchViewChange, plugins, ref, renderAgentToolRunLink, renderExecutionRunLink, selectedExecutionRun = null, showMobileViewSwitch = true, showWorkbenchViewSwitch = true, sourceKey, style, threadSidebar, threadSidebarOpen, threadStatusSummary, workbenchOpen, workbenchPanels, workbenchView, workspace, ...props }) {
75
+ function ThinkFullApp({ appBarActions, appBarLeading, appBarTitle, compactAppBarLeading, className, conversation, defaultMobileView, defaultWorkbenchOpen, defaultWorkbenchView, defaultThreadSidebarOpen, hideAppBarInWorkbench = false, messages, mobileView, onMobileViewChange, onThreadSidebarOpenChange, onWorkbenchOpenChange, onWorkbenchViewChange, plugins, ref, renderAgentToolRunLink, renderExecutionRunLink, renderExecutionRunsLink, selectedExecutionRun = null, showMobileViewSwitch = true, showWorkbenchViewSwitch = true, sourceKey, style, threadSidebar, threadSidebarOpen, threadStatusSummary, workbenchOpen, workbenchPanels, workbenchView, workspace, ...props }) {
86
76
  const agent = conversation?.agent;
87
77
  const appRef = React.useRef(null);
88
78
  const workbenchPanelRef = React.useRef(null);
@@ -115,7 +105,7 @@ function ThinkFullApp({ appBarActions, appBarLeading, appBarTitle, className, co
115
105
  icon: /* @__PURE__ */ jsx(FileIcon, {}),
116
106
  render: () => /* @__PURE__ */ jsx(WorkspacePanel, { config: workspace })
117
107
  });
118
- if (renderExecutionRunLink && agent) availableWorkbenchPanels.push({
108
+ if (renderExecutionRunLink && renderExecutionRunsLink && agent) availableWorkbenchPanels.push({
119
109
  id: "execution",
120
110
  label: "Execution",
121
111
  icon: /* @__PURE__ */ jsx(TerminalIcon, {}),
@@ -133,7 +123,8 @@ function ThinkFullApp({ appBarActions, appBarLeading, appBarTitle, className, co
133
123
  sourceKey,
134
124
  title: "Execution",
135
125
  selectedRun: selectedExecutionRun,
136
- renderRunLink: renderExecutionRunLink
126
+ renderRunLink: renderExecutionRunLink,
127
+ renderRunsLink: renderExecutionRunsLink
137
128
  })
138
129
  })
139
130
  });
@@ -141,7 +132,7 @@ function ThinkFullApp({ appBarActions, appBarLeading, appBarTitle, className, co
141
132
  id: "plugins",
142
133
  label: "Plugins",
143
134
  icon: /* @__PURE__ */ jsx(BoxIcon, {}),
144
- render: () => /* @__PURE__ */ jsx(PluginsPanel, { config: plugins })
135
+ render: () => /* @__PURE__ */ jsx(McpPluginCatalog, { ...plugins })
145
136
  });
146
137
  if (workbenchPanels) availableWorkbenchPanels.push(...workbenchPanels);
147
138
  const selectedPanel = availableWorkbenchPanels.find((panel) => panel.id === requestedWorkbenchView) ?? availableWorkbenchPanels[0];
@@ -152,8 +143,9 @@ function ThinkFullApp({ appBarActions, appBarLeading, appBarTitle, className, co
152
143
  const activeMobileView = hasWorkbench ? requestedMobileView : "chat";
153
144
  const shouldShowWorkbenchViewSwitch = showWorkbenchViewSwitch && availableWorkbenchPanels.length > 0;
154
145
  const workbenchViews = availableWorkbenchPanels;
155
- const shouldRenderInlineAppBar = !threadSidebar && (Boolean(appBarActions || appBarLeading || appBarTitle || threadSidebar) || hasAvailableWorkbench);
156
- const hasAppBarRow = shouldRenderInlineAppBar;
146
+ const hasApplicationChrome = Boolean(appBarActions || appBarLeading || compactAppBarLeading || appBarTitle || threadSidebar);
147
+ const shouldShowMobileViewSwitch = Boolean(selectedPanel) && showMobileViewSwitch;
148
+ const hasAppBarRow = hasApplicationChrome || shouldShowWorkbenchViewSwitch || shouldShowMobileViewSwitch;
157
149
  React.useLayoutEffect(() => {
158
150
  const pendingFocus = pendingPanelFocusRef.current;
159
151
  if (!pendingFocus || pendingFocus.id !== activeWorkbenchView) return;
@@ -170,135 +162,95 @@ function ThinkFullApp({ appBarActions, appBarLeading, appBarTitle, className, co
170
162
  } : null;
171
163
  React.startTransition(() => setWorkbenchView(next));
172
164
  };
173
- const renderAppTopBar = (sidebarControls) => /* @__PURE__ */ jsxs(AppTopBar.Root, {
174
- className: "think-full-app__app-bar",
175
- "aria-label": "Workbench controls",
176
- "data-mobile-view": activeMobileView,
177
- children: [
178
- /* @__PURE__ */ jsxs(AppTopBar.Leading, { children: [sidebarControls?.sidebarToggle, appBarLeading] }),
179
- appBarTitle || sidebarControls ? /* @__PURE__ */ jsxs(AppTopBar.Title, { children: [appBarTitle ? /* @__PURE__ */ jsx("span", {
180
- className: "think-full-app__app-title",
181
- children: appBarTitle
182
- }) : null, sidebarControls ? /* @__PURE__ */ jsxs(Button, {
183
- type: "button",
184
- variant: "ghost",
185
- color: "neutral",
186
- size: "sm",
187
- className: "think-full-app__thread-trigger",
188
- "aria-label": "Threads",
189
- "aria-controls": sidebarControls.sidebarId,
190
- "aria-expanded": sidebarControls.sidebarOpen,
191
- onClick: (event) => sidebarControls.toggleSidebar(event.currentTarget),
192
- children: [
193
- /* @__PURE__ */ jsx("span", {
194
- className: "think-full-app__thread-trigger-title sigvelo-truncate",
195
- children: appBarTitle ?? "Threads"
196
- }),
197
- threadStatusSummary ? /* @__PURE__ */ jsx(ThinkThreadStatusIndicators, { summary: threadStatusSummary }) : null,
198
- /* @__PURE__ */ jsx(ChevronDownIcon, { "aria-hidden": "true" })
199
- ]
200
- }) : null] }) : null,
201
- /* @__PURE__ */ jsxs(AppTopBar.Trailing, { children: [
202
- appBarActions,
203
- shouldShowWorkbenchViewSwitch && selectedPanel ? /* @__PURE__ */ jsx(ThinkFullAppViewSwitch, {
204
- className: "think-full-app__workbench-view-switch",
205
- views: workbenchViews,
206
- value: activeWorkbenchView,
207
- allowEmpty: true,
208
- onValueChange: (next) => {
209
- updateAppView(() => {
210
- if (!next) {
211
- setWorkbenchOpen(false);
212
- return;
213
- }
214
- updateWorkbenchPanel(next);
215
- setWorkbenchOpen(true);
216
- });
217
- },
218
- "aria-label": "Workbench views"
219
- }) : null,
220
- selectedPanel && showMobileViewSwitch ? /* @__PURE__ */ jsx(ThinkFullAppViewSwitch, {
221
- className: "think-full-app__mobile-view-switch",
222
- views: workbenchViews,
223
- value: activeMobileView === "workbench" ? activeWorkbenchView : void 0,
224
- allowEmpty: true,
225
- onValueChange: (next) => {
226
- updateAppView(() => {
227
- if (!next) {
228
- setMobileView("chat");
229
- return;
230
- }
231
- setWorkbenchView(next);
232
- setMobileView("workbench");
233
- });
234
- },
235
- "aria-label": "App views"
236
- }) : null
237
- ] })
238
- ]
239
- });
165
+ const appBarTrailing = appBarActions || shouldShowWorkbenchViewSwitch || shouldShowMobileViewSwitch ? /* @__PURE__ */ jsxs(Fragment, { children: [
166
+ appBarActions,
167
+ shouldShowWorkbenchViewSwitch ? /* @__PURE__ */ jsx(ThinkFullAppViewSwitch, {
168
+ className: "think-full-app__workbench-view-switch",
169
+ views: workbenchViews,
170
+ value: activeWorkbenchView,
171
+ allowEmpty: true,
172
+ onValueChange: (next) => {
173
+ updateAppView(() => {
174
+ if (!next) {
175
+ setWorkbenchOpen(false);
176
+ return;
177
+ }
178
+ updateWorkbenchPanel(next);
179
+ setWorkbenchOpen(true);
180
+ });
181
+ },
182
+ "aria-label": "Workbench views"
183
+ }) : null,
184
+ shouldShowMobileViewSwitch ? /* @__PURE__ */ jsx(ThinkFullAppViewSwitch, {
185
+ className: "think-full-app__mobile-view-switch",
186
+ views: workbenchViews,
187
+ value: activeMobileView === "workbench" ? activeWorkbenchView : void 0,
188
+ allowEmpty: true,
189
+ onValueChange: (next) => {
190
+ updateAppView(() => {
191
+ if (!next) {
192
+ setMobileView("chat");
193
+ return;
194
+ }
195
+ setWorkbenchView(next);
196
+ setMobileView("workbench");
197
+ });
198
+ },
199
+ "aria-label": "App views"
200
+ }) : null
201
+ ] }) : void 0;
240
202
  const appContent = /* @__PURE__ */ jsxs(ResizableSidePanel.Root, {
241
203
  ref: mergeRefs(appRef, ref),
242
204
  className: cx("think-full-app", className),
243
205
  label: "workbench",
244
- side: "end",
245
- defaultSize: workbenchPanelDefaultWidth,
246
- minSize: workbenchPanelMinWidth,
247
- maxSize: workbenchPanelMaxWidth,
248
- keyboardStep: workbenchPanelKeyboardStep,
249
- collapseThreshold: workbenchPanelCollapseThreshold,
250
- onCollapse: () => setWorkbenchOpen(false),
251
- "data-has-thread-sidebar": threadSidebar ? "true" : "false",
206
+ side: "start",
207
+ defaultSize: conversationDefaultWidth,
208
+ minSize: conversationMinWidth,
209
+ maxSize: conversationMaxWidth,
210
+ keyboardStep: conversationKeyboardStep,
252
211
  "data-has-workbench": hasWorkbench ? "true" : "false",
253
- "data-has-workbench-topbar": hasAppBarRow ? "true" : "false",
254
212
  "data-mobile-view": activeMobileView,
255
213
  style,
256
214
  ...props,
257
- children: [
258
- shouldRenderInlineAppBar ? renderAppTopBar() : null,
259
- /* @__PURE__ */ jsxs("div", {
260
- className: "think-full-app__view-scope",
261
- "data-recipe": "application-plane",
262
- "data-mobile-view": activeMobileView,
263
- children: [/* @__PURE__ */ jsx("section", {
264
- className: "think-full-app__chat-surface",
265
- "data-workspace-restoration-scope": "chat",
266
- "aria-label": "Chat",
215
+ children: [/* @__PURE__ */ jsxs("div", {
216
+ className: "think-full-app__view-scope",
217
+ "data-mobile-view": activeMobileView,
218
+ children: [/* @__PURE__ */ jsx("section", {
219
+ className: "think-full-app__chat-surface",
220
+ "data-workspace-restoration-scope": "chat",
221
+ "aria-label": "Chat",
222
+ children: /* @__PURE__ */ jsx("div", {
223
+ className: "think-full-app__chat",
267
224
  children: /* @__PURE__ */ jsx("div", {
268
- className: "think-full-app__chat",
269
- children: /* @__PURE__ */ jsx("div", {
270
- className: "think-full-app__chat-inner",
271
- children: conversation ? /* @__PURE__ */ jsx(ThinkFullAppThreadChat, {
272
- ...conversation,
273
- messages,
274
- renderAgentToolRunLink,
275
- sourceKey
276
- }) : /* @__PURE__ */ jsx(ThinkChat.Messages, {
277
- ...messages,
278
- renderAgentToolRunLink
279
- })
225
+ className: "think-full-app__chat-inner",
226
+ children: conversation ? /* @__PURE__ */ jsx(ThinkFullAppThreadChat, {
227
+ ...conversation,
228
+ messages,
229
+ renderAgentToolRunLink,
230
+ sourceKey
231
+ }) : /* @__PURE__ */ jsx(ThinkChat.Messages, {
232
+ ...messages,
233
+ renderAgentToolRunLink
280
234
  })
281
235
  })
282
- }), activePanel ? /* @__PURE__ */ jsx("aside", {
283
- className: "think-full-app__aside",
284
- "aria-label": "Workbench",
285
- children: /* @__PURE__ */ jsx("div", {
286
- className: "think-full-app__workbench-slot",
287
- children: /* @__PURE__ */ jsx(React.ViewTransition, {
288
- default: "sigvelo-layout-transition",
289
- children: /* @__PURE__ */ jsx("div", {
290
- ref: workbenchPanelRef,
291
- className: "think-full-app__workbench-panel",
292
- "data-view": activeWorkbenchView,
293
- tabIndex: -1,
294
- children: activePanel.render()
295
- })
236
+ })
237
+ }), hasAvailableWorkbench ? /* @__PURE__ */ jsx("aside", {
238
+ className: "think-full-app__aside",
239
+ "aria-label": "Workbench",
240
+ children: activePanel ? /* @__PURE__ */ jsx("div", {
241
+ className: "think-full-app__workbench-slot",
242
+ children: /* @__PURE__ */ jsx(React.ViewTransition, {
243
+ default: "sigvelo-layout-transition",
244
+ children: /* @__PURE__ */ jsx("div", {
245
+ ref: workbenchPanelRef,
246
+ className: "think-full-app__workbench-panel",
247
+ tabIndex: -1,
248
+ children: activePanel.render()
296
249
  })
297
250
  })
298
- }) : null]
299
- }),
300
- activePanel ? /* @__PURE__ */ jsx(ResizableSidePanel.Handle, { className: "think-full-app__resizer" }) : null
301
- ]
251
+ }) : null
252
+ }) : null]
253
+ }), activePanel ? /* @__PURE__ */ jsx(ResizableSidePanel.Handle, { className: "think-full-app__resizer" }) : null]
302
254
  });
303
255
  const app = workspace ? /* @__PURE__ */ jsx(WorkspaceNavigationProvider, {
304
256
  root: workspace.root ?? "/",
@@ -313,14 +265,30 @@ function ThinkFullApp({ appBarActions, appBarLeading, appBarTitle, className, co
313
265
  scope: "chat"
314
266
  }), appContent] })
315
267
  }) : appContent;
316
- if (!threadSidebar) return app;
317
- return /* @__PURE__ */ jsx(ThinkThreadShell, {
268
+ return /* @__PURE__ */ jsx(ResponsiveSidebarShell, {
269
+ className: "think-full-app-shell",
318
270
  sidebar: threadSidebar,
271
+ sidebarLabel: "threads",
319
272
  sidebarOpen: threadSidebarOpen,
320
273
  defaultSidebarOpen: defaultThreadSidebarOpen,
321
274
  onSidebarOpenChange: onThreadSidebarOpenChange,
322
- "data-hide-app-bar-in-workbench": hideAppBarInWorkbench ? "" : void 0,
323
- topBar: (controls) => renderAppTopBar(controls),
275
+ showMainLabel: "Show selected thread",
276
+ topBarHidden: !hasAppBarRow,
277
+ topBarProps: {
278
+ className: "think-full-app__app-bar",
279
+ "aria-label": "Workbench controls",
280
+ "data-app-chrome": hasApplicationChrome || shouldShowWorkbenchViewSwitch ? "true" : "false",
281
+ "data-mobile-view": activeMobileView,
282
+ "data-hide-in-workbench": hideAppBarInWorkbench ? "" : void 0
283
+ },
284
+ topBarLeading: appBarLeading,
285
+ compactTopBarLeading: compactAppBarLeading,
286
+ topBarTitle: appBarTitle,
287
+ compactTitleTrigger: threadSidebar ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
288
+ className: "sigvelo-truncate",
289
+ children: appBarTitle ?? "Threads"
290
+ }), threadStatusSummary ? /* @__PURE__ */ jsx(ThinkThreadStatusIndicators, { summary: threadStatusSummary }) : null] }) : void 0,
291
+ topBarTrailing: appBarTrailing,
324
292
  children: app
325
293
  });
326
294
  }
@@ -1,4 +1,4 @@
1
- import { r as ToggleGroupProps } from "../../ToggleGroup-_pQMyHGM.js";
1
+ import { r as ToggleGroupProps } from "../../ToggleGroup-BrQZOQn_.js";
2
2
  import * as React from "react";
3
3
 
4
4
  //#region src/components/agents-sdk/ThinkFullAppViewSwitch.d.ts
@@ -1,6 +1,6 @@
1
1
  import { n as mergeBaseClassName } from "../../class-names-BiMDVpUo.js";
2
- import { ToggleGroup } from "../foundations/ToggleGroup.js";
3
2
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
3
+ import { ToggleGroup } from "../foundations/ToggleGroup.js";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region src/components/agents-sdk/ThinkFullAppViewSwitch.tsx
@@ -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 { ThinkScheduledTask } from "@cloudflare/think";
3
3
  import { Schedule } from "agents";
4
4
 
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { U as PlusIcon } from "../../icons-MmIXciMO.js";
2
+ import { B as PlusIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { buttonVariants } from "../foundations/Button.js";
4
4
  import { Tooltip } from "../foundations/Tooltip.js";
5
5
  import { t as capitalize } from "../../format-DB2mX9DA.js";
@@ -1,7 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { Badge } from "../foundations/Badge.js";
3
- import { Switch } from "../foundations/Switch.js";
4
2
  import { getThinkRoutineNextRun } from "./ThinkRoutine.js";
3
+ import { Switch } from "../foundations/Switch.js";
5
4
  import { ThinkRoutineRuns } from "./ThinkRoutineRuns.js";
6
5
  import * as React from "react";
7
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -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 { Y as SpinnerIcon } from "../../icons-MmIXciMO.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 { 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 { $ 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
- import { AlertDialog } from "../foundations/AlertDialog.js";
8
7
  import { EmptyState } from "../foundations/EmptyState.js";
9
8
  import { AppTopBar } from "../general-purpose/AppTopBar.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