@arcadeai/design-system 3.46.1 → 3.49.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.
Files changed (121) hide show
  1. package/dist/{toggle-C4ztdcN-.js → Toggle-CyMSF-Z7.js} +14 -46
  2. package/dist/ToolbarRootContext-DVNA8Vkb.js +13 -0
  3. package/dist/{alert-dialog-oB_cE8NP.js → alert-dialog-tBMDYzJ3.js} +1 -1
  4. package/dist/assets/index.css +1 -1
  5. package/dist/assets/tokens.css +1 -1
  6. package/dist/assets/variables.css +1 -1
  7. package/dist/components/index.js +236 -215
  8. package/dist/components/ui/atoms/alert-dialog.js +1 -1
  9. package/dist/components/ui/atoms/avatar-notification-badge.d.ts +2 -2
  10. package/dist/components/ui/atoms/avatar-notification-badge.d.ts.map +1 -1
  11. package/dist/components/ui/atoms/avatar-notification-badge.js +21 -0
  12. package/dist/components/ui/atoms/dropdown-menu.js +1 -1
  13. package/dist/components/ui/atoms/filter-chip.d.ts +16 -0
  14. package/dist/components/ui/atoms/filter-chip.d.ts.map +1 -0
  15. package/dist/components/ui/atoms/filter-chip.js +37 -0
  16. package/dist/components/ui/atoms/index.d.ts +3 -0
  17. package/dist/components/ui/atoms/index.d.ts.map +1 -1
  18. package/dist/components/ui/atoms/index.js +192 -189
  19. package/dist/components/ui/atoms/mobile-tooltip.js +1 -1
  20. package/dist/components/ui/atoms/popover.js +1 -1
  21. package/dist/components/ui/atoms/removable-chip.d.ts +38 -0
  22. package/dist/components/ui/atoms/removable-chip.d.ts.map +1 -0
  23. package/dist/components/ui/atoms/removable-chip.js +36 -0
  24. package/dist/components/ui/atoms/scroll-area.d.ts +7 -1
  25. package/dist/components/ui/atoms/scroll-area.d.ts.map +1 -1
  26. package/dist/components/ui/atoms/scroll-area.js +1 -1
  27. package/dist/components/ui/atoms/select.js +1 -1
  28. package/dist/components/ui/atoms/toggle-group.d.ts +29 -0
  29. package/dist/components/ui/atoms/toggle-group.d.ts.map +1 -0
  30. package/dist/components/ui/atoms/toggle-group.js +3 -0
  31. package/dist/components/ui/atoms/toggle.js +36 -2
  32. package/dist/components/ui/index.d.ts +1 -0
  33. package/dist/components/ui/index.d.ts.map +1 -1
  34. package/dist/components/ui/index.js +236 -215
  35. package/dist/components/ui/molecules/confirm-popover.js +1 -1
  36. package/dist/components/ui/molecules/date-time-picker.js +1 -1
  37. package/dist/components/ui/molecules/empty-state.d.ts +28 -3
  38. package/dist/components/ui/molecules/empty-state.d.ts.map +1 -1
  39. package/dist/components/ui/molecules/empty-state.js +25 -19
  40. package/dist/components/ui/molecules/index.d.ts +32 -0
  41. package/dist/components/ui/molecules/index.d.ts.map +1 -1
  42. package/dist/components/ui/molecules/index.js +26 -10
  43. package/dist/components/ui/molecules/mcp-server-picker/category-filter-menu.d.ts +31 -0
  44. package/dist/components/ui/molecules/mcp-server-picker/category-filter-menu.d.ts.map +1 -0
  45. package/dist/components/ui/molecules/mcp-server-picker/category-filter-menu.js +106 -0
  46. package/dist/components/ui/molecules/mcp-server-picker/category-filter.d.ts +18 -0
  47. package/dist/components/ui/molecules/mcp-server-picker/category-filter.d.ts.map +1 -0
  48. package/dist/components/ui/molecules/mcp-server-picker/category-filter.js +34 -0
  49. package/dist/components/ui/molecules/mcp-server-picker/recommended-toolkits-chip.d.ts +53 -0
  50. package/dist/components/ui/molecules/mcp-server-picker/recommended-toolkits-chip.d.ts.map +1 -0
  51. package/dist/components/ui/molecules/mcp-server-picker/recommended-toolkits-chip.js +91 -0
  52. package/dist/components/ui/molecules/mcp-server-picker/recommended-tools.d.ts +52 -0
  53. package/dist/components/ui/molecules/mcp-server-picker/recommended-tools.d.ts.map +1 -0
  54. package/dist/components/ui/molecules/mcp-server-picker/recommended-tools.js +103 -0
  55. package/dist/components/ui/molecules/mcp-server-picker/review-count-chip.d.ts +22 -0
  56. package/dist/components/ui/molecules/mcp-server-picker/review-count-chip.d.ts.map +1 -0
  57. package/dist/components/ui/molecules/mcp-server-picker/review-count-chip.js +42 -0
  58. package/dist/components/ui/molecules/mcp-server-picker/search-scope-tabs.d.ts +18 -0
  59. package/dist/components/ui/molecules/mcp-server-picker/search-scope-tabs.d.ts.map +1 -0
  60. package/dist/components/ui/molecules/mcp-server-picker/search-scope-tabs.js +31 -0
  61. package/dist/components/ui/molecules/mcp-server-picker/section-callout.d.ts +21 -0
  62. package/dist/components/ui/molecules/mcp-server-picker/section-callout.d.ts.map +1 -0
  63. package/dist/components/ui/molecules/mcp-server-picker/section-callout.js +23 -0
  64. package/dist/components/ui/molecules/mcp-server-picker/section-nav-header.d.ts +39 -0
  65. package/dist/components/ui/molecules/mcp-server-picker/section-nav-header.d.ts.map +1 -0
  66. package/dist/components/ui/molecules/mcp-server-picker/section-nav-header.js +43 -0
  67. package/dist/components/ui/molecules/mcp-server-picker/server-avatar-stack.d.ts +16 -0
  68. package/dist/components/ui/molecules/mcp-server-picker/server-avatar-stack.d.ts.map +1 -0
  69. package/dist/components/ui/molecules/mcp-server-picker/server-avatar-stack.js +99 -0
  70. package/dist/components/ui/molecules/mcp-server-picker/server-card.d.ts +40 -0
  71. package/dist/components/ui/molecules/mcp-server-picker/server-card.d.ts.map +1 -0
  72. package/dist/components/ui/molecules/mcp-server-picker/server-card.js +118 -0
  73. package/dist/components/ui/molecules/mcp-server-picker/tool-card.d.ts +22 -0
  74. package/dist/components/ui/molecules/mcp-server-picker/tool-card.d.ts.map +1 -0
  75. package/dist/components/ui/molecules/mcp-server-picker/tool-card.js +62 -0
  76. package/dist/components/ui/molecules/mcp-server-picker/tool-search-band.d.ts +8 -0
  77. package/dist/components/ui/molecules/mcp-server-picker/tool-search-band.d.ts.map +1 -0
  78. package/dist/components/ui/molecules/mcp-server-picker/tool-search-band.js +41 -0
  79. package/dist/components/ui/molecules/mcp-server-picker/toolkit-avatar.d.ts +16 -0
  80. package/dist/components/ui/molecules/mcp-server-picker/toolkit-avatar.d.ts.map +1 -0
  81. package/dist/components/ui/molecules/mcp-server-picker/toolkit-avatar.js +56 -0
  82. package/dist/components/ui/molecules/mcp-server-picker/toolkit-chip.d.ts +38 -0
  83. package/dist/components/ui/molecules/mcp-server-picker/toolkit-chip.d.ts.map +1 -0
  84. package/dist/components/ui/molecules/mcp-server-picker/toolkit-chip.js +42 -0
  85. package/dist/components/ui/molecules/mcp-server-picker/toolkit-group-header.d.ts +33 -0
  86. package/dist/components/ui/molecules/mcp-server-picker/toolkit-group-header.d.ts.map +1 -0
  87. package/dist/components/ui/molecules/mcp-server-picker/toolkit-group-header.js +36 -0
  88. package/dist/components/ui/molecules/mcp-server-picker/unoptimized-callout.d.ts +10 -0
  89. package/dist/components/ui/molecules/mcp-server-picker/unoptimized-callout.d.ts.map +1 -0
  90. package/dist/components/ui/molecules/mcp-server-picker/unoptimized-callout.js +15 -0
  91. package/dist/components/ui/molecules/scroll-fade-area.d.ts +26 -0
  92. package/dist/components/ui/molecules/scroll-fade-area.d.ts.map +1 -0
  93. package/dist/components/ui/molecules/scroll-fade-area.js +25 -0
  94. package/dist/components/ui/molecules/user-nav.js +1 -1
  95. package/dist/components/ui/organisms/index.d.ts +5 -0
  96. package/dist/components/ui/organisms/index.d.ts.map +1 -0
  97. package/dist/components/ui/organisms/index.js +3 -0
  98. package/dist/components/ui/organisms/mcp-selection-summary-bar.d.ts +71 -0
  99. package/dist/components/ui/organisms/mcp-selection-summary-bar.d.ts.map +1 -0
  100. package/dist/components/ui/organisms/mcp-selection-summary-bar.js +61 -0
  101. package/dist/components/ui/organisms/mcp-server-picker.d.ts +45 -0
  102. package/dist/components/ui/organisms/mcp-server-picker.d.ts.map +1 -0
  103. package/dist/components/ui/organisms/mcp-server-picker.js +35 -0
  104. package/dist/components/ui/pages/login-page.js +19 -19
  105. package/dist/components/ui/templates/gateway-diagram.js +10 -10
  106. package/dist/{dropdown-menu-DCFuLDwH.js → dropdown-menu-dsg43mOw.js} +2 -1
  107. package/dist/hooks/use-scroll-fade.d.ts +22 -0
  108. package/dist/hooks/use-scroll-fade.d.ts.map +1 -0
  109. package/dist/hooks/use-scroll-fade.js +39 -0
  110. package/dist/main.js +242 -221
  111. package/dist/metadata/index.js +6 -6
  112. package/dist/metadata/toolkit-icons.d.ts +15 -0
  113. package/dist/metadata/toolkit-icons.d.ts.map +1 -1
  114. package/dist/metadata/toolkit-icons.js +294 -292
  115. package/dist/{popover-Ck3ILBUA.js → popover-CXSOUeVQ.js} +2 -1
  116. package/dist/{scroll-area-BD6qsU_I.js → scroll-area-53KPfESS.js} +6 -3
  117. package/dist/{select-cAvbXH_n.js → select-CPTT__cT.js} +2 -1
  118. package/dist/toggle-group-CDYMBO0F.js +87 -0
  119. package/dist/useAnchoredPopupScrollLock-C8wRjuy0.js +24 -0
  120. package/package.json +2 -2
  121. package/dist/ToolbarRootContext-Dubw_915.js +0 -34
@@ -0,0 +1,22 @@
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
+ onToggle?: () => void;
18
+ } & Omit<React.ComponentProps<"button">, "onClick" | "onToggle" | "name">;
19
+ declare function McpToolCardImpl({ name, rawName, version, description, selected, destructive, readOnly, onToggle, className, ...rest }: McpToolCardProps): React.JSX.Element;
20
+ export declare const McpToolCard: React.MemoExoticComponent<typeof McpToolCardImpl>;
21
+ export {};
22
+ //# 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;AAS/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"}
@@ -0,0 +1,62 @@
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 * as a from "react";
6
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
+ import { Check as c } from "lucide-react";
8
+ //#region lib/components/ui/molecules/mcp-server-picker/tool-card.tsx
9
+ function l({ name: a, rawName: l, version: u, description: d, selected: f = !1, destructive: p = !1, readOnly: m = !1, onToggle: h, className: g, ..._ }) {
10
+ let v = /* @__PURE__ */ s("button", {
11
+ ..._,
12
+ "aria-pressed": f,
13
+ 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", f ? "border-foreground/45 bg-muted/20 shadow-[var(--shadow-card)]" : "border-border hover:border-foreground/40 hover:shadow-[var(--shadow-card-hover)]", g),
14
+ "data-slot": "mcp-tool-card",
15
+ "data-status": f ? "selected" : "none",
16
+ onClick: h,
17
+ type: "button",
18
+ children: [/* @__PURE__ */ o("span", {
19
+ "aria-hidden": !0,
20
+ className: e("mt-0.5 flex size-4 shrink-0 items-center justify-center rounded-[4px] border transition-colors", f ? "border-primary bg-primary text-primary-foreground" : "border-input"),
21
+ children: f ? /* @__PURE__ */ o(c, { className: "size-3" }) : null
22
+ }), /* @__PURE__ */ s("span", {
23
+ className: "min-w-0 flex-1",
24
+ children: [/* @__PURE__ */ s("span", {
25
+ className: "flex items-start justify-between gap-3",
26
+ children: [/* @__PURE__ */ s("span", {
27
+ className: "flex min-w-0 items-baseline gap-1.5",
28
+ children: [/* @__PURE__ */ o("span", {
29
+ className: "truncate font-medium text-sm",
30
+ children: a
31
+ }), u ? /* @__PURE__ */ s("span", {
32
+ className: "shrink-0 font-normal text-muted-foreground text-xs tabular-nums",
33
+ children: ["v", u]
34
+ }) : null]
35
+ }), /* @__PURE__ */ s("span", {
36
+ className: "flex shrink-0 items-center gap-1.5 self-start",
37
+ children: [p ? /* @__PURE__ */ o("span", {
38
+ className: "ds-focus-in rounded-full bg-destructive/10 px-1.5 py-0.5 font-medium text-[10px] text-destructive uppercase tracking-wide",
39
+ children: "Destructive"
40
+ }) : null, m ? /* @__PURE__ */ o("span", {
41
+ className: "ds-focus-in rounded-full bg-muted px-1.5 py-0.5 font-medium text-[10px] text-muted-foreground uppercase tracking-wide",
42
+ children: "Read-only"
43
+ }) : null]
44
+ })]
45
+ }), d ? /* @__PURE__ */ o("span", {
46
+ className: "mt-0.5 line-clamp-1 text-muted-foreground text-xs leading-snug",
47
+ children: d
48
+ }) : null]
49
+ })]
50
+ });
51
+ return d ? /* @__PURE__ */ o(r, { children: /* @__PURE__ */ s(i, { children: [/* @__PURE__ */ o(t, { render: v }), /* @__PURE__ */ s(n, {
52
+ className: "max-w-xs flex-col items-start gap-0.5 text-left text-xs",
53
+ side: "bottom",
54
+ children: [l && l !== a ? /* @__PURE__ */ o("span", {
55
+ className: "font-medium",
56
+ children: l
57
+ }) : null, /* @__PURE__ */ o("span", { children: d })]
58
+ })] }) }) : v;
59
+ }
60
+ var u = a.memo(l);
61
+ //#endregion
62
+ export { u 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 };
@@ -0,0 +1,26 @@
1
+ import { ReactNode } from 'react';
2
+ export type ScrollFadeAreaProps = {
3
+ children: ReactNode;
4
+ /** Classes for the outer sizing context. Defaults fill a flex column. */
5
+ className?: string;
6
+ /** Classes for the inner scroll viewport (padding, child spacing). */
7
+ viewportClassName?: string;
8
+ };
9
+ /**
10
+ * Vertical scroll area with "there's more" affordances on whichever edge still
11
+ * has hidden content: a fade-to-background gradient plus a soft inset shadow.
12
+ * Both appear per edge and only when that edge can actually scroll.
13
+ *
14
+ * This draws gradient overlays from `useScrollFade`'s `edges` rather than
15
+ * spreading the hook's `maskImage` style. A mask fades content to fully
16
+ * transparent, which reads too strongly in dark mode; gradient overlays fade to
17
+ * the surface color and let us dial the intensity per theme (see the
18
+ * `dark:from-background/40` stops below). Horizontal scrollers that want the
19
+ * lighter mask treatment should consume `useScrollFade("x").style` directly.
20
+ *
21
+ * The overlays fade to the `background` token, so place this on a
22
+ * background-colored surface; on a `card`/`muted` surface the gradient seams.
23
+ * Such callers want the mask treatment instead.
24
+ */
25
+ export declare function ScrollFadeArea({ children, className, viewportClassName, }: ScrollFadeAreaProps): import("react").JSX.Element;
26
+ //# sourceMappingURL=scroll-fade-area.d.ts.map
@@ -0,0 +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,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,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;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,iBAAiB,GAClB,EAAE,mBAAmB,+BAiCrB"}
@@ -0,0 +1,25 @@
1
+ "use client";
2
+ "use client";
3
+ import { cn as e } from "../../../lib/utils.js";
4
+ import { useScrollFade as t } from "../../../hooks/use-scroll-fade.js";
5
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
6
+ //#region lib/components/ui/molecules/scroll-fade-area.tsx
7
+ function i({ children: i, className: a, viewportClassName: o }) {
8
+ let s = t("y"), c = [s.edges.start && "inset 0 8px 12px -10px color-mix(in oklch, var(--shadow-color) 3%, transparent)", s.edges.end && "inset 0 -12px 16px -10px color-mix(in oklch, var(--shadow-color) 6%, transparent)"].filter(Boolean).join(", ") || void 0;
9
+ return /* @__PURE__ */ r("div", {
10
+ className: e("relative min-h-0 flex-1", a),
11
+ children: [
12
+ s.edges.start ? /* @__PURE__ */ n("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,
13
+ s.edges.end ? /* @__PURE__ */ n("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,
14
+ /* @__PURE__ */ n("div", {
15
+ className: e("h-full overflow-y-auto transition-shadow duration-200", o),
16
+ onScroll: s.onScroll,
17
+ ref: s.ref,
18
+ style: { boxShadow: c },
19
+ children: i
20
+ })
21
+ ]
22
+ });
23
+ }
24
+ //#endregion
25
+ export { i as ScrollFadeArea };
@@ -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-DCFuLDwH.js";
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 };
@@ -0,0 +1,71 @@
1
+ import { McpRecommendedMcpServer } from '../molecules/mcp-server-picker/recommended-toolkits-chip';
2
+ import { McpReviewCountChipProps } from '../molecules/mcp-server-picker/review-count-chip';
3
+ import { McpToolkitChipProps } from '../molecules/mcp-server-picker/toolkit-chip';
4
+ import type * as React from "react";
5
+ export type McpSelectionSummaryMcpServer = {
6
+ /** Stable React key — typically the MCP server name or id. */
7
+ id: string;
8
+ } & Omit<McpToolkitChipProps, "onOpen" | "onRemove">;
9
+ export type McpSelectionSummaryBarProps = {
10
+ /**
11
+ * Selected MCP servers, in display order. An empty array renders the idle
12
+ * placeholder; the bar keeps its height so the surrounding layout doesn't
13
+ * shift on first selection.
14
+ *
15
+ * Servers in `recommendedMcpServers` are NOT also included here — the
16
+ * consumer separates the two lists so this bar always renders the
17
+ * grouped recommended chip first, with the rest of the per-server chips
18
+ * trailing.
19
+ */
20
+ mcpServers: McpSelectionSummaryMcpServer[];
21
+ /**
22
+ * Recommended MCP servers collapsed into a single grouped chip. When this
23
+ * array is non-empty the bar renders one "Recommended tools" chip in
24
+ * front of the per-server chips; the chip's popover lists every entry.
25
+ */
26
+ recommendedMcpServers?: McpRecommendedMcpServer[];
27
+ /**
28
+ * Total selected tools across all MCP servers. Drives the count chip's
29
+ * primary number.
30
+ */
31
+ toolCount: number;
32
+ /**
33
+ * Whether the grouped review is currently open — flips the count chip to
34
+ * its pressed state so the user can see where the click landed.
35
+ */
36
+ reviewing?: boolean;
37
+ /**
38
+ * Whether the grouped review is currently filtered to recommended servers —
39
+ * flips the recommended chip into its active ring state.
40
+ */
41
+ reviewingRecommended?: boolean;
42
+ /** Custom aria-label for the count chip. */
43
+ reviewLabel?: McpReviewCountChipProps["aria-label"];
44
+ /** Open the grouped selected-tools view. */
45
+ onReview?: () => void;
46
+ /** Open the grouped review scoped to the recommended set. */
47
+ onReviewRecommended?: () => void;
48
+ /** Open this MCP server's tools to adjust selection. */
49
+ onOpenMcpServer?: (id: string) => void;
50
+ /** Remove this MCP server (and all of its selected tools). */
51
+ onRemoveMcpServer?: (id: string) => void;
52
+ /** Remove the entire recommended set in one go. */
53
+ onRemoveRecommended?: () => void;
54
+ /** Clear the entire selection. */
55
+ onClear?: () => void;
56
+ /** Copy override for the empty / no-selection-yet placeholder. */
57
+ emptyMessage?: string;
58
+ } & Omit<React.ComponentProps<"div">, "children" | "onReview">;
59
+ /**
60
+ * Persistent selection summary used inside the MCP picker shell: the total
61
+ * tool count (clickable — opens the grouped selected-tools view), the
62
+ * grouped recommended chip (if any), one removable chip per other selected
63
+ * MCP server, and a clear-all on the right. Sits above the results so the
64
+ * selection is obvious at a glance and easy to prune.
65
+ *
66
+ * Pure presentational — the consumer supplies the ordered server list and
67
+ * the callbacks. Domain-specific ordering (e.g. "newest-selected first")
68
+ * belongs in the consumer.
69
+ */
70
+ export declare function McpSelectionSummaryBar({ mcpServers, recommendedMcpServers, toolCount, reviewing, reviewingRecommended, reviewLabel, onReview, onReviewRecommended, onOpenMcpServer, onRemoveMcpServer, onRemoveRecommended, onClear, emptyMessage, className, ...rest }: McpSelectionSummaryBarProps): React.JSX.Element;
71
+ //# sourceMappingURL=mcp-selection-summary-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-selection-summary-bar.d.ts","sourceRoot":"","sources":["../../../../lib/components/ui/organisms/mcp-selection-summary-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,uEAAuE,CAAC;AAC/E,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,+DAA+D,CAAC;AACvE,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,0DAA0D,CAAC;AAIlE,MAAM,MAAM,4BAA4B,GAAG;IACzC,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;CACZ,GAAG,IAAI,CAAC,mBAAmB,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;AAErD,MAAM,MAAM,2BAA2B,GAAG;IACxC;;;;;;;;;OASG;IACH,UAAU,EAAE,4BAA4B,EAAE,CAAC;IAC3C;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAClD;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACpD,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,wDAAwD;IACxD,eAAe,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mDAAmD;IACnD,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;AAE/D;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,UAAU,EACV,qBAA0B,EAC1B,SAAS,EACT,SAAiB,EACjB,oBAA4B,EAC5B,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,OAAO,EACP,YAAsC,EACtC,SAAS,EACT,GAAG,IAAI,EACR,EAAE,2BAA2B,qBA2E7B"}