@n1xyz/wallet-widget 0.0.34 → 0.0.35-alpha.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/features/onboarding-flow/components/ImageWithFallback.d.ts +5 -2
- package/dist/features/onboarding-flow/components/ImageWithFallback.js +36 -6
- package/dist/features/onboarding-flow/components/ImageWithFallback.js.map +1 -1
- package/dist/features/onboarding-flow/utils/withImageFallback.js.map +1 -1
- package/dist/main.css +1 -1
- package/dist/providers/N1WalletProvider.js +4 -0
- package/dist/providers/N1WalletProvider.js.map +1 -1
- package/dist/providers/ShadowRootWrapper.js +5 -0
- package/dist/providers/ShadowRootWrapper.js.map +1 -1
- package/dist/styles/cdn-fonts.d.ts +1 -0
- package/dist/styles/cdn-fonts.js +45 -0
- package/dist/styles/cdn-fonts.js.map +1 -0
- package/dist/styles/embedded-main-css.d.ts +1 -1
- package/dist/styles/embedded-main-css.js +1 -1
- package/dist/styles/embedded-main-css.js.map +1 -1
- package/dist/utils/ed25519.js +1 -1
- package/dist/utils/ed25519.js.map +1 -1
- package/package.json +31 -25
- package/dist/config/dynamic.d.ts +0 -1
- package/dist/config/dynamic.js +0 -13
- package/dist/config/dynamic.js.map +0 -1
- package/dist/config/turnkey.d.ts +0 -2
- package/dist/config/turnkey.js +0 -35
- package/dist/config/turnkey.js.map +0 -1
- package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/02-TurnkeyAuthScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.d.ts +0 -31
- package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js +0 -100
- package/dist/features/onboarding-flow/screens/04-ChainSelectionScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/05-AmountInputScreen.d.ts +0 -6
- package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js +0 -360
- package/dist/features/onboarding-flow/screens/05-AmountInputScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.d.ts +0 -3
- package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js +0 -31
- package/dist/features/onboarding-flow/screens/06-DepositProgressScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js +0 -136
- package/dist/features/onboarding-flow/screens/07-DepositSuccessScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js +0 -31
- package/dist/features/onboarding-flow/screens/08-AuthLoadingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/08-TurnkeyAuthScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.js +0 -14
- package/dist/features/onboarding-flow/screens/09-ErrorScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/09-TurnkeyPreparingScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/TurnkeyAuthScreen.js.map +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.d.ts +0 -1
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js +0 -18
- package/dist/features/onboarding-flow/screens/TurnkeyPreparingScreen.js.map +0 -1
- package/dist/features/turnkey/createTurnkeyWallet.d.ts +0 -25
- package/dist/features/turnkey/createTurnkeyWallet.js +0 -119
- package/dist/features/turnkey/createTurnkeyWallet.js.map +0 -1
- package/dist/providers/TurnkeyProviderBridge.d.ts +0 -7
- package/dist/providers/TurnkeyProviderBridge.js +0 -20
- package/dist/providers/TurnkeyProviderBridge.js.map +0 -1
- package/dist/turnkey/TurnkeyProvider.d.ts +0 -9
- package/dist/turnkey/TurnkeyProvider.js +0 -378
- package/dist/turnkey/TurnkeyProvider.js.map +0 -1
- package/dist/turnkey/createWalletProvider.d.ts +0 -3
- package/dist/turnkey/createWalletProvider.js +0 -180
- package/dist/turnkey/createWalletProvider.js.map +0 -1
- package/dist/turnkey/index.d.ts +0 -3
- package/dist/turnkey/index.js +0 -3
- package/dist/turnkey/index.js.map +0 -1
- package/dist/turnkey/types.d.ts +0 -48
- package/dist/turnkey/types.js +0 -8
- package/dist/turnkey/types.js.map +0 -1
- package/dist/utils/turnkeySessionStorage.d.ts +0 -3
- package/dist/utils/turnkeySessionStorage.js +0 -33
- package/dist/utils/turnkeySessionStorage.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@n1xyz/wallet-widget",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.35-alpha.0",
|
|
4
4
|
"description": "React wallet widget component for N1 applications",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -35,34 +35,40 @@
|
|
|
35
35
|
"react-dom": ">=18.2.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
40
|
-
"@
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"eslint-plugin
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"react": "
|
|
49
|
-
"react-
|
|
50
|
-
"
|
|
51
|
-
"
|
|
38
|
+
"@eslint/js": "^9.39.2",
|
|
39
|
+
"@tailwindcss/cli": "4.1.18",
|
|
40
|
+
"@tailwindcss/postcss": "4.1.18",
|
|
41
|
+
"@types/node": "25.0.3",
|
|
42
|
+
"@types/react": "19.2.7",
|
|
43
|
+
"@types/react-dom": "19.2.3",
|
|
44
|
+
"@typescript-eslint/eslint-plugin": "^8.51.0",
|
|
45
|
+
"@typescript-eslint/parser": "^8.51.0",
|
|
46
|
+
"autoprefixer": "10.4.23",
|
|
47
|
+
"eslint": "9.39.2",
|
|
48
|
+
"eslint-plugin-react": "7.37.5",
|
|
49
|
+
"eslint-plugin-react-hooks": "7.0.1",
|
|
50
|
+
"globals": "^17.0.0",
|
|
51
|
+
"nodemon": "3.1.11",
|
|
52
|
+
"pino-pretty": "13.1.3",
|
|
53
|
+
"postcss": "8.5.6",
|
|
54
|
+
"react": "19.2.3",
|
|
55
|
+
"react-dom": "19.2.3",
|
|
56
|
+
"tailwindcss": "4.1.18",
|
|
57
|
+
"typescript": "5.9.3"
|
|
52
58
|
},
|
|
53
59
|
"dependencies": {
|
|
54
|
-
"@dynamic-labs/ethereum": "
|
|
55
|
-
"@dynamic-labs/sdk-react-core": "
|
|
56
|
-
"@dynamic-labs/solana": "
|
|
57
|
-
"@n1xyz/nord-ts": "0.
|
|
60
|
+
"@dynamic-labs/ethereum": "4.52.2",
|
|
61
|
+
"@dynamic-labs/sdk-react-core": "4.52.2",
|
|
62
|
+
"@dynamic-labs/solana": "4.52.2",
|
|
63
|
+
"@n1xyz/nord-ts": "0.3.4",
|
|
58
64
|
"@noble/ed25519": "3.0.0",
|
|
59
|
-
"@noble/hashes": "2.0.
|
|
60
|
-
"@solana/web3.js": "1.98.
|
|
65
|
+
"@noble/hashes": "2.0.1",
|
|
66
|
+
"@solana/web3.js": "1.98.4",
|
|
61
67
|
"@tailwindcss/container-queries": "0.1.1",
|
|
62
68
|
"blockies-react-svg": "0.0.13",
|
|
63
69
|
"lottie-react": "2.4.1",
|
|
64
|
-
"lucide-react": "0.
|
|
65
|
-
"react-icons": "
|
|
70
|
+
"lucide-react": "0.562.0",
|
|
71
|
+
"react-icons": "5.5.0",
|
|
66
72
|
"react-shadow": "20.6.0"
|
|
67
73
|
},
|
|
68
74
|
"publishConfig": {
|
|
@@ -70,8 +76,8 @@
|
|
|
70
76
|
},
|
|
71
77
|
"pnpm": {
|
|
72
78
|
"overrides": {
|
|
73
|
-
"react": "
|
|
74
|
-
"react-dom": "
|
|
79
|
+
"react": "19.2.3",
|
|
80
|
+
"react-dom": "19.2.3"
|
|
75
81
|
}
|
|
76
82
|
}
|
|
77
83
|
}
|
package/dist/config/dynamic.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getDynamicEnvironmentId(): string | null;
|
package/dist/config/dynamic.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { logger } from '../utils/logger';
|
|
2
|
-
var missingEnvLogged = false;
|
|
3
|
-
export function getDynamicEnvironmentId() {
|
|
4
|
-
var envId = process.env.NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID ||
|
|
5
|
-
process.env.DYNAMIC_ENVIRONMENT_ID ||
|
|
6
|
-
'';
|
|
7
|
-
if (!envId && !missingEnvLogged) {
|
|
8
|
-
missingEnvLogged = true;
|
|
9
|
-
logger.error('Dynamic environment ID is missing. Set NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID in your .env file.');
|
|
10
|
-
}
|
|
11
|
-
return envId || null;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=dynamic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../../src/config/dynamic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B,MAAM,UAAU,uBAAuB;IACrC,IAAM,KAAK,GACT,OAAO,CAAC,GAAG,CAAC,kCAAkC;QAC9C,OAAO,CAAC,GAAG,CAAC,sBAAsB;QAClC,EAAE,CAAC;IAEL,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChC,gBAAgB,GAAG,IAAI,CAAC;QACxB,MAAM,CAAC,KAAK,CACV,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC","sourcesContent":["import { logger } from '../utils/logger';\n\nlet missingEnvLogged = false;\n\nexport function getDynamicEnvironmentId(): string | null {\n const envId =\n process.env.NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID ||\n process.env.DYNAMIC_ENVIRONMENT_ID ||\n '';\n\n if (!envId && !missingEnvLogged) {\n missingEnvLogged = true;\n logger.error(\n 'Dynamic environment ID is missing. Set NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID in your .env file.'\n );\n }\n\n return envId || null;\n}\n"]}
|
package/dist/config/turnkey.d.ts
DELETED
package/dist/config/turnkey.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
var TURNKEY_ORG_ID = process.env.NEXT_PUBLIC_TURNKEY_ORGANIZATION_ID ||
|
|
13
|
-
process.env.TURNKEY_ORGANIZATION_ID ||
|
|
14
|
-
'';
|
|
15
|
-
var TURNKEY_AUTH_PROXY_CONFIG_ID = process.env.NEXT_PUBLIC_TURNKEY_AUTH_PROXY_CONFIG_ID ||
|
|
16
|
-
process.env.TURNKEY_AUTH_PROXY_CONFIG_ID ||
|
|
17
|
-
'';
|
|
18
|
-
var TURNKEY_AUTH_PROXY_URL = process.env.NEXT_PUBLIC_TURNKEY_AUTH_PROXY_URL ||
|
|
19
|
-
process.env.TURNKEY_AUTH_PROXY_URL ||
|
|
20
|
-
'';
|
|
21
|
-
var TURNKEY_API_BASE_URL = process.env.NEXT_PUBLIC_TURNKEY_API_BASE_URL ||
|
|
22
|
-
process.env.TURNKEY_API_BASE_URL ||
|
|
23
|
-
'https://api.turnkey.com';
|
|
24
|
-
var TURNKEY_SESSION_EXPIRATION_SECONDS = process.env.NEXT_PUBLIC_TURNKEY_SESSION_EXPIRATION_SECONDS ||
|
|
25
|
-
process.env.TURNKEY_SESSION_EXPIRATION_SECONDS ||
|
|
26
|
-
'';
|
|
27
|
-
export function getTurnkeyProviderConfig() {
|
|
28
|
-
if (!TURNKEY_ORG_ID || !TURNKEY_AUTH_PROXY_CONFIG_ID) {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
return __assign(__assign(__assign({ organizationId: TURNKEY_ORG_ID, authProxyConfigId: TURNKEY_AUTH_PROXY_CONFIG_ID }, (TURNKEY_AUTH_PROXY_URL && { authProxyUrl: TURNKEY_AUTH_PROXY_URL })), (TURNKEY_API_BASE_URL && { apiBaseUrl: TURNKEY_API_BASE_URL })), (TURNKEY_SESSION_EXPIRATION_SECONDS && {
|
|
32
|
-
sessionExpirationSeconds: TURNKEY_SESSION_EXPIRATION_SECONDS,
|
|
33
|
-
}));
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=turnkey.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"turnkey.js","sourceRoot":"","sources":["../../src/config/turnkey.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,IAAM,cAAc,GAClB,OAAO,CAAC,GAAG,CAAC,mCAAmC;IAC/C,OAAO,CAAC,GAAG,CAAC,uBAAuB;IACnC,EAAE,CAAC;AAEL,IAAM,4BAA4B,GAChC,OAAO,CAAC,GAAG,CAAC,wCAAwC;IACpD,OAAO,CAAC,GAAG,CAAC,4BAA4B;IACxC,EAAE,CAAC;AAEL,IAAM,sBAAsB,GAC1B,OAAO,CAAC,GAAG,CAAC,kCAAkC;IAC9C,OAAO,CAAC,GAAG,CAAC,sBAAsB;IAClC,EAAE,CAAC;AAEL,IAAM,oBAAoB,GACxB,OAAO,CAAC,GAAG,CAAC,gCAAgC;IAC5C,OAAO,CAAC,GAAG,CAAC,oBAAoB;IAChC,yBAAyB,CAAC;AAE5B,IAAM,kCAAkC,GACtC,OAAO,CAAC,GAAG,CAAC,8CAA8C;IAC1D,OAAO,CAAC,GAAG,CAAC,kCAAkC;IAC9C,EAAE,CAAC;AAEL,MAAM,UAAU,wBAAwB;IACtC,IAAI,CAAC,cAAc,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCACE,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,4BAA4B,IAC5C,CAAC,sBAAsB,IAAI,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAC,GACpE,CAAC,oBAAoB,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC,GAC9D,CAAC,kCAAkC,IAAI;QACxC,wBAAwB,EAAE,kCAAkC;KAC7D,CAAC,EACF;AACJ,CAAC","sourcesContent":["import type { TurnkeyProviderConfig } from '../turnkey';\n\nconst TURNKEY_ORG_ID =\n process.env.NEXT_PUBLIC_TURNKEY_ORGANIZATION_ID ||\n process.env.TURNKEY_ORGANIZATION_ID ||\n '';\n\nconst TURNKEY_AUTH_PROXY_CONFIG_ID =\n process.env.NEXT_PUBLIC_TURNKEY_AUTH_PROXY_CONFIG_ID ||\n process.env.TURNKEY_AUTH_PROXY_CONFIG_ID ||\n '';\n\nconst TURNKEY_AUTH_PROXY_URL =\n process.env.NEXT_PUBLIC_TURNKEY_AUTH_PROXY_URL ||\n process.env.TURNKEY_AUTH_PROXY_URL ||\n '';\n\nconst TURNKEY_API_BASE_URL =\n process.env.NEXT_PUBLIC_TURNKEY_API_BASE_URL ||\n process.env.TURNKEY_API_BASE_URL ||\n 'https://api.turnkey.com';\n\nconst TURNKEY_SESSION_EXPIRATION_SECONDS =\n process.env.NEXT_PUBLIC_TURNKEY_SESSION_EXPIRATION_SECONDS ||\n process.env.TURNKEY_SESSION_EXPIRATION_SECONDS ||\n '';\n\nexport function getTurnkeyProviderConfig(): TurnkeyProviderConfig | null {\n if (!TURNKEY_ORG_ID || !TURNKEY_AUTH_PROXY_CONFIG_ID) {\n return null;\n }\n\n return {\n organizationId: TURNKEY_ORG_ID,\n authProxyConfigId: TURNKEY_AUTH_PROXY_CONFIG_ID,\n ...(TURNKEY_AUTH_PROXY_URL && { authProxyUrl: TURNKEY_AUTH_PROXY_URL }),\n ...(TURNKEY_API_BASE_URL && { apiBaseUrl: TURNKEY_API_BASE_URL }),\n ...(TURNKEY_SESSION_EXPIRATION_SECONDS && {\n sessionExpirationSeconds: TURNKEY_SESSION_EXPIRATION_SECONDS,\n }),\n };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function TurnkeyAuthScreen(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { WaitingMessage } from '../components/WaitingMessage';
|
|
4
|
-
import { useWalletConnection } from '../providers';
|
|
5
|
-
var TURNKEY_ERROR_FALLBACK = 'Turnkey could not complete authentication. Retry or disconnect to start over.';
|
|
6
|
-
export function TurnkeyAuthScreen() {
|
|
7
|
-
var _a = useWalletConnection(), turnkeyStatus = _a.turnkeyStatus, turnkeyError = _a.turnkeyError, retryTurnkeyBootstrap = _a.retryTurnkeyBootstrap, disconnectWallet = _a.disconnectWallet;
|
|
8
|
-
if (turnkeyStatus === 'error') {
|
|
9
|
-
return (_jsxs("div", { className: "flex flex-col gap-4 text-center", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-base font-semibold text-white", children: "We couldn't complete Turnkey login" }), _jsx("p", { className: "text-sm text-neutral-400 mt-1", children: turnkeyError || TURNKEY_ERROR_FALLBACK })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium", onClick: retryTurnkeyBootstrap, children: "Retry" }), _jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium", onClick: disconnectWallet, children: "Disconnect" })] })] }));
|
|
10
|
-
}
|
|
11
|
-
return (_jsx(WaitingMessage, { loaderSize: 52, message: {
|
|
12
|
-
visible: true,
|
|
13
|
-
title: 'Secure Turnkey login',
|
|
14
|
-
subtitle: 'Complete the Turnkey prompt to continue',
|
|
15
|
-
isTyping: false,
|
|
16
|
-
} }));
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=02-TurnkeyAuthScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"02-TurnkeyAuthScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/02-TurnkeyAuthScreen.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,IAAM,sBAAsB,GAC1B,+EAA+E,CAAC;AAElF,MAAM,UAAU,iBAAiB;IACzB,IAAA,KAKF,mBAAmB,EAAE,EAJvB,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,qBAAqB,2BAAA,EACrB,gBAAgB,sBACO,CAAC;IAE1B,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CACL,eAAK,SAAS,EAAC,iCAAiC,aAC9C,0BACE,aAAI,SAAS,EAAC,oCAAoC,mDAE7C,EACL,YAAG,SAAS,EAAC,+BAA+B,YACzC,YAAY,IAAI,sBAAsB,GACrC,IACA,EACN,eAAK,SAAS,EAAC,YAAY,aACzB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iFAAiF,EAC3F,OAAO,EAAE,qBAAqB,sBAGvB,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8EAA8E,EACxF,OAAO,EAAE,gBAAgB,2BAGlB,IACL,IACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,cAAc,IACb,UAAU,EAAE,EAAE,EACd,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,sBAAsB;YAC7B,QAAQ,EAAE,yCAAyC;YACnD,QAAQ,EAAE,KAAK;SAChB,GACD,CACH,CAAC;AACJ,CAAC","sourcesContent":["\"use client\";\n\nimport { WaitingMessage } from '../components/WaitingMessage';\nimport { useWalletConnection } from '../providers';\n\nconst TURNKEY_ERROR_FALLBACK =\n 'Turnkey could not complete authentication. Retry or disconnect to start over.';\n\nexport function TurnkeyAuthScreen() {\n const {\n turnkeyStatus,\n turnkeyError,\n retryTurnkeyBootstrap,\n disconnectWallet,\n } = useWalletConnection();\n\n if (turnkeyStatus === 'error') {\n return (\n <div className=\"flex flex-col gap-4 text-center\">\n <div>\n <h3 className=\"text-base font-semibold text-white\">\n We couldn't complete Turnkey login\n </h3>\n <p className=\"text-sm text-neutral-400 mt-1\">\n {turnkeyError || TURNKEY_ERROR_FALLBACK}\n </p>\n </div>\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium\"\n onClick={retryTurnkeyBootstrap}\n >\n Retry\n </button>\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium\"\n onClick={disconnectWallet}\n >\n Disconnect\n </button>\n </div>\n </div>\n );\n }\n\n return (\n <WaitingMessage\n loaderSize={52}\n message={{\n visible: true,\n title: 'Secure Turnkey login',\n subtitle: 'Complete the Turnkey prompt to continue',\n isTyping: false,\n }}\n />\n );\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function TurnkeyPreparingScreen(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { WaitingMessage } from '../components/WaitingMessage';
|
|
4
|
-
import { useWalletConnection } from '../providers';
|
|
5
|
-
var TURNKEY_ERROR_FALLBACK = 'Turnkey could not prepare your Solana wallet. Retry or disconnect to start over.';
|
|
6
|
-
export function TurnkeyPreparingScreen() {
|
|
7
|
-
var _a = useWalletConnection(), turnkeyStatus = _a.turnkeyStatus, turnkeyError = _a.turnkeyError, retryTurnkeyBootstrap = _a.retryTurnkeyBootstrap, disconnectWallet = _a.disconnectWallet;
|
|
8
|
-
if (turnkeyStatus === 'error') {
|
|
9
|
-
return (_jsxs("div", { className: "flex flex-col gap-4 text-center", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-base font-semibold text-white", children: "We couldn't prepare your Solana wallet" }), _jsx("p", { className: "text-sm text-neutral-400 mt-1", children: turnkeyError || TURNKEY_ERROR_FALLBACK })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium", onClick: retryTurnkeyBootstrap, children: "Retry" }), _jsx("button", { type: "button", className: "flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium", onClick: disconnectWallet, children: "Disconnect" })] })] }));
|
|
10
|
-
}
|
|
11
|
-
return (_jsx(WaitingMessage, { loaderSize: 52, message: {
|
|
12
|
-
visible: true,
|
|
13
|
-
title: 'Preparing Solana wallet…',
|
|
14
|
-
subtitle: 'Provisioning a Nord-ready signer via Turnkey',
|
|
15
|
-
isTyping: false,
|
|
16
|
-
} }));
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=03-TurnkeyPreparingScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"03-TurnkeyPreparingScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/03-TurnkeyPreparingScreen.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,IAAM,sBAAsB,GAC1B,kFAAkF,CAAC;AAErF,MAAM,UAAU,sBAAsB;IAC9B,IAAA,KAKF,mBAAmB,EAAE,EAJvB,aAAa,mBAAA,EACb,YAAY,kBAAA,EACZ,qBAAqB,2BAAA,EACrB,gBAAgB,sBACO,CAAC;IAE1B,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,CACL,eAAK,SAAS,EAAC,iCAAiC,aAC9C,0BACE,aAAI,SAAS,EAAC,oCAAoC,uDAE7C,EACL,YAAG,SAAS,EAAC,+BAA+B,YACzC,YAAY,IAAI,sBAAsB,GACrC,IACA,EACN,eAAK,SAAS,EAAC,YAAY,aACzB,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iFAAiF,EAC3F,OAAO,EAAE,qBAAqB,sBAGvB,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,8EAA8E,EACxF,OAAO,EAAE,gBAAgB,2BAGlB,IACL,IACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,cAAc,IACb,UAAU,EAAE,EAAE,EACd,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,0BAA0B;YACjC,QAAQ,EAAE,8CAA8C;YACxD,QAAQ,EAAE,KAAK;SAChB,GACD,CACH,CAAC;AACJ,CAAC","sourcesContent":["\"use client\";\n\nimport { WaitingMessage } from '../components/WaitingMessage';\nimport { useWalletConnection } from '../providers';\n\nconst TURNKEY_ERROR_FALLBACK =\n 'Turnkey could not prepare your Solana wallet. Retry or disconnect to start over.';\n\nexport function TurnkeyPreparingScreen() {\n const {\n turnkeyStatus,\n turnkeyError,\n retryTurnkeyBootstrap,\n disconnectWallet,\n } = useWalletConnection();\n\n if (turnkeyStatus === 'error') {\n return (\n <div className=\"flex flex-col gap-4 text-center\">\n <div>\n <h3 className=\"text-base font-semibold text-white\">\n We couldn't prepare your Solana wallet\n </h3>\n <p className=\"text-sm text-neutral-400 mt-1\">\n {turnkeyError || TURNKEY_ERROR_FALLBACK}\n </p>\n </div>\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-main text-n1-ww-main text-sm font-medium\"\n onClick={retryTurnkeyBootstrap}\n >\n Retry\n </button>\n <button\n type=\"button\"\n className=\"flex-1 h-9 rounded border border-n1-ww-border text-white text-sm font-medium\"\n onClick={disconnectWallet}\n >\n Disconnect\n </button>\n </div>\n </div>\n );\n }\n\n return (\n <WaitingMessage\n loaderSize={52}\n message={{\n visible: true,\n title: 'Preparing Solana wallet…',\n subtitle: 'Provisioning a Nord-ready signer via Turnkey',\n isTyping: false,\n }}\n />\n );\n}\n"]}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { SolanaNetwork } from "../../../config/solana";
|
|
2
|
-
export declare const CHAINS_WITH_NETWORK_INFO: readonly [{
|
|
3
|
-
readonly id: "solana";
|
|
4
|
-
readonly name: "Solana";
|
|
5
|
-
readonly subtitle: "~1 minute deposit time";
|
|
6
|
-
readonly logo: import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
readonly network: SolanaNetwork.MAINNET;
|
|
8
|
-
readonly soon: false;
|
|
9
|
-
}, {
|
|
10
|
-
readonly id: "hyperliquid";
|
|
11
|
-
readonly name: "Hyperliquid";
|
|
12
|
-
readonly subtitle: undefined;
|
|
13
|
-
readonly logo: import("react/jsx-runtime").JSX.Element;
|
|
14
|
-
readonly network: "";
|
|
15
|
-
readonly soon: true;
|
|
16
|
-
}, {
|
|
17
|
-
readonly id: "arbitrum";
|
|
18
|
-
readonly name: "Arbitrum";
|
|
19
|
-
readonly subtitle: undefined;
|
|
20
|
-
readonly logo: import("react/jsx-runtime").JSX.Element;
|
|
21
|
-
readonly network: "";
|
|
22
|
-
readonly soon: true;
|
|
23
|
-
}, {
|
|
24
|
-
readonly id: "ethereum";
|
|
25
|
-
readonly name: "Ethereum";
|
|
26
|
-
readonly subtitle: undefined;
|
|
27
|
-
readonly logo: import("react/jsx-runtime").JSX.Element;
|
|
28
|
-
readonly network: "";
|
|
29
|
-
readonly soon: true;
|
|
30
|
-
}];
|
|
31
|
-
export declare function ChainSelectionScreen(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback, useMemo, useState } from "react";
|
|
3
|
-
import { logger } from "../../../utils/logger";
|
|
4
|
-
import { ChainButton } from "../components/ChainButton";
|
|
5
|
-
import { useWalletConnection, useOnboardingState } from "../providers";
|
|
6
|
-
import { SolanaLogo, HyperliquidLogo, ArbitrumLogo, EthereumLogo, } from "../../../components/logos";
|
|
7
|
-
import { SolanaNetwork } from "../../../config/solana";
|
|
8
|
-
var sharedLogoWrapperStyle = { width: 16, height: 16 };
|
|
9
|
-
export var CHAINS_WITH_NETWORK_INFO = [
|
|
10
|
-
{
|
|
11
|
-
id: "solana",
|
|
12
|
-
name: "Solana",
|
|
13
|
-
subtitle: "~1 minute deposit time",
|
|
14
|
-
logo: (_jsx("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: _jsx(SolanaLogo, { width: 16, height: 16 }) })),
|
|
15
|
-
network: SolanaNetwork.MAINNET,
|
|
16
|
-
soon: false,
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
id: "hyperliquid",
|
|
20
|
-
name: "Hyperliquid",
|
|
21
|
-
subtitle: undefined,
|
|
22
|
-
logo: (_jsx("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: _jsx(HyperliquidLogo, { width: 16, height: 16 }) })),
|
|
23
|
-
network: "",
|
|
24
|
-
soon: true,
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
id: "arbitrum",
|
|
28
|
-
name: "Arbitrum",
|
|
29
|
-
subtitle: undefined,
|
|
30
|
-
logo: (_jsx("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: _jsx(ArbitrumLogo, { width: 16, height: 16 }) })),
|
|
31
|
-
network: "",
|
|
32
|
-
soon: true,
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
id: "ethereum",
|
|
36
|
-
name: "Ethereum",
|
|
37
|
-
subtitle: undefined,
|
|
38
|
-
logo: (_jsx("div", { className: "flex items-center justify-center", style: sharedLogoWrapperStyle, children: _jsx(EthereumLogo, { width: 16, height: 16 }) })),
|
|
39
|
-
network: "",
|
|
40
|
-
soon: true,
|
|
41
|
-
},
|
|
42
|
-
];
|
|
43
|
-
export function ChainSelectionScreen() {
|
|
44
|
-
var disconnectWallet = useWalletConnection().disconnectWallet;
|
|
45
|
-
var _a = useOnboardingState(), actions = _a.actions, context = _a.context;
|
|
46
|
-
var initialSelectedChainId = useMemo(function () {
|
|
47
|
-
var _a;
|
|
48
|
-
if (context.selectedChainId) {
|
|
49
|
-
var chainFromId = CHAINS_WITH_NETWORK_INFO.find(function (chain) { return chain.id === context.selectedChainId; });
|
|
50
|
-
if (chainFromId) {
|
|
51
|
-
return chainFromId.id;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (context.selectedChain) {
|
|
55
|
-
var normalizedContextValue_1 = context.selectedChain.toLowerCase();
|
|
56
|
-
var chainFromContext = CHAINS_WITH_NETWORK_INFO.find(function (chain) {
|
|
57
|
-
return chain.name.toLowerCase() === normalizedContextValue_1 ||
|
|
58
|
-
chain.id.toLowerCase() === normalizedContextValue_1;
|
|
59
|
-
});
|
|
60
|
-
if (chainFromContext) {
|
|
61
|
-
return chainFromContext.id;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return ((_a = CHAINS_WITH_NETWORK_INFO.find(function (c) { return !c.soon; })) === null || _a === void 0 ? void 0 : _a.id) || null;
|
|
65
|
-
}, [context.selectedChain, context.selectedChainId]);
|
|
66
|
-
var _b = useState(initialSelectedChainId), selectedChainId = _b[0], setSelectedChainId = _b[1];
|
|
67
|
-
var handleChainSelect = useCallback(function (chainId) {
|
|
68
|
-
logger.debug("Chain selected in ChainSelectionScreen:", chainId);
|
|
69
|
-
var chain = CHAINS_WITH_NETWORK_INFO.find(function (c) { return c.id === chainId; });
|
|
70
|
-
if (chain && !chain.soon) {
|
|
71
|
-
setSelectedChainId(chainId);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
logger.debug("Chain not selectable:", chainId);
|
|
75
|
-
}
|
|
76
|
-
}, [logger]);
|
|
77
|
-
var selectedChain = useMemo(function () { return CHAINS_WITH_NETWORK_INFO.find(function (chain) { return chain.id === selectedChainId; }); }, [selectedChainId]);
|
|
78
|
-
var handleContinue = useCallback(function () {
|
|
79
|
-
var _a;
|
|
80
|
-
if (!selectedChain || selectedChain.soon) {
|
|
81
|
-
logger.debug("Continue button clicked without selectable chain");
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
actions.selectChain({
|
|
85
|
-
id: selectedChain.id,
|
|
86
|
-
name: selectedChain.name,
|
|
87
|
-
network: (_a = selectedChain.network) !== null && _a !== void 0 ? _a : null,
|
|
88
|
-
});
|
|
89
|
-
logger.debug("Transitioned to amount input from chain selection");
|
|
90
|
-
}, [selectedChain, actions]);
|
|
91
|
-
var handleDisconnect = useCallback(function () {
|
|
92
|
-
logger.debug("Disconnect button clicked");
|
|
93
|
-
disconnectWallet();
|
|
94
|
-
}, [disconnectWallet]);
|
|
95
|
-
var isContinueDisabled = !selectedChain || selectedChain.soon;
|
|
96
|
-
return (_jsx("div", { className: "overflow-visible relative", children: _jsxs("div", { className: "flex flex-col space-y-3", children: [CHAINS_WITH_NETWORK_INFO.map(function (chain) { return (_jsx(ChainButton, { chain: chain, onClick: function () { return handleChainSelect(chain.id); }, selected: selectedChainId === chain.id && !chain.soon, soon: chain.soon, subtitle: chain.subtitle }, chain.id)); }), _jsxs("div", { className: "flex flex-col space-y-2", children: [_jsx("button", { type: "button", onClick: handleContinue, disabled: isContinueDisabled, className: "w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center transition-all duration-200 transform ".concat(isContinueDisabled
|
|
97
|
-
? "border-n1-ww-border opacity-50 cursor-not-allowed"
|
|
98
|
-
: "border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer"), children: _jsx("span", { className: "font-medium text-sm opacity-90 ".concat(isContinueDisabled ? "text-n1-ww-gray-500" : "text-n1-ww-main"), children: "Continue" }) }), _jsx("button", { type: "button", onClick: handleDisconnect, className: "w-full h-8 rounded border border-n1-ww-border bg-transparent flex font-medium items-center justify-center transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer", children: _jsx("span", { className: "text-white font-medium text-sm opacity-90", children: "Disconnect" }) })] })] }) }));
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=04-ChainSelectionScreen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"04-ChainSelectionScreen.js","sourceRoot":"","sources":["../../../../src/features/onboarding-flow/screens/04-ChainSelectionScreen.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { logger } from \"../../../utils/logger\";\nimport { ChainButton } from \"../components/ChainButton\";\nimport { useWalletConnection, useOnboardingState } from \"../providers\";\nimport { \n SolanaLogo,\n HyperliquidLogo,\n ArbitrumLogo,\n EthereumLogo,\n} from \"../../../components/logos\";\nimport { SolanaNetwork } from \"../../../config/solana\";\n\n\n\nconst sharedLogoWrapperStyle = { width: 16, height: 16 };\n\nexport const CHAINS_WITH_NETWORK_INFO = [\n {\n id: \"solana\",\n name: \"Solana\",\n subtitle: \"~1 minute deposit time\",\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <SolanaLogo width={16} height={16} />\n </div>\n ),\n network: SolanaNetwork.MAINNET,\n soon: false,\n },\n {\n id: \"hyperliquid\",\n name: \"Hyperliquid\",\n subtitle: undefined,\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <HyperliquidLogo width={16} height={16} />\n </div>\n ),\n network: \"\",\n soon: true,\n },\n {\n id: \"arbitrum\",\n name: \"Arbitrum\",\n subtitle: undefined,\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <ArbitrumLogo width={16} height={16} />\n </div>\n ),\n network: \"\",\n soon: true,\n },\n {\n id: \"ethereum\",\n name: \"Ethereum\",\n subtitle: undefined,\n logo: (\n <div className=\"flex items-center justify-center\" style={sharedLogoWrapperStyle}>\n <EthereumLogo width={16} height={16} />\n </div>\n ),\n network: \"\",\n soon: true,\n },\n] as const;\n\n\n\nexport function ChainSelectionScreen() {\n const { disconnectWallet } = useWalletConnection();\n const { actions, context } = useOnboardingState();\n\n const initialSelectedChainId = useMemo(() => {\n if (context.selectedChainId) {\n const chainFromId = CHAINS_WITH_NETWORK_INFO.find(\n (chain) => chain.id === context.selectedChainId\n );\n if (chainFromId) {\n return chainFromId.id;\n }\n }\n\n if (context.selectedChain) {\n const normalizedContextValue = context.selectedChain.toLowerCase();\n const chainFromContext = CHAINS_WITH_NETWORK_INFO.find(\n (chain) =>\n chain.name.toLowerCase() === normalizedContextValue ||\n chain.id.toLowerCase() === normalizedContextValue\n );\n if (chainFromContext) {\n return chainFromContext.id;\n }\n }\n\n return CHAINS_WITH_NETWORK_INFO.find((c) => !c.soon)?.id || null;\n }, [context.selectedChain, context.selectedChainId]);\n\n const [selectedChainId, setSelectedChainId] = useState<string | null>(\n initialSelectedChainId\n );\n\n const handleChainSelect = useCallback((chainId: string) => {\n logger.debug(\"Chain selected in ChainSelectionScreen:\", chainId);\n \n const chain = CHAINS_WITH_NETWORK_INFO.find((c) => c.id === chainId);\n \n if (chain && !chain.soon) {\n setSelectedChainId(chainId);\n } else {\n logger.debug(\"Chain not selectable:\", chainId);\n }\n }, [logger]);\n\n const selectedChain = useMemo(\n () => CHAINS_WITH_NETWORK_INFO.find((chain) => chain.id === selectedChainId),\n [selectedChainId]\n );\n\n const handleContinue = useCallback(() => {\n if (!selectedChain || selectedChain.soon) {\n logger.debug(\"Continue button clicked without selectable chain\");\n return;\n }\n\n actions.selectChain({\n id: selectedChain.id,\n name: selectedChain.name,\n network: selectedChain.network ?? null,\n });\n logger.debug(\"Transitioned to amount input from chain selection\");\n }, [selectedChain, actions]);\n\n const handleDisconnect = useCallback(() => {\n logger.debug(\"Disconnect button clicked\");\n disconnectWallet();\n }, [disconnectWallet]);\n\n const isContinueDisabled = !selectedChain || selectedChain.soon;\n\n return (\n <div className=\"overflow-visible relative\">\n <div className=\"flex flex-col space-y-3\">\n {CHAINS_WITH_NETWORK_INFO.map((chain) => (\n <ChainButton\n key={chain.id}\n chain={chain}\n onClick={() => handleChainSelect(chain.id)}\n selected={selectedChainId === chain.id && !chain.soon}\n soon={chain.soon}\n subtitle={chain.subtitle}\n />\n ))}\n <div className=\"flex flex-col space-y-2\">\n <button\n type=\"button\"\n onClick={handleContinue}\n disabled={isContinueDisabled}\n className={`w-full h-8 rounded border bg-transparent flex font-medium items-center justify-center transition-all duration-200 transform ${\n isContinueDisabled\n ? \"border-n1-ww-border opacity-50 cursor-not-allowed\"\n : \"border-n1-ww-main hover:bg-n1-ww-gray-900 cursor-pointer\"\n }`}\n >\n <span\n className={`font-medium text-sm opacity-90 ${\n isContinueDisabled ? \"text-n1-ww-gray-500\" : \"text-n1-ww-main\"\n }`}\n >\n Continue\n </span>\n </button>\n <button\n type=\"button\"\n onClick={handleDisconnect}\n className=\"w-full h-8 rounded border border-n1-ww-border bg-transparent flex font-medium items-center justify-center transition-all duration-200 transform hover:bg-n1-ww-gray-900 cursor-pointer\"\n >\n <span className=\"text-white font-medium text-sm opacity-90\">\n Disconnect\n </span>\n </button>\n </div>\n </div>\n </div>\n );\n}\n"]}
|