@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.
- 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 +3 -0
- package/dist/components/ui/atoms/index.d.ts.map +1 -1
- package/dist/components/ui/atoms/index.js +192 -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/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 +32 -0
- package/dist/components/ui/molecules/index.d.ts.map +1 -1
- package/dist/components/ui/molecules/index.js +26 -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 +40 -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 +118 -0
- package/dist/components/ui/molecules/mcp-server-picker/tool-card.d.ts +22 -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 +62 -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/scroll-fade-area.d.ts +26 -0
- package/dist/components/ui/molecules/scroll-fade-area.d.ts.map +1 -0
- package/dist/components/ui/molecules/scroll-fade-area.js +25 -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 +22 -0
- package/dist/hooks/use-scroll-fade.d.ts.map +1 -0
- package/dist/hooks/use-scroll-fade.js +39 -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 +2 -2
- package/dist/ToolbarRootContext-Dubw_915.js +0 -34
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../lib/utils.js";
|
|
4
|
+
import { t } from "../../../button-BNOmhdpM.js";
|
|
5
|
+
import { useScrollFade as n } from "../../../hooks/use-scroll-fade.js";
|
|
6
|
+
import { McpReviewCountChip as r } from "../molecules/mcp-server-picker/review-count-chip.js";
|
|
7
|
+
import { McpToolkitChip as i } from "../molecules/mcp-server-picker/toolkit-chip.js";
|
|
8
|
+
import { McpRecommendedToolkitsChip as a } from "../molecules/mcp-server-picker/recommended-toolkits-chip.js";
|
|
9
|
+
import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
10
|
+
//#region lib/components/ui/organisms/mcp-selection-summary-bar.tsx
|
|
11
|
+
function l({ mcpServers: l, recommendedMcpServers: u = [], toolCount: d, reviewing: f = !1, reviewingRecommended: p = !1, reviewLabel: m, onReview: h, onReviewRecommended: g, onOpenMcpServer: _, onRemoveMcpServer: v, onRemoveRecommended: y, onClear: b, emptyMessage: x = "No tools selected yet", className: S, ...C }) {
|
|
12
|
+
let w = l.length + u.length, T = w > 0, E = n("x");
|
|
13
|
+
return /* @__PURE__ */ s("div", {
|
|
14
|
+
...C,
|
|
15
|
+
className: e("@container flex min-h-9 items-center gap-2 rounded-lg bg-muted/30 px-2.5 py-1.5", S),
|
|
16
|
+
"data-slot": "mcp-selection-summary-bar",
|
|
17
|
+
"data-status": T ? "filled" : "empty",
|
|
18
|
+
children: T ? /* @__PURE__ */ c(o, { children: [
|
|
19
|
+
/* @__PURE__ */ s(r, {
|
|
20
|
+
active: f,
|
|
21
|
+
"aria-label": m,
|
|
22
|
+
onClick: h,
|
|
23
|
+
serverCount: w,
|
|
24
|
+
toolCount: d
|
|
25
|
+
}),
|
|
26
|
+
/* @__PURE__ */ s("span", {
|
|
27
|
+
"aria-hidden": !0,
|
|
28
|
+
className: "@md:block hidden h-5 w-px shrink-0 bg-border"
|
|
29
|
+
}),
|
|
30
|
+
/* @__PURE__ */ c("div", {
|
|
31
|
+
className: "@md:flex hidden min-w-0 flex-1 gap-1.5 overflow-x-auto p-0.5 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
|
|
32
|
+
onScroll: E.onScroll,
|
|
33
|
+
ref: E.ref,
|
|
34
|
+
style: E.style,
|
|
35
|
+
children: [u.length > 0 ? /* @__PURE__ */ s(a, {
|
|
36
|
+
active: p,
|
|
37
|
+
mcpServers: u,
|
|
38
|
+
onOpenMcpServer: _,
|
|
39
|
+
onRemove: y,
|
|
40
|
+
onReview: g
|
|
41
|
+
}) : null, l.map(({ id: e, ...t }) => /* @__PURE__ */ s(i, {
|
|
42
|
+
...t,
|
|
43
|
+
onOpen: _ ? () => _(e) : void 0,
|
|
44
|
+
onRemove: v ? () => v(e) : void 0
|
|
45
|
+
}, e))]
|
|
46
|
+
}),
|
|
47
|
+
b ? /* @__PURE__ */ s(t, {
|
|
48
|
+
className: "ml-auto",
|
|
49
|
+
onClick: b,
|
|
50
|
+
size: "xs",
|
|
51
|
+
variant: "ghost",
|
|
52
|
+
children: "Clear all"
|
|
53
|
+
}) : null
|
|
54
|
+
] }) : /* @__PURE__ */ s("span", {
|
|
55
|
+
className: "flex shrink-0 items-center px-2 py-1 font-medium text-muted-foreground text-xs",
|
|
56
|
+
children: x
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
61
|
+
export { l as McpSelectionSummaryBar };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Layout shell for the MCP server picker. Pure presentational composition —
|
|
4
|
+
* the consumer (ui-kit) supplies the molecules (search input, filter chips,
|
|
5
|
+
* server cards, summary chips, etc.) and all the domain data + callbacks
|
|
6
|
+
* via children. The shell only owns spacing, container queries, and the
|
|
7
|
+
* `data-slot` hooks for queryability.
|
|
8
|
+
*
|
|
9
|
+
* Typical composition:
|
|
10
|
+
*
|
|
11
|
+
* <McpServerPicker>
|
|
12
|
+
* <McpServerPickerHeader>
|
|
13
|
+
* <Input ... />
|
|
14
|
+
* <McpCategoryFilter ... />
|
|
15
|
+
* <McpUnoptimizedToggle ... />
|
|
16
|
+
* </McpServerPickerHeader>
|
|
17
|
+
* <McpSelectionSummaryBar ... />
|
|
18
|
+
* <McpServerPickerGrid>
|
|
19
|
+
* {servers.map(s => <McpServerCard key={s.id} ... />)}
|
|
20
|
+
* </McpServerPickerGrid>
|
|
21
|
+
* </McpServerPicker>
|
|
22
|
+
*
|
|
23
|
+
* Each subcomponent is a thin <div> with consistent layout — no internal
|
|
24
|
+
* state, no domain knowledge. Selection / search / filter behavior belongs
|
|
25
|
+
* in the consumer (ui-kit), where the picker's domain state already lives
|
|
26
|
+
* (`useToolSelection`, `usePickerSearch`, etc.).
|
|
27
|
+
*/
|
|
28
|
+
export declare function McpServerPicker({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
29
|
+
/**
|
|
30
|
+
* Toolbar row — search input, category filter, unoptimized toggle, etc.
|
|
31
|
+
* Stacks on narrow containers, flows inline at `@3xl`.
|
|
32
|
+
*/
|
|
33
|
+
export declare function McpServerPickerHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
34
|
+
/**
|
|
35
|
+
* Responsive grid of server cards. 1 col by default, 2 at `@md`, 3 at
|
|
36
|
+
* `@3xl`, 4 at `@5xl` — sized to comfortably fit `McpServerCard` widths.
|
|
37
|
+
*/
|
|
38
|
+
export declare function McpServerPickerGrid({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
39
|
+
/**
|
|
40
|
+
* Responsive grid of tool cards (denser than the server grid). 1 col by
|
|
41
|
+
* default, 2 at `@xl`, 3 at `@4xl` — sized to fit `McpToolCard` widths.
|
|
42
|
+
* Used inside drill-in views and grouped tool sections.
|
|
43
|
+
*/
|
|
44
|
+
export declare function McpServerPickerToolGrid({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
45
|
+
//# sourceMappingURL=mcp-server-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server-picker.d.ts","sourceRoot":"","sources":["../../../../lib/components/ui/organisms/mcp-server-picker.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { cn as e } from "../../../lib/utils.js";
|
|
4
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
5
|
+
//#region lib/components/ui/organisms/mcp-server-picker.tsx
|
|
6
|
+
function n({ className: n, ...r }) {
|
|
7
|
+
return /* @__PURE__ */ t("div", {
|
|
8
|
+
...r,
|
|
9
|
+
className: e("@container space-y-3", n),
|
|
10
|
+
"data-slot": "mcp-server-picker"
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
function r({ className: n, ...r }) {
|
|
14
|
+
return /* @__PURE__ */ t("div", {
|
|
15
|
+
...r,
|
|
16
|
+
className: e("flex @3xl:flex-row flex-col @3xl:items-center @3xl:gap-3 gap-2", n),
|
|
17
|
+
"data-slot": "mcp-server-picker-header"
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function i({ className: n, ...r }) {
|
|
21
|
+
return /* @__PURE__ */ t("div", {
|
|
22
|
+
...r,
|
|
23
|
+
className: e("grid @3xl:grid-cols-3 @5xl:grid-cols-4 @md:grid-cols-2 grid-cols-1 gap-2", n),
|
|
24
|
+
"data-slot": "mcp-server-picker-grid"
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function a({ className: n, ...r }) {
|
|
28
|
+
return /* @__PURE__ */ t("div", {
|
|
29
|
+
...r,
|
|
30
|
+
className: e("grid @4xl:grid-cols-3 @xl:grid-cols-2 grid-cols-1 gap-2", n),
|
|
31
|
+
"data-slot": "mcp-server-picker-tool-grid"
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
export { n as McpServerPicker, i as McpServerPickerGrid, r as McpServerPickerHeader, a as McpServerPickerToolGrid };
|
|
@@ -2,13 +2,13 @@ import { cn as e } from "../../../lib/utils.js";
|
|
|
2
2
|
import { t } from "../../../button-BNOmhdpM.js";
|
|
3
3
|
import { ArcadeGrid as n } from "../atoms/arcade-grid.js";
|
|
4
4
|
import { ArcadeLogo as r } from "../atoms/icons/arcade-logo.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { PUBLIC_VIDEO_URL as i } from "../../../metadata/constants.js";
|
|
6
|
+
import { AuthTemplate as a, AuthTemplateCard as o, AuthTemplateContent as s, AuthTemplateDescription as c, AuthTemplateFooter as l, AuthTemplateHeader as u, AuthTemplateLegal as d, AuthTemplateLegalLink as f, AuthTemplateLogo as p, AuthTemplatePrompt as m, AuthTemplatePromptLink as h, AuthTemplateTitle as g, AuthTemplateVideoBackground as _ } from "../templates/auth-template.js";
|
|
7
7
|
import { Fragment as v } from "react";
|
|
8
8
|
import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
9
9
|
import { Loader2 as x, LogIn as S } from "lucide-react";
|
|
10
10
|
//#region lib/components/ui/pages/login-page.tsx
|
|
11
|
-
var C = `${
|
|
11
|
+
var C = `${i}/A_L_Orange_Pink.mp4`;
|
|
12
12
|
function w({ isLoading: e }) {
|
|
13
13
|
return e ? /* @__PURE__ */ y(x, { className: "size-5 animate-spin" }) : /* @__PURE__ */ y(S, { className: "size-5" });
|
|
14
14
|
}
|
|
@@ -20,20 +20,20 @@ function T({ termsHref: e, privacyHref: t }) {
|
|
|
20
20
|
href: t,
|
|
21
21
|
label: "Privacy Policy"
|
|
22
22
|
}].filter((e) => !!e);
|
|
23
|
-
return n.length === 0 ? null : /* @__PURE__ */ b(
|
|
23
|
+
return n.length === 0 ? null : /* @__PURE__ */ b(d, { children: [
|
|
24
24
|
"By continuing, you agree to the",
|
|
25
25
|
" ",
|
|
26
|
-
n.map((e, t) => /* @__PURE__ */ b(v, { children: [t > 0 && /* @__PURE__ */ y("span", { children: " and " }), /* @__PURE__ */ y(
|
|
26
|
+
n.map((e, t) => /* @__PURE__ */ b(v, { children: [t > 0 && /* @__PURE__ */ y("span", { children: " and " }), /* @__PURE__ */ y(f, {
|
|
27
27
|
href: e.href,
|
|
28
28
|
children: e.label
|
|
29
29
|
})] }, e.href))
|
|
30
30
|
] });
|
|
31
31
|
}
|
|
32
|
-
function E({ isLoading:
|
|
33
|
-
let O =
|
|
34
|
-
return /* @__PURE__ */ b(
|
|
32
|
+
function E({ isLoading: i = !1, loadingText: d = "Authenticating...", onSubmit: f, privacyHref: v, registerHref: x, submitText: S = "Sign in with Arcade", termsHref: E, videoSrc: D = C }) {
|
|
33
|
+
let O = i ? d : S, k = x || E || v;
|
|
34
|
+
return /* @__PURE__ */ b(a, { children: [
|
|
35
35
|
/* @__PURE__ */ y("div", { className: "absolute -inset-4 z-0 bg-gradient-to-br from-rose-500/70 via-pink-400/50 to-amber-500/70 opacity-60 blur-lg brightness-50" }),
|
|
36
|
-
D && /* @__PURE__ */ y(
|
|
36
|
+
D && /* @__PURE__ */ y(_, { src: D }),
|
|
37
37
|
/* @__PURE__ */ y("div", {
|
|
38
38
|
className: "absolute inset-0 z-1 opacity-[0.01]",
|
|
39
39
|
children: /* @__PURE__ */ y(n, {
|
|
@@ -41,26 +41,26 @@ function E({ isLoading: u = !1, loadingText: d = "Authenticating...", onSubmit:
|
|
|
41
41
|
fill: "currentColor"
|
|
42
42
|
})
|
|
43
43
|
}),
|
|
44
|
-
/* @__PURE__ */ y(
|
|
45
|
-
/* @__PURE__ */ b(
|
|
46
|
-
/* @__PURE__ */ b(
|
|
47
|
-
/* @__PURE__ */ y(
|
|
44
|
+
/* @__PURE__ */ y(p, { children: /* @__PURE__ */ y(r, { className: "h-12 w-auto text-zinc-900 dark:text-white" }) }),
|
|
45
|
+
/* @__PURE__ */ b(o, { children: [
|
|
46
|
+
/* @__PURE__ */ b(u, { children: [/* @__PURE__ */ y(g, { children: "Welcome back" }), /* @__PURE__ */ y(c, { children: "Sign in with your Arcade account to continue" })] }),
|
|
47
|
+
/* @__PURE__ */ y(s, { children: /* @__PURE__ */ b(t, {
|
|
48
48
|
className: e("group relative h-12 w-full overflow-hidden text-base transition-all duration-300", "hover:scale-[1.01] hover:shadow-md hover:brightness-105 active:scale-[0.99]"),
|
|
49
|
-
disabled:
|
|
50
|
-
onClick:
|
|
49
|
+
disabled: i,
|
|
50
|
+
onClick: f,
|
|
51
51
|
size: "lg",
|
|
52
52
|
children: [/* @__PURE__ */ b("span", {
|
|
53
53
|
className: "relative z-10 flex items-center justify-center gap-2",
|
|
54
|
-
children: [/* @__PURE__ */ y(w, { isLoading:
|
|
55
|
-
}), /* @__PURE__ */ y("div", { className: e("absolute inset-0 bg-gradient-to-r from-primary/5 via-primary/0 to-primary/5 transition-opacity duration-300 group-hover:opacity-100",
|
|
54
|
+
children: [/* @__PURE__ */ y(w, { isLoading: i }), O]
|
|
55
|
+
}), /* @__PURE__ */ y("div", { className: e("absolute inset-0 bg-gradient-to-r from-primary/5 via-primary/0 to-primary/5 transition-opacity duration-300 group-hover:opacity-100", i ? "pointer-events-none opacity-0" : "opacity-0") })]
|
|
56
56
|
}) }),
|
|
57
|
-
k && /* @__PURE__ */ b(
|
|
57
|
+
k && /* @__PURE__ */ b(l, { children: [x && /* @__PURE__ */ b(m, { children: [
|
|
58
58
|
/* @__PURE__ */ y("span", {
|
|
59
59
|
className: "text-muted-foreground text-sm",
|
|
60
60
|
children: "Don't have an account?"
|
|
61
61
|
}),
|
|
62
62
|
" ",
|
|
63
|
-
/* @__PURE__ */ y(
|
|
63
|
+
/* @__PURE__ */ y(h, {
|
|
64
64
|
href: x,
|
|
65
65
|
children: "Register"
|
|
66
66
|
})
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Arcade as e } from "../atoms/icons/arcade.js";
|
|
2
2
|
import { FlowTile as t } from "../atoms/flow-tile.js";
|
|
3
3
|
import { FlowDiagram as n } from "../molecules/flow-diagram.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
4
|
+
import { TOOLKITS as r } from "../../../metadata/toolkits.js";
|
|
5
|
+
import { TOOLKIT_ICON_MAP as i } from "../../../metadata/toolkit-icons.js";
|
|
6
|
+
import { FlowHub as a } from "../atoms/flow-hub.js";
|
|
7
|
+
import { MCP_CLIENT_METADATA as o } from "../../../metadata/mcp-clients.js";
|
|
8
8
|
import { jsx as s } from "react/jsx-runtime";
|
|
9
9
|
//#region lib/components/ui/templates/gateway-diagram.tsx
|
|
10
10
|
var c = [
|
|
@@ -33,18 +33,18 @@ var c = [
|
|
|
33
33
|
};
|
|
34
34
|
function f({ mcpClientIds: f = c, mcpServerIds: p = l, animate: m = "both", animation: h = "flow", lineStyle: g, size: _ = "md", "aria-label": v = "Arcade MCP gateway diagram", ...y }) {
|
|
35
35
|
let b = _, x = d[_], S = f.map((e) => {
|
|
36
|
-
let n =
|
|
36
|
+
let n = o[e];
|
|
37
37
|
if (!n) return null;
|
|
38
|
-
let { label: r, Icon:
|
|
38
|
+
let { label: r, Icon: i } = n;
|
|
39
39
|
return /* @__PURE__ */ s(t, {
|
|
40
40
|
label: r,
|
|
41
41
|
size: b,
|
|
42
|
-
children: /* @__PURE__ */ s(
|
|
42
|
+
children: /* @__PURE__ */ s(i, {})
|
|
43
43
|
}, e);
|
|
44
44
|
}).filter((e) => e !== null), C = p.map((e) => {
|
|
45
|
-
let n =
|
|
45
|
+
let n = i[e];
|
|
46
46
|
return n ? /* @__PURE__ */ s(t, {
|
|
47
|
-
label:
|
|
47
|
+
label: r.find((t) => t.id === e)?.label ?? e,
|
|
48
48
|
size: b,
|
|
49
49
|
children: /* @__PURE__ */ s(n, {})
|
|
50
50
|
}, e) : null;
|
|
@@ -53,7 +53,7 @@ function f({ mcpClientIds: f = c, mcpServerIds: p = l, animate: m = "both", anim
|
|
|
53
53
|
animate: m,
|
|
54
54
|
animation: h,
|
|
55
55
|
"aria-label": v,
|
|
56
|
-
center: /* @__PURE__ */ s(
|
|
56
|
+
center: /* @__PURE__ */ s(a, {
|
|
57
57
|
className: u,
|
|
58
58
|
size: x,
|
|
59
59
|
children: /* @__PURE__ */ s(e, { "aria-hidden": !0 })
|
|
@@ -27,7 +27,8 @@ import { t as De } from "./useFocus-DzHCrvH6.js";
|
|
|
27
27
|
import { n as Oe, r as ke, t as Ae } from "./getPseudoElementBounds-DarjR4tH.js";
|
|
28
28
|
import { t as je } from "./inertValue-C36grUTu.js";
|
|
29
29
|
import { t as Me } from "./useTriggerFocusGuards-D1QlFlDK.js";
|
|
30
|
-
import {
|
|
30
|
+
import { t as Ne } from "./useAnchoredPopupScrollLock-C8wRjuy0.js";
|
|
31
|
+
import { t as Pe } from "./ToolbarRootContext-DVNA8Vkb.js";
|
|
31
32
|
import { t as Fe } from "./CompositeItem-BWqRobLN.js";
|
|
32
33
|
import { t as Ie } from "./Separator-CgntgfMd.js";
|
|
33
34
|
import * as Z from "react";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fades the edge(s) of a scroll container that still have hidden content, via a
|
|
3
|
+
* dynamic mask-image — a lightweight "there's more" hint with no extra DOM.
|
|
4
|
+
* Works on either axis and only fades an edge you can actually scroll toward.
|
|
5
|
+
* Attach `ref` + `onScroll` to the scrollable element and spread `style`.
|
|
6
|
+
*
|
|
7
|
+
* Also returns `edges` ({ start, end }) for callers that want to draw their own
|
|
8
|
+
* edge affordance (e.g. a shadow) only when there is hidden content.
|
|
9
|
+
*/
|
|
10
|
+
export declare function useScrollFade(axis: "x" | "y"): {
|
|
11
|
+
ref: (el: HTMLDivElement | null) => void;
|
|
12
|
+
onScroll: () => void;
|
|
13
|
+
edges: {
|
|
14
|
+
start: boolean;
|
|
15
|
+
end: boolean;
|
|
16
|
+
};
|
|
17
|
+
style: {
|
|
18
|
+
maskImage: string;
|
|
19
|
+
WebkitMaskImage: string;
|
|
20
|
+
} | undefined;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=use-scroll-fade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-scroll-fade.d.ts","sourceRoot":"","sources":["../../lib/hooks/use-scroll-fade.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG;cA+CpC,cAAc,GAAG,IAAI;;;;;;;;;;EAuC7B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use client";
|
|
3
|
+
import { useCallback as e, useRef as t, useState as n } from "react";
|
|
4
|
+
//#region lib/hooks/use-scroll-fade.ts
|
|
5
|
+
var r = 24;
|
|
6
|
+
function i(i) {
|
|
7
|
+
let [a, o] = n({
|
|
8
|
+
start: !1,
|
|
9
|
+
end: !1
|
|
10
|
+
}), s = t(null), c = t(null), l = t(null), u = e(() => {
|
|
11
|
+
let e = s.current;
|
|
12
|
+
if (!e) return;
|
|
13
|
+
let t = i === "x" ? e.scrollLeft : e.scrollTop, n = i === "x" ? e.clientWidth : e.clientHeight, r = i === "x" ? e.scrollWidth : e.scrollHeight, a = t > 1, c = t + n < r - 1;
|
|
14
|
+
o((e) => e.start === a && e.end === c ? e : {
|
|
15
|
+
start: a,
|
|
16
|
+
end: c
|
|
17
|
+
});
|
|
18
|
+
}, [i]), d = e(() => {
|
|
19
|
+
let e = s.current, t = c.current;
|
|
20
|
+
if (e && t) {
|
|
21
|
+
t.disconnect(), t.observe(e);
|
|
22
|
+
for (let n of Array.from(e.children)) t.observe(n);
|
|
23
|
+
u();
|
|
24
|
+
}
|
|
25
|
+
}, [u]), f = e((e) => {
|
|
26
|
+
c.current?.disconnect(), l.current?.disconnect(), c.current = null, l.current = null, s.current = e, e && (c.current = new ResizeObserver(() => u()), l.current = new MutationObserver(() => d()), l.current.observe(e, { childList: !0 }), d());
|
|
27
|
+
}, [u, d]), p;
|
|
28
|
+
return (a.start || a.end) && (p = `linear-gradient(${i === "x" ? "to right" : "to bottom"}, ${a.start ? `transparent 0, black ${r}px` : "black 0"}, ${a.end ? `black calc(100% - ${r}px), transparent 100%` : "black 100%"})`), {
|
|
29
|
+
ref: f,
|
|
30
|
+
onScroll: u,
|
|
31
|
+
edges: a,
|
|
32
|
+
style: p ? {
|
|
33
|
+
maskImage: p,
|
|
34
|
+
WebkitMaskImage: p
|
|
35
|
+
} : void 0
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { i as useScrollFade };
|