@mcp-b/react-components 0.20.5 → 0.22.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.
- package/dist/{AgentActivity-D2SHSGFX.d.ts → AgentActivity-D3OvrC02.d.ts} +14 -1
- package/dist/{AgentChat-C-ZyXbJz.d.ts → AgentChat-Bm1qYbOo.d.ts} +24 -1
- package/dist/AgentChatStartScreen-DDZ25aax.d.ts +60 -0
- package/dist/{Button-yRInko9u.d.ts → Button-SBIz6Lqi.d.ts} +2 -1
- package/dist/{CodeBlock-ygtuzqJd.js → CodeBlock-Cp67Njo3.js} +1 -1
- package/dist/{CodeBlock-Bbls1CnA.d.ts → CodeBlock-yMpGqScn.d.ts} +1 -1
- package/dist/Dialog-BD8NBKaE.d.ts +122 -0
- package/dist/{FileTree-CdgfccsM.js → FileTree-DW60q1w7.js} +1 -1
- package/dist/IconButton-CFKhu6OR.d.ts +35 -0
- package/dist/{Message-DzuteocT.js → Message-_-bEYLAO.js} +9 -16
- package/dist/{ModelSelector-pecWyOFI.js → ModelSelector-Brvj9Cab.js} +15 -8
- package/dist/{PromptInput-Cq-8RoXD.d.ts → PromptInput-BjoPWaaG.d.ts} +15 -2
- package/dist/{ThinkChatActivity-CdbL0aoA.d.ts → ThinkChatActivity-2BobmuvR.d.ts} +8 -7
- package/dist/{ThinkChatActivitySummary-D1xOrNrq.d.ts → ThinkChatActivitySummary-kr5fE0wg.d.ts} +14 -5
- package/dist/{ToggleGroup-DNd6cDJZ.d.ts → ToggleGroup-BW1jrhAF.d.ts} +10 -0
- package/dist/{Workspace-CWtust-2.d.ts → Workspace-CIycQ4xE.d.ts} +1 -1
- package/dist/{WorkspaceExplorer-DGigwsgH.d.ts → WorkspaceExplorer-BCipn7Vd.d.ts} +1 -1
- package/dist/{WorkspaceFile-D8Un_xge.d.ts → WorkspaceFile-DMtRMwVv.d.ts} +1 -1
- package/dist/{WorkspaceFileView-Bxx4wEzJ.js → WorkspaceFileView-rUEN2iox.js} +4 -4
- package/dist/assets/think-browser-host.png +0 -0
- package/dist/components/ActionGuide.d.ts +85 -0
- package/dist/components/ActionGuide.js +94 -0
- package/dist/components/Activity.d.ts +33 -17
- package/dist/components/Activity.js +40 -28
- package/dist/components/AgentActivity.d.ts +1 -1
- package/dist/components/AgentActivity.js +3 -11
- package/dist/components/AgentActivityPreview.d.ts +1 -1
- package/dist/components/AgentActivityPreview.js +17 -16
- package/dist/components/AgentAttention.d.ts +1 -1
- package/dist/components/AgentChat.d.ts +1 -1
- package/dist/components/AgentChat.js +169 -136
- package/dist/components/AgentChatStartScreen.d.ts +2 -0
- package/dist/components/AgentChatStartScreen.js +88 -0
- package/dist/components/AgentConnection.d.ts +1 -1
- package/dist/components/AgentConnection.js +2 -2
- package/dist/components/AgentMessageParts.js +1 -1
- package/dist/components/AgentToolDetail.js +1 -1
- package/dist/components/AlertDialog.d.ts +2 -1
- package/dist/components/AlertDialog.js +8 -2
- package/dist/components/AppIcon.d.ts +58 -0
- package/dist/components/AppIcon.js +51 -0
- package/dist/components/AppTopBar.js +9 -10
- package/dist/components/Approval.js +3 -5
- package/dist/components/Artifact.d.ts +3 -7
- package/dist/components/Artifact.js +12 -18
- package/dist/components/Avatar.d.ts +7 -2
- package/dist/components/Avatar.js +4 -2
- package/dist/components/BrowserLiveView.js +6 -8
- package/dist/components/BrowserReplay.js +9 -9
- package/dist/components/BrowserRunPanel.js +2 -2
- package/dist/components/Button.d.ts +1 -1
- package/dist/components/ChainOfThought.d.ts +1 -1
- package/dist/components/ChainOfThought.js +1 -1
- package/dist/components/ChatGptSignInScreen.js +2 -2
- package/dist/components/Checkbox.js +1 -1
- package/dist/components/Checkpoint.js +1 -1
- package/dist/components/CodeBlock.d.ts +1 -1
- package/dist/components/CodeBlock.js +1 -1
- package/dist/components/CodexModelSelector.js +1 -1
- package/dist/components/Commit.d.ts +1 -1
- package/dist/components/Commit.js +3 -3
- package/dist/components/ContextMenu.js +1 -1
- package/dist/components/Conversation.d.ts +3 -24
- package/dist/components/Conversation.js +6 -34
- package/dist/components/Dialog.d.ts +1 -117
- package/dist/components/Dialog.js +9 -1
- package/dist/components/EmptyState.d.ts +46 -0
- package/dist/components/EmptyState.js +50 -0
- package/dist/components/EnvironmentVariables.d.ts +1 -1
- package/dist/components/EnvironmentVariables.js +2 -2
- package/dist/components/FileTree.js +1 -1
- package/dist/components/IconButton.d.ts +1 -31
- package/dist/components/IconButton.js +2 -1
- package/dist/components/Kbd.d.ts +32 -0
- package/dist/components/Kbd.js +34 -0
- package/dist/components/McpConnectionRequest.d.ts +1 -1
- package/dist/components/McpConnectionRequest.js +1 -1
- package/dist/components/McpPluginCatalog.d.ts +86 -0
- package/dist/components/McpPluginCatalog.js +364 -0
- package/dist/components/McpServerPicker.d.ts +2 -2
- package/dist/components/McpServerPicker.js +7 -13
- package/dist/components/MediaPreviewCard.js +1 -1
- package/dist/components/Menubar.js +1 -1
- package/dist/components/Message.d.ts +4 -8
- package/dist/components/Message.js +1 -1
- package/dist/components/MessageScroller.d.ts +1 -1
- package/dist/components/MessageScroller.js +1 -1
- package/dist/components/ModelSelector.d.ts +12 -6
- package/dist/components/ModelSelector.js +2 -2
- package/dist/components/Plan.js +1 -1
- package/dist/components/PricingBillingToggle.js +1 -0
- package/dist/components/PricingPlanCard.d.ts +1 -1
- package/dist/components/PricingPlanCard.js +10 -12
- package/dist/components/PromptInput.d.ts +2 -2
- package/dist/components/PromptInput.js +30 -12
- package/dist/components/Queue.d.ts +1 -1
- package/dist/components/Queue.js +2 -2
- package/dist/components/Reasoning.js +5 -10
- package/dist/components/ResponsiveSidebarShell.js +2 -1
- package/dist/components/SearchField.js +1 -1
- package/dist/components/Select.js +1 -1
- package/dist/components/Sources.js +1 -1
- package/dist/components/StatusPill.d.ts +43 -0
- package/dist/components/StatusPill.js +35 -0
- package/dist/components/Stepper.js +1 -1
- package/dist/components/SubagentRunIndicator.js +1 -1
- package/dist/components/SubagentRunSelector.js +1 -1
- package/dist/components/Task.js +1 -1
- package/dist/components/Terminal.d.ts +3 -3
- package/dist/components/Terminal.js +7 -8
- package/dist/components/TestResults.js +1 -1
- package/dist/components/ThemeModeControl.js +1 -1
- package/dist/components/ThinkChat.d.ts +12 -6
- package/dist/components/ThinkChatActivity.d.ts +2 -2
- package/dist/components/ThinkChatActivity.js +28 -16
- package/dist/components/ThinkChatActivitySummary.d.ts +2 -2
- package/dist/components/ThinkChatActivitySummary.js +67 -64
- package/dist/components/ThinkChatToolPanels.js +1 -1
- package/dist/components/ThinkExecutionDetail.js +5 -5
- package/dist/components/ThinkExecutionStatus.js +1 -1
- package/dist/components/ThinkExecutionWorkbench.js +19 -25
- package/dist/components/ThinkFullApp.d.ts +8 -4
- package/dist/components/ThinkFullApp.js +17 -2
- package/dist/components/ThinkFullAppViewSwitch.d.ts +1 -1
- package/dist/components/ThinkRoutineBrowser.js +3 -2
- package/dist/components/ThinkRoutineForm.js +3 -3
- package/dist/components/ThinkRoutineLibrary.js +2 -2
- package/dist/components/ThinkRoutineRuns.js +4 -3
- package/dist/components/ThinkThreadPicker.js +5 -4
- package/dist/components/Toast.d.ts +12 -2
- package/dist/components/Toast.js +14 -4
- package/dist/components/ToggleGroup.d.ts +1 -1
- package/dist/components/ToggleGroup.js +54 -7
- package/dist/components/ToolInvocation.js +1 -1
- package/dist/components/Tooltip.d.ts +6 -4
- package/dist/components/Tooltip.js +11 -4
- package/dist/components/WebPreview.d.ts +13 -6
- package/dist/components/WebPreview.js +55 -50
- package/dist/components/Workspace.d.ts +1 -1
- package/dist/components/WorkspaceBrowser.d.ts +1 -1
- package/dist/components/WorkspaceBrowser.js +1 -1
- package/dist/components/WorkspaceExplorer.d.ts +3 -3
- package/dist/components/WorkspaceExplorer.js +1 -1
- package/dist/components/WorkspaceFile.d.ts +1 -1
- package/dist/components/WorkspaceFileView.d.ts +1 -1
- package/dist/components/WorkspaceFileView.js +1 -1
- package/dist/components/WorkspaceHeader.js +1 -1
- package/dist/components/icons.d.ts +2 -2
- package/dist/components/icons.js +2 -2
- package/dist/{copy-button-BrvQ7z4W.d.ts → copy-button-EBv_B9F6.d.ts} +2 -2
- package/dist/{copy-button-vo1paUSi.js → copy-button-TWq8nZhc.js} +8 -8
- package/dist/{icons-DyOM0EJs.js → icons-ua6f_GH3.js} +3 -2
- package/dist/{icons-DkRtZmvT.d.ts → icons-wP1yFUXF.d.ts} +6 -1
- package/dist/mcp-server-catalog-DycejaJ5.d.ts +1077 -0
- package/dist/styles/action-guide.css +128 -0
- package/dist/styles/activity-header.css +41 -10
- package/dist/styles/activity.css +26 -4
- package/dist/styles/agent-activity-preview-overlay.css +51 -12
- package/dist/styles/agent-activity-preview.css +23 -53
- package/dist/styles/agent-attention.css +2 -2
- package/dist/styles/agent-chat.css +291 -57
- package/dist/styles/agent-connection.css +8 -8
- package/dist/styles/alert-dialog.css +5 -20
- package/dist/styles/app-icon.css +122 -0
- package/dist/styles/app-top-bar.css +4 -5
- package/dist/styles/approval.css +1 -7
- package/dist/styles/artifact.css +4 -4
- package/dist/styles/avatar.css +13 -0
- package/dist/styles/base-ui-motion.css +1 -1
- package/dist/styles/base.css +94 -3
- package/dist/styles/browser-control-overlay.css +16 -7
- package/dist/styles/browser-live-view.css +5 -38
- package/dist/styles/browser-replay.css +2 -6
- package/dist/styles/browser-run-panel.css +4 -18
- package/dist/styles/button.css +17 -1
- package/dist/styles/card.css +4 -4
- package/dist/styles/chain-of-thought.css +0 -1
- package/dist/styles/chatgpt-sign-in-screen.css +7 -5
- package/dist/styles/checkbox-group.css +3 -3
- package/dist/styles/code-block.css +4 -4
- package/dist/styles/context-menu.css +1 -1
- package/dist/styles/conversation.css +7 -42
- package/dist/styles/description-list.css +4 -4
- package/dist/styles/dialog.css +22 -7
- package/dist/styles/empty-state.css +48 -0
- package/dist/styles/environment-variables.css +4 -4
- package/dist/styles/field.css +2 -2
- package/dist/styles/index.css +6 -0
- package/dist/styles/inline-citation.css +1 -1
- package/dist/styles/kbd.css +40 -0
- package/dist/styles/mcp-plugin-catalog.css +296 -0
- package/dist/styles/mcp-server-picker.css +0 -26
- package/dist/styles/media-preview-card.css +5 -3
- package/dist/styles/message-scroller.css +4 -4
- package/dist/styles/message.css +11 -6
- package/dist/styles/model-selector.css +5 -8
- package/dist/styles/popover.css +1 -1
- package/dist/styles/preview-card.css +1 -1
- package/dist/styles/prompt-input.css +44 -54
- package/dist/styles/queue.css +2 -2
- package/dist/styles/recipes.css +83 -9
- package/dist/styles/resizable-side-panel.css +1 -1
- package/dist/styles/responsive-sidebar-shell.css +19 -14
- package/dist/styles/scrollbars.css +32 -3
- package/dist/styles/search-field.css +9 -0
- package/dist/styles/sources.css +1 -1
- package/dist/styles/status-pill.css +39 -0
- package/dist/styles/stepper.css +2 -2
- package/dist/styles/streamdown.css +13 -12
- package/dist/styles/subagent-run.css +3 -3
- package/dist/styles/switch.css +1 -3
- package/dist/styles/tabs.css +1 -1
- package/dist/styles/task.css +1 -1
- package/dist/styles/terminal.css +2 -2
- package/dist/styles/test-results.css +1 -2
- package/dist/styles/textarea.css +1 -1
- package/dist/styles/theme-mode-control.css +1 -1
- package/dist/styles/think-execution-status.css +4 -23
- package/dist/styles/think-execution-workbench.css +2 -3
- package/dist/styles/think-full-app.css +24 -4
- package/dist/styles/think-routine-library.css +14 -16
- package/dist/styles/think-thread-picker.css +9 -26
- package/dist/styles/toast.css +2 -23
- package/dist/styles/toggle-group.css +76 -3
- package/dist/styles/tooltip.css +1 -2
- package/dist/styles/utilities.css +73 -0
- package/dist/styles/web-preview.css +5 -0
- package/dist/styles/workspace-explorer.css +4 -6
- package/dist/utils/favicon.d.ts +10 -0
- package/dist/utils/favicon.js +18 -0
- package/dist/utils/mcp-server-catalog.d.ts +2 -1078
- package/dist/utils/mcp-server-catalog.js +3 -11
- package/dist/utils/structured-code.d.ts +1 -1
- package/package.json +2 -2
|
@@ -26,9 +26,17 @@ import { Dialog as Dialog$1 } from "@base-ui/react/dialog";
|
|
|
26
26
|
*
|
|
27
27
|
* @see {@link https://base-ui.com/react/components/dialog | Base UI Dialog}
|
|
28
28
|
*/
|
|
29
|
-
function DialogTrigger(props) {
|
|
29
|
+
function DialogTrigger({ render, className, ...props }) {
|
|
30
|
+
const classes = mergeBaseClassName(render == null ? buttonVariants({
|
|
31
|
+
variant: "normal",
|
|
32
|
+
color: "primary",
|
|
33
|
+
size: "sm",
|
|
34
|
+
className: "dialog__trigger"
|
|
35
|
+
}) : "dialog__trigger", className);
|
|
30
36
|
return /* @__PURE__ */ jsx(Dialog$1.Trigger, {
|
|
31
37
|
"data-slot": "dialog-trigger",
|
|
38
|
+
render,
|
|
39
|
+
className: classes,
|
|
32
40
|
...props
|
|
33
41
|
});
|
|
34
42
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/components/EmptyState.d.ts
|
|
4
|
+
interface EmptyStateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
5
|
+
/** Optional glyph above the title, in a quiet circular well. */
|
|
6
|
+
icon?: React.ReactNode;
|
|
7
|
+
/** What is absent, as a short noun phrase. */
|
|
8
|
+
title?: React.ReactNode;
|
|
9
|
+
/** One sentence on how to make it non-empty. */
|
|
10
|
+
description?: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Placeholder for a region that has nothing in it yet.
|
|
14
|
+
*
|
|
15
|
+
* There is no size prop. A one-line "No results" and a full centred block are
|
|
16
|
+
* the same component with different content — pass only `description` for the
|
|
17
|
+
* first and add `icon` and `title` for the second. Filling and centring a
|
|
18
|
+
* region is the container's job, not this component's; set
|
|
19
|
+
* `--sigvelo-recipe-empty-state-padding-block` where a roomier well is wanted.
|
|
20
|
+
*
|
|
21
|
+
* `children` replaces the whole stack, for the cases that need an action.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* <EmptyState description="No runs yet." />
|
|
26
|
+
*
|
|
27
|
+
* <EmptyState
|
|
28
|
+
* icon={<MessageIcon />}
|
|
29
|
+
* title="Start a conversation"
|
|
30
|
+
* description="Ask the agent to inspect, plan, or build."
|
|
31
|
+
* />
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
declare function EmptyState({
|
|
35
|
+
className,
|
|
36
|
+
icon,
|
|
37
|
+
title,
|
|
38
|
+
description,
|
|
39
|
+
children,
|
|
40
|
+
ref,
|
|
41
|
+
...props
|
|
42
|
+
}: EmptyStateProps & {
|
|
43
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
44
|
+
}): React.JSX.Element;
|
|
45
|
+
//#endregion
|
|
46
|
+
export { EmptyState, EmptyStateProps };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
+
import "react";
|
|
3
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/EmptyState.tsx
|
|
5
|
+
/**
|
|
6
|
+
* Placeholder for a region that has nothing in it yet.
|
|
7
|
+
*
|
|
8
|
+
* There is no size prop. A one-line "No results" and a full centred block are
|
|
9
|
+
* the same component with different content — pass only `description` for the
|
|
10
|
+
* first and add `icon` and `title` for the second. Filling and centring a
|
|
11
|
+
* region is the container's job, not this component's; set
|
|
12
|
+
* `--sigvelo-recipe-empty-state-padding-block` where a roomier well is wanted.
|
|
13
|
+
*
|
|
14
|
+
* `children` replaces the whole stack, for the cases that need an action.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <EmptyState description="No runs yet." />
|
|
19
|
+
*
|
|
20
|
+
* <EmptyState
|
|
21
|
+
* icon={<MessageIcon />}
|
|
22
|
+
* title="Start a conversation"
|
|
23
|
+
* description="Ask the agent to inspect, plan, or build."
|
|
24
|
+
* />
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
function EmptyState({ className, icon, title, description, children, ref, ...props }) {
|
|
28
|
+
return /* @__PURE__ */ jsx("div", {
|
|
29
|
+
ref,
|
|
30
|
+
className: cx("empty-state", className),
|
|
31
|
+
...props,
|
|
32
|
+
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
33
|
+
icon ? /* @__PURE__ */ jsx("span", {
|
|
34
|
+
className: "empty-state__icon",
|
|
35
|
+
"aria-hidden": "true",
|
|
36
|
+
children: icon
|
|
37
|
+
}) : null,
|
|
38
|
+
title ? /* @__PURE__ */ jsx("div", {
|
|
39
|
+
className: "empty-state__title",
|
|
40
|
+
children: title
|
|
41
|
+
}) : null,
|
|
42
|
+
description ? /* @__PURE__ */ jsx("div", {
|
|
43
|
+
className: "empty-state__description",
|
|
44
|
+
children: description
|
|
45
|
+
}) : null
|
|
46
|
+
] })
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
export { EmptyState };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import {
|
|
3
|
-
import { t as CopyButton } from "../copy-button-
|
|
2
|
+
import { S as EyeOffIcon, x as EyeIcon } from "../icons-ua6f_GH3.js";
|
|
3
|
+
import { t as CopyButton } from "../copy-button-TWq8nZhc.js";
|
|
4
4
|
import { Badge } from "./Badge.js";
|
|
5
5
|
import { Switch } from "./Switch.js";
|
|
6
6
|
import * as React from "react";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as FileTreeIcon, i as FileTreeFolder, n as FileTreeActions, o as FileTreeName, r as FileTreeFile, t as FileTree } from "../FileTree-
|
|
1
|
+
import { a as FileTreeIcon, i as FileTreeFolder, n as FileTreeActions, o as FileTreeName, r as FileTreeFile, t as FileTree } from "../FileTree-DW60q1w7.js";
|
|
2
2
|
export { FileTree, FileTreeActions, FileTreeFile, FileTreeFolder, FileTreeIcon, FileTreeName };
|
|
@@ -1,32 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as React from "react";
|
|
3
|
-
|
|
4
|
-
//#region src/components/IconButton.d.ts
|
|
5
|
-
interface IconButtonProps extends Omit<ButtonProps, "aria-label" | "children" | "size"> {
|
|
6
|
-
/** Decorative icon rendered inside the square button. */
|
|
7
|
-
children: React.ReactNode;
|
|
8
|
-
/** Accessible name and default tooltip text for the icon-only control. */
|
|
9
|
-
label: string;
|
|
10
|
-
/** Tooltip content when it should differ from the accessible name. */
|
|
11
|
-
tooltip?: React.ReactNode;
|
|
12
|
-
/** Preferred side for the tooltip. */
|
|
13
|
-
tooltipSide?: "top" | "right" | "bottom" | "left";
|
|
14
|
-
/** Square button size. */
|
|
15
|
-
size?: ButtonSize;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* A square, icon-only button with a required accessible name and matching
|
|
19
|
-
* tooltip. Use text buttons for actions whose consequence an icon cannot make
|
|
20
|
-
* clear on its own.
|
|
21
|
-
*/
|
|
22
|
-
declare function IconButton({
|
|
23
|
-
children,
|
|
24
|
-
label,
|
|
25
|
-
size,
|
|
26
|
-
tooltip,
|
|
27
|
-
tooltipSide,
|
|
28
|
-
type,
|
|
29
|
-
...props
|
|
30
|
-
}: IconButtonProps): React.JSX.Element;
|
|
31
|
-
//#endregion
|
|
1
|
+
import { n as IconButtonProps, t as IconButton } from "../IconButton-CFKhu6OR.js";
|
|
32
2
|
export { IconButton, IconButtonProps };
|
|
@@ -8,9 +8,10 @@ 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", ...props }) {
|
|
11
|
+
function IconButton({ children, label, size = "sm", tooltip = label, tooltipSide = "top", type = "button", ref, ...props }) {
|
|
12
12
|
return /* @__PURE__ */ jsxs(Tooltip.Root, { children: [/* @__PURE__ */ jsx(Tooltip.Trigger, {
|
|
13
13
|
render: /* @__PURE__ */ jsx(Button, {
|
|
14
|
+
ref,
|
|
14
15
|
type,
|
|
15
16
|
size,
|
|
16
17
|
iconOnly: true,
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
|
|
3
|
+
//#region src/components/Kbd.d.ts
|
|
4
|
+
type KbdRenderState = {
|
|
5
|
+
slot: "kbd";
|
|
6
|
+
};
|
|
7
|
+
interface KbdProps extends useRender.ComponentProps<"kbd", KbdRenderState> {}
|
|
8
|
+
/**
|
|
9
|
+
* A keyboard key or chord, rendered as a quiet inline chip.
|
|
10
|
+
*
|
|
11
|
+
* The chip draws itself from `currentColor`, so it reads correctly on a page
|
|
12
|
+
* surface, inside a menu row, and on the inverted surface of a tooltip without
|
|
13
|
+
* a variant prop deciding which. Put one key per element; a chord is several
|
|
14
|
+
* elements with separators between them, so a screen reader announces the keys
|
|
15
|
+
* rather than the punctuation.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* <Kbd>⏎</Kbd>
|
|
20
|
+
* <span>
|
|
21
|
+
* <Kbd>⌘</Kbd> <Kbd>K</Kbd>
|
|
22
|
+
* </span>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
declare function Kbd({
|
|
26
|
+
className,
|
|
27
|
+
render,
|
|
28
|
+
ref,
|
|
29
|
+
...props
|
|
30
|
+
}: KbdProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { Kbd, KbdProps };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
3
|
+
//#region src/components/Kbd.tsx
|
|
4
|
+
/**
|
|
5
|
+
* A keyboard key or chord, rendered as a quiet inline chip.
|
|
6
|
+
*
|
|
7
|
+
* The chip draws itself from `currentColor`, so it reads correctly on a page
|
|
8
|
+
* surface, inside a menu row, and on the inverted surface of a tooltip without
|
|
9
|
+
* a variant prop deciding which. Put one key per element; a chord is several
|
|
10
|
+
* elements with separators between them, so a screen reader announces the keys
|
|
11
|
+
* rather than the punctuation.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <Kbd>⏎</Kbd>
|
|
16
|
+
* <span>
|
|
17
|
+
* <Kbd>⌘</Kbd> <Kbd>K</Kbd>
|
|
18
|
+
* </span>
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
function Kbd({ className, render, ref, ...props }) {
|
|
22
|
+
return useRender({
|
|
23
|
+
defaultTagName: "kbd",
|
|
24
|
+
render,
|
|
25
|
+
ref,
|
|
26
|
+
props: {
|
|
27
|
+
...props,
|
|
28
|
+
className: cx("kbd", className)
|
|
29
|
+
},
|
|
30
|
+
state: { slot: "kbd" }
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { Kbd };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { A as McpIcon, K as SpinnerIcon, Q as WarningIcon, u as CheckIcon } from "../icons-DyOM0EJs.js";
|
|
3
2
|
import { Button } from "./Button.js";
|
|
3
|
+
import { $ as WarningIcon, d as CheckIcon, j as McpIcon, q as SpinnerIcon } from "../icons-ua6f_GH3.js";
|
|
4
4
|
import { AgentAttention, AgentAttentionActions, AgentAttentionBody, AgentAttentionHeader } from "./AgentAttention.js";
|
|
5
5
|
import { getMcpServerEntry, getMcpServerRuntimeState } from "../utils/mcp-server-catalog.js";
|
|
6
6
|
import { DescriptionList } from "./DescriptionList.js";
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { o as McpServerCard } from "../mcp-server-catalog-DycejaJ5.js";
|
|
2
|
+
import { l as DialogProps } from "../Dialog-BD8NBKaE.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { MCPServersState } from "agents";
|
|
5
|
+
|
|
6
|
+
//#region src/components/McpPluginCatalog.d.ts
|
|
7
|
+
/** Optional plugin-specific copy layered over the canonical MCP server card. */
|
|
8
|
+
interface McpPluginDetails {
|
|
9
|
+
developerName?: string;
|
|
10
|
+
marketplaceName?: string;
|
|
11
|
+
longDescription?: string;
|
|
12
|
+
capabilities?: readonly string[];
|
|
13
|
+
skills?: readonly string[];
|
|
14
|
+
}
|
|
15
|
+
interface McpPluginCatalogProps extends Omit<React.HTMLAttributes<HTMLElement>, "onSelect"> {
|
|
16
|
+
/** Canonical connector cards. The directory does not create a second plugin registry. */
|
|
17
|
+
servers: readonly McpServerCard[];
|
|
18
|
+
/** Upstream Agents MCP state used to project connected and recovery states. */
|
|
19
|
+
mcp?: MCPServersState;
|
|
20
|
+
/** Optional plugin metadata keyed by the canonical server ID. */
|
|
21
|
+
detailsByServerId?: Readonly<Record<string, McpPluginDetails | undefined>>;
|
|
22
|
+
/** Server IDs promoted into the Featured section, in display order. */
|
|
23
|
+
featuredServerIds?: readonly string[];
|
|
24
|
+
/** Host product name paired with the plugin in the connection dialog. */
|
|
25
|
+
brandName?: string;
|
|
26
|
+
/** Host product mark paired with the plugin in the connection dialog. */
|
|
27
|
+
brandLogo?: React.ReactNode;
|
|
28
|
+
/** Product-authored trust and data-sharing copy. Pass null to omit it. */
|
|
29
|
+
disclosure?: React.ReactNode;
|
|
30
|
+
/** Starts or recovers the existing MCP connection path. */
|
|
31
|
+
onConnect?: (server: McpServerCard) => void | Promise<void>;
|
|
32
|
+
/** Removes the exact upstream MCP entry. */
|
|
33
|
+
onDisconnect?: (serverId: string) => void | Promise<void>;
|
|
34
|
+
heading?: React.ReactNode;
|
|
35
|
+
description?: React.ReactNode;
|
|
36
|
+
searchLabel?: string;
|
|
37
|
+
emptyMessage?: React.ReactNode;
|
|
38
|
+
}
|
|
39
|
+
interface McpPluginDetailsDialogProps {
|
|
40
|
+
/** Selected canonical server card. Passing null closes the dialog. */
|
|
41
|
+
server: McpServerCard | null;
|
|
42
|
+
details?: McpPluginDetails;
|
|
43
|
+
mcp?: MCPServersState;
|
|
44
|
+
brandName?: string;
|
|
45
|
+
brandLogo?: React.ReactNode;
|
|
46
|
+
disclosure?: React.ReactNode;
|
|
47
|
+
onConnect?: (server: McpServerCard) => void | Promise<void>;
|
|
48
|
+
onDisconnect?: (serverId: string) => void | Promise<void>;
|
|
49
|
+
onOpenChange: NonNullable<DialogProps["onOpenChange"]>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Searchable plugin directory backed by the same MCP cards and live Agents
|
|
53
|
+
* state as {@link McpServerPicker}. Selecting a row opens the shared details
|
|
54
|
+
* dialog; connecting still delegates to the host's existing MCP/OAuth path.
|
|
55
|
+
*/
|
|
56
|
+
declare function McpPluginCatalog({
|
|
57
|
+
servers,
|
|
58
|
+
mcp,
|
|
59
|
+
detailsByServerId,
|
|
60
|
+
featuredServerIds,
|
|
61
|
+
brandName,
|
|
62
|
+
brandLogo,
|
|
63
|
+
disclosure,
|
|
64
|
+
onConnect,
|
|
65
|
+
onDisconnect,
|
|
66
|
+
heading,
|
|
67
|
+
description,
|
|
68
|
+
searchLabel,
|
|
69
|
+
emptyMessage,
|
|
70
|
+
className,
|
|
71
|
+
...props
|
|
72
|
+
}: McpPluginCatalogProps): React.JSX.Element;
|
|
73
|
+
/** Reference-derived plugin detail surface without a parallel install state. */
|
|
74
|
+
declare function McpPluginDetailsDialog({
|
|
75
|
+
server,
|
|
76
|
+
details,
|
|
77
|
+
mcp,
|
|
78
|
+
brandName,
|
|
79
|
+
brandLogo,
|
|
80
|
+
disclosure,
|
|
81
|
+
onConnect,
|
|
82
|
+
onDisconnect,
|
|
83
|
+
onOpenChange
|
|
84
|
+
}: McpPluginDetailsDialogProps): React.JSX.Element;
|
|
85
|
+
//#endregion
|
|
86
|
+
export { McpPluginCatalog, McpPluginCatalogProps, McpPluginDetails, McpPluginDetailsDialog, McpPluginDetailsDialogProps };
|