@mcp-b/react-components 0.5.3 → 0.5.4
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/{CodeBlock-D-a84xBL.js → CodeBlock-BK0sOAbV.js} +1 -1
- package/dist/{FileTree-D8rtTLgK.js → FileTree-BWQZ0FSi.js} +1 -1
- package/dist/components/Activity.js +1 -1
- package/dist/components/AgentChat.js +1 -1
- package/dist/components/AgentConnection.js +2 -2
- package/dist/components/Artifact.js +1 -1
- package/dist/components/BrowserLiveView.js +1 -1
- package/dist/components/BrowserReplay.js +1 -1
- package/dist/components/ChainOfThought.d.ts +1 -1
- package/dist/components/ChainOfThought.js +1 -1
- package/dist/components/CodeBlock.js +1 -1
- package/dist/components/Commit.js +1 -1
- package/dist/components/ContextMenu.js +1 -1
- package/dist/components/Conversation.js +1 -1
- package/dist/components/Dialog.js +1 -1
- package/dist/components/EnvironmentVariables.js +1 -1
- package/dist/components/FileTree.js +1 -1
- package/dist/components/McpServerPicker.d.ts +34 -0
- package/dist/components/McpServerPicker.js +133 -0
- package/dist/components/Menubar.js +1 -1
- package/dist/components/Message.js +1 -1
- package/dist/components/ModelSelector.js +1 -1
- package/dist/components/NavigationMenu.js +1 -1
- package/dist/components/PromptInput.js +3 -3
- package/dist/components/Queue.js +1 -1
- package/dist/components/Reasoning.js +1 -1
- package/dist/components/Select.js +1 -1
- package/dist/components/Sources.js +1 -1
- package/dist/components/Stepper.js +1 -1
- package/dist/components/Task.js +1 -1
- package/dist/components/Terminal.js +2 -2
- package/dist/components/TestResults.js +1 -1
- package/dist/components/ThinkChat.js +1 -1
- package/dist/components/WebPreview.js +1 -1
- package/dist/components/WorkspaceExplorer.js +3 -3
- package/dist/components/icons.d.ts +2 -2
- package/dist/components/icons.js +2 -2
- package/dist/{copy-button-BmJEAKuP.js → copy-button-CB2MWcau.js} +1 -1
- package/dist/{icons-CZRH4FVH.js → icons-BCNawx-T.js} +5 -1
- package/dist/{icons-CmO7-pNY.d.ts → icons-BYpJY6L2.d.ts} +2 -1
- package/dist/styles/agent-chat.css +5 -0
- package/dist/styles/index.css +1 -0
- package/dist/styles/mcp-server-picker.css +138 -0
- package/package.json +7 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "./class-names-9UtZwb0J.js";
|
|
2
2
|
import { Select, SelectContent, SelectItem, SelectList, SelectTrigger, SelectValue } from "./components/Select.js";
|
|
3
|
-
import { t as CopyButton } from "./copy-button-
|
|
3
|
+
import { t as CopyButton } from "./copy-button-CB2MWcau.js";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { createHighlighter } from "shiki";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "./class-names-9UtZwb0J.js";
|
|
2
|
-
import { c as ChevronRightIcon, g as FolderOpenIcon, h as FolderIcon, m as FileIcon } from "./icons-
|
|
2
|
+
import { c as ChevronRightIcon, g as FolderOpenIcon, h as FolderIcon, m as FileIcon } from "./icons-BCNawx-T.js";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/_internal/use-file-tree-nav.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger } from "./Collapsible.js";
|
|
2
2
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
3
|
-
import { c as ChevronRightIcon } from "../icons-
|
|
3
|
+
import { c as ChevronRightIcon } from "../icons-BCNawx-T.js";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/Activity.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import { D as
|
|
2
|
+
import { D as PlusIcon, O as RefreshIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Activity, ActivityContent, ActivityPanel, ActivityTrigger } from "./Activity.js";
|
|
4
4
|
import { Context, ContextContent, ContextContentBody, ContextContentHeader, ContextTrigger, getContextUsage, getContextUsedTokens } from "./Context.js";
|
|
5
5
|
import { Conversation, ConversationContent, ConversationEmptyState, ConversationScrollButton } from "./Conversation.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import { y as LinkIcon } from "../icons-
|
|
2
|
+
import { y as LinkIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Popover } from "./Popover.js";
|
|
4
4
|
import { Button } from "./Button.js";
|
|
5
|
-
import { a as CodeBlockCopyButton, i as CodeBlockContent, n as CodeBlockActions, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock } from "../CodeBlock-
|
|
5
|
+
import { a as CodeBlockCopyButton, i as CodeBlockContent, n as CodeBlockActions, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock } from "../CodeBlock-BK0sOAbV.js";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
//#region src/components/AgentConnection.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import {
|
|
2
|
+
import { F as XIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { Tooltip, TooltipPopup, TooltipPortal, TooltipPositioner, TooltipTrigger } from "./Tooltip.js";
|
|
5
5
|
import "react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import {
|
|
2
|
+
import { A as SpinnerIcon, b as MaximizeIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { Dialog, DialogContent, DialogTitle } from "./Dialog.js";
|
|
5
5
|
import { Badge } from "./Badge.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import {
|
|
2
|
+
import { E as PlayIcon, w as PauseIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { Slider, SliderControl, SliderIndicator, SliderThumb, SliderTrack } from "./Slider.js";
|
|
5
5
|
import * as React from "react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CollapsiblePanelProps, CollapsibleRootProps, CollapsibleTriggerProps } from "./Collapsible.js";
|
|
2
|
-
import { _ as IconProps } from "../icons-
|
|
2
|
+
import { _ as IconProps } from "../icons-BYpJY6L2.js";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/ChainOfThought.d.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger } from "./Collapsible.js";
|
|
2
2
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
3
|
-
import {
|
|
3
|
+
import { A as SpinnerIcon, a as CheckIcon, c as ChevronRightIcon, u as DotIcon } from "../icons-BCNawx-T.js";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/ChainOfThought.tsx
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as CodeBlockCopyButton, c as CodeBlockLanguageSelector, d as CodeBlockLanguageSelectorTrigger, f as CodeBlockLanguageSelectorValue, h as CODE_BLOCK_LANGUAGES, i as CodeBlockContent, l as CodeBlockLanguageSelectorContent, m as highlightCode, n as CodeBlockActions, o as CodeBlockFilename, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock, u as CodeBlockLanguageSelectorItem } from "../CodeBlock-
|
|
1
|
+
import { a as CodeBlockCopyButton, c as CodeBlockLanguageSelector, d as CodeBlockLanguageSelectorTrigger, f as CodeBlockLanguageSelectorValue, h as CODE_BLOCK_LANGUAGES, i as CodeBlockContent, l as CodeBlockLanguageSelectorContent, m as highlightCode, n as CodeBlockActions, o as CodeBlockFilename, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock, u as CodeBlockLanguageSelectorItem } from "../CodeBlock-BK0sOAbV.js";
|
|
2
2
|
export { CODE_BLOCK_LANGUAGES, CodeBlock, CodeBlockActions, CodeBlockContainer, CodeBlockContent, CodeBlockCopyButton, CodeBlockFilename, CodeBlockHeader, CodeBlockLanguageSelector, CodeBlockLanguageSelectorContent, CodeBlockLanguageSelectorItem, CodeBlockLanguageSelectorTrigger, CodeBlockLanguageSelectorValue, CodeBlockTitle, highlightCode };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger } from "./Collapsible.js";
|
|
2
2
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
3
|
-
import { a as CheckIcon, c as ChevronRightIcon, l as CopyIcon, m as FileIcon } from "../icons-
|
|
3
|
+
import { a as CheckIcon, c as ChevronRightIcon, l as CopyIcon, m as FileIcon } from "../icons-BCNawx-T.js";
|
|
4
4
|
import { Button } from "./Button.js";
|
|
5
5
|
import { Tooltip, TooltipPopup, TooltipPortal, TooltipPositioner, TooltipTrigger } from "./Tooltip.js";
|
|
6
6
|
import { Avatar } from "./Avatar.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as CheckIcon, c as ChevronRightIcon, u as DotIcon } from "../icons-
|
|
1
|
+
import { a as CheckIcon, c as ChevronRightIcon, u as DotIcon } from "../icons-BCNawx-T.js";
|
|
2
2
|
import "react";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { ContextMenu as ContextMenu$1 } from "@base-ui/react/context-menu";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import { d as DownloadIcon, t as ArrowDownIcon } from "../icons-
|
|
2
|
+
import { d as DownloadIcon, t as ArrowDownIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { useStickToBottom } from "./useStickToBottom.js";
|
|
5
5
|
import * as React from "react";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import { a as CheckIcon, f as EyeIcon, l as CopyIcon, p as EyeOffIcon } from "../icons-
|
|
2
|
+
import { a as CheckIcon, f as EyeIcon, l as CopyIcon, p as EyeOffIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { Tooltip, TooltipPopup, TooltipPortal, TooltipPositioner, TooltipTrigger } from "./Tooltip.js";
|
|
5
5
|
import { Badge } from "./Badge.js";
|
|
@@ -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-BWQZ0FSi.js";
|
|
2
2
|
export { FileTree, FileTreeActions, FileTreeFile, FileTreeFolder, FileTreeIcon, FileTreeName };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Icon } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
|
|
4
|
+
//#region src/components/McpServerPicker.d.ts
|
|
5
|
+
type McpServerPickerStatus = "connecting" | "needs-auth" | "authenticating" | "ready" | "failed";
|
|
6
|
+
interface McpServerCard {
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
url: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
category?: string;
|
|
12
|
+
icon?: React.ReactNode | string | Icon;
|
|
13
|
+
status?: McpServerPickerStatus;
|
|
14
|
+
statusLabel?: string;
|
|
15
|
+
}
|
|
16
|
+
interface McpServerPickerProps {
|
|
17
|
+
/** MCP servers to show in the plus-menu picker. */
|
|
18
|
+
servers: readonly McpServerCard[];
|
|
19
|
+
/** Called when the user chooses a server; hosts own OAuth and connection state. */
|
|
20
|
+
onConnect: (server: McpServerCard) => void | Promise<void>;
|
|
21
|
+
/** Offset from the plus trigger to the menu, useful for prompt composers. */
|
|
22
|
+
sideOffset?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Prompt plus-menu picker for choosing an MCP server and handing connection
|
|
26
|
+
* work back to the host app.
|
|
27
|
+
*/
|
|
28
|
+
declare function McpServerPicker({
|
|
29
|
+
servers,
|
|
30
|
+
onConnect,
|
|
31
|
+
sideOffset
|
|
32
|
+
}: McpServerPickerProps): React.JSX.Element;
|
|
33
|
+
//#endregion
|
|
34
|
+
export { McpServerCard, McpServerPicker, McpServerPickerProps, McpServerPickerStatus };
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { A as SpinnerIcon, D as PlusIcon, N as WarningIcon, a as CheckIcon } from "../icons-BCNawx-T.js";
|
|
2
|
+
import { Button } from "./Button.js";
|
|
3
|
+
import { MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuRoot, MenuShortcut, MenuTrigger } from "./Menu.js";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/McpServerPicker.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Prompt plus-menu picker for choosing an MCP server and handing connection
|
|
9
|
+
* work back to the host app.
|
|
10
|
+
*/
|
|
11
|
+
function McpServerPicker({ servers, onConnect, sideOffset = 80 }) {
|
|
12
|
+
const groups = groupServers(servers);
|
|
13
|
+
const showHeadings = groups.some((group) => group.category);
|
|
14
|
+
return /* @__PURE__ */ jsx("div", {
|
|
15
|
+
className: "mcp-server-picker",
|
|
16
|
+
children: /* @__PURE__ */ jsxs(MenuRoot, { children: [/* @__PURE__ */ jsx(MenuTrigger, { render: /* @__PURE__ */ jsx(Button, {
|
|
17
|
+
type: "button",
|
|
18
|
+
variant: "ghost",
|
|
19
|
+
color: "neutral",
|
|
20
|
+
size: "icon-xs",
|
|
21
|
+
className: "mcp-server-picker__trigger",
|
|
22
|
+
"aria-label": "Add MCP server",
|
|
23
|
+
children: /* @__PURE__ */ jsx(PlusIcon, {})
|
|
24
|
+
}) }), /* @__PURE__ */ jsx(MenuContent, {
|
|
25
|
+
side: "top",
|
|
26
|
+
align: "start",
|
|
27
|
+
sideOffset,
|
|
28
|
+
collisionPadding: 8,
|
|
29
|
+
"aria-label": "MCP servers",
|
|
30
|
+
className: "mcp-server-picker__popup",
|
|
31
|
+
children: servers.length === 0 ? /* @__PURE__ */ jsx(MenuItem, {
|
|
32
|
+
disabled: true,
|
|
33
|
+
className: "mcp-server-picker__empty",
|
|
34
|
+
children: "No MCP servers available."
|
|
35
|
+
}) : groups.map((group) => /* @__PURE__ */ jsxs(MenuGroup, {
|
|
36
|
+
className: "mcp-server-picker__group",
|
|
37
|
+
children: [showHeadings ? /* @__PURE__ */ jsx(MenuGroupLabel, { children: group.category || "Servers" }) : null, group.servers.map((server) => /* @__PURE__ */ jsx(McpServerPickerRow, {
|
|
38
|
+
server,
|
|
39
|
+
onConnect
|
|
40
|
+
}, server.id))]
|
|
41
|
+
}, group.category))
|
|
42
|
+
})] })
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function McpServerPickerRow({ server, onConnect }) {
|
|
46
|
+
const descriptionId = React.useId();
|
|
47
|
+
const statusText = server.statusLabel ?? getStatusLabel(server.status);
|
|
48
|
+
const busy = server.status === "connecting" || server.status === "authenticating";
|
|
49
|
+
return /* @__PURE__ */ jsxs(MenuItem, {
|
|
50
|
+
className: "mcp-server-picker__row",
|
|
51
|
+
"data-status": server.status,
|
|
52
|
+
"aria-busy": busy || void 0,
|
|
53
|
+
"aria-describedby": server.description ? descriptionId : void 0,
|
|
54
|
+
onClick: () => void onConnect(server),
|
|
55
|
+
children: [
|
|
56
|
+
/* @__PURE__ */ jsx("span", {
|
|
57
|
+
className: "mcp-server-picker__icon",
|
|
58
|
+
children: renderIcon(server.icon, server.name)
|
|
59
|
+
}),
|
|
60
|
+
/* @__PURE__ */ jsxs("span", {
|
|
61
|
+
className: "mcp-server-picker__copy",
|
|
62
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
63
|
+
className: "mcp-server-picker__name",
|
|
64
|
+
children: server.name
|
|
65
|
+
}), server.description ? /* @__PURE__ */ jsx("span", {
|
|
66
|
+
id: descriptionId,
|
|
67
|
+
className: "mcp-server-picker__description",
|
|
68
|
+
children: server.description
|
|
69
|
+
}) : null]
|
|
70
|
+
}),
|
|
71
|
+
statusText ? /* @__PURE__ */ jsxs(MenuShortcut, {
|
|
72
|
+
className: "mcp-server-picker__meta",
|
|
73
|
+
children: [/* @__PURE__ */ jsx(StatusIcon, { status: server.status }), /* @__PURE__ */ jsx("span", { children: statusText })]
|
|
74
|
+
}) : null
|
|
75
|
+
]
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function StatusIcon({ status }) {
|
|
79
|
+
if (status === "ready") return /* @__PURE__ */ jsx(CheckIcon, { size: 14 });
|
|
80
|
+
if (status === "failed" || status === "needs-auth") return /* @__PURE__ */ jsx(WarningIcon, { size: 14 });
|
|
81
|
+
if (status === "connecting" || status === "authenticating") return /* @__PURE__ */ jsx(SpinnerIcon, {
|
|
82
|
+
className: "mcp-server-picker__spinner",
|
|
83
|
+
size: 14
|
|
84
|
+
});
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
function getStatusLabel(status) {
|
|
88
|
+
if (status === "ready") return "Connected";
|
|
89
|
+
if (status === "failed") return "Failed";
|
|
90
|
+
if (status === "needs-auth") return "Authorize";
|
|
91
|
+
if (status === "authenticating") return "Authenticating";
|
|
92
|
+
if (status === "connecting") return "Connecting";
|
|
93
|
+
return "";
|
|
94
|
+
}
|
|
95
|
+
function renderIcon(icon, name) {
|
|
96
|
+
if (React.isValidElement(icon)) return icon;
|
|
97
|
+
if (typeof icon === "string") return /* @__PURE__ */ jsx(IconImage, { src: icon });
|
|
98
|
+
if (isMcpIcon(icon)) return /* @__PURE__ */ jsx(IconImage, { src: icon.src });
|
|
99
|
+
return /* @__PURE__ */ jsx("span", {
|
|
100
|
+
className: "mcp-server-picker__fallback-icon",
|
|
101
|
+
children: name.slice(0, 1)
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
function IconImage({ src }) {
|
|
105
|
+
return /* @__PURE__ */ jsx("img", {
|
|
106
|
+
src,
|
|
107
|
+
alt: "",
|
|
108
|
+
loading: "lazy",
|
|
109
|
+
decoding: "async",
|
|
110
|
+
referrerPolicy: "no-referrer"
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function isMcpIcon(icon) {
|
|
114
|
+
return Boolean(icon && typeof icon === "object" && "src" in icon && typeof icon.src === "string");
|
|
115
|
+
}
|
|
116
|
+
function groupServers(servers) {
|
|
117
|
+
const groups = [];
|
|
118
|
+
for (const server of servers) {
|
|
119
|
+
const category = server.category ?? "";
|
|
120
|
+
let group = groups.find((candidate) => candidate.category === category);
|
|
121
|
+
if (!group) {
|
|
122
|
+
group = {
|
|
123
|
+
category,
|
|
124
|
+
servers: []
|
|
125
|
+
};
|
|
126
|
+
groups.push(group);
|
|
127
|
+
}
|
|
128
|
+
group.servers.push(server);
|
|
129
|
+
}
|
|
130
|
+
return groups;
|
|
131
|
+
}
|
|
132
|
+
//#endregion
|
|
133
|
+
export { McpServerPicker };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as CheckIcon, c as ChevronRightIcon, u as DotIcon } from "../icons-
|
|
1
|
+
import { a as CheckIcon, c as ChevronRightIcon, u as DotIcon } from "../icons-BCNawx-T.js";
|
|
2
2
|
import "react";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { Menu } from "@base-ui/react/menu";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import { m as FileIcon, n as ArrowLeftIcon, r as ArrowRightIcon } from "../icons-
|
|
2
|
+
import { m as FileIcon, n as ArrowLeftIcon, r as ArrowRightIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { Tooltip, TooltipPopup, TooltipPortal, TooltipPositioner, TooltipTrigger } from "./Tooltip.js";
|
|
5
5
|
import { t as AttachmentPreview } from "../attachment-preview-ChtC3HiU.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import {
|
|
2
|
+
import { k as SearchIcon, o as ChevronDownIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { Dialog, DialogBackdrop, DialogPopup, DialogPortal, DialogTitle, DialogTrigger } from "./Dialog.js";
|
|
5
5
|
import * as React from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as ChevronDownIcon } from "../icons-
|
|
1
|
+
import { o as ChevronDownIcon } from "../icons-BCNawx-T.js";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { NavigationMenu as NavigationMenu$1 } from "@base-ui/react/navigation-menu";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import { A as
|
|
2
|
+
import { A as SpinnerIcon, C as PaperclipIcon, D as PlusIcon, F as XIcon, N as WarningIcon, S as MonitorIcon, T as PencilIcon, i as ArrowUpIcon, j as SquareIcon, m as FileIcon, o as ChevronDownIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { Tooltip, TooltipPopup, TooltipPortal, TooltipPositioner, TooltipTrigger } from "./Tooltip.js";
|
|
5
5
|
import { t as AttachmentPreview } from "../attachment-preview-ChtC3HiU.js";
|
|
@@ -550,7 +550,7 @@ function PromptInputActionMenuItem({ className, ...props }) {
|
|
|
550
550
|
...props
|
|
551
551
|
});
|
|
552
552
|
}
|
|
553
|
-
function PromptInputActionAddAttachments({ label = "
|
|
553
|
+
function PromptInputActionAddAttachments({ label = "Files and folders", onClick, children, ...props }) {
|
|
554
554
|
const attachments = usePromptInputAttachments();
|
|
555
555
|
return /* @__PURE__ */ jsx(PromptInputActionMenuItem, {
|
|
556
556
|
...props,
|
|
@@ -558,7 +558,7 @@ function PromptInputActionAddAttachments({ label = "Add photos or files", onClic
|
|
|
558
558
|
onClick?.(event);
|
|
559
559
|
if (!event.defaultPrevented) attachments.openFileDialog();
|
|
560
560
|
},
|
|
561
|
-
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(
|
|
561
|
+
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(PaperclipIcon, { className: "prompt-input__action-menu-icon" }), label] })
|
|
562
562
|
});
|
|
563
563
|
}
|
|
564
564
|
function PromptInputActionAddScreenshot({ label = "Take screenshot", onClick, children, ...props }) {
|
package/dist/components/Queue.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger } from "./Collapsible.js";
|
|
2
2
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
3
|
-
import { a as CheckIcon, c as ChevronRightIcon, m as FileIcon, u as DotIcon } from "../icons-
|
|
3
|
+
import { a as CheckIcon, c as ChevronRightIcon, m as FileIcon, u as DotIcon } from "../icons-BCNawx-T.js";
|
|
4
4
|
import { Button } from "./Button.js";
|
|
5
5
|
import { Badge } from "./Badge.js";
|
|
6
6
|
import { ScrollArea } from "./ScrollArea.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger } from "./Collapsible.js";
|
|
2
2
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
3
|
-
import { c as ChevronRightIcon } from "../icons-
|
|
3
|
+
import { c as ChevronRightIcon } from "../icons-BCNawx-T.js";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { cjk } from "@streamdown/cjk";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as CheckIcon, i as ArrowUpIcon, t as ArrowDownIcon } from "../icons-
|
|
1
|
+
import { a as CheckIcon, i as ArrowUpIcon, t as ArrowDownIcon } from "../icons-BCNawx-T.js";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { Select as Select$1 } from "@base-ui/react/select";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger } from "./Collapsible.js";
|
|
2
2
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
3
|
-
import { c as ChevronRightIcon, y as LinkIcon } from "../icons-
|
|
3
|
+
import { c as ChevronRightIcon, y as LinkIcon } from "../icons-BCNawx-T.js";
|
|
4
4
|
import "react";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/Sources.tsx
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import {
|
|
2
|
+
import { A as SpinnerIcon, a as CheckIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/Stepper.tsx
|
package/dist/components/Task.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger } from "./Collapsible.js";
|
|
2
2
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
3
|
-
import {
|
|
3
|
+
import { c as ChevronRightIcon, k as SearchIcon, m as FileIcon } from "../icons-BCNawx-T.js";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/Task.tsx
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import {
|
|
2
|
+
import { F as XIcon, M as TerminalIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { Tooltip, TooltipPopup, TooltipPortal, TooltipPositioner, TooltipTrigger } from "./Tooltip.js";
|
|
5
|
-
import { t as CopyButton } from "../copy-button-
|
|
5
|
+
import { t as CopyButton } from "../copy-button-CB2MWcau.js";
|
|
6
6
|
import { Badge } from "./Badge.js";
|
|
7
7
|
import { ScrollArea } from "./ScrollArea.js";
|
|
8
8
|
import * as React from "react";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CollapsiblePanel, CollapsibleRoot, CollapsibleTrigger } from "./Collapsible.js";
|
|
2
2
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
3
|
-
import {
|
|
3
|
+
import { A as SpinnerIcon, F as XIcon, a as CheckIcon, c as ChevronRightIcon } from "../icons-BCNawx-T.js";
|
|
4
4
|
import { Badge } from "./Badge.js";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Activity, ActivityContent, ActivityItem, ActivityItemGroup, ActivityOutput, ActivityPanel, ActivityText, ActivityTrigger } from "./Activity.js";
|
|
2
2
|
import { Tab, TabPanel, Tabs, TabsList } from "./Tabs.js";
|
|
3
3
|
import { AgentChat } from "./AgentChat.js";
|
|
4
|
-
import { t as CodeBlock } from "../CodeBlock-
|
|
4
|
+
import { t as CodeBlock } from "../CodeBlock-BK0sOAbV.js";
|
|
5
5
|
import { BrowserLiveView } from "./BrowserLiveView.js";
|
|
6
6
|
import { BrowserReplay } from "./BrowserReplay.js";
|
|
7
7
|
import { WorkspaceExplorer, inferWorkspaceLanguage, useWorkspace } from "./WorkspaceExplorer.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import {
|
|
2
|
+
import { O as RefreshIcon, n as ArrowLeftIcon, o as ChevronDownIcon, r as ArrowRightIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { Tooltip, TooltipPopup, TooltipPortal, TooltipPositioner, TooltipTrigger } from "./Tooltip.js";
|
|
5
5
|
import { Badge } from "./Badge.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-9UtZwb0J.js";
|
|
2
|
-
import {
|
|
2
|
+
import { O as RefreshIcon, k as SearchIcon, m as FileIcon, n as ArrowLeftIcon } from "../icons-BCNawx-T.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
|
-
import { a as CodeBlockCopyButton, i as CodeBlockContent, n as CodeBlockActions, o as CodeBlockFilename, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock } from "../CodeBlock-
|
|
5
|
-
import { i as FileTreeFolder, r as FileTreeFile, t as FileTree } from "../FileTree-
|
|
4
|
+
import { a as CodeBlockCopyButton, i as CodeBlockContent, n as CodeBlockActions, o as CodeBlockFilename, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock } from "../CodeBlock-BK0sOAbV.js";
|
|
5
|
+
import { i as FileTreeFolder, r as FileTreeFile, t as FileTree } from "../FileTree-BWQZ0FSi.js";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
//#region src/components/WorkspaceExplorer.tsx
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
export { ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CopyIcon, DotIcon, DownloadIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, IconProps, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, MinusIcon, MonitorIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, RefreshIcon, SearchIcon, SpinnerIcon, SquareIcon, TerminalIcon, WarningIcon, WrenchIcon, XIcon };
|
|
1
|
+
import { A as SearchIcon, C as MonitorIcon, D as PlayIcon, E as PencilIcon, F as WrenchIcon, I as XIcon, M as SquareIcon, N as TerminalIcon, O as PlusIcon, P as WarningIcon, S as MinusIcon, T as PauseIcon, _ as IconProps, a as CheckIcon, b as LinkIcon, c as ChevronRightIcon, d as DownloadIcon, f as EyeIcon, g as FolderOpenIcon, h as FolderIcon, i as ArrowUpIcon, j as SpinnerIcon, k as RefreshIcon, l as CopyIcon, m as FileIcon, n as ArrowLeftIcon, o as ChevronDownIcon, p as EyeOffIcon, r as ArrowRightIcon, s as ChevronLeftIcon, t as ArrowDownIcon, u as DotIcon, v as ImageIcon, w as PaperclipIcon, x as MaximizeIcon, y as InfoIcon } from "../icons-BYpJY6L2.js";
|
|
2
|
+
export { ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CopyIcon, DotIcon, DownloadIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, IconProps, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, MinusIcon, MonitorIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, RefreshIcon, SearchIcon, SpinnerIcon, SquareIcon, TerminalIcon, WarningIcon, WrenchIcon, XIcon };
|
package/dist/components/icons.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
export { ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CopyIcon, DotIcon, DownloadIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, MinusIcon, MonitorIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, RefreshIcon, SearchIcon, SpinnerIcon, SquareIcon, TerminalIcon, WarningIcon, WrenchIcon, XIcon };
|
|
1
|
+
import { A as SpinnerIcon, C as PaperclipIcon, D as PlusIcon, E as PlayIcon, F as XIcon, M as TerminalIcon, N as WarningIcon, O as RefreshIcon, P as WrenchIcon, S as MonitorIcon, T as PencilIcon, _ as ImageIcon, a as CheckIcon, b as MaximizeIcon, c as ChevronRightIcon, d as DownloadIcon, f as EyeIcon, g as FolderOpenIcon, h as FolderIcon, i as ArrowUpIcon, j as SquareIcon, k as SearchIcon, l as CopyIcon, m as FileIcon, n as ArrowLeftIcon, o as ChevronDownIcon, p as EyeOffIcon, r as ArrowRightIcon, s as ChevronLeftIcon, t as ArrowDownIcon, u as DotIcon, v as InfoIcon, w as PauseIcon, x as MinusIcon, y as LinkIcon } from "../icons-BCNawx-T.js";
|
|
2
|
+
export { ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CopyIcon, DotIcon, DownloadIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, MinusIcon, MonitorIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, RefreshIcon, SearchIcon, SpinnerIcon, SquareIcon, TerminalIcon, WarningIcon, WrenchIcon, XIcon };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as CheckIcon, l as CopyIcon } from "./icons-
|
|
1
|
+
import { a as CheckIcon, l as CopyIcon } from "./icons-BCNawx-T.js";
|
|
2
2
|
import { Button } from "./components/Button.js";
|
|
3
3
|
import { Tooltip, TooltipPopup, TooltipPortal, TooltipPositioner, TooltipTrigger } from "./components/Tooltip.js";
|
|
4
4
|
import * as React from "react";
|
|
@@ -80,6 +80,10 @@ const FileIcon = (props) => /* @__PURE__ */ jsxs(Icon, {
|
|
|
80
80
|
...props,
|
|
81
81
|
children: [/* @__PURE__ */ jsx("path", { d: "M9 1.5H4A1.5 1.5 0 0 0 2.5 3v10A1.5 1.5 0 0 0 4 14.5h8A1.5 1.5 0 0 0 13.5 13V6L9 1.5Z" }), /* @__PURE__ */ jsx("path", { d: "M9 1.5V6h4.5" })]
|
|
82
82
|
});
|
|
83
|
+
const PaperclipIcon = (props) => /* @__PURE__ */ jsxs(Icon, {
|
|
84
|
+
...props,
|
|
85
|
+
children: [/* @__PURE__ */ jsx("path", { d: "M5.25 8.25 9.9 3.6a2.45 2.45 0 0 1 3.5 3.45l-5.6 5.6a3.25 3.25 0 0 1-4.6-4.6l5.4-5.4" }), /* @__PURE__ */ jsx("path", { d: "M6.6 9.6 11 5.2" })]
|
|
86
|
+
});
|
|
83
87
|
const PlusIcon = (props) => /* @__PURE__ */ jsx(Icon, {
|
|
84
88
|
...props,
|
|
85
89
|
children: /* @__PURE__ */ jsx("path", { d: "M8 3v10M3 8h10" })
|
|
@@ -248,4 +252,4 @@ const MaximizeIcon = (props) => /* @__PURE__ */ jsxs(Icon, {
|
|
|
248
252
|
]
|
|
249
253
|
});
|
|
250
254
|
//#endregion
|
|
251
|
-
export {
|
|
255
|
+
export { SpinnerIcon as A, PaperclipIcon as C, PlusIcon as D, PlayIcon as E, XIcon as F, TerminalIcon as M, WarningIcon as N, RefreshIcon as O, WrenchIcon as P, MonitorIcon as S, PencilIcon as T, ImageIcon as _, CheckIcon as a, MaximizeIcon as b, ChevronRightIcon as c, DownloadIcon as d, EyeIcon as f, FolderOpenIcon as g, FolderIcon as h, ArrowUpIcon as i, SquareIcon as j, SearchIcon as k, CopyIcon as l, FileIcon as m, ArrowLeftIcon as n, ChevronDownIcon as o, EyeOffIcon as p, ArrowRightIcon as r, ChevronLeftIcon as s, ArrowDownIcon as t, DotIcon as u, InfoIcon as v, PauseIcon as w, MinusIcon as x, LinkIcon as y };
|
|
@@ -22,6 +22,7 @@ declare const EyeOffIcon: (props: IconProps) => React.JSX.Element;
|
|
|
22
22
|
declare const FolderIcon: (props: IconProps) => React.JSX.Element;
|
|
23
23
|
declare const FolderOpenIcon: (props: IconProps) => React.JSX.Element;
|
|
24
24
|
declare const FileIcon: (props: IconProps) => React.JSX.Element;
|
|
25
|
+
declare const PaperclipIcon: (props: IconProps) => React.JSX.Element;
|
|
25
26
|
declare const PlusIcon: (props: IconProps) => React.JSX.Element;
|
|
26
27
|
declare const MinusIcon: (props: IconProps) => React.JSX.Element;
|
|
27
28
|
declare const PlayIcon: (props: IconProps) => React.JSX.Element;
|
|
@@ -45,4 +46,4 @@ declare const ImageIcon: (props: IconProps) => React.JSX.Element;
|
|
|
45
46
|
declare const MonitorIcon: (props: IconProps) => React.JSX.Element;
|
|
46
47
|
declare const MaximizeIcon: (props: IconProps) => React.JSX.Element;
|
|
47
48
|
//#endregion
|
|
48
|
-
export {
|
|
49
|
+
export { SearchIcon as A, MonitorIcon as C, PlayIcon as D, PencilIcon as E, WrenchIcon as F, XIcon as I, SquareIcon as M, TerminalIcon as N, PlusIcon as O, WarningIcon as P, MinusIcon as S, PauseIcon as T, IconProps as _, CheckIcon as a, LinkIcon as b, ChevronRightIcon as c, DownloadIcon as d, EyeIcon as f, FolderOpenIcon as g, FolderIcon as h, ArrowUpIcon as i, SpinnerIcon as j, RefreshIcon as k, CopyIcon as l, FileIcon as m, ArrowLeftIcon as n, ChevronDownIcon as o, EyeOffIcon as p, ArrowRightIcon as r, ChevronLeftIcon as s, ArrowDownIcon as t, DotIcon as u, ImageIcon as v, PaperclipIcon as w, MaximizeIcon as x, InfoIcon as y };
|
package/dist/styles/index.css
CHANGED
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
@import "./nanite-scene.css" layer(components);
|
|
38
38
|
@import "./number-field.css" layer(components);
|
|
39
39
|
@import "./popover.css" layer(components);
|
|
40
|
+
@import "./mcp-server-picker.css" layer(components);
|
|
40
41
|
@import "./preview-card.css" layer(components);
|
|
41
42
|
@import "./progress.css" layer(components);
|
|
42
43
|
@import "./radio.css" layer(components);
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
.mcp-server-picker {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.mcp-server-picker__trigger {
|
|
6
|
+
flex-shrink: 0;
|
|
7
|
+
color: var(--sigvelo-color-text);
|
|
8
|
+
background: none;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.mcp-server-picker__trigger:hover:not([data-disabled]),
|
|
12
|
+
.mcp-server-picker__trigger[data-popup-open] {
|
|
13
|
+
color: var(--sigvelo-color-text);
|
|
14
|
+
background: none;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.mcp-server-picker__popup {
|
|
18
|
+
inline-size: min(32rem, calc(100dvw - 1rem));
|
|
19
|
+
max-block-size: min(28rem, calc(100dvh - 2rem));
|
|
20
|
+
overflow-y: auto;
|
|
21
|
+
scrollbar-gutter: stable;
|
|
22
|
+
overscroll-behavior: contain;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.mcp-server-picker__group + .mcp-server-picker__group {
|
|
26
|
+
margin-block-start: 0.25rem;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.mcp-server-picker__row {
|
|
30
|
+
min-block-size: 2.5rem;
|
|
31
|
+
gap: 0.75rem;
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.mcp-server-picker__icon {
|
|
36
|
+
display: inline-flex;
|
|
37
|
+
flex: 0 0 auto;
|
|
38
|
+
align-items: center;
|
|
39
|
+
justify-content: center;
|
|
40
|
+
inline-size: 1.5rem;
|
|
41
|
+
block-size: 1.5rem;
|
|
42
|
+
color: var(--sigvelo-color-text-muted);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.mcp-server-picker__icon > img,
|
|
46
|
+
.mcp-server-picker__icon > svg {
|
|
47
|
+
display: block;
|
|
48
|
+
inline-size: 1.25rem;
|
|
49
|
+
block-size: 1.25rem;
|
|
50
|
+
object-fit: contain;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.mcp-server-picker__fallback-icon {
|
|
54
|
+
display: inline-flex;
|
|
55
|
+
align-items: center;
|
|
56
|
+
justify-content: center;
|
|
57
|
+
inline-size: 1.375rem;
|
|
58
|
+
block-size: 1.375rem;
|
|
59
|
+
border-radius: var(--sigvelo-radius-sm);
|
|
60
|
+
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
61
|
+
color: var(--sigvelo-color-neutral-text-on-subtle);
|
|
62
|
+
font-size: 0.75rem;
|
|
63
|
+
font-weight: var(--sigvelo-font-weight-bold);
|
|
64
|
+
line-height: 1;
|
|
65
|
+
text-transform: uppercase;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.mcp-server-picker__copy {
|
|
69
|
+
display: flex;
|
|
70
|
+
align-items: baseline;
|
|
71
|
+
gap: 0.625rem;
|
|
72
|
+
min-inline-size: 0;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.mcp-server-picker__name {
|
|
76
|
+
flex: 0 0 auto;
|
|
77
|
+
color: var(--sigvelo-color-text);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.mcp-server-picker__description {
|
|
81
|
+
min-inline-size: 0;
|
|
82
|
+
overflow: hidden;
|
|
83
|
+
color: var(--sigvelo-color-text-muted);
|
|
84
|
+
text-overflow: ellipsis;
|
|
85
|
+
white-space: nowrap;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.mcp-server-picker__meta {
|
|
89
|
+
display: inline-flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
gap: 0.375rem;
|
|
92
|
+
min-inline-size: max-content;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.mcp-server-picker__row[data-status="ready"] .mcp-server-picker__meta {
|
|
96
|
+
color: var(--sigvelo-color-success-text-on-subtle);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.mcp-server-picker__row[data-status="needs-auth"] .mcp-server-picker__meta {
|
|
100
|
+
color: var(--sigvelo-color-warning-text-on-subtle);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.mcp-server-picker__row[data-status="failed"] .mcp-server-picker__meta {
|
|
104
|
+
color: var(--sigvelo-color-danger-text-on-subtle);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.mcp-server-picker__spinner {
|
|
108
|
+
animation: mcp-server-picker-spin 900ms linear infinite;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.mcp-server-picker__empty {
|
|
112
|
+
padding-block: 0.5rem;
|
|
113
|
+
padding-inline: 0.75rem;
|
|
114
|
+
color: var(--sigvelo-color-text-muted);
|
|
115
|
+
font-size: 0.875rem;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
@media (width < 30rem) {
|
|
119
|
+
.mcp-server-picker__copy {
|
|
120
|
+
flex-direction: column;
|
|
121
|
+
gap: 0;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@media (forced-colors: active) {
|
|
126
|
+
.mcp-server-picker__fallback-icon {
|
|
127
|
+
border: 1px solid ButtonText;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@keyframes mcp-server-picker-spin {
|
|
132
|
+
from {
|
|
133
|
+
transform: rotate(0deg);
|
|
134
|
+
}
|
|
135
|
+
to {
|
|
136
|
+
transform: rotate(360deg);
|
|
137
|
+
}
|
|
138
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-b/react-components",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"description": "MCP-B React components built on Base UI and shared design tokens, including Cloudflare Think chat primitives.",
|
|
5
5
|
"homepage": "https://design-system.sigvelo.com",
|
|
6
6
|
"bugs": {
|
|
@@ -49,13 +49,14 @@
|
|
|
49
49
|
"anser": "^2.3.5",
|
|
50
50
|
"shiki": "^3.23.0",
|
|
51
51
|
"streamdown": "^2.5.0",
|
|
52
|
-
"@mcp-b/design-tokens": "0.5.
|
|
52
|
+
"@mcp-b/design-tokens": "0.5.4"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@ai-sdk/react": "^3.0.194",
|
|
56
56
|
"@cloudflare/shell": "^0.4.1",
|
|
57
57
|
"@cloudflare/think": "^0.12.1",
|
|
58
58
|
"@cloudflare/workers-types": "^4.20260630.1",
|
|
59
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
59
60
|
"@storybook/addon-a11y": "^10.4.6",
|
|
60
61
|
"@storybook/addon-docs": "^10.4.6",
|
|
61
62
|
"@storybook/addon-mcp": "^0.6.0",
|
|
@@ -83,6 +84,7 @@
|
|
|
83
84
|
"@ai-sdk/react": "^3.0.194",
|
|
84
85
|
"@cloudflare/shell": "^0.4.1",
|
|
85
86
|
"@cloudflare/think": "^0.12.1",
|
|
87
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
86
88
|
"agents": "^0.17.3",
|
|
87
89
|
"ai": "^6.0.182",
|
|
88
90
|
"react": "^19.0.0",
|
|
@@ -98,6 +100,9 @@
|
|
|
98
100
|
"@cloudflare/think": {
|
|
99
101
|
"optional": true
|
|
100
102
|
},
|
|
103
|
+
"@modelcontextprotocol/sdk": {
|
|
104
|
+
"optional": true
|
|
105
|
+
},
|
|
101
106
|
"agents": {
|
|
102
107
|
"optional": true
|
|
103
108
|
},
|