@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,124 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../../lib/utils.js";
|
|
4
|
+
import { t } from "../../../../dist-Ber_p4PA.js";
|
|
5
|
+
import { i as n, n as r, r as i, t as a } from "../../../../tooltip-34vRSwJG.js";
|
|
6
|
+
import { UnoptimizedMarker as o } from "../../atoms/unoptimized-marker.js";
|
|
7
|
+
import { McpToolkitAvatar as s } from "./toolkit-avatar.js";
|
|
8
|
+
import * as c from "react";
|
|
9
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
10
|
+
import { ChevronRight as d, KeyRound as f } from "lucide-react";
|
|
11
|
+
//#region lib/components/ui/molecules/mcp-server-picker/server-card.tsx
|
|
12
|
+
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", {
|
|
13
|
+
variants: { selectionState: {
|
|
14
|
+
selected: "border-foreground/45 bg-muted/20 shadow-[var(--shadow-card)]",
|
|
15
|
+
partial: "border-foreground/45 border-dashed bg-muted/20 shadow-[var(--shadow-card)]",
|
|
16
|
+
none: "border-border hover:border-foreground/40 hover:shadow-[var(--shadow-card-hover)]",
|
|
17
|
+
"setup-none": "border-warning/15 hover:border-warning/50 hover:shadow-[var(--shadow-card-hover)]",
|
|
18
|
+
"setup-selected": "border-warning/50 bg-warning/[0.5%] shadow-[var(--shadow-card)]",
|
|
19
|
+
"setup-partial": "border-warning/50 border-dashed bg-warning/[0.5%] shadow-[var(--shadow-card)]"
|
|
20
|
+
} },
|
|
21
|
+
defaultVariants: { selectionState: "none" }
|
|
22
|
+
});
|
|
23
|
+
function m(e, t) {
|
|
24
|
+
return t ? e === "selected" ? "setup-selected" : e === "partial" ? "setup-partial" : "setup-none" : e;
|
|
25
|
+
}
|
|
26
|
+
function h(e) {
|
|
27
|
+
return e === "selected" ? !0 : e === "partial" ? "mixed" : !1;
|
|
28
|
+
}
|
|
29
|
+
function g({ name: e, description: t, toolkitId: n, version: r, isUnoptimized: i, selectionState: a, onToggle: c }) {
|
|
30
|
+
return /* @__PURE__ */ u("button", {
|
|
31
|
+
"aria-label": `${a === "selected" ? "Remove all" : "Add all"} ${e} tools${i ? " (unoptimized)" : ""}`,
|
|
32
|
+
"aria-pressed": h(a),
|
|
33
|
+
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",
|
|
34
|
+
onClick: c,
|
|
35
|
+
title: t || void 0,
|
|
36
|
+
type: "button",
|
|
37
|
+
children: [
|
|
38
|
+
/* @__PURE__ */ l(s, {
|
|
39
|
+
name: e,
|
|
40
|
+
size: "md",
|
|
41
|
+
toolkitId: n
|
|
42
|
+
}),
|
|
43
|
+
/* @__PURE__ */ u("span", {
|
|
44
|
+
className: "flex min-w-0 flex-1 items-baseline gap-1.5",
|
|
45
|
+
children: [/* @__PURE__ */ l("span", {
|
|
46
|
+
className: "min-w-0 truncate font-medium text-base capitalize",
|
|
47
|
+
children: e
|
|
48
|
+
}), r ? /* @__PURE__ */ u("span", {
|
|
49
|
+
className: "shrink-0 font-normal text-muted-foreground text-xs tabular-nums",
|
|
50
|
+
children: ["v", r]
|
|
51
|
+
}) : null]
|
|
52
|
+
}),
|
|
53
|
+
/* @__PURE__ */ l(o, { active: i })
|
|
54
|
+
]
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function _({ name: e, toolsLabel: t, onCustomize: n }) {
|
|
58
|
+
return /* @__PURE__ */ u("button", {
|
|
59
|
+
"aria-label": `Choose individual tools for ${e}`,
|
|
60
|
+
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",
|
|
61
|
+
"data-slot": "mcp-server-card-customize",
|
|
62
|
+
onClick: n,
|
|
63
|
+
type: "button",
|
|
64
|
+
children: [/* @__PURE__ */ l("span", {
|
|
65
|
+
className: "whitespace-nowrap tabular-nums",
|
|
66
|
+
children: t
|
|
67
|
+
}), /* @__PURE__ */ l(d, {
|
|
68
|
+
"aria-hidden": !0,
|
|
69
|
+
className: "size-3 transition-transform duration-[var(--duration-fast)] ease-[var(--ease-smooth)] motion-reduce:transition-none"
|
|
70
|
+
})]
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function v({ name: e, onSetup: t }) {
|
|
74
|
+
return /* @__PURE__ */ l(i, { children: /* @__PURE__ */ u(a, { children: [/* @__PURE__ */ l(n, { render: /* @__PURE__ */ l("button", {
|
|
75
|
+
"aria-label": `Set up ${e}`,
|
|
76
|
+
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",
|
|
77
|
+
"data-slot": "mcp-server-card-setup",
|
|
78
|
+
onClick: t,
|
|
79
|
+
type: "button",
|
|
80
|
+
children: /* @__PURE__ */ l(f, {
|
|
81
|
+
"aria-hidden": !0,
|
|
82
|
+
className: "size-4"
|
|
83
|
+
})
|
|
84
|
+
}) }), /* @__PURE__ */ u(r, {
|
|
85
|
+
className: "max-w-56 flex-col items-start gap-0.5 text-left",
|
|
86
|
+
side: "top",
|
|
87
|
+
children: [/* @__PURE__ */ l("span", {
|
|
88
|
+
className: "font-semibold",
|
|
89
|
+
children: "Setup required"
|
|
90
|
+
}), /* @__PURE__ */ l("span", { children: "This server isn't ready yet. It needs some configuration before its tools work." })]
|
|
91
|
+
})] }) });
|
|
92
|
+
}
|
|
93
|
+
function y({ name: t, description: n, toolkitId: r, version: i, toolCount: a, selectedToolCount: o = 0, selectionState: s = "none", isUnoptimized: c = !1, needsSetup: d = !1, onSetup: f, onToggle: h, onCustomize: y, className: b, ...x }) {
|
|
94
|
+
let S = s === "partial" ? `${o}/${a} tools` : `${a} ${a === 1 ? "tool" : "tools"}`;
|
|
95
|
+
return /* @__PURE__ */ u("div", {
|
|
96
|
+
...x,
|
|
97
|
+
className: e(p({ selectionState: m(s, d) }), b),
|
|
98
|
+
"data-slot": "mcp-server-card",
|
|
99
|
+
"data-status": d ? "needs-setup" : s,
|
|
100
|
+
children: [
|
|
101
|
+
/* @__PURE__ */ l(g, {
|
|
102
|
+
description: n,
|
|
103
|
+
isUnoptimized: c,
|
|
104
|
+
name: t,
|
|
105
|
+
onToggle: h,
|
|
106
|
+
selectionState: s,
|
|
107
|
+
toolkitId: r,
|
|
108
|
+
version: i
|
|
109
|
+
}),
|
|
110
|
+
d ? /* @__PURE__ */ l(v, {
|
|
111
|
+
name: t,
|
|
112
|
+
onSetup: f
|
|
113
|
+
}) : null,
|
|
114
|
+
/* @__PURE__ */ l(_, {
|
|
115
|
+
name: t,
|
|
116
|
+
onCustomize: y,
|
|
117
|
+
toolsLabel: S
|
|
118
|
+
})
|
|
119
|
+
]
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
var b = c.memo(y);
|
|
123
|
+
//#endregion
|
|
124
|
+
export { b as McpServerCard, p as mcpServerCardShellVariants };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type McpToolCardProps = {
|
|
3
|
+
/**
|
|
4
|
+
* Friendly, human-readable tool title (e.g. "Send email"). The consumer is
|
|
5
|
+
* responsible for humanizing; the card renders this verbatim, so passing a
|
|
6
|
+
* raw id shows the id.
|
|
7
|
+
*/
|
|
8
|
+
name: string;
|
|
9
|
+
/** Fully-qualified tool id (e.g. "Gmail.SendEmail"), surfaced in the tooltip. */
|
|
10
|
+
rawName?: string;
|
|
11
|
+
/** Optional tool version, shown muted next to the name (e.g. "1.2.4"). */
|
|
12
|
+
version?: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
selected?: boolean;
|
|
15
|
+
destructive?: boolean;
|
|
16
|
+
readOnly?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Tool sourced from an unoptimized toolkit. Renders a `{}` marker in the
|
|
19
|
+
* leading metadata slot.
|
|
20
|
+
*/
|
|
21
|
+
isUnoptimized?: boolean;
|
|
22
|
+
onToggle?: () => void;
|
|
23
|
+
} & Omit<React.ComponentProps<"button">, "onClick" | "onToggle" | "name">;
|
|
24
|
+
declare function McpToolCardImpl({ name, rawName, version, description, selected, destructive, readOnly, isUnoptimized, onToggle, className, ...rest }: McpToolCardProps): React.JSX.Element;
|
|
25
|
+
export declare const McpToolCard: React.MemoExoticComponent<typeof McpToolCardImpl>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=tool-card.d.ts.map
|
|
@@ -0,0 +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;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;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,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,aAAqB,EACrB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,gBAAgB,qBAmFlB;AAED,eAAO,MAAM,WAAW,mDAA8B,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
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 { UnoptimizedMarker as a } from "../../atoms/unoptimized-marker.js";
|
|
6
|
+
import * as o from "react";
|
|
7
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
8
|
+
import { Check as l } from "lucide-react";
|
|
9
|
+
//#region lib/components/ui/molecules/mcp-server-picker/tool-card.tsx
|
|
10
|
+
function u({ name: o, rawName: u, version: d, description: f, selected: p = !1, destructive: m = !1, readOnly: h = !1, isUnoptimized: g = !1, onToggle: _, className: v, ...y }) {
|
|
11
|
+
let b = /* @__PURE__ */ c("button", {
|
|
12
|
+
...y,
|
|
13
|
+
"aria-pressed": p,
|
|
14
|
+
className: e("flex cursor-pointer items-start gap-2.5 rounded-lg border p-3 text-left transition-[background-color,border-color,box-shadow,transform] duration-[var(--duration-normal)] ease-[var(--ease-smooth)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/60 active:scale-[0.98] motion-reduce:transition-colors motion-reduce:active:scale-100", p ? "border-foreground/45 bg-muted/20 shadow-[var(--shadow-card)]" : "border-border hover:border-foreground/40 hover:shadow-[var(--shadow-card-hover)]", v),
|
|
15
|
+
"data-slot": "mcp-tool-card",
|
|
16
|
+
"data-status": p ? "selected" : "none",
|
|
17
|
+
onClick: _,
|
|
18
|
+
type: "button",
|
|
19
|
+
children: [/* @__PURE__ */ s("span", {
|
|
20
|
+
"aria-hidden": !0,
|
|
21
|
+
className: e("mt-0.5 flex size-4 shrink-0 items-center justify-center rounded-[4px] border transition-colors", p ? "border-primary bg-primary text-primary-foreground" : "border-input"),
|
|
22
|
+
children: p ? /* @__PURE__ */ s(l, { className: "size-3" }) : null
|
|
23
|
+
}), /* @__PURE__ */ c("span", {
|
|
24
|
+
className: "min-w-0 flex-1",
|
|
25
|
+
children: [/* @__PURE__ */ c("span", {
|
|
26
|
+
className: "flex items-start justify-between gap-3",
|
|
27
|
+
children: [/* @__PURE__ */ c("span", {
|
|
28
|
+
className: "flex min-w-0 items-baseline gap-1.5",
|
|
29
|
+
children: [
|
|
30
|
+
/* @__PURE__ */ s("span", {
|
|
31
|
+
className: "truncate font-medium text-sm",
|
|
32
|
+
children: o
|
|
33
|
+
}),
|
|
34
|
+
d ? /* @__PURE__ */ c("span", {
|
|
35
|
+
className: "shrink-0 font-normal text-muted-foreground text-xs tabular-nums",
|
|
36
|
+
children: ["v", d]
|
|
37
|
+
}) : null,
|
|
38
|
+
/* @__PURE__ */ s(a, { active: g })
|
|
39
|
+
]
|
|
40
|
+
}), /* @__PURE__ */ c("span", {
|
|
41
|
+
className: "flex shrink-0 items-center gap-1.5 self-start",
|
|
42
|
+
children: [m ? /* @__PURE__ */ s("span", {
|
|
43
|
+
className: "ds-focus-in rounded-full bg-destructive/10 px-1.5 py-0.5 font-medium text-[10px] text-destructive uppercase tracking-wide",
|
|
44
|
+
children: "Destructive"
|
|
45
|
+
}) : null, h ? /* @__PURE__ */ s("span", {
|
|
46
|
+
className: "ds-focus-in rounded-full bg-muted px-1.5 py-0.5 font-medium text-[10px] text-muted-foreground uppercase tracking-wide",
|
|
47
|
+
children: "Read-only"
|
|
48
|
+
}) : null]
|
|
49
|
+
})]
|
|
50
|
+
}), f ? /* @__PURE__ */ s("span", {
|
|
51
|
+
className: "mt-0.5 line-clamp-1 text-muted-foreground text-xs leading-snug",
|
|
52
|
+
children: f
|
|
53
|
+
}) : null]
|
|
54
|
+
})]
|
|
55
|
+
});
|
|
56
|
+
return f ? /* @__PURE__ */ s(r, { children: /* @__PURE__ */ c(i, { children: [/* @__PURE__ */ s(t, { render: b }), /* @__PURE__ */ c(n, {
|
|
57
|
+
className: "max-w-xs flex-col items-start gap-0.5 text-left text-xs",
|
|
58
|
+
side: "bottom",
|
|
59
|
+
children: [u && u !== o ? /* @__PURE__ */ s("span", {
|
|
60
|
+
className: "font-medium",
|
|
61
|
+
children: u
|
|
62
|
+
}) : null, /* @__PURE__ */ s("span", { children: f })]
|
|
63
|
+
})] }) }) : b;
|
|
64
|
+
}
|
|
65
|
+
var d = o.memo(u);
|
|
66
|
+
//#endregion
|
|
67
|
+
export { d as McpToolCard };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
export type McpToolSearchState = "on" | "off";
|
|
3
|
+
export type McpToolSearchBandProps = {
|
|
4
|
+
state: McpToolSearchState;
|
|
5
|
+
onToggle?: (checked: boolean) => void;
|
|
6
|
+
} & Omit<React.ComponentProps<"div">, "children" | "onToggle">;
|
|
7
|
+
export declare function McpToolSearchBand({ state, onToggle, className, ...rest }: McpToolSearchBandProps): React.JSX.Element;
|
|
8
|
+
//# sourceMappingURL=tool-search-band.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-search-band.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/tool-search-band.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,KAAK,CAAC;AAE9C,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;AAE/D,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,sBAAsB,qBAmCxB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../../lib/utils.js";
|
|
4
|
+
import { t } from "../../../../switch-CP9j-8px.js";
|
|
5
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
6
|
+
//#region lib/components/ui/molecules/mcp-server-picker/tool-search-band.tsx
|
|
7
|
+
function i({ state: i, onToggle: a, className: o, ...s }) {
|
|
8
|
+
let c = i === "on";
|
|
9
|
+
return /* @__PURE__ */ n("div", {
|
|
10
|
+
...s,
|
|
11
|
+
className: e("rounded-lg border border-border/60 bg-muted/25 px-3.5 py-3", o),
|
|
12
|
+
"data-slot": "mcp-tool-search-band",
|
|
13
|
+
"data-status": i,
|
|
14
|
+
children: /* @__PURE__ */ r("div", {
|
|
15
|
+
className: "flex items-center justify-between gap-4",
|
|
16
|
+
children: [/* @__PURE__ */ r("div", {
|
|
17
|
+
className: "min-w-0",
|
|
18
|
+
children: [/* @__PURE__ */ n("p", {
|
|
19
|
+
className: "font-semibold text-[15px] text-foreground leading-snug",
|
|
20
|
+
children: "Personalized Tool Search"
|
|
21
|
+
}), /* @__PURE__ */ n("p", {
|
|
22
|
+
className: "mt-1.5 text-[13px] text-muted-foreground leading-snug",
|
|
23
|
+
children: "Your agent fetches only the tools relevant to each task, saving tokens and keeping responses focused."
|
|
24
|
+
})]
|
|
25
|
+
}), /* @__PURE__ */ r("div", {
|
|
26
|
+
className: "flex shrink-0 items-center gap-2 text-muted-foreground text-sm",
|
|
27
|
+
children: [/* @__PURE__ */ n("span", {
|
|
28
|
+
className: "tabular-nums",
|
|
29
|
+
children: c ? "On" : "Off"
|
|
30
|
+
}), /* @__PURE__ */ n(t, {
|
|
31
|
+
"aria-label": `Personalized Tool Search ${c ? "on" : "off"}`,
|
|
32
|
+
checked: c,
|
|
33
|
+
onCheckedChange: a,
|
|
34
|
+
size: "default"
|
|
35
|
+
})]
|
|
36
|
+
})]
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
export { i as McpToolSearchBand };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import { ClassProp } from 'class-variance-authority/types';
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
declare const avatarVariants: (props?: ({
|
|
5
|
+
size?: "xs" | "sm" | "lg" | "md" | null | undefined;
|
|
6
|
+
} & ClassProp) | undefined) => string;
|
|
7
|
+
export type McpToolkitAvatarProps = {
|
|
8
|
+
/** Toolkit display name — used for the letter fallback. */
|
|
9
|
+
name: string;
|
|
10
|
+
/** Toolkit ID — used to look up the brand icon. Omit to force fallback. */
|
|
11
|
+
toolkitId?: string;
|
|
12
|
+
} & VariantProps<typeof avatarVariants> & Omit<React.ComponentProps<"span">, "children">;
|
|
13
|
+
declare function McpToolkitAvatarImpl({ name, toolkitId, size, className, ...rest }: McpToolkitAvatarProps): React.JSX.Element;
|
|
14
|
+
export declare const McpToolkitAvatar: React.MemoExoticComponent<typeof McpToolkitAvatarImpl>;
|
|
15
|
+
export { avatarVariants as mcpToolkitAvatarVariants };
|
|
16
|
+
//# sourceMappingURL=toolkit-avatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolkit-avatar.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/toolkit-avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4B/B,QAAA,MAAM,cAAc;;8EAenB,CAAC;AASF,MAAM,MAAM,qBAAqB,GAAG;IAClC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,GACrC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;AAEjD,iBAAS,oBAAoB,CAAC,EAC5B,IAAI,EACJ,SAAS,EACT,IAAW,EACX,SAAS,EACT,GAAG,IAAI,EACR,EAAE,qBAAqB,qBAsCvB;AAED,eAAO,MAAM,gBAAgB,wDAAmC,CAAC;AACjE,OAAO,EAAE,cAAc,IAAI,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../../lib/utils.js";
|
|
4
|
+
import { t } from "../../../../dist-Ber_p4PA.js";
|
|
5
|
+
import { resolveToolkitIcon as n } from "../../../../metadata/toolkit-icons.js";
|
|
6
|
+
import * as r from "react";
|
|
7
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
8
|
+
//#region lib/components/ui/molecules/mcp-server-picker/toolkit-avatar.tsx
|
|
9
|
+
var a = [
|
|
10
|
+
"text-brand-text",
|
|
11
|
+
"text-brand-fuchsia",
|
|
12
|
+
"text-brand-red",
|
|
13
|
+
"text-brand-purple",
|
|
14
|
+
"text-brand-navy",
|
|
15
|
+
"text-brand-green"
|
|
16
|
+
];
|
|
17
|
+
function o(e) {
|
|
18
|
+
let t = 0;
|
|
19
|
+
for (let n of e) t = (t * 31 + n.charCodeAt(0)) % 1000003;
|
|
20
|
+
return a[t % a.length] ?? a[0];
|
|
21
|
+
}
|
|
22
|
+
var s = t("inline-flex shrink-0 items-center justify-center font-semibold uppercase", {
|
|
23
|
+
variants: { size: {
|
|
24
|
+
xs: "size-4 rounded-sm text-[10px]",
|
|
25
|
+
sm: "size-5 rounded-sm text-[10px]",
|
|
26
|
+
md: "size-7 rounded-md text-xs",
|
|
27
|
+
lg: "size-9 rounded-md text-sm"
|
|
28
|
+
} },
|
|
29
|
+
defaultVariants: { size: "md" }
|
|
30
|
+
}), c = {
|
|
31
|
+
xs: "size-3",
|
|
32
|
+
sm: "size-3.5",
|
|
33
|
+
md: "size-4",
|
|
34
|
+
lg: "size-5"
|
|
35
|
+
};
|
|
36
|
+
function l({ name: t, toolkitId: r, size: a = "md", className: l, ...u }) {
|
|
37
|
+
let { Icon: d, hasBrandIcon: f } = n(r), p = a ?? "md";
|
|
38
|
+
return f ? /* @__PURE__ */ i("span", {
|
|
39
|
+
...u,
|
|
40
|
+
"aria-hidden": !0,
|
|
41
|
+
className: e(s({ size: p }), "bg-muted/40", l),
|
|
42
|
+
"data-slot": "mcp-toolkit-avatar",
|
|
43
|
+
"data-variant": "brand",
|
|
44
|
+
children: /* @__PURE__ */ i(d, { className: c[p] })
|
|
45
|
+
}) : /* @__PURE__ */ i("span", {
|
|
46
|
+
...u,
|
|
47
|
+
"aria-hidden": !0,
|
|
48
|
+
className: e(s({ size: p }), "bg-muted/40", o(t), l),
|
|
49
|
+
"data-slot": "mcp-toolkit-avatar",
|
|
50
|
+
"data-variant": "fallback",
|
|
51
|
+
children: t.charAt(0)
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
var u = r.memo(l);
|
|
55
|
+
//#endregion
|
|
56
|
+
export { u as McpToolkitAvatar, s as mcpToolkitAvatarVariants };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
export type McpToolkitChipProps = {
|
|
3
|
+
/** Toolkit display name — rendered with `capitalize` styling. */
|
|
4
|
+
name: string;
|
|
5
|
+
/** Branded-icon lookup key passed through to `McpToolkitAvatar`. */
|
|
6
|
+
toolkitId?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Total tools the toolkit exposes. Only rendered when `isPartial`, paired
|
|
9
|
+
* with `selectedCount` to show the partial fraction.
|
|
10
|
+
*/
|
|
11
|
+
total?: number;
|
|
12
|
+
/** Selected tools from this toolkit. */
|
|
13
|
+
selectedCount?: number;
|
|
14
|
+
/**
|
|
15
|
+
* The toolkit was added beyond the recommended set. Surfaced in the
|
|
16
|
+
* aggregate "+N added" count rather than per-chip; here it only sets
|
|
17
|
+
* `data-status`.
|
|
18
|
+
*/
|
|
19
|
+
added?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Some, but not all, tools selected — surfaces the `N/M` fraction and
|
|
22
|
+
* sharpens the remove label so screen-reader users know how many tools
|
|
23
|
+
* the action will drop.
|
|
24
|
+
*/
|
|
25
|
+
isPartial?: boolean;
|
|
26
|
+
/** Open this toolkit's tools to adjust the selection. */
|
|
27
|
+
onOpen?: () => void;
|
|
28
|
+
/** Remove the toolkit (and all of its selected tools). */
|
|
29
|
+
onRemove?: () => void;
|
|
30
|
+
} & Omit<React.ComponentProps<"div">, "children">;
|
|
31
|
+
/**
|
|
32
|
+
* Removable toolkit chip with two affordances: the body opens that server's
|
|
33
|
+
* tools (to adjust the selection); the trailing × removes it. Built on
|
|
34
|
+
* `RemovableChip`, which owns the shared shell, divider, and remove button.
|
|
35
|
+
* Used inside the picker's selection summary bar.
|
|
36
|
+
*/
|
|
37
|
+
export declare function McpToolkitChip({ name, toolkitId, total, selectedCount, added, isPartial, onOpen, onRemove, ...rest }: McpToolkitChipProps): React.JSX.Element;
|
|
38
|
+
//# sourceMappingURL=toolkit-chip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolkit-chip.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/toolkit-chip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAOpC,MAAM,MAAM,mBAAmB,GAAG;IAChC,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,SAAS,EACT,KAAK,EACL,aAAa,EACb,KAAa,EACb,SAAiB,EACjB,MAAM,EACN,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,mBAAmB,qBAoCrB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { RemovableChip as e, RemovableChipButton as t } from "../../atoms/removable-chip.js";
|
|
4
|
+
import { McpToolkitAvatar as n } from "./toolkit-avatar.js";
|
|
5
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
6
|
+
//#region lib/components/ui/molecules/mcp-server-picker/toolkit-chip.tsx
|
|
7
|
+
function a({ name: a, toolkitId: o, total: s, selectedCount: c, added: l = !1, isPartial: u = !1, onOpen: d, onRemove: f, ...p }) {
|
|
8
|
+
let m = u && c != null ? `Remove all ${c} selected ${a} tools` : `Remove ${a}`, h = `Open ${a} tools`, g = "selected";
|
|
9
|
+
return l ? g = "added" : u && (g = "partial"), /* @__PURE__ */ r(e, {
|
|
10
|
+
...p,
|
|
11
|
+
"data-slot": "mcp-toolkit-chip",
|
|
12
|
+
"data-status": g,
|
|
13
|
+
onRemove: f,
|
|
14
|
+
removeLabel: m,
|
|
15
|
+
children: /* @__PURE__ */ i(t, {
|
|
16
|
+
"aria-label": h,
|
|
17
|
+
onClick: d,
|
|
18
|
+
title: h,
|
|
19
|
+
children: [
|
|
20
|
+
/* @__PURE__ */ r(n, {
|
|
21
|
+
name: a,
|
|
22
|
+
size: "sm",
|
|
23
|
+
toolkitId: o
|
|
24
|
+
}),
|
|
25
|
+
/* @__PURE__ */ r("span", {
|
|
26
|
+
className: "max-w-44 truncate font-medium capitalize",
|
|
27
|
+
children: a
|
|
28
|
+
}),
|
|
29
|
+
u && c != null && s != null ? /* @__PURE__ */ i("span", {
|
|
30
|
+
className: "shrink-0 text-[10px] text-muted-foreground tabular-nums",
|
|
31
|
+
children: [
|
|
32
|
+
c,
|
|
33
|
+
"/",
|
|
34
|
+
s
|
|
35
|
+
]
|
|
36
|
+
}) : null
|
|
37
|
+
]
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
export { a as McpToolkitChip };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { McpToolkitAvatarProps } from './toolkit-avatar';
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
export type McpToolkitGroupHeaderProps = {
|
|
4
|
+
/** Toolkit display name — rendered with `capitalize` styling. */
|
|
5
|
+
name: string;
|
|
6
|
+
/** Branded-icon lookup key passed through to `McpToolkitAvatar`. */
|
|
7
|
+
toolkitId?: string;
|
|
8
|
+
/** Avatar size. Defaults to `"sm"` to match in-line section headers. */
|
|
9
|
+
avatarSize?: McpToolkitAvatarProps["size"];
|
|
10
|
+
/**
|
|
11
|
+
* Heading element used for the name. Choose based on document outline —
|
|
12
|
+
* default `h4` fits inside a section nested under the picker's `h3`.
|
|
13
|
+
*/
|
|
14
|
+
headingAs?: "h2" | "h3" | "h4" | "h5";
|
|
15
|
+
/**
|
|
16
|
+
* Right-of-name count line — typically "N selected" or just a raw tool
|
|
17
|
+
* count. Wrap free-form text in a `<span>` for consistent styling.
|
|
18
|
+
*/
|
|
19
|
+
count?: React.ReactNode;
|
|
20
|
+
/**
|
|
21
|
+
* Optional trailing slot rendered after the count (e.g. an inline "Add N
|
|
22
|
+
* more" expander button).
|
|
23
|
+
*/
|
|
24
|
+
trailing?: React.ReactNode;
|
|
25
|
+
} & Omit<React.ComponentProps<"div">, "children">;
|
|
26
|
+
/**
|
|
27
|
+
* Section header for a toolkit group: branded avatar, name, count, and an
|
|
28
|
+
* optional trailing slot for inline actions. Used at the top of every
|
|
29
|
+
* "tools grouped under their server" list — search results, the drill-in
|
|
30
|
+
* view's identity strip, and the grouped selection review.
|
|
31
|
+
*/
|
|
32
|
+
export declare function McpToolkitGroupHeader({ name, toolkitId, avatarSize, headingAs: Heading, count, trailing, className, ...rest }: McpToolkitGroupHeaderProps): React.JSX.Element;
|
|
33
|
+
//# sourceMappingURL=toolkit-group-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolkit-group-header.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/toolkit-group-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,MAAM,MAAM,0BAA0B,GAAG;IACvC,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,UAAU,CAAC,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C;;;OAGG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;AAElD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,SAAS,EACT,UAAiB,EACjB,SAAS,EAAE,OAAc,EACzB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,0BAA0B,qBAwB5B"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../../lib/utils.js";
|
|
4
|
+
import { McpToolkitAvatar as t } from "./toolkit-avatar.js";
|
|
5
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
6
|
+
//#region lib/components/ui/molecules/mcp-server-picker/toolkit-group-header.tsx
|
|
7
|
+
function i({ name: i, toolkitId: a, avatarSize: o = "sm", headingAs: s = "h4", count: c, trailing: l, className: u, ...d }) {
|
|
8
|
+
return /* @__PURE__ */ r("div", {
|
|
9
|
+
...d,
|
|
10
|
+
className: e("flex flex-wrap items-center justify-between gap-x-3 gap-y-1", u),
|
|
11
|
+
"data-slot": "mcp-toolkit-group-header",
|
|
12
|
+
children: [/* @__PURE__ */ r("div", {
|
|
13
|
+
className: "flex min-w-0 items-center gap-2",
|
|
14
|
+
children: [
|
|
15
|
+
/* @__PURE__ */ n(t, {
|
|
16
|
+
name: i,
|
|
17
|
+
size: o,
|
|
18
|
+
toolkitId: a
|
|
19
|
+
}),
|
|
20
|
+
/* @__PURE__ */ n(s, {
|
|
21
|
+
className: "truncate font-semibold text-base capitalize",
|
|
22
|
+
children: i
|
|
23
|
+
}),
|
|
24
|
+
c === void 0 ? null : /* @__PURE__ */ n("span", {
|
|
25
|
+
className: "shrink-0 text-muted-foreground text-xs tabular-nums",
|
|
26
|
+
children: c
|
|
27
|
+
})
|
|
28
|
+
]
|
|
29
|
+
}), l ? /* @__PURE__ */ n("div", {
|
|
30
|
+
className: "flex items-center",
|
|
31
|
+
children: l
|
|
32
|
+
}) : null]
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { i as McpToolkitGroupHeader };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
export type McpUnoptimizedCalloutProps = Omit<React.ComponentProps<"div">, "children">;
|
|
3
|
+
/**
|
|
4
|
+
* Inline explainer shown when the Unoptimized filter is active — the canonical
|
|
5
|
+
* copy for what "unoptimized" means, rendered with the shared flat
|
|
6
|
+
* `McpSectionCallout` layout (no card chrome, just a title and a short
|
|
7
|
+
* description above the results).
|
|
8
|
+
*/
|
|
9
|
+
export declare function McpUnoptimizedCallout(props: McpUnoptimizedCalloutProps): React.JSX.Element;
|
|
10
|
+
//# sourceMappingURL=unoptimized-callout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unoptimized-callout.d.ts","sourceRoot":"","sources":["../../../../../lib/components/ui/molecules/mcp-server-picker/unoptimized-callout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAC3B,UAAU,CACX,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,qBAStE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { McpSectionCallout as e } from "./section-callout.js";
|
|
4
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
5
|
+
//#region lib/components/ui/molecules/mcp-server-picker/unoptimized-callout.tsx
|
|
6
|
+
function n(n) {
|
|
7
|
+
return /* @__PURE__ */ t(e, {
|
|
8
|
+
...n,
|
|
9
|
+
"data-slot": "mcp-unoptimized-callout",
|
|
10
|
+
description: "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.",
|
|
11
|
+
title: "Unoptimized MCP servers"
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { n as McpUnoptimizedCallout };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { cn as e } from "../../../lib/utils.js";
|
|
2
2
|
import { t } from "../../../button-BNOmhdpM.js";
|
|
3
3
|
import { o as n, r, t as i } from "../../../avatar-BSYWkGGc.js";
|
|
4
|
-
import { h as a, o, r as s, t as c, u as l } from "../../../dropdown-menu-
|
|
4
|
+
import { h as a, o, r as s, t as c, u as l } from "../../../dropdown-menu-dsg43mOw.js";
|
|
5
5
|
import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
6
6
|
import { ChevronsUpDownIcon as p } from "lucide-react";
|
|
7
7
|
//#region lib/components/ui/molecules/user-nav.tsx
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** biome-ignore-all lint/performance/noBarrelFile: Barrel files are acceptable for atomic component folders */
|
|
2
|
+
export type { McpSelectionSummaryBarProps, McpSelectionSummaryMcpServer, } from './mcp-selection-summary-bar';
|
|
3
|
+
export { McpSelectionSummaryBar } from './mcp-selection-summary-bar';
|
|
4
|
+
export { McpServerPicker, McpServerPickerGrid, McpServerPickerHeader, McpServerPickerToolGrid, } from './mcp-server-picker';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/components/ui/organisms/index.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAE/G,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { McpSelectionSummaryBar as e } from "./mcp-selection-summary-bar.js";
|
|
2
|
+
import { McpServerPicker as t, McpServerPickerGrid as n, McpServerPickerHeader as r, McpServerPickerToolGrid as i } from "./mcp-server-picker.js";
|
|
3
|
+
export { e as McpSelectionSummaryBar, t as McpServerPicker, n as McpServerPickerGrid, r as McpServerPickerHeader, i as McpServerPickerToolGrid };
|