@arcadeai/design-system 3.27.5 → 3.27.7

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 (95) hide show
  1. package/dist/assets/icons/attio.js +10 -0
  2. package/dist/assets/icons/claude.js +10 -0
  3. package/dist/assets/icons/cline.js +10 -0
  4. package/dist/assets/icons/cursor-install-dark.js +12 -0
  5. package/dist/assets/icons/cursor-install-light.js +12 -0
  6. package/dist/assets/icons/gemini.js +12 -0
  7. package/dist/assets/icons/goose.js +13 -0
  8. package/dist/assets/icons/openai.js +10 -0
  9. package/dist/assets/icons/vscode.js +12 -0
  10. package/dist/assets/icons/windsurf.js +10 -0
  11. package/dist/components/index.js +416 -396
  12. package/dist/components/ui/atoms/checkbox.d.ts.map +1 -1
  13. package/dist/components/ui/atoms/checkbox.js +100 -100
  14. package/dist/components/ui/atoms/icons/attio.d.ts +4 -0
  15. package/dist/components/ui/atoms/icons/attio.d.ts.map +1 -0
  16. package/dist/components/ui/atoms/icons/attio.js +27 -0
  17. package/dist/components/ui/atoms/icons/claude.d.ts +4 -0
  18. package/dist/components/ui/atoms/icons/claude.d.ts.map +1 -0
  19. package/dist/components/ui/atoms/icons/claude.js +27 -0
  20. package/dist/components/ui/atoms/icons/cline.d.ts +4 -0
  21. package/dist/components/ui/atoms/icons/cline.d.ts.map +1 -0
  22. package/dist/components/ui/atoms/icons/cline.js +23 -0
  23. package/dist/components/ui/atoms/icons/cursor-install-dark.d.ts +4 -0
  24. package/dist/components/ui/atoms/icons/cursor-install-dark.d.ts.map +1 -0
  25. package/dist/components/ui/atoms/icons/cursor-install-dark.js +79 -0
  26. package/dist/components/ui/atoms/icons/cursor-install-light.d.ts +4 -0
  27. package/dist/components/ui/atoms/icons/cursor-install-light.d.ts.map +1 -0
  28. package/dist/components/ui/atoms/icons/cursor-install-light.js +79 -0
  29. package/dist/components/ui/atoms/icons/gemini.d.ts +4 -0
  30. package/dist/components/ui/atoms/icons/gemini.d.ts.map +1 -0
  31. package/dist/components/ui/atoms/icons/gemini.js +234 -0
  32. package/dist/components/ui/atoms/icons/goose.d.ts +4 -0
  33. package/dist/components/ui/atoms/icons/goose.d.ts.map +1 -0
  34. package/dist/components/ui/atoms/icons/goose.js +22 -0
  35. package/dist/components/ui/atoms/icons/index.d.ts +10 -0
  36. package/dist/components/ui/atoms/icons/index.d.ts.map +1 -1
  37. package/dist/components/ui/atoms/icons/index.js +256 -236
  38. package/dist/components/ui/atoms/icons/openai.d.ts +4 -0
  39. package/dist/components/ui/atoms/icons/openai.d.ts.map +1 -0
  40. package/dist/components/ui/atoms/icons/openai.js +26 -0
  41. package/dist/components/ui/atoms/icons/vscode.d.ts +4 -0
  42. package/dist/components/ui/atoms/icons/vscode.d.ts.map +1 -0
  43. package/dist/components/ui/atoms/icons/vscode.js +187 -0
  44. package/dist/components/ui/atoms/icons/windsurf.d.ts +4 -0
  45. package/dist/components/ui/atoms/icons/windsurf.d.ts.map +1 -0
  46. package/dist/components/ui/atoms/icons/windsurf.js +26 -0
  47. package/dist/components/ui/atoms/index.js +399 -379
  48. package/dist/components/ui/index.js +416 -396
  49. package/dist/components/ui/molecules/index.js +1 -1
  50. package/dist/components/ui/molecules/requirement-badges.d.ts +6 -3
  51. package/dist/components/ui/molecules/requirement-badges.d.ts.map +1 -1
  52. package/dist/components/ui/molecules/requirement-badges.js +1 -1
  53. package/dist/components/ui/molecules/tool-card.d.ts.map +1 -1
  54. package/dist/components/ui/molecules/tool-card.js +55 -54
  55. package/dist/components/ui/molecules/toolkit-card.d.ts.map +1 -1
  56. package/dist/components/ui/molecules/toolkit-card.js +1 -1
  57. package/dist/components/ui/molecules/toolkit-picker-trigger.js +34 -34
  58. package/dist/components/ui/molecules/toolkit-selection-summary.d.ts.map +1 -1
  59. package/dist/components/ui/molecules/toolkit-selection-summary.js +5 -5
  60. package/dist/components/ui/organisms/toolkit-picker/components/search-input.js +1 -1
  61. package/dist/components/ui/organisms/toolkit-picker/components/select-button.js +1 -1
  62. package/dist/components/ui/organisms/toolkit-picker/components/toolkit-card-with-selection.js +1 -1
  63. package/dist/components/ui/organisms/toolkit-picker/components/toolkit-list.d.ts.map +1 -1
  64. package/dist/components/ui/organisms/toolkit-picker/components/toolkit-list.js +101 -74
  65. package/dist/components/ui/organisms/toolkit-picker/components/tools-list.d.ts.map +1 -1
  66. package/dist/components/ui/organisms/toolkit-picker/components/tools-list.js +74 -50
  67. package/dist/components/ui/organisms/toolkit-picker/components/unoptimized-toggle.d.ts +21 -0
  68. package/dist/components/ui/organisms/toolkit-picker/components/unoptimized-toggle.d.ts.map +1 -0
  69. package/dist/components/ui/organisms/toolkit-picker/components/unoptimized-toggle.js +29 -0
  70. package/dist/components/ui/organisms/toolkit-picker/hooks/featured-toolkits.d.ts +1 -1
  71. package/dist/components/ui/organisms/toolkit-picker/hooks/use-toolkit-picker.d.ts +8 -0
  72. package/dist/components/ui/organisms/toolkit-picker/hooks/use-toolkit-picker.d.ts.map +1 -1
  73. package/dist/components/ui/organisms/toolkit-picker/hooks/use-toolkit-picker.js +120 -51
  74. package/dist/components/ui/organisms/toolkit-picker/mocks/toolkit-collection.d.ts.map +1 -1
  75. package/dist/components/ui/organisms/toolkit-picker/mocks/toolkit-collection.js +55 -24
  76. package/dist/components/ui/organisms/toolkit-picker/toolkit-picker.js +20 -20
  77. package/dist/hooks/use-is-truncated.d.ts +13 -0
  78. package/dist/hooks/use-is-truncated.d.ts.map +1 -0
  79. package/dist/hooks/use-is-truncated.js +20 -0
  80. package/dist/lib/arcade/arcade.d.ts +0 -24
  81. package/dist/lib/arcade/arcade.d.ts.map +1 -1
  82. package/dist/lib/arcade/arcade.js +258 -421
  83. package/dist/lib/arcade/toolkit-collection.d.ts +15 -0
  84. package/dist/lib/arcade/toolkit-collection.d.ts.map +1 -0
  85. package/dist/lib/arcade/toolkit-collection.js +149 -0
  86. package/dist/main.js +455 -435
  87. package/dist/metadata/oauth-providers.d.ts +2 -0
  88. package/dist/metadata/oauth-providers.d.ts.map +1 -1
  89. package/dist/metadata/oauth-providers.js +84 -72
  90. package/dist/metadata/toolkits.js +7 -7
  91. package/dist/metadata/utils.d.ts +4 -7
  92. package/dist/metadata/utils.d.ts.map +1 -1
  93. package/dist/metadata/utils.js +16 -13
  94. package/dist/{toolkit-card-D6Dqff6p.js → toolkit-card-Cmp_yG03.js} +115 -110
  95. package/package.json +34 -23
@@ -1,142 +1,169 @@
1
- import { jsx as t, jsxs as s } from "react/jsx-runtime";
2
- import { VirtualizedGrid as u } from "../../../atoms/virtualized-grid.js";
1
+ import { jsx as t, jsxs as o } from "react/jsx-runtime";
2
+ import { VirtualizedGrid as h } from "../../../atoms/virtualized-grid.js";
3
3
  import "../../../molecules/date-time-picker.js";
4
- import { EmptyState as w } from "../../../molecules/empty-state.js";
5
- import "../../../../../toolkit-card-D6Dqff6p.js";
4
+ import { EmptyState as P } from "../../../molecules/empty-state.js";
5
+ import "../../../../../toolkit-card-Cmp_yG03.js";
6
6
  import "../../../molecules/tool-card.js";
7
7
  import "../../../../../metadata/oauth-providers.js";
8
8
  import "../../../../../metadata/toolkits.js";
9
9
  import "lucide-react";
10
- import { useToolkitPicker as S } from "../hooks/use-toolkit-picker.js";
10
+ import { useToolkitPicker as R } from "../hooks/use-toolkit-picker.js";
11
11
  import "../../../atoms/mobile-tooltip.js";
12
- import { useMemo as v } from "react";
12
+ import { useMemo as A } from "react";
13
13
  import "../../../atoms/chart.js";
14
14
  import "../../../../../react-resizable-panels.browser-DYl0LXfw.js";
15
15
  import "../../../atoms/sidebar.js";
16
- import { useColumns as C } from "../../../../../hooks/use-columns.js";
17
- import { FEATURED_TOOLKITS as R } from "../hooks/featured-toolkits.js";
18
- import { ToolkitCardWithSelection as A } from "./toolkit-card-with-selection.js";
19
- const x = 156;
20
- function J({
21
- selectionMode: f,
22
- scrollContainerRef: d
16
+ import { useColumns as L } from "../../../../../hooks/use-columns.js";
17
+ import { UnoptimizedToggle as I } from "./unoptimized-toggle.js";
18
+ import { FEATURED_TOOLKITS as U } from "../hooks/featured-toolkits.js";
19
+ import { ToolkitCardWithSelection as G } from "./toolkit-card-with-selection.js";
20
+ const f = 156;
21
+ function ee({
22
+ selectionMode: x,
23
+ scrollContainerRef: n
23
24
  }) {
24
25
  const {
25
- state: { filteredToolkits: m, selectedToolkits: l, selectedTools: T, searchQuery: o },
26
- toggleToolkit: y,
27
- setActiveTab: h,
28
- setToolkitFilter: k
29
- } = S(), n = C(), { selectedToolkitItems: a, featuredToolkitItems: i, unselectedToolkitItems: c } = v(() => {
30
- const e = Array.from(m), g = new Set(
31
- R.map((r) => r.toLowerCase())
32
- ), N = e.filter(
33
- (r) => l.has(r.name)
34
- ), I = e.filter(
35
- (r) => !(l.has(r.name) || o.trim()) && g.has(r.name.toLowerCase())
26
+ state: {
27
+ filteredToolkits: d,
28
+ selectedToolkits: s,
29
+ selectedTools: S,
30
+ searchQuery: i,
31
+ showUnoptimizedToolkits: k,
32
+ hasStarterToolkits: T,
33
+ hiddenToolkitCount: m
34
+ },
35
+ toggleToolkit: C,
36
+ setActiveTab: y,
37
+ setToolkitFilter: N,
38
+ toggleUnoptimizedToolkits: w
39
+ } = R(), c = L(), { selectedToolkitItems: l, featuredToolkitItems: a, unselectedToolkitItems: p } = A(() => {
40
+ const e = Array.from(d), u = new Set(
41
+ U.map((r) => r.toLowerCase())
36
42
  ), b = e.filter(
37
- (r) => !l.has(r.name) && (o.trim() || !g.has(r.name.toLowerCase()))
43
+ (r) => s.has(r.name)
44
+ ), v = e.filter(
45
+ (r) => !(s.has(r.name) || i.trim()) && u.has(r.name.toLowerCase())
46
+ ), z = e.filter(
47
+ (r) => !s.has(r.name) && (i.trim() || !u.has(r.name.toLowerCase()))
38
48
  );
39
49
  return {
40
- selectedToolkitItems: N,
41
- featuredToolkitItems: I,
42
- unselectedToolkitItems: b
50
+ selectedToolkitItems: b,
51
+ featuredToolkitItems: v,
52
+ unselectedToolkitItems: z
43
53
  };
44
- }, [m, o, l]);
45
- if (m.size === 0)
46
- return /* @__PURE__ */ t(
47
- w,
54
+ }, [d, i, s]);
55
+ if (d.size === 0)
56
+ return T && m > 0 ? /* @__PURE__ */ t(
57
+ I,
58
+ {
59
+ hiddenCount: m,
60
+ isShowingUnoptimized: k,
61
+ itemType: "toolkit",
62
+ onToggle: w
63
+ }
64
+ ) : /* @__PURE__ */ t(
65
+ P,
48
66
  {
49
67
  "data-testid": "empty-toolkits",
50
68
  description: "Try a different search term",
51
- title: "No toolkits found"
69
+ title: "No MCP servers found"
52
70
  }
53
71
  );
54
- const p = (e) => /* @__PURE__ */ t(
55
- A,
72
+ const g = (e) => /* @__PURE__ */ t(
73
+ G,
56
74
  {
57
- onSelect: (g) => {
58
- if (f === "single") {
59
- h("tools"), k(e.name);
75
+ onSelect: (u) => {
76
+ if (x === "single") {
77
+ y("tools"), N(e.name);
60
78
  return;
61
79
  }
62
- y(e);
80
+ C(e);
63
81
  },
64
82
  onView: () => {
65
- k(e.name), h("tools");
83
+ N(e.name), y("tools");
66
84
  },
67
- selectedTools: new Set(T.keys()),
68
- selectionMode: f,
85
+ selectedTools: new Set(S.keys()),
86
+ selectionMode: x,
69
87
  toolkit: e
70
88
  },
71
89
  e.name
72
90
  );
73
- return /* @__PURE__ */ s("div", { className: "space-y-4", "data-testid": "toolkits-grid", children: [
74
- a.length > 0 && /* @__PURE__ */ s("div", { className: "space-y-3", "data-testid": "selected-toolkits-section", children: [
75
- /* @__PURE__ */ s("div", { className: "flex items-center gap-1.5", children: [
91
+ return /* @__PURE__ */ o("div", { className: "space-y-4", "data-testid": "toolkits-grid", children: [
92
+ l.length > 0 && /* @__PURE__ */ o("div", { className: "space-y-3", "data-testid": "selected-toolkits-section", children: [
93
+ /* @__PURE__ */ o("div", { className: "flex items-center gap-1.5", children: [
76
94
  /* @__PURE__ */ t("h3", { className: "font-semibold text-neutral-700 text-sm dark:text-neutral-200", children: "Selected" }),
77
- /* @__PURE__ */ t("span", { className: "rounded-full bg-emerald-300 px-1.5 py-0.5 text-emerald-900 text-xs dark:bg-emerald-500/25 dark:text-emerald-200", children: a.length })
95
+ /* @__PURE__ */ t("span", { className: "rounded-full bg-emerald-300 px-1.5 py-0.5 text-emerald-900 text-xs dark:bg-emerald-500/25 dark:text-emerald-200", children: l.length })
78
96
  ] }),
79
97
  /* @__PURE__ */ t(
80
- u,
98
+ h,
81
99
  {
82
- columns: n,
83
- estimateRowSize: x,
100
+ columns: c,
101
+ estimateRowSize: f,
84
102
  getItemKey: (e) => e.name,
85
103
  gridClassName: "grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3",
86
- items: a,
87
- parentRef: d,
88
- renderItem: p,
104
+ items: l,
105
+ parentRef: n,
106
+ renderItem: g,
89
107
  rowGapPx: 12
90
108
  }
91
109
  )
92
110
  ] }),
93
- !o.trim() && i.length > 0 && /* @__PURE__ */ s(
111
+ !i.trim() && a.length > 0 && /* @__PURE__ */ o(
94
112
  "div",
95
113
  {
96
114
  className: "space-y-3 rounded-lg bg-neutral-50 p-4 dark:bg-neutral-900",
97
115
  "data-testid": "featured-toolkits-section",
98
116
  children: [
99
- /* @__PURE__ */ s("div", { className: "flex items-center gap-1.5", children: [
100
- /* @__PURE__ */ t("h3", { className: "font-semibold text-neutral-700 text-sm dark:text-neutral-200", children: "Featured Toolkits" }),
101
- /* @__PURE__ */ t("span", { className: "rounded-full bg-neutral-200 px-1.5 py-0.5 text-neutral-800 text-xs dark:bg-neutral-800 dark:text-neutral-200", children: i.length })
117
+ /* @__PURE__ */ o("div", { className: "flex items-center gap-1.5", children: [
118
+ /* @__PURE__ */ t("h3", { className: "font-semibold text-neutral-700 text-sm dark:text-neutral-200", children: "Featured MCP Servers" }),
119
+ /* @__PURE__ */ t("span", { className: "rounded-full bg-neutral-200 px-1.5 py-0.5 text-neutral-800 text-xs dark:bg-neutral-800 dark:text-neutral-200", children: a.length })
102
120
  ] }),
103
121
  /* @__PURE__ */ t(
104
- u,
122
+ h,
105
123
  {
106
- columns: n,
107
- estimateRowSize: x,
124
+ columns: c,
125
+ estimateRowSize: f,
108
126
  getItemKey: (e) => e.name,
109
127
  gridClassName: "grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3",
110
- items: i,
111
- parentRef: d,
112
- renderItem: p,
128
+ items: a,
129
+ parentRef: n,
130
+ renderItem: g,
113
131
  rowGapPx: 12
114
132
  }
115
133
  )
116
134
  ]
117
135
  }
118
136
  ),
119
- c.length > 0 && /* @__PURE__ */ s("div", { className: "space-y-3", children: [
120
- (a.length > 0 || i.length > 0) && /* @__PURE__ */ s("div", { className: "flex items-center gap-1.5", children: [
121
- /* @__PURE__ */ t("h3", { className: "font-semibold text-neutral-700 text-sm dark:text-neutral-200", children: "All toolkits" }),
122
- /* @__PURE__ */ t("span", { className: "rounded-full bg-neutral-200 px-1.5 py-0.5 text-neutral-800 text-xs dark:bg-neutral-800 dark:text-neutral-200", children: c.length })
137
+ p.length > 0 && /* @__PURE__ */ o("div", { className: "space-y-3", children: [
138
+ (l.length > 0 || a.length > 0) && /* @__PURE__ */ o("div", { className: "flex items-center gap-1.5", children: [
139
+ /* @__PURE__ */ t("h3", { className: "font-semibold text-neutral-700 text-sm dark:text-neutral-200", children: "All MCP servers" }),
140
+ /* @__PURE__ */ t("span", { className: "rounded-full bg-neutral-200 px-1.5 py-0.5 text-neutral-800 text-xs dark:bg-neutral-800 dark:text-neutral-200", children: p.length })
123
141
  ] }),
124
142
  /* @__PURE__ */ t(
125
- u,
143
+ h,
126
144
  {
127
- columns: n,
128
- estimateRowSize: x,
145
+ columns: c,
146
+ estimateRowSize: f,
129
147
  getItemKey: (e) => e.name,
130
148
  gridClassName: "grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3",
131
- items: c,
132
- parentRef: d,
133
- renderItem: p,
149
+ items: p,
150
+ parentRef: n,
151
+ renderItem: g,
134
152
  rowGapPx: 12
135
153
  }
136
154
  )
137
- ] })
155
+ ] }),
156
+ T && /* @__PURE__ */ t(
157
+ I,
158
+ {
159
+ hiddenCount: m,
160
+ isShowingUnoptimized: k,
161
+ itemType: "toolkit",
162
+ onToggle: w
163
+ }
164
+ )
138
165
  ] });
139
166
  }
140
167
  export {
141
- J as ToolkitList
168
+ ee as ToolkitList
142
169
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tools-list.d.ts","sourceRoot":"","sources":["../../../../../../lib/components/ui/organisms/toolkit-picker/components/tools-list.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAK9C,KAAK,cAAc,GAAG;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACtD,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,aAAa,EACb,kBAAkB,GACnB,EAAE,cAAc,2CAsGhB"}
1
+ {"version":3,"file":"tools-list.d.ts","sourceRoot":"","sources":["../../../../../../lib/components/ui/organisms/toolkit-picker/components/tools-list.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAM9C,KAAK,cAAc,GAAG;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACtD,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,aAAa,EACb,kBAAkB,GACnB,EAAE,cAAc,2CAgIhB"}
@@ -1,101 +1,125 @@
1
- import { jsx as t, jsxs as l } from "react/jsx-runtime";
2
- import { VirtualizedGrid as c } from "../../../atoms/virtualized-grid.js";
1
+ import { jsx as t, jsxs as i } from "react/jsx-runtime";
2
+ import { VirtualizedGrid as g } from "../../../atoms/virtualized-grid.js";
3
3
  import "../../../molecules/date-time-picker.js";
4
- import { EmptyState as _ } from "../../../molecules/empty-state.js";
5
- import "../../../../../toolkit-card-D6Dqff6p.js";
6
- import { ToolCard as k } from "../../../molecules/tool-card.js";
7
- import { getToolkitIcon as T } from "../../../../../metadata/toolkit-icons.js";
4
+ import { EmptyState as C } from "../../../molecules/empty-state.js";
5
+ import "../../../../../toolkit-card-Cmp_yG03.js";
6
+ import { ToolCard as S } from "../../../molecules/tool-card.js";
7
+ import { getToolkitIcon as q } from "../../../../../metadata/toolkit-icons.js";
8
8
  import "lucide-react";
9
- import { useToolkitPicker as N } from "../hooks/use-toolkit-picker.js";
9
+ import { useToolkitPicker as z } from "../hooks/use-toolkit-picker.js";
10
10
  import "../../../atoms/mobile-tooltip.js";
11
11
  import "react";
12
12
  import "../../../atoms/chart.js";
13
13
  import "../../../../../react-resizable-panels.browser-DYl0LXfw.js";
14
14
  import "../../../atoms/sidebar.js";
15
- import { useColumns as q } from "../../../../../hooks/use-columns.js";
16
- const f = 136;
17
- function K({
18
- selectionMode: p,
15
+ import { useColumns as I } from "../../../../../hooks/use-columns.js";
16
+ import { UnoptimizedToggle as h } from "./unoptimized-toggle.js";
17
+ const x = 136;
18
+ function V({
19
+ selectionMode: y,
19
20
  scrollContainerRef: s
20
21
  }) {
21
22
  const {
22
- state: { filteredTools: o, filteredToolkits: u, selectedTools: i },
23
- toggleTool: g
24
- } = N(), d = q();
25
- if (o.size === 0)
26
- return /* @__PURE__ */ t(
27
- _,
23
+ state: {
24
+ filteredTools: n,
25
+ toolkitCollection: T,
26
+ selectedTools: l,
27
+ showUnoptimizedToolkits: d,
28
+ hasStarterToolkits: m,
29
+ hiddenToolCount: r
30
+ },
31
+ toggleTool: _,
32
+ toggleUnoptimizedToolkits: c
33
+ } = z(), p = I();
34
+ if (n.size === 0)
35
+ return m && r > 0 ? /* @__PURE__ */ t(
36
+ h,
37
+ {
38
+ hiddenCount: r,
39
+ isShowingUnoptimized: d,
40
+ itemType: "tool",
41
+ onToggle: c
42
+ }
43
+ ) : /* @__PURE__ */ t(
44
+ C,
28
45
  {
29
46
  "data-testid": "empty-tools",
30
47
  description: "Try a different search term",
31
48
  title: "No tools found"
32
49
  }
33
50
  );
34
- const m = Array.from(o), a = m.filter(
35
- (e) => i.has(e.fully_qualified_name)
36
- ), r = m.filter(
37
- (e) => !i.has(e.fully_qualified_name)
38
- ), x = new Map(
39
- Array.from(u).map((e) => [e.name, e])
40
- ), n = (e) => {
41
- const h = x.get(e.toolkit.name), y = T(h?.metadata?.id);
51
+ const u = Array.from(n), o = u.filter(
52
+ (e) => l.has(e.fully_qualified_name)
53
+ ), a = u.filter(
54
+ (e) => !l.has(e.fully_qualified_name)
55
+ ), f = (e) => {
56
+ const k = T?.toolkitMap?.get(e.toolkit?.name), N = q(k?.metadata?.id);
42
57
  return /* @__PURE__ */ t(
43
- k,
58
+ S,
44
59
  {
45
60
  "data-testid": `tool-card-${e.fully_qualified_name}`,
46
61
  description: e.description,
47
62
  fully_qualified_name: e.fully_qualified_name,
48
- hideCheckbox: p === "single",
49
- Icon: y,
50
- isSelected: i.has(e.fully_qualified_name),
63
+ hideCheckbox: y === "single",
64
+ Icon: N,
65
+ isSelected: l.has(e.fully_qualified_name),
51
66
  name: e.name,
52
- onSelect: () => g(e),
53
- toolkitName: e.toolkit.name
67
+ onSelect: () => _(e),
68
+ toolkitName: e.toolkit?.name ?? "Unknown MCP Server"
54
69
  },
55
70
  e.fully_qualified_name
56
71
  );
57
72
  };
58
- return /* @__PURE__ */ l("div", { className: "space-y-4", "data-testid": "tools-grid", children: [
59
- a.length > 0 && /* @__PURE__ */ l("div", { className: "space-y-3", "data-testid": "selected-tools-section", children: [
60
- /* @__PURE__ */ l("div", { className: "flex items-center gap-1.5", children: [
73
+ return /* @__PURE__ */ i("div", { className: "space-y-4", "data-testid": "tools-grid", children: [
74
+ o.length > 0 && /* @__PURE__ */ i("div", { className: "space-y-3", "data-testid": "selected-tools-section", children: [
75
+ /* @__PURE__ */ i("div", { className: "flex items-center gap-1.5", children: [
61
76
  /* @__PURE__ */ t("h3", { className: "font-semibold text-neutral-700 text-sm dark:text-neutral-200", children: "Selected" }),
62
- /* @__PURE__ */ t("span", { className: "rounded-full bg-emerald-300 px-1.5 py-0.5 text-emerald-900 text-xs dark:bg-emerald-600 dark:text-emerald-200", children: a.length })
77
+ /* @__PURE__ */ t("span", { className: "rounded-full bg-emerald-300 px-1.5 py-0.5 text-emerald-900 text-xs dark:bg-emerald-600 dark:text-emerald-200", children: o.length })
63
78
  ] }),
64
79
  /* @__PURE__ */ t(
65
- c,
80
+ g,
66
81
  {
67
- columns: d,
68
- estimateRowSize: f,
82
+ columns: p,
83
+ estimateRowSize: x,
69
84
  getItemKey: (e) => e.fully_qualified_name,
70
85
  gridClassName: "grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3",
71
- items: a,
86
+ items: o,
72
87
  parentRef: s,
73
- renderItem: n,
88
+ renderItem: f,
74
89
  rowGapPx: 12
75
90
  }
76
91
  )
77
92
  ] }),
78
- r.length > 0 && /* @__PURE__ */ l("div", { className: "space-y-3", children: [
79
- a.length > 0 && /* @__PURE__ */ l("div", { className: "flex items-center gap-1.5", children: [
93
+ a.length > 0 && /* @__PURE__ */ i("div", { className: "space-y-3", children: [
94
+ o.length > 0 && /* @__PURE__ */ i("div", { className: "flex items-center gap-1.5", children: [
80
95
  /* @__PURE__ */ t("h3", { className: "font-semibold text-neutral-700 text-sm dark:text-neutral-200", children: "All tools" }),
81
- /* @__PURE__ */ t("span", { className: "rounded-full bg-neutral-200 px-1.5 py-0.5 text-neutral-800 text-xs dark:bg-neutral-800 dark:text-neutral-200", children: r.length })
96
+ /* @__PURE__ */ t("span", { className: "rounded-full bg-neutral-200 px-1.5 py-0.5 text-neutral-800 text-xs dark:bg-neutral-800 dark:text-neutral-200", children: a.length })
82
97
  ] }),
83
98
  /* @__PURE__ */ t(
84
- c,
99
+ g,
85
100
  {
86
- columns: d,
87
- estimateRowSize: f,
101
+ columns: p,
102
+ estimateRowSize: x,
88
103
  getItemKey: (e) => e.fully_qualified_name,
89
104
  gridClassName: "grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3",
90
- items: r,
105
+ items: a,
91
106
  parentRef: s,
92
- renderItem: n,
107
+ renderItem: f,
93
108
  rowGapPx: 12
94
109
  }
95
110
  )
96
- ] })
111
+ ] }),
112
+ m && /* @__PURE__ */ t(
113
+ h,
114
+ {
115
+ hiddenCount: r,
116
+ isShowingUnoptimized: d,
117
+ itemType: "tool",
118
+ onToggle: c
119
+ }
120
+ )
97
121
  ] });
98
122
  }
99
123
  export {
100
- K as ToolsList
124
+ V as ToolsList
101
125
  };
@@ -0,0 +1,21 @@
1
+ type UnoptimizedToggleProps = {
2
+ /**
3
+ * Number of hidden items when unoptimized toolkits are not shown
4
+ */
5
+ hiddenCount: number;
6
+ /**
7
+ * Whether unoptimized toolkits are currently shown
8
+ */
9
+ isShowingUnoptimized: boolean;
10
+ /**
11
+ * The type of item being hidden (for display text)
12
+ */
13
+ itemType: "toolkit" | "tool";
14
+ /**
15
+ * Callback to toggle the visibility of unoptimized toolkits
16
+ */
17
+ onToggle: () => void;
18
+ };
19
+ export declare function UnoptimizedToggle({ hiddenCount, isShowingUnoptimized, itemType, onToggle, }: UnoptimizedToggleProps): import("react/jsx-runtime").JSX.Element;
20
+ export {};
21
+ //# sourceMappingURL=unoptimized-toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unoptimized-toggle.d.ts","sourceRoot":"","sources":["../../../../../../lib/components/ui/organisms/toolkit-picker/components/unoptimized-toggle.tsx"],"names":[],"mappings":"AAAA,KAAK,sBAAsB,GAAG;IAC5B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAC9B;;OAEG;IACH,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC;IAC7B;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,oBAAoB,EACpB,QAAQ,EACR,QAAQ,GACT,EAAE,sBAAsB,2CAsBxB"}
@@ -0,0 +1,29 @@
1
+ import { jsxs as r, jsx as n } from "react/jsx-runtime";
2
+ function d({
3
+ hiddenCount: t,
4
+ isShowingUnoptimized: e,
5
+ itemType: o,
6
+ onToggle: l
7
+ }) {
8
+ const a = o === "toolkit" ? "toolkits" : "tools";
9
+ return /* @__PURE__ */ r("div", { className: "space-y-2 rounded-lg border border-neutral-200 bg-neutral-50 p-3 dark:border-neutral-700 dark:bg-neutral-800/50", children: [
10
+ !e && t > 0 && /* @__PURE__ */ r("p", { className: "text-neutral-600 text-sm dark:text-neutral-400", children: [
11
+ t,
12
+ " ",
13
+ t === 1 ? o : a,
14
+ " hidden in unoptimized toolkits"
15
+ ] }),
16
+ /* @__PURE__ */ n(
17
+ "button",
18
+ {
19
+ className: "font-medium text-blue-600 text-sm hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-300",
20
+ onClick: l,
21
+ type: "button",
22
+ children: e ? "Hide unoptimized toolkits" : "Show unoptimized toolkits"
23
+ }
24
+ )
25
+ ] });
26
+ }
27
+ export {
28
+ d as UnoptimizedToggle
29
+ };
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Featured toolkit names for the toolkit picker.
3
- * These appear in a highlighted "Featured Toolkits" section when not searching.
3
+ * These appear in a highlighted "Featured MCP Servers" section when not searching.
4
4
  * Matching is case-insensitive.
5
5
  */
6
6
  export declare const FEATURED_TOOLKITS: readonly ["Gmail", "GoogleCalendar", "GoogleDocs", "Github", "Slack", "Jira"];
@@ -24,11 +24,18 @@ type ReducerState = {
24
24
  searchQuery: string;
25
25
  toolkitFilter: string;
26
26
  activeTab: ToolkitPickerTab;
27
+ showUnoptimizedToolkits: boolean;
27
28
  };
28
29
  type UseToolkitPickerState = ReducerState & {
29
30
  toolkitCollection?: ToolkitCollection;
30
31
  filteredToolkits: Set<ProcessedToolkit>;
31
32
  filteredTools: Set<ProcessedTool>;
33
+ /** Whether there are any starter (unoptimized) toolkits in the collection */
34
+ hasStarterToolkits: boolean;
35
+ /** Count of starter toolkits hidden due to visibility rules (would match current search) */
36
+ hiddenToolkitCount: number;
37
+ /** Count of tools from starter toolkits hidden due to visibility rules (would match current search) */
38
+ hiddenToolCount: number;
32
39
  };
33
40
  type ToolkitPickerContextType = {
34
41
  state: UseToolkitPickerState;
@@ -43,6 +50,7 @@ type ToolkitPickerContextType = {
43
50
  setToolkitFilter: (fqName: string) => void;
44
51
  clearFilter: () => void;
45
52
  setActiveTab: (tab: ToolkitPickerTab) => void;
53
+ toggleUnoptimizedToolkits: () => void;
46
54
  };
47
55
  export declare function ToolkitPickerProvider({ children, toolkitCollection, selectionMode, initialProps, }: {
48
56
  children: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"use-toolkit-picker.d.ts","sourceRoot":"","sources":["../../../../../../lib/components/ui/organisms/toolkit-picker/hooks/use-toolkit-picker.tsx"],"names":[],"mappings":"AAAA,kGAAkG;AAElG,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,CAAC;AACpD,MAAM,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAGpD,KAAK,YAAY,GAAG;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,mBAAmB,CAAC;IACtC,aAAa,EAAE,gBAAgB,CAAC;IAChC,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,cAAc,EAAE,gBAAgB,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAGF,KAAK,qBAAqB,GAAG,YAAY,GAAG;IAC1C,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACxC,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CACnC,CAAC;AAmUF,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,aAAa,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACnD,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,YAAY,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC/C,CAAC;AAOF,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,YAAY,GACb,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,qBAAqB,2CAyIjD;AAGD,wBAAgB,gBAAgB,6BAQ/B;AAGD,YAAY,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"use-toolkit-picker.d.ts","sourceRoot":"","sources":["../../../../../../lib/components/ui/organisms/toolkit-picker/hooks/use-toolkit-picker.tsx"],"names":[],"mappings":"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"}