@arcadeai/design-system 3.49.0 → 4.0.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/assets/icons/fireflies.js +304 -0
- package/dist/assets/icons/insightly.js +32 -0
- package/dist/components/index.js +183 -181
- package/dist/components/ui/atoms/icons/fireflies.d.ts +4 -0
- package/dist/components/ui/atoms/icons/fireflies.d.ts.map +1 -0
- package/dist/components/ui/atoms/icons/fireflies.js +299 -0
- package/dist/components/ui/atoms/icons/index.d.ts +2 -0
- package/dist/components/ui/atoms/icons/index.d.ts.map +1 -1
- package/dist/components/ui/atoms/icons/index.js +112 -110
- package/dist/components/ui/atoms/icons/insightly.d.ts +4 -0
- package/dist/components/ui/atoms/icons/insightly.d.ts.map +1 -0
- package/dist/components/ui/atoms/icons/insightly.js +27 -0
- package/dist/components/ui/atoms/index.js +139 -137
- package/dist/components/ui/index.js +183 -181
- package/dist/components/ui/molecules/empty-state.js +1 -1
- package/dist/components/ui/molecules/index.d.ts +2 -2
- package/dist/components/ui/molecules/index.d.ts.map +1 -1
- package/dist/components/ui/molecules/index.js +2 -2
- package/dist/components/ui/molecules/mcp-server-picker/constants.d.ts +3 -0
- package/dist/components/ui/molecules/mcp-server-picker/constants.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/constants.js +4 -0
- package/dist/components/ui/molecules/mcp-server-picker/server-card.d.ts +35 -13
- package/dist/components/ui/molecules/mcp-server-picker/server-card.d.ts.map +1 -1
- package/dist/components/ui/molecules/mcp-server-picker/server-card.js +89 -41
- package/dist/components/ui/molecules/mcp-server-picker/tool-card.d.ts.map +1 -1
- package/dist/components/ui/molecules/mcp-server-picker/tool-card.js +12 -8
- package/dist/components/ui/molecules/mcp-server-picker/unoptimized-match-card.d.ts +8 -0
- package/dist/components/ui/molecules/mcp-server-picker/unoptimized-match-card.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/unoptimized-match-card.js +61 -0
- package/dist/components/ui/molecules/scroll-fade-area.d.ts +7 -1
- package/dist/components/ui/molecules/scroll-fade-area.d.ts.map +1 -1
- package/dist/components/ui/molecules/scroll-fade-area.js +19 -14
- package/dist/main.js +189 -187
- package/dist/metadata/toolkit-icons.d.ts.map +1 -1
- package/dist/metadata/toolkit-icons.js +206 -202
- package/dist/metadata/toolkits.d.ts.map +1 -1
- package/dist/metadata/toolkits.js +26 -0
- package/package.json +1 -1
- package/dist/components/ui/molecules/mcp-server-picker/unoptimized-callout.d.ts +0 -10
- package/dist/components/ui/molecules/mcp-server-picker/unoptimized-callout.d.ts.map +0 -1
- package/dist/components/ui/molecules/mcp-server-picker/unoptimized-callout.js +0 -15
|
@@ -4,18 +4,18 @@ export type McpServerCardSelectionState = "none" | "partial" | "selected";
|
|
|
4
4
|
declare const shellVariants: (props?: ({
|
|
5
5
|
selectionState?: "none" | "selected" | "partial" | "setup-none" | "setup-selected" | "setup-partial" | null | undefined;
|
|
6
6
|
} & ClassProp) | undefined) => string;
|
|
7
|
-
|
|
7
|
+
type McpServerCardBaseProps = {
|
|
8
8
|
name: string;
|
|
9
9
|
description?: string;
|
|
10
10
|
/**
|
|
11
11
|
* Toolkit id used to resolve the brand icon. Falls back to a letter avatar
|
|
12
|
-
* when no brand mark is registered
|
|
13
|
-
* `McpToolkitChip` and the summary bar
|
|
12
|
+
* when no brand mark is registered. The fallback is shared with
|
|
13
|
+
* `McpToolkitChip` and the summary bar via `McpToolkitAvatar`.
|
|
14
14
|
*/
|
|
15
15
|
toolkitId?: string;
|
|
16
16
|
/**
|
|
17
|
-
* Optional server version, shown muted next to the name (e.g. "v1.2.4")
|
|
18
|
-
*
|
|
17
|
+
* Optional server version, shown muted next to the name (e.g. "v1.2.4").
|
|
18
|
+
* Matches the `version` slot on `McpToolCard` so the two cards read as a
|
|
19
19
|
* pair when stacked together.
|
|
20
20
|
*/
|
|
21
21
|
version?: string;
|
|
@@ -23,18 +23,40 @@ export type McpServerCardProps = {
|
|
|
23
23
|
selectedToolCount?: number;
|
|
24
24
|
selectionState?: McpServerCardSelectionState;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* and drops the toggle/customize controls until it's configured.
|
|
26
|
+
* Whether the server still needs configuration before its tools can run.
|
|
27
|
+
* The card remains selectable regardless. Blocking selection based on setup
|
|
28
|
+
* status is the consumer's responsibility, not the card's.
|
|
30
29
|
*/
|
|
31
30
|
needsSetup?: boolean;
|
|
32
|
-
/** Fired when
|
|
31
|
+
/** Fired from the setup strip when `needsSetup` is true. */
|
|
33
32
|
onSetup?: () => void;
|
|
34
|
-
onToggle?: () => void;
|
|
35
|
-
onCustomize?: () => void;
|
|
36
33
|
} & Omit<React.ComponentProps<"div">, "onToggle">;
|
|
37
|
-
|
|
34
|
+
type McpServerCardToggleProps = McpServerCardBaseProps & {
|
|
35
|
+
/**
|
|
36
|
+
* How the card body behaves on click:
|
|
37
|
+
* - `"toggle"` (default): the body adds/removes the whole server (`onToggle`),
|
|
38
|
+
* with a separate right-edge control to drill into individual tools.
|
|
39
|
+
*/
|
|
40
|
+
interaction?: "toggle";
|
|
41
|
+
onToggle: () => void;
|
|
42
|
+
onCustomize: () => void;
|
|
43
|
+
};
|
|
44
|
+
type McpServerCardDrillProps = McpServerCardBaseProps & {
|
|
45
|
+
/**
|
|
46
|
+
* `"drill"`: the card has no whole-server toggle. Clicking it opens the
|
|
47
|
+
* server's tool list via `onCustomize` so the user can pick a specific tool.
|
|
48
|
+
*
|
|
49
|
+
* Use this in single-tool contexts such as a tool-execution page, where the
|
|
50
|
+
* goal is to select one tool to run rather than to add an entire server's
|
|
51
|
+
* tools to a configuration. Selecting the server is not meaningful in that
|
|
52
|
+
* context; the card is a navigation step toward the tool.
|
|
53
|
+
*/
|
|
54
|
+
interaction: "drill";
|
|
55
|
+
onCustomize: () => void;
|
|
56
|
+
onToggle?: never;
|
|
57
|
+
};
|
|
58
|
+
export type McpServerCardProps = McpServerCardToggleProps | McpServerCardDrillProps;
|
|
59
|
+
declare function McpServerCardImpl({ name, description, toolkitId, version, toolCount, selectedToolCount, selectionState, needsSetup, interaction, onSetup, onToggle, onCustomize, className, ...rest }: McpServerCardProps): React.JSX.Element;
|
|
38
60
|
export declare const McpServerCard: React.MemoExoticComponent<typeof McpServerCardImpl>;
|
|
39
61
|
export { shellVariants as mcpServerCardShellVariants };
|
|
40
62
|
//# sourceMappingURL=server-card.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-card.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/server-card.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1E,QAAA,MAAM,aAAa;;8EAoBlB,CAAC;AAwBF,
|
|
1
|
+
{"version":3,"file":"server-card.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/server-card.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1E,QAAA,MAAM,aAAa;;8EAoBlB,CAAC;AAwBF,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,2BAA2B,CAAC;IAC7C;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;AAElD,KAAK,wBAAwB,GAAG,sBAAsB,GAAG;IACvD;;;;OAIG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAEF,KAAK,uBAAuB,GAAG,sBAAsB,GAAG;IACtD;;;;;;;;OAQG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B,wBAAwB,GACxB,uBAAuB,CAAC;AA+M5B,iBAAS,iBAAiB,CAAC,EACzB,IAAI,EACJ,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,EACT,iBAAqB,EACrB,cAAuB,EACvB,UAAkB,EAClB,WAAsB,EACtB,OAAO,EACP,QAAQ,EACR,WAAW,EACX,SAAS,EACT,GAAG,IAAI,EACR,EAAE,kBAAkB,qBAqDpB;AAED,eAAO,MAAM,aAAa,qDAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,IAAI,0BAA0B,EAAE,CAAC"}
|
|
@@ -5,10 +5,10 @@ import { t } from "../../../../dist-Ber_p4PA.js";
|
|
|
5
5
|
import { i as n, n as r, r as i, t as a } from "../../../../tooltip-34vRSwJG.js";
|
|
6
6
|
import { McpToolkitAvatar as o } from "./toolkit-avatar.js";
|
|
7
7
|
import * as s from "react";
|
|
8
|
-
import {
|
|
9
|
-
import { ChevronRight as
|
|
8
|
+
import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
9
|
+
import { ChevronRight as d, KeyRound as f } from "lucide-react";
|
|
10
10
|
//#region lib/components/ui/molecules/mcp-server-picker/server-card.tsx
|
|
11
|
-
var
|
|
11
|
+
var p = t("flex items-stretch rounded-lg border transition-[background-color,border-color,box-shadow,transform] duration-[var(--duration-normal)] ease-[var(--ease-smooth)] motion-reduce:transition-colors", {
|
|
12
12
|
variants: { selectionState: {
|
|
13
13
|
selected: "border-foreground/45 bg-muted/20 shadow-[var(--shadow-card)]",
|
|
14
14
|
partial: "border-foreground/45 border-dashed bg-muted/20 shadow-[var(--shadow-card)]",
|
|
@@ -19,100 +19,148 @@ var f = t("flex items-stretch rounded-lg border transition-[background-color,bor
|
|
|
19
19
|
} },
|
|
20
20
|
defaultVariants: { selectionState: "none" }
|
|
21
21
|
});
|
|
22
|
-
function
|
|
22
|
+
function m(e, t) {
|
|
23
23
|
return t ? e === "selected" ? "setup-selected" : e === "partial" ? "setup-partial" : "setup-none" : e;
|
|
24
24
|
}
|
|
25
|
-
function
|
|
25
|
+
function h(e) {
|
|
26
26
|
return e === "selected" ? !0 : e === "partial" ? "mixed" : !1;
|
|
27
27
|
}
|
|
28
|
-
function
|
|
29
|
-
return /* @__PURE__ */
|
|
28
|
+
function g({ name: e, description: t, toolkitId: n, version: r, selectionState: i, onToggle: a }) {
|
|
29
|
+
return /* @__PURE__ */ u("button", {
|
|
30
30
|
"aria-label": `${i === "selected" ? "Remove all" : "Add all"} ${e} tools`,
|
|
31
|
-
"aria-pressed":
|
|
31
|
+
"aria-pressed": h(i),
|
|
32
32
|
className: "flex min-w-0 flex-1 cursor-pointer items-center gap-2 rounded-l-lg px-3 py-2.5 text-left transition-[background-color,color,transform] duration-[var(--duration-fast)] ease-[var(--ease-smooth)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-inset active:scale-[0.98] motion-reduce:transition-colors motion-reduce:active:scale-100",
|
|
33
33
|
onClick: a,
|
|
34
34
|
title: t || void 0,
|
|
35
35
|
type: "button",
|
|
36
|
-
children: [/* @__PURE__ */
|
|
36
|
+
children: [/* @__PURE__ */ l(o, {
|
|
37
37
|
name: e,
|
|
38
38
|
size: "md",
|
|
39
39
|
toolkitId: n
|
|
40
|
-
}), /* @__PURE__ */
|
|
40
|
+
}), /* @__PURE__ */ u("span", {
|
|
41
41
|
className: "flex min-w-0 flex-1 items-baseline gap-1.5",
|
|
42
|
-
children: [/* @__PURE__ */
|
|
42
|
+
children: [/* @__PURE__ */ l("span", {
|
|
43
43
|
className: "min-w-0 truncate font-medium text-base capitalize",
|
|
44
44
|
children: e
|
|
45
|
-
}), r ? /* @__PURE__ */
|
|
45
|
+
}), r ? /* @__PURE__ */ u("span", {
|
|
46
46
|
className: "shrink-0 font-normal text-muted-foreground text-xs tabular-nums",
|
|
47
47
|
children: ["v", r]
|
|
48
48
|
}) : null]
|
|
49
49
|
})]
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
|
-
function
|
|
53
|
-
return /* @__PURE__ */
|
|
52
|
+
function _({ hasSetup: t, name: n, description: r, toolkitId: i, version: a, toolsLabel: s, onCustomize: c }) {
|
|
53
|
+
return /* @__PURE__ */ u("button", {
|
|
54
|
+
"aria-label": `Choose individual tools for ${n}`,
|
|
55
|
+
className: e("flex min-w-0 flex-1 cursor-pointer items-center gap-2 px-3 py-2.5 text-left transition-[background-color,color,transform] duration-[var(--duration-fast)] ease-[var(--ease-smooth)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-inset active:scale-[0.98] motion-reduce:transition-colors motion-reduce:active:scale-100", t ? "rounded-l-lg" : "rounded-lg"),
|
|
56
|
+
onClick: c,
|
|
57
|
+
title: r || void 0,
|
|
58
|
+
type: "button",
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ l(o, {
|
|
61
|
+
name: n,
|
|
62
|
+
size: "md",
|
|
63
|
+
toolkitId: i
|
|
64
|
+
}),
|
|
65
|
+
/* @__PURE__ */ u("span", {
|
|
66
|
+
className: "flex min-w-0 flex-1 items-baseline gap-1.5",
|
|
67
|
+
children: [/* @__PURE__ */ l("span", {
|
|
68
|
+
className: "min-w-0 truncate font-medium text-base capitalize",
|
|
69
|
+
children: n
|
|
70
|
+
}), a ? /* @__PURE__ */ u("span", {
|
|
71
|
+
className: "shrink-0 font-normal text-muted-foreground text-xs tabular-nums",
|
|
72
|
+
children: ["v", a]
|
|
73
|
+
}) : null]
|
|
74
|
+
}),
|
|
75
|
+
/* @__PURE__ */ u("span", {
|
|
76
|
+
className: "flex shrink-0 items-center gap-1.5 text-muted-foreground text-xs",
|
|
77
|
+
children: [/* @__PURE__ */ l("span", {
|
|
78
|
+
className: "whitespace-nowrap tabular-nums",
|
|
79
|
+
children: s
|
|
80
|
+
}), /* @__PURE__ */ l(d, {
|
|
81
|
+
"aria-hidden": !0,
|
|
82
|
+
className: "size-3 transition-transform duration-[var(--duration-fast)] ease-[var(--ease-smooth)] motion-reduce:transition-none"
|
|
83
|
+
})]
|
|
84
|
+
})
|
|
85
|
+
]
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function v({ name: e, toolsLabel: t, onCustomize: n }) {
|
|
89
|
+
return /* @__PURE__ */ u("button", {
|
|
54
90
|
"aria-label": `Choose individual tools for ${e}`,
|
|
55
91
|
className: "flex min-w-[5.5rem] shrink-0 cursor-pointer items-center justify-end gap-1.5 rounded-r-lg border-border/60 border-l px-2.5 text-muted-foreground text-xs transition-[background-color,color,transform] duration-[var(--duration-fast)] ease-[var(--ease-smooth)] hover:bg-muted/40 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-inset active:scale-[0.98] motion-reduce:transition-colors motion-reduce:active:scale-100",
|
|
56
92
|
"data-slot": "mcp-server-card-customize",
|
|
57
93
|
onClick: n,
|
|
58
94
|
type: "button",
|
|
59
|
-
children: [/* @__PURE__ */
|
|
95
|
+
children: [/* @__PURE__ */ l("span", {
|
|
60
96
|
className: "whitespace-nowrap tabular-nums",
|
|
61
97
|
children: t
|
|
62
|
-
}), /* @__PURE__ */
|
|
98
|
+
}), /* @__PURE__ */ l(d, {
|
|
63
99
|
"aria-hidden": !0,
|
|
64
100
|
className: "size-3 transition-transform duration-[var(--duration-fast)] ease-[var(--ease-smooth)] motion-reduce:transition-none"
|
|
65
101
|
})]
|
|
66
102
|
});
|
|
67
103
|
}
|
|
68
|
-
function
|
|
69
|
-
return /* @__PURE__ */
|
|
70
|
-
"aria-label": `Set up ${
|
|
71
|
-
className: "flex shrink-0 cursor-pointer items-center justify-center border-border/60 border-l bg-warning/10 px-2.5 text-warning transition-colors duration-[var(--duration-fast)] ease-[var(--ease-smooth)] hover:bg-warning/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-inset",
|
|
104
|
+
function y({ isTerminal: t = !1, name: o, onSetup: s }) {
|
|
105
|
+
return /* @__PURE__ */ l(i, { children: /* @__PURE__ */ u(a, { children: [/* @__PURE__ */ l(n, { render: /* @__PURE__ */ l("button", {
|
|
106
|
+
"aria-label": `Set up ${o}`,
|
|
107
|
+
className: e("flex shrink-0 cursor-pointer items-center justify-center border-border/60 border-l bg-warning/10 px-2.5 text-warning transition-colors duration-[var(--duration-fast)] ease-[var(--ease-smooth)] hover:bg-warning/20 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-inset", t ? "rounded-r-lg" : ""),
|
|
72
108
|
"data-slot": "mcp-server-card-setup",
|
|
73
|
-
onClick:
|
|
109
|
+
onClick: s,
|
|
74
110
|
type: "button",
|
|
75
|
-
children: /* @__PURE__ */
|
|
111
|
+
children: /* @__PURE__ */ l(f, {
|
|
76
112
|
"aria-hidden": !0,
|
|
77
113
|
className: "size-4"
|
|
78
114
|
})
|
|
79
|
-
}) }), /* @__PURE__ */
|
|
115
|
+
}) }), /* @__PURE__ */ u(r, {
|
|
80
116
|
className: "max-w-56 flex-col items-start gap-0.5 text-left",
|
|
81
117
|
side: "top",
|
|
82
|
-
children: [/* @__PURE__ */
|
|
118
|
+
children: [/* @__PURE__ */ l("span", {
|
|
83
119
|
className: "font-semibold",
|
|
84
120
|
children: "Setup required"
|
|
85
|
-
}), /* @__PURE__ */
|
|
121
|
+
}), /* @__PURE__ */ l("span", { children: "This server isn't ready yet. It needs some configuration before its tools work." })]
|
|
86
122
|
})] }) });
|
|
87
123
|
}
|
|
88
|
-
function
|
|
89
|
-
let
|
|
124
|
+
function b({ name: t, description: n, toolkitId: r, version: i, toolCount: a, selectedToolCount: o = 0, selectionState: s = "none", needsSetup: d = !1, interaction: f = "toggle", onSetup: h, onToggle: b, onCustomize: x, className: S, ...C }) {
|
|
125
|
+
let w = s === "partial" ? `${o}/${a} tools` : `${a} ${a === 1 ? "tool" : "tools"}`;
|
|
90
126
|
return /* @__PURE__ */ l("div", {
|
|
91
|
-
...
|
|
92
|
-
className: e(
|
|
127
|
+
...C,
|
|
128
|
+
className: e(p({ selectionState: m(s, d) }), S),
|
|
93
129
|
"data-slot": "mcp-server-card",
|
|
94
|
-
"data-status":
|
|
95
|
-
children: [
|
|
96
|
-
|
|
130
|
+
"data-status": d ? "needs-setup" : s,
|
|
131
|
+
children: f === "drill" ? /* @__PURE__ */ u(c, { children: [/* @__PURE__ */ l(_, {
|
|
132
|
+
description: n,
|
|
133
|
+
hasSetup: d,
|
|
134
|
+
name: t,
|
|
135
|
+
onCustomize: x,
|
|
136
|
+
toolkitId: r,
|
|
137
|
+
toolsLabel: w,
|
|
138
|
+
version: i
|
|
139
|
+
}), d ? /* @__PURE__ */ l(y, {
|
|
140
|
+
isTerminal: !0,
|
|
141
|
+
name: t,
|
|
142
|
+
onSetup: h
|
|
143
|
+
}) : null] }) : /* @__PURE__ */ u(c, { children: [
|
|
144
|
+
/* @__PURE__ */ l(g, {
|
|
97
145
|
description: n,
|
|
98
146
|
name: t,
|
|
99
|
-
onToggle:
|
|
147
|
+
onToggle: b,
|
|
100
148
|
selectionState: s,
|
|
101
149
|
toolkitId: r,
|
|
102
150
|
version: i
|
|
103
151
|
}),
|
|
104
|
-
|
|
152
|
+
d ? /* @__PURE__ */ l(y, {
|
|
105
153
|
name: t,
|
|
106
|
-
onSetup:
|
|
154
|
+
onSetup: h
|
|
107
155
|
}) : null,
|
|
108
|
-
/* @__PURE__ */
|
|
156
|
+
/* @__PURE__ */ l(v, {
|
|
109
157
|
name: t,
|
|
110
|
-
onCustomize:
|
|
111
|
-
toolsLabel:
|
|
158
|
+
onCustomize: x,
|
|
159
|
+
toolsLabel: w
|
|
112
160
|
})
|
|
113
|
-
]
|
|
161
|
+
] })
|
|
114
162
|
});
|
|
115
163
|
}
|
|
116
|
-
var
|
|
164
|
+
var x = s.memo(b);
|
|
117
165
|
//#endregion
|
|
118
|
-
export {
|
|
166
|
+
export { x as McpServerCard, p as mcpServerCardShellVariants };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-card.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/tool-card.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-card.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/tool-card.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC;AAE1E,iBAAS,eAAe,CAAC,EACvB,IAAI,EACJ,OAAO,EACP,OAAO,EACP,WAAW,EACX,QAAgB,EAChB,WAAmB,EACnB,QAAgB,EAChB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,gBAAgB,qBAkFlB;AAED,eAAO,MAAM,WAAW,mDAA8B,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { cn as e } from "../../../../lib/utils.js";
|
|
4
4
|
import { i as t, n, r, t as i } from "../../../../tooltip-34vRSwJG.js";
|
|
5
|
+
import "./constants.js";
|
|
5
6
|
import * as a from "react";
|
|
6
7
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
7
8
|
import { Check as c } from "lucide-react";
|
|
@@ -48,14 +49,17 @@ function l({ name: a, rawName: l, version: u, description: d, selected: f = !1,
|
|
|
48
49
|
}) : null]
|
|
49
50
|
})]
|
|
50
51
|
});
|
|
51
|
-
return d ? /* @__PURE__ */ o(r, {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
children: l
|
|
57
|
-
|
|
58
|
-
|
|
52
|
+
return d ? /* @__PURE__ */ o(r, {
|
|
53
|
+
delay: 600,
|
|
54
|
+
children: /* @__PURE__ */ s(i, { children: [/* @__PURE__ */ o(t, { render: v }), /* @__PURE__ */ s(n, {
|
|
55
|
+
className: "max-w-xs flex-col items-start gap-0.5 text-left text-xs",
|
|
56
|
+
side: "bottom",
|
|
57
|
+
children: [l && l !== a ? /* @__PURE__ */ o("span", {
|
|
58
|
+
className: "font-medium",
|
|
59
|
+
children: l
|
|
60
|
+
}) : null, /* @__PURE__ */ o("span", { children: d })]
|
|
61
|
+
})] })
|
|
62
|
+
}) : v;
|
|
59
63
|
}
|
|
60
64
|
var u = a.memo(l);
|
|
61
65
|
//#endregion
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type McpUnoptimizedMatchCardProps = {
|
|
2
|
+
serverCount: number;
|
|
3
|
+
toolCount: number;
|
|
4
|
+
onShow?: () => void;
|
|
5
|
+
className?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function McpUnoptimizedMatchCard({ serverCount, toolCount, onShow, className, }: McpUnoptimizedMatchCardProps): import("react").JSX.Element | null;
|
|
8
|
+
//# sourceMappingURL=unoptimized-match-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unoptimized-match-card.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/unoptimized-match-card.tsx"],"names":[],"mappings":"AAWA,MAAM,MAAM,4BAA4B,GAAG;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAeF,wBAAgB,uBAAuB,CAAC,EACtC,WAAW,EACX,SAAS,EACT,MAAM,EACN,SAAS,GACV,EAAE,4BAA4B,sCA2E9B"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../../lib/utils.js";
|
|
4
|
+
import { i as t, n, r, t as i } from "../../../../tooltip-34vRSwJG.js";
|
|
5
|
+
import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
6
|
+
import { Braces as c, Info as l } from "lucide-react";
|
|
7
|
+
//#region lib/components/ui/molecules/mcp-server-picker/unoptimized-match-card.tsx
|
|
8
|
+
function u(e, t) {
|
|
9
|
+
return `${e} ${t}${e === 1 ? "" : "s"}`;
|
|
10
|
+
}
|
|
11
|
+
var d = /* @__PURE__ */ o(a, { children: "Tools built around individual actions rather than full tasks. Useful when you need something specific, but your agent often has to combine a few to complete a task." });
|
|
12
|
+
function f({ serverCount: a, toolCount: f, onShow: p, className: m }) {
|
|
13
|
+
if (a === 0 && f === 0) return null;
|
|
14
|
+
let h = [a > 0 ? `+${u(a, "server")}` : null, f > 0 ? `+${u(f, "tool")}` : null].filter(Boolean).join(" ");
|
|
15
|
+
return /* @__PURE__ */ s("div", {
|
|
16
|
+
className: e("flex h-full w-full items-center gap-2 rounded-lg border border-brand-text/40 border-dashed bg-muted/20 p-3", m),
|
|
17
|
+
"data-slot": "mcp-unoptimized-match-card",
|
|
18
|
+
children: [/* @__PURE__ */ o(r, { children: /* @__PURE__ */ s(i, { children: [/* @__PURE__ */ s(t, {
|
|
19
|
+
render: /* @__PURE__ */ o("button", {
|
|
20
|
+
"aria-label": `Show unoptimized (${h})`,
|
|
21
|
+
className: "flex min-w-0 flex-1 cursor-pointer items-center gap-2 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-inset",
|
|
22
|
+
onClick: p,
|
|
23
|
+
type: "button"
|
|
24
|
+
}),
|
|
25
|
+
children: [
|
|
26
|
+
/* @__PURE__ */ o(c, {
|
|
27
|
+
"aria-hidden": !0,
|
|
28
|
+
className: "size-5 shrink-0 text-brand-text"
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ o("span", {
|
|
31
|
+
className: "min-w-0 flex-1 truncate font-medium text-sm",
|
|
32
|
+
children: "Show unoptimized"
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ o("span", {
|
|
35
|
+
className: "shrink-0 whitespace-nowrap text-muted-foreground text-xs tabular-nums",
|
|
36
|
+
children: h
|
|
37
|
+
})
|
|
38
|
+
]
|
|
39
|
+
}), /* @__PURE__ */ o(n, {
|
|
40
|
+
className: "max-w-xs",
|
|
41
|
+
side: "top",
|
|
42
|
+
children: d
|
|
43
|
+
})] }) }), /* @__PURE__ */ o(r, { children: /* @__PURE__ */ s(i, { children: [/* @__PURE__ */ o(t, {
|
|
44
|
+
render: /* @__PURE__ */ o("button", {
|
|
45
|
+
"aria-label": "What are unoptimized tools?",
|
|
46
|
+
className: "shrink-0 cursor-pointer rounded focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 sm:hidden",
|
|
47
|
+
type: "button"
|
|
48
|
+
}),
|
|
49
|
+
children: /* @__PURE__ */ o(l, {
|
|
50
|
+
"aria-hidden": !0,
|
|
51
|
+
className: "size-3.5 text-muted-foreground"
|
|
52
|
+
})
|
|
53
|
+
}), /* @__PURE__ */ o(n, {
|
|
54
|
+
className: "max-w-xs",
|
|
55
|
+
side: "top",
|
|
56
|
+
children: d
|
|
57
|
+
})] }) })]
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
61
|
+
export { f as McpUnoptimizedMatchCard };
|
|
@@ -5,6 +5,12 @@ export type ScrollFadeAreaProps = {
|
|
|
5
5
|
className?: string;
|
|
6
6
|
/** Classes for the inner scroll viewport (padding, child spacing). */
|
|
7
7
|
viewportClassName?: string;
|
|
8
|
+
/**
|
|
9
|
+
* Receives the scroll viewport element (or `null` on unmount). Use when a
|
|
10
|
+
* child needs the scroll container itself — e.g. a virtualizer that reads
|
|
11
|
+
* scroll position from it.
|
|
12
|
+
*/
|
|
13
|
+
viewportRef?: (el: HTMLDivElement | null) => void;
|
|
8
14
|
};
|
|
9
15
|
/**
|
|
10
16
|
* Vertical scroll area with "there's more" affordances on whichever edge still
|
|
@@ -22,5 +28,5 @@ export type ScrollFadeAreaProps = {
|
|
|
22
28
|
* background-colored surface; on a `card`/`muted` surface the gradient seams.
|
|
23
29
|
* Such callers want the mask treatment instead.
|
|
24
30
|
*/
|
|
25
|
-
export declare function ScrollFadeArea({ children, className, viewportClassName, }: ScrollFadeAreaProps): import("react").JSX.Element;
|
|
31
|
+
export declare function ScrollFadeArea({ children, className, viewportClassName, viewportRef, }: ScrollFadeAreaProps): import("react").JSX.Element;
|
|
26
32
|
//# sourceMappingURL=scroll-fade-area.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-fade-area.d.ts","sourceRoot":"","sources":["../../../../lib/components/ui/molecules/scroll-fade-area.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"scroll-fade-area.d.ts","sourceRoot":"","sources":["../../../../lib/components/ui/molecules/scroll-fade-area.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAI5D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;CACnD,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,WAAW,GACZ,EAAE,mBAAmB,+BAkDrB"}
|
|
@@ -2,24 +2,29 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { cn as e } from "../../../lib/utils.js";
|
|
4
4
|
import { useScrollFade as t } from "../../../hooks/use-scroll-fade.js";
|
|
5
|
-
import {
|
|
5
|
+
import { useCallback as n, useRef as r } from "react";
|
|
6
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
7
|
//#region lib/components/ui/molecules/scroll-fade-area.tsx
|
|
7
|
-
function
|
|
8
|
-
let
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
function o({ children: o, className: s, viewportClassName: c, viewportRef: l }) {
|
|
9
|
+
let u = t("y"), d = r(l);
|
|
10
|
+
d.current = l;
|
|
11
|
+
let f = n((e) => {
|
|
12
|
+
u.ref(e), d.current?.(e);
|
|
13
|
+
}, [u.ref]), p = [u.edges.start && "inset 0 8px 12px -10px color-mix(in oklch, var(--shadow-color) 3%, transparent)", u.edges.end && "inset 0 -12px 16px -10px color-mix(in oklch, var(--shadow-color) 6%, transparent)"].filter(Boolean).join(", ") || void 0;
|
|
14
|
+
return /* @__PURE__ */ a("div", {
|
|
15
|
+
className: e("relative min-h-0 flex-1", s),
|
|
11
16
|
children: [
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/* @__PURE__ */
|
|
15
|
-
className: e("h-full overflow-y-auto transition-shadow duration-200",
|
|
16
|
-
onScroll:
|
|
17
|
-
ref:
|
|
18
|
-
style: { boxShadow:
|
|
19
|
-
children:
|
|
17
|
+
u.edges.start ? /* @__PURE__ */ i("div", { className: "pointer-events-none absolute inset-x-0 top-0 z-10 h-8 bg-gradient-to-b from-background to-transparent dark:from-background/40" }) : null,
|
|
18
|
+
u.edges.end ? /* @__PURE__ */ i("div", { className: "pointer-events-none absolute inset-x-0 bottom-0 z-10 h-10 bg-gradient-to-t from-background to-transparent dark:from-background/40" }) : null,
|
|
19
|
+
/* @__PURE__ */ i("div", {
|
|
20
|
+
className: e("h-full overflow-y-auto transition-shadow duration-200", c),
|
|
21
|
+
onScroll: u.onScroll,
|
|
22
|
+
ref: f,
|
|
23
|
+
style: { boxShadow: p },
|
|
24
|
+
children: o
|
|
20
25
|
})
|
|
21
26
|
]
|
|
22
27
|
});
|
|
23
28
|
}
|
|
24
29
|
//#endregion
|
|
25
|
-
export {
|
|
30
|
+
export { o as ScrollFadeArea };
|