@mcp-b/react-components 0.25.0 → 0.26.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 (110) hide show
  1. package/dist/{AgentChat-DHxdTjwF.d.ts → AgentChat-B6sgfQ_q.d.ts} +8 -1
  2. package/dist/{CodeBlock-B3RLU3ez.js → CodeBlock-BUfEhDia.js} +1 -1
  3. package/dist/{Combobox-xEEF6fUb.d.ts → Combobox-DI6xcQjc.d.ts} +14 -4
  4. package/dist/{FileTree-CYr5og0q.js → FileTree-XOLP3Yvo.js} +1 -1
  5. package/dist/{Message-KlK8tlBZ.js → Message-BF6SiKKL.js} +1 -1
  6. package/dist/{ModelSelector-YTlqkIjs.js → ModelSelector-CRdvHT_b.js} +1 -1
  7. package/dist/{PromptInput-BjoPWaaG.d.ts → PromptInput-CES0WO4u.d.ts} +8 -5
  8. package/dist/{ThinkChatActivity-DMTHKWrI.d.ts → ThinkChatActivity-DawPYgga.d.ts} +5 -5
  9. package/dist/{WorkspaceFileView-CuMjXYQn.js → WorkspaceFileView-CKEmUyeT.js} +3 -3
  10. package/dist/components/Activity.js +1 -1
  11. package/dist/components/AgentActivity.js +1 -1
  12. package/dist/components/AgentActivityPreview.js +1 -1
  13. package/dist/components/AgentChat.d.ts +1 -1
  14. package/dist/components/AgentChat.js +10 -11
  15. package/dist/components/AgentChatStartScreen.js +1 -1
  16. package/dist/components/AgentConnection.d.ts +1 -1
  17. package/dist/components/AgentConnection.js +2 -2
  18. package/dist/components/AgentMessageParts.js +1 -1
  19. package/dist/components/AgentToolDetail.js +1 -1
  20. package/dist/components/Approval.js +1 -1
  21. package/dist/components/Artifact.js +1 -1
  22. package/dist/components/BrowserLiveView.js +1 -1
  23. package/dist/components/BrowserReplay.js +1 -1
  24. package/dist/components/BrowserRunPanel.js +1 -1
  25. package/dist/components/ChainOfThought.d.ts +1 -1
  26. package/dist/components/ChainOfThought.js +1 -1
  27. package/dist/components/ChatGptSignInScreen.js +2 -2
  28. package/dist/components/Checkbox.js +1 -1
  29. package/dist/components/Checkpoint.js +1 -1
  30. package/dist/components/CodeBlock.js +1 -1
  31. package/dist/components/CodexModelSelector.js +1 -1
  32. package/dist/components/Combobox.d.ts +1 -1
  33. package/dist/components/Combobox.js +16 -4
  34. package/dist/components/Commit.js +2 -2
  35. package/dist/components/Context.js +1 -32
  36. package/dist/components/ContextMenu.js +1 -1
  37. package/dist/components/Conversation.js +1 -1
  38. package/dist/components/EnvironmentVariables.js +2 -2
  39. package/dist/components/ExpansionState.js +2 -3
  40. package/dist/components/FileTree.js +1 -1
  41. package/dist/components/Goal.d.ts +7 -5
  42. package/dist/components/Goal.js +8 -7
  43. package/dist/components/McpConnectionRequest.d.ts +1 -1
  44. package/dist/components/McpConnectionRequest.js +1 -1
  45. package/dist/components/McpPluginCatalog.d.ts +1 -1
  46. package/dist/components/McpPluginCatalog.js +3 -2
  47. package/dist/components/McpServerPicker.d.ts +1 -1
  48. package/dist/components/McpServerPicker.js +1 -1
  49. package/dist/components/MediaPreviewCard.js +1 -1
  50. package/dist/components/Menubar.js +1 -1
  51. package/dist/components/Message.js +1 -1
  52. package/dist/components/MessageScroller.js +1 -1
  53. package/dist/components/MessageScrollerVirtual.d.ts +6 -1
  54. package/dist/components/MessageScrollerVirtual.js +21 -13
  55. package/dist/components/ModelSelector.js +1 -1
  56. package/dist/components/Plan.d.ts +61 -1
  57. package/dist/components/Plan.js +82 -2
  58. package/dist/components/PricingPlanCard.js +1 -1
  59. package/dist/components/PromptInput.d.ts +1 -1
  60. package/dist/components/PromptInput.js +4 -3
  61. package/dist/components/Queue.js +1 -1
  62. package/dist/components/Reasoning.js +2 -2
  63. package/dist/components/ResponsiveSidebarShell.js +1 -1
  64. package/dist/components/SearchField.js +1 -1
  65. package/dist/components/Select.js +1 -1
  66. package/dist/components/SessionCompaction.d.ts +8 -7
  67. package/dist/components/SessionCompaction.js +2 -0
  68. package/dist/components/SetupChecklist.d.ts +39 -0
  69. package/dist/components/SetupChecklist.js +45 -0
  70. package/dist/components/Sources.js +1 -1
  71. package/dist/components/Stepper.js +1 -1
  72. package/dist/components/SubagentRunIndicator.js +1 -1
  73. package/dist/components/Task.js +1 -1
  74. package/dist/components/Terminal.js +2 -2
  75. package/dist/components/TestResults.js +1 -1
  76. package/dist/components/ThemeModeControl.js +1 -1
  77. package/dist/components/ThinkChat.d.ts +4 -2
  78. package/dist/components/ThinkChatActivity.d.ts +1 -1
  79. package/dist/components/ThinkChatActivity.js +3 -3
  80. package/dist/components/ThinkChatToolPanels.js +1 -1
  81. package/dist/components/ThinkExecutionDetail.js +1 -1
  82. package/dist/components/ThinkExecutionStatus.js +1 -1
  83. package/dist/components/ThinkExecutionWorkbench.js +1 -1
  84. package/dist/components/ThinkFullApp.js +34 -37
  85. package/dist/components/ThinkRoutineBrowser.js +1 -1
  86. package/dist/components/ThinkRoutineForm.js +1 -1
  87. package/dist/components/ThinkRoutineLibrary.js +1 -1
  88. package/dist/components/ThinkThreadPicker.js +1 -1
  89. package/dist/components/Toast.js +1 -1
  90. package/dist/components/WebPreview.js +1 -1
  91. package/dist/components/WorkspaceBrowser.js +1 -1
  92. package/dist/components/WorkspaceExplorer.js +1 -1
  93. package/dist/components/WorkspaceFileView.js +1 -1
  94. package/dist/components/WorkspaceHeader.js +1 -1
  95. package/dist/components/icons.d.ts +2 -2
  96. package/dist/components/icons.js +2 -2
  97. package/dist/{copy-button-Buxmtmp9.js → copy-button-7ttJAorN.js} +1 -1
  98. package/dist/{icons-w5PpKGRz.js → icons-B4mGvCvc.js} +3 -1
  99. package/dist/{icons-Cih3W-zM.d.ts → icons-BGZ916hb.d.ts} +5 -1
  100. package/dist/{mcp-server-catalog-DycejaJ5.d.ts → mcp-server-catalog-BewjV7Eq.d.ts} +1 -1
  101. package/dist/progress-ring-BjqTZqBk.js +40 -0
  102. package/dist/styles/agent-chat.css +57 -1
  103. package/dist/styles/base.css +1 -0
  104. package/dist/styles/combobox.css +44 -0
  105. package/dist/styles/goal.css +11 -5
  106. package/dist/styles/message-scroller.css +1 -0
  107. package/dist/styles/plan.css +45 -0
  108. package/dist/utils/mcp-server-catalog.d.ts +1 -1
  109. package/dist/utils/mcp-server-catalog.js +1 -1
  110. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "./Collapsible.js";
3
- import { k as LinkIcon, m as ChevronRightIcon } from "../icons-w5PpKGRz.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/Sources.tsx
@@ -1,5 +1,5 @@
1
1
  import { n as mergeBaseClassName, t as cx } from "../class-names-BiMDVpUo.js";
2
- import { d as CheckIcon, q as SpinnerIcon } from "../icons-w5PpKGRz.js";
2
+ import { J as SpinnerIcon, d as CheckIcon } from "../icons-B4mGvCvc.js";
3
3
  import { Tabs } from "./Tabs.js";
4
4
  import * as React from "react";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { Y as StopIcon, d as CheckIcon, et as WarningIcon, q as SpinnerIcon } from "../icons-w5PpKGRz.js";
2
+ import { J as SpinnerIcon, X as StopIcon, d as CheckIcon, tt as WarningIcon } from "../icons-B4mGvCvc.js";
3
3
  import "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/components/SubagentRunIndicator.tsx
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "./Collapsible.js";
3
- import { C as FileIcon, G as SearchIcon, m as ChevronRightIcon } from "../icons-w5PpKGRz.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/Task.tsx
@@ -1,7 +1,7 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { Q as TerminalIcon, nt as XIcon } from "../icons-w5PpKGRz.js";
2
+ import { $ as TerminalIcon, rt as XIcon } from "../icons-B4mGvCvc.js";
3
3
  import { IconButton } from "./IconButton.js";
4
- import { t as CopyButton } from "../copy-button-Buxmtmp9.js";
4
+ import { t as CopyButton } from "../copy-button-7ttJAorN.js";
5
5
  import { Badge } from "./Badge.js";
6
6
  import { ScrollArea } from "./ScrollArea.js";
7
7
  import * as React from "react";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "./Collapsible.js";
3
- import { d as CheckIcon, m as ChevronRightIcon, nt as XIcon, q as SpinnerIcon } from "../icons-w5PpKGRz.js";
3
+ import { J as SpinnerIcon, d as CheckIcon, m as ChevronRightIcon, rt as XIcon } from "../icons-B4mGvCvc.js";
4
4
  import { Progress } from "./Progress.js";
5
5
  import { Badge } from "./Badge.js";
6
6
  import * as React from "react";
@@ -1,4 +1,4 @@
1
- import { F as MonitorIcon, I as MoonIcon, X as SunIcon } from "../icons-w5PpKGRz.js";
1
+ import { F as MonitorIcon, I as MoonIcon, Z as SunIcon } from "../icons-B4mGvCvc.js";
2
2
  import { Radio, RadioGroup } from "./RadioGroup.js";
3
3
  import { useTheme } from "./ThemeProvider.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,9 +1,9 @@
1
1
  import { i as AgentMessageRenderPartContext } from "../AgentMessageParts-CyD2UB3V.js";
2
- import { r as AgentChatProps } from "../AgentChat-DHxdTjwF.js";
2
+ import { r as AgentChatProps } from "../AgentChat-B6sgfQ_q.js";
3
3
  import { i as useOptionalAgentToolRuns, n as AgentToolRunsProvider, r as AgentToolRunsProviderProps, t as AgentToolEventsValue } from "../AgentToolRunsContext-BVe4stgw.js";
4
4
  import { S as isThinkChatActivityPart } from "../ThinkChatToolParts-CSzVwMXf.js";
5
5
  import { u as describeThinkChatActivityPart } from "../ThinkChatActivitySummary-kr5fE0wg.js";
6
- import { a as ThinkChatToolRenderers, i as ThinkChatToolRenderer, n as ThinkChatActivityProps, o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, s as renderThinkChatActivityPart, t as ThinkChatActivity } from "../ThinkChatActivity-DMTHKWrI.js";
6
+ import { a as ThinkChatToolRenderers, i as ThinkChatToolRenderer, n as ThinkChatActivityProps, o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, s as renderThinkChatActivityPart, t as ThinkChatActivity } from "../ThinkChatActivity-DawPYgga.js";
7
7
  import { i as ThinkChatValue } from "../ThinkChatContext-B-Nk84Wi.js";
8
8
  import { n as ThinkRecoveryNoticeProps, t as ThinkRecoveryNotice } from "../ThinkRecoveryNotice-D6gYcBbr.js";
9
9
  import { n as BrowserLiveViewProps, t as BrowserLiveView } from "../BrowserLiveView-BV5qgFgI.js";
@@ -73,6 +73,8 @@ interface ThinkChatMessagesProps<MessageT extends UIMessage = UIMessage> extends
73
73
  beforeVoiceStart?: AgentChatProps<MessageT>["beforeVoiceStart"];
74
74
  /** Optional product state rendered in the PromptInput header, such as an Activity. */
75
75
  composerHeader?: AgentChatProps<MessageT>["composerHeader"];
76
+ /** Persistent context (e.g. the Goal banner) in the tray above the composer. */
77
+ composerTray?: AgentChatProps<MessageT>["composerTray"];
76
78
  /** Extra rows rendered in the built-in plus menu after files. */
77
79
  composerAddMenuItems?: AgentChatProps<MessageT>["composerAddMenuItems"];
78
80
  /** Composer placeholder text. */
@@ -1,4 +1,4 @@
1
1
  import { S as isThinkChatActivityPart } from "../ThinkChatToolParts-CSzVwMXf.js";
2
2
  import { u as describeThinkChatActivityPart } from "../ThinkChatActivitySummary-kr5fE0wg.js";
3
- import { a as ThinkChatToolRenderers, i as ThinkChatToolRenderer, n as ThinkChatActivityProps, o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, s as renderThinkChatActivityPart, t as ThinkChatActivity } from "../ThinkChatActivity-DMTHKWrI.js";
3
+ import { a as ThinkChatToolRenderers, i as ThinkChatToolRenderer, n as ThinkChatActivityProps, o as createThinkChatActivityRenderer, r as ThinkChatActivityRendererOptions, s as renderThinkChatActivityPart, t as ThinkChatActivity } from "../ThinkChatActivity-DawPYgga.js";
4
4
  export { ThinkChatActivity, ThinkChatActivityProps, ThinkChatActivityRendererOptions, ThinkChatToolRenderer, ThinkChatToolRenderers, createThinkChatActivityRenderer, describeThinkChatActivityPart, isThinkChatActivityPart, renderThinkChatActivityPart };
@@ -2,7 +2,7 @@ import { Button } from "./Button.js";
2
2
  import { useExpansionState } from "./ExpansionState.js";
3
3
  import { Activity, ActivityContent, ActivityItem, ActivityItemGroup, ActivityText, ActivityTrigger } from "./Activity.js";
4
4
  import { AgentActivityFavicon, AgentActivityIcon } from "./AgentActivity.js";
5
- import { f as MessageResponse } from "../Message-KlK8tlBZ.js";
5
+ import { f as MessageResponse } from "../Message-BF6SiKKL.js";
6
6
  import { isBrowserToolPart, isExecuteToolPart, isFetchToolPart, isPartWorking, isSessionContextToolPart, isSkillToolPart, isThinkChatActivityPart, isWorkspaceToolPart } from "./ThinkChatToolParts.js";
7
7
  import { useOptionalAgentToolRuns } from "./AgentToolRunsContext.js";
8
8
  import { SubagentRunList } from "./SubagentRunList.js";
@@ -42,7 +42,7 @@ function ThinkChatActivity({ parts, defaultOpen, isStreaming, toolRenderers, sta
42
42
  part
43
43
  }];
44
44
  });
45
- const scope = `run:${stateKey ?? steps[0]?.key}`;
45
+ const scope = `run:${stateKey}`;
46
46
  const [showAllSteps, setShowAllSteps] = useExpansionState(steps.length ? `${scope}:all-steps` : void 0, false);
47
47
  if (steps.length === 0) return null;
48
48
  const hiddenStepCount = showAllSteps ? 0 : Math.max(0, steps.length - VISIBLE_STEP_LIMIT);
@@ -190,7 +190,7 @@ function createThinkChatActivityRenderer({ excludeTools, renderAgentToolRunLink,
190
190
  const runStartsCache = /* @__PURE__ */ new WeakMap();
191
191
  const runStartsFor = (parts) => {
192
192
  let starts = runStartsCache.get(parts);
193
- if (!starts) {
193
+ if (!starts || starts.length !== parts.length) {
194
194
  starts = Array.from({ length: parts.length }, () => -1);
195
195
  let runStart = -1;
196
196
  for (let index = 0; index < parts.length; index++) if (isActivity(parts[index])) {
@@ -1,7 +1,7 @@
1
1
  import { ActivityOutput, ActivityPanel } from "./Activity.js";
2
2
  import { displayUrl, isSessionContextToolFailure } from "./ThinkChatToolParts.js";
3
3
  import { Tabs } from "./Tabs.js";
4
- import { t as CodeBlock } from "../CodeBlock-B3RLU3ez.js";
4
+ import { t as CodeBlock } from "../CodeBlock-BUfEhDia.js";
5
5
  import { BrowserLiveView } from "./BrowserLiveView.js";
6
6
  import { inferWorkspaceLanguage } from "./WorkspaceFile.js";
7
7
  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, O as InfoIcon, Q as TerminalIcon, W as RefreshIcon, d as CheckIcon, n as ArrowDownIcon, nt as XIcon } from "../icons-w5PpKGRz.js";
2
+ import { $ as TerminalIcon, C as FileIcon, O as InfoIcon, W as RefreshIcon, d as CheckIcon, n as ArrowDownIcon, rt as XIcon } from "../icons-B4mGvCvc.js";
3
3
  import { Activity, ActivityContent, ActivityItem, ActivityItemGroup, ActivityOutput, ActivityPanel, ActivityTrigger } from "./Activity.js";
4
4
  import { formatThinkExecutionRunProgress, formatThinkExecutionStatus, formatThinkExecutionTimestamp, getThinkExecutionRunError, getThinkExecutionRunId, getThinkExecutionRunProgressedAt, getThinkExecutionRunProgressedLabel, getThinkExecutionRunStatus, getThinkExecutionRunTitle, isThinkSubmissionRun } from "./ThinkExecutionRun.js";
5
5
  import { ThinkExecutionStatus } from "./ThinkExecutionStatus.js";
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
- import { O as InfoIcon, d as CheckIcon, nt as XIcon, q as SpinnerIcon, z as PauseIcon } from "../icons-w5PpKGRz.js";
2
+ import { J as SpinnerIcon, O as InfoIcon, d as CheckIcon, rt as XIcon, z as PauseIcon } from "../icons-B4mGvCvc.js";
3
3
  import { Tooltip } from "./Tooltip.js";
4
4
  import { formatThinkExecutionStatus, getThinkExecutionRunStatus, getThinkExecutionRunStatusTone } from "./ThinkExecutionRun.js";
5
5
  import "react";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { buttonVariants } from "./Button.js";
3
- import { W as RefreshIcon, b as EllipsisIcon } from "../icons-w5PpKGRz.js";
3
+ import { W as RefreshIcon, b as EllipsisIcon } from "../icons-B4mGvCvc.js";
4
4
  import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
5
5
  import { IconButton } from "./IconButton.js";
6
6
  import { EmptyState } from "./EmptyState.js";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Button } from "./Button.js";
3
- import { C as FileIcon, Q as TerminalIcon, c as BoxIcon, f as ChevronDownIcon, q as SpinnerIcon } from "../icons-w5PpKGRz.js";
3
+ import { $ as TerminalIcon, C as FileIcon, J as SpinnerIcon, c as BoxIcon, f as ChevronDownIcon } from "../icons-B4mGvCvc.js";
4
4
  import { a as WorkspaceNavigationRestorationBoundary, i as WorkspaceNavigationFocusRestorer, n as WorkspaceNavigationProvider } from "../WorkspaceLink-BYYeTQLf.js";
5
5
  import { n as mergeRefs } from "../merge-refs-DF_7w2x_.js";
6
6
  import { AppTopBar } from "./AppTopBar.js";
@@ -235,48 +235,45 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
235
235
  ...props,
236
236
  children: [
237
237
  shouldRenderInlineAppBar ? renderAppTopBar() : null,
238
- /* @__PURE__ */ jsx(React.ViewTransition, {
239
- default: "sigvelo-layout-transition",
240
- children: /* @__PURE__ */ jsxs("div", {
241
- className: "think-full-app__view-scope",
242
- "data-recipe": "application-plane",
243
- "data-mobile-view": activeMobileView,
244
- children: [/* @__PURE__ */ jsx("section", {
245
- className: "think-full-app__chat-surface",
246
- "data-workspace-restoration-scope": "chat",
247
- "aria-label": "Chat",
238
+ /* @__PURE__ */ jsxs("div", {
239
+ className: "think-full-app__view-scope",
240
+ "data-recipe": "application-plane",
241
+ "data-mobile-view": activeMobileView,
242
+ children: [/* @__PURE__ */ jsx("section", {
243
+ className: "think-full-app__chat-surface",
244
+ "data-workspace-restoration-scope": "chat",
245
+ "aria-label": "Chat",
246
+ children: /* @__PURE__ */ jsx("div", {
247
+ className: "think-full-app__chat",
248
248
  children: /* @__PURE__ */ jsx("div", {
249
- className: "think-full-app__chat",
250
- children: /* @__PURE__ */ jsx("div", {
251
- className: "think-full-app__chat-inner",
252
- children: /* @__PURE__ */ jsx(ThinkChat.Provider, {
253
- chat,
254
- agentTools,
255
- children: /* @__PURE__ */ jsx(ThinkChat.Messages, {
256
- ...resolvedMessages,
257
- renderAgentToolRunLink: showAgentTools ? renderAgentToolRunLink : void 0
258
- })
249
+ className: "think-full-app__chat-inner",
250
+ children: /* @__PURE__ */ jsx(ThinkChat.Provider, {
251
+ chat,
252
+ agentTools,
253
+ children: /* @__PURE__ */ jsx(ThinkChat.Messages, {
254
+ ...resolvedMessages,
255
+ renderAgentToolRunLink: showAgentTools ? renderAgentToolRunLink : void 0
259
256
  })
260
257
  })
261
258
  })
262
- }), activePanel ? /* @__PURE__ */ jsx("aside", {
263
- className: "think-full-app__aside",
264
- "aria-label": "Workbench",
265
- children: /* @__PURE__ */ jsx("div", {
266
- className: "think-full-app__workbench-slot",
267
- children: /* @__PURE__ */ jsx(React.ViewTransition, {
268
- default: "sigvelo-layout-transition",
269
- children: /* @__PURE__ */ jsx("div", {
270
- ref: workbenchPanelRef,
271
- className: "think-full-app__workbench-panel",
272
- "data-view": activeWorkbenchView,
273
- tabIndex: -1,
274
- children: activePanel.render(panelContext)
275
- })
259
+ })
260
+ }), activePanel ? /* @__PURE__ */ jsx("aside", {
261
+ className: "think-full-app__aside",
262
+ "aria-label": "Workbench",
263
+ children: /* @__PURE__ */ jsx("div", {
264
+ className: "think-full-app__workbench-slot",
265
+ children: /* @__PURE__ */ jsx(React.ViewTransition, {
266
+ default: "sigvelo-layout-transition",
267
+ children: /* @__PURE__ */ jsx("div", {
268
+ ref: workbenchPanelRef,
269
+ className: "think-full-app__workbench-panel",
270
+ "data-view": activeWorkbenchView,
271
+ tabIndex: -1,
272
+ children: activePanel.render(panelContext)
276
273
  })
277
274
  })
278
- }) : null]
279
- })
275
+ })
276
+ }) : null]
280
277
  }),
281
278
  activePanel ? /* @__PURE__ */ jsx(ResizableSidePanel.Handle, { className: "think-full-app__resizer" }) : null
282
279
  ]
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { buttonVariants } from "./Button.js";
3
- import { H as PlusIcon } from "../icons-w5PpKGRz.js";
3
+ import { H as PlusIcon } from "../icons-B4mGvCvc.js";
4
4
  import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
5
5
  import { Tooltip } from "./Tooltip.js";
6
6
  import { t as capitalize } from "../format-S6uWyoSb.js";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Button, buttonVariants } from "./Button.js";
3
- import { q as SpinnerIcon } from "../icons-w5PpKGRz.js";
3
+ import { J as SpinnerIcon } from "../icons-B4mGvCvc.js";
4
4
  import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
5
5
  import { Select } from "./Select.js";
6
6
  import { Field } from "./Field.js";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Button, buttonVariants } from "./Button.js";
3
- import { V as PlayIcon, b as EllipsisIcon, et as WarningIcon, f as ChevronDownIcon, q as SpinnerIcon } from "../icons-w5PpKGRz.js";
3
+ import { J as SpinnerIcon, V as PlayIcon, b as EllipsisIcon, f as ChevronDownIcon, tt as WarningIcon } from "../icons-B4mGvCvc.js";
4
4
  import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
5
5
  import { Menu } from "./Menu.js";
6
6
  import { AppTopBar } from "./AppTopBar.js";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Button, buttonVariants } from "./Button.js";
3
- import { H as PlusIcon, et as WarningIcon, q as SpinnerIcon, t as ArchiveIcon, v as DotIcon } from "../icons-w5PpKGRz.js";
3
+ import { H as PlusIcon, J as SpinnerIcon, t as ArchiveIcon, tt as WarningIcon, v as DotIcon } from "../icons-B4mGvCvc.js";
4
4
  import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
5
5
  import { EmptyState } from "./EmptyState.js";
6
6
  import { SearchField } from "./SearchField.js";
@@ -1,6 +1,6 @@
1
1
  import { n as mergeBaseClassName } from "../class-names-BiMDVpUo.js";
2
2
  import { buttonVariants } from "./Button.js";
3
- import { nt as XIcon } from "../icons-w5PpKGRz.js";
3
+ import { rt as XIcon } from "../icons-B4mGvCvc.js";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  import { Toast as Toast$1 } from "@base-ui/react/toast";
@@ -1,6 +1,6 @@
1
1
  import { t as cx } from "../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "./Collapsible.js";
3
- import { W as RefreshIcon, f as ChevronDownIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../icons-w5PpKGRz.js";
3
+ import { W as RefreshIcon, f as ChevronDownIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../icons-B4mGvCvc.js";
4
4
  import { IconButton } from "./IconButton.js";
5
5
  import { Badge } from "./Badge.js";
6
6
  import { Input } from "./Input.js";
@@ -1,4 +1,4 @@
1
- import { i as FileTreeFolder, r as FileTreeFile, t as FileTree } from "../FileTree-CYr5og0q.js";
1
+ import { i as FileTreeFolder, r as FileTreeFile, t as FileTree } from "../FileTree-XOLP3Yvo.js";
2
2
  import { SearchField } from "./SearchField.js";
3
3
  import { WorkspaceHeader } from "./WorkspaceHeader.js";
4
4
  import * as React from "react";
@@ -3,7 +3,7 @@ import { a as WorkspaceNavigationRestorationBoundary, n as WorkspaceNavigationPr
3
3
  import { n as mergeRefs } from "../merge-refs-DF_7w2x_.js";
4
4
  import { inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceMediaPath, isWorkspaceSkillPath, parseWorkspaceSkill } from "./WorkspaceFile.js";
5
5
  import { WorkspaceBrowser } from "./WorkspaceBrowser.js";
6
- import { t as WorkspaceFileView } from "../WorkspaceFileView-CuMjXYQn.js";
6
+ import { t as WorkspaceFileView } from "../WorkspaceFileView-CKEmUyeT.js";
7
7
  import { useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryOptions, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions } from "./Workspace.js";
8
8
  import * as React from "react";
9
9
  import { jsx } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { t as WorkspaceFileView } from "../WorkspaceFileView-CuMjXYQn.js";
1
+ import { t as WorkspaceFileView } from "../WorkspaceFileView-CKEmUyeT.js";
2
2
  export { WorkspaceFileView };
@@ -1,4 +1,4 @@
1
- import { W as RefreshIcon } from "../icons-w5PpKGRz.js";
1
+ import { W as RefreshIcon } from "../icons-B4mGvCvc.js";
2
2
  import { AppTopBar } from "./AppTopBar.js";
3
3
  import "react";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { $ as TargetIcon, A as InfoIcon, B as PaperclipIcon, C as EyeOffIcon, D as HashIcon, E as FolderOpenIcon, F as MicrophoneIcon, G as QueueIcon, H as PencilIcon, I as MinusIcon, J as SidebarIcon, K as RefreshIcon, L as MonitorIcon, M as MaximizeIcon, N as McpIcon, O as IconProps, P as MessageSquareIcon, Q as SunIcon, R as MoonIcon, S as EyeIcon, T as FolderIcon, U as PlayIcon, V as PauseIcon, W as PlusIcon, X as SquareIcon, Y as SpinnerIcon, Z as StopIcon, _ as CopyIcon, a as ArrowUpIcon, b as DownloadIcon, c as BoxIcon, d as CalendarIcon, et as TerminalIcon, f as CheckIcon, g as CodeIcon, h as ChevronRightIcon, i as ArrowRightIcon, it as XIcon, j as LinkIcon, k as ImageIcon, l as BrainIcon, m as ChevronLeftIcon, n as ArrowDownIcon, nt as WarningIcon, o as ArrowUpRightIcon, p as ChevronDownIcon, q as SearchIcon, r as ArrowLeftIcon, rt as WrenchIcon, s as BookmarkIcon, t as ArchiveIcon, tt as TrashIcon, u as BrandIconProps, v as DiscordIcon, w as FileIcon, x as EllipsisIcon, y as DotIcon, z as MoveToFrontIcon } from "../icons-Cih3W-zM.js";
2
- export { ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArrowUpRightIcon, BookmarkIcon, BoxIcon, BrainIcon, BrandIconProps, CalendarIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CodeIcon, CopyIcon, DiscordIcon, DotIcon, DownloadIcon, EllipsisIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, HashIcon, IconProps, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, McpIcon, MessageSquareIcon, MicrophoneIcon, MinusIcon, MonitorIcon, MoonIcon, MoveToFrontIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, QueueIcon, RefreshIcon, SearchIcon, SidebarIcon, SpinnerIcon, SquareIcon, StopIcon, SunIcon, TargetIcon, TerminalIcon, TrashIcon, WarningIcon, WrenchIcon, XIcon };
1
+ import { $ as SunIcon, A as InfoIcon, B as PaperclipIcon, C as EyeOffIcon, D as HashIcon, E as FolderOpenIcon, F as MicrophoneIcon, G as QueueIcon, H as PencilIcon, I as MinusIcon, J as SidebarIcon, K as RefreshIcon, L as MonitorIcon, M as MaximizeIcon, N as McpIcon, O as IconProps, P as MessageSquareIcon, Q as StopIcon, R as MoonIcon, S as EyeIcon, T as FolderIcon, U as PlayIcon, V as PauseIcon, W as PlusIcon, X as SpinnerIcon, Y as SlackIcon, Z as SquareIcon, _ as CopyIcon, a as ArrowUpIcon, at as XIcon, b as DownloadIcon, c as BoxIcon, d as CalendarIcon, et as TargetIcon, f as CheckIcon, g as CodeIcon, h as ChevronRightIcon, i as ArrowRightIcon, it as WrenchIcon, j as LinkIcon, k as ImageIcon, l as BrainIcon, m as ChevronLeftIcon, n as ArrowDownIcon, nt as TrashIcon, o as ArrowUpRightIcon, p as ChevronDownIcon, q as SearchIcon, r as ArrowLeftIcon, rt as WarningIcon, s as BookmarkIcon, t as ArchiveIcon, tt as TerminalIcon, u as BrandIconProps, v as DiscordIcon, w as FileIcon, x as EllipsisIcon, y as DotIcon, z as MoveToFrontIcon } from "../icons-BGZ916hb.js";
2
+ export { ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArrowUpRightIcon, BookmarkIcon, BoxIcon, BrainIcon, BrandIconProps, CalendarIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CodeIcon, CopyIcon, DiscordIcon, DotIcon, DownloadIcon, EllipsisIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, HashIcon, IconProps, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, McpIcon, MessageSquareIcon, MicrophoneIcon, MinusIcon, MonitorIcon, MoonIcon, MoveToFrontIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, QueueIcon, RefreshIcon, SearchIcon, SidebarIcon, SlackIcon, SpinnerIcon, SquareIcon, StopIcon, SunIcon, TargetIcon, TerminalIcon, TrashIcon, WarningIcon, WrenchIcon, XIcon };
@@ -1,2 +1,2 @@
1
- import { $ as TrashIcon, A as MaximizeIcon, B as PencilIcon, C as FileIcon, D as ImageIcon, E as HashIcon, F as MonitorIcon, G as SearchIcon, H as PlusIcon, I as MoonIcon, J as SquareIcon, K as SidebarIcon, L as MoveToFrontIcon, M as MessageSquareIcon, N as MicrophoneIcon, O as InfoIcon, P as MinusIcon, Q as TerminalIcon, R as PaperclipIcon, S as EyeOffIcon, T as FolderOpenIcon, U as QueueIcon, V as PlayIcon, W as RefreshIcon, X as SunIcon, Y as StopIcon, Z as TargetIcon, _ as DiscordIcon, a as ArrowUpIcon, b as EllipsisIcon, c as BoxIcon, d as CheckIcon, et as WarningIcon, f as ChevronDownIcon, g as CopyIcon, h as CodeIcon, i as ArrowRightIcon, j as McpIcon, k as LinkIcon, l as BrainIcon, m as ChevronRightIcon, n as ArrowDownIcon, nt as XIcon, o as ArrowUpRightIcon, p as ChevronLeftIcon, q as SpinnerIcon, r as ArrowLeftIcon, s as BookmarkIcon, t as ArchiveIcon, tt as WrenchIcon, u as CalendarIcon, v as DotIcon, w as FolderIcon, x as EyeIcon, y as DownloadIcon, z as PauseIcon } from "../icons-w5PpKGRz.js";
2
- export { ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArrowUpRightIcon, BookmarkIcon, BoxIcon, BrainIcon, CalendarIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CodeIcon, CopyIcon, DiscordIcon, DotIcon, DownloadIcon, EllipsisIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, HashIcon, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, McpIcon, MessageSquareIcon, MicrophoneIcon, MinusIcon, MonitorIcon, MoonIcon, MoveToFrontIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, QueueIcon, RefreshIcon, SearchIcon, SidebarIcon, SpinnerIcon, SquareIcon, StopIcon, SunIcon, TargetIcon, TerminalIcon, TrashIcon, WarningIcon, WrenchIcon, XIcon };
1
+ import { $ as TerminalIcon, A as MaximizeIcon, B as PencilIcon, C as FileIcon, D as ImageIcon, E as HashIcon, F as MonitorIcon, G as SearchIcon, H as PlusIcon, I as MoonIcon, J as SpinnerIcon, K as SidebarIcon, L as MoveToFrontIcon, M as MessageSquareIcon, N as MicrophoneIcon, O as InfoIcon, P as MinusIcon, Q as TargetIcon, R as PaperclipIcon, S as EyeOffIcon, T as FolderOpenIcon, U as QueueIcon, V as PlayIcon, W as RefreshIcon, X as StopIcon, Y as SquareIcon, Z as SunIcon, _ as DiscordIcon, a as ArrowUpIcon, b as EllipsisIcon, c as BoxIcon, d as CheckIcon, et as TrashIcon, f as ChevronDownIcon, g as CopyIcon, h as CodeIcon, i as ArrowRightIcon, j as McpIcon, k as LinkIcon, l as BrainIcon, m as ChevronRightIcon, n as ArrowDownIcon, nt as WrenchIcon, o as ArrowUpRightIcon, p as ChevronLeftIcon, q as SlackIcon, r as ArrowLeftIcon, rt as XIcon, s as BookmarkIcon, t as ArchiveIcon, tt as WarningIcon, u as CalendarIcon, v as DotIcon, w as FolderIcon, x as EyeIcon, y as DownloadIcon, z as PauseIcon } from "../icons-B4mGvCvc.js";
2
+ export { ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArrowUpRightIcon, BookmarkIcon, BoxIcon, BrainIcon, CalendarIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CodeIcon, CopyIcon, DiscordIcon, DotIcon, DownloadIcon, EllipsisIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, HashIcon, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, McpIcon, MessageSquareIcon, MicrophoneIcon, MinusIcon, MonitorIcon, MoonIcon, MoveToFrontIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, QueueIcon, RefreshIcon, SearchIcon, SidebarIcon, SlackIcon, SpinnerIcon, SquareIcon, StopIcon, SunIcon, TargetIcon, TerminalIcon, TrashIcon, WarningIcon, WrenchIcon, XIcon };
@@ -1,4 +1,4 @@
1
- import { d as CheckIcon, g as CopyIcon } from "./icons-w5PpKGRz.js";
1
+ import { d as CheckIcon, g as CopyIcon } from "./icons-B4mGvCvc.js";
2
2
  import { IconButton } from "./components/IconButton.js";
3
3
  import * as React from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,6 +1,7 @@
1
1
  import { t as cx } from "./class-names-BiMDVpUo.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { Archive, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, ArrowUpRight, Bookmark, Box, Brain, CalendarDays, Check, ChevronDown, ChevronLeft, ChevronRight, CircleStop, CodeXml, Copy, CornerDownRight, Dot, Download, Ellipsis, Eye, EyeOff, File, Folder, FolderOpen, Hash, Image, Info, Link2, ListRestart, LoaderCircle, Maximize2, MessageSquare, Mic, Minus, Monitor, Moon, PanelLeft, Paperclip, Pause, Pencil, Play, Plus, RefreshCw, Search, Square, Sun, Target, Terminal, Trash2, TriangleAlert, Wrench, X } from "lucide-react";
4
+ import { FaSlack } from "react-icons/fa6";
4
5
  import { SiDiscord, SiModelcontextprotocol } from "react-icons/si";
5
6
  //#region src/components/_internal/icons.tsx
6
7
  function icon(Component) {
@@ -85,9 +86,10 @@ const MonitorIcon = icon(Monitor);
85
86
  const MessageSquareIcon = icon(MessageSquare);
86
87
  const McpIcon = brandIcon(SiModelcontextprotocol);
87
88
  const DiscordIcon = brandIcon(SiDiscord);
89
+ const SlackIcon = brandIcon(FaSlack);
88
90
  const MoonIcon = icon(Moon);
89
91
  const SunIcon = icon(Sun);
90
92
  const TargetIcon = icon(Target);
91
93
  const MaximizeIcon = icon(Maximize2);
92
94
  //#endregion
93
- export { TrashIcon as $, MaximizeIcon as A, PencilIcon as B, FileIcon as C, ImageIcon as D, HashIcon as E, MonitorIcon as F, SearchIcon as G, PlusIcon as H, MoonIcon as I, SquareIcon as J, SidebarIcon as K, MoveToFrontIcon as L, MessageSquareIcon as M, MicrophoneIcon as N, InfoIcon as O, MinusIcon as P, TerminalIcon as Q, PaperclipIcon as R, EyeOffIcon as S, FolderOpenIcon as T, QueueIcon as U, PlayIcon as V, RefreshIcon as W, SunIcon as X, StopIcon as Y, TargetIcon as Z, DiscordIcon as _, ArrowUpIcon as a, EllipsisIcon as b, BoxIcon as c, CheckIcon as d, WarningIcon as et, ChevronDownIcon as f, CopyIcon as g, CodeIcon as h, ArrowRightIcon as i, McpIcon as j, LinkIcon as k, BrainIcon as l, ChevronRightIcon as m, ArrowDownIcon as n, XIcon as nt, ArrowUpRightIcon as o, ChevronLeftIcon as p, SpinnerIcon as q, ArrowLeftIcon as r, BookmarkIcon as s, ArchiveIcon as t, WrenchIcon as tt, CalendarIcon as u, DotIcon as v, FolderIcon as w, EyeIcon as x, DownloadIcon as y, PauseIcon as z };
95
+ export { TerminalIcon as $, MaximizeIcon as A, PencilIcon as B, FileIcon as C, ImageIcon as D, HashIcon as E, MonitorIcon as F, SearchIcon as G, PlusIcon as H, MoonIcon as I, SpinnerIcon as J, SidebarIcon as K, MoveToFrontIcon as L, MessageSquareIcon as M, MicrophoneIcon as N, InfoIcon as O, MinusIcon as P, TargetIcon as Q, PaperclipIcon as R, EyeOffIcon as S, FolderOpenIcon as T, QueueIcon as U, PlayIcon as V, RefreshIcon as W, StopIcon as X, SquareIcon as Y, SunIcon as Z, DiscordIcon as _, ArrowUpIcon as a, EllipsisIcon as b, BoxIcon as c, CheckIcon as d, TrashIcon as et, ChevronDownIcon as f, CopyIcon as g, CodeIcon as h, ArrowRightIcon as i, McpIcon as j, LinkIcon as k, BrainIcon as l, ChevronRightIcon as m, ArrowDownIcon as n, WrenchIcon as nt, ArrowUpRightIcon as o, ChevronLeftIcon as p, SlackIcon as q, ArrowLeftIcon as r, XIcon as rt, BookmarkIcon as s, ArchiveIcon as t, WarningIcon as tt, CalendarIcon as u, DotIcon as v, FolderIcon as w, EyeIcon as x, DownloadIcon as y, PauseIcon as z };
@@ -271,6 +271,10 @@ declare const DiscordIcon: ({
271
271
  size,
272
272
  ...props
273
273
  }: BrandIconProps) => import("react").JSX.Element;
274
+ declare const SlackIcon: ({
275
+ size,
276
+ ...props
277
+ }: BrandIconProps) => import("react").JSX.Element;
274
278
  declare const MoonIcon: ({
275
279
  size,
276
280
  strokeWidth,
@@ -292,4 +296,4 @@ declare const MaximizeIcon: ({
292
296
  ...props
293
297
  }: IconProps) => import("react").JSX.Element;
294
298
  //#endregion
295
- export { TargetIcon as $, InfoIcon as A, PaperclipIcon as B, EyeOffIcon as C, HashIcon as D, FolderOpenIcon as E, MicrophoneIcon as F, QueueIcon as G, PencilIcon as H, MinusIcon as I, SidebarIcon as J, RefreshIcon as K, MonitorIcon as L, MaximizeIcon as M, McpIcon as N, IconProps as O, MessageSquareIcon as P, SunIcon as Q, MoonIcon as R, EyeIcon as S, FolderIcon as T, PlayIcon as U, PauseIcon as V, PlusIcon as W, SquareIcon as X, SpinnerIcon as Y, StopIcon as Z, CopyIcon as _, ArrowUpIcon as a, DownloadIcon as b, BoxIcon as c, CalendarIcon as d, TerminalIcon as et, CheckIcon as f, CodeIcon as g, ChevronRightIcon as h, ArrowRightIcon as i, XIcon as it, LinkIcon as j, ImageIcon as k, BrainIcon as l, ChevronLeftIcon as m, ArrowDownIcon as n, WarningIcon as nt, ArrowUpRightIcon as o, ChevronDownIcon as p, SearchIcon as q, ArrowLeftIcon as r, WrenchIcon as rt, BookmarkIcon as s, ArchiveIcon as t, TrashIcon as tt, BrandIconProps as u, DiscordIcon as v, FileIcon as w, EllipsisIcon as x, DotIcon as y, MoveToFrontIcon as z };
299
+ export { SunIcon as $, InfoIcon as A, PaperclipIcon as B, EyeOffIcon as C, HashIcon as D, FolderOpenIcon as E, MicrophoneIcon as F, QueueIcon as G, PencilIcon as H, MinusIcon as I, SidebarIcon as J, RefreshIcon as K, MonitorIcon as L, MaximizeIcon as M, McpIcon as N, IconProps as O, MessageSquareIcon as P, StopIcon as Q, MoonIcon as R, EyeIcon as S, FolderIcon as T, PlayIcon as U, PauseIcon as V, PlusIcon as W, SpinnerIcon as X, SlackIcon as Y, SquareIcon as Z, CopyIcon as _, ArrowUpIcon as a, XIcon as at, DownloadIcon as b, BoxIcon as c, CalendarIcon as d, TargetIcon as et, CheckIcon as f, CodeIcon as g, ChevronRightIcon as h, ArrowRightIcon as i, WrenchIcon as it, LinkIcon as j, ImageIcon as k, BrainIcon as l, ChevronLeftIcon as m, ArrowDownIcon as n, TrashIcon as nt, ArrowUpRightIcon as o, ChevronDownIcon as p, SearchIcon as q, ArrowLeftIcon as r, WarningIcon as rt, BookmarkIcon as s, ArchiveIcon as t, TerminalIcon as tt, BrandIconProps as u, DiscordIcon as v, FileIcon as w, EllipsisIcon as x, DotIcon as y, MoveToFrontIcon as z };
@@ -995,7 +995,7 @@ declare const MANUAL_MCP_SERVER_CARDS: readonly [{
995
995
  readonly url: "https://mcp.slack.com/mcp";
996
996
  readonly description: "Search channels, send messages, and manage canvases";
997
997
  readonly category: "Manual";
998
- readonly icon: "https://slack.com/favicon.ico";
998
+ readonly icon: "https://cdn.simpleicons.org/slack/4A154B";
999
999
  readonly manualSetup: {
1000
1000
  readonly auth: {
1001
1001
  readonly type: "manual_oauth_client";
@@ -0,0 +1,40 @@
1
+ import { n as clamp } from "./format-S6uWyoSb.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ //#region src/components/_internal/progress-ring.tsx
4
+ /**
5
+ * Bare single-fraction progress ring shared by the Context usage trigger and
6
+ * the plan summary pill. Decorative: callers own the accessible label.
7
+ */
8
+ function ProgressRing({ percent, size, stroke }) {
9
+ const radius = (size - stroke) / 2;
10
+ const circumference = 2 * Math.PI * radius;
11
+ const offset = circumference - clamp(percent, 0, 100) / 100 * circumference;
12
+ return /* @__PURE__ */ jsxs("svg", {
13
+ width: size,
14
+ height: size,
15
+ viewBox: `0 0 ${size} ${size}`,
16
+ focusable: "false",
17
+ "aria-hidden": "true",
18
+ children: [/* @__PURE__ */ jsx("circle", {
19
+ cx: size / 2,
20
+ cy: size / 2,
21
+ r: radius,
22
+ fill: "none",
23
+ stroke: "var(--sigvelo-color-neutral-border-subtle)",
24
+ strokeWidth: stroke
25
+ }), /* @__PURE__ */ jsx("circle", {
26
+ cx: size / 2,
27
+ cy: size / 2,
28
+ r: radius,
29
+ fill: "none",
30
+ stroke: "var(--sigvelo-color-primary-bg)",
31
+ strokeWidth: stroke,
32
+ strokeDasharray: circumference,
33
+ strokeDashoffset: offset,
34
+ strokeLinecap: "round",
35
+ transform: `rotate(-90 ${size / 2} ${size / 2})`
36
+ })]
37
+ });
38
+ }
39
+ //#endregion
40
+ export { ProgressRing as t };
@@ -30,7 +30,11 @@
30
30
 
31
31
  min-inline-size: 0;
32
32
  max-inline-size: 100%;
33
- inline-size: min(100%, var(--agent-chat-content-max-inline-size));
33
+ /* The virtual wrapper is content-box (its JS-set height must exclude the
34
+ block padding), so the inline gutters land OUTSIDE this size — subtract
35
+ them from the full-width term or the padding box overflows the viewport
36
+ and end-aligned user rows hang past the right edge. */
37
+ inline-size: min(100% - 2 * var(--sigvelo-spacing-4), var(--agent-chat-content-max-inline-size));
34
38
  margin-inline: auto;
35
39
  /* Clearance = composer + its scrim band, so a transcript resting at the
36
40
  bottom never sits inside the fade. */
@@ -110,6 +114,48 @@
110
114
  inline-size: 100%;
111
115
  }
112
116
 
117
+ /* The first-turn utility tray owns its buttons' treatment so every host gets
118
+ the same quiet look without per-app classes. Space-between seats one action
119
+ per slot — left, middle, right. */
120
+ .agent-chat-start-screen__composer-tray {
121
+ justify-content: space-between;
122
+ }
123
+
124
+ .agent-chat-start-screen__composer-tray > .button {
125
+ min-inline-size: 0;
126
+ gap: var(--sigvelo-spacing-1-5);
127
+ padding-inline: var(--sigvelo-spacing-2);
128
+ color: inherit;
129
+ font-size: var(--sigvelo-text-sm);
130
+ font-weight: var(--sigvelo-font-weight-normal);
131
+ }
132
+
133
+ .agent-chat-start-screen__composer-tray > .button:has(.app-icon-stack) {
134
+ gap: var(--sigvelo-spacing-3);
135
+ padding-inline-start: calc(var(--sigvelo-spacing-2) + var(--sigvelo-border-width));
136
+ }
137
+
138
+ .agent-chat-start-screen__composer-tray > .button:first-child {
139
+ padding-inline: var(--sigvelo-spacing-2-5);
140
+ }
141
+
142
+ .agent-chat-start-screen__composer-tray > .button svg {
143
+ flex: none;
144
+ inline-size: var(--sigvelo-control-icon-size-md);
145
+ block-size: var(--sigvelo-control-icon-size-md);
146
+ }
147
+
148
+ .agent-chat-start-screen__composer-tray > .button:first-child svg {
149
+ inline-size: var(--sigvelo-control-icon-size-lg);
150
+ block-size: var(--sigvelo-control-icon-size-lg);
151
+ }
152
+
153
+ .agent-chat-start-screen__composer-tray > .button > span:not(.app-icon-stack) {
154
+ overflow: hidden;
155
+ text-overflow: ellipsis;
156
+ white-space: nowrap;
157
+ }
158
+
113
159
  .agent-chat-start-screen__starters {
114
160
  grid-row: 3;
115
161
  align-self: start;
@@ -321,6 +367,8 @@
321
367
  .agent-chat__queued {
322
368
  position: relative;
323
369
  z-index: 0;
370
+ flex-direction: column;
371
+ align-items: stretch;
324
372
  inline-size: calc(
325
373
  min(100%, var(--agent-chat-content-max-inline-size)) - var(--sigvelo-spacing-10)
326
374
  );
@@ -451,6 +499,14 @@
451
499
  }
452
500
  }
453
501
 
502
+ /* Side-panel widths: tray labels yield to the icons; each action keeps its
503
+ accessible name. */
504
+ @container agent-chat (width <= 30rem) {
505
+ .agent-chat-start-screen__composer-tray > .button > span:not(.app-icon-stack) {
506
+ display: none;
507
+ }
508
+ }
509
+
454
510
  @media (max-height: 40rem) {
455
511
  .agent-chat-start-screen__content {
456
512
  grid-template-rows: auto auto;
@@ -52,6 +52,7 @@
52
52
  .media-preview-card__play,
53
53
  .menu__radio-indicator::before,
54
54
  .message-scroller__button,
55
+ .plan-summary__trigger,
55
56
  .plan__step-indicator,
56
57
  .prompt-input__button[data-responsive-label],
57
58
  .prompt-input__context-trigger,
@@ -1,3 +1,47 @@
1
+ .combobox__input-group {
2
+ display: flex;
3
+ align-items: center;
4
+ inline-size: 100%;
5
+ min-inline-size: 0;
6
+ background-color: var(--sigvelo-recipe-field-background);
7
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-recipe-field-border);
8
+ border-radius: var(--sigvelo-recipe-control-radius);
9
+ transition:
10
+ border-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
11
+ box-shadow var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
12
+ }
13
+
14
+ .combobox__input-group:hover:not([data-disabled]) {
15
+ border-color: var(--sigvelo-color-focus);
16
+ }
17
+
18
+ .combobox__input-group:focus-within {
19
+ border-color: var(--sigvelo-color-focus);
20
+ box-shadow: var(--sigvelo-recipe-focus-shadow-subtle);
21
+ }
22
+
23
+ .combobox__input-group[data-invalid] {
24
+ border-color: var(--sigvelo-color-danger-bg);
25
+ }
26
+
27
+ .combobox__input-group[data-invalid]:focus-within {
28
+ box-shadow: var(--sigvelo-recipe-invalid-focus-shadow);
29
+ }
30
+
31
+ .combobox__input-group[data-disabled] {
32
+ cursor: not-allowed;
33
+ opacity: var(--sigvelo-recipe-disabled-opacity);
34
+ }
35
+
36
+ .combobox__input-group > .combobox__input {
37
+ border: 0;
38
+ background-color: transparent;
39
+ }
40
+
41
+ .combobox__input-group > .combobox__input:focus-visible {
42
+ box-shadow: none;
43
+ }
44
+
1
45
  .combobox__input {
2
46
  flex: 1;
3
47
  }