@mcp-b/react-components 0.51.2 → 0.53.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/{CodeBlock--r6GS8YV.d.ts → CodeBlock-DJ99TQWy.d.ts} +1 -1
  2. package/dist/{CodeBlock-g8sADidM.js → CodeBlock-Dw1z6jc8.js} +2 -1
  3. package/dist/EmployeeChrome-B605rpVz.d.ts +233 -0
  4. package/dist/{FileTree-DruTQ-oa.js → FileTree-okaLnS5j.js} +1 -1
  5. package/dist/{IconButton-ByiyjkYE.d.ts → IconButton-CAlFVb2L.d.ts} +3 -0
  6. package/dist/{ManagerOffice-D-7SOJ4x.js → ManagerOffice-CJwBAEMv.js} +17 -12
  7. package/dist/McpPluginCatalog-DNeHDrts.d.ts +94 -0
  8. package/dist/{Message-DyaTBiV7.d.ts → Message-COsMPZSC.d.ts} +2 -2
  9. package/dist/{ResponsiveSidebarShell-CAmmtQTR.d.ts → ResponsiveSidebarShell-BUBQa_IV.d.ts} +3 -1
  10. package/dist/{SetupChecklist-Btmy3-_C.js → SetupChecklist-DWyifWWg.js} +6 -5
  11. package/dist/{ThinkThreadPicker-yetGX_s5.d.ts → ThinkThreadPicker-DX0lL-P7.d.ts} +3 -0
  12. package/dist/{Workspace-HzGrWDX3.d.ts → Workspace-mzMZSdts.d.ts} +1 -1
  13. package/dist/WorkspaceConceptPanel-97ZyVpZI.js +20 -0
  14. package/dist/{WorkspaceFile-Bouauobc.d.ts → WorkspaceFile-19WP0EU1.d.ts} +1 -1
  15. package/dist/{WorkspaceFileView-DYPtRVpM.js → WorkspaceFileView-DQDWUpAH.js} +3 -2
  16. package/dist/{WorkspaceMessageResponse-8lOSAbw_.d.ts → WorkspaceMessageResponse-BApg8KZv.d.ts} +1 -1
  17. package/dist/WorkspaceMountManager-CkLI1B-G.d.ts +33 -0
  18. package/dist/assets/sigvelo-logo.svg +54 -0
  19. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  20. package/dist/components/agents-sdk/AgentChat.d.ts +6 -2
  21. package/dist/components/agents-sdk/AgentChat.js +12 -18
  22. package/dist/components/agents-sdk/BrowserLiveScreen.js +1 -1
  23. package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
  24. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  25. package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
  26. package/dist/components/agents-sdk/EmployeeApp.d.ts +43 -30
  27. package/dist/components/agents-sdk/EmployeeApp.js +47 -34
  28. package/dist/components/agents-sdk/EmployeeChat.d.ts +31 -10
  29. package/dist/components/agents-sdk/EmployeeChat.js +35 -7
  30. package/dist/components/agents-sdk/EmployeeChrome.d.ts +1 -219
  31. package/dist/components/agents-sdk/EmployeeChrome.js +219 -162
  32. package/dist/components/agents-sdk/EmployeeSchedules.d.ts +1 -1
  33. package/dist/components/agents-sdk/EmployeeSchedules.js +2 -3
  34. package/dist/components/agents-sdk/EmployeeStartScreen.d.ts +12 -11
  35. package/dist/components/agents-sdk/EmployeeStartScreen.js +22 -15
  36. package/dist/components/agents-sdk/ManagerAccountActions.js +2 -3
  37. package/dist/components/agents-sdk/ManagerOffice.js +1 -2
  38. package/dist/components/agents-sdk/ManagerOfficeScreens.d.ts +2 -2
  39. package/dist/components/agents-sdk/ManagerOfficeScreens.js +33 -13
  40. package/dist/components/agents-sdk/McpConnectionRequest.js +2 -2
  41. package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
  42. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +1 -93
  43. package/dist/components/agents-sdk/McpPluginCatalog.js +5 -5
  44. package/dist/components/agents-sdk/McpServerPicker.js +5 -5
  45. package/dist/components/agents-sdk/ModelSelector.js +4 -4
  46. package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
  47. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  48. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  49. package/dist/components/agents-sdk/SubagentRunPanel.d.ts +3 -0
  50. package/dist/components/agents-sdk/SubagentRunPanel.js +67 -47
  51. package/dist/components/agents-sdk/SubagentRunSelector.js +1 -1
  52. package/dist/components/agents-sdk/ThinkChat.d.ts +1 -1
  53. package/dist/components/agents-sdk/ThinkChatActivity.js +2 -2
  54. package/dist/components/agents-sdk/ThinkChatToolPanels.js +2 -2
  55. package/dist/components/agents-sdk/ThinkExecutionDetail.js +2 -2
  56. package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
  57. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +7 -14
  58. package/dist/components/agents-sdk/ThinkFullApp.d.ts +2 -0
  59. package/dist/components/agents-sdk/ThinkFullApp.js +2 -0
  60. package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
  61. package/dist/components/agents-sdk/ThinkRoutineActions.js +1 -1
  62. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +2 -2
  63. package/dist/components/agents-sdk/ThinkRoutineDetail.js +1 -1
  64. package/dist/components/agents-sdk/ThinkRoutineForm.js +3 -3
  65. package/dist/components/agents-sdk/ThinkRoutineRuns.js +1 -1
  66. package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +1 -1
  67. package/dist/components/agents-sdk/ThinkThreadPicker.js +32 -19
  68. package/dist/components/agents-sdk/WorkbenchBack.d.ts +18 -0
  69. package/dist/components/agents-sdk/WorkbenchBack.js +27 -0
  70. package/dist/components/agents-sdk/Workspace.d.ts +1 -1
  71. package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
  72. package/dist/components/agents-sdk/WorkspaceBrowser.js +3 -1
  73. package/dist/components/agents-sdk/WorkspaceConcept.d.ts +1 -1
  74. package/dist/components/agents-sdk/WorkspaceCorrespondence.js +6 -6
  75. package/dist/components/agents-sdk/WorkspaceExecution.js +13 -10
  76. package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +4 -1
  77. package/dist/components/agents-sdk/WorkspaceExplorer.js +13 -4
  78. package/dist/components/agents-sdk/WorkspaceFile.d.ts +1 -1
  79. package/dist/components/agents-sdk/WorkspaceFileView.d.ts +1 -1
  80. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  81. package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
  82. package/dist/components/agents-sdk/WorkspaceLive.d.ts +2 -2
  83. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  84. package/dist/components/agents-sdk/WorkspaceMountManager.d.ts +1 -32
  85. package/dist/components/agents-sdk/WorkspaceMountManager.js +2 -2
  86. package/dist/components/agents-sdk/WorkspaceProject.js +7 -5
  87. package/dist/components/agents-sdk/WorkspaceUserScript.js +7 -5
  88. package/dist/components/ai-sdk/Activity.js +1 -1
  89. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  90. package/dist/components/ai-sdk/Approval.js +2 -2
  91. package/dist/components/ai-sdk/Artifact.d.ts +1 -1
  92. package/dist/components/ai-sdk/Artifact.js +1 -1
  93. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  94. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  95. package/dist/components/ai-sdk/CodeBlock.d.ts +1 -1
  96. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  97. package/dist/components/ai-sdk/ComposerLink.js +1 -1
  98. package/dist/components/ai-sdk/ConnectedAppCards.js +3 -3
  99. package/dist/components/ai-sdk/Context.js +1 -1
  100. package/dist/components/ai-sdk/Conversation.d.ts +1 -1
  101. package/dist/components/ai-sdk/Conversation.js +1 -1
  102. package/dist/components/ai-sdk/Goal.js +1 -1
  103. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  104. package/dist/components/ai-sdk/Message.d.ts +1 -1
  105. package/dist/components/ai-sdk/Message.js +2 -2
  106. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  107. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  108. package/dist/components/ai-sdk/Plan.js +1 -1
  109. package/dist/components/ai-sdk/PromptInput.js +46 -43
  110. package/dist/components/ai-sdk/Queue.js +1 -1
  111. package/dist/components/ai-sdk/Reasoning.js +1 -1
  112. package/dist/components/ai-sdk/Sources.js +1 -1
  113. package/dist/components/ai-sdk/Task.js +1 -1
  114. package/dist/components/extension/ChatGptSignInScreen.d.ts +1 -1
  115. package/dist/components/extension/ChatGptSignInScreen.js +61 -186
  116. package/dist/components/extension/CodexModelSelector.js +4 -8
  117. package/dist/components/extension/ConversationTabPicker.js +2 -2
  118. package/dist/components/foundations/Checkbox.js +1 -1
  119. package/dist/components/foundations/Collapsible.js +1 -1
  120. package/dist/components/foundations/ContextMenu.js +1 -1
  121. package/dist/components/foundations/IconButton.d.ts +1 -1
  122. package/dist/components/foundations/IconButton.js +7 -4
  123. package/dist/components/foundations/Menubar.js +1 -1
  124. package/dist/components/foundations/SearchField.js +1 -1
  125. package/dist/components/foundations/Select.js +1 -1
  126. package/dist/components/foundations/Stepper.js +1 -1
  127. package/dist/components/foundations/Toast.js +1 -1
  128. package/dist/components/foundations/icons.js +1 -1
  129. package/dist/components/general-purpose/AccountSignInDialog.d.ts +5 -9
  130. package/dist/components/general-purpose/AccountSignInDialog.js +13 -5
  131. package/dist/components/general-purpose/BrandLoading.d.ts +14 -0
  132. package/dist/components/general-purpose/BrandLoading.js +25 -0
  133. package/dist/components/general-purpose/Commit.d.ts +1 -1
  134. package/dist/components/general-purpose/Commit.js +2 -2
  135. package/dist/components/general-purpose/EnvironmentVariables.d.ts +1 -1
  136. package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
  137. package/dist/components/general-purpose/FileTree.js +1 -1
  138. package/dist/components/general-purpose/PricingBillingToggle.js +1 -1
  139. package/dist/components/general-purpose/PricingPlanCard.js +2 -2
  140. package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
  141. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +1 -1
  142. package/dist/components/general-purpose/ResponsiveSidebarShell.js +59 -27
  143. package/dist/components/general-purpose/SettingsFormDialog.js +2 -2
  144. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  145. package/dist/components/general-purpose/StatusScreen.d.ts +13 -2
  146. package/dist/components/general-purpose/StatusScreen.js +27 -3
  147. package/dist/components/general-purpose/Terminal.d.ts +2 -2
  148. package/dist/components/general-purpose/Terminal.js +2 -2
  149. package/dist/components/general-purpose/TestResults.js +1 -1
  150. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  151. package/dist/components/general-purpose/WebPreview.d.ts +1 -1
  152. package/dist/components/general-purpose/WebPreview.js +2 -2
  153. package/dist/components/nanites/AgentConnection.js +2 -2
  154. package/dist/components/nanites/AgentToolDetail.js +2 -2
  155. package/dist/{copy-button-OUwOdgEm.d.ts → copy-button-CJYYgCIU.d.ts} +1 -1
  156. package/dist/{copy-button-CSDuDfdP.js → copy-button-Dk2vRe9j.js} +1 -1
  157. package/dist/styles/activity.css +2 -2
  158. package/dist/styles/agent-chat.css +6 -105
  159. package/dist/styles/app-root.css +9 -0
  160. package/dist/styles/app-top-bar.css +10 -4
  161. package/dist/styles/avatar.css +2 -2
  162. package/dist/styles/base.css +6 -2
  163. package/dist/styles/brand-loading.css +58 -0
  164. package/dist/styles/brand.test.ts +158 -0
  165. package/dist/styles/browser-control-overlay.css +22 -0
  166. package/dist/styles/button.css +22 -1
  167. package/dist/styles/chatgpt-sign-in-screen.css +111 -225
  168. package/dist/styles/code-block.css +5 -0
  169. package/dist/styles/codex-model-selector.css +2 -12
  170. package/dist/styles/description-list.css +9 -2
  171. package/dist/styles/employee-app.css +19 -1
  172. package/dist/styles/employee-chrome.css +39 -5
  173. package/dist/styles/file-tree.css +15 -2
  174. package/dist/styles/index.css +1 -0
  175. package/dist/styles/manager-office.css +80 -55
  176. package/dist/styles/manager-work.css +5 -11
  177. package/dist/styles/mcp-plugin-catalog.css +29 -34
  178. package/dist/styles/mcp-server-picker.css +13 -5
  179. package/dist/styles/prompt-input.css +3 -13
  180. package/dist/styles/queue.css +1 -1
  181. package/dist/styles/recipes.css +9 -2
  182. package/dist/styles/responsive-sidebar-shell-motion.test.ts +67 -0
  183. package/dist/styles/responsive-sidebar-shell.css +70 -25
  184. package/dist/styles/search-field.css +8 -6
  185. package/dist/styles/subagent-run.css +81 -0
  186. package/dist/styles/switch.css +7 -0
  187. package/dist/styles/think-execution-workbench.css +0 -17
  188. package/dist/styles/think-full-app.css +11 -4
  189. package/dist/styles/think-thread-picker.css +16 -38
  190. package/dist/styles/workspace-concepts.css +29 -2
  191. package/dist/styles/workspace-explorer.css +6 -48
  192. package/dist/utils/structured-code.d.ts +1 -1
  193. package/dist/{workspace-assets-Bg7XhPsk.js → workspace-assets-C3QT6UlQ.js} +1 -1
  194. package/package.json +2 -2
  195. package/dist/styles/extension-status.css +0 -46
  196. package/dist/{icons-cuEtsgj9.js → icons-CeGfXO21.js} +1 -1
@@ -1,22 +1,23 @@
1
1
  import { findCatalogMcpServerCard } from "../../utils/mcp-server-catalog.js";
2
- import { A as McpIcon, C as FolderIcon, K as SpinnerIcon, R as PencilIcon, S as FileIcon, T as InfoIcon, V as QueueIcon, Z as TerminalIcon, b as EyeIcon, c as BoxIcon, et as WarningIcon, o as ArrowUpRightIcon, q as SquareIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-cuEtsgj9.js";
2
+ import { A as McpIcon, C as FolderIcon, F as MoonIcon, K as SpinnerIcon, P as MonitorIcon, R as PencilIcon, S as FileIcon, T as InfoIcon, V as QueueIcon, W as SidebarIcon, Y as SunIcon, Z as TerminalIcon, b as EyeIcon, c as BoxIcon, et as WarningIcon, o as ArrowUpRightIcon, q as SquareIcon, r as ArrowLeftIcon, y as EllipsisIcon } from "../../icons-CeGfXO21.js";
3
3
  import { Button } from "../foundations/Button.js";
4
+ import { Menu } from "../foundations/Menu.js";
4
5
  import { Tooltip } from "../foundations/Tooltip.js";
6
+ import { IconButton } from "../foundations/IconButton.js";
5
7
  import { Dialog } from "../foundations/Dialog.js";
6
8
  import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
7
- import { SubagentRunLabel, getSubagentRunName } from "./SubagentRunIndicator.js";
8
- import { Menu } from "../foundations/Menu.js";
9
- import { EmptyState } from "../foundations/EmptyState.js";
10
- import { AgentChat } from "./AgentChat.js";
11
- import "../foundations/icons.js";
12
9
  import { AgentChatStartScreen, AgentChatStartScreenComposer, AgentChatStartScreenPrimary, AgentChatStartScreenSuggestions, AgentChatStartScreenTray, AgentChatStarterList } from "../ai-sdk/AgentChatStartScreen.js";
13
- import { ChatGptSignInScreen } from "../extension/ChatGptSignInScreen.js";
14
- import { Avatar } from "../foundations/Avatar.js";
10
+ import { n as isPlainPrimaryLinkActivation } from "../../navigation-link-kqMa81v5.js";
15
11
  import { DescriptionList } from "../foundations/DescriptionList.js";
16
- import { Switch } from "../foundations/Switch.js";
12
+ import { Avatar } from "../foundations/Avatar.js";
13
+ import { ChatGptSignInScreen } from "../extension/ChatGptSignInScreen.js";
14
+ import { SubagentRunLabel, getSubagentRunName } from "./SubagentRunIndicator.js";
15
+ import { BrandLoading } from "../general-purpose/BrandLoading.js";
16
+ import { AgentChat } from "./AgentChat.js";
17
+ import { EmptyState } from "../foundations/EmptyState.js";
18
+ import { AppTopBar } from "../general-purpose/AppTopBar.js";
17
19
  import { useTheme } from "../foundations/ThemeProvider.js";
18
20
  import { ActionGuide, ActionGuideAction, ActionGuideList, ActionGuideSection } from "../general-purpose/ActionGuide.js";
19
- import { AppTopBar } from "../general-purpose/AppTopBar.js";
20
21
  import { ResponsiveSidebarShell, useResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
21
22
  import { McpServerIcon } from "./McpServerIcon.js";
22
23
  import { ThinkThreadPicker } from "./ThinkThreadPicker.js";
@@ -26,43 +27,47 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
26
27
  const WORKBENCH_NAVIGATION = [{
27
28
  id: "files",
28
29
  label: "Files",
30
+ description: "Browse files in this employee’s workspace.",
29
31
  icon: /* @__PURE__ */ jsx(FileIcon, {})
30
32
  }, {
31
33
  id: "plugins",
32
34
  label: "Plugins",
35
+ description: "Connect apps and manage the tools this employee can use.",
33
36
  icon: /* @__PURE__ */ jsx(BoxIcon, {})
34
37
  }];
35
- function MenuGroupLabel({ label, hint }) {
36
- return /* @__PURE__ */ jsxs(Menu.GroupLabel, {
37
- className: "employee-menu__group-label",
38
- children: [label, /* @__PURE__ */ jsxs(Tooltip.Root, { children: [/* @__PURE__ */ jsx(Tooltip.Trigger, {
39
- render: /* @__PURE__ */ jsx("span", {
40
- className: "employee-menu__hint",
41
- tabIndex: 0,
42
- "aria-label": label + " help"
43
- }),
44
- children: /* @__PURE__ */ jsx(InfoIcon, { "aria-hidden": "true" })
45
- }), /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, { children: /* @__PURE__ */ jsx(Tooltip.Popup, { children: hint }) }) })] })]
46
- });
38
+ function MenuHint({ hint, children }) {
39
+ const descriptionId = React.useId();
40
+ return /* @__PURE__ */ jsxs(Tooltip.Root, { children: [React.cloneElement(children, { "aria-describedby": descriptionId }), /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, {
41
+ side: "left",
42
+ align: "center",
43
+ sideOffset: 8,
44
+ children: /* @__PURE__ */ jsx(Tooltip.Popup, {
45
+ id: descriptionId,
46
+ children: hint
47
+ })
48
+ }) })] });
47
49
  }
48
- function MenuSwitchItem({ label, checked, onCheckedChange }) {
49
- return /* @__PURE__ */ jsxs(Menu.CheckboxItem, {
50
- className: "employee-menu__switch",
51
- checked,
52
- onCheckedChange,
53
- children: [label, /* @__PURE__ */ jsx(Switch.Root, {
54
- "aria-hidden": true,
55
- tabIndex: -1,
56
- readOnly: true,
57
- size: "sm",
50
+ function MenuSwitchItem({ label, hint, checked, onCheckedChange }) {
51
+ return /* @__PURE__ */ jsx(MenuHint, {
52
+ hint,
53
+ children: /* @__PURE__ */ jsxs(Menu.CheckboxItem, {
54
+ className: "employee-menu__switch",
58
55
  checked,
59
- children: /* @__PURE__ */ jsx(Switch.Thumb, {})
60
- })]
56
+ onCheckedChange,
57
+ closeOnClick: false,
58
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
59
+ children: [/* @__PURE__ */ jsx("span", { children: label }), /* @__PURE__ */ jsx("span", {
60
+ className: "switch switch--sm",
61
+ "aria-hidden": "true",
62
+ "data-checked": checked ? "" : void 0,
63
+ children: /* @__PURE__ */ jsx("span", { className: "switch__thumb" })
64
+ })]
65
+ })
61
66
  });
62
67
  }
63
68
  /** Employee settings are host-owned state; the menu stores only dialog visibility. */
64
- function EmployeeMenu({ renderLink, identity, onModel, onSignOut, companion, passkeys, follow, workbenchNavigation = [] }) {
65
- const { compact } = useResponsiveSidebarShell();
69
+ function EmployeeMenu({ renderLink, view = "chat", identity, onModel, onSignOut, companion, passkeys, follow, workbenchNavigation = [], navigation }) {
70
+ const { contentCompact: compact } = useResponsiveSidebarShell();
66
71
  const { preference, setPreference } = useTheme();
67
72
  const [identityOpen, setIdentityOpen] = React.useState(false);
68
73
  return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */ jsx(AppTopBar.Button, {
@@ -77,88 +82,152 @@ function EmployeeMenu({ renderLink, identity, onModel, onSignOut, companion, pas
77
82
  side: "bottom",
78
83
  align: "end",
79
84
  sideOffset: 4,
80
- children: /* @__PURE__ */ jsxs(Menu.Popup, { children: [
81
- compact ? [...WORKBENCH_NAVIGATION, ...workbenchNavigation].map((item) => /* @__PURE__ */ jsxs(Menu.Item, {
82
- render: renderLink({
83
- kind: "view",
84
- view: item.id
85
- }),
86
- children: [item.icon, item.label]
87
- }, item.id)) : null,
88
- /* @__PURE__ */ jsxs(Menu.Item, {
89
- render: renderLink({
90
- kind: "view",
91
- view: "schedules"
92
- }),
93
- children: [/* @__PURE__ */ jsx(QueueIcon, {}), "Routines"]
94
- }),
95
- follow ? /* @__PURE__ */ jsxs(Menu.CheckboxItem, {
96
- checked: follow.followed,
97
- onCheckedChange: follow.onCheckedChange,
98
- children: [/* @__PURE__ */ jsx(EyeIcon, {}), "Follow this conversation"]
99
- }) : null,
100
- identity ? /* @__PURE__ */ jsxs(Menu.Item, {
101
- onClick: () => setIdentityOpen(true),
102
- children: [/* @__PURE__ */ jsx(InfoIcon, {}), "Identity"]
103
- }) : null,
104
- onModel ? /* @__PURE__ */ jsxs(Menu.Item, {
105
- onClick: onModel,
106
- children: [/* @__PURE__ */ jsx(TerminalIcon, {}), "Model"]
107
- }) : null,
108
- companion ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsxs(Menu.Group, { children: [
109
- /* @__PURE__ */ jsx(MenuGroupLabel, {
110
- label: "Companion app",
111
- hint: "Connecting lets this employee chat with the browser and watch it work from anywhere."
112
- }),
113
- /* @__PURE__ */ jsx(MenuSwitchItem, {
114
- label: "Connect this browser",
115
- checked: companion.enabled,
116
- onCheckedChange: companion.setEnabled
85
+ children: /* @__PURE__ */ jsxs(Menu.Popup, {
86
+ className: "employee-menu",
87
+ children: [
88
+ compact ? (navigation ?? [...WORKBENCH_NAVIGATION, ...workbenchNavigation]).map((item) => /* @__PURE__ */ jsx(MenuHint, {
89
+ hint: item.description,
90
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
91
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: renderLink({
92
+ kind: "view",
93
+ view: view === item.id ? "chat" : item.id
94
+ }) }),
95
+ children: [item.icon, /* @__PURE__ */ jsx("span", {
96
+ className: "sigvelo-truncate",
97
+ children: item.label
98
+ })]
99
+ })
100
+ }, item.id)) : null,
101
+ /* @__PURE__ */ jsx(MenuHint, {
102
+ hint: "Create and manage recurring tasks and review their runs.",
103
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
104
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: renderLink({
105
+ kind: "view",
106
+ view: "schedules"
107
+ }) }),
108
+ children: [/* @__PURE__ */ jsx(QueueIcon, {}), "Routines"]
109
+ })
117
110
  }),
118
- /* @__PURE__ */ jsxs(Menu.Item, {
119
- render: /* @__PURE__ */ jsx("a", {
120
- href: companion.origin,
121
- target: "_blank",
122
- rel: "noreferrer",
123
- "aria-label": companion.origin.replace(/^https?:\/\//, "")
124
- }),
125
- children: [/* @__PURE__ */ jsx(ArrowUpRightIcon, {}), companion.origin.replace(/^https?:\/\//, "")]
126
- })
127
- ] })] }) : null,
128
- passkeys ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsxs(Menu.Group, { children: [/* @__PURE__ */ jsx(MenuGroupLabel, {
129
- label: "Passkeys",
130
- hint: "The employee saves and uses its own passkeys instead of the browser's."
131
- }), /* @__PURE__ */ jsx(MenuSwitchItem, {
132
- label: "Use its own passkeys",
133
- checked: passkeys.enabled,
134
- onCheckedChange: passkeys.setEnabled
135
- })] })] }) : null,
136
- /* @__PURE__ */ jsx(Menu.Separator, {}),
137
- /* @__PURE__ */ jsxs(Menu.Group, { children: [/* @__PURE__ */ jsx(Menu.GroupLabel, { children: "Appearance" }), /* @__PURE__ */ jsxs(Menu.RadioGroup, {
138
- value: preference,
139
- onValueChange: (value) => {
140
- if (value === "light" || value === "dark" || value === "system") setPreference(value);
141
- },
142
- children: [
143
- /* @__PURE__ */ jsxs(Menu.RadioItem, {
144
- value: "light",
145
- children: [/* @__PURE__ */ jsx(Menu.RadioItemIndicator, {}), "Light"]
146
- }),
147
- /* @__PURE__ */ jsxs(Menu.RadioItem, {
148
- value: "dark",
149
- children: [/* @__PURE__ */ jsx(Menu.RadioItemIndicator, {}), "Dark"]
111
+ follow ? /* @__PURE__ */ jsx(MenuHint, {
112
+ hint: "Follow the browser tabs this employee uses for this conversation.",
113
+ children: /* @__PURE__ */ jsxs(Menu.CheckboxItem, {
114
+ checked: follow.followed,
115
+ onCheckedChange: follow.onCheckedChange,
116
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
117
+ children: [/* @__PURE__ */ jsx(EyeIcon, {}), "Follow this conversation"]
118
+ })
119
+ }) : null,
120
+ identity ? /* @__PURE__ */ jsx(MenuHint, {
121
+ hint: "Review the browser profile and account assigned to this employee.",
122
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
123
+ onClick: () => setIdentityOpen(true),
124
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
125
+ children: [/* @__PURE__ */ jsx(InfoIcon, {}), "Identity"]
126
+ })
127
+ }) : null,
128
+ onModel ? /* @__PURE__ */ jsx(MenuHint, {
129
+ hint: "Choose the model this employee uses for conversations.",
130
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
131
+ onClick: onModel,
132
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
133
+ children: [/* @__PURE__ */ jsx(TerminalIcon, {}), "Model"]
134
+ })
135
+ }) : null,
136
+ companion ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsxs(Menu.Group, { children: [
137
+ /* @__PURE__ */ jsx(Menu.GroupLabel, { children: "Companion app" }),
138
+ /* @__PURE__ */ jsx(MenuSwitchItem, {
139
+ label: "Connect this browser",
140
+ hint: "Connect this browser so you can chat with this employee and watch it work from the companion app.",
141
+ checked: companion.enabled,
142
+ onCheckedChange: companion.setEnabled
150
143
  }),
151
- /* @__PURE__ */ jsxs(Menu.RadioItem, {
152
- value: "system",
153
- children: [/* @__PURE__ */ jsx(Menu.RadioItemIndicator, {}), "System"]
144
+ /* @__PURE__ */ jsx(MenuHint, {
145
+ hint: "Open the companion app in a new tab to chat with this employee remotely.",
146
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
147
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("a", {
148
+ href: companion.origin,
149
+ target: "_blank",
150
+ rel: "noreferrer",
151
+ "aria-label": companion.origin.replace(/^https?:\/\//, "")
152
+ }) }),
153
+ children: [/* @__PURE__ */ jsx(ArrowUpRightIcon, {}), /* @__PURE__ */ jsx("span", {
154
+ className: "sigvelo-truncate",
155
+ children: companion.origin.replace(/^https?:\/\//, "")
156
+ })]
157
+ })
158
+ })
159
+ ] })] }) : null,
160
+ passkeys ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsxs(Menu.Group, { children: [/* @__PURE__ */ jsx(Menu.GroupLabel, { children: "Passkeys" }), /* @__PURE__ */ jsx(MenuSwitchItem, {
161
+ label: "Use its own passkeys",
162
+ hint: "The employee saves and uses its own passkeys instead of the browser's.",
163
+ checked: passkeys.enabled,
164
+ onCheckedChange: passkeys.setEnabled
165
+ })] })] }) : null,
166
+ /* @__PURE__ */ jsx(Menu.Separator, {}),
167
+ /* @__PURE__ */ jsxs(Menu.Group, {
168
+ className: "employee-menu__appearance",
169
+ children: [/* @__PURE__ */ jsx(Menu.GroupLabel, { children: "Appearance" }), /* @__PURE__ */ jsxs(Menu.RadioGroup, {
170
+ className: "employee-menu__theme-options",
171
+ value: preference,
172
+ onValueChange: (value) => {
173
+ if (value === "light" || value === "dark" || value === "system") setPreference(value);
174
+ },
175
+ children: [
176
+ /* @__PURE__ */ jsx(MenuHint, {
177
+ hint: "Use a light appearance.",
178
+ children: /* @__PURE__ */ jsxs(Menu.RadioItem, {
179
+ value: "light",
180
+ className: "employee-menu__theme-option",
181
+ "aria-label": "Light",
182
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
183
+ closeOnClick: false,
184
+ children: [/* @__PURE__ */ jsx(SunIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", {
185
+ className: "sigvelo-visually-hidden",
186
+ children: "Light"
187
+ })]
188
+ })
189
+ }),
190
+ /* @__PURE__ */ jsx(MenuHint, {
191
+ hint: "Use a dark appearance.",
192
+ children: /* @__PURE__ */ jsxs(Menu.RadioItem, {
193
+ value: "dark",
194
+ className: "employee-menu__theme-option",
195
+ "aria-label": "Dark",
196
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
197
+ closeOnClick: false,
198
+ children: [/* @__PURE__ */ jsx(MoonIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", {
199
+ className: "sigvelo-visually-hidden",
200
+ children: "Dark"
201
+ })]
202
+ })
203
+ }),
204
+ /* @__PURE__ */ jsx(MenuHint, {
205
+ hint: "Match your device’s light or dark appearance automatically.",
206
+ children: /* @__PURE__ */ jsxs(Menu.RadioItem, {
207
+ value: "system",
208
+ className: "employee-menu__theme-option",
209
+ "aria-label": "System",
210
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
211
+ closeOnClick: false,
212
+ children: [/* @__PURE__ */ jsx(MonitorIcon, { "aria-hidden": "true" }), /* @__PURE__ */ jsx("span", {
213
+ className: "sigvelo-visually-hidden",
214
+ children: "System"
215
+ })]
216
+ })
217
+ })
218
+ ]
219
+ })]
220
+ }),
221
+ onSignOut ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsx(MenuHint, {
222
+ hint: "Sign out of your account on this device.",
223
+ children: /* @__PURE__ */ jsxs(Menu.Item, {
224
+ onClick: onSignOut,
225
+ render: /* @__PURE__ */ jsx(Tooltip.Trigger, { render: /* @__PURE__ */ jsx("div", {}) }),
226
+ children: [/* @__PURE__ */ jsx(ArrowUpRightIcon, {}), "Sign out"]
154
227
  })
155
- ]
156
- })] }),
157
- onSignOut ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Menu.Separator, {}), /* @__PURE__ */ jsxs(Menu.Item, {
158
- onClick: onSignOut,
159
- children: [/* @__PURE__ */ jsx(ArrowUpRightIcon, {}), "Sign out"]
160
- })] }) : null
161
- ] })
228
+ })] }) : null
229
+ ]
230
+ })
162
231
  }) })] }), identity ? /* @__PURE__ */ jsx(IdentityDialog, {
163
232
  identity,
164
233
  open: identityOpen,
@@ -214,16 +283,17 @@ function IdentityDialog({ identity, open, onOpenChange }) {
214
283
  });
215
284
  }
216
285
  /** Bar links to Files, Plugins, and host views; the compact overflow carries them instead. */
217
- function EmployeeWorkbenchLinks({ view, renderLink, workbenchNavigation = [] }) {
218
- const { compact } = useResponsiveSidebarShell();
286
+ function EmployeeWorkbenchLinks({ view, renderLink, workbenchNavigation = [], navigation }) {
287
+ const { contentCompact: compact } = useResponsiveSidebarShell();
219
288
  if (compact) return null;
220
- return /* @__PURE__ */ jsx(Fragment, { children: [...WORKBENCH_NAVIGATION, ...workbenchNavigation].map((item) => /* @__PURE__ */ jsx(AppTopBar.Link, {
289
+ return /* @__PURE__ */ jsx(Fragment, { children: (navigation ?? [...WORKBENCH_NAVIGATION, ...workbenchNavigation]).map((item) => /* @__PURE__ */ jsx(AppTopBar.Link, {
221
290
  label: item.label,
291
+ tooltip: item.description,
222
292
  "aria-current": view === item.id ? "page" : void 0,
223
293
  "data-pressed": view === item.id ? "" : void 0,
224
294
  render: renderLink({
225
295
  kind: "view",
226
- view: item.id
296
+ view: view === item.id ? "chat" : item.id
227
297
  }),
228
298
  children: item.icon
229
299
  }, item.id)) });
@@ -253,29 +323,9 @@ function employeeShellTitle({ agentRun, threadTitle }) {
253
323
  })] })
254
324
  });
255
325
  }
256
- function employeeShellLeading({ agentRun, view, hasThread, appBarLeading, back, renderLink }) {
257
- if (agentRun) return back;
258
- let navigation;
259
- if (view !== "chat") navigation = back;
260
- else if (hasThread) navigation = /* @__PURE__ */ jsx(AppTopBar.Link, {
261
- label: "New thread",
262
- render: renderLink({ kind: "new-thread" }),
263
- children: /* @__PURE__ */ jsx(PencilIcon, {})
264
- });
265
- if (!navigation && !appBarLeading) return null;
266
- return /* @__PURE__ */ jsxs(Fragment, { children: [navigation, appBarLeading] });
267
- }
268
326
  function employeeShellActions({ agentRun, view, renderLink, workbenchNavigation, focusedStop, navigation }) {
269
- if (!agentRun && navigation) return /* @__PURE__ */ jsx(Fragment, { children: navigation.map((item) => /* @__PURE__ */ jsx(AppTopBar.Link, {
270
- label: item.label,
271
- "aria-current": view === item.id ? "page" : void 0,
272
- render: renderLink({
273
- kind: "view",
274
- view: item.id
275
- }),
276
- children: item.icon
277
- }, item.id)) });
278
327
  if (!agentRun) return /* @__PURE__ */ jsx(EmployeeWorkbenchLinks, {
328
+ navigation,
279
329
  view,
280
330
  renderLink,
281
331
  workbenchNavigation
@@ -294,7 +344,18 @@ function employeeShellActions({ agentRun, view, renderLink, workbenchNavigation,
294
344
  children: /* @__PURE__ */ jsx(SquareIcon, {})
295
345
  });
296
346
  }
297
- function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLeading, onDeleteThread, sidebar, sidebarLabel = "threads", navigation, children, ...menu }) {
347
+ function EmployeeNewThread({ renderLink }) {
348
+ const { closeSidebar } = useResponsiveSidebarShell();
349
+ return /* @__PURE__ */ jsx(AppTopBar.Link, {
350
+ label: "New thread",
351
+ render: renderLink({ kind: "new-thread" }),
352
+ onClick: (event) => {
353
+ if (isPlainPrimaryLinkActivation(event)) closeSidebar();
354
+ },
355
+ children: /* @__PURE__ */ jsx(PencilIcon, {})
356
+ });
357
+ }
358
+ function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLeading, compactBack, onDeleteThread, sidebar, sidebarLabel = "threads", navigation, children, ...menu }) {
298
359
  const history = threads ?? EMPTY_THREADS;
299
360
  const thread = history.find((candidate) => candidate.id === threadId);
300
361
  const { backRef, focusedStop } = useEmployeeRunStopFocus();
@@ -326,8 +387,10 @@ function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLe
326
387
  className: "employee-shell",
327
388
  "data-view": view,
328
389
  children: /* @__PURE__ */ jsx(ResponsiveSidebarShell, {
390
+ className: "employee-shell__navigation",
329
391
  sidebarLabel,
330
- sidebarTogglePlacement: "sidebar",
392
+ defaultSidebarOpen: sidebar ? void 0 : false,
393
+ sidebarTogglePlacement: "main",
331
394
  showMainLabel: "Show selected thread",
332
395
  bar: {
333
396
  label: "Workbench controls",
@@ -336,14 +399,8 @@ function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLe
336
399
  threadTitle: thread?.title
337
400
  }),
338
401
  compactTitleTrigger: agentRun ? void 0 : /* @__PURE__ */ jsx("span", { children: thread?.title ?? "New chat" }),
339
- leading: employeeShellLeading({
340
- agentRun,
341
- view,
342
- hasThread: Boolean(thread),
343
- appBarLeading,
344
- back,
345
- renderLink
346
- }),
402
+ leading: agentRun ? back : /* @__PURE__ */ jsxs(Fragment, { children: [appBarLeading, /* @__PURE__ */ jsx(EmployeeNewThread, { renderLink })] }),
403
+ compactLeading: !agentRun && view !== "chat" ? compactBack ?? back : void 0,
347
404
  actions: employeeShellActions({
348
405
  agentRun,
349
406
  view,
@@ -354,17 +411,25 @@ function EmployeeShell({ view, threads, threadId, agentRun, renderLink, appBarLe
354
411
  }),
355
412
  primary: /* @__PURE__ */ jsx(EmployeeMenu, {
356
413
  ...menu,
414
+ view,
415
+ navigation,
357
416
  renderLink,
358
417
  follow: agentRun ? void 0 : menu.follow
359
- })
418
+ }, JSON.stringify([view, threadId]))
360
419
  },
361
- sidebar: sidebar ?? (agentRun ? void 0 : ({ closeSidebarOnCompact }) => /* @__PURE__ */ jsx(ThinkThreadPicker, {
420
+ sidebar: sidebar ?? (agentRun ? void 0 : ({ closeSidebar, closeSidebarOnCompact }) => /* @__PURE__ */ jsx(ThinkThreadPicker, {
421
+ headerActions: /* @__PURE__ */ jsx(IconButton, {
422
+ label: "Hide threads",
423
+ variant: "ghost",
424
+ size: "sm",
425
+ onClick: closeSidebar,
426
+ children: /* @__PURE__ */ jsx(SidebarIcon, {})
427
+ }),
362
428
  threads: history,
363
429
  renderThreadLink: (item) => renderLink({
364
430
  kind: "thread",
365
431
  threadId: item.id
366
432
  }),
367
- createThreadLink: renderLink({ kind: "new-thread" }),
368
433
  onSelect: closeSidebarOnCompact,
369
434
  onDelete: onDeleteThread
370
435
  })),
@@ -383,21 +448,13 @@ function EmployeeGate({ status, connectingLabel, identity, brand, modelSetup })
383
448
  label: modelSetup?.label,
384
449
  title: "Meet " + brand.name,
385
450
  brandName: "SigVelo",
386
- brandLogo: brand.logo,
387
451
  onSignIn: modelSetup?.onSignIn,
388
452
  secondaryAction: modelSetup?.onCustomEndpoint ? {
389
453
  label: "Set up a custom model endpoint",
390
454
  onSelect: modelSetup.onCustomEndpoint
391
455
  } : void 0
392
456
  });
393
- case "connecting": return /* @__PURE__ */ jsx("div", {
394
- className: "employee-gate",
395
- role: "status",
396
- children: /* @__PURE__ */ jsx(EmptyState, {
397
- icon: /* @__PURE__ */ jsx(SpinnerIcon, {}),
398
- description: connectingLabel ?? "Connecting…"
399
- })
400
- });
457
+ case "connecting": return /* @__PURE__ */ jsx(BrandLoading, { label: connectingLabel ?? "Connecting…" });
401
458
  case "offline": return /* @__PURE__ */ jsx("div", {
402
459
  className: "employee-gate",
403
460
  role: "status",
@@ -1,4 +1,4 @@
1
- import { EmployeeMenuProps } from "./EmployeeChrome.js";
1
+ import { c as EmployeeMenuProps } from "../../EmployeeChrome-B605rpVz.js";
2
2
  import { t as ThinkRoutine } from "../../ThinkRoutine-Cb1DdaHa.js";
3
3
  import { ThinkRoutineActionsRootProps } from "./ThinkRoutineActions.js";
4
4
  import * as React from "react";
@@ -1,7 +1,6 @@
1
- import { R as PencilIcon, r as ArrowLeftIcon } from "../../icons-cuEtsgj9.js";
2
- import "../foundations/icons.js";
3
- import { StatusScreen } from "../general-purpose/StatusScreen.js";
1
+ import { R as PencilIcon, r as ArrowLeftIcon } from "../../icons-CeGfXO21.js";
4
2
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
3
+ import { StatusScreen } from "../general-purpose/StatusScreen.js";
5
4
  import { ResponsiveSidebarShell } from "../general-purpose/ResponsiveSidebarShell.js";
6
5
  import { LinkButton } from "../foundations/LinkButton.js";
7
6
  import { EmployeeChrome } from "./EmployeeChrome.js";
@@ -1,8 +1,8 @@
1
1
  import { J as PromptInputMessage } from "../../PromptInput-DGPrCTPl.js";
2
- import { EmployeeBrand, EmployeeDestination } from "./EmployeeChrome.js";
2
+ import { a as EmployeeDestination, n as EmployeeBrand } from "../../EmployeeChrome-B605rpVz.js";
3
3
  import { SetupChecklistGroupProps } from "../general-purpose/SetupChecklist.js";
4
- import { McpPluginCatalogProps } from "./McpPluginCatalog.js";
5
- import { WorkspaceMountManagerProps } from "./WorkspaceMountManager.js";
4
+ import { n as McpPluginCatalogProps } from "../../McpPluginCatalog-DNeHDrts.js";
5
+ import { r as WorkspaceMountManagerProps } from "../../WorkspaceMountManager-CkLI1B-G.js";
6
6
  import * as React from "react";
7
7
 
8
8
  //#region src/components/agents-sdk/EmployeeStartScreen.d.ts
@@ -25,6 +25,13 @@ interface EmployeeStartActions<Id extends string = string> {
25
25
  mounts?: Omit<WorkspaceMountManagerProps, "trigger">;
26
26
  personalization?: Pick<SetupChecklistGroupProps<Id>, "entries" | "onSelect">;
27
27
  }
28
+ interface EmployeeStartScreenProps<Id extends string = string> {
29
+ brand: EmployeeBrand;
30
+ start: EmployeeStartActions<Id>;
31
+ plugins?: McpPluginCatalogProps;
32
+ renderLink: (destination: EmployeeDestination) => React.ReactElement;
33
+ children: React.ReactNode;
34
+ }
28
35
  /** Canonical welcome screen, including configured connection states and connection menus. */
29
36
  declare function EmployeeStartScreen<Id extends string>({
30
37
  brand,
@@ -32,12 +39,6 @@ declare function EmployeeStartScreen<Id extends string>({
32
39
  plugins,
33
40
  renderLink,
34
41
  children
35
- }: {
36
- brand: EmployeeBrand;
37
- start: EmployeeStartActions<Id>;
38
- plugins?: McpPluginCatalogProps;
39
- renderLink: (destination: EmployeeDestination) => React.ReactElement;
40
- children: React.ReactNode;
41
- }): React.JSX.Element;
42
+ }: EmployeeStartScreenProps<Id>): React.JSX.Element;
42
43
  //#endregion
43
- export { EmployeeStartActions, EmployeeStartConnection, EmployeeStartScreen };
44
+ export { EmployeeStartActions, EmployeeStartConnection, EmployeeStartScreen, EmployeeStartScreenProps };
@@ -1,14 +1,13 @@
1
- import { C as FolderIcon, G as SlackIcon, I as PaperclipIcon, c as BoxIcon, g as DiscordIcon } from "../../icons-cuEtsgj9.js";
2
- import { Button } from "../foundations/Button.js";
1
+ import { C as FolderIcon, G as SlackIcon, I as PaperclipIcon, c as BoxIcon, g as DiscordIcon } from "../../icons-CeGfXO21.js";
3
2
  import { Menu } from "../foundations/Menu.js";
4
- import "../foundations/icons.js";
3
+ import { IconButton } from "../foundations/IconButton.js";
5
4
  import { ActionGuideAction } from "../general-purpose/ActionGuide.js";
6
5
  import { AppIcon } from "../foundations/AppIcon.js";
7
6
  import { EmployeeChrome } from "./EmployeeChrome.js";
8
- import { t as SetupChecklistAction } from "../../SetupChecklist-Btmy3-_C.js";
7
+ import { t as SetupChecklistAction } from "../../SetupChecklist-DWyifWWg.js";
9
8
  import { McpServerPickerAction, McpServerPickerItems } from "./McpServerPicker.js";
10
9
  import { WorkspaceMountManager } from "./WorkspaceMountManager.js";
11
- import "react";
10
+ import * as React from "react";
12
11
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
12
  //#region src/components/agents-sdk/EmployeeStartScreen.tsx
14
13
  function SetupActions({ start }) {
@@ -32,6 +31,8 @@ function SetupActions({ start }) {
32
31
  ] });
33
32
  }
34
33
  function StartComposerTray({ plugins, renderLink, start }) {
34
+ const [pluginTrigger, setPluginTrigger] = React.useState(null);
35
+ const menuBoundary = pluginTrigger?.closest(".agent-chat") ?? void 0;
35
36
  const connections = [{
36
37
  id: "discord",
37
38
  name: "Discord",
@@ -59,21 +60,25 @@ function StartComposerTray({ plugins, renderLink, start }) {
59
60
  }) : null,
60
61
  start.mounts ? /* @__PURE__ */ jsx(WorkspaceMountManager, {
61
62
  ...start.mounts,
62
- trigger: /* @__PURE__ */ jsxs(Button, {
63
+ trigger: /* @__PURE__ */ jsx(IconButton, {
63
64
  variant: "ghost",
64
65
  color: "neutral",
65
66
  size: "sm",
66
- children: [/* @__PURE__ */ jsx(PaperclipIcon, {}), "Attach folder"]
67
+ label: "Attach folder",
68
+ responsiveLabel: "Attach folder",
69
+ children: /* @__PURE__ */ jsx(PaperclipIcon, {})
67
70
  })
68
71
  }) : null,
69
- hasPluginMenu ? /* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */ jsxs(Button, {
72
+ hasPluginMenu ? /* @__PURE__ */ jsxs(Menu.Root, { children: [/* @__PURE__ */ jsx(IconButton, {
70
73
  type: "button",
71
74
  variant: "ghost",
72
75
  color: "neutral",
73
76
  size: "sm",
74
77
  render: /* @__PURE__ */ jsx(Menu.Trigger, { unstyled: true }),
75
- "aria-label": "Connect plugins",
76
- children: [/* @__PURE__ */ jsx("span", { children: "Connect plugins" }), /* @__PURE__ */ jsxs(AppIcon.Stack, {
78
+ label: "Connect plugins",
79
+ responsiveLabel: "Plugins",
80
+ ref: setPluginTrigger,
81
+ children: /* @__PURE__ */ jsxs(AppIcon.Stack, {
77
82
  "aria-hidden": "true",
78
83
  children: [/* @__PURE__ */ jsx(AppIcon.Root, {
79
84
  size: "xs",
@@ -84,14 +89,16 @@ function StartComposerTray({ plugins, renderLink, start }) {
84
89
  variant: "surface",
85
90
  children: /* @__PURE__ */ jsx(DiscordIcon, {})
86
91
  })]
87
- })]
92
+ })
88
93
  }), /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
89
- side: "bottom",
90
- align: "start",
91
- sideOffset: 4,
94
+ side: "top",
95
+ align: "end",
96
+ sideOffset: 8,
97
+ collisionBoundary: menuBoundary,
98
+ collisionPadding: 8,
92
99
  children: /* @__PURE__ */ jsxs(Menu.Popup, {
93
100
  "aria-label": "Plugins",
94
- "data-recipe": "wide-scroll-picker",
101
+ className: "employee-start__plugins",
95
102
  children: [/* @__PURE__ */ jsx(McpServerPickerItems, {
96
103
  actions: connections,
97
104
  servers: plugins?.servers ?? [],
@@ -1,8 +1,7 @@
1
- import { B as PlusIcon, y as EllipsisIcon } from "../../icons-cuEtsgj9.js";
1
+ import { B as PlusIcon, y as EllipsisIcon } from "../../icons-CeGfXO21.js";
2
+ import { Menu } from "../foundations/Menu.js";
2
3
  import { IconButton } from "../foundations/IconButton.js";
3
4
  import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
4
- import { Menu } from "../foundations/Menu.js";
5
- import "../foundations/icons.js";
6
5
  import { AppTopBar } from "../general-purpose/AppTopBar.js";
7
6
  import { Toast } from "../foundations/Toast.js";
8
7
  import "react";