@zerodev/wallet-react-ui 0.0.7 → 0.0.8
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/README.md +20 -5
- package/dist/_types/auth/components/WalletGridSheet/index.d.ts +15 -0
- package/dist/_types/auth/components/WalletGridSheet/index.d.ts.map +1 -0
- package/dist/_types/auth/index.d.ts.map +1 -1
- package/dist/_types/auth/pages/SignUp/InstalledWallets.d.ts +12 -0
- package/dist/_types/auth/pages/SignUp/InstalledWallets.d.ts.map +1 -0
- package/dist/_types/auth/pages/SignUp/MoreWallets.d.ts +5 -0
- package/dist/_types/auth/pages/SignUp/MoreWallets.d.ts.map +1 -0
- package/dist/_types/auth/pages/SignUp/Wallet.d.ts +7 -0
- package/dist/_types/auth/pages/SignUp/Wallet.d.ts.map +1 -0
- package/dist/_types/auth/pages/SignUp/context.d.ts +5 -0
- package/dist/_types/auth/pages/SignUp/context.d.ts.map +1 -1
- package/dist/_types/auth/pages/SignUp/index.d.ts +6 -0
- package/dist/_types/auth/pages/SignUp/index.d.ts.map +1 -1
- package/dist/_types/auth/types.d.ts +2 -2
- package/dist/_types/auth/types.d.ts.map +1 -1
- package/dist/_types/auth/utils/isCancellationError.d.ts.map +1 -1
- package/dist/_types/auth/walletGuide.d.ts +108 -0
- package/dist/_types/auth/walletGuide.d.ts.map +1 -0
- package/dist/_types/index.d.ts +1 -0
- package/dist/_types/index.d.ts.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +719 -478
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/auth/components/WalletGridSheet/index.tsx +77 -0
- package/src/auth/index.tsx +0 -13
- package/src/auth/pages/SignUp/InstalledWallets.tsx +95 -0
- package/src/auth/pages/SignUp/MoreWallets.tsx +105 -0
- package/src/auth/pages/SignUp/Wallet.tsx +81 -0
- package/src/auth/pages/SignUp/context.tsx +5 -0
- package/src/auth/pages/SignUp/index.tsx +30 -4
- package/src/auth/types.ts +1 -2
- package/src/auth/utils/isCancellationError.ts +2 -0
- package/src/auth/walletGuide.ts +132 -0
- package/src/index.ts +1 -0
- package/dist/_types/auth/pages/WalletSelection.d.ts +0 -2
- package/dist/_types/auth/pages/WalletSelection.d.ts.map +0 -1
- package/src/auth/pages/WalletSelection.tsx +0 -61
package/README.md
CHANGED
|
@@ -135,9 +135,23 @@ import { ConnectWallet, SignUp } from '@zerodev/wallet-react-ui'
|
|
|
135
135
|
- `<SignUp>` (the root) owns the shared page state and the consent gate: when
|
|
136
136
|
either terms URL is set, a checkbox appears and every method is blocked
|
|
137
137
|
until the user agrees. `emailAuthMethod` picks the email verification flow.
|
|
138
|
-
- Units: `SignUp.Passkey`, `SignUp.Google`, `SignUp.Email`, `SignUp.
|
|
139
|
-
|
|
140
|
-
disable
|
|
138
|
+
- Units: `SignUp.Passkey`, `SignUp.Google`, `SignUp.Email`, `SignUp.Wallet`,
|
|
139
|
+
`SignUp.InstalledWallets`, `SignUp.MoreWallets`, `SignUp.Divider`. Order and
|
|
140
|
+
presence are yours; while one method is in flight, the others disable
|
|
141
|
+
themselves.
|
|
142
|
+
- `SignUp.Wallet` pins one external wallet as its own row. `walletId` is the
|
|
143
|
+
`WalletId` union (e.g. `'metamask'`, `'coinbase'`, `'rabby'`); the row
|
|
144
|
+
connects the wallet when a live connector claims it (browser extension or a
|
|
145
|
+
configured SDK connector) and is a link to the vendor's download page
|
|
146
|
+
otherwise.
|
|
147
|
+
- `SignUp.InstalledWallets` auto-discovers installed wallets: one row with an
|
|
148
|
+
INSTALLED badge per announced (EIP-6963) browser extension, and nothing when
|
|
149
|
+
none are installed. Wallets pinned via `SignUp.Wallet` are excluded
|
|
150
|
+
automatically; `excludeWalletIds` hides further wallets by guide id or rdns,
|
|
151
|
+
and `maxWallets` caps the list (default 4, known wallets ranked first).
|
|
152
|
+
- `SignUp.MoreWallets` renders a row that opens an overlay sheet with the full
|
|
153
|
+
wallet grid — every known wallet plus any other live connector; installed
|
|
154
|
+
ones connect, the rest link to the vendor's download page.
|
|
141
155
|
- `SignUp.Default` is the canonical composition; it accepts the same props as
|
|
142
156
|
the root and forwards them.
|
|
143
157
|
- Auth success/failure surfaces through wagmi — await `connect`, or watch
|
|
@@ -149,12 +163,13 @@ import { ConnectWallet, SignUp } from '@zerodev/wallet-react-ui'
|
|
|
149
163
|
| --- | --- |
|
|
150
164
|
| `zeroDevWallet` | wagmi connector with kit-specific auth extensions. |
|
|
151
165
|
| `<ConnectWallet />` | Renders the current auth step (sign-in, OTP, verifying, etc.). Props: `logo`, `renderSignUp`, `size`, `onClose`. |
|
|
152
|
-
| `<SignUp />` | Compound sign-up page: `SignUp.Default` plus the composable units (`Passkey`, `Google`, `Email`, `Divider`). |
|
|
166
|
+
| `<SignUp />` | Compound sign-up page: `SignUp.Default` plus the composable units (`Passkey`, `Google`, `Email`, `Wallet`, `InstalledWallets`, `MoreWallets`, `Divider`). |
|
|
153
167
|
| `useAuth` | Read / drive the auth flow state. |
|
|
154
168
|
|
|
155
169
|
### Types
|
|
156
170
|
|
|
157
|
-
`AuthMethod`, `AuthStep`, `EmailAuthMethod`, `
|
|
171
|
+
`AuthMethod`, `AuthStep`, `EmailAuthMethod`, `WalletId`,
|
|
172
|
+
`ZeroDevKitConnectorParams`.
|
|
158
173
|
|
|
159
174
|
## Development
|
|
160
175
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type WalletTileData = {
|
|
2
|
+
key: string;
|
|
3
|
+
name: string;
|
|
4
|
+
icon?: string | undefined;
|
|
5
|
+
onSelect: () => void;
|
|
6
|
+
};
|
|
7
|
+
/** "More wallets" sheet: every guide wallet (plus live connectors
|
|
8
|
+
* we have no guide entry for) as a scrollable 3-column tile grid, laid over
|
|
9
|
+
* the sign-up page. Selection behavior is the caller's business. */
|
|
10
|
+
export declare function WalletGridSheet({ open, onOpenChange, tiles, }: {
|
|
11
|
+
open: boolean;
|
|
12
|
+
onOpenChange: (open: boolean) => void;
|
|
13
|
+
tiles: WalletTileData[];
|
|
14
|
+
}): import("react").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/auth/components/WalletGridSheet/index.tsx"],"names":[],"mappings":"AASA,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzB,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AA0BD;;oEAEoE;AACpE,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,YAAY,EACZ,KAAK,GACN,EAAE;IACD,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,KAAK,EAAE,cAAc,EAAE,CAAA;CACxB,+BAyBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,OAAO,CAAA;AAuDjD,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EAAE,WAAW,EACpB,IAAI,EACJ,YAAY,EACZ,IAAI,GACL,GAAE;IACD,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IAClC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;IACrC;2EACuE;IACvE,YAAY,CAAC,EAAE,CAAC,MAAM,SAAS,CAAC,GAAG,SAAS,CAAA;IAC5C;;wBAEoB;IACpB,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CACxB,sCAqCL"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Auto-discovered rows for installed wallets: one row per announced (6963)
|
|
2
|
+
* browser extension. Renders nothing when no wallet is installed. */
|
|
3
|
+
export declare function SignUpInstalledWallets({ excludeWalletIds, maxWallets, }: {
|
|
4
|
+
/** Wallets to hide, by guide id (e.g. `'metamask'`) or EIP-6963 rdns.
|
|
5
|
+
* Pinned `SignUp.Wallet` rows are excluded automatically. */
|
|
6
|
+
excludeWalletIds?: string[];
|
|
7
|
+
/** Cap on the number of rendered rows (default 4). Guide wallets rank
|
|
8
|
+
* first, in guide order, so the cut drops unknown extensions before
|
|
9
|
+
* curated ones. */
|
|
10
|
+
maxWallets?: number;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=InstalledWallets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstalledWallets.d.ts","sourceRoot":"","sources":["../../../../../src/auth/pages/SignUp/InstalledWallets.tsx"],"names":[],"mappings":"AAOA;qEACqE;AACrE,wBAAgB,sBAAsB,CAAC,EACrC,gBAAqB,EACrB,UAAc,GACf,EAAE;IACD;iEAC6D;IAC7D,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B;;uBAEmB;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,+BA0EA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MoreWallets.d.ts","sourceRoot":"","sources":["../../../../../src/auth/pages/SignUp/MoreWallets.tsx"],"names":[],"mappings":"AAYA,wDAAwD;AACxD,wBAAgB,iBAAiB,CAAC,EAChC,KAAsB,GACvB,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,+BAuFA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type WalletId } from '../../walletGuide';
|
|
2
|
+
/** Dedicated row for a single guide wallet: connects it directly when a live
|
|
3
|
+
* connector claims it, and is a download link for the vendor page otherwise. */
|
|
4
|
+
export declare function SignUpWallet({ walletId }: {
|
|
5
|
+
walletId: WalletId;
|
|
6
|
+
}): import("react").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=Wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Wallet.d.ts","sourceRoot":"","sources":["../../../../../src/auth/pages/SignUp/Wallet.tsx"],"names":[],"mappings":"AAKA,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG9E;gFACgF;AAChF,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAA;CAAE,+BAsEhE"}
|
|
@@ -14,6 +14,11 @@ export type SignUpContextValue = {
|
|
|
14
14
|
* returns false when agreement is required but missing. */
|
|
15
15
|
guardAgreement: () => boolean;
|
|
16
16
|
setError: (message: string | null) => void;
|
|
17
|
+
/** Guide ids of every mounted `SignUp.Wallet` pin. Discovery units skip
|
|
18
|
+
* these so a pinned wallet isn't listed twice. */
|
|
19
|
+
registeredWallets: readonly string[];
|
|
20
|
+
/** Returns the unregister function. */
|
|
21
|
+
registerWallet: (walletId: string) => () => void;
|
|
17
22
|
};
|
|
18
23
|
export declare const SignUpContext: import("react").Context<SignUpContextValue | null>;
|
|
19
24
|
export declare function useSignUpContext(): SignUpContextValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/auth/pages/SignUp/context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,MAAM,MAAM,kBAAkB,GAAG;IAC/B;yDACqD;IACrD,WAAW,EAAE,OAAO,CAAA;IACpB,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1C;+EAC2E;IAC3E,eAAe,EAAE,eAAe,CAAA;IAChC;4EACwE;IACxE,cAAc,EAAE,OAAO,CAAA;IACvB;+DAC2D;IAC3D,cAAc,EAAE,MAAM,OAAO,CAAA;IAC7B,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../../src/auth/pages/SignUp/context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,MAAM,MAAM,kBAAkB,GAAG;IAC/B;yDACqD;IACrD,WAAW,EAAE,OAAO,CAAA;IACpB,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1C;+EAC2E;IAC3E,eAAe,EAAE,eAAe,CAAA;IAChC;4EACwE;IACxE,cAAc,EAAE,OAAO,CAAA;IACvB;+DAC2D;IAC3D,cAAc,EAAE,MAAM,OAAO,CAAA;IAC7B,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC1C;sDACkD;IAClD,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,uCAAuC;IACvC,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,IAAI,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,aAAa,oDAAiD,CAAA;AAE3E,wBAAgB,gBAAgB,IAAI,kBAAkB,CAMrD;AAED;;;oCAGoC;AACpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAMhD"}
|
|
@@ -2,7 +2,10 @@ import { type ReactNode } from 'react';
|
|
|
2
2
|
import type { EmailAuthMethod } from '../../types';
|
|
3
3
|
import { SignUpEmail } from './Email';
|
|
4
4
|
import { SignUpGoogle } from './Google';
|
|
5
|
+
import { SignUpInstalledWallets } from './InstalledWallets';
|
|
6
|
+
import { SignUpMoreWallets } from './MoreWallets';
|
|
5
7
|
import { SignUpPasskey } from './Passkey';
|
|
8
|
+
import { SignUpWallet } from './Wallet';
|
|
6
9
|
type SignUpRootProps = {
|
|
7
10
|
children: ReactNode;
|
|
8
11
|
/** Enable the consent gate: linked from the footer checkbox, and every
|
|
@@ -25,6 +28,9 @@ export declare const SignUp: typeof SignUpRoot & {
|
|
|
25
28
|
Passkey: typeof SignUpPasskey;
|
|
26
29
|
Google: typeof SignUpGoogle;
|
|
27
30
|
Email: typeof SignUpEmail;
|
|
31
|
+
Wallet: typeof SignUpWallet;
|
|
32
|
+
InstalledWallets: typeof SignUpInstalledWallets;
|
|
33
|
+
MoreWallets: typeof SignUpMoreWallets;
|
|
28
34
|
Divider: typeof SignUpDivider;
|
|
29
35
|
};
|
|
30
36
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/auth/pages/SignUp/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/auth/pages/SignUp/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAA;AAG7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,SAAS,CAAA;IACnB;yEACqE;IACrE,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACrC,yDAAyD;IACzD,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAA;CAC9C,CAAA;AAED,iBAAS,UAAU,CAAC,EAClB,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,eAA6B,GAC9B,EAAE,eAAe,+BAoGjB;AAED,iBAAS,aAAa,CAAC,EAAE,KAAY,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,+BAQ1D;AAED;;yCAEyC;AACzC,iBAAS,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,+BAS9D;AAED,eAAO,MAAM,MAAM;;;;;;;;;CASjB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type AuthMethod = 'email' | 'google' | 'passkey';
|
|
2
|
-
export type AuthStep = 'sign-up' | 'email-verification' | 'otp-input' | 'verifying-otp' | 'passkey-prompt' | 'oauth-in-progress' | '
|
|
1
|
+
export type AuthMethod = 'email' | 'google' | 'passkey' | 'external-wallet';
|
|
2
|
+
export type AuthStep = 'sign-up' | 'email-verification' | 'otp-input' | 'verifying-otp' | 'passkey-prompt' | 'oauth-in-progress' | 'authenticated' | 'error';
|
|
3
3
|
export type EmailAuthMethod = 'magicLink' | 'otp';
|
|
4
4
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/auth/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/auth/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,iBAAiB,CAAA;AAE3E,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,oBAAoB,GACpB,WAAW,GACX,eAAe,GACf,gBAAgB,GAChB,mBAAmB,GACnB,eAAe,GACf,OAAO,CAAA;AAEX,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,KAAK,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isCancellationError.d.ts","sourceRoot":"","sources":["../../../../src/auth/utils/isCancellationError.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"isCancellationError.d.ts","sourceRoot":"","sources":["../../../../src/auth/utils/isCancellationError.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CASzD"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static wallet metadata ("wallet guide") for the external-wallet auth flow:
|
|
3
|
+
* `rdns` matches EIP-6963 announcements, `mobileLink` builds WalletConnect
|
|
4
|
+
* mobile deep links, `icon`/`downloadUrl` brand rows for wallets that are not
|
|
5
|
+
* installed. Self-contained — no runtime registry fetch.
|
|
6
|
+
*
|
|
7
|
+
* Wallet names and logos are trademarks of their respective owners.
|
|
8
|
+
*/
|
|
9
|
+
export type WalletGuideEntry = {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
/**
|
|
13
|
+
* EIP-6963 identifier used to match announced (installed) providers.
|
|
14
|
+
* Absent for wallets that never announce (mobile-app-only wallets).
|
|
15
|
+
*/
|
|
16
|
+
rdns?: string;
|
|
17
|
+
/** Self-contained `data:image/svg+xml` URI. */
|
|
18
|
+
icon: string;
|
|
19
|
+
/**
|
|
20
|
+
* WalletConnect mobile deep-link prefix — append `encodeURIComponent(wcUri)`.
|
|
21
|
+
* Absent when the wallet has no WC deep link (SDK- or extension-only).
|
|
22
|
+
*/
|
|
23
|
+
mobileLink?: string;
|
|
24
|
+
/** Vendor download page, for "get the wallet" fallbacks. */
|
|
25
|
+
downloadUrl: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* A live connector "claims" a guide wallet by rdns: announced (6963)
|
|
29
|
+
* connectors carry `id === rdns`, explicit ones (e.g. `metaMask()`) declare
|
|
30
|
+
* `rdns` as a string or array.
|
|
31
|
+
*/
|
|
32
|
+
export declare function matchesWallet(connector: {
|
|
33
|
+
id: string;
|
|
34
|
+
rdns?: string | readonly string[] | undefined;
|
|
35
|
+
}, wallet: WalletGuideEntry): boolean;
|
|
36
|
+
declare const guide: readonly [{
|
|
37
|
+
readonly id: "metamask";
|
|
38
|
+
readonly name: "MetaMask";
|
|
39
|
+
readonly rdns: "io.metamask";
|
|
40
|
+
readonly icon: "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cg%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20fill%3D%22%23ff5c16%22%20d%3D%22m24.024%2023.824-4.846-1.434-3.655%202.172-2.55-.001-3.656-2.171-4.844%201.434L3%2018.88l1.473-5.488L3%208.751%204.473%203l7.569%204.496h4.413L24.024%203l1.473%205.751-1.473%204.64%201.473%205.488z%22%2F%3E%3Cpath%20fill%3D%22%23ff5c16%22%20d%3D%22m4.474%203%207.57%204.499-.302%203.087zm4.844%2015.881%203.33%202.522-3.33.987zm3.064-4.17-.64-4.123-4.097%202.804h-.002v.001l.013%202.886%201.661-1.567zM24.024%203l-7.57%204.499.3%203.087zM19.18%2018.881l-3.33%202.522%203.33.987zm1.674-5.488v-.002zl-4.097-2.804-.64%204.124h3.064l1.662%201.567z%22%2F%3E%3Cpath%20fill%3D%22%23e34807%22%20d%3D%22m9.317%2022.39-4.844%201.434L3%2018.881h6.317zm3.064-7.68.925%205.962-1.282-3.315-4.37-1.078%201.662-1.568zm6.799%207.68%204.844%201.434%201.473-4.943H19.18zm-3.064-7.68-.925%205.962%201.282-3.315%204.37-1.078-1.663-1.568z%22%2F%3E%3Cpath%20fill%3D%22%23ff8d5d%22%20d%3D%22m3%2018.88%201.473-5.489h3.169l.012%202.887%204.37%201.078%201.282%203.314-.659.73-3.33-2.522H3zm22.497%200-1.473-5.489h-3.17l-.01%202.887-4.371%201.078-1.282%203.314.659.73%203.33-2.522h6.317zM16.455%207.495h-4.413l-.3%203.087%201.565%2010.084h1.884l1.565-10.084z%22%2F%3E%3Cpath%20fill%3D%22%23661800%22%20d%3D%22M4.473%203%203%208.751l1.473%204.64h3.169l4.1-2.805zm6.992%2012.908H10.03l-.781.761%202.776.685-.56-1.447M24.024%203l1.473%205.751-1.473%204.64h-3.17l-4.098-2.805zm-6.99%2012.908h1.437l.782.762-2.78.686.56-1.45zm-1.512%206.687.328-1.193-.66-.73h-1.885l-.659.73.327%201.192%22%2F%3E%3Cpath%20fill%3D%22%23c0c4cd%22%20d%3D%22M15.522%2022.594v1.969h-2.548v-1.969z%22%2F%3E%3Cpath%20fill%3D%22%23e7ebf6%22%20d%3D%22m9.318%2022.388%203.658%202.174v-1.969l-.328-1.192zm9.862%200-3.658%202.174v-1.969l.328-1.192z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22a%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M3%203h22.5v21.563H3z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E";
|
|
41
|
+
readonly mobileLink: "https://metamask.app.link/wc?uri=";
|
|
42
|
+
readonly downloadUrl: "https://metamask.io/download";
|
|
43
|
+
}, {
|
|
44
|
+
readonly id: "trust";
|
|
45
|
+
readonly name: "Trust Wallet";
|
|
46
|
+
readonly rdns: "com.trustwallet.app";
|
|
47
|
+
readonly icon: "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20width%3D%2228%22%20height%3D%2228%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cpath%20fill%3D%22%230500FF%22%20d%3D%22M6%207.583%2013.53%205v17.882C8.15%2020.498%206%2015.928%206%2013.345V7.583Z%22%2F%3E%3Cpath%20fill%3D%22url(%23a)%22%20d%3D%22M22%207.583%2013.53%205v17.882c6.05-2.384%208.47-6.954%208.47-9.537V7.583Z%22%2F%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22a%22%20x1%3D%2219.768%22%20x2%3D%2214.072%22%20y1%3D%223.753%22%20y2%3D%2222.853%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%22.02%22%20stop-color%3D%22%2300F%22%2F%3E%3Cstop%20offset%3D%22.08%22%20stop-color%3D%22%230094FF%22%2F%3E%3Cstop%20offset%3D%22.16%22%20stop-color%3D%22%2348FF91%22%2F%3E%3Cstop%20offset%3D%22.42%22%20stop-color%3D%22%230094FF%22%2F%3E%3Cstop%20offset%3D%22.68%22%20stop-color%3D%22%230038FF%22%2F%3E%3Cstop%20offset%3D%22.9%22%20stop-color%3D%22%230500FF%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E";
|
|
48
|
+
readonly mobileLink: "trust://wc?uri=";
|
|
49
|
+
readonly downloadUrl: "https://trustwallet.com/download";
|
|
50
|
+
}, {
|
|
51
|
+
readonly id: "coinbase";
|
|
52
|
+
readonly name: "Coinbase Wallet";
|
|
53
|
+
readonly rdns: "com.coinbase.wallet";
|
|
54
|
+
readonly icon: "data:image/svg+xml,%3Csvg%20width%3D%2228%22%20height%3D%2228%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22%232C5FF6%22%2F%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M14%2023.8C19.4124%2023.8%2023.8%2019.4124%2023.8%2014C23.8%208.58761%2019.4124%204.2%2014%204.2C8.58761%204.2%204.2%208.58761%204.2%2014C4.2%2019.4124%208.58761%2023.8%2014%2023.8ZM11.55%2010.8C11.1358%2010.8%2010.8%2011.1358%2010.8%2011.55V16.45C10.8%2016.8642%2011.1358%2017.2%2011.55%2017.2H16.45C16.8642%2017.2%2017.2%2016.8642%2017.2%2016.45V11.55C17.2%2011.1358%2016.8642%2010.8%2016.45%2010.8H11.55Z%22%20fill%3D%22white%22%2F%3E%0A%3C%2Fsvg%3E";
|
|
55
|
+
readonly downloadUrl: "https://coinbase.com/wallet/downloads";
|
|
56
|
+
}, {
|
|
57
|
+
readonly id: "rainbow";
|
|
58
|
+
readonly name: "Rainbow";
|
|
59
|
+
readonly rdns: "me.rainbow";
|
|
60
|
+
readonly icon: "data:image/svg+xml,%3Csvg%20width%3D%22120%22%20height%3D%22120%22%20viewBox%3D%220%200%20120%20120%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20width%3D%22120%22%20height%3D%22120%22%20fill%3D%22url(%23paint0_linear_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M20%2038H26C56.9279%2038%2082%2063.0721%2082%2094V100H94C97.3137%20100%20100%2097.3137%20100%2094C100%2053.1309%2066.8691%2020%2026%2020C22.6863%2020%2020%2022.6863%2020%2026V38Z%22%20fill%3D%22url(%23paint1_radial_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M84%2094H100C100%2097.3137%2097.3137%20100%2094%20100H84V94Z%22%20fill%3D%22url(%23paint2_linear_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M26%2020L26%2036H20L20%2026C20%2022.6863%2022.6863%2020%2026%2020Z%22%20fill%3D%22url(%23paint3_linear_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M20%2036H26C58.0325%2036%2084%2061.9675%2084%2094V100H66V94C66%2071.9086%2048.0914%2054%2026%2054H20V36Z%22%20fill%3D%22url(%23paint4_radial_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M68%2094H84V100H68V94Z%22%20fill%3D%22url(%23paint5_linear_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M20%2052L20%2036L26%2036L26%2052H20Z%22%20fill%3D%22url(%23paint6_linear_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M20%2062C20%2065.3137%2022.6863%2068%2026%2068C40.3594%2068%2052%2079.6406%2052%2094C52%2097.3137%2054.6863%20100%2058%20100H68V94C68%2070.804%2049.196%2052%2026%2052H20V62Z%22%20fill%3D%22url(%23paint7_radial_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M52%2094H68V100H58C54.6863%20100%2052%2097.3137%2052%2094Z%22%20fill%3D%22url(%23paint8_radial_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M26%2068C22.6863%2068%2020%2065.3137%2020%2062L20%2052L26%2052L26%2068Z%22%20fill%3D%22url(%23paint9_radial_62_329)%22%2F%3E%0A%3Cdefs%3E%0A%3ClinearGradient%20id%3D%22paint0_linear_62_329%22%20x1%3D%2260%22%20y1%3D%220%22%20x2%3D%2260%22%20y2%3D%22120%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22%23174299%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23001E59%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3CradialGradient%20id%3D%22paint1_radial_62_329%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate(26%2094)%20rotate(-90)%20scale(74)%22%3E%0A%3Cstop%20offset%3D%220.770277%22%20stop-color%3D%22%23FF4000%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%238754C9%22%2F%3E%0A%3C%2FradialGradient%3E%0A%3ClinearGradient%20id%3D%22paint2_linear_62_329%22%20x1%3D%2283%22%20y1%3D%2297%22%20x2%3D%22100%22%20y2%3D%2297%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22%23FF4000%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%238754C9%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3ClinearGradient%20id%3D%22paint3_linear_62_329%22%20x1%3D%2223%22%20y1%3D%2220%22%20x2%3D%2223%22%20y2%3D%2237%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22%238754C9%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF4000%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3CradialGradient%20id%3D%22paint4_radial_62_329%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate(26%2094)%20rotate(-90)%20scale(58)%22%3E%0A%3Cstop%20offset%3D%220.723929%22%20stop-color%3D%22%23FFF700%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF9901%22%2F%3E%0A%3C%2FradialGradient%3E%0A%3ClinearGradient%20id%3D%22paint5_linear_62_329%22%20x1%3D%2268%22%20y1%3D%2297%22%20x2%3D%2284%22%20y2%3D%2297%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22%23FFF700%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF9901%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3ClinearGradient%20id%3D%22paint6_linear_62_329%22%20x1%3D%2223%22%20y1%3D%2252%22%20x2%3D%2223%22%20y2%3D%2236%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22%23FFF700%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF9901%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3CradialGradient%20id%3D%22paint7_radial_62_329%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate(26%2094)%20rotate(-90)%20scale(42)%22%3E%0A%3Cstop%20offset%3D%220.59513%22%20stop-color%3D%22%2300AAFF%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2301DA40%22%2F%3E%0A%3C%2FradialGradient%3E%0A%3CradialGradient%20id%3D%22paint8_radial_62_329%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate(51%2097)%20scale(17%2045.3333)%22%3E%0A%3Cstop%20stop-color%3D%22%2300AAFF%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2301DA40%22%2F%3E%0A%3C%2FradialGradient%3E%0A%3CradialGradient%20id%3D%22paint9_radial_62_329%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate(23%2069)%20rotate(-90)%20scale(17%20322.37)%22%3E%0A%3Cstop%20stop-color%3D%22%2300AAFF%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2301DA40%22%2F%3E%0A%3C%2FradialGradient%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E";
|
|
61
|
+
readonly mobileLink: "rainbow://wc?uri=";
|
|
62
|
+
readonly downloadUrl: "https://rainbow.download";
|
|
63
|
+
}, {
|
|
64
|
+
readonly id: "rabby";
|
|
65
|
+
readonly name: "Rabby Wallet";
|
|
66
|
+
readonly rdns: "io.rabby";
|
|
67
|
+
readonly icon: "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cg%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20fill%3D%22%238697FF%22%20d%3D%22M28%200H0v28h28V0Z%22%2F%3E%3Cpath%20fill%3D%22url(%23b)%22%20d%3D%22M22.54%2015.078c.677-1.514-2.673-5.744-5.874-7.506-2.017-1.365-4.12-1.178-4.545-.579-.935%201.316%203.094%202.43%205.788%203.731-.58.252-1.125.703-1.446%201.28-1.004-1.096-3.209-2.04-5.796-1.28-1.743.513-3.191%201.721-3.751%203.546a1.097%201.097%200%201%200-.445%202.1c.112%200%20.463-.075.463-.075l5.612.041c-2.244%203.56-4.018%204.081-4.018%204.698s1.697.45%202.335.22c3.05-1.1%206.327-4.531%206.89-5.519%202.36.295%204.345.33%204.786-.657Z%22%2F%3E%3Cpath%20fill%3D%22url(%23c)%22%20fill-rule%3D%22evenodd%22%20d%3D%22m17.885%2010.713.025.01c.125-.049.105-.233.07-.378-.078-.333-1.438-1.676-2.715-2.277-1.743-.82-3.025-.777-3.212-.398.356.726%201.998%201.408%203.714%202.12.723.3%201.46.606%202.118.923Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20fill%3D%22url(%23d)%22%20fill-rule%3D%22evenodd%22%20d%3D%22M15.701%2018.036a10.296%2010.296%200%200%200-1.2-.37c.482-.862.583-2.138.128-2.945-.639-1.133-1.44-1.736-3.304-1.736-1.024%200-3.783.346-3.832%202.648-.005.242%200%20.464.017.667l5.036.037a17.264%2017.264%200%200%201-1.871%202.483c.669.172%201.221.316%201.728.448.48.125.92.24%201.38.357a21.003%2021.003%200%200%200%201.918-1.59Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20fill%3D%22url(%23e)%22%20d%3D%22M6.848%2016.063c.206%201.75%201.2%202.435%203.232%202.638%202.032.203%203.197.067%204.749.208%201.296.118%202.453.778%202.882.55.386-.205.17-.947-.347-1.423-.67-.617-1.597-1.046-3.229-1.199.325-.89.234-2.138-.27-2.817-.731-.982-2.079-1.426-3.785-1.232-1.782.202-3.49%201.08-3.232%203.275Z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22b%22%20x1%3D%2210.464%22%20x2%3D%2222.394%22%20y1%3D%2213.737%22%20y2%3D%2217.12%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23fff%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23fff%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22c%22%20x1%3D%2220.386%22%20x2%3D%2211.779%22%20y1%3D%2213.509%22%20y2%3D%224.879%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%237258DC%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23797DEA%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22d%22%20x1%3D%2215.94%22%20x2%3D%227.673%22%20y1%3D%2218.337%22%20y2%3D%2213.584%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%237461EA%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23BFC2FF%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22e%22%20x1%3D%2211.177%22%20x2%3D%2216.765%22%20y1%3D%2213.648%22%20y2%3D%2220.749%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23fff%22%2F%3E%3Cstop%20offset%3D%22.984%22%20stop-color%3D%22%23D5CEFF%22%2F%3E%3C%2FlinearGradient%3E%3CclipPath%20id%3D%22a%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E";
|
|
68
|
+
readonly downloadUrl: "https://rabby.io";
|
|
69
|
+
}, {
|
|
70
|
+
readonly id: "okx";
|
|
71
|
+
readonly name: "OKX Wallet";
|
|
72
|
+
readonly rdns: "com.okex.wallet";
|
|
73
|
+
readonly icon: "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%20d%3D%22M10.819%205.556H5.93a.376.376%200%200%200-.375.375v4.888c0%20.207.168.375.375.375h4.888a.376.376%200%200%200%20.375-.376V5.932a.376.376%200%200%200-.376-.375Zm5.64%205.638h-4.886a.376.376%200%200%200-.376.376v4.887c0%20.208.168.376.376.376h4.887a.376.376%200%200%200%20.376-.375V11.57a.376.376%200%200%200-.376-.377Zm.75-5.638h4.887c.208%200%20.376.168.376.375v4.888a.376.376%200%200%201-.376.375H17.21a.376.376%200%200%201-.376-.376V5.933c0-.208.169-.376.376-.376Zm-6.39%2011.277H5.93a.376.376%200%200%200-.375.376v4.887c0%20.208.168.376.375.376h4.888a.376.376%200%200%200%20.375-.376V17.21a.376.376%200%200%200-.376-.376Zm6.39%200h4.887c.208%200%20.376.169.376.376v4.887a.376.376%200%200%201-.376.376H17.21a.376.376%200%200%201-.376-.376V17.21c0-.207.169-.376.376-.376Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E";
|
|
74
|
+
readonly mobileLink: "okex://main/wc?uri=";
|
|
75
|
+
readonly downloadUrl: "https://okx.com/download";
|
|
76
|
+
}, {
|
|
77
|
+
readonly id: "zerion";
|
|
78
|
+
readonly name: "Zerion";
|
|
79
|
+
readonly rdns: "io.zerion.wallet";
|
|
80
|
+
readonly icon: "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cpath%20fill%3D%22%232962EF%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M6.073%207c-.48%200-.665.593-.262.841l10.073%206.074a.577.577%200%200%200%20.758-.139l4.43-5.814c.3-.404-.004-.962-.525-.962H6.073ZM21.904%2021c.48%200%20.67-.596.267-.844l-10.075-6.073a.569.569%200%200%200-.751.146l-4.437%205.813c-.301.404.012.958.534.958h14.462Z%22%2F%3E%3C%2Fsvg%3E";
|
|
81
|
+
readonly mobileLink: "zerion://wc?uri=";
|
|
82
|
+
readonly downloadUrl: "https://zerion.io";
|
|
83
|
+
}, {
|
|
84
|
+
readonly id: "uniswap";
|
|
85
|
+
readonly name: "Uniswap";
|
|
86
|
+
readonly rdns: "org.uniswap.app";
|
|
87
|
+
readonly icon: "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22none%22%3E%3Cpath%20fill%3D%22%23FFD8EA%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cg%20fill%3D%22%23FF007A%22%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20d%3D%22M9.635%206.068c-.255-.039-.266-.043-.145-.06.23-.035.773.012%201.148.099.874.202%201.67.722%202.519%201.646l.225.246.323-.051c1.36-.213%202.741-.044%203.899.477.319.144.821.43.882.503.022.024.058.173.082.335.086.557.044.982-.13%201.301-.096.173-.101.228-.037.377a.367.367%200%200%200%20.334.206c.287%200%20.597-.454.74-1.086l.056-.252.113.126c.62.685%201.106%201.618%201.189%202.282l.021.174-.103-.158a1.966%201.966%200%200%200-.59-.604c-.415-.268-.855-.36-2.017-.42-1.05-.053-1.645-.141-2.234-.329-1.003-.32-1.508-.744-2.699-2.27-.53-.678-.855-1.053-1.18-1.354-.74-.687-1.466-1.047-2.396-1.187v-.001Z%22%2F%3E%3Cpath%20d%3D%22M18.725%207.581c.026-.453.088-.753.216-1.026.028-.07.063-.136.104-.198a.69.69%200%200%201-.049.178c-.092.266-.108.629-.043%201.052.081.536.126.613.706%201.192.273.272.589.613.704.761l.21.267-.21-.191c-.255-.233-.841-.69-.972-.755-.086-.042-.1-.042-.153.01-.05.048-.06.12-.068.461-.01.532-.084.873-.263%201.213-.096.187-.111.147-.025-.062.066-.155.072-.224.072-.739%200-1.033-.127-1.283-.864-1.707a8.169%208.169%200%200%200-.684-.346%202.614%202.614%200%200%201-.334-.16c.02-.02.74.185%201.029.293.431.163.502.183.555.164.034-.013.051-.113.068-.407h.001Zm-8.595%201.77c-.517-.696-.838-1.764-.768-2.563l.02-.247.119.02c.222.04.603.179.783.286.49.29.703.673.918%201.657.064.288.147.613.185.725.061.178.294.592.483.862.136.194.046.286-.255.26-.46-.04-1.083-.46-1.485-1Zm7.965%205.182c-2.42-.95-3.273-1.777-3.273-3.17%200-.206.007-.374.016-.374.008%200%20.102.067.208.151.491.384%201.04.548%202.563.765.896.128%201.398.231%201.864.382%201.48.478%202.392%201.449%202.61%202.773.063.384.028%201.104-.076%201.484-.082.3-.329.84-.394.861-.019.007-.037-.061-.04-.154-.025-.496-.283-.98-.715-1.343-.49-.412-1.15-.741-2.763-1.375Zm-1.699.396a4.13%204.13%200%200%200-.117-.5l-.062-.18.115.127c.16.173.285.396.391.693.082.227.09.294.09.662%200%20.361-.011.437-.087.64-.104.3-.28.572-.51.794-.443.44-1.011.683-1.833.784-.142.018-.557.047-.922.066-.922.046-1.529.144-2.073.33a.446.446%200%200%201-.156.036c-.021-.021.35-.237.656-.381.431-.204.861-.315%201.825-.47.475-.078.968-.173%201.093-.21%201.178-.352%201.784-1.263%201.59-2.39Z%22%2F%3E%3Cpath%20d%3D%22M17.506%2016.855c-.321-.675-.396-1.327-.22-1.935.02-.067.05-.119.068-.119a.64.64%200%200%201%20.169.09c.149.097.445.261%201.237.682.988.527%201.553.934%201.936%201.4.335.407.542.872.643%201.438.057.32.023%201.093-.061%201.416-.266%201.018-.882%201.818-1.764%202.285a2.129%202.129%200%200%201-.258.124c-.013%200%20.035-.116.104-.259.297-.605.331-1.193.107-1.848-.138-.401-.418-.89-.982-1.718-.657-.96-.817-1.218-.979-1.556Zm-9.095%203.644c.9-.742%202.016-1.267%203.036-1.43a4.85%204.85%200%200%201%201.575.06c.652.163%201.235.528%201.538.962.296.425.423.794.556%201.618.052.324.109.651.125.724.1.427.293.768.532.939.38.272%201.037.29%201.682.044a.853.853%200%200%201%20.21-.064c.023.023-.301.235-.53.347-.27.141-.572.213-.879.208-.59%200-1.08-.294-1.49-.891a7.027%207.027%200%200%201-.402-.784c-.431-.961-.644-1.253-1.145-1.575-.437-.28-1-.329-1.424-.126-.556.266-.71.96-.312%201.4.187.189.43.313.695.354a.75.75%200%200%200%20.589-.174.728.728%200%200%200%20.251-.551c0-.29-.114-.453-.4-.581-.392-.172-.812.029-.81.388%200%20.153.069.249.226.32.1.044.103.046.02.03-.358-.073-.442-.496-.154-.776.347-.336%201.064-.188%201.31.272.103.194.115.578.025.81-.203.52-.79.793-1.387.644-.407-.102-.571-.211-1.06-.703-.852-.856-1.182-1.023-2.408-1.21l-.237-.035.268-.22Z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M4.418%205.179c2.842%203.368%204.8%204.757%205.017%205.05.18.243.112.462-.195.632a1.899%201.899%200%200%201-.699.191c-.2%200-.269-.075-.269-.075-.115-.106-.18-.088-.773-1.116A176.911%20176.911%200%200%200%205.968%207.56c-.044-.04-.042-.04%201.448%202.564.24.543.047.741.047.819%200%20.157-.044.24-.242.457-.332.36-.48.765-.587%201.604-.12.94-.456%201.604-1.39%202.741-.545.666-.635.787-.773%201.056-.174.338-.221.527-.24.952a2.9%202.9%200%200%200%20.16%201.174c.122.378.252.626.582%201.125.285.43.448.75.448.876%200%20.099.019.099.461.001%201.054-.232%201.91-.64%202.392-1.142.298-.311.367-.482.37-.907.002-.277-.008-.336-.085-.496-.125-.26-.353-.477-.855-.813-.66-.44-.942-.794-1.018-1.28-.065-.4.01-.682.373-1.427.377-.773.47-1.103.535-1.88.04-.503.096-.701.244-.861.155-.166.293-.222.676-.272.623-.084%201.018-.24%201.343-.534a1.14%201.14%200%200%200%20.421-.869l.014-.28-.16-.179C9.563%209.34%204.036%204.667%204%204.667c-.007%200%20.18.23.418.512Zm1.325%2013.086a.486.486%200%200%200-.157-.652c-.203-.133-.522-.069-.522.103%200%20.053.03.092.098.125.114.058.122.122.032.254s-.082.248.02.328c.168.126.404.057.529-.158ZM10.683%2012c-.29.086-.575.389-.664.706-.053.194-.022.534.058.638.13.169.255.213.596.212.665-.004%201.243-.283%201.311-.632.054-.286-.2-.68-.55-.855a1.33%201.33%200%200%200-.75-.07Zm.78.593c.102-.143.057-.296-.118-.4-.331-.199-.835-.035-.835.272%200%20.153.262.32.502.32.16%200%20.38-.093.45-.192Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22a%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M4%204h19v20H4z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E";
|
|
88
|
+
readonly mobileLink: "uniswap://wc?uri=";
|
|
89
|
+
readonly downloadUrl: "https://wallet.uniswap.org";
|
|
90
|
+
}, {
|
|
91
|
+
readonly id: "ledger";
|
|
92
|
+
readonly name: "Ledger";
|
|
93
|
+
readonly icon: "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22none%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%20d%3D%22M11.65%204.4H4.4V9h1.1V5.5l6.15-.04V4.4Zm.05%205.95v7.25h4.6v-1.1h-3.5l-.04-6.15H11.7ZM4.4%2023.6h7.25v-1.06L5.5%2022.5V19H4.4v4.6ZM16.35%204.4h7.25V9h-1.1V5.5l-6.15-.04V4.4Zm7.25%2019.2h-7.25v-1.06l6.15-.04V19h1.1v4.6Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E";
|
|
94
|
+
readonly mobileLink: "ledgerlive://wc?uri=";
|
|
95
|
+
readonly downloadUrl: "https://www.ledger.com/ledger-live";
|
|
96
|
+
}, {
|
|
97
|
+
readonly id: "binance";
|
|
98
|
+
readonly name: "Binance Wallet";
|
|
99
|
+
readonly rdns: "com.binance.wallet";
|
|
100
|
+
readonly icon: "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22130%22%20height%3D%22130%22%20fill%3D%22none%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M0%200h130v130H0z%22%2F%3E%3Cpath%20fill%3D%22%23F3BA2F%22%20d%3D%22M45.587%2057.02%2065.01%2037.606l19.43%2019.43%2011.295-11.303L65.01%2015%2034.284%2045.725zM15%2065.004l11.299-11.299%2011.298%2011.299L26.3%2076.302zM45.587%2072.983%2065.01%2092.406l19.43-19.43%2011.303%2011.287-.008.007-30.725%2030.734-30.725-30.718-.016-.016zM92.403%2065.006%20103.7%2053.708%20115%2065.006l-11.299%2011.299z%22%2F%3E%3Cpath%20fill%3D%22%23F3BA2F%22%20d%3D%22m76.471%2064.998-11.46-11.469-8.476%208.475-.98.972-2.005%202.006-.016.016.016.024%2011.46%2011.453%2011.461-11.47.008-.007z%22%2F%3E%3C%2Fsvg%3E";
|
|
101
|
+
readonly mobileLink: "bnc://app.binance.com/cedefi/wc?uri=";
|
|
102
|
+
readonly downloadUrl: "https://www.binance.com/en/download";
|
|
103
|
+
}];
|
|
104
|
+
/** Valid `walletId` values for `<SignUp.Wallet>` — the guide's wallet ids. */
|
|
105
|
+
export type WalletId = (typeof guide)[number]['id'];
|
|
106
|
+
export declare const WALLET_GUIDE: readonly WalletGuideEntry[];
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=walletGuide.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletGuide.d.ts","sourceRoot":"","sources":["../../../src/auth/walletGuide.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;CAAE,EACxE,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAQT;AAED,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8EqC,CAAA;AAEhD,8EAA8E;AAC9E,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAA;AAInD,eAAO,MAAM,YAAY,EAAE,SAAS,gBAAgB,EAAU,CAAA"}
|
package/dist/_types/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { ConnectWallet } from './auth';
|
|
|
6
6
|
export { useAuth } from './auth/hooks/useAuth';
|
|
7
7
|
export { SignUp } from './auth/pages/SignUp';
|
|
8
8
|
export type { AuthMethod, AuthStep, EmailAuthMethod } from './auth/types';
|
|
9
|
+
export type { WalletId } from './auth/walletGuide';
|
|
9
10
|
export type { ZeroDevKitConnectorParams, } from './connector.js';
|
|
10
11
|
export { zeroDevWallet } from './connector.js';
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACzE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGlD,YAAY,EAEV,yBAAyB,GAC1B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),
|
|
2
|
-
An Email is On Its Way`,children:["We've sent a magic link to"," ",e.jsx(
|
|
3
|
-
`,"Please open the email and click the link to log in."]}),e.jsx("div",{className:"zd:flex zd:flex-col zd:gap-1",children:e.jsxs(c.Text,{className:"zd:text-center",children:["Did not get an email?"," ",e.jsx("button",{type:"button",disabled:!o,onClick:d,className:"zd:cursor-pointer zd:underline zd:disabled:opacity-50 zd:disabled:cursor-not-allowed",children:o?"Resend":`Resend in ${n} ${n===1?"second":"seconds"}`})]})})]}),e.jsx(c.PoweredBy,{className:"zd:self-center zd:pt-4 zd:pb-6"})]})}function Q(){return typeof window>"u"?!1:new URLSearchParams(window.location.search).has("code")}function T(){if(typeof window>"u")return;const t=new URL(window.location.href);t.searchParams.has("code")&&(t.searchParams.delete("code"),window.history.replaceState(null,"",t.toString()))}function Z({title:t="Oops, something went wrong",message:s="We couldn't complete the sign-in process. This could be due to timeout, an expired link, or a cancelled request.",showRetry:i=!1,showChooseAnother:r=!0}){const{goToStep:n,goBack:a,reset:o}=S(),d=a??(()=>n("sign-up"));return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"zd:flex-1 zd:flex zd:flex-col zd:gap-8 zd:items-center zd:justify-center",children:[e.jsx(N,{imageName:"error",title:t,children:s}),e.jsxs("div",{className:"zd:flex zd:flex-col zd:gap-1",children:[i&&e.jsx(c.Button,{action:"primary",text:"Try again",onClick:d}),r&&e.jsx(c.Button,{action:i?"secondary":"primary",onClick:()=>{T(),n("sign-up")},text:"Choose another sign-in method"}),!i&&!r&&e.jsx(c.Button,{action:"primary",text:"Start over",onClick:o})]})]}),e.jsx(c.PoweredBy,{className:"zd:self-center zd:pt-4 zd:pb-6"})]})}const ee=4,te=8,ne=6;function se(t){return Math.max(ee,Math.min(te,t))}function re({char:t,isFocused:s}){return e.jsx(c.Wrapper,{"data-testid":"code-input-box","data-active":s||void 0,className:c.cn("zd:h-16 zd:w-14 zd:rounded-lg zd:flex zd:items-center zd:justify-center",s&&"zd:border-[1.5px] zd:border-greyScale"),children:e.jsx(c.Text,{className:"zd:text-h2",children:t})})}function ie({onChange:t,onComplete:s,disabled:i=!1,error:r=!1,autoFocus:n=!1,length:a=ne,"data-testid":o}){const d=se(a),l=p.useMemo(()=>Array.from({length:d},(u,z)=>({id:`char-${z}`,index:z})),[d]),[m,f]=p.useState(""),[w,j]=p.useState(!1),h=p.useRef(null);p.useEffect(()=>{var u;n&&!i&&((u=h.current)==null||u.focus())},[n,i]),p.useEffect(()=>{f(u=>u.slice(0,d))},[d]);const x=u=>{const z=u.slice(0,d).toUpperCase();f(z),t==null||t(z),z.length===d&&setTimeout(()=>{var g;s==null||s(z),(g=h.current)==null||g.blur()},0)};return e.jsxs("button",{type:"button",className:"zd:flex zd:flex-row zd:items-center zd:justify-between zd:gap-2 zd:w-full zd:cursor-text",onClick:()=>{var u;return(u=h.current)==null?void 0:u.focus()},disabled:i,"data-testid":o,children:[e.jsx("input",{ref:h,value:m,onChange:u=>x(u.target.value),onFocus:()=>j(!0),onBlur:()=>j(!1),maxLength:d,disabled:i,className:"zd:absolute zd:opacity-0 zd:pointer-events-none",style:{position:"absolute",opacity:0},"aria-label":"Verification code"}),l.map(u=>e.jsx(re,{char:m[u.index]??"",isFocused:!r&&w&&u.index===m.length},u.id))]})}function oe(){const{email:t,otpId:s,otpEncryptionTargetBundle:i,setOtpSession:r,clearOtpSession:n,goToStep:a}=S(),{mutateAsync:o,isPending:d}=y.useSendOTP(),{mutateAsync:l,isPending:m}=y.useVerifyOTP(),[f,w]=p.useState(""),[j,h]=p.useState(!1),[x,u]=p.useState(60);p.useEffect(()=>{if(x<=0)return;const v=setInterval(()=>{u(R=>Math.max(0,R-1))},1e3);return()=>clearInterval(v)},[x]);const z=async()=>{if(!(!f.trim()||!s||!i)){h(!1);try{await l({otpId:s,code:f.trim(),otpEncryptionTargetBundle:i}),n(),a("authenticated")}catch{h(!0)}}},g=v=>{w(v)},I=async()=>{if(!(!t||x>0||d))try{const{otpId:v,otpEncryptionTargetBundle:R}=await o({email:t});r({otpId:v,otpEncryptionTargetBundle:R}),u(60),h(!1)}catch{h(!0)}},E=x<=0&&!d;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"zd:flex-1 zd:flex zd:flex-col zd:gap-8 zd:justify-center zd:items-center",children:[e.jsxs("div",{className:"zd:flex zd:flex-col zd:gap-4",children:[e.jsx(c.Text,{className:"zd:text-h2 zd:text-center",children:"Enter verification code"}),e.jsxs(c.Text,{className:"zd:text-center",children:["Enter the code from the email we sent to"," ",e.jsx(c.Text,{className:"zd:text-solarOrange",children:t})]})]}),e.jsx(ie,{onComplete:g,onChange:()=>h(!1),disabled:m,error:j,autoFocus:!0}),e.jsx(c.Button,{text:"Confirm code",onClick:z,disabled:!f.trim()||m}),e.jsx("div",{className:"zd:flex zd:flex-col zd:gap-1",children:e.jsxs(c.Text,{className:"zd:text-center",children:["Did not get an email?"," ",e.jsx("button",{type:"button",disabled:!E,onClick:I,className:"zd:cursor-pointer zd:underline zd:disabled:opacity-50 zd:disabled:cursor-not-allowed",children:E?"Resend":`Resend in ${x} ${x===1?"second":"seconds"}`})]})})]}),e.jsx(c.PoweredBy,{className:"zd:self-center zd:pt-4 zd:pb-6"})]})}function ae({termsAndConditionsUrl:t,privacyPolicyUrl:s,agreedToTerms:i,setAgreedToTerms:r,highlight:n=!1}){const a=!!(t||s);return e.jsxs("div",{className:"zd:flex zd:flex-col zd:items-center zd:gap-5",children:[a&&e.jsxs("div",{className:`zd:flex zd:flex-row zd:items-center zd:gap-2 zd:rounded-md zd:p-2 zd:transition-colors ${n?"zd:border zd:border-negative":"zd:border zd:border-transparent"}`,children:[e.jsx("input",{type:"checkbox",checked:i,onChange:o=>r(o.target.checked),className:"zd:cursor-pointer zd:[color-scheme:light]"}),e.jsxs(c.Text,{className:"zd:flex-1",children:["I agree to the"," ",t&&e.jsx(c.Text,{as:"a",href:t,target:"_blank",rel:"noopener noreferrer",className:"zd:underline",children:"Terms & Conditions"}),t&&s&&" and ",s&&e.jsx(c.Text,{as:"a",href:s,target:"_blank",rel:"noopener noreferrer",className:"zd:underline",children:"Privacy Policy"})]})]}),e.jsx(c.PoweredBy,{})]})}const ce=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/blob.webm").href:new URL("blob.webm",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href);function de({className:t}){return e.jsx("video",{className:t,style:{aspectRatio:"1 / 1"},src:ce,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,"aria-hidden":"true",tabIndex:-1})}const O=p.createContext(null);function k(){const t=p.useContext(O);if(!t)throw new Error("SignUp.* components must be rendered inside <SignUp>");return t}function P(t){const{setAuthPending:s}=k();p.useEffect(()=>(s(t),()=>s(!1)),[t,s])}const le=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function C(t){return le.test(t.trim())}function U(){const{goToStep:t,setEmail:s,setOtpSession:i}=S(),{authPending:r,emailAuthMethod:n,needsAgreement:a,guardAgreement:o,setError:d}=k(),[l,m]=p.useState(""),f=n==="otp",{mutateAsync:w,isPending:j}=y.useSendOTP(),{mutateAsync:h,isPending:x}=y.useSendMagicLink(),u=j||x;P(u);const z=async()=>{if(!(!l||r)&&C(l)&&o()){d(null);try{const g=f?w:h,{otpId:I,otpEncryptionTargetBundle:E}=await g({email:l});s(l),i({otpId:I,otpEncryptionTargetBundle:E}),t(f?"otp-input":"email-verification")}catch(g){d(g instanceof Error?g.message:"Failed to send verification code")}}};return e.jsx(c.Input,{iconName:"email",placeholder:"Enter your email",value:l,onChange:g=>m(g.target.value),type:"email",autoCapitalize:"none",autoComplete:"email",disabled:r,variant:"listItemStyle",onKeyDown:g=>{g.key==="Enter"&&l&&!r&&z()},children:u?e.jsx("div",{className:"zd:w-13 zd:h-13 zd:flex zd:items-center zd:justify-center",children:e.jsx("div",{className:"zd:w-5 zd:h-5 zd:border-2 zd:border-solarOrange zd:border-t-transparent zd:rounded-full zd:animate-spin"})}):e.jsx("button",{type:"button",disabled:!C(l)||a,className:`zd:w-13 zd:h-13 zd:rounded-2xl zd:flex zd:items-center zd:justify-center zd:transition-colors ${C(l)&&!a?"zd:cursor-pointer":"zd:cursor-not-allowed zd:opacity-50"}`,onClick:()=>z(),children:e.jsx(c.Icon,{name:"chevronRight",className:"zd:text-greyScale"})})})}function q(t){return t instanceof Error?t.name==="AbortError"||t.name==="NotAllowedError"?!0:t.message.toLowerCase().includes("oauth popup was closed"):!1}function F(){const{goToStep:t}=S(),{authPending:s,guardAgreement:i,setError:r}=k(),{mutateAsync:n,isPending:a}=y.useAuthenticateOAuth({mutation:{onSuccess:()=>{t("authenticated")}}});P(a);const o=async()=>{if(!s&&i()){r(null);try{await n({provider:"google"})}catch(d){q(d)||r(d instanceof Error?d.message:String(d))}}};return e.jsx(c.ListItem,{icon:e.jsx(c.ListItemIcon,{name:"google"}),title:"Google",trailing:e.jsx(c.ListItemChevron,{}),disabled:s,onClick:o})}function _(){const{goToStep:t}=S(),{authPending:s,guardAgreement:i,setError:r}=k(),n={onSuccess:()=>{t("authenticated")},onError:f=>{q(f)||r(f instanceof Error?f.message:String(f))}},{mutate:a,isPending:o}=y.useRegisterPasskey({mutation:n}),{mutate:d,isPending:l}=y.useLoginPasskey({mutation:n});P(o||l);const m=f=>()=>{s||i()&&(r(null),f())};return e.jsxs(e.Fragment,{children:[e.jsx(c.Button,{action:"secondary",text:"Create a passkey",iconName:"key",trailIcon:!0,disabled:s,onClick:m(()=>a())}),e.jsx(c.Button,{action:"secondary",text:"Log in with passkey",iconName:"key",trailIcon:!0,disabled:s,onClick:m(()=>d())})]})}function M({children:t,termsAndConditionsUrl:s,privacyPolicyUrl:i,emailAuthMethod:r="magicLink"}){const[n,a]=p.useState(!1),[o,d]=p.useState(!1),[l,m]=p.useState(null),[f,w]=p.useState(!1),h=!!(s||i)&&!n,x=()=>h?(d(!0),!1):!0;return e.jsxs(O.Provider,{value:{authPending:f,emailAuthMethod:r,setAuthPending:w,needsAgreement:h,guardAgreement:x,setError:m},children:[l!==null&&e.jsx("div",{className:"zd:flex zd:items-center zd:justify-center zd:h-full",children:e.jsxs("div",{className:"zd:flex zd:flex-col zd:gap-4 zd:max-w-md",children:[e.jsx(c.Text,{className:"zd:text-h2 zd:text-center",children:"Error occurred"}),e.jsx(c.Text,{className:"zd:text-center zd:text-red-500",children:l}),e.jsx(c.Button,{action:"primary",text:"Try again",onClick:()=>m(null)})]})}),e.jsxs("div",{className:`zd:flex-1 zd:flex zd:flex-col zd:justify-between zd:pb-4 zd:overflow-y-auto zd:overflow-x-hidden${l!==null?" zd:hidden":""}`,children:[e.jsxs("div",{className:"zd:flex-1 zd:flex zd:flex-col zd:justify-center",children:[e.jsxs("div",{className:"zd:px-4 zd:flex zd:flex-col zd:items-center",children:[e.jsx("div",{className:"zd:w-full zd:px-16 zd:py-4",children:e.jsx(de,{className:"zd:w-full zd:pointer-events-none zd:select-none"})}),e.jsx(c.Text,{className:"zd:text-h2 zd:text-center",children:"Continue to your wallet"}),e.jsx(c.Text,{className:"zd:mt-2 zd:text-center zd:text-greyScale/50",children:"Choose a sign-in method to proceed"})]}),e.jsx("div",{className:"zd:mt-6 zd:mb-4 zd:px-4 zd:flex zd:flex-col zd:gap-2",children:t})]}),e.jsx("div",{className:"zd:px-4",children:e.jsx(ae,{termsAndConditionsUrl:s,privacyPolicyUrl:i,agreedToTerms:n,setAgreedToTerms:u=>{a(u),u&&d(!1)},highlight:o})})]})]})}function H({label:t="or"}){return e.jsxs("div",{className:"zd:-mx-4 zd:my-2 zd:flex zd:items-center zd:gap-3",children:[e.jsx("div",{className:"zd:h-px zd:flex-1 zd:bg-greyScale/30"}),e.jsx(c.Text,{className:"zd:text-body3",children:t}),e.jsx("div",{className:"zd:h-px zd:flex-1 zd:bg-greyScale/30"})]})}function ue(t){return e.jsxs(M,{...t,children:[e.jsx(_,{}),e.jsx(H,{}),e.jsx(F,{}),e.jsx(U,{})]})}const W=Object.assign(M,{Default:ue,Passkey:_,Google:F,Email:U,Divider:H});function pe(){return typeof window>"u"?null:new URLSearchParams(window.location.search).get("code")}function me(){const{otpId:t,otpEncryptionTargetBundle:s,goToStep:i,clearOtpSession:r}=S(),[n]=p.useState(pe),[a,o]=p.useState(null),d=p.useRef(!1),{mutate:l,isPending:m}=y.useVerifyMagicLink({mutation:{onSuccess:()=>{r(),i("authenticated")},onError:f=>{o(f)}}});return p.useEffect(()=>{if(!(d.current||!n)){if(d.current=!0,!t||!s){T(),i(null);return}l({otpId:t,code:n,otpEncryptionTargetBundle:s})}},[t,s,n,l,i]),e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"zd:flex-1 zd:flex zd:flex-col zd:gap-8 zd:items-center zd:justify-center",children:[!a&&m&&e.jsx(N,{imageName:"loading",title:"Verifying Your Email",children:"Please wait while we securely connect your wallet."}),!a&&!n&&!m&&e.jsxs(e.Fragment,{children:[e.jsxs(N,{imageName:"error",title:"Invalid Link",children:["This verification link is invalid or incomplete.",e.jsx("br",{}),"Please check your email and try again with the correct link."]}),e.jsx(c.Button,{action:"primary",onClick:()=>{T(),i("sign-up")},text:"Choose another sign-in method"})]}),a!=null&&e.jsxs(e.Fragment,{children:[e.jsx(N,{imageName:"error",title:"Oops, something went wrong",children:"We couldn't complete the sign-in process. This could be due to timeout, an expired link, or a cancelled request."}),e.jsx(c.Button,{action:"primary",onClick:()=>{T(),i("sign-up")},text:"Choose another sign-in method"})]})]}),e.jsx(c.PoweredBy,{className:"zd:self-center zd:pt-4 zd:pb-6"})]})}function fe(){const{goToStep:t}=S(),{connect:s,connectors:i,isPending:r}=B.useConnect(),n=i.filter(o=>o.id!=="zerodev-wallet"),a=o=>{s({connector:o},{onSuccess:()=>{t(null)}})};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"zd:flex-1 zd:flex zd:flex-col zd:gap-8 zd:justify-center",children:[e.jsx(c.Text,{className:"zd:text-h2 zd:text-center",children:"Select your wallet"}),e.jsx("div",{className:"zd:flex zd:flex-col zd:gap-2",children:n.length===0?e.jsx(c.Text,{className:"zd:text-center",children:"No wallets detected. Install a browser wallet extension to continue."}):n.map(o=>e.jsx(c.ListItem,{title:o.name,icon:o.icon?e.jsx("img",{src:o.icon,alt:"",className:"zd:w-6 zd:h-6"}):e.jsx(c.ListItemIcon,{name:"walletOutline"}),disabled:r,onClick:()=>a(o),className:"zd:rounded-3xl"},o.uid))})]}),e.jsx(c.PoweredBy,{className:"zd:self-center zd:pt-4 zd:pb-6"})]})}const he={"wallet-selection":"Choose your wallet"};function ge(){return e.jsx("div",{className:"zd:flex zd:flex-1 zd:items-center zd:justify-center",children:e.jsx(N,{imageName:"loading",title:"Authenticating...",children:"Please wait while we complete the OAuth authentication."})})}function xe(){return e.jsx("div",{className:"zd:flex zd:flex-1 zd:items-center zd:justify-center",children:e.jsx(N,{imageName:"loading",title:"Passkey authentication",children:"Please authenticate with your passkey."})})}function ze(t,s){switch(t){case"sign-up":return s?s():e.jsx(W.Default,{});case"email-verification":return e.jsx(X,{});case"otp-input":return e.jsx(oe,{});case"verifying-otp":return e.jsx(me,{});case"oauth-in-progress":return e.jsx(ge,{});case"passkey-prompt":return e.jsx(xe,{});case"wallet-selection":return e.jsx(fe,{});case"error":return e.jsx(Z,{});default:return null}}function ye({onClose:t,size:s,renderSignUp:i,logo:r}={}){const{step:n,goToStep:a,goBack:o,reset:d}=S();p.useEffect(()=>{n===null&&Q()&&a("verifying-otp")},[n,a]);const l=ze(n,i);if(!l)return null;const m=()=>{T(),d(),t==null||t()},f=n?he[n]:void 0;return e.jsx(c.Screen,{...s&&{size:s},className:n==="sign-up"?"zd:h-auto zd:max-h-202.5":void 0,contentClassName:n==="sign-up"?"zd:px-0":void 0,topNav:e.jsx(c.TopNav,{...o!==null&&{onLeftButtonClick:o},onRightButtonClick:m,...f&&{title:f},...n==="sign-up"&&{...r&&{logo:r},className:"zd:px-4"}}),children:l})}const L="zerodev:auth:otpSession";function Se(){if(typeof window>"u")return null;try{const t=window.localStorage.getItem(L);if(!t)return null;const s=JSON.parse(t);return!(s!=null&&s.otpId)||!(s!=null&&s.otpEncryptionTargetBundle)?null:s}catch{return null}}function we(t){if(!(typeof window>"u"))try{window.localStorage.setItem(L,JSON.stringify(t))}catch{}}function A(){if(!(typeof window>"u"))try{window.localStorage.removeItem(L)}catch{}}const je=(t,s,i)=>({auth:{step:null,stepHistory:[],email:null,otpId:null,otpEncryptionTargetBundle:null,initialize:()=>{const r=Se();r&&t(n=>({auth:{...n.auth,otpId:r.otpId,otpEncryptionTargetBundle:r.otpEncryptionTargetBundle}}))},goToStep:r=>{t(n=>({auth:{...n.auth,step:r,stepHistory:n.auth.step===null?n.auth.stepHistory:[...n.auth.stepHistory,n.auth.step]}}))},goBack:()=>{const{auth:r}=s();if(r.stepHistory.length===0)return;const n=[...r.stepHistory],a=n.pop();t(o=>({auth:{...o.auth,step:a,stepHistory:n}}))},reset:()=>{A(),t(r=>({auth:{...r.auth,step:null,stepHistory:[],email:null,otpId:null,otpEncryptionTargetBundle:null}}))},setEmail:r=>{t(n=>({auth:{...n.auth,email:r}}))},setOtpSession:({otpId:r,otpEncryptionTargetBundle:n})=>{we({otpId:r,otpEncryptionTargetBundle:n}),t(a=>({auth:{...a.auth,otpId:r,otpEncryptionTargetBundle:n}}))},clearOtpSession:()=>{A(),t(r=>({auth:{...r.auth,otpId:null,otpEncryptionTargetBundle:null}}))}}}),Ne=()=>b.create()(D.subscribeWithSelector((t,s,i)=>({pendingRequests:[],userConfirmationListenerActive:!1,addPendingRequest:r=>t(n=>({pendingRequests:[...n.pendingRequests,r]})),removePendingRequest:r=>t(n=>({pendingRequests:n.pendingRequests.filter(a=>a.id!==r)})),clearPendingRequests:()=>t({pendingRequests:[]}),setUserConfirmationListenerActive:r=>t({userConfirmationListenerActive:r}),...je(t,s)})));function be(t){return new Promise((s,i)=>{const r=t.subscribe(n=>n.auth.step,n=>{n==="authenticated"?(r(),s()):n===null&&(r(),i(new Error("Auth flow dismissed")))})})}function ve(t){const s=y.zeroDevWallet(t),i=Ne();return r=>{const n=s(r);return{...n,async connect(a){try{return await n.connect(a)}catch(o){if(a!=null&&a.isReconnecting||!(o instanceof y.NotAuthenticatedError))throw o;if(i.getState().auth.step!==null)throw new Error("Auth flow already in progress");return i.getState().auth.goToStep("sign-up"),await be(i),n.connect(a)}},async disconnect(){var a;await((a=n.disconnect)==null?void 0:a.call(n)),i.getState().auth.reset()},async setup(){var a;await((a=n.setup)==null?void 0:a.call(n)),!(typeof window>"u")&&i.getState().auth.initialize()},getKitStore(){return i}}}}exports.ConnectWallet=ye;exports.SignUp=W;exports.useAuth=S;exports.zeroDevWallet=ve;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("@zerodev/react-ui"),g=require("react"),N=require("zustand"),A=require("wagmi"),E=require("@zerodev/wallet-react"),W=require("zustand/middleware"),q=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/error.webp").href:new URL("error.webp",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),$=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/loading.webp").href:new URL("loading.webp",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),K=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/send.webp").href:new URL("send.webp",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),X=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/success.webp").href:new URL("success.webp",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href),J={error:q,loading:$,send:K,success:X};function v({imageName:t,title:n,children:i,className:r}){return e.jsxs("div",{className:a.cn("zd:flex zd:flex-col zd:gap-8 zd:items-center",r),children:[e.jsx("img",{src:J[t],alt:t,className:"zd:w-[118px] zd:h-[118px] zd:bg-transparent"}),e.jsxs("div",{className:"zd:flex zd:flex-col zd:gap-4 zd:items-center",children:[e.jsx(a.Text,{className:"zd:text-h2 zd:text-center zd:whitespace-pre-wrap",children:n}),e.jsx(a.Text,{className:"zd:text-center zd:whitespace-pre-wrap",children:i})]})]})}function Y(){const n=A.useConfig().connectors.find(i=>i.id==="zerodev-wallet");if(!n||!("getKitStore"in n))throw new Error("useKitStore must be used with the zeroDevWallet connector");return n.getKitStore()}function w(){const t=Y(),n=N.useStore(t,l=>l.auth.step),i=N.useStore(t,l=>l.auth.stepHistory),r=N.useStore(t,l=>l.auth.email),s=N.useStore(t,l=>l.auth.otpId),o=N.useStore(t,l=>l.auth.otpEncryptionTargetBundle);return{step:n,email:r,otpId:s,otpEncryptionTargetBundle:o,goToStep:t.getState().auth.goToStep,goBack:i.length>0?t.getState().auth.goBack:null,reset:t.getState().auth.reset,setEmail:t.getState().auth.setEmail,setOtpSession:t.getState().auth.setOtpSession,clearOtpSession:t.getState().auth.clearOtpSession}}function Q(){const{email:t,setOtpSession:n}=w(),{mutateAsync:i,isPending:r}=E.useSendMagicLink(),[s,o]=g.useState(60),l=s<=0&&!r;g.useEffect(()=>{if(s<=0)return;const f=setInterval(()=>{o(m=>Math.max(0,m-1))},1e3);return()=>{clearInterval(f)}},[s]);const u=async()=>{if(!(!t||!l))try{const{otpId:f,otpEncryptionTargetBundle:m}=await i({email:t});n({otpId:f,otpEncryptionTargetBundle:m}),o(60)}catch{}};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"zd:flex-1 zd:flex zd:flex-col zd:gap-8 zd:justify-center",children:[e.jsxs(v,{imageName:"send",title:`Check your email!
|
|
2
|
+
An Email is On Its Way`,children:["We've sent a magic link to"," ",e.jsx(a.Text,{as:"span",className:"zd:text-solarOrange",children:t}),`
|
|
3
|
+
`,"Please open the email and click the link to log in."]}),e.jsx("div",{className:"zd:flex zd:flex-col zd:gap-1",children:e.jsxs(a.Text,{className:"zd:text-center",children:["Did not get an email?"," ",e.jsx("button",{type:"button",disabled:!l,onClick:u,className:"zd:cursor-pointer zd:underline zd:disabled:opacity-50 zd:disabled:cursor-not-allowed",children:l?"Resend":`Resend in ${s} ${s===1?"second":"seconds"}`})]})})]}),e.jsx(a.PoweredBy,{className:"zd:self-center zd:pt-4 zd:pb-6"})]})}function e2(){return typeof window>"u"?!1:new URLSearchParams(window.location.search).has("code")}function T(){if(typeof window>"u")return;const t=new URL(window.location.href);t.searchParams.has("code")&&(t.searchParams.delete("code"),window.history.replaceState(null,"",t.toString()))}function t2({title:t="Oops, something went wrong",message:n="We couldn't complete the sign-in process. This could be due to timeout, an expired link, or a cancelled request.",showRetry:i=!1,showChooseAnother:r=!0}){const{goToStep:s,goBack:o,reset:l}=w(),u=o??(()=>s("sign-up"));return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"zd:flex-1 zd:flex zd:flex-col zd:gap-8 zd:items-center zd:justify-center",children:[e.jsx(v,{imageName:"error",title:t,children:n}),e.jsxs("div",{className:"zd:flex zd:flex-col zd:gap-1",children:[i&&e.jsx(a.Button,{action:"primary",text:"Try again",onClick:u}),r&&e.jsx(a.Button,{action:i?"secondary":"primary",onClick:()=>{T(),s("sign-up")},text:"Choose another sign-in method"}),!i&&!r&&e.jsx(a.Button,{action:"primary",text:"Start over",onClick:l})]})]}),e.jsx(a.PoweredBy,{className:"zd:self-center zd:pt-4 zd:pb-6"})]})}const n2=4,s2=8,r2=6;function i2(t){return Math.max(n2,Math.min(s2,t))}function a2({char:t,isFocused:n}){return e.jsx(a.Wrapper,{"data-testid":"code-input-box","data-active":n||void 0,className:a.cn("zd:h-16 zd:w-14 zd:rounded-lg zd:flex zd:items-center zd:justify-center",n&&"zd:border-[1.5px] zd:border-greyScale"),children:e.jsx(a.Text,{className:"zd:text-h2",children:t})})}function o2({onChange:t,onComplete:n,disabled:i=!1,error:r=!1,autoFocus:s=!1,length:o=r2,"data-testid":l}){const u=i2(o),f=g.useMemo(()=>Array.from({length:u},(c,D)=>({id:`char-${D}`,index:D})),[u]),[m,x]=g.useState(""),[C,p]=g.useState(!1),d=g.useRef(null);g.useEffect(()=>{var c;s&&!i&&((c=d.current)==null||c.focus())},[s,i]),g.useEffect(()=>{x(c=>c.slice(0,u))},[u]);const h=c=>{const D=c.slice(0,u).toUpperCase();x(D),t==null||t(D),D.length===u&&setTimeout(()=>{var z;n==null||n(D),(z=d.current)==null||z.blur()},0)};return e.jsxs("button",{type:"button",className:"zd:flex zd:flex-row zd:items-center zd:justify-between zd:gap-2 zd:w-full zd:cursor-text",onClick:()=>{var c;return(c=d.current)==null?void 0:c.focus()},disabled:i,"data-testid":l,children:[e.jsx("input",{ref:d,value:m,onChange:c=>h(c.target.value),onFocus:()=>p(!0),onBlur:()=>p(!1),maxLength:u,disabled:i,className:"zd:absolute zd:opacity-0 zd:pointer-events-none",style:{position:"absolute",opacity:0},"aria-label":"Verification code"}),f.map(c=>e.jsx(a2,{char:m[c.index]??"",isFocused:!r&&C&&c.index===m.length},c.id))]})}function l2(){const{email:t,otpId:n,otpEncryptionTargetBundle:i,setOtpSession:r,clearOtpSession:s,goToStep:o}=w(),{mutateAsync:l,isPending:u}=E.useSendOTP(),{mutateAsync:f,isPending:m}=E.useVerifyOTP(),[x,C]=g.useState(""),[p,d]=g.useState(!1),[h,c]=g.useState(60);g.useEffect(()=>{if(h<=0)return;const y=setInterval(()=>{c(_=>Math.max(0,_-1))},1e3);return()=>clearInterval(y)},[h]);const D=async()=>{if(!(!x.trim()||!n||!i)){d(!1);try{await f({otpId:n,code:x.trim(),otpEncryptionTargetBundle:i}),s(),o("authenticated")}catch{d(!0)}}},z=y=>{C(y)},F=async()=>{if(!(!t||h>0||u))try{const{otpId:y,otpEncryptionTargetBundle:_}=await l({email:t});r({otpId:y,otpEncryptionTargetBundle:_}),c(60),d(!1)}catch{d(!0)}},S=h<=0&&!u;return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"zd:flex-1 zd:flex zd:flex-col zd:gap-8 zd:justify-center zd:items-center",children:[e.jsxs("div",{className:"zd:flex zd:flex-col zd:gap-4",children:[e.jsx(a.Text,{className:"zd:text-h2 zd:text-center",children:"Enter verification code"}),e.jsxs(a.Text,{className:"zd:text-center",children:["Enter the code from the email we sent to"," ",e.jsx(a.Text,{className:"zd:text-solarOrange",children:t})]})]}),e.jsx(o2,{onComplete:z,onChange:()=>d(!1),disabled:m,error:p,autoFocus:!0}),e.jsx(a.Button,{text:"Confirm code",onClick:D,disabled:!x.trim()||m}),e.jsx("div",{className:"zd:flex zd:flex-col zd:gap-1",children:e.jsxs(a.Text,{className:"zd:text-center",children:["Did not get an email?"," ",e.jsx("button",{type:"button",disabled:!S,onClick:F,className:"zd:cursor-pointer zd:underline zd:disabled:opacity-50 zd:disabled:cursor-not-allowed",children:S?"Resend":`Resend in ${h} ${h===1?"second":"seconds"}`})]})})]}),e.jsx(a.PoweredBy,{className:"zd:self-center zd:pt-4 zd:pb-6"})]})}function d2({termsAndConditionsUrl:t,privacyPolicyUrl:n,agreedToTerms:i,setAgreedToTerms:r,highlight:s=!1}){const o=!!(t||n);return e.jsxs("div",{className:"zd:flex zd:flex-col zd:items-center zd:gap-5",children:[o&&e.jsxs("div",{className:`zd:flex zd:flex-row zd:items-center zd:gap-2 zd:rounded-md zd:p-2 zd:transition-colors ${s?"zd:border zd:border-negative":"zd:border zd:border-transparent"}`,children:[e.jsx("input",{type:"checkbox",checked:i,onChange:l=>r(l.target.checked),className:"zd:cursor-pointer zd:[color-scheme:light]"}),e.jsxs(a.Text,{className:"zd:flex-1",children:["I agree to the"," ",t&&e.jsx(a.Text,{as:"a",href:t,target:"_blank",rel:"noopener noreferrer",className:"zd:underline",children:"Terms & Conditions"}),t&&n&&" and ",n&&e.jsx(a.Text,{as:"a",href:n,target:"_blank",rel:"noopener noreferrer",className:"zd:underline",children:"Privacy Policy"})]})]}),e.jsx(a.PoweredBy,{})]})}const c2=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/blob.webm").href:new URL("blob.webm",document.currentScript&&document.currentScript.tagName.toUpperCase()==="SCRIPT"&&document.currentScript.src||document.baseURI).href);function u2({className:t}){return e.jsx("video",{className:t,style:{aspectRatio:"1 / 1"},src:c2,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,"aria-hidden":"true",tabIndex:-1})}const R=g.createContext(null);function b(){const t=g.useContext(R);if(!t)throw new Error("SignUp.* components must be rendered inside <SignUp>");return t}function k(t){const{setAuthPending:n}=b();g.useEffect(()=>(n(t),()=>n(!1)),[t,n])}const p2=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;function I(t){return p2.test(t.trim())}function O(){const{goToStep:t,setEmail:n,setOtpSession:i}=w(),{authPending:r,emailAuthMethod:s,needsAgreement:o,guardAgreement:l,setError:u}=b(),[f,m]=g.useState(""),x=s==="otp",{mutateAsync:C,isPending:p}=E.useSendOTP(),{mutateAsync:d,isPending:h}=E.useSendMagicLink(),c=p||h;k(c);const D=async()=>{if(!(!f||r)&&I(f)&&l()){u(null);try{const z=x?C:d,{otpId:F,otpEncryptionTargetBundle:S}=await z({email:f});n(f),i({otpId:F,otpEncryptionTargetBundle:S}),t(x?"otp-input":"email-verification")}catch(z){u(z instanceof Error?z.message:"Failed to send verification code")}}};return e.jsx(a.Input,{iconName:"email",placeholder:"Enter your email",value:f,onChange:z=>m(z.target.value),type:"email",autoCapitalize:"none",autoComplete:"email",disabled:r,variant:"listItemStyle",onKeyDown:z=>{z.key==="Enter"&&f&&!r&&D()},children:c?e.jsx("div",{className:"zd:w-13 zd:h-13 zd:flex zd:items-center zd:justify-center",children:e.jsx("div",{className:"zd:w-5 zd:h-5 zd:border-2 zd:border-solarOrange zd:border-t-transparent zd:rounded-full zd:animate-spin"})}):e.jsx("button",{type:"button",disabled:!I(f)||o,className:`zd:w-13 zd:h-13 zd:rounded-2xl zd:flex zd:items-center zd:justify-center zd:transition-colors ${I(f)&&!o?"zd:cursor-pointer":"zd:cursor-not-allowed zd:opacity-50"}`,onClick:()=>D(),children:e.jsx(a.Icon,{name:"chevronRight",className:"zd:text-greyScale"})})})}function U(t){return t instanceof Error?t.name==="AbortError"||t.name==="NotAllowedError"||t.name==="UserRejectedRequestError"?!0:t.message.toLowerCase().includes("oauth popup was closed"):!1}function B(){const{goToStep:t}=w(),{authPending:n,guardAgreement:i,setError:r}=b(),{mutateAsync:s,isPending:o}=E.useAuthenticateOAuth({mutation:{onSuccess:()=>{t("authenticated")}}});k(o);const l=async()=>{if(!n&&i()){r(null);try{await s({provider:"google"})}catch(u){U(u)||r(u instanceof Error?u.message:String(u))}}};return e.jsx(a.ListItem,{icon:e.jsx(a.ListItemIcon,{name:"google"}),title:"Google",trailing:e.jsx(a.ListItemChevron,{}),disabled:n,onClick:l})}function L(t,n){return!!n.rdns&&(t.id===n.rdns||(Array.isArray(t.rdns)?t.rdns.includes(n.rdns):t.rdns===n.rdns))}const f2=[{id:"metamask",name:"MetaMask",rdns:"io.metamask",icon:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cg%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20fill%3D%22%23ff5c16%22%20d%3D%22m24.024%2023.824-4.846-1.434-3.655%202.172-2.55-.001-3.656-2.171-4.844%201.434L3%2018.88l1.473-5.488L3%208.751%204.473%203l7.569%204.496h4.413L24.024%203l1.473%205.751-1.473%204.64%201.473%205.488z%22%2F%3E%3Cpath%20fill%3D%22%23ff5c16%22%20d%3D%22m4.474%203%207.57%204.499-.302%203.087zm4.844%2015.881%203.33%202.522-3.33.987zm3.064-4.17-.64-4.123-4.097%202.804h-.002v.001l.013%202.886%201.661-1.567zM24.024%203l-7.57%204.499.3%203.087zM19.18%2018.881l-3.33%202.522%203.33.987zm1.674-5.488v-.002zl-4.097-2.804-.64%204.124h3.064l1.662%201.567z%22%2F%3E%3Cpath%20fill%3D%22%23e34807%22%20d%3D%22m9.317%2022.39-4.844%201.434L3%2018.881h6.317zm3.064-7.68.925%205.962-1.282-3.315-4.37-1.078%201.662-1.568zm6.799%207.68%204.844%201.434%201.473-4.943H19.18zm-3.064-7.68-.925%205.962%201.282-3.315%204.37-1.078-1.663-1.568z%22%2F%3E%3Cpath%20fill%3D%22%23ff8d5d%22%20d%3D%22m3%2018.88%201.473-5.489h3.169l.012%202.887%204.37%201.078%201.282%203.314-.659.73-3.33-2.522H3zm22.497%200-1.473-5.489h-3.17l-.01%202.887-4.371%201.078-1.282%203.314.659.73%203.33-2.522h6.317zM16.455%207.495h-4.413l-.3%203.087%201.565%2010.084h1.884l1.565-10.084z%22%2F%3E%3Cpath%20fill%3D%22%23661800%22%20d%3D%22M4.473%203%203%208.751l1.473%204.64h3.169l4.1-2.805zm6.992%2012.908H10.03l-.781.761%202.776.685-.56-1.447M24.024%203l1.473%205.751-1.473%204.64h-3.17l-4.098-2.805zm-6.99%2012.908h1.437l.782.762-2.78.686.56-1.45zm-1.512%206.687.328-1.193-.66-.73h-1.885l-.659.73.327%201.192%22%2F%3E%3Cpath%20fill%3D%22%23c0c4cd%22%20d%3D%22M15.522%2022.594v1.969h-2.548v-1.969z%22%2F%3E%3Cpath%20fill%3D%22%23e7ebf6%22%20d%3D%22m9.318%2022.388%203.658%202.174v-1.969l-.328-1.192zm9.862%200-3.658%202.174v-1.969l.328-1.192z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22a%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M3%203h22.5v21.563H3z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E",mobileLink:"https://metamask.app.link/wc?uri=",downloadUrl:"https://metamask.io/download"},{id:"trust",name:"Trust Wallet",rdns:"com.trustwallet.app",icon:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20width%3D%2228%22%20height%3D%2228%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cpath%20fill%3D%22%230500FF%22%20d%3D%22M6%207.583%2013.53%205v17.882C8.15%2020.498%206%2015.928%206%2013.345V7.583Z%22%2F%3E%3Cpath%20fill%3D%22url(%23a)%22%20d%3D%22M22%207.583%2013.53%205v17.882c6.05-2.384%208.47-6.954%208.47-9.537V7.583Z%22%2F%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22a%22%20x1%3D%2219.768%22%20x2%3D%2214.072%22%20y1%3D%223.753%22%20y2%3D%2222.853%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%22.02%22%20stop-color%3D%22%2300F%22%2F%3E%3Cstop%20offset%3D%22.08%22%20stop-color%3D%22%230094FF%22%2F%3E%3Cstop%20offset%3D%22.16%22%20stop-color%3D%22%2348FF91%22%2F%3E%3Cstop%20offset%3D%22.42%22%20stop-color%3D%22%230094FF%22%2F%3E%3Cstop%20offset%3D%22.68%22%20stop-color%3D%22%230038FF%22%2F%3E%3Cstop%20offset%3D%22.9%22%20stop-color%3D%22%230500FF%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E",mobileLink:"trust://wc?uri=",downloadUrl:"https://trustwallet.com/download"},{id:"coinbase",name:"Coinbase Wallet",rdns:"com.coinbase.wallet",icon:"data:image/svg+xml,%3Csvg%20width%3D%2228%22%20height%3D%2228%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22%232C5FF6%22%2F%3E%0A%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M14%2023.8C19.4124%2023.8%2023.8%2019.4124%2023.8%2014C23.8%208.58761%2019.4124%204.2%2014%204.2C8.58761%204.2%204.2%208.58761%204.2%2014C4.2%2019.4124%208.58761%2023.8%2014%2023.8ZM11.55%2010.8C11.1358%2010.8%2010.8%2011.1358%2010.8%2011.55V16.45C10.8%2016.8642%2011.1358%2017.2%2011.55%2017.2H16.45C16.8642%2017.2%2017.2%2016.8642%2017.2%2016.45V11.55C17.2%2011.1358%2016.8642%2010.8%2016.45%2010.8H11.55Z%22%20fill%3D%22white%22%2F%3E%0A%3C%2Fsvg%3E",downloadUrl:"https://coinbase.com/wallet/downloads"},{id:"rainbow",name:"Rainbow",rdns:"me.rainbow",icon:"data:image/svg+xml,%3Csvg%20width%3D%22120%22%20height%3D%22120%22%20viewBox%3D%220%200%20120%20120%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Crect%20width%3D%22120%22%20height%3D%22120%22%20fill%3D%22url(%23paint0_linear_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M20%2038H26C56.9279%2038%2082%2063.0721%2082%2094V100H94C97.3137%20100%20100%2097.3137%20100%2094C100%2053.1309%2066.8691%2020%2026%2020C22.6863%2020%2020%2022.6863%2020%2026V38Z%22%20fill%3D%22url(%23paint1_radial_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M84%2094H100C100%2097.3137%2097.3137%20100%2094%20100H84V94Z%22%20fill%3D%22url(%23paint2_linear_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M26%2020L26%2036H20L20%2026C20%2022.6863%2022.6863%2020%2026%2020Z%22%20fill%3D%22url(%23paint3_linear_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M20%2036H26C58.0325%2036%2084%2061.9675%2084%2094V100H66V94C66%2071.9086%2048.0914%2054%2026%2054H20V36Z%22%20fill%3D%22url(%23paint4_radial_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M68%2094H84V100H68V94Z%22%20fill%3D%22url(%23paint5_linear_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M20%2052L20%2036L26%2036L26%2052H20Z%22%20fill%3D%22url(%23paint6_linear_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M20%2062C20%2065.3137%2022.6863%2068%2026%2068C40.3594%2068%2052%2079.6406%2052%2094C52%2097.3137%2054.6863%20100%2058%20100H68V94C68%2070.804%2049.196%2052%2026%2052H20V62Z%22%20fill%3D%22url(%23paint7_radial_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M52%2094H68V100H58C54.6863%20100%2052%2097.3137%2052%2094Z%22%20fill%3D%22url(%23paint8_radial_62_329)%22%2F%3E%0A%3Cpath%20d%3D%22M26%2068C22.6863%2068%2020%2065.3137%2020%2062L20%2052L26%2052L26%2068Z%22%20fill%3D%22url(%23paint9_radial_62_329)%22%2F%3E%0A%3Cdefs%3E%0A%3ClinearGradient%20id%3D%22paint0_linear_62_329%22%20x1%3D%2260%22%20y1%3D%220%22%20x2%3D%2260%22%20y2%3D%22120%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22%23174299%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23001E59%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3CradialGradient%20id%3D%22paint1_radial_62_329%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate(26%2094)%20rotate(-90)%20scale(74)%22%3E%0A%3Cstop%20offset%3D%220.770277%22%20stop-color%3D%22%23FF4000%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%238754C9%22%2F%3E%0A%3C%2FradialGradient%3E%0A%3ClinearGradient%20id%3D%22paint2_linear_62_329%22%20x1%3D%2283%22%20y1%3D%2297%22%20x2%3D%22100%22%20y2%3D%2297%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22%23FF4000%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%238754C9%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3ClinearGradient%20id%3D%22paint3_linear_62_329%22%20x1%3D%2223%22%20y1%3D%2220%22%20x2%3D%2223%22%20y2%3D%2237%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22%238754C9%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF4000%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3CradialGradient%20id%3D%22paint4_radial_62_329%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate(26%2094)%20rotate(-90)%20scale(58)%22%3E%0A%3Cstop%20offset%3D%220.723929%22%20stop-color%3D%22%23FFF700%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF9901%22%2F%3E%0A%3C%2FradialGradient%3E%0A%3ClinearGradient%20id%3D%22paint5_linear_62_329%22%20x1%3D%2268%22%20y1%3D%2297%22%20x2%3D%2284%22%20y2%3D%2297%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22%23FFF700%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF9901%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3ClinearGradient%20id%3D%22paint6_linear_62_329%22%20x1%3D%2223%22%20y1%3D%2252%22%20x2%3D%2223%22%20y2%3D%2236%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%0A%3Cstop%20stop-color%3D%22%23FFF700%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23FF9901%22%2F%3E%0A%3C%2FlinearGradient%3E%0A%3CradialGradient%20id%3D%22paint7_radial_62_329%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate(26%2094)%20rotate(-90)%20scale(42)%22%3E%0A%3Cstop%20offset%3D%220.59513%22%20stop-color%3D%22%2300AAFF%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2301DA40%22%2F%3E%0A%3C%2FradialGradient%3E%0A%3CradialGradient%20id%3D%22paint8_radial_62_329%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate(51%2097)%20scale(17%2045.3333)%22%3E%0A%3Cstop%20stop-color%3D%22%2300AAFF%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2301DA40%22%2F%3E%0A%3C%2FradialGradient%3E%0A%3CradialGradient%20id%3D%22paint9_radial_62_329%22%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221%22%20gradientUnits%3D%22userSpaceOnUse%22%20gradientTransform%3D%22translate(23%2069)%20rotate(-90)%20scale(17%20322.37)%22%3E%0A%3Cstop%20stop-color%3D%22%2300AAFF%22%2F%3E%0A%3Cstop%20offset%3D%221%22%20stop-color%3D%22%2301DA40%22%2F%3E%0A%3C%2FradialGradient%3E%0A%3C%2Fdefs%3E%0A%3C%2Fsvg%3E",mobileLink:"rainbow://wc?uri=",downloadUrl:"https://rainbow.download"},{id:"rabby",name:"Rabby Wallet",rdns:"io.rabby",icon:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cg%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20fill%3D%22%238697FF%22%20d%3D%22M28%200H0v28h28V0Z%22%2F%3E%3Cpath%20fill%3D%22url(%23b)%22%20d%3D%22M22.54%2015.078c.677-1.514-2.673-5.744-5.874-7.506-2.017-1.365-4.12-1.178-4.545-.579-.935%201.316%203.094%202.43%205.788%203.731-.58.252-1.125.703-1.446%201.28-1.004-1.096-3.209-2.04-5.796-1.28-1.743.513-3.191%201.721-3.751%203.546a1.097%201.097%200%201%200-.445%202.1c.112%200%20.463-.075.463-.075l5.612.041c-2.244%203.56-4.018%204.081-4.018%204.698s1.697.45%202.335.22c3.05-1.1%206.327-4.531%206.89-5.519%202.36.295%204.345.33%204.786-.657Z%22%2F%3E%3Cpath%20fill%3D%22url(%23c)%22%20fill-rule%3D%22evenodd%22%20d%3D%22m17.885%2010.713.025.01c.125-.049.105-.233.07-.378-.078-.333-1.438-1.676-2.715-2.277-1.743-.82-3.025-.777-3.212-.398.356.726%201.998%201.408%203.714%202.12.723.3%201.46.606%202.118.923Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20fill%3D%22url(%23d)%22%20fill-rule%3D%22evenodd%22%20d%3D%22M15.701%2018.036a10.296%2010.296%200%200%200-1.2-.37c.482-.862.583-2.138.128-2.945-.639-1.133-1.44-1.736-3.304-1.736-1.024%200-3.783.346-3.832%202.648-.005.242%200%20.464.017.667l5.036.037a17.264%2017.264%200%200%201-1.871%202.483c.669.172%201.221.316%201.728.448.48.125.92.24%201.38.357a21.003%2021.003%200%200%200%201.918-1.59Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3Cpath%20fill%3D%22url(%23e)%22%20d%3D%22M6.848%2016.063c.206%201.75%201.2%202.435%203.232%202.638%202.032.203%203.197.067%204.749.208%201.296.118%202.453.778%202.882.55.386-.205.17-.947-.347-1.423-.67-.617-1.597-1.046-3.229-1.199.325-.89.234-2.138-.27-2.817-.731-.982-2.079-1.426-3.785-1.232-1.782.202-3.49%201.08-3.232%203.275Z%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22b%22%20x1%3D%2210.464%22%20x2%3D%2222.394%22%20y1%3D%2213.737%22%20y2%3D%2217.12%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23fff%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23fff%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22c%22%20x1%3D%2220.386%22%20x2%3D%2211.779%22%20y1%3D%2213.509%22%20y2%3D%224.879%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%237258DC%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23797DEA%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22d%22%20x1%3D%2215.94%22%20x2%3D%227.673%22%20y1%3D%2218.337%22%20y2%3D%2213.584%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%237461EA%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%23BFC2FF%22%20stop-opacity%3D%220%22%2F%3E%3C%2FlinearGradient%3E%3ClinearGradient%20id%3D%22e%22%20x1%3D%2211.177%22%20x2%3D%2216.765%22%20y1%3D%2213.648%22%20y2%3D%2220.749%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20stop-color%3D%22%23fff%22%2F%3E%3Cstop%20offset%3D%22.984%22%20stop-color%3D%22%23D5CEFF%22%2F%3E%3C%2FlinearGradient%3E%3CclipPath%20id%3D%22a%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E",downloadUrl:"https://rabby.io"},{id:"okx",name:"OKX Wallet",rdns:"com.okex.wallet",icon:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%20d%3D%22M10.819%205.556H5.93a.376.376%200%200%200-.375.375v4.888c0%20.207.168.375.375.375h4.888a.376.376%200%200%200%20.375-.376V5.932a.376.376%200%200%200-.376-.375Zm5.64%205.638h-4.886a.376.376%200%200%200-.376.376v4.887c0%20.208.168.376.376.376h4.887a.376.376%200%200%200%20.376-.375V11.57a.376.376%200%200%200-.376-.377Zm.75-5.638h4.887c.208%200%20.376.168.376.375v4.888a.376.376%200%200%201-.376.375H17.21a.376.376%200%200%201-.376-.376V5.933c0-.208.169-.376.376-.376Zm-6.39%2011.277H5.93a.376.376%200%200%200-.375.376v4.887c0%20.208.168.376.375.376h4.888a.376.376%200%200%200%20.375-.376V17.21a.376.376%200%200%200-.376-.376Zm6.39%200h4.887c.208%200%20.376.169.376.376v4.887a.376.376%200%200%201-.376.376H17.21a.376.376%200%200%201-.376-.376V17.21c0-.207.169-.376.376-.376Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E",mobileLink:"okex://main/wc?uri=",downloadUrl:"https://okx.com/download"},{id:"zerion",name:"Zerion",rdns:"io.zerion.wallet",icon:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cpath%20fill%3D%22%232962EF%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M6.073%207c-.48%200-.665.593-.262.841l10.073%206.074a.577.577%200%200%200%20.758-.139l4.43-5.814c.3-.404-.004-.962-.525-.962H6.073ZM21.904%2021c.48%200%20.67-.596.267-.844l-10.075-6.073a.569.569%200%200%200-.751.146l-4.437%205.813c-.301.404.012.958.534.958h14.462Z%22%2F%3E%3C%2Fsvg%3E",mobileLink:"zerion://wc?uri=",downloadUrl:"https://zerion.io"},{id:"uniswap",name:"Uniswap",rdns:"org.uniswap.app",icon:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22none%22%3E%3Cpath%20fill%3D%22%23FFD8EA%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cg%20fill%3D%22%23FF007A%22%20clip-path%3D%22url(%23a)%22%3E%3Cpath%20d%3D%22M9.635%206.068c-.255-.039-.266-.043-.145-.06.23-.035.773.012%201.148.099.874.202%201.67.722%202.519%201.646l.225.246.323-.051c1.36-.213%202.741-.044%203.899.477.319.144.821.43.882.503.022.024.058.173.082.335.086.557.044.982-.13%201.301-.096.173-.101.228-.037.377a.367.367%200%200%200%20.334.206c.287%200%20.597-.454.74-1.086l.056-.252.113.126c.62.685%201.106%201.618%201.189%202.282l.021.174-.103-.158a1.966%201.966%200%200%200-.59-.604c-.415-.268-.855-.36-2.017-.42-1.05-.053-1.645-.141-2.234-.329-1.003-.32-1.508-.744-2.699-2.27-.53-.678-.855-1.053-1.18-1.354-.74-.687-1.466-1.047-2.396-1.187v-.001Z%22%2F%3E%3Cpath%20d%3D%22M18.725%207.581c.026-.453.088-.753.216-1.026.028-.07.063-.136.104-.198a.69.69%200%200%201-.049.178c-.092.266-.108.629-.043%201.052.081.536.126.613.706%201.192.273.272.589.613.704.761l.21.267-.21-.191c-.255-.233-.841-.69-.972-.755-.086-.042-.1-.042-.153.01-.05.048-.06.12-.068.461-.01.532-.084.873-.263%201.213-.096.187-.111.147-.025-.062.066-.155.072-.224.072-.739%200-1.033-.127-1.283-.864-1.707a8.169%208.169%200%200%200-.684-.346%202.614%202.614%200%200%201-.334-.16c.02-.02.74.185%201.029.293.431.163.502.183.555.164.034-.013.051-.113.068-.407h.001Zm-8.595%201.77c-.517-.696-.838-1.764-.768-2.563l.02-.247.119.02c.222.04.603.179.783.286.49.29.703.673.918%201.657.064.288.147.613.185.725.061.178.294.592.483.862.136.194.046.286-.255.26-.46-.04-1.083-.46-1.485-1Zm7.965%205.182c-2.42-.95-3.273-1.777-3.273-3.17%200-.206.007-.374.016-.374.008%200%20.102.067.208.151.491.384%201.04.548%202.563.765.896.128%201.398.231%201.864.382%201.48.478%202.392%201.449%202.61%202.773.063.384.028%201.104-.076%201.484-.082.3-.329.84-.394.861-.019.007-.037-.061-.04-.154-.025-.496-.283-.98-.715-1.343-.49-.412-1.15-.741-2.763-1.375Zm-1.699.396a4.13%204.13%200%200%200-.117-.5l-.062-.18.115.127c.16.173.285.396.391.693.082.227.09.294.09.662%200%20.361-.011.437-.087.64-.104.3-.28.572-.51.794-.443.44-1.011.683-1.833.784-.142.018-.557.047-.922.066-.922.046-1.529.144-2.073.33a.446.446%200%200%201-.156.036c-.021-.021.35-.237.656-.381.431-.204.861-.315%201.825-.47.475-.078.968-.173%201.093-.21%201.178-.352%201.784-1.263%201.59-2.39Z%22%2F%3E%3Cpath%20d%3D%22M17.506%2016.855c-.321-.675-.396-1.327-.22-1.935.02-.067.05-.119.068-.119a.64.64%200%200%201%20.169.09c.149.097.445.261%201.237.682.988.527%201.553.934%201.936%201.4.335.407.542.872.643%201.438.057.32.023%201.093-.061%201.416-.266%201.018-.882%201.818-1.764%202.285a2.129%202.129%200%200%201-.258.124c-.013%200%20.035-.116.104-.259.297-.605.331-1.193.107-1.848-.138-.401-.418-.89-.982-1.718-.657-.96-.817-1.218-.979-1.556Zm-9.095%203.644c.9-.742%202.016-1.267%203.036-1.43a4.85%204.85%200%200%201%201.575.06c.652.163%201.235.528%201.538.962.296.425.423.794.556%201.618.052.324.109.651.125.724.1.427.293.768.532.939.38.272%201.037.29%201.682.044a.853.853%200%200%201%20.21-.064c.023.023-.301.235-.53.347-.27.141-.572.213-.879.208-.59%200-1.08-.294-1.49-.891a7.027%207.027%200%200%201-.402-.784c-.431-.961-.644-1.253-1.145-1.575-.437-.28-1-.329-1.424-.126-.556.266-.71.96-.312%201.4.187.189.43.313.695.354a.75.75%200%200%200%20.589-.174.728.728%200%200%200%20.251-.551c0-.29-.114-.453-.4-.581-.392-.172-.812.029-.81.388%200%20.153.069.249.226.32.1.044.103.046.02.03-.358-.073-.442-.496-.154-.776.347-.336%201.064-.188%201.31.272.103.194.115.578.025.81-.203.52-.79.793-1.387.644-.407-.102-.571-.211-1.06-.703-.852-.856-1.182-1.023-2.408-1.21l-.237-.035.268-.22Z%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M4.418%205.179c2.842%203.368%204.8%204.757%205.017%205.05.18.243.112.462-.195.632a1.899%201.899%200%200%201-.699.191c-.2%200-.269-.075-.269-.075-.115-.106-.18-.088-.773-1.116A176.911%20176.911%200%200%200%205.968%207.56c-.044-.04-.042-.04%201.448%202.564.24.543.047.741.047.819%200%20.157-.044.24-.242.457-.332.36-.48.765-.587%201.604-.12.94-.456%201.604-1.39%202.741-.545.666-.635.787-.773%201.056-.174.338-.221.527-.24.952a2.9%202.9%200%200%200%20.16%201.174c.122.378.252.626.582%201.125.285.43.448.75.448.876%200%20.099.019.099.461.001%201.054-.232%201.91-.64%202.392-1.142.298-.311.367-.482.37-.907.002-.277-.008-.336-.085-.496-.125-.26-.353-.477-.855-.813-.66-.44-.942-.794-1.018-1.28-.065-.4.01-.682.373-1.427.377-.773.47-1.103.535-1.88.04-.503.096-.701.244-.861.155-.166.293-.222.676-.272.623-.084%201.018-.24%201.343-.534a1.14%201.14%200%200%200%20.421-.869l.014-.28-.16-.179C9.563%209.34%204.036%204.667%204%204.667c-.007%200%20.18.23.418.512Zm1.325%2013.086a.486.486%200%200%200-.157-.652c-.203-.133-.522-.069-.522.103%200%20.053.03.092.098.125.114.058.122.122.032.254s-.082.248.02.328c.168.126.404.057.529-.158ZM10.683%2012c-.29.086-.575.389-.664.706-.053.194-.022.534.058.638.13.169.255.213.596.212.665-.004%201.243-.283%201.311-.632.054-.286-.2-.68-.55-.855a1.33%201.33%200%200%200-.75-.07Zm.78.593c.102-.143.057-.296-.118-.4-.331-.199-.835-.035-.835.272%200%20.153.262.32.502.32.16%200%20.38-.093.45-.192Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fg%3E%3Cdefs%3E%3CclipPath%20id%3D%22a%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M4%204h19v20H4z%22%2F%3E%3C%2FclipPath%3E%3C%2Fdefs%3E%3C%2Fsvg%3E",mobileLink:"uniswap://wc?uri=",downloadUrl:"https://wallet.uniswap.org"},{id:"ledger",name:"Ledger",icon:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2228%22%20height%3D%2228%22%20fill%3D%22none%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M0%200h28v28H0z%22%2F%3E%3Cpath%20fill%3D%22%23fff%22%20fill-rule%3D%22evenodd%22%20d%3D%22M11.65%204.4H4.4V9h1.1V5.5l6.15-.04V4.4Zm.05%205.95v7.25h4.6v-1.1h-3.5l-.04-6.15H11.7ZM4.4%2023.6h7.25v-1.06L5.5%2022.5V19H4.4v4.6ZM16.35%204.4h7.25V9h-1.1V5.5l-6.15-.04V4.4Zm7.25%2019.2h-7.25v-1.06l6.15-.04V19h1.1v4.6Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E",mobileLink:"ledgerlive://wc?uri=",downloadUrl:"https://www.ledger.com/ledger-live"},{id:"binance",name:"Binance Wallet",rdns:"com.binance.wallet",icon:"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22130%22%20height%3D%22130%22%20fill%3D%22none%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M0%200h130v130H0z%22%2F%3E%3Cpath%20fill%3D%22%23F3BA2F%22%20d%3D%22M45.587%2057.02%2065.01%2037.606l19.43%2019.43%2011.295-11.303L65.01%2015%2034.284%2045.725zM15%2065.004l11.299-11.299%2011.298%2011.299L26.3%2076.302zM45.587%2072.983%2065.01%2092.406l19.43-19.43%2011.303%2011.287-.008.007-30.725%2030.734-30.725-30.718-.016-.016zM92.403%2065.006%20103.7%2053.708%20115%2065.006l-11.299%2011.299z%22%2F%3E%3Cpath%20fill%3D%22%23F3BA2F%22%20d%3D%22m76.471%2064.998-11.46-11.469-8.476%208.475-.98.972-2.005%202.006-.016.016.016.024%2011.46%2011.453%2011.461-11.47.008-.007z%22%2F%3E%3C%2Fsvg%3E",mobileLink:"bnc://app.binance.com/cedefi/wc?uri=",downloadUrl:"https://www.binance.com/en/download"}],j=f2;function h2({excludeWalletIds:t=[],maxWallets:n=4}){const{goToStep:i}=w(),{authPending:r,guardAgreement:s,setError:o,registeredWallets:l}=b(),u=A.useConnectors(),{mutate:f,isPending:m}=A.useConnect();k(m);const x=u.filter(p=>p.type==="injected"&&p.id!=="injected"&&p.id!=="zerodev-wallet").map(p=>{const d=j.find(h=>L(p,h));return{connector:p,walletId:d==null?void 0:d.id,name:(d==null?void 0:d.name)??p.name,icon:(d==null?void 0:d.icon)??p.icon,ids:d?[d.id,p.id]:[p.id],rank:d?j.indexOf(d):j.length}}).filter(p=>!(p.walletId&&l.includes(p.walletId))).filter(p=>!p.ids.some(d=>t.includes(d))).sort((p,d)=>p.rank-d.rank).slice(0,n),C=p=>{r||s()&&(o(null),f({connector:p},{onSuccess:()=>i(null),onError:d=>{U(d)||o(d instanceof Error?d.message:String(d))}}))};return e.jsx(e.Fragment,{children:x.map(({connector:p,name:d,icon:h})=>e.jsx(a.ListItem,{title:d,icon:h?e.jsx("img",{src:h,alt:"",className:"zd:w-6 zd:h-6"}):null,subtitle:e.jsx(a.Badge,{text:"INSTALLED"}),trailing:e.jsx(a.ListItemChevron,{}),disabled:r,onClick:()=>C(p)},p.uid))})}function m2({tile:t}){return e.jsxs("button",{type:"button",onClick:t.onSelect,className:"zd:flex zd:flex-col zd:items-center zd:gap-1.5 zd:cursor-pointer",children:[e.jsx("div",{className:"zd:w-16 zd:h-16 zd:rounded-2xl zd:bg-greyScale/5 zd:flex zd:items-center zd:justify-center",children:t.icon?e.jsx("img",{src:t.icon,alt:"",className:"zd:w-8 zd:h-8"}):e.jsx(a.Icon,{name:"walletOutline",className:"zd:w-8 zd:h-8 zd:text-greyScale"})}),e.jsx(a.Text,{className:"zd:text-body3 zd:max-w-full zd:truncate",children:t.name})]})}function g2({open:t,onOpenChange:n,tiles:i}){return e.jsx(a.BottomSheet,{open:t,onOpenChange:n,children:e.jsxs(a.BottomSheetContent,{className:"zd:p-4",children:[e.jsx(a.BottomSheetTitle,{children:"All wallets"}),e.jsxs("div",{className:"zd:mb-3 zd:flex zd:items-center zd:gap-2",children:[e.jsx(a.Text,{className:"zd:text-h3 zd:flex-1",children:"All wallets"}),e.jsx(a.BottomSheetClose,{asChild:!0,children:e.jsx("button",{type:"button","aria-label":"Close",className:"zd:cursor-pointer zd:px-2 zd:text-greyScale/60",children:"✕"})})]}),e.jsx("div",{className:"zd:grid zd:grid-cols-3 zd:gap-3 zd:max-h-80 zd:overflow-y-auto",children:i.map(r=>e.jsx(m2,{tile:r},r.key))})]})})}function x2({title:t="More wallets"}){const{goToStep:n}=w(),{authPending:i,guardAgreement:r,setError:s}=b(),[o,l]=g.useState(!1),u=A.useConnectors(),{mutate:f,isPending:m}=A.useConnect();k(m);const x=u.filter(c=>c.id!=="zerodev-wallet"&&c.type!=="walletConnect"),C=c=>{i||r()&&(l(!1),s(null),f({connector:c},{onSuccess:()=>n(null),onError:D=>{U(D)||s(D instanceof Error?D.message:String(D))}}))},p=j.map(c=>{const D=x.find(z=>L(z,c));return{key:c.id,name:c.name,icon:c.icon,onSelect:()=>{if(D){C(D);return}l(!1),window.open(c.downloadUrl,"_blank","noopener,noreferrer")}}}),d=x.filter(c=>!j.some(D=>L(c,D))).map(c=>({key:c.uid,name:c.name,icon:c.icon,onSelect:()=>C(c)})),h=()=>{i||r()&&l(!0)};return e.jsxs(e.Fragment,{children:[e.jsx(a.ListItem,{icon:e.jsx(a.ListItemIcon,{name:"walletOutline",className:"zd:w-5 zd:h-5"}),title:t,trailing:e.jsx(a.ListItemChevron,{}),disabled:i,onClick:h}),e.jsx(g2,{open:o,onOpenChange:l,tiles:[...p,...d]})]})}function H(){const{goToStep:t}=w(),{authPending:n,guardAgreement:i,setError:r}=b(),s={onSuccess:()=>{t("authenticated")},onError:x=>{U(x)||r(x instanceof Error?x.message:String(x))}},{mutate:o,isPending:l}=E.useRegisterPasskey({mutation:s}),{mutate:u,isPending:f}=E.useLoginPasskey({mutation:s});k(l||f);const m=x=>()=>{n||i()&&(r(null),x())};return e.jsxs(e.Fragment,{children:[e.jsx(a.Button,{action:"secondary",text:"Create a passkey",iconName:"key",trailIcon:!0,disabled:n,onClick:m(()=>o())}),e.jsx(a.Button,{action:"secondary",text:"Log in with passkey",iconName:"key",trailIcon:!0,disabled:n,onClick:m(()=>u())})]})}function D2({walletId:t}){const n=j.find(h=>h.id===t);if(!n)throw new Error(`Unknown walletId "${t}". Valid ids: ${j.map(h=>h.id).join(", ")}`);const{goToStep:i}=w(),{authPending:r,guardAgreement:s,setError:o,registerWallet:l}=b(),u=A.useConnectors(),{mutate:f,isPending:m}=A.useConnect();k(m),g.useLayoutEffect(()=>l(n.id),[l,n.id]);const x=u.find(h=>L(h,n)),C=!!n.rdns&&u.some(h=>h.id===n.rdns),p={title:n.name,icon:e.jsx("img",{src:n.icon,alt:"",className:"zd:w-6 zd:h-6"}),trailing:e.jsx(a.ListItemChevron,{})};if(!x)return e.jsx(a.ListItem,{...p,asChild:!0,children:e.jsx("a",{href:n.downloadUrl,target:"_blank",rel:"noopener noreferrer"})});const d=()=>{r||s()&&(o(null),f({connector:x},{onSuccess:()=>i(null),onError:h=>{U(h)||o(h instanceof Error?h.message:String(h))}}))};return e.jsx(a.ListItem,{...p,...C&&{subtitle:e.jsx(a.Badge,{text:"INSTALLED"})},disabled:r,onClick:d})}function Z({children:t,termsAndConditionsUrl:n,privacyPolicyUrl:i,emailAuthMethod:r="magicLink"}){const[s,o]=g.useState(!1),[l,u]=g.useState(!1),[f,m]=g.useState(null),[x,C]=g.useState(!1),[p,d]=g.useState([]),h=g.useCallback(F=>(d(S=>[...S,F]),()=>{d(S=>{const y=[...S];return y.splice(y.indexOf(F),1),y})}),[]),D=!!(n||i)&&!s,z=()=>D?(u(!0),!1):!0;return e.jsxs(R.Provider,{value:{authPending:x,emailAuthMethod:r,setAuthPending:C,needsAgreement:D,guardAgreement:z,setError:m,registeredWallets:p,registerWallet:h},children:[f!==null&&e.jsx("div",{className:"zd:flex zd:items-center zd:justify-center zd:h-full zd:min-h-100",children:e.jsxs("div",{className:"zd:flex zd:flex-col zd:gap-4 zd:max-w-md",children:[e.jsx(a.Text,{className:"zd:text-h2 zd:text-center",children:"Error occurred"}),e.jsx(a.Text,{className:"zd:text-center zd:text-red-500",children:f}),e.jsx(a.Button,{action:"primary",text:"Try again",onClick:()=>m(null)})]})}),e.jsxs("div",{className:`zd:-mx-4 zd:flex-1 zd:flex zd:flex-col zd:justify-between zd:pb-4 zd:overflow-y-auto zd:overflow-x-hidden${f!==null?" zd:hidden":""}`,children:[e.jsxs("div",{className:"zd:flex-1 zd:flex zd:flex-col zd:justify-center",children:[e.jsxs("div",{className:"zd:px-4 zd:flex zd:flex-col zd:items-center",children:[e.jsx("div",{className:"zd:w-full zd:px-16 zd:py-4",children:e.jsx(u2,{className:"zd:w-full zd:pointer-events-none zd:select-none"})}),e.jsx(a.Text,{className:"zd:text-h2 zd:text-center",children:"Continue to your wallet"}),e.jsx(a.Text,{className:"zd:mt-2 zd:text-center zd:text-greyScale/50",children:"Choose a sign-in method to proceed"})]}),e.jsx("div",{className:"zd:mt-6 zd:mb-4 zd:px-4 zd:flex zd:flex-col zd:gap-2",children:t})]}),e.jsx("div",{className:"zd:px-4",children:e.jsx(d2,{termsAndConditionsUrl:n,privacyPolicyUrl:i,agreedToTerms:s,setAgreedToTerms:F=>{o(F),F&&u(!1)},highlight:l})})]})]})}function G({label:t="or"}){return e.jsxs("div",{className:"zd:-mx-4 zd:my-2 zd:flex zd:items-center zd:gap-3",children:[e.jsx("div",{className:"zd:h-px zd:flex-1 zd:bg-greyScale/30"}),e.jsx(a.Text,{className:"zd:text-body3",children:t}),e.jsx("div",{className:"zd:h-px zd:flex-1 zd:bg-greyScale/30"})]})}function z2(t){return e.jsxs(Z,{...t,children:[e.jsx(H,{}),e.jsx(G,{}),e.jsx(B,{}),e.jsx(O,{})]})}const V=Object.assign(Z,{Default:z2,Passkey:H,Google:B,Email:O,Wallet:D2,InstalledWallets:h2,MoreWallets:x2,Divider:G});function C2(){return typeof window>"u"?null:new URLSearchParams(window.location.search).get("code")}function w2(){const{otpId:t,otpEncryptionTargetBundle:n,goToStep:i,clearOtpSession:r}=w(),[s]=g.useState(C2),[o,l]=g.useState(null),u=g.useRef(!1),{mutate:f,isPending:m}=E.useVerifyMagicLink({mutation:{onSuccess:()=>{r(),i("authenticated")},onError:x=>{l(x)}}});return g.useEffect(()=>{if(!(u.current||!s)){if(u.current=!0,!t||!n){T(),i(null);return}f({otpId:t,code:s,otpEncryptionTargetBundle:n})}},[t,n,s,f,i]),e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"zd:flex-1 zd:flex zd:flex-col zd:gap-8 zd:items-center zd:justify-center",children:[!o&&m&&e.jsx(v,{imageName:"loading",title:"Verifying Your Email",children:"Please wait while we securely connect your wallet."}),!o&&!s&&!m&&e.jsxs(e.Fragment,{children:[e.jsxs(v,{imageName:"error",title:"Invalid Link",children:["This verification link is invalid or incomplete.",e.jsx("br",{}),"Please check your email and try again with the correct link."]}),e.jsx(a.Button,{action:"primary",onClick:()=>{T(),i("sign-up")},text:"Choose another sign-in method"})]}),o!=null&&e.jsxs(e.Fragment,{children:[e.jsx(v,{imageName:"error",title:"Oops, something went wrong",children:"We couldn't complete the sign-in process. This could be due to timeout, an expired link, or a cancelled request."}),e.jsx(a.Button,{action:"primary",onClick:()=>{T(),i("sign-up")},text:"Choose another sign-in method"})]})]}),e.jsx(a.PoweredBy,{className:"zd:self-center zd:pt-4 zd:pb-6"})]})}function E2(){return e.jsx("div",{className:"zd:flex zd:flex-1 zd:items-center zd:justify-center",children:e.jsx(v,{imageName:"loading",title:"Authenticating...",children:"Please wait while we complete the OAuth authentication."})})}function F2(){return e.jsx("div",{className:"zd:flex zd:flex-1 zd:items-center zd:justify-center",children:e.jsx(v,{imageName:"loading",title:"Passkey authentication",children:"Please authenticate with your passkey."})})}function y2(t,n){switch(t){case"sign-up":return n?n():e.jsx(V.Default,{});case"email-verification":return e.jsx(Q,{});case"otp-input":return e.jsx(l2,{});case"verifying-otp":return e.jsx(w2,{});case"oauth-in-progress":return e.jsx(E2,{});case"passkey-prompt":return e.jsx(F2,{});case"error":return e.jsx(t2,{});default:return null}}function S2({onClose:t,size:n,renderSignUp:i,logo:r}={}){const{step:s,goToStep:o,goBack:l,reset:u}=w();g.useEffect(()=>{s===null&&e2()&&o("verifying-otp")},[s,o]);const f=y2(s,i);if(!f)return null;const m=()=>{T(),u(),t==null||t()};return e.jsx(a.Screen,{...n&&{size:n},className:s==="sign-up"?"zd:h-auto zd:max-h-202.5":void 0,topNav:e.jsx(a.TopNav,{...l!==null&&{onLeftButtonClick:l},onRightButtonClick:m,...s==="sign-up"&&{...r&&{logo:r},className:"zd:px-4"}}),children:f})}const M="zerodev:auth:otpSession";function v2(){if(typeof window>"u")return null;try{const t=window.localStorage.getItem(M);if(!t)return null;const n=JSON.parse(t);return!(n!=null&&n.otpId)||!(n!=null&&n.otpEncryptionTargetBundle)?null:n}catch{return null}}function j2(t){if(!(typeof window>"u"))try{window.localStorage.setItem(M,JSON.stringify(t))}catch{}}function P(){if(!(typeof window>"u"))try{window.localStorage.removeItem(M)}catch{}}const A2=(t,n,i)=>({auth:{step:null,stepHistory:[],email:null,otpId:null,otpEncryptionTargetBundle:null,initialize:()=>{const r=v2();r&&t(s=>({auth:{...s.auth,otpId:r.otpId,otpEncryptionTargetBundle:r.otpEncryptionTargetBundle}}))},goToStep:r=>{t(s=>({auth:{...s.auth,step:r,stepHistory:s.auth.step===null?s.auth.stepHistory:[...s.auth.stepHistory,s.auth.step]}}))},goBack:()=>{const{auth:r}=n();if(r.stepHistory.length===0)return;const s=[...r.stepHistory],o=s.pop();t(l=>({auth:{...l.auth,step:o,stepHistory:s}}))},reset:()=>{P(),t(r=>({auth:{...r.auth,step:null,stepHistory:[],email:null,otpId:null,otpEncryptionTargetBundle:null}}))},setEmail:r=>{t(s=>({auth:{...s.auth,email:r}}))},setOtpSession:({otpId:r,otpEncryptionTargetBundle:s})=>{j2({otpId:r,otpEncryptionTargetBundle:s}),t(o=>({auth:{...o.auth,otpId:r,otpEncryptionTargetBundle:s}}))},clearOtpSession:()=>{P(),t(r=>({auth:{...r.auth,otpId:null,otpEncryptionTargetBundle:null}}))}}}),b2=()=>N.create()(W.subscribeWithSelector((t,n,i)=>({pendingRequests:[],userConfirmationListenerActive:!1,addPendingRequest:r=>t(s=>({pendingRequests:[...s.pendingRequests,r]})),removePendingRequest:r=>t(s=>({pendingRequests:s.pendingRequests.filter(o=>o.id!==r)})),clearPendingRequests:()=>t({pendingRequests:[]}),setUserConfirmationListenerActive:r=>t({userConfirmationListenerActive:r}),...A2(t,n)})));function N2(t){return new Promise((n,i)=>{const r=t.subscribe(s=>s.auth.step,s=>{s==="authenticated"?(r(),n()):s===null&&(r(),i(new Error("Auth flow dismissed")))})})}function k2(t){const n=E.zeroDevWallet(t),i=b2();return r=>{const s=n(r);return{...s,async connect(o){try{return await s.connect(o)}catch(l){if(o!=null&&o.isReconnecting||!(l instanceof E.NotAuthenticatedError))throw l;if(i.getState().auth.step!==null)throw new Error("Auth flow already in progress");return i.getState().auth.goToStep("sign-up"),await N2(i),s.connect(o)}},async disconnect(){var o;await((o=s.disconnect)==null?void 0:o.call(s)),i.getState().auth.reset()},async setup(){var o;await((o=s.setup)==null?void 0:o.call(s)),!(typeof window>"u")&&i.getState().auth.initialize()},getKitStore(){return i}}}}exports.ConnectWallet=S2;exports.SignUp=V;exports.useAuth=w;exports.zeroDevWallet=k2;
|
|
4
4
|
//# sourceMappingURL=index.cjs.map
|