@mcp-b/react-components 0.51.2 → 0.52.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 (127) hide show
  1. package/dist/{CodeBlock-g8sADidM.js → CodeBlock-Bl-q7wMc.js} +1 -0
  2. package/dist/{CodeBlock--r6GS8YV.d.ts → CodeBlock-DJ99TQWy.d.ts} +1 -1
  3. package/dist/EmployeeChrome-C8eTGJWn.d.ts +231 -0
  4. package/dist/{IconButton-ByiyjkYE.d.ts → IconButton-CAlFVb2L.d.ts} +3 -0
  5. package/dist/{ManagerOffice-D-7SOJ4x.js → ManagerOffice-CMJ7laGe.js} +14 -9
  6. package/dist/McpPluginCatalog-DNeHDrts.d.ts +94 -0
  7. package/dist/{Message-DyaTBiV7.d.ts → Message-COsMPZSC.d.ts} +2 -2
  8. package/dist/{ResponsiveSidebarShell-CAmmtQTR.d.ts → ResponsiveSidebarShell-BUBQa_IV.d.ts} +3 -1
  9. package/dist/{SetupChecklist-Btmy3-_C.js → SetupChecklist-BiWQkKEq.js} +5 -4
  10. package/dist/{ThinkThreadPicker-yetGX_s5.d.ts → ThinkThreadPicker-DX0lL-P7.d.ts} +3 -0
  11. package/dist/{Workspace-HzGrWDX3.d.ts → Workspace-mzMZSdts.d.ts} +1 -1
  12. package/dist/WorkspaceConceptPanel-97ZyVpZI.js +20 -0
  13. package/dist/{WorkspaceFile-Bouauobc.d.ts → WorkspaceFile-19WP0EU1.d.ts} +1 -1
  14. package/dist/{WorkspaceFileView-DYPtRVpM.js → WorkspaceFileView-DXgTljKV.js} +2 -1
  15. package/dist/{WorkspaceMessageResponse-8lOSAbw_.d.ts → WorkspaceMessageResponse-BApg8KZv.d.ts} +1 -1
  16. package/dist/WorkspaceMountManager-CkLI1B-G.d.ts +33 -0
  17. package/dist/assets/sigvelo-logo.svg +54 -0
  18. package/dist/components/agents-sdk/AgentChat.d.ts +6 -2
  19. package/dist/components/agents-sdk/AgentChat.js +4 -8
  20. package/dist/components/agents-sdk/EmployeeApp.d.ts +43 -30
  21. package/dist/components/agents-sdk/EmployeeApp.js +47 -34
  22. package/dist/components/agents-sdk/EmployeeChat.d.ts +28 -8
  23. package/dist/components/agents-sdk/EmployeeChat.js +32 -4
  24. package/dist/components/agents-sdk/EmployeeChrome.d.ts +1 -219
  25. package/dist/components/agents-sdk/EmployeeChrome.js +101 -102
  26. package/dist/components/agents-sdk/EmployeeSchedules.d.ts +1 -1
  27. package/dist/components/agents-sdk/EmployeeSchedules.js +1 -2
  28. package/dist/components/agents-sdk/EmployeeStartScreen.d.ts +12 -11
  29. package/dist/components/agents-sdk/EmployeeStartScreen.js +21 -14
  30. package/dist/components/agents-sdk/ManagerAccountActions.js +0 -1
  31. package/dist/components/agents-sdk/ManagerOffice.js +1 -2
  32. package/dist/components/agents-sdk/ManagerOfficeScreens.d.ts +2 -2
  33. package/dist/components/agents-sdk/ManagerOfficeScreens.js +30 -13
  34. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +1 -93
  35. package/dist/components/agents-sdk/McpPluginCatalog.js +3 -3
  36. package/dist/components/agents-sdk/McpServerPicker.js +3 -3
  37. package/dist/components/agents-sdk/SubagentRunPanel.d.ts +3 -0
  38. package/dist/components/agents-sdk/SubagentRunPanel.js +66 -46
  39. package/dist/components/agents-sdk/ThinkChat.d.ts +1 -1
  40. package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
  41. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +4 -11
  42. package/dist/components/agents-sdk/ThinkFullApp.d.ts +2 -0
  43. package/dist/components/agents-sdk/ThinkFullApp.js +2 -0
  44. package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
  45. package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +1 -1
  46. package/dist/components/agents-sdk/ThinkThreadPicker.js +32 -19
  47. package/dist/components/agents-sdk/WorkbenchBack.d.ts +18 -0
  48. package/dist/components/agents-sdk/WorkbenchBack.js +27 -0
  49. package/dist/components/agents-sdk/Workspace.d.ts +1 -1
  50. package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
  51. package/dist/components/agents-sdk/WorkspaceBrowser.js +2 -0
  52. package/dist/components/agents-sdk/WorkspaceConcept.d.ts +1 -1
  53. package/dist/components/agents-sdk/WorkspaceExecution.js +7 -4
  54. package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +4 -1
  55. package/dist/components/agents-sdk/WorkspaceExplorer.js +13 -4
  56. package/dist/components/agents-sdk/WorkspaceFile.d.ts +1 -1
  57. package/dist/components/agents-sdk/WorkspaceFileView.d.ts +1 -1
  58. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  59. package/dist/components/agents-sdk/WorkspaceLive.d.ts +2 -2
  60. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  61. package/dist/components/agents-sdk/WorkspaceMountManager.d.ts +1 -32
  62. package/dist/components/agents-sdk/WorkspaceMountManager.js +1 -1
  63. package/dist/components/agents-sdk/WorkspaceProject.js +3 -1
  64. package/dist/components/agents-sdk/WorkspaceUserScript.js +3 -1
  65. package/dist/components/ai-sdk/Artifact.d.ts +1 -1
  66. package/dist/components/ai-sdk/CodeBlock.d.ts +1 -1
  67. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  68. package/dist/components/ai-sdk/Conversation.d.ts +1 -1
  69. package/dist/components/ai-sdk/Message.d.ts +1 -1
  70. package/dist/components/ai-sdk/PromptInput.js +1 -1
  71. package/dist/components/extension/ChatGptSignInScreen.d.ts +1 -1
  72. package/dist/components/extension/ChatGptSignInScreen.js +60 -185
  73. package/dist/components/extension/CodexModelSelector.js +2 -6
  74. package/dist/components/foundations/IconButton.d.ts +1 -1
  75. package/dist/components/foundations/IconButton.js +7 -4
  76. package/dist/components/general-purpose/AccountSignInDialog.d.ts +5 -9
  77. package/dist/components/general-purpose/AccountSignInDialog.js +12 -4
  78. package/dist/components/general-purpose/BrandLoading.d.ts +14 -0
  79. package/dist/components/general-purpose/BrandLoading.js +25 -0
  80. package/dist/components/general-purpose/Commit.d.ts +1 -1
  81. package/dist/components/general-purpose/EnvironmentVariables.d.ts +1 -1
  82. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +1 -1
  83. package/dist/components/general-purpose/ResponsiveSidebarShell.js +58 -26
  84. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  85. package/dist/components/general-purpose/StatusScreen.d.ts +13 -2
  86. package/dist/components/general-purpose/StatusScreen.js +27 -3
  87. package/dist/components/general-purpose/Terminal.d.ts +2 -2
  88. package/dist/components/general-purpose/WebPreview.d.ts +1 -1
  89. package/dist/components/nanites/AgentConnection.js +1 -1
  90. package/dist/{copy-button-OUwOdgEm.d.ts → copy-button-CJYYgCIU.d.ts} +1 -1
  91. package/dist/styles/activity.css +2 -2
  92. package/dist/styles/agent-chat.css +6 -105
  93. package/dist/styles/app-root.css +9 -0
  94. package/dist/styles/app-top-bar.css +10 -4
  95. package/dist/styles/avatar.css +2 -2
  96. package/dist/styles/base.css +6 -2
  97. package/dist/styles/brand-loading.css +58 -0
  98. package/dist/styles/brand.test.ts +158 -0
  99. package/dist/styles/browser-control-overlay.css +22 -0
  100. package/dist/styles/button.css +22 -1
  101. package/dist/styles/chatgpt-sign-in-screen.css +111 -225
  102. package/dist/styles/code-block.css +5 -0
  103. package/dist/styles/codex-model-selector.css +2 -12
  104. package/dist/styles/description-list.css +9 -2
  105. package/dist/styles/employee-app.css +19 -1
  106. package/dist/styles/employee-chrome.css +35 -5
  107. package/dist/styles/file-tree.css +15 -2
  108. package/dist/styles/index.css +1 -0
  109. package/dist/styles/manager-office.css +80 -55
  110. package/dist/styles/manager-work.css +5 -11
  111. package/dist/styles/mcp-plugin-catalog.css +29 -34
  112. package/dist/styles/mcp-server-picker.css +13 -5
  113. package/dist/styles/prompt-input.css +3 -13
  114. package/dist/styles/queue.css +1 -1
  115. package/dist/styles/recipes.css +9 -2
  116. package/dist/styles/responsive-sidebar-shell-motion.test.ts +67 -0
  117. package/dist/styles/responsive-sidebar-shell.css +70 -25
  118. package/dist/styles/search-field.css +8 -6
  119. package/dist/styles/subagent-run.css +81 -0
  120. package/dist/styles/think-execution-workbench.css +0 -17
  121. package/dist/styles/think-full-app.css +11 -4
  122. package/dist/styles/think-thread-picker.css +16 -38
  123. package/dist/styles/workspace-concepts.css +29 -2
  124. package/dist/styles/workspace-explorer.css +6 -48
  125. package/dist/utils/structured-code.d.ts +1 -1
  126. package/package.json +2 -2
  127. package/dist/styles/extension-status.css +0 -46
@@ -1,5 +1,6 @@
1
1
  import { l as WorkspaceNavigationAdapter } from "../../WorkspaceLink-Bh9-Jo1r.js";
2
- import { b as WorkspaceState } from "../../Workspace-HzGrWDX3.js";
2
+ import { r as WorkspaceMountManagerProps } from "../../WorkspaceMountManager-CkLI1B-G.js";
3
+ import { b as WorkspaceState } from "../../Workspace-mzMZSdts.js";
3
4
  import * as React from "react";
4
5
 
5
6
  //#region src/components/agents-sdk/WorkspaceExplorer.d.ts
@@ -14,6 +15,8 @@ interface WorkspaceExplorerProps extends Omit<React.HTMLAttributes<HTMLDivElemen
14
15
  leading?: React.ReactNode;
15
16
  /** Extra header actions, rendered next to the built-in refresh button. */
16
17
  actions?: React.ReactNode;
18
+ /** Native folder data and callbacks; the shared explorer owns the attach control. */
19
+ mounts?: Omit<WorkspaceMountManagerProps, "trigger">;
17
20
  /** Show the file filter input. Hidden by default to keep the browser compact. */
18
21
  showFilter?: boolean;
19
22
  /** Placeholder for the optional file filter. */
@@ -1,11 +1,14 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
+ import { C as FolderIcon } from "../../icons-cuEtsgj9.js";
2
3
  import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
4
+ import { AppTopBar } from "../general-purpose/AppTopBar.js";
5
+ import { WorkspaceMountManager } from "./WorkspaceMountManager.js";
3
6
  import { n as WorkspaceNavigationProvider, r as resolveWorkspaceLink } from "../../WorkspaceLink-BYZG-V_I.js";
4
7
  import { WorkspaceNavigationRestorationBoundary, useRequiredWorkspaceNavigationRestoration } from "./WorkspaceNavigationRestoration.js";
5
8
  import { WorkspaceBrowser } from "./WorkspaceBrowser.js";
6
- import { t as WorkspaceFileView } from "../../WorkspaceFileView-DYPtRVpM.js";
9
+ import { t as WorkspaceFileView } from "../../WorkspaceFileView-DXgTljKV.js";
7
10
  import * as React from "react";
8
- import { jsx } from "react/jsx-runtime";
11
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
12
  //#region src/components/agents-sdk/WorkspaceExplorer.tsx
10
13
  function encodeWorkspaceDestination(destination) {
11
14
  const path = destination.path.split("/").map((segment) => encodeURIComponent(segment)).join("/");
@@ -41,7 +44,7 @@ function getDirectoryAncestors(path, root) {
41
44
  function WorkspaceExplorer({ ...props }) {
42
45
  return /* @__PURE__ */ jsx(WorkspaceNavigationRestorationBoundary, { children: /* @__PURE__ */ jsx(WorkspaceExplorerContent, { ...props }) });
43
46
  }
44
- function WorkspaceExplorerContent({ workspace, navigation, className, title = "Workspace", leading, actions, showFilter = false, filterPlaceholder = "Filter files...", emptyState, ref, ...props }) {
47
+ function WorkspaceExplorerContent({ workspace, navigation, className, title = "Workspace", leading, actions, mounts, showFilter = false, filterPlaceholder = "Filter files...", emptyState, ref, ...props }) {
45
48
  const explorerRef = React.useRef(null);
46
49
  const pendingTreeFocusRef = React.useRef(null);
47
50
  const currentEntry = navigation.current;
@@ -110,7 +113,13 @@ function WorkspaceExplorerContent({ workspace, navigation, className, title = "W
110
113
  workspace,
111
114
  title,
112
115
  leading,
113
- actions,
116
+ actions: mounts ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(WorkspaceMountManager, {
117
+ ...mounts,
118
+ trigger: /* @__PURE__ */ jsx(AppTopBar.Button, {
119
+ label: "Attach folder",
120
+ children: /* @__PURE__ */ jsx(FolderIcon, {})
121
+ })
122
+ }), actions] }) : actions,
114
123
  showFilter,
115
124
  filterPlaceholder,
116
125
  emptyState,
@@ -1,2 +1,2 @@
1
- import { _ as isWorkspaceTextPath, a as WorkspaceMediaInfo, c as WorkspaceMediaTrackKind, d as inferWorkspaceLanguage, f as inferWorkspaceMedia, g as isWorkspaceSkillPath, h as isWorkspaceMediaPath, i as WorkspaceFileState, l as WorkspaceSkillDocument, m as isWorkspaceMarkdownPath, n as WorkspaceFileAssetRequest, o as WorkspaceMediaKind, p as inferWorkspaceMimeType, r as WorkspaceFileAssetResolver, s as WorkspaceMediaTrack, t as WorkspaceFileAsset, u as getWorkspaceBasename, v as parseWorkspaceSkill } from "../../WorkspaceFile-Bouauobc.js";
1
+ import { _ as isWorkspaceTextPath, a as WorkspaceMediaInfo, c as WorkspaceMediaTrackKind, d as inferWorkspaceLanguage, f as inferWorkspaceMedia, g as isWorkspaceSkillPath, h as isWorkspaceMediaPath, i as WorkspaceFileState, l as WorkspaceSkillDocument, m as isWorkspaceMarkdownPath, n as WorkspaceFileAssetRequest, o as WorkspaceMediaKind, p as inferWorkspaceMimeType, r as WorkspaceFileAssetResolver, s as WorkspaceMediaTrack, t as WorkspaceFileAsset, u as getWorkspaceBasename, v as parseWorkspaceSkill } from "../../WorkspaceFile-19WP0EU1.js";
2
2
  export { WorkspaceFileAsset, WorkspaceFileAssetRequest, WorkspaceFileAssetResolver, WorkspaceFileState, WorkspaceMediaInfo, WorkspaceMediaKind, WorkspaceMediaTrack, WorkspaceMediaTrackKind, WorkspaceSkillDocument, getWorkspaceBasename, inferWorkspaceLanguage, inferWorkspaceMedia, inferWorkspaceMimeType, isWorkspaceMarkdownPath, isWorkspaceMediaPath, isWorkspaceSkillPath, isWorkspaceTextPath, parseWorkspaceSkill };
@@ -1,4 +1,4 @@
1
- import { i as WorkspaceFileState } from "../../WorkspaceFile-Bouauobc.js";
1
+ import { i as WorkspaceFileState } from "../../WorkspaceFile-19WP0EU1.js";
2
2
  import * as React from "react";
3
3
 
4
4
  //#region src/components/agents-sdk/WorkspaceFileView.d.ts
@@ -1,2 +1,2 @@
1
- import { t as WorkspaceFileView } from "../../WorkspaceFileView-DYPtRVpM.js";
1
+ import { t as WorkspaceFileView } from "../../WorkspaceFileView-DXgTljKV.js";
2
2
  export { WorkspaceFileView };
@@ -1,5 +1,5 @@
1
- import { r as WorkspaceFileAssetResolver } from "../../WorkspaceFile-Bouauobc.js";
2
- import { y as WorkspaceSource } from "../../Workspace-HzGrWDX3.js";
1
+ import { r as WorkspaceFileAssetResolver } from "../../WorkspaceFile-19WP0EU1.js";
2
+ import { y as WorkspaceSource } from "../../Workspace-mzMZSdts.js";
3
3
  import { QueryClient } from "@tanstack/react-query";
4
4
 
5
5
  //#region src/components/agents-sdk/WorkspaceLive.d.ts
@@ -1,2 +1,2 @@
1
- import { a as WorkspaceMessageResponseProps, i as WorkspaceMessageResponse, n as WorkspaceFileRenderer, r as WorkspaceFileRendererProvider, t as WorkspaceFileRenderInput } from "../../WorkspaceMessageResponse-8lOSAbw_.js";
1
+ import { a as WorkspaceMessageResponseProps, i as WorkspaceMessageResponse, n as WorkspaceFileRenderer, r as WorkspaceFileRendererProvider, t as WorkspaceFileRenderInput } from "../../WorkspaceMessageResponse-BApg8KZv.js";
2
2
  export { WorkspaceFileRenderInput, WorkspaceFileRenderer, WorkspaceFileRendererProvider, WorkspaceMessageResponse, WorkspaceMessageResponseProps };
@@ -1,33 +1,2 @@
1
- import * as React from "react";
2
-
3
- //#region src/components/agents-sdk/WorkspaceMountManager.d.ts
4
- type WorkspaceMountPermission = "granted" | "prompt" | "denied" | "unavailable";
5
- interface WorkspaceMountItem {
6
- id: string;
7
- path: string;
8
- permission: WorkspaceMountPermission;
9
- }
10
- interface WorkspaceMountManagerProps {
11
- mounts: readonly WorkspaceMountItem[];
12
- adding?: boolean;
13
- busyMountId?: string | null;
14
- error?: React.ReactNode;
15
- onAdd: () => void;
16
- onReconnect: (mount: WorkspaceMountItem) => void;
17
- onRemove: (mount: WorkspaceMountItem) => void;
18
- /** Caller-owned button, including its accessible name and optional toolbar composition. */
19
- trigger: React.ReactElement;
20
- }
21
- /** Controlled local-mount presentation; native handles and persistence stay in the host. */
22
- declare function WorkspaceMountManager({
23
- mounts,
24
- adding,
25
- busyMountId,
26
- error,
27
- onAdd,
28
- onReconnect,
29
- onRemove,
30
- trigger
31
- }: WorkspaceMountManagerProps): React.JSX.Element;
32
- //#endregion
1
+ import { i as WorkspaceMountPermission, n as WorkspaceMountManager, r as WorkspaceMountManagerProps, t as WorkspaceMountItem } from "../../WorkspaceMountManager-CkLI1B-G.js";
33
2
  export { WorkspaceMountItem, WorkspaceMountManager, WorkspaceMountManagerProps, WorkspaceMountPermission };
@@ -1,7 +1,7 @@
1
1
  import { Button } from "../foundations/Button.js";
2
2
  import { EmptyState } from "../foundations/EmptyState.js";
3
- import { Popover } from "../foundations/Popover.js";
4
3
  import { Card, CardFooter, CardHeader, CardTitle } from "../foundations/Card.js";
4
+ import { Popover } from "../foundations/Popover.js";
5
5
  import "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region src/components/agents-sdk/WorkspaceMountManager.tsx
@@ -8,6 +8,7 @@ import { DescriptionList } from "../foundations/DescriptionList.js";
8
8
  import { LinkButton } from "../foundations/LinkButton.js";
9
9
  import { Card, CardAction, CardContent, CardDescription, CardHeader, CardTitle } from "../foundations/Card.js";
10
10
  import { i as WorkspaceDeleteControl, n as WorkspaceComposerLink, t as FaviconMark } from "../../workspace-assets-Bg7XhPsk.js";
11
+ import { t as WorkspaceConceptPanel } from "../../WorkspaceConceptPanel-97ZyVpZI.js";
11
12
  import * as React from "react";
12
13
  import { jsx, jsxs } from "react/jsx-runtime";
13
14
  import { useQuery } from "@tanstack/react-query";
@@ -169,7 +170,8 @@ function useWorkspaceProjects(source) {
169
170
  function WorkspaceProjectsPanel({ className, source, ref, ...props }) {
170
171
  const query = useQuery(source.queryOptions);
171
172
  const projects = query.data ?? [];
172
- return /* @__PURE__ */ jsx("section", {
173
+ return /* @__PURE__ */ jsx(WorkspaceConceptPanel, {
174
+ heading: "Projects",
173
175
  ref,
174
176
  "data-slot": "workspace-projects-panel",
175
177
  className: cx("workspace-concept-panel", className),
@@ -6,6 +6,7 @@ import { DescriptionList } from "../foundations/DescriptionList.js";
6
6
  import { Switch } from "../foundations/Switch.js";
7
7
  import { Card, CardAction, CardContent, CardDescription, CardHeader, CardTitle } from "../foundations/Card.js";
8
8
  import { i as WorkspaceDeleteControl, n as WorkspaceComposerLink, t as FaviconMark } from "../../workspace-assets-Bg7XhPsk.js";
9
+ import { t as WorkspaceConceptPanel } from "../../WorkspaceConceptPanel-97ZyVpZI.js";
9
10
  import * as React from "react";
10
11
  import { jsx, jsxs } from "react/jsx-runtime";
11
12
  //#region src/components/agents-sdk/WorkspaceUserScript.tsx
@@ -130,7 +131,8 @@ function WorkspaceUserScriptCard({ className, script, ref, ...props }) {
130
131
  * quiet empty state when nothing is projected.
131
132
  */
132
133
  function WorkspaceUserScriptsPanel({ className, ref, scripts, ...props }) {
133
- return /* @__PURE__ */ jsx("section", {
134
+ return /* @__PURE__ */ jsx(WorkspaceConceptPanel, {
135
+ heading: "Scripts",
134
136
  ref,
135
137
  "data-slot": "workspace-user-scripts-panel",
136
138
  className: cx("workspace-concept-panel", className),
@@ -1,4 +1,4 @@
1
- import { n as IconButtonProps } from "../../IconButton-ByiyjkYE.js";
1
+ import { n as IconButtonProps } from "../../IconButton-CAlFVb2L.js";
2
2
  import * as React from "react";
3
3
 
4
4
  //#region src/components/ai-sdk/Artifact.d.ts
@@ -1,2 +1,2 @@
1
- import { C as CodeBlockLanguageSelectorValueProps, D as CODE_BLOCK_LANGUAGES, E as CodeBlockTitleProps, O as CodeBlockLanguage, S as CodeBlockLanguageSelectorValue, T as CodeBlockTitle, _ as CodeBlockLanguageSelectorItem, a as CodeBlockContainerProps, b as CodeBlockLanguageSelectorTrigger, c as CodeBlockCopyButton, d as CodeBlockFilenameProps, f as CodeBlockHeader, g as CodeBlockLanguageSelectorContentProps, h as CodeBlockLanguageSelectorContent, i as CodeBlockContainer, l as CodeBlockCopyButtonProps, m as CodeBlockLanguageSelector, n as CodeBlockActions, o as CodeBlockContent, p as CodeBlockHeaderProps, r as CodeBlockActionsProps, s as CodeBlockContentProps, t as CodeBlock, u as CodeBlockFilename, v as CodeBlockLanguageSelectorItemProps, w as CodeBlockProps, x as CodeBlockLanguageSelectorTriggerProps, y as CodeBlockLanguageSelectorProps } from "../../CodeBlock--r6GS8YV.js";
1
+ import { C as CodeBlockLanguageSelectorValueProps, D as CODE_BLOCK_LANGUAGES, E as CodeBlockTitleProps, O as CodeBlockLanguage, S as CodeBlockLanguageSelectorValue, T as CodeBlockTitle, _ as CodeBlockLanguageSelectorItem, a as CodeBlockContainerProps, b as CodeBlockLanguageSelectorTrigger, c as CodeBlockCopyButton, d as CodeBlockFilenameProps, f as CodeBlockHeader, g as CodeBlockLanguageSelectorContentProps, h as CodeBlockLanguageSelectorContent, i as CodeBlockContainer, l as CodeBlockCopyButtonProps, m as CodeBlockLanguageSelector, n as CodeBlockActions, o as CodeBlockContent, p as CodeBlockHeaderProps, r as CodeBlockActionsProps, s as CodeBlockContentProps, t as CodeBlock, u as CodeBlockFilename, v as CodeBlockLanguageSelectorItemProps, w as CodeBlockProps, x as CodeBlockLanguageSelectorTriggerProps, y as CodeBlockLanguageSelectorProps } from "../../CodeBlock-DJ99TQWy.js";
2
2
  export { CODE_BLOCK_LANGUAGES, CodeBlock, CodeBlockActions, CodeBlockActionsProps, CodeBlockContainer, CodeBlockContainerProps, CodeBlockContent, CodeBlockContentProps, CodeBlockCopyButton, CodeBlockCopyButtonProps, CodeBlockFilename, CodeBlockFilenameProps, CodeBlockHeader, CodeBlockHeaderProps, type CodeBlockLanguage, CodeBlockLanguageSelector, CodeBlockLanguageSelectorContent, CodeBlockLanguageSelectorContentProps, CodeBlockLanguageSelectorItem, CodeBlockLanguageSelectorItemProps, CodeBlockLanguageSelectorProps, CodeBlockLanguageSelectorTrigger, CodeBlockLanguageSelectorTriggerProps, CodeBlockLanguageSelectorValue, CodeBlockLanguageSelectorValueProps, CodeBlockProps, CodeBlockTitle, CodeBlockTitleProps };
@@ -1,2 +1,2 @@
1
- import { a as CodeBlockCopyButton, c as CodeBlockLanguageSelector, d as CodeBlockLanguageSelectorTrigger, f as CodeBlockLanguageSelectorValue, i as CodeBlockContent, l as CodeBlockLanguageSelectorContent, m as CODE_BLOCK_LANGUAGES, n as CodeBlockActions, o as CodeBlockFilename, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock, u as CodeBlockLanguageSelectorItem } from "../../CodeBlock-g8sADidM.js";
1
+ import { a as CodeBlockCopyButton, c as CodeBlockLanguageSelector, d as CodeBlockLanguageSelectorTrigger, f as CodeBlockLanguageSelectorValue, i as CodeBlockContent, l as CodeBlockLanguageSelectorContent, m as CODE_BLOCK_LANGUAGES, n as CodeBlockActions, o as CodeBlockFilename, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock, u as CodeBlockLanguageSelectorItem } from "../../CodeBlock-Bl-q7wMc.js";
2
2
  export { CODE_BLOCK_LANGUAGES, CodeBlock, CodeBlockActions, CodeBlockContainer, CodeBlockContent, CodeBlockCopyButton, CodeBlockFilename, CodeBlockHeader, CodeBlockLanguageSelector, CodeBlockLanguageSelectorContent, CodeBlockLanguageSelectorItem, CodeBlockLanguageSelectorTrigger, CodeBlockLanguageSelectorValue, CodeBlockTitle };
@@ -1,4 +1,4 @@
1
- import { n as IconButtonProps } from "../../IconButton-ByiyjkYE.js";
1
+ import { n as IconButtonProps } from "../../IconButton-CAlFVb2L.js";
2
2
  import { MessageScrollerButtonProps, MessageScrollerItemProps } from "./MessageScroller.js";
3
3
  import * as React from "react";
4
4
  import { UIMessage } from "ai";
@@ -1,2 +1,2 @@
1
- import { A as MessageTimestamp, C as MessageCopyActionProps, D as MessageResponse, E as MessageProps, M as MessageToolbar, N as MessageToolbarProps, O as MessageResponseProps, S as MessageCopyAction, T as MessageMetaProps, _ as MessageBranchProps, a as MessageActionsProps, b as MessageContent, c as MessageBranch, d as MessageBranchNext, f as MessageBranchNextProps, g as MessageBranchPreviousProps, h as MessageBranchPrevious, i as MessageActions, j as MessageTimestampProps, k as MessageRole, l as MessageBranchContent, m as MessageBranchPageProps, n as MessageAction, o as MessageAttachment, p as MessageBranchPage, r as MessageActionProps, s as MessageAttachmentProps, t as Message, u as MessageBranchContentProps, v as MessageBranchSelector, w as MessageMeta, x as MessageContentProps, y as MessageBranchSelectorProps } from "../../Message-DyaTBiV7.js";
1
+ import { A as MessageTimestamp, C as MessageCopyActionProps, D as MessageResponse, E as MessageProps, M as MessageToolbar, N as MessageToolbarProps, O as MessageResponseProps, S as MessageCopyAction, T as MessageMetaProps, _ as MessageBranchProps, a as MessageActionsProps, b as MessageContent, c as MessageBranch, d as MessageBranchNext, f as MessageBranchNextProps, g as MessageBranchPreviousProps, h as MessageBranchPrevious, i as MessageActions, j as MessageTimestampProps, k as MessageRole, l as MessageBranchContent, m as MessageBranchPageProps, n as MessageAction, o as MessageAttachment, p as MessageBranchPage, r as MessageActionProps, s as MessageAttachmentProps, t as Message, u as MessageBranchContentProps, v as MessageBranchSelector, w as MessageMeta, x as MessageContentProps, y as MessageBranchSelectorProps } from "../../Message-COsMPZSC.js";
2
2
  export { Message, MessageAction, MessageActionProps, MessageActions, MessageActionsProps, MessageAttachment, MessageAttachmentProps, MessageBranch, MessageBranchContent, MessageBranchContentProps, MessageBranchNext, MessageBranchNextProps, MessageBranchPage, MessageBranchPageProps, MessageBranchPrevious, MessageBranchPreviousProps, MessageBranchProps, MessageBranchSelector, MessageBranchSelectorProps, MessageContent, MessageContentProps, MessageCopyAction, MessageCopyActionProps, MessageMeta, MessageMetaProps, MessageProps, MessageResponse, MessageResponseProps, MessageRole, MessageTimestamp, MessageTimestampProps, MessageToolbar, MessageToolbarProps };
@@ -97,7 +97,7 @@ function PromptInputProvider({ initialInput = "", value, onValueChange, accept,
97
97
  setFiles([]);
98
98
  }, []);
99
99
  const submitDraft = React.useCallback(async (onSubmit, event) => {
100
- if (serializing.current) return;
100
+ if (serializing.current || !text.trim() && filesRef.current.length === 0) return;
101
101
  serializing.current = true;
102
102
  const revision = textRevision.current;
103
103
  const snapshot = filesRef.current;
@@ -14,7 +14,7 @@ interface ChatGptSignInScreenProps extends React.HTMLAttributes<HTMLElement> {
14
14
  error?: React.ReactNode;
15
15
  /** Main heading shown above the sign-in control. */
16
16
  title?: string;
17
- /** Brand name displayed under the heading. */
17
+ /** Brand name displayed in the footer. */
18
18
  brandName?: string;
19
19
  /** Brand mark displayed next to the brand name. */
20
20
  brandLogo?: React.ReactNode;
@@ -6,7 +6,12 @@ import "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region src/components/extension/ChatGptSignInScreen.tsx
8
8
  /** Full-screen provider authentication prompt for MCP-B onboarding. */
9
- function ChatGptSignInScreen({ busy = false, control, error, label = "Sign in with ChatGPT", title = "Welcome to MCP-B", brandName = "SigVelo", brandLogo = /* @__PURE__ */ jsx(SigVeloMark, {}), className, onSignIn, secondaryAction, ref, ...props }) {
9
+ function ChatGptSignInScreen({ busy = false, control, error, label = "Sign in with ChatGPT", title = "Meet Rook", brandName = "SigVelo", brandLogo = /* @__PURE__ */ jsx("img", {
10
+ src: new URL("../../assets/sigvelo-logo.svg", import.meta.url).href,
11
+ alt: "",
12
+ width: 64,
13
+ height: 64
14
+ }), className, onSignIn, secondaryAction, ref, ...props }) {
10
15
  return /* @__PURE__ */ jsxs("main", {
11
16
  ref,
12
17
  className: cx("chatgpt-sign-in", className),
@@ -14,194 +19,64 @@ function ChatGptSignInScreen({ busy = false, control, error, label = "Sign in wi
14
19
  ...props,
15
20
  "data-recipe": "fill-host",
16
21
  children: [/* @__PURE__ */ jsxs("div", {
17
- className: "chatgpt-sign-in__panel",
18
- children: [
19
- /* @__PURE__ */ jsxs("div", {
20
- className: "chatgpt-sign-in__brand",
21
- children: [/* @__PURE__ */ jsx("h1", { children: title }), /* @__PURE__ */ jsxs("p", { children: [
22
- "by ",
23
- brandLogo ? /* @__PURE__ */ jsx("span", {
22
+ className: "chatgpt-sign-in__content",
23
+ children: [/* @__PURE__ */ jsxs("div", {
24
+ className: "chatgpt-sign-in__panel",
25
+ children: [
26
+ /* @__PURE__ */ jsxs("div", {
27
+ className: "chatgpt-sign-in__brand",
28
+ children: [brandLogo ? /* @__PURE__ */ jsx("span", {
24
29
  className: "chatgpt-sign-in__brand-mark",
25
30
  children: brandLogo
26
- }) : null,
27
- /* @__PURE__ */ jsx("span", { children: brandName })
28
- ] })]
29
- }),
30
- control ?? (onSignIn ? /* @__PURE__ */ jsxs(Button, {
31
- type: "button",
32
- variant: "normal",
33
- color: error ? "destructive" : "primary",
34
- size: "sm",
35
- className: "chatgpt-sign-in__button",
36
- "data-busy": busy ? "true" : void 0,
37
- disabled: busy,
38
- onClick: onSignIn,
39
- onPointerMove: handleSignInButtonPointerMove,
40
- children: [/* @__PURE__ */ jsx("span", {
41
- className: "chatgpt-sign-in__button-icon",
42
- children: busy ? /* @__PURE__ */ jsx(SpinnerIcon, { size: 16 }) : /* @__PURE__ */ jsx(ProviderLogo, {
43
- provider: "openai",
44
- className: "chatgpt-sign-in__logo"
45
- })
46
- }), /* @__PURE__ */ jsx("span", {
47
- className: "chatgpt-sign-in__button-label",
48
- children: label
49
- })]
50
- }) : null),
51
- error ? /* @__PURE__ */ jsx("p", {
52
- role: "alert",
53
- className: "chatgpt-sign-in__error",
54
- children: error
55
- }) : null
56
- ]
57
- }), secondaryAction ? /* @__PURE__ */ jsx("div", {
58
- className: "chatgpt-sign-in__secondary-action",
59
- children: /* @__PURE__ */ jsx(Button, {
60
- type: "button",
61
- variant: "ghost",
62
- color: "neutral",
63
- size: "xs",
64
- disabled: secondaryAction.disabled,
65
- onClick: secondaryAction.onSelect,
66
- children: secondaryAction.label
67
- })
68
- }) : null]
69
- });
70
- }
71
- function handleSignInButtonPointerMove(event) {
72
- const element = event.currentTarget;
73
- const rect = element.getBoundingClientRect();
74
- if (rect.width === 0 || rect.height === 0) return;
75
- element.style.setProperty("--chatgpt-sign-in-button-x", `${(event.clientX - rect.left) / rect.width * 100}%`);
76
- element.style.setProperty("--chatgpt-sign-in-button-y", `${(event.clientY - rect.top) / rect.height * 100}%`);
77
- }
78
- function SigVeloMark() {
79
- return /* @__PURE__ */ jsxs("svg", {
80
- viewBox: "430 310 360 400",
81
- fill: "none",
82
- "aria-hidden": "true",
83
- focusable: "false",
84
- children: [
85
- /* @__PURE__ */ jsxs("defs", { children: [/* @__PURE__ */ jsxs("linearGradient", {
86
- id: "chatgpt-sign-in-mark-a",
87
- x1: "756.23",
88
- y1: "475.14",
89
- x2: "608.29",
90
- y2: "352.58",
91
- gradientUnits: "userSpaceOnUse",
92
- children: [
93
- /* @__PURE__ */ jsx("stop", {
94
- offset: "0",
95
- stopColor: "#00ebff"
96
- }),
97
- /* @__PURE__ */ jsx("stop", {
98
- offset: ".17",
99
- stopColor: "#00e7fe"
100
- }),
101
- /* @__PURE__ */ jsx("stop", {
102
- offset: ".32",
103
- stopColor: "#01dcfd"
104
- }),
105
- /* @__PURE__ */ jsx("stop", {
106
- offset: ".46",
107
- stopColor: "#04cbfa"
108
- }),
109
- /* @__PURE__ */ jsx("stop", {
110
- offset: ".59",
111
- stopColor: "#08b2f6"
112
- }),
113
- /* @__PURE__ */ jsx("stop", {
114
- offset: ".72",
115
- stopColor: "#0c91f2"
116
- }),
117
- /* @__PURE__ */ jsx("stop", {
118
- offset: ".85",
119
- stopColor: "#1269ec"
120
- }),
121
- /* @__PURE__ */ jsx("stop", {
122
- offset: ".98",
123
- stopColor: "#183be6"
124
- }),
125
- /* @__PURE__ */ jsx("stop", {
126
- offset: "1",
127
- stopColor: "#1a32e5"
128
- })
31
+ }) : null, /* @__PURE__ */ jsx("h1", { children: title })]
32
+ }),
33
+ control ?? (onSignIn ? /* @__PURE__ */ jsxs(Button, {
34
+ type: "button",
35
+ variant: "normal",
36
+ color: error ? "destructive" : "primary",
37
+ size: "sm",
38
+ className: "chatgpt-sign-in__button",
39
+ "data-busy": busy ? "true" : void 0,
40
+ disabled: busy,
41
+ onClick: onSignIn,
42
+ children: [/* @__PURE__ */ jsx("span", {
43
+ className: "chatgpt-sign-in__button-icon",
44
+ children: busy ? /* @__PURE__ */ jsx(SpinnerIcon, { size: 16 }) : /* @__PURE__ */ jsx(ProviderLogo, {
45
+ provider: "openai",
46
+ className: "chatgpt-sign-in__logo"
47
+ })
48
+ }), /* @__PURE__ */ jsx("span", {
49
+ className: "chatgpt-sign-in__button-label",
50
+ children: label
51
+ })]
52
+ }) : null),
53
+ error ? /* @__PURE__ */ jsx("p", {
54
+ role: "alert",
55
+ className: "chatgpt-sign-in__error",
56
+ children: error
57
+ }) : null
129
58
  ]
130
- }), /* @__PURE__ */ jsxs("linearGradient", {
131
- id: "chatgpt-sign-in-mark-b",
132
- x1: "452.57",
133
- y1: "524.29",
134
- x2: "583.8",
135
- y2: "641.28",
136
- gradientUnits: "userSpaceOnUse",
137
- children: [
138
- /* @__PURE__ */ jsx("stop", {
139
- offset: "0",
140
- stopColor: "#00ebff"
141
- }),
142
- /* @__PURE__ */ jsx("stop", {
143
- offset: ".24",
144
- stopColor: "#00e8ff"
145
- }),
146
- /* @__PURE__ */ jsx("stop", {
147
- offset: ".38",
148
- stopColor: "#00e0ff"
149
- }),
150
- /* @__PURE__ */ jsx("stop", {
151
- offset: ".5",
152
- stopColor: "#00d1ff"
153
- }),
154
- /* @__PURE__ */ jsx("stop", {
155
- offset: ".61",
156
- stopColor: "#00bdff"
157
- }),
158
- /* @__PURE__ */ jsx("stop", {
159
- offset: ".71",
160
- stopColor: "#00a3ff"
161
- }),
162
- /* @__PURE__ */ jsx("stop", {
163
- offset: ".8",
164
- stopColor: "#0082ff"
165
- }),
166
- /* @__PURE__ */ jsx("stop", {
167
- offset: ".88",
168
- stopColor: "#005cff"
169
- }),
170
- /* @__PURE__ */ jsx("stop", {
171
- offset: ".96",
172
- stopColor: "#0030ff"
173
- }),
174
- /* @__PURE__ */ jsx("stop", {
175
- offset: "1",
176
- stopColor: "#0118ff"
177
- })
178
- ]
179
- })] }),
180
- /* @__PURE__ */ jsx("path", {
181
- fill: "url(#chatgpt-sign-in-mark-a)",
182
- d: "M746.99,482.75l-145.57-84.52,60.02-34.87,71.05,41.28c8.95,5.2,14.47,14.78,14.47,25.13l.03,52.97Z"
183
- }),
184
- /* @__PURE__ */ jsx("path", {
185
- fill: "url(#chatgpt-sign-in-mark-b)",
186
- d: "M602.51,601.74l-60.02,34.87-29.12-16.94-45.85-26.63c-8.96-5.2-14.47-14.78-14.48-25.14l-.03-53,59.5,34.57.79.46,89.21,51.8Z"
187
- }),
188
- /* @__PURE__ */ jsx("path", {
189
- fill: "#00e4ff",
190
- d: "M732.58,595.89l-115.46,67.09c-9.03,5.25-20.19,5.25-29.22,0l-45.41-26.38,60.02-34.87,84.29-48.96-.07-84.18,60.29,35.03.03,67.1c0,10.37-5.51,19.95-14.47,25.16Z"
191
- }),
192
- /* @__PURE__ */ jsx("path", {
193
- fill: "#00e4ff",
194
- d: "M661.44,363.37l-60.02,34.87-88.19,51.21.07,79.61-60.32-35.03-.03-62.5c0-10.37,5.51-19.95,14.48-25.16l119.39-69.35c9.03-5.24,20.17-5.25,29.2,0l45.42,26.36Z"
195
- }),
196
- /* @__PURE__ */ jsx("path", {
197
- fill: "#00e4ff",
198
- d: "M599.5,506.65c0-2.14.02-4.27.03-6.41,0-.21,0-.43-.03-.63-.11-1.25-.63-2.14-1.85-2.84-3.45-1.98-6.85-4.04-10.25-6.1-.82-.5-1.5-.12-2.26.09-1.72.49-3.28.23-4.49-1.21-1.1-1.33-1.22-3.27-.35-4.81.81-1.43,2.46-2.17,4.23-1.89,1.63.23,3.07,1.5,3.3,3.23.15,1.31.81,1.98,1.88,2.59,2.55,1.46,5.07,3.04,7.6,4.56.52.31,1.04.92,1.68.61.75-.35.5-1.19.5-1.85.02-16.68,0-33.35,0-50.03v-4.62l-2.5-1.4c-.21-.08-.47-.2-.79-.38-2.06-1.16-4.1-2.32-6.16-3.48l-.9-.5c-1.75-.99-3.49-2-5.23-3.01-.88-.52-1.57-.55-2.49-.03-4.81,2.7-9.63,5.34-14.48,7.95-1.1.6-1.54,1.34-1.53,2.58.05,3.8.06,7.61.03,11.41-.02,1.17.31,2,1.25,2.78,1.94,1.6,2.03,4.52.34,6.18-1.62,1.6-4.36,1.54-5.98-.14-1.57-1.63-1.39-4.5.52-6.06.84-.69,1.14-1.45,1.13-2.49-.03-3.36.05-6.7-.27-10.04-.12-1.28-.53-1.43-1.6-.84-4.1,2.29-8.22,4.61-12.39,6.79-1.43.75-1.86,1.74-1.8,3.27.2,4.88.31,9.76.38,14.65.02,1.11.5,1.77,1.4,2.32,4.85,2.94,9.7,5.9,14.51,8.91.96.59,1.72.58,2.67.06,4.46-2.4,8.91-4.79,13.4-7.11,1.27-.66,1.77-1.56,1.79-2.98.05-4.36-.15-8.74.18-13.11.06-.87-.44-1.34-1.02-1.83-2.11-1.83-2.32-4.39-.55-6.29,1.51-1.65,4.38-1.62,5.97.05,1.72,1.8,1.56,4.41-.47,6.15-.72.63-1.04,1.25-1.05,2.18-.09,4.88-.29,9.76-.29,14.63.02,1.71-.67,2.52-2.11,3.25-4.91,2.5-9.75,5.13-14.63,7.69-.82.43-1.31.99-1.36,1.97-.21,4.99-.44,9.98-.72,14.97-.09,1.37.44,2.17,1.62,2.85,5.61,3.23,11.15,6.58,16.75,9.81,1.22.7,1.8,1.51,1.79,2.96-.06,6.03-.05,12.05.03,18.07.02,1.37-.49,2.2-1.66,2.87-4.68,2.67-9.31,5.43-13.98,8.13-.87.5-1.39,1.1-1.46,2.12-.12,1.33-.73,2.36-1.97,2.99-1.68.84-3.69.53-4.87-.75-1.28-1.37-1.59-3.25-.76-4.7,1.01-1.77,2.93-2.56,4.97-1.98.84.23,1.56.53,2.43.02,4.44-2.64,8.91-5.23,13.38-7.83.82-.47,1.19-1.11,1.19-2.08-.05-5.17-.06-10.34-.06-15.52,0-1.01-.38-1.71-1.27-2.23-5.57-3.28-11.15-6.58-16.71-9.89-.67-.4-1.24-.38-1.91.03-4.67,2.79-9.35,5.58-14.04,8.35-.88.53-1.42,1.19-1.59,2.26-.23,1.43-1.08,2.49-2.52,2.96-1.79.6-3.77.03-4.76-1.33-1.05-1.45-1.08-3.54-.06-4.94,1.04-1.43,2.9-2.04,4.73-1.45.93.32,1.71.6,2.7-.02,4.5-2.76,9.05-5.45,13.61-8.12.92-.53,1.4-1.19,1.46-2.27.26-5.05.58-10.09.9-15.12.08-1.1-.35-1.77-1.31-2.35-4.9-2.96-9.8-5.95-14.65-8.99-.87-.55-1.57-.47-2.38-.03-5.39,2.94-10.77,5.87-16.16,8.8-1.05.56-1.59,1.36-1.59,2.58.03,4.55-.02,9.09.02,13.64.02,1.68.4,1.86,2,1.08,2.72-1.3,5.42-2.62,8.15-3.89,1.04-.47,1.66-1.1,1.94-2.32.56-2.53,3.1-3.88,5.36-3.08,2.21.78,3.33,3.02,2.61,5.2-.72,2.18-3.17,3.36-5.57,2.49-.93-.32-1.68-.4-2.58.05-3.36,1.68-6.73,3.31-10.13,4.88-1.31.61-1.83,1.5-1.8,2.93.05,4.71.11,9.43-.03,14.14-.06,1.98.7,3.11,2.32,4.1,4.64,2.88,9.2,5.86,13.75,8.88,1.02.67,1.89.81,2.98.23,3.04-1.66,6.1-3.3,9.17-4.9.79-.43,1.08-1.02,1.17-1.91.24-2.44,2.33-4.15,4.53-3.81,2.43.38,4.01,2.65,3.48,4.97-.55,2.38-2.79,3.72-5.2,3.01-.96-.29-1.75-.21-2.61.24-3.05,1.65-6.12,3.27-9.19,4.87-.98.5-1.39,1.24-1.31,2.33.15,2.15.21,4.3.4,6.45.26,3.28.61,6.55.9,9.83.08.93.5,1.59,1.31,2.04,4.97,2.85,9.95,5.72,14.91,8.59.81.46,1.57.5,2.41.03,3.1-1.79,6.21-3.57,9.34-5.28,1.17-.66,1.92-1.45,2.2-2.82.26-1.36,1.13-2.35,2.56-2.65,1.98-.43,3.78.21,4.62,1.74.82,1.51.81,3.07-.2,4.5-1.02,1.46-2.79,2-4.73,1.27-1.16-.44-2.08-.31-3.07.27-2.4,1.4-4.84,2.76-7.23,4.17-1.48.88-1.46,1.34.05,2.23,4.13,2.38,8.3,4.71,12.42,7.11,1.08.63,2.04.7,3.17.06,4.46-2.52,8.93-4.97,13.41-7.42.84-.46,1.28-1.07,1.4-1.92.03-.18.03-.35.03-.55-.02-1.51-.03-3.02-.03-4.53v-50.29Z"
199
- }),
200
- /* @__PURE__ */ jsx("path", {
201
- fill: "#00e4ff",
202
- d: "M655.42,487.9c-1.16,1.43-1.05,3.68,0,5.11,1.05,1.45,3.16,2.2,5.05,1.53,1.14-.41,2.04-.26,3.07.26,2.88,1.45,5.8,2.85,8.74,4.21,1.17.53,1.68,1.31,1.66,2.64-.06,4.71-.05,9.43-.02,14.14,0,1.16-.29,2.08-1.33,2.75-4.59,2.91-9.19,5.87-13.75,8.85-.85.56-1.57.63-2.5.11-2.27-1.28-4.59-2.49-6.93-3.66-1.42-.72-2.47-1.53-2.81-3.28-.37-1.89-1.89-2.93-3.78-3.23-1.75-.27-3.08.58-4.1,1.91-1.24,1.6-1.25,3.4-.11,5.05,1.14,1.66,3.11,2.53,4.87,1.91,1.05-.37,1.86-.18,2.75.29,2.75,1.48,5.49,2.96,8.27,4.39.95.49,1.25,1.08,1.14,2.17-.44,4.75-.84,9.49-1.14,14.25-.09,1.53-.66,2.5-2,3.25-3.98,2.2-7.93,4.42-11.81,6.79-1.82,1.11-3.36,1.21-5.17.02-2.08-1.37-4.29-2.56-6.5-3.71-1.3-.67-2.09-1.53-2.61-2.93-.87-2.41-3.08-3.54-5.25-2.99-2.35.6-3.74,2.53-3.51,4.94.24,2.59,3.01,4.62,5.54,3.84,1.45-.44,2.61-.27,3.84.5,1.79,1.11,3.65,2.09,5.48,3.11,1.11.63,1.07,1.19,0,1.82-3.91,2.21-7.8,4.44-11.69,6.67-.6.34-1.14.35-1.77.02-4.42-2.43-8.86-4.85-13.3-7.25-.82-.44-1.04-1.13-1.04-1.98,0-5.42,0-10.86-.02-16.28v-21.09c0-7.37.02-14.75-.03-22.12,0-1.24.44-2.01,1.5-2.62,2.94-1.71,5.86-3.48,8.76-5.26,1.02-.63,1.92-.84,3.17-.47,2.32.7,4.52-.52,5.39-2.72.75-1.89-.17-4.24-2.11-5.42-1.77-1.07-4.26-.55-5.65,1.21-.24.31-.6.67-.6,1.01-.02,2.24-1.74,3.01-3.3,3.92-1.57.92-3.11,1.88-4.68,2.78-.67.38-1.36,1.3-2.08.9-.82-.46-.37-1.57-.37-2.38-.03-15.61.08-31.23-.11-46.86-.05-3.23.7-5.2,3.78-6.61,3.71-1.68,7.17-3.91,10.71-5.97.93-.55,1.71-.61,2.67-.06,4.5,2.52,9.03,5,13.56,7.48.95.52,1.42,1.19,1.42,2.3,0,3.86-.11,7.72-.34,11.57-.06.82-.47,1.36-.99,1.91-2.09,2.18-2.12,4.59-.15,6.44,1.89,1.79,4.47,1.71,6.23-.17,1.86-1.98,1.72-4.55-.38-6.47-.47-.44-.9-.84-.93-1.54-.14-3.3.11-6.58.32-9.87.09-1.36.96-.76,1.57-.44,3.05,1.65,5.97,3.6,9.14,4.93,3.11,1.31,3.89,3.34,3.62,6.48-.35,3.77-.31,7.58-.38,11.4-.02,1.14-.5,1.89-1.46,2.47-4.47,2.7-8.93,5.42-13.37,8.18-.99.63-1.8.63-2.84.06-4.13-2.26-8.3-4.47-12.48-6.62-1.11-.56-1.56-1.27-1.57-2.52-.03-4.2.2-8.41-.15-12.6-.09-1.02.72-1.46,1.27-2.09,1.43-1.63,1.68-3.72.61-5.34-1.21-1.85-3.3-2.58-5.34-1.88-2.87.96-3.89,4.71-1.69,6.94,1.31,1.34,1.59,2.73,1.56,4.44-.05,3.92.15,7.84-.02,11.75-.11,2.21.84,3.23,2.65,4.13,4.47,2.24,8.83,4.68,13.27,6.97,1.21.63,1.79,1.51,1.79,2.82.03,4.65.29,9.31.66,13.95.06.99-.58,1.39-1.28,1.8-5.52,3.25-11.03,6.56-16.59,9.76-1.16.67-1.79,1.43-1.8,2.81-.05,5.89.06,11.81-.34,17.7-.11,1.4.41,2.32,1.68,3.04,4.33,2.47,8.61,5.07,12.92,7.57,1.19.69,1.98,1.51,2.35,2.93.61,2.38,2.88,3.63,5.28,3.16,2.11-.41,3.8-2.65,3.6-4.75-.24-2.43-2.21-4.53-4.59-4.01-2.91.63-4.9-.78-7.08-2.03-2.81-1.6-5.57-3.3-8.41-4.87-1.22-.69-1.75-1.56-1.71-3.01.12-4.7-.08-9.41.32-14.13.08-.95.38-1.57,1.22-2.04,5.05-2.94,10.09-5.92,15.12-8.9.88-.52,1.68-.49,2.55.03,4.27,2.59,8.56,5.16,12.85,7.72.79.47,1.17,1.11,1.4,2.01.67,2.64,3.11,3.98,5.66,3.23,2.18-.63,3.65-3.22,3.04-5.4-.67-2.47-3.07-3.94-5.57-3.16-1.42.43-2.46.14-3.65-.58-3.78-2.32-7.58-4.58-11.43-6.79-1.21-.69-1.68-1.56-1.79-2.98-.38-4.64-.5-9.29-.78-13.93-.05-.85.2-1.4.9-1.85,4.7-2.88,9.38-5.78,14.05-8.68.64-.4,1.22-.46,1.91-.08,5.08,2.79,10.18,5.55,15.27,8.28,1.24.66,1.8,1.56,1.74,3.01-.15,3.97-.21,7.93-.27,11.9-.02,1.13-.31,1.63-1.51,1.04-2.44-1.21-4.9-2.38-7.37-3.52-.84-.4-1.3-.98-1.6-1.85-.95-2.79-2.53-3.84-5.37-3.54-.96.11-1.57-.05-1.79-1.11.18,1.27-.11,2.17-.87,3.08Z"
59
+ }), secondaryAction ? /* @__PURE__ */ jsx("div", {
60
+ className: "chatgpt-sign-in__secondary-action",
61
+ children: /* @__PURE__ */ jsx(Button, {
62
+ type: "button",
63
+ variant: "ghost",
64
+ color: "neutral",
65
+ size: "xs",
66
+ disabled: secondaryAction.disabled,
67
+ onClick: secondaryAction.onSelect,
68
+ children: secondaryAction.label
69
+ })
70
+ }) : null]
71
+ }), /* @__PURE__ */ jsx("footer", {
72
+ className: "chatgpt-sign-in__footer",
73
+ children: /* @__PURE__ */ jsxs("a", {
74
+ href: "https://sigvelo.com",
75
+ target: "_blank",
76
+ rel: "noopener noreferrer",
77
+ children: ["Powered by ", brandName]
203
78
  })
204
- ]
79
+ })]
205
80
  });
206
81
  }
207
82
  //#endregion
@@ -22,7 +22,6 @@ function CodexModelSelector({ models, selectedModelId = null, onSelectModel, sel
22
22
  const selectedEffort = effortOptions.find((option) => option.reasoningEffort === selectedEffortId);
23
23
  const selectedSpeed = speedOptions.find((option) => option.id === selectedSpeedId);
24
24
  const selectedModelLabel = selectedModel?.displayName ?? "Select model";
25
- const compactModelLabel = selectedModelLabel.replace(/^GPT-([^\s-]+).*$/i, "$1");
26
25
  const selectedEffortLabel = selectedEffort ? formatSettingLabel(selectedEffort.reasoningEffort) : void 0;
27
26
  const selectedSettingsLabel = selectedEffortLabel ? `${selectedModelLabel} · ${selectedEffortLabel}` : selectedModelLabel;
28
27
  function handleSelectModel(modelId) {
@@ -53,12 +52,9 @@ function CodexModelSelector({ models, selectedModelId = null, onSelectModel, sel
53
52
  disabled,
54
53
  "aria-label": ariaLabel,
55
54
  children: [
56
- /* @__PURE__ */ jsxs("span", {
55
+ /* @__PURE__ */ jsx("span", {
57
56
  className: "codex-model-selector__compact",
58
- children: [/* @__PURE__ */ jsx(BrainIcon, { className: "codex-model-selector__compact-icon" }), /* @__PURE__ */ jsx("span", {
59
- className: "codex-model-selector__compact-label",
60
- children: compactModelLabel
61
- })]
57
+ children: /* @__PURE__ */ jsx(BrainIcon, { className: "codex-model-selector__compact-icon" })
62
58
  }),
63
59
  /* @__PURE__ */ jsxs("span", {
64
60
  className: "codex-model-selector__summary sigvelo-truncate",
@@ -1,2 +1,2 @@
1
- import { n as IconButtonProps, t as IconButton } from "../../IconButton-ByiyjkYE.js";
1
+ import { n as IconButtonProps, t as IconButton } from "../../IconButton-CAlFVb2L.js";
2
2
  export { IconButton, IconButtonProps };
@@ -8,17 +8,20 @@ import { jsx, jsxs } from "react/jsx-runtime";
8
8
  * tooltip. Use text buttons for actions whose consequence an icon cannot make
9
9
  * clear on its own.
10
10
  */
11
- function IconButton({ children, label, size = "sm", tooltip = label, tooltipSide = "top", type = "button", ref, ...props }) {
12
- return /* @__PURE__ */ jsxs(Tooltip.Root, { children: [/* @__PURE__ */ jsx(Tooltip.Trigger, {
11
+ function IconButton({ children, label, responsiveLabel, size = "sm", tooltip = label, tooltipSide = "top", type = "button", ref, ...props }) {
12
+ return /* @__PURE__ */ jsxs(Tooltip.Root, { children: [/* @__PURE__ */ jsxs(Tooltip.Trigger, {
13
13
  render: /* @__PURE__ */ jsx(Button, {
14
14
  ref,
15
15
  type,
16
16
  size,
17
- iconOnly: true,
17
+ iconOnly: !responsiveLabel,
18
18
  "aria-label": label,
19
19
  ...props
20
20
  }),
21
- children
21
+ children: [children, responsiveLabel ? /* @__PURE__ */ jsx("span", {
22
+ className: "button__responsive-label",
23
+ children: responsiveLabel
24
+ }) : null]
22
25
  }), /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, {
23
26
  side: tooltipSide,
24
27
  sideOffset: 6,
@@ -1,26 +1,22 @@
1
- import { l as DialogProps } from "../../Dialog-88GF7_Th.js";
2
1
  import * as React from "react";
3
2
 
4
3
  //#region src/components/general-purpose/AccountSignInDialog.d.ts
5
4
  interface AccountSignInDialogProps {
6
- open: boolean;
7
- onOpenChange: DialogProps["onOpenChange"];
8
5
  trigger: React.ReactElement;
9
6
  title: string;
10
7
  description: string;
11
8
  /** Provider-owned sign-in control; credentials never enter the component. */
12
- children: React.ReactNode;
13
- error?: string | null;
9
+ renderControl: (events: {
10
+ onError: (message: string | null) => void;
11
+ onSuccess: () => void;
12
+ }) => React.ReactNode;
14
13
  }
15
14
  /** Shared account-dialog layout surrounding a provider's own sign-in control. */
16
15
  declare function AccountSignInDialog({
17
- open,
18
- onOpenChange,
19
16
  trigger,
20
17
  title,
21
18
  description,
22
- error,
23
- children
19
+ renderControl
24
20
  }: AccountSignInDialogProps): React.JSX.Element;
25
21
  //#endregion
26
22
  export { AccountSignInDialog, AccountSignInDialogProps };
@@ -1,20 +1,28 @@
1
1
  import { Dialog } from "../foundations/Dialog.js";
2
2
  import { Field } from "../foundations/Field.js";
3
- import "react";
3
+ import * as React from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region src/components/general-purpose/AccountSignInDialog.tsx
6
6
  /** Shared account-dialog layout surrounding a provider's own sign-in control. */
7
- function AccountSignInDialog({ open, onOpenChange, trigger, title, description, error, children }) {
7
+ function AccountSignInDialog({ trigger, title, description, renderControl }) {
8
+ const [open, setOpen] = React.useState(false);
9
+ const [error, setError] = React.useState(null);
8
10
  return /* @__PURE__ */ jsxs(Dialog.Root, {
9
11
  open,
10
- onOpenChange,
12
+ onOpenChange: (next) => {
13
+ setError(null);
14
+ setOpen(next);
15
+ },
11
16
  children: [/* @__PURE__ */ jsx(Dialog.Trigger, { render: trigger }), /* @__PURE__ */ jsxs(Dialog.Portal, { children: [/* @__PURE__ */ jsx(Dialog.Backdrop, {}), /* @__PURE__ */ jsx(Dialog.Viewport, { children: /* @__PURE__ */ jsxs(Dialog.Popup, {
12
17
  size: "sm",
13
18
  children: [
14
19
  /* @__PURE__ */ jsxs(Dialog.Header, { children: [/* @__PURE__ */ jsx(Dialog.Title, { children: title }), /* @__PURE__ */ jsx(Dialog.Description, { children: description })] }),
15
20
  /* @__PURE__ */ jsxs("div", {
16
21
  className: "account-sign-in-dialog__control",
17
- children: [children, error ? /* @__PURE__ */ jsx(Field.Errors, { errors: [error] }) : null]
22
+ children: [renderControl({
23
+ onError: setError,
24
+ onSuccess: () => setOpen(false)
25
+ }), error ? /* @__PURE__ */ jsx(Field.Errors, { errors: [error] }) : null]
18
26
  }),
19
27
  /* @__PURE__ */ jsx(Dialog.Footer, { children: /* @__PURE__ */ jsx(Dialog.Close, { children: "Cancel" }) })
20
28
  ]