@arcadeai/design-system 3.46.1 → 3.48.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/{toggle-C4ztdcN-.js → Toggle-CyMSF-Z7.js} +14 -46
- package/dist/ToolbarRootContext-DVNA8Vkb.js +13 -0
- package/dist/{alert-dialog-oB_cE8NP.js → alert-dialog-tBMDYzJ3.js} +1 -1
- package/dist/assets/index.css +1 -1
- package/dist/assets/tokens.css +1 -1
- package/dist/assets/variables.css +1 -1
- package/dist/components/index.js +236 -215
- package/dist/components/ui/atoms/alert-dialog.js +1 -1
- package/dist/components/ui/atoms/avatar-notification-badge.d.ts +2 -2
- package/dist/components/ui/atoms/avatar-notification-badge.d.ts.map +1 -1
- package/dist/components/ui/atoms/avatar-notification-badge.js +21 -0
- package/dist/components/ui/atoms/dropdown-menu.js +1 -1
- package/dist/components/ui/atoms/filter-chip.d.ts +16 -0
- package/dist/components/ui/atoms/filter-chip.d.ts.map +1 -0
- package/dist/components/ui/atoms/filter-chip.js +37 -0
- package/dist/components/ui/atoms/index.d.ts +4 -0
- package/dist/components/ui/atoms/index.d.ts.map +1 -1
- package/dist/components/ui/atoms/index.js +193 -189
- package/dist/components/ui/atoms/mobile-tooltip.js +1 -1
- package/dist/components/ui/atoms/popover.js +1 -1
- package/dist/components/ui/atoms/removable-chip.d.ts +38 -0
- package/dist/components/ui/atoms/removable-chip.d.ts.map +1 -0
- package/dist/components/ui/atoms/removable-chip.js +36 -0
- package/dist/components/ui/atoms/scroll-area.d.ts +7 -1
- package/dist/components/ui/atoms/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/atoms/scroll-area.js +1 -1
- package/dist/components/ui/atoms/select.js +1 -1
- package/dist/components/ui/atoms/toggle-group.d.ts +29 -0
- package/dist/components/ui/atoms/toggle-group.d.ts.map +1 -0
- package/dist/components/ui/atoms/toggle-group.js +3 -0
- package/dist/components/ui/atoms/toggle.js +36 -2
- package/dist/components/ui/atoms/unoptimized-marker.d.ts +16 -0
- package/dist/components/ui/atoms/unoptimized-marker.d.ts.map +1 -0
- package/dist/components/ui/atoms/unoptimized-marker.js +20 -0
- package/dist/components/ui/index.d.ts +1 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +236 -215
- package/dist/components/ui/molecules/confirm-popover.js +1 -1
- package/dist/components/ui/molecules/date-time-picker.js +1 -1
- package/dist/components/ui/molecules/empty-state.d.ts +28 -3
- package/dist/components/ui/molecules/empty-state.d.ts.map +1 -1
- package/dist/components/ui/molecules/empty-state.js +25 -19
- package/dist/components/ui/molecules/index.d.ts +30 -0
- package/dist/components/ui/molecules/index.d.ts.map +1 -1
- package/dist/components/ui/molecules/index.js +25 -10
- package/dist/components/ui/molecules/mcp-server-picker/category-filter-menu.d.ts +31 -0
- package/dist/components/ui/molecules/mcp-server-picker/category-filter-menu.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/category-filter-menu.js +106 -0
- package/dist/components/ui/molecules/mcp-server-picker/category-filter.d.ts +18 -0
- package/dist/components/ui/molecules/mcp-server-picker/category-filter.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/category-filter.js +34 -0
- package/dist/components/ui/molecules/mcp-server-picker/recommended-toolkits-chip.d.ts +53 -0
- package/dist/components/ui/molecules/mcp-server-picker/recommended-toolkits-chip.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/recommended-toolkits-chip.js +91 -0
- package/dist/components/ui/molecules/mcp-server-picker/recommended-tools.d.ts +52 -0
- package/dist/components/ui/molecules/mcp-server-picker/recommended-tools.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/recommended-tools.js +103 -0
- package/dist/components/ui/molecules/mcp-server-picker/review-count-chip.d.ts +22 -0
- package/dist/components/ui/molecules/mcp-server-picker/review-count-chip.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/review-count-chip.js +42 -0
- package/dist/components/ui/molecules/mcp-server-picker/search-scope-tabs.d.ts +18 -0
- package/dist/components/ui/molecules/mcp-server-picker/search-scope-tabs.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/search-scope-tabs.js +31 -0
- package/dist/components/ui/molecules/mcp-server-picker/section-callout.d.ts +21 -0
- package/dist/components/ui/molecules/mcp-server-picker/section-callout.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/section-callout.js +23 -0
- package/dist/components/ui/molecules/mcp-server-picker/section-nav-header.d.ts +39 -0
- package/dist/components/ui/molecules/mcp-server-picker/section-nav-header.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/section-nav-header.js +43 -0
- package/dist/components/ui/molecules/mcp-server-picker/server-avatar-stack.d.ts +16 -0
- package/dist/components/ui/molecules/mcp-server-picker/server-avatar-stack.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/server-avatar-stack.js +99 -0
- package/dist/components/ui/molecules/mcp-server-picker/server-card.d.ts +41 -0
- package/dist/components/ui/molecules/mcp-server-picker/server-card.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/server-card.js +124 -0
- package/dist/components/ui/molecules/mcp-server-picker/tool-card.d.ts +27 -0
- package/dist/components/ui/molecules/mcp-server-picker/tool-card.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/tool-card.js +67 -0
- package/dist/components/ui/molecules/mcp-server-picker/tool-search-band.d.ts +8 -0
- package/dist/components/ui/molecules/mcp-server-picker/tool-search-band.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/tool-search-band.js +41 -0
- package/dist/components/ui/molecules/mcp-server-picker/toolkit-avatar.d.ts +16 -0
- package/dist/components/ui/molecules/mcp-server-picker/toolkit-avatar.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/toolkit-avatar.js +56 -0
- package/dist/components/ui/molecules/mcp-server-picker/toolkit-chip.d.ts +38 -0
- package/dist/components/ui/molecules/mcp-server-picker/toolkit-chip.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/toolkit-chip.js +42 -0
- package/dist/components/ui/molecules/mcp-server-picker/toolkit-group-header.d.ts +33 -0
- package/dist/components/ui/molecules/mcp-server-picker/toolkit-group-header.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/toolkit-group-header.js +36 -0
- package/dist/components/ui/molecules/mcp-server-picker/unoptimized-callout.d.ts +10 -0
- package/dist/components/ui/molecules/mcp-server-picker/unoptimized-callout.d.ts.map +1 -0
- package/dist/components/ui/molecules/mcp-server-picker/unoptimized-callout.js +15 -0
- package/dist/components/ui/molecules/user-nav.js +1 -1
- package/dist/components/ui/organisms/index.d.ts +5 -0
- package/dist/components/ui/organisms/index.d.ts.map +1 -0
- package/dist/components/ui/organisms/index.js +3 -0
- package/dist/components/ui/organisms/mcp-selection-summary-bar.d.ts +71 -0
- package/dist/components/ui/organisms/mcp-selection-summary-bar.d.ts.map +1 -0
- package/dist/components/ui/organisms/mcp-selection-summary-bar.js +61 -0
- package/dist/components/ui/organisms/mcp-server-picker.d.ts +45 -0
- package/dist/components/ui/organisms/mcp-server-picker.d.ts.map +1 -0
- package/dist/components/ui/organisms/mcp-server-picker.js +35 -0
- package/dist/components/ui/pages/login-page.js +19 -19
- package/dist/components/ui/templates/gateway-diagram.js +10 -10
- package/dist/{dropdown-menu-DCFuLDwH.js → dropdown-menu-dsg43mOw.js} +2 -1
- package/dist/hooks/use-scroll-fade.d.ts +15 -0
- package/dist/hooks/use-scroll-fade.d.ts.map +1 -0
- package/dist/hooks/use-scroll-fade.js +38 -0
- package/dist/main.js +242 -221
- package/dist/metadata/index.js +6 -6
- package/dist/metadata/toolkit-icons.d.ts +15 -0
- package/dist/metadata/toolkit-icons.d.ts.map +1 -1
- package/dist/metadata/toolkit-icons.js +294 -292
- package/dist/{popover-Ck3ILBUA.js → popover-CXSOUeVQ.js} +2 -1
- package/dist/{scroll-area-BD6qsU_I.js → scroll-area-53KPfESS.js} +6 -3
- package/dist/{select-cAvbXH_n.js → select-CPTT__cT.js} +2 -1
- package/dist/toggle-group-CDYMBO0F.js +87 -0
- package/dist/useAnchoredPopupScrollLock-C8wRjuy0.js +24 -0
- package/package.json +1 -1
- package/dist/ToolbarRootContext-Dubw_915.js +0 -34
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../../lib/utils.js";
|
|
4
|
+
import { a as t, d as n, i as r, n as i, o as a, r as o, s, t as c } from "../../../../alert-dialog-tBMDYzJ3.js";
|
|
5
|
+
import { t as l } from "../../../../switch-CP9j-8px.js";
|
|
6
|
+
import { McpSectionCallout as u } from "./section-callout.js";
|
|
7
|
+
import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
8
|
+
//#region lib/components/ui/molecules/mcp-server-picker/recommended-tools.tsx
|
|
9
|
+
function m({ state: e, onToggle: t, ...n }) {
|
|
10
|
+
let r = e === "on";
|
|
11
|
+
return /* @__PURE__ */ f(u, {
|
|
12
|
+
...n,
|
|
13
|
+
action: /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ f(l, {
|
|
14
|
+
"aria-label": `Recommended tools ${r ? "on" : "off"}`,
|
|
15
|
+
checked: r,
|
|
16
|
+
onCheckedChange: t,
|
|
17
|
+
size: "sm"
|
|
18
|
+
}), /* @__PURE__ */ f("span", {
|
|
19
|
+
className: "w-6 text-left font-medium tabular-nums",
|
|
20
|
+
children: r ? "On" : "Off"
|
|
21
|
+
})] }),
|
|
22
|
+
"data-slot": "mcp-recommended-tools-callout",
|
|
23
|
+
"data-status": e,
|
|
24
|
+
description: r ? "Arcade selects and keeps your tools up to date for you. New ones are added automatically as they become available, so there's nothing to manage." : "You're managing your own tool selection. New tools from Arcade won't be added automatically.",
|
|
25
|
+
title: "Recommended tools"
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function h({ open: e, selectedCount: t, onKeep: i, onClear: l, onCancel: u }) {
|
|
29
|
+
let d = t && t > 0 ? `The ${t} selected tool${t === 1 ? "" : "s"} stay as your own set. They won't change as Arcade updates its recommendations.` : "Your selected tools stay as your own set. They won't change as Arcade updates its recommendations.";
|
|
30
|
+
return /* @__PURE__ */ f(c, {
|
|
31
|
+
onOpenChange: (e) => {
|
|
32
|
+
e || u();
|
|
33
|
+
},
|
|
34
|
+
open: e,
|
|
35
|
+
children: /* @__PURE__ */ p(r, { children: [
|
|
36
|
+
/* @__PURE__ */ f(s, { children: /* @__PURE__ */ f(n, { children: "Turn off recommended tools?" }) }),
|
|
37
|
+
/* @__PURE__ */ p("div", {
|
|
38
|
+
className: "flex flex-col gap-2",
|
|
39
|
+
children: [/* @__PURE__ */ f(g, {
|
|
40
|
+
description: d,
|
|
41
|
+
onClick: i,
|
|
42
|
+
title: "Keep my tools"
|
|
43
|
+
}), /* @__PURE__ */ f(g, {
|
|
44
|
+
description: "Remove the recommended tools and build your own selection from scratch.",
|
|
45
|
+
onClick: l,
|
|
46
|
+
title: "Clear & start fresh",
|
|
47
|
+
tone: "destructive"
|
|
48
|
+
})]
|
|
49
|
+
}),
|
|
50
|
+
/* @__PURE__ */ f(a, { children: /* @__PURE__ */ f(o, { children: "Cancel" }) })
|
|
51
|
+
] })
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function g({ title: t, description: n, tone: r = "neutral", onClick: i }) {
|
|
55
|
+
return /* @__PURE__ */ p("button", {
|
|
56
|
+
className: e("flex w-full cursor-pointer flex-col gap-0.5 rounded-lg border p-3 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60", r === "destructive" ? "border-border hover:border-destructive/50 hover:bg-destructive/5" : "border-border hover:border-foreground/40 hover:bg-muted/50"),
|
|
57
|
+
onClick: i,
|
|
58
|
+
type: "button",
|
|
59
|
+
children: [/* @__PURE__ */ f("span", {
|
|
60
|
+
className: e("font-medium text-sm", r === "destructive" ? "text-destructive" : "text-foreground"),
|
|
61
|
+
children: t
|
|
62
|
+
}), /* @__PURE__ */ f("span", {
|
|
63
|
+
className: "text-muted-foreground text-xs leading-snug",
|
|
64
|
+
children: n
|
|
65
|
+
})]
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
var _ = {
|
|
69
|
+
"remove-tool": {
|
|
70
|
+
title: "Remove this recommended tool?",
|
|
71
|
+
description: "Removing it will turn off recommended tools. Arcade will stop keeping your selection up to date automatically.",
|
|
72
|
+
confirmLabel: "Remove"
|
|
73
|
+
},
|
|
74
|
+
"remove-server": {
|
|
75
|
+
title: "Remove this server's recommended tools?",
|
|
76
|
+
description: "Removing them will turn off recommended tools. Arcade will stop keeping your selection up to date automatically.",
|
|
77
|
+
confirmLabel: "Remove"
|
|
78
|
+
},
|
|
79
|
+
"clear-all": {
|
|
80
|
+
title: "Clear your selection?",
|
|
81
|
+
description: "This removes all your selected tools, including the recommended ones.",
|
|
82
|
+
confirmLabel: "Clear all"
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
function v({ kind: e, open: l, onConfirm: u, onCancel: d }) {
|
|
86
|
+
let m = _[e];
|
|
87
|
+
return /* @__PURE__ */ f(c, {
|
|
88
|
+
onOpenChange: (e) => {
|
|
89
|
+
e || d();
|
|
90
|
+
},
|
|
91
|
+
open: l,
|
|
92
|
+
children: /* @__PURE__ */ p(r, {
|
|
93
|
+
size: "sm",
|
|
94
|
+
children: [/* @__PURE__ */ p(s, { children: [/* @__PURE__ */ f(n, { children: m.title }), m.description ? /* @__PURE__ */ f(t, { children: m.description }) : null] }), /* @__PURE__ */ p(a, { children: [/* @__PURE__ */ f(o, { children: "Cancel" }), /* @__PURE__ */ f(i, {
|
|
95
|
+
onClick: u,
|
|
96
|
+
variant: "destructive",
|
|
97
|
+
children: m.confirmLabel
|
|
98
|
+
})] })]
|
|
99
|
+
})
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
//#endregion
|
|
103
|
+
export { m as McpRecommendedToolsCallout, h as McpRecommendedToolsDeactivateDialog, v as McpRecommendedToolsOptOutDialog };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
export type McpReviewCountChipProps = {
|
|
3
|
+
/** Total selected tools — shown as the primary count. */
|
|
4
|
+
toolCount: number;
|
|
5
|
+
/** Total selected MCP servers — shown as the secondary count after a divider. */
|
|
6
|
+
serverCount: number;
|
|
7
|
+
/**
|
|
8
|
+
* The chip is currently in its pressed/open state — used when a click on
|
|
9
|
+
* the chip toggles a review pane. Adds an external ring so the active
|
|
10
|
+
* state reads at a glance without being confused with hover.
|
|
11
|
+
*/
|
|
12
|
+
active?: boolean;
|
|
13
|
+
} & Omit<React.ComponentProps<"button">, "children" | "type">;
|
|
14
|
+
/**
|
|
15
|
+
* Compact button-chip summarising the current selection — "N tools · M
|
|
16
|
+
* servers". Sits in the picker's selection summary bar and toggles the grouped
|
|
17
|
+
* review pane when clicked. Resting tint hints "clickable"; the active state
|
|
18
|
+
* adds an external ring (same family as the server pills' focus ring) so the
|
|
19
|
+
* user can see where the click landed.
|
|
20
|
+
*/
|
|
21
|
+
export declare function McpReviewCountChip({ toolCount, serverCount, active, className, "aria-label": ariaLabel, ...rest }: McpReviewCountChipProps): React.JSX.Element;
|
|
22
|
+
//# sourceMappingURL=review-count-chip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-count-chip.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/review-count-chip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,MAAM,MAAM,uBAAuB,GAAG;IACpC,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,WAAW,EACX,MAAc,EACd,SAAS,EACT,YAAY,EAAE,SAAS,EACvB,GAAG,IAAI,EACR,EAAE,uBAAuB,qBAkCzB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../../lib/utils.js";
|
|
4
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
5
|
+
//#region lib/components/ui/molecules/mcp-server-picker/review-count-chip.tsx
|
|
6
|
+
function r({ toolCount: r, serverCount: i, active: a = !1, className: o, "aria-label": s, ...c }) {
|
|
7
|
+
let l = r === 1 ? "tool" : "tools", u = i === 1 ? "server" : "servers", d = s ?? `View selection: ${r} ${l}, ${i} ${u}`;
|
|
8
|
+
return /* @__PURE__ */ n("button", {
|
|
9
|
+
...c,
|
|
10
|
+
"aria-expanded": a,
|
|
11
|
+
"aria-label": d,
|
|
12
|
+
className: e("flex shrink-0 cursor-pointer items-center gap-1.5 rounded-md bg-foreground/[0.04] px-2 py-1 font-medium text-xs transition-[background-color,box-shadow,color] duration-[var(--duration-fast)] ease-[var(--ease-smooth)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 motion-reduce:transition-colors", a ? "text-foreground ring-2 ring-ring/60" : "hover:bg-foreground/10", o),
|
|
13
|
+
"data-slot": "mcp-review-count-chip",
|
|
14
|
+
"data-status": a ? "open" : "closed",
|
|
15
|
+
type: "button",
|
|
16
|
+
children: [
|
|
17
|
+
/* @__PURE__ */ t("span", {
|
|
18
|
+
className: "tabular-nums",
|
|
19
|
+
children: r
|
|
20
|
+
}),
|
|
21
|
+
/* @__PURE__ */ t("span", {
|
|
22
|
+
className: "text-muted-foreground",
|
|
23
|
+
children: l
|
|
24
|
+
}),
|
|
25
|
+
/* @__PURE__ */ t("span", {
|
|
26
|
+
"aria-hidden": !0,
|
|
27
|
+
className: "text-muted-foreground/60",
|
|
28
|
+
children: "·"
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ t("span", {
|
|
31
|
+
className: "tabular-nums",
|
|
32
|
+
children: i
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ t("span", {
|
|
35
|
+
className: "text-muted-foreground",
|
|
36
|
+
children: u
|
|
37
|
+
})
|
|
38
|
+
]
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
export { r as McpReviewCountChip };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Tabs } from '../../atoms/tabs';
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
export type McpSearchScope = "servers" | "tools";
|
|
4
|
+
export type McpSearchScopeTabsProps = {
|
|
5
|
+
active: McpSearchScope;
|
|
6
|
+
serverCount: number;
|
|
7
|
+
toolCount: number;
|
|
8
|
+
onChange?: (scope: McpSearchScope) => void;
|
|
9
|
+
} & Omit<React.ComponentProps<typeof Tabs>, "value" | "onValueChange" | "onChange">;
|
|
10
|
+
/**
|
|
11
|
+
* MCP servers / Tools scope switcher shown above search results. Composes the
|
|
12
|
+
* design-system `Tabs` primitive (line variant) instead of reimplementing
|
|
13
|
+
* tablist semantics — so the underline-on-active look, keyboard nav, and
|
|
14
|
+
* focus-ring all come from the same source as every other tab in the app.
|
|
15
|
+
* It renders tabs and picks one-of-two, so it's named `…Tabs`, not `…Toggle`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function McpSearchScopeTabs({ active, serverCount, toolCount, onChange, ...rest }: McpSearchScopeTabsProps): React.JSX.Element;
|
|
18
|
+
//# sourceMappingURL=search-scope-tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-scope-tabs.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/search-scope-tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,IAAI,EAAyB,MAAM,kBAAkB,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjD,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC5C,GAAG,IAAI,CACN,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EACjC,OAAO,GAAG,eAAe,GAAG,UAAU,CACvC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EACN,WAAW,EACX,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,uBAAuB,qBAwBzB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { i as e, r as t, t as n } from "../../../../tabs-C7JA8G0W.js";
|
|
4
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
5
|
+
//#region lib/components/ui/molecules/mcp-server-picker/search-scope-tabs.tsx
|
|
6
|
+
function a({ active: a, serverCount: o, toolCount: s, onChange: c, ...l }) {
|
|
7
|
+
return /* @__PURE__ */ r(n, {
|
|
8
|
+
...l,
|
|
9
|
+
"aria-label": "Search result scope",
|
|
10
|
+
onValueChange: (e) => c?.(e),
|
|
11
|
+
value: a,
|
|
12
|
+
children: /* @__PURE__ */ i(t, {
|
|
13
|
+
variant: "line",
|
|
14
|
+
children: [/* @__PURE__ */ i(e, {
|
|
15
|
+
value: "servers",
|
|
16
|
+
children: ["MCP servers", /* @__PURE__ */ r("span", {
|
|
17
|
+
className: "text-muted-foreground tabular-nums",
|
|
18
|
+
children: o
|
|
19
|
+
})]
|
|
20
|
+
}), /* @__PURE__ */ i(e, {
|
|
21
|
+
value: "tools",
|
|
22
|
+
children: ["Tools", /* @__PURE__ */ r("span", {
|
|
23
|
+
className: "text-muted-foreground tabular-nums",
|
|
24
|
+
children: s
|
|
25
|
+
})]
|
|
26
|
+
})]
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
31
|
+
export { a as McpSearchScopeTabs };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
export type McpSectionCalloutProps = {
|
|
3
|
+
/** Section title — rendered semibold. */
|
|
4
|
+
title: React.ReactNode;
|
|
5
|
+
/** Short explanatory paragraph beneath the title. */
|
|
6
|
+
description: React.ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* Optional inline control rendered next to the title (e.g. an on/off switch).
|
|
9
|
+
* Sits on the title row, close enough that the eye reads it and the title as
|
|
10
|
+
* one unit.
|
|
11
|
+
*/
|
|
12
|
+
action?: React.ReactNode;
|
|
13
|
+
} & Omit<React.ComponentProps<"div">, "title" | "children">;
|
|
14
|
+
/**
|
|
15
|
+
* Flat section explainer shown above a stream of picker results — a semibold
|
|
16
|
+
* title with an optional inline control, and a muted description beneath. No
|
|
17
|
+
* card chrome, so it reads as part of the results rather than a competing
|
|
18
|
+
* surface. The shared layout behind the Recommended and Unoptimized callouts.
|
|
19
|
+
*/
|
|
20
|
+
export declare function McpSectionCallout({ title, description, action, className, ...rest }: McpSectionCalloutProps): React.JSX.Element;
|
|
21
|
+
//# sourceMappingURL=section-callout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-callout.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/section-callout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,MAAM,MAAM,sBAAsB,GAAG;IACnC,yCAAyC;IACzC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,qDAAqD;IACrD,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE,sBAAsB,qBAgBxB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../../lib/utils.js";
|
|
4
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
5
|
+
//#region lib/components/ui/molecules/mcp-server-picker/section-callout.tsx
|
|
6
|
+
function r({ title: r, description: i, action: a, className: o, ...s }) {
|
|
7
|
+
return /* @__PURE__ */ n("div", {
|
|
8
|
+
className: e("px-0.5 py-1", o),
|
|
9
|
+
...s,
|
|
10
|
+
children: [a ? /* @__PURE__ */ n("div", {
|
|
11
|
+
className: "inline-flex items-center gap-3 font-semibold text-foreground text-sm",
|
|
12
|
+
children: [/* @__PURE__ */ t("span", { children: r }), a]
|
|
13
|
+
}) : /* @__PURE__ */ t("p", {
|
|
14
|
+
className: "font-semibold text-foreground text-sm",
|
|
15
|
+
children: r
|
|
16
|
+
}), /* @__PURE__ */ t("p", {
|
|
17
|
+
className: "mt-1.5 text-[13px] text-muted-foreground leading-relaxed",
|
|
18
|
+
children: i
|
|
19
|
+
})]
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { r as McpSectionCallout };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
export type McpSectionNavHeaderProps = {
|
|
3
|
+
/**
|
|
4
|
+
* Identity slot — typically a `McpToolkitGroupHeader` or a plain title with
|
|
5
|
+
* trailing count. Rendered after the back affordance and the divider.
|
|
6
|
+
*/
|
|
7
|
+
identity: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Optional right-aligned actions (e.g. "Select all" / "Clear" buttons). Wraps
|
|
10
|
+
* to a second row at narrow widths instead of squeezing the identity slot.
|
|
11
|
+
*/
|
|
12
|
+
actions?: React.ReactNode;
|
|
13
|
+
/**
|
|
14
|
+
* Click handler for the back affordance. When provided, the default
|
|
15
|
+
* "← MCP servers" button is rendered automatically.
|
|
16
|
+
*/
|
|
17
|
+
onBack?: () => void;
|
|
18
|
+
/**
|
|
19
|
+
* Label for the back button (and its `aria-label`). Override to match the
|
|
20
|
+
* surface being returned to — e.g. `"Tools"` or `"Results"`.
|
|
21
|
+
*/
|
|
22
|
+
backLabel?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Render a custom back affordance. Overrides `onBack` + `backLabel` if both
|
|
25
|
+
* are passed — useful when the back action needs to be a link instead of a
|
|
26
|
+
* button.
|
|
27
|
+
*/
|
|
28
|
+
back?: React.ReactNode;
|
|
29
|
+
} & Omit<React.ComponentProps<"div">, "children">;
|
|
30
|
+
/**
|
|
31
|
+
* Section navigation strip used at the top of a drill-in or review pane:
|
|
32
|
+
* a back affordance, a separator, identity (avatar + title + count), and an
|
|
33
|
+
* optional cluster of actions on the right. Used as the recurring header for
|
|
34
|
+
* `ToolsView` and `SelectedToolsReview` inside the MCP server picker.
|
|
35
|
+
*
|
|
36
|
+
* Pure layout — the caller owns what goes in each slot.
|
|
37
|
+
*/
|
|
38
|
+
export declare function McpSectionNavHeader({ identity, actions, back, onBack, backLabel, className, ...rest }: McpSectionNavHeaderProps): React.JSX.Element;
|
|
39
|
+
//# sourceMappingURL=section-nav-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"section-nav-header.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/section-nav-header.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;OAGG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;AAElD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,MAAM,EACN,SAAyB,EACzB,SAAS,EACT,GAAG,IAAI,EACR,EAAE,wBAAwB,qBAoC1B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../../lib/utils.js";
|
|
4
|
+
import { t } from "../../../../button-BNOmhdpM.js";
|
|
5
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
6
|
+
import { ChevronLeft as i } from "lucide-react";
|
|
7
|
+
//#region lib/components/ui/molecules/mcp-server-picker/section-nav-header.tsx
|
|
8
|
+
function a({ identity: a, actions: o, back: s, onBack: c, backLabel: l = "MCP servers", className: u, ...d }) {
|
|
9
|
+
let f = s ?? (c ? /* @__PURE__ */ r(t, {
|
|
10
|
+
"aria-label": `Back to ${l.toLowerCase()}`,
|
|
11
|
+
onClick: c,
|
|
12
|
+
size: "sm",
|
|
13
|
+
variant: "ghost",
|
|
14
|
+
children: [/* @__PURE__ */ n(i, {
|
|
15
|
+
"aria-hidden": !0,
|
|
16
|
+
"data-icon": "inline-start"
|
|
17
|
+
}), l]
|
|
18
|
+
}) : null);
|
|
19
|
+
return /* @__PURE__ */ r("div", {
|
|
20
|
+
...d,
|
|
21
|
+
className: e("flex flex-wrap items-center justify-between gap-x-3 gap-y-2", u),
|
|
22
|
+
"data-slot": "mcp-section-nav-header",
|
|
23
|
+
children: [/* @__PURE__ */ r("div", {
|
|
24
|
+
className: "flex min-w-0 items-center gap-3",
|
|
25
|
+
children: [
|
|
26
|
+
f,
|
|
27
|
+
f ? /* @__PURE__ */ n("span", {
|
|
28
|
+
"aria-hidden": !0,
|
|
29
|
+
className: "h-5 w-px shrink-0 bg-border"
|
|
30
|
+
}) : null,
|
|
31
|
+
/* @__PURE__ */ n("div", {
|
|
32
|
+
className: "flex min-w-0 items-center gap-2",
|
|
33
|
+
children: a
|
|
34
|
+
})
|
|
35
|
+
]
|
|
36
|
+
}), o ? /* @__PURE__ */ n("div", {
|
|
37
|
+
className: "flex items-center gap-1",
|
|
38
|
+
children: o
|
|
39
|
+
}) : null]
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
export { a as McpSectionNavHeader };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
export type McpServerAvatarStackItem = {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
toolkitId?: string;
|
|
6
|
+
selectedCount?: number;
|
|
7
|
+
total?: number;
|
|
8
|
+
};
|
|
9
|
+
export type McpServerAvatarStackProps = {
|
|
10
|
+
servers: McpServerAvatarStackItem[];
|
|
11
|
+
maxVisible?: number;
|
|
12
|
+
overflowLabel?: string;
|
|
13
|
+
onOpenMcpServer?: (id: string) => void;
|
|
14
|
+
} & Omit<React.ComponentProps<"span">, "children">;
|
|
15
|
+
export declare function McpServerAvatarStack({ servers, maxVisible, overflowLabel, onOpenMcpServer, className, ...rest }: McpServerAvatarStackProps): React.JSX.Element | null;
|
|
16
|
+
//# sourceMappingURL=server-avatar-stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-avatar-stack.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/server-avatar-stack.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAYpC,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AAEnD,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,UAAc,EACd,aAAkC,EAClC,eAAe,EACf,SAAS,EACT,GAAG,IAAI,EACR,EAAE,yBAAyB,4BAmC3B"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../../lib/utils.js";
|
|
4
|
+
import { i as t, n, o as r, t as i } from "../../../../popover-CXSOUeVQ.js";
|
|
5
|
+
import { t as a } from "../../../../scroll-area-53KPfESS.js";
|
|
6
|
+
import { McpToolkitAvatar as o } from "./toolkit-avatar.js";
|
|
7
|
+
import { useState as s } from "react";
|
|
8
|
+
import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
9
|
+
//#region lib/components/ui/molecules/mcp-server-picker/server-avatar-stack.tsx
|
|
10
|
+
function d({ servers: t, maxVisible: n = 5, overflowLabel: r = "more MCP servers", onOpenMcpServer: i, className: a, ...s }) {
|
|
11
|
+
if (t.length === 0) return null;
|
|
12
|
+
let c = t.slice(0, n), d = t.slice(n), p = d.length;
|
|
13
|
+
return /* @__PURE__ */ u("span", {
|
|
14
|
+
...s,
|
|
15
|
+
className: e("inline-flex shrink-0 items-center gap-1", a),
|
|
16
|
+
"data-slot": "mcp-server-avatar-stack",
|
|
17
|
+
children: [/* @__PURE__ */ l("span", {
|
|
18
|
+
className: "inline-flex items-center gap-1",
|
|
19
|
+
children: c.map((e) => /* @__PURE__ */ l(o, {
|
|
20
|
+
name: e.name,
|
|
21
|
+
size: "xs",
|
|
22
|
+
title: e.name,
|
|
23
|
+
toolkitId: e.toolkitId
|
|
24
|
+
}, e.id))
|
|
25
|
+
}), p > 0 ? /* @__PURE__ */ l(f, {
|
|
26
|
+
label: r,
|
|
27
|
+
onOpenMcpServer: i,
|
|
28
|
+
servers: d
|
|
29
|
+
}) : null]
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function f({ label: e, servers: o, onOpenMcpServer: c }) {
|
|
33
|
+
let [d, f] = s(!1), m = o.length, h = m === 1 ? "server" : "servers", g = `Show ${m} ${e}`;
|
|
34
|
+
return /* @__PURE__ */ u(i, {
|
|
35
|
+
onOpenChange: f,
|
|
36
|
+
open: d,
|
|
37
|
+
children: [/* @__PURE__ */ u(r, {
|
|
38
|
+
"aria-label": g,
|
|
39
|
+
className: "inline-flex size-[18px] cursor-pointer items-center justify-center rounded-full bg-foreground/8 font-medium text-[9px] text-muted-foreground tabular-nums transition-colors hover:bg-foreground/12 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60",
|
|
40
|
+
title: g,
|
|
41
|
+
type: "button",
|
|
42
|
+
children: ["+", m]
|
|
43
|
+
}), /* @__PURE__ */ u(n, {
|
|
44
|
+
align: "start",
|
|
45
|
+
className: "w-56 gap-0 p-0",
|
|
46
|
+
sideOffset: 6,
|
|
47
|
+
children: [/* @__PURE__ */ u(t, {
|
|
48
|
+
className: "px-3 pt-2.5 pb-1.5 font-medium text-foreground text-xs",
|
|
49
|
+
children: [
|
|
50
|
+
m,
|
|
51
|
+
" more MCP ",
|
|
52
|
+
h
|
|
53
|
+
]
|
|
54
|
+
}), /* @__PURE__ */ l(a, {
|
|
55
|
+
className: "max-h-72",
|
|
56
|
+
orientation: "vertical",
|
|
57
|
+
type: "hover",
|
|
58
|
+
children: /* @__PURE__ */ l("ul", {
|
|
59
|
+
className: "flex flex-col py-1",
|
|
60
|
+
children: o.map((e) => /* @__PURE__ */ l("li", { children: /* @__PURE__ */ l(p, {
|
|
61
|
+
onOpenMcpServer: c ? (e) => {
|
|
62
|
+
f(!1), c(e);
|
|
63
|
+
} : void 0,
|
|
64
|
+
server: e
|
|
65
|
+
}) }, e.id))
|
|
66
|
+
})
|
|
67
|
+
})]
|
|
68
|
+
})]
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function p({ server: e, onOpenMcpServer: t }) {
|
|
72
|
+
let n = /* @__PURE__ */ u(c, { children: [
|
|
73
|
+
/* @__PURE__ */ l(o, {
|
|
74
|
+
name: e.name,
|
|
75
|
+
size: "sm",
|
|
76
|
+
toolkitId: e.toolkitId
|
|
77
|
+
}),
|
|
78
|
+
/* @__PURE__ */ l("span", {
|
|
79
|
+
className: "min-w-0 flex-1 truncate font-medium capitalize",
|
|
80
|
+
children: e.name
|
|
81
|
+
}),
|
|
82
|
+
e.selectedCount != null && e.total != null ? /* @__PURE__ */ l("span", {
|
|
83
|
+
className: "shrink-0 text-[10px] text-muted-foreground tabular-nums",
|
|
84
|
+
children: e.selectedCount === e.total ? `${e.total}` : `${e.selectedCount}/${e.total}`
|
|
85
|
+
}) : null
|
|
86
|
+
] });
|
|
87
|
+
return t ? /* @__PURE__ */ l("button", {
|
|
88
|
+
"aria-label": `Open ${e.name} tools`,
|
|
89
|
+
className: "flex w-full cursor-pointer items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors hover:bg-foreground/[0.06] focus-visible:bg-foreground/[0.06] focus-visible:outline-none",
|
|
90
|
+
onClick: () => t(e.id),
|
|
91
|
+
type: "button",
|
|
92
|
+
children: n
|
|
93
|
+
}) : /* @__PURE__ */ l("div", {
|
|
94
|
+
className: "flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs",
|
|
95
|
+
children: n
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
//#endregion
|
|
99
|
+
export { d as McpServerAvatarStack };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ClassProp } from 'class-variance-authority/types';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export type McpServerCardSelectionState = "none" | "partial" | "selected";
|
|
4
|
+
declare const shellVariants: (props?: ({
|
|
5
|
+
selectionState?: "none" | "selected" | "partial" | "setup-none" | "setup-selected" | "setup-partial" | null | undefined;
|
|
6
|
+
} & ClassProp) | undefined) => string;
|
|
7
|
+
export type McpServerCardProps = {
|
|
8
|
+
name: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Toolkit id used to resolve the brand icon. Falls back to a letter avatar
|
|
12
|
+
* when no brand mark is registered — the single fallback path shared with
|
|
13
|
+
* `McpToolkitChip` and the summary bar, via `McpToolkitAvatar`.
|
|
14
|
+
*/
|
|
15
|
+
toolkitId?: string;
|
|
16
|
+
/**
|
|
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
|
+
* pair when stacked together.
|
|
20
|
+
*/
|
|
21
|
+
version?: string;
|
|
22
|
+
toolCount: number;
|
|
23
|
+
selectedToolCount?: number;
|
|
24
|
+
selectionState?: McpServerCardSelectionState;
|
|
25
|
+
isUnoptimized?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* The server requires a secret (API key, OAuth, etc.) that isn't configured
|
|
28
|
+
* yet, so its tools can't be selected. The card becomes a single clickable
|
|
29
|
+
* "Set up" affordance that fires `onSetup` (intended to open a setup dialog)
|
|
30
|
+
* and drops the toggle/customize controls until it's configured.
|
|
31
|
+
*/
|
|
32
|
+
needsSetup?: boolean;
|
|
33
|
+
/** Fired when a `needsSetup` card is clicked. */
|
|
34
|
+
onSetup?: () => void;
|
|
35
|
+
onToggle?: () => void;
|
|
36
|
+
onCustomize?: () => void;
|
|
37
|
+
} & Omit<React.ComponentProps<"div">, "onToggle">;
|
|
38
|
+
declare function McpServerCardImpl({ name, description, toolkitId, version, toolCount, selectedToolCount, selectionState, isUnoptimized, needsSetup, onSetup, onToggle, onCustomize, className, ...rest }: McpServerCardProps): React.JSX.Element;
|
|
39
|
+
export declare const McpServerCard: React.MemoExoticComponent<typeof McpServerCardImpl>;
|
|
40
|
+
export { shellVariants as mcpServerCardShellVariants };
|
|
41
|
+
//# sourceMappingURL=server-card.d.ts.map
|
|
@@ -0,0 +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;AAW/B,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1E,QAAA,MAAM,aAAa;;8EAoBlB,CAAC;AAwBF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,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,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;AA6IlD,iBAAS,iBAAiB,CAAC,EACzB,IAAI,EACJ,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,EACT,iBAAqB,EACrB,cAAuB,EACvB,aAAqB,EACrB,UAAkB,EAClB,OAAO,EACP,QAAQ,EACR,WAAW,EACX,SAAS,EACT,GAAG,IAAI,EACR,EAAE,kBAAkB,qBAmCpB;AAED,eAAO,MAAM,aAAa,qDAAgC,CAAC;AAC3D,OAAO,EAAE,aAAa,IAAI,0BAA0B,EAAE,CAAC"}
|