@magic-ext/wallet-kit 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +177 -0
- package/dist/es/index.mjs +1 -0
- package/dist/es/types/MagicWidget.d.ts +3 -0
- package/dist/es/types/components/EmailInput.d.ts +2 -0
- package/dist/es/types/components/Pending.d.ts +11 -0
- package/dist/es/types/components/ProviderButton.d.ts +9 -0
- package/dist/es/types/components/SocialProviders.d.ts +10 -0
- package/dist/es/types/components/WidgetHeader.d.ts +7 -0
- package/dist/es/types/constants.d.ts +3 -0
- package/dist/es/types/context/EmailLoginContext.d.ts +24 -0
- package/dist/es/types/context/WidgetConfigContext.d.ts +22 -0
- package/dist/es/types/context/index.d.ts +2 -0
- package/dist/es/types/extension.d.ts +190 -0
- package/dist/es/types/hooks/useMediaQuery.d.ts +1 -0
- package/dist/es/types/hooks/useOAuthLogin.d.ts +9 -0
- package/dist/es/types/hooks/useSiweLogin.d.ts +8 -0
- package/dist/es/types/hooks/useWalletConnect.d.ts +11 -0
- package/dist/es/types/index.d.ts +3 -0
- package/dist/es/types/lib/provider-config.d.ts +2 -0
- package/dist/es/types/lib/validators.d.ts +2 -0
- package/dist/es/types/reducer.d.ts +69 -0
- package/dist/es/types/types/client-config.d.ts +22 -0
- package/dist/es/types/types.d.ts +168 -0
- package/dist/es/types/utils/device.d.ts +5 -0
- package/dist/es/types/views/AdditionalProvidersView.d.ts +7 -0
- package/dist/es/types/views/DeviceVerificationView.d.ts +8 -0
- package/dist/es/types/views/EmailOTPView.d.ts +8 -0
- package/dist/es/types/views/LoginSuccessView.d.ts +7 -0
- package/dist/es/types/views/LoginView.d.ts +7 -0
- package/dist/es/types/views/LostRecoveryCode.d.ts +5 -0
- package/dist/es/types/views/MfaView.d.ts +8 -0
- package/dist/es/types/views/OAuthPendingView.d.ts +9 -0
- package/dist/es/types/views/RecoveryCode.d.ts +8 -0
- package/dist/es/types/views/WalletConnectView.d.ts +7 -0
- package/dist/es/types/views/WalletPendingView.d.ts +10 -0
- package/dist/es/types/wagmi/config.d.ts +8 -0
- package/dist/es/types/wagmi/connectors.d.ts +9 -0
- package/dist/es/types/wagmi/walletconnect-provider.d.ts +3 -0
- package/dist/styles.css +1 -0
- package/dist/types/MagicWidget.d.ts +3 -0
- package/dist/types/components/EmailInput.d.ts +2 -0
- package/dist/types/components/Pending.d.ts +11 -0
- package/dist/types/components/ProviderButton.d.ts +9 -0
- package/dist/types/components/SocialProviders.d.ts +10 -0
- package/dist/types/components/WidgetHeader.d.ts +7 -0
- package/dist/types/constants.d.ts +3 -0
- package/dist/types/context/EmailLoginContext.d.ts +24 -0
- package/dist/types/context/WidgetConfigContext.d.ts +22 -0
- package/dist/types/context/index.d.ts +2 -0
- package/dist/types/extension.d.ts +190 -0
- package/dist/types/hooks/useMediaQuery.d.ts +1 -0
- package/dist/types/hooks/useOAuthLogin.d.ts +9 -0
- package/dist/types/hooks/useSiweLogin.d.ts +8 -0
- package/dist/types/hooks/useWalletConnect.d.ts +11 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/lib/provider-config.d.ts +2 -0
- package/dist/types/lib/validators.d.ts +2 -0
- package/dist/types/reducer.d.ts +69 -0
- package/dist/types/types/client-config.d.ts +22 -0
- package/dist/types/types.d.ts +168 -0
- package/dist/types/utils/device.d.ts +5 -0
- package/dist/types/views/AdditionalProvidersView.d.ts +7 -0
- package/dist/types/views/DeviceVerificationView.d.ts +8 -0
- package/dist/types/views/EmailOTPView.d.ts +8 -0
- package/dist/types/views/LoginSuccessView.d.ts +7 -0
- package/dist/types/views/LoginView.d.ts +7 -0
- package/dist/types/views/LostRecoveryCode.d.ts +5 -0
- package/dist/types/views/MfaView.d.ts +8 -0
- package/dist/types/views/OAuthPendingView.d.ts +9 -0
- package/dist/types/views/RecoveryCode.d.ts +8 -0
- package/dist/types/views/WalletConnectView.d.ts +7 -0
- package/dist/types/views/WalletPendingView.d.ts +10 -0
- package/dist/types/wagmi/config.d.ts +8 -0
- package/dist/types/wagmi/connectors.d.ts +9 -0
- package/dist/types/wagmi/walletconnect-provider.d.ts +3 -0
- package/package.json +80 -2
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { WidgetAction, WidgetState } from '../reducer';
|
|
3
|
+
interface MFAViewProps {
|
|
4
|
+
state: WidgetState;
|
|
5
|
+
dispatch: React.Dispatch<WidgetAction>;
|
|
6
|
+
}
|
|
7
|
+
export declare const MFAView: ({ state, dispatch }: MFAViewProps) => React.JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { WidgetAction } from '../reducer';
|
|
3
|
+
import { OAuthProvider } from '../types';
|
|
4
|
+
interface OAuthPendingViewProps {
|
|
5
|
+
provider: OAuthProvider;
|
|
6
|
+
dispatch: React.Dispatch<WidgetAction>;
|
|
7
|
+
}
|
|
8
|
+
export declare const OAuthPendingView: ({ provider, dispatch }: OAuthPendingViewProps) => React.JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { WidgetAction, WidgetState } from '../reducer';
|
|
3
|
+
interface RecoveryCodeViewProps {
|
|
4
|
+
state: WidgetState;
|
|
5
|
+
dispatch: React.Dispatch<WidgetAction>;
|
|
6
|
+
}
|
|
7
|
+
export declare const RecoveryCodeView: ({ state, dispatch }: RecoveryCodeViewProps) => React.JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { WidgetAction } from '../reducer';
|
|
3
|
+
interface WalletConnectViewProps {
|
|
4
|
+
dispatch: React.Dispatch<WidgetAction>;
|
|
5
|
+
}
|
|
6
|
+
export declare const WalletConnectView: ({ dispatch }: WalletConnectViewProps) => React.JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { WidgetAction, WidgetState } from '../reducer';
|
|
3
|
+
import { ThirdPartyWallet } from '../types';
|
|
4
|
+
interface WalletPendingViewProps {
|
|
5
|
+
provider: ThirdPartyWallet;
|
|
6
|
+
state: WidgetState;
|
|
7
|
+
dispatch: React.Dispatch<WidgetAction>;
|
|
8
|
+
}
|
|
9
|
+
export declare const WalletPendingView: ({ provider, state, dispatch }: WalletPendingViewProps) => React.JSX.Element | null;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { WagmiAdapter } from '@reown/appkit-adapter-wagmi';
|
|
2
|
+
import type { AppKitNetwork } from '@reown/appkit/networks';
|
|
3
|
+
export declare const networks: [AppKitNetwork, ...AppKitNetwork[]];
|
|
4
|
+
export declare function createWagmiConfig(projectId?: string): {
|
|
5
|
+
projectId: string;
|
|
6
|
+
wagmiAdapter: WagmiAdapter;
|
|
7
|
+
wagmiConfig: import("wagmi").Config;
|
|
8
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ThirdPartyWallet } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Map wallet types to wagmi connector IDs
|
|
4
|
+
*/
|
|
5
|
+
export declare const CONNECTOR_IDS: Record<ThirdPartyWallet, string>;
|
|
6
|
+
/**
|
|
7
|
+
* Alternative names to match connectors by name if ID doesn't match
|
|
8
|
+
*/
|
|
9
|
+
export declare const CONNECTOR_NAME_PATTERNS: Record<ThirdPartyWallet, string>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { EthereumProvider } from '@walletconnect/ethereum-provider';
|
|
2
|
+
export declare function setWalletConnectProvider(provider: Awaited<ReturnType<typeof EthereumProvider.init>> | null): void;
|
|
3
|
+
export declare function getWalletConnectProvider(): Awaited<ReturnType<typeof EthereumProvider.init>> | null;
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer reset, base, tokens, recipes, utilities;@layer base{:root{--made-with-panda:'🐼'}*,::backdrop,:after,:before{--blur: ;--brightness: ;--contrast: ;--grayscale: ;--hue-rotate: ;--invert: ;--saturate: ;--sepia: ;--drop-shadow: ;--backdrop-blur: ;--backdrop-brightness: ;--backdrop-contrast: ;--backdrop-grayscale: ;--backdrop-hue-rotate: ;--backdrop-invert: ;--backdrop-opacity: ;--backdrop-saturate: ;--backdrop-sepia: ;--scroll-snap-strictness:proximity;--border-spacing-x:0;--border-spacing-y:0;--translate-x:0;--translate-y:0;--rotate:0;--skew-x:0;--skew-y:0;--scale-x:1;--scale-y:1}html{--primary:black}}@layer tokens{:where(:root,:host){--cUJial:1/1;--joSgrv:4/3;--dXjFHz:3/4;--gqpqIn:16/9;--lixcAJ:18/5;--hSWVDT:1.618/1;--dzOvWn:none;--drrWcF:cubic-bezier(0.4,0,0.2,1);--hgfxJf:linear;--hCLxzh:cubic-bezier(0.4,0,1,1);--byCBno:cubic-bezier(0,0,0.2,1);--gSAVQW:cubic-bezier(0.4,0,0.2,1);--fuVfvZ:50ms;--fVBMec:100ms;--mUhz:150ms;--cWTXGg:200ms;--cifMdM:300ms;--goNNlj:400ms;--bPXfWW:500ms;--dRPRGd:100;--dooANa:200;--fVSZDc:300;--llFanx:400;--leEsKL:500;--hmvyHR:600;--ghWdwL:700;--janwPd:800;--bvnjIx:900;--ekeMrS:1;--jyTpIu:1.25;--ipEwfb:1.375;--lomeBD:1.5;--kwMYUX:1.625;--dVGecO:2;--dywXPJ:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--guQdxN:ui-serif,Georgia,Cambria,"Times New Roman",Times,serif;--gxQaAd:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--jrseCf:-0.05em;--glKTKc:-0.025em;--knaPyh:0em;--jwdARF:0.025em;--eUSVTv:0.05em;--lhSeXO:0.1em;--kWjDjq:0.5rem;--loLyxA:0.75rem;--eRgJXV:0.875rem;--daFrau:1rem;--gKFLFQ:1.125rem;--gFqSQX:1.25rem;--dllMvh:1.5rem;--jaXqkI:1.875rem;--cLogVb:2.25rem;--izMrAu:3rem;--hdlyfR:3.75rem;--bDBsww:4.5rem;--fwhTbD:6rem;--lkGdGW:8rem;--bUWovs:0 1px 2px 0 rgb(0 0 0/0.05);--cDhNnp:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--jMKUKK:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--kNVcRA:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--bnVgij:0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);--IghlV:0 25px 50px -12px rgb(0 0 0/0.25);--gmhFEB:inset 0 2px 4px 0 rgb(0 0 0/0.05);--aZLOC:4px;--jDYzax:8px;--kMMDaR:12px;--dyIDQb:16px;--TtVDs:24px;--btncja:40px;--esAhmv:64px;--fcTUxn:0rem;--dacYEG:0.25rem;--ebuyxV:0.5rem;--bYDCFo:0.75rem;--hIimNX:1rem;--fFrqVq:1.25rem;--gGIQOF:1.5rem;--eDRUVY:1.75rem;--flZesP:2rem;--djiiAi:2.25rem;--ieMJEa:2.5rem;--cBFxYr:2.75rem;--uyqLg:3rem;--hXmVPi:3.5rem;--mYCWo:4rem;--jgejxp:5rem;--iYEvIx:6rem;--dzpWeZ:7rem;--fifqnK:8rem;--faFCyS:9rem;--bxwoov:10rem;--huPzrf:11rem;--hgdKvb:12rem;--cZMJbQ:13rem;--iXfUeA:14rem;--vWSpd:15rem;--gtqdrN:16rem;--hNtIEu:18rem;--kqIPsj:20rem;--wdMRQ:24rem;--gEfgCY:0.125rem;--jJIQbV:0.375rem;--cqwGG:0.625rem;--dhUgfD:0.875rem;--bJeTGz:spin 1s linear infinite;--cxTetH:ping 1s cubic-bezier(0,0,0.2,1) infinite;--jjLJjo:pulse 2s cubic-bezier(0.4,0,0.6,1) infinite;--eUTuJH:bounce 1s infinite;--bLinLB:currentColor;--qLIrn:#000;--RiClf:#fff;--edNtiq:rgb(0 0 0/0);--cQacUT:#fff1f2;--fFtaKH:#ffe4e6;--eUoFZM:#fecdd3;--bPMUxN:#fda4af;--bvZVli:#fb7185;--jGTTif:#f43f5e;--iVPyxk:#e11d48;--fRnMVl:#be123c;--hxzBoW:#9f1239;--esXPMX:#881337;--epiLsK:#4c0519;--hPYfGc:#fdf2f8;--ioAkJk:#fce7f3;--eyVWNz:#fbcfe8;--nXIqK:#f9a8d4;--hGgStN:#f472b6;--dviDWY:#ec4899;--kUZZAj:#db2777;--gKbLdu:#be185d;--UhnuV:#9d174d;--hYEIxc:#831843;--dPgAHx:#500724;--kpTESD:#fdf4ff;--jfJgr:#fae8ff;--gZeVto:#f5d0fe;--gfHpEZ:#f0abfc;--dSTUoK:#e879f9;--cZwoAv:#d946ef;--jPvANs:#c026d3;--iVXUZd:#a21caf;--hYKnEO:#86198f;--hfmHQz:#701a75;--cYPdae:#4a044e;--ksTgfC:#faf5ff;--iCdJRO:#f3e8ff;--dWAXWh:#e9d5ff;--jcWlLI:#d8b4fe;--eLlnzT:#c084fc;--jRGBpu:#a855f7;--fmdPtN:#9333ea;--kszdjo:#7e22ce;--kMigIv:#6b21a8;--eDhKZa:#581c87;--eadxYH:#3b0764;--elZfLV:#f5f3ff;--jcWAkV:#ede9fe;--gHfMHa:#ddd6fe;--jSzuYT:#c4b5fd;--jDVPUQ:#a78bfa;--bzTONN:#8b5cf6;--ktyKIO:#7c3aed;--cpwJBL:#6d28d9;--foWeJc:#5b21b6;--iApNaV:#4c1d95;--cfTfyk:#2e1065;--kbclAu:#eef2ff;--gAzkHe:#e0e7ff;--gRHwoJ:#c7d2fe;--iYtjYI:#a5b4fc;--jCTsMf:#818cf8;--ujwXi:#6366f1;--LrIEN:#4f46e5;--cSdwoM:#4338ca;--irwviH:#3730a3;--kyiiSG:#312e81;--hgSANP:#1e1b4b;--glmLoi:#eff6ff;--bYrJpO:#dbeafe;--hoTvPd:#bfdbfe;--bMEoOM:#93c5fd;--hIEEwj:#60a5fa;--cgpxvS:#3b82f6;--hwRjVh:#2563eb;--bUCcUQ:#1d4ed8;--golFsv:#1e40af;--LWyse:#1e3a8a;--eJQij:#172554;--dyXAhp:#ecfeff;--eeWoox:#cffafe;--fnHbwe:#a5f3fc;--cLmYYf:#67e8f9;--bpLSHw:#22d3ee;--kcNzIt:#06b6d4;--llymQa:#0891b2;--iJeksb:#0e7490;--jTKpqw:#155e75;--hrqmSx:#164e63;--bcqAnE:#083344;--jqQOis:#f0fdfa;--hsCMHs:#ccfbf1;--jcJhxj:#99f6e4;--czjDVi:#5eead4;--kfgCt:#2dd4bf;--eWbmzo:#14b8a6;--gGhHpf:#0d9488;--cIdNe:#0f766e;--catTvB:#115e59;--gMpZsw:#134e4a;--bnTNlF:#042f2e;--jVPfey:#ecfdf5;--gSyYHy:#d1fae5;--dOyJRJ:#a7f3d0;--jOMcLk:#6ee7b7;--bLsBkr:#34d399;--hLFUdS:#10b981;--eHFFod:#059669;--kHSYhE:#047857;--iuBcgT:#065f46;--dfsLBy:#064e3b;--jJEloz:#022c22;--hXozqf:#f0fdf4;--iDDIAz:#dcfce7;--khfuXU:#bbf7d0;--hypAVx:#86efac;--wGfza:#4ade80;--jdlUVz:#22c55e;--kGNHsU:#16a34a;--hXXNqx:#15803d;--bAQeLK:#166534;--khvUij:#14532d;--cbdKOS:#052e16;--dhEleJ:#f7fee7;--gFFbyh:#ecfccb;--fjFsBy:#d9f99d;--cfdGZz:#bef264;--bxLPEk:#a3e635;--jIFNBh:#84cc16;--imGeEy:#65a30d;--fietcz:#4d7c0f;--crovfQ:#3f6212;--kCitcN:#365314;--gEQkrg:#1a2e05;--cLFWMs:#fefce8;--kxGpio:#fef9c3;--cbZZGT:#fef08a;--fwcFBW:#fde047;--hUTJsd:#facc15;--loWpng:#eab308;--cTpZLL:#ca8a04;--gnsFGO:#a16207;--ByZWN:#854d0e;--dVBFRQ:#713f12;--iLqZUR:#422006;--kVxzTd:#fffbeb;--jZPQXp:#fef3c7;--hCWpXC:#fde68a;--bCKrrD:#fcd34d;--wuHbc:#fbbf24;--fLErTZ:#f59e0b;--doKQUm:#d97706;--iDUBNj:#b45309;--iOnUJo:#92400e;--cObWdp:#78350f;--frxesg:#451a03;--NQTLQ:#fff7ed;--JsfmQ:#ffedd5;--gBjjlD:#fed7aa;--QMCLK:#fdba74;--ijESlZ:#fb923c;--czilMg:#f97316;--iqZpKT:#ea580c;--cGCJla:#c2410c;--dUhLNN:#9a3412;--jzgOMQ:#7c2d12;--igBpVl:#431407;--bINrJX:#fef2f2;--fKgVwH:#fee2e2;--bLdQLg:#fecaca;--fMUQaR:#fca5a5;--hwCQam:#f87171;--iYfRb:#ef4444;--hzqKEw:#dc2626;--lMavl:#b91c1c;--bLDcWa:#991b1b;--fNuclL:#7f1d1d;--jHDsLG:#450a0a;--kltIHN:#fafafa;--hzpwrB:#f5f5f5;--lbfZji:#e5e5e5;--fcfsVb:#d4d4d4;--kPKNfw:#a3a3a3;--eQKgRp:#737373;--isAJIW:#525252;--ctAduP:#404040;--bqFRBA:#262626;--gHaUMp:#171717;--fhFoEQ:#0a0a0a;--NNaBX:#fafaf9;--juQpUX:#f5f5f4;--jjsRgY:#e7e5e4;--hxarzx:#d6d3d1;--dmyqvy:#a8a29e;--bAfQNX:#78716c;--boIrZY:#57534e;--kRLBRt:#44403c;--iKBpmW:#292524;--gYiPFv:#1c1917;--kshUcS:#0c0a09;--dhFdXS:#fafafa;--dGhjba:#f4f4f5;--efoVXJ:#e4e4e7;--ljOqfc:#d4d4d8;--cXLRGr:#a1a1aa;--kcllNK:#71717a;--kBsYKt:#52525b;--gqwJsQ:#3f3f46;--ylgyn:#27272a;--hCKAFG:#18181b;--dtmsQb:#09090b;--dcmCJN:#f9fafb;--ePJGsV:#f3f4f6;--dnVpUm:#e5e7eb;--bMJKSL:#d1d5db;--jSiOQk:#9ca3af;--iqXjOJ:#6b7280;--gPiTqa:#4b5563;--fnXooz:#374151;--fKIyfA:#1f2937;--ejwTdZ:#111827;--jympbw:#030712;--oXohi:#19191A;--gyKIIT:#252525;--eSphig:#303030;--lccBJR:#383838;--lfBdGG:#474747;--kcXOlL:#f8fafc;--kbRDfH:#f1f5f9;--ivwbEU:#e2e8f0;--dpNMHJ:#cbd5e1;--dtmoEy:#94a3b8;--jCZJgj:#64748b;--hWEhFw:#475569;--cQVSIl:#334155;--hVLXiS:#1e293b;--cQdIlH:#0f172a;--iFDdka:#020617;--izlnso:#F8F8FA;--eRgqfH:#EDEDF3;--KVTme:#E2E0E5;--dkJQoR:#CCCAD0;--ktVcUk:#B6B4BA;--gLQfHD:#97959A;--cFFIOa:#77767A;--cJEYlt:#4E4D52;--jSQkQM:#18171A;--hLOWYd:#EDEBFF;--bVhZHK:#CAC2FF;--jYNVEH:#A799FF;--emDeSE:#8875FF;--aNrqF:#6851FF;--gzCdzi:#5D40EA;--dnMpXj:#522FD4;--cLqlCI:#4421C3;--kOWhzF:#3512B2;--dNokDG:#E3FAF3;--fIEsRl:#BAF5E3;--kuAyOg:#90F0D3;--hUmnXD:#48DEB1;--bqMKvC:#00CC8F;--dmcSJh:#00AA77;--hXYYGc:#00875F;--domHof:#007753;--iaiNla:#006647;--dDaZDc:#FFEAE5;--bYjnoT:#FFC3B3;--jcIHwm:#FF9B80;--iuhUtx:#FE7C58;--ejlFbU:#FC5C30;--cEtSNL:#E84718;--jITmVe:#D43100;--hhKBFJ:#C12E02;--cWOmog:#AD2B03;--loKVxo:#FCF4E5;--crbXrL:#FEE5BD;--eXQnMG:#FFD594;--dYBcpd:#EDBD72;--gFpsJY:#DBA550;--iXcedr:#BF8832;--ouKZq:#A36B14;--kXQUUR:#97630C;--cpjBQQ:#8A5A03;--dpZiSB:#EBF0FE;--bZrrvu:#AFC4FF;--cGNUcb:#7398FF;--cGWcRs:#5482FB;--dosFxZ:#346BF7;--bXKOaS:#295EE7;--cFhqHz:#1E50D6;--cvyBYk:#1344C7;--dcVeER:#0737B8;--bMxFwZ:#e0f2fe;--vPNZS:#bae6fd;--bdmqGz:#7dd3fc;--bduzvQ:#38bdf8;--bKRccx:#0ea5e9;--ujkFq:#0284c7;--bbFNlX:#0369a1;--RWYCI:#075985;--bztBjp:#0c4a6e;--iNVpnc:#082f49;--cemPJF:#FFFFFF;--iTjmdu:#FFFFFF;--fFEzoc:0.0625rem;--fCuVLy:0.09375rem;--hiYFxW:0.125rem;--ixNmpi:0.125rem;--bewZvn:0.25rem;--kLOfAE:0.375rem;--dxfumK:0.5rem;--UXfgJ:0.75rem;--bphCwb:1rem;--eougbK:1.5rem;--kkkBVq:9999px;--cDRSmz:var(--button-radius,9999px);--insZoq:var(--container-radius,1.75rem);--hxxJkr:var(--input-radius,0.5rem);--kTdGYg:0rem;--cCUBeV:0.25rem;--gsUKim:0.5rem;--jshnNX:0.75rem;--juMtMc:1rem;--beDnSR:1.25rem;--eUDwWi:1.5rem;--hTQaBT:1.75rem;--cAmzCM:2rem;--fzzdix:2.25rem;--dDnfaV:2.5rem;--cpjPHA:2.75rem;--ckODEv:3rem;--WLola:3.25rem;--hTmzdp:3.5rem;--gFjjJU:3.75rem;--gANXGP:4rem;--htnoem:5rem;--tQYHK:6rem;--kcGldO:7rem;--gMkTEx:8rem;--lcknGR:9rem;--kveXIc:10rem;--gsriJI:11rem;--bPcliI:12rem;--Mxqsr:13rem;--hZfkST:14rem;--fUWaSi:15rem;--bSilTO:16rem;--fnTGst:18rem;--dAFdyM:20rem;--jxszKr:24rem;--hghuKL:0.125rem;--drtIxO:0.375rem;--siblR:0.625rem;--hSPYxQ:0.875rem;--izvCpj:20rem;--aTIGG:24rem;--kMQJUV:28rem;--dyNKmL:32rem;--ToPgI:36rem;--btoFLe:42rem;--esBjqP:48rem;--hrOPNc:56rem;--krbtsN:64rem;--cRFSXi:72rem;--fQSwCT:80rem;--iQceEA:90rem;--jAesVz:65ch;--khWApH:100%;--eOXrSu:min-content;--jNBRbM:max-content;--UhpHH:fit-content;--eomHOU:640px;--iujnmj:768px;--gThSgZ:1024px;--cssArG:1280px;--jESPPc:1536px;--exvVve:2147483647;--ikokJA:640px;--kSvAmr:768px;--uwdhN:1024px;--eyfDzy:1280px;--dgHGKE:1536px;--jlmaOs:var(--surface-primary,var(--iTjmdu));--Iycdi:var(--surface-secondary,var(--izlnso));--crPUBo:var(--surface-tertiary,var(--eRgqfH));--kJiqPO:var(--surface-quaternary,var(--KVTme));--iagzVE:var(--text-primary,var(--jSQkQM));--YyYdq:var(--text-secondary,var(--cJEYlt));--kFAOBM:var(--text-tertiary,var(--cFFIOa));--iodyUC:var(--text-quaternary,var(--cemPJF));--DLYOY:var(--neutral-primary,var(--ktVcUk));--gfUEye:var(--neutral-secondary,var(--KVTme));--qsPVo:var(--neutral-tertiary,var(--eRgqfH));--kyjnqS:var(--neutral-quaternary,var(--izlnso));--iAjuTO:var(--brand-lightest,var(--hLOWYd));--gzHfkH:var(--brand-lighter,var(--jYNVEH));--gBHQLb:var(--brand-base,var(--aNrqF));--etZyR:var(--brand-darker,var(--dnMpXj));--enVPNY:var(--brand-darkest,var(--kOWhzF));--itfeCm:var(--dNokDG);--qkXv:var(--kuAyOg);--gHzsmL:var(--bqMKvC);--cOyFst:var(--hXYYGc);--fKbyps:var(--iaiNla);--dxaFjW:var(--dDaZDc);--dnTPVf:var(--jcIHwm);--bWuoqD:var(--ejlFbU);--iqIoUR:var(--jITmVe);--iZlvjY:var(--cWOmog);--ldafrz:var(--loKVxo);--leQkZS:var(--eXQnMG);--jmTbXW:var(--gFpsJY);--dLLYUY:var(--ouKZq);--dZIprB:var(--cpjBQQ);--gaBiDO:var(--dpZiSB);--fxHMpn:var(--cGNUcb);--fQFmqL:var(--dosFxZ);--dUMcYZ:var(--cFhqHz);--dntrJc:var(--dcVeER)}[data-color-mode=light]{--jlmaOs:var(--surface-primary,var(--iTjmdu));--Iycdi:var(--surface-secondary,var(--izlnso));--crPUBo:var(--surface-tertiary,var(--eRgqfH));--kJiqPO:var(--surface-quaternary,var(--KVTme));--iagzVE:var(--text-primary,var(--jSQkQM));--YyYdq:var(--text-secondary,var(--cJEYlt));--kFAOBM:var(--text-tertiary,var(--cFFIOa));--iodyUC:var(--text-quaternary,var(--cemPJF));--DLYOY:var(--neutral-primary,var(--ktVcUk));--gfUEye:var(--neutral-secondary,var(--KVTme));--qsPVo:var(--neutral-tertiary,var(--eRgqfH));--kyjnqS:var(--neutral-quaternary,var(--izlnso));--iAjuTO:var(--brand-lightest,var(--hLOWYd));--gzHfkH:var(--brand-lighter,var(--jYNVEH));--gBHQLb:var(--brand-base,var(--aNrqF));--etZyR:var(--brand-darker,var(--dnMpXj));--enVPNY:var(--brand-darkest,var(--kOWhzF));--itfeCm:var(--dNokDG);--qkXv:var(--kuAyOg);--gHzsmL:var(--bqMKvC);--cOyFst:var(--hXYYGc);--fKbyps:var(--iaiNla);--dxaFjW:var(--dDaZDc);--dnTPVf:var(--jcIHwm);--bWuoqD:var(--ejlFbU);--iqIoUR:var(--jITmVe);--iZlvjY:var(--cWOmog);--ldafrz:var(--loKVxo);--leQkZS:var(--eXQnMG);--jmTbXW:var(--gFpsJY);--dLLYUY:var(--ouKZq);--dZIprB:var(--cpjBQQ);--gaBiDO:var(--dpZiSB);--fxHMpn:var(--cGNUcb);--fQFmqL:var(--dosFxZ);--dUMcYZ:var(--cFhqHz);--dntrJc:var(--dcVeER) }[data-color-mode=dark]{--jlmaOs:var(--surface-primary-dark,var(--oXohi));--Iycdi:var(--surface-secondary-dark,var(--gyKIIT));--crPUBo:var(--surface-tertiary-dark,var(--eSphig));--kJiqPO:var(--surface-quaternary-dark,var(--lccBJR));--iagzVE:var(--text-primary-dark,var(--cemPJF));--YyYdq:var(--text-secondary-dark,var(--text-secondary-dark,color-mix(in srgb,var(--cemPJF) 72%,transparent)));--kFAOBM:var(--text-tertiary-dark,var(--text-tertiary-dark,color-mix(in srgb,var(--cemPJF) 44%,transparent)));--iodyUC:var(--text-quaternary-dark,var(--jSQkQM));--DLYOY:var(--neutral-primary-dark,var(--neutral-primary-dark,color-mix(in srgb,var(--cemPJF) 16%,transparent)));--gfUEye:var(--neutral-secondary-dark,var(--neutral-secondary-dark,color-mix(in srgb,var(--cemPJF) 12%,transparent)));--qsPVo:var(--neutral-tertiary-dark,var(--neutral-tertiary-dark,color-mix(in srgb,var(--cemPJF) 8%,transparent)));--kyjnqS:var(--neutral-quaternary-dark,var(--neutral-quaternary-dark,color-mix(in srgb,var(--cemPJF) 5%,transparent)));--iAjuTO:var(--brand-lightest-dark,var(--brand-lightest-dark,color-mix(in srgb,var(--jYNVEH) 25%,transparent)));--gzHfkH:var(--brand-lighter-dark,var(--brand-lighter-dark,color-mix(in srgb,var(--jYNVEH) 66%,transparent)));--gBHQLb:var(--brand-base-dark,var(--jYNVEH));--etZyR:var(--brand-darker-dark,var(--hLOWYd));--enVPNY:var(--brand-darkest-dark,var(--hLOWYd));--itfeCm:color-mix(in srgb,var(--kuAyOg) 8%,transparent);--qkXv:color-mix(in srgb,var(--kuAyOg) 72%,transparent);--gHzsmL:var(--kuAyOg);--cOyFst:var(--bqMKvC);--fKbyps:var(--bqMKvC);--dxaFjW:color-mix(in srgb,var(--jcIHwm) 8%,transparent);--dnTPVf:color-mix(in srgb,var(--jcIHwm) 72%,transparent);--bWuoqD:var(--jcIHwm);--iqIoUR:var(--ejlFbU);--iZlvjY:var(--ejlFbU);--ldafrz:color-mix(in srgb,var(--eXQnMG) 8%,transparent);--leQkZS:color-mix(in srgb,var(--eXQnMG) 72%,transparent);--jmTbXW:var(--eXQnMG);--dLLYUY:var(--gFpsJY);--dZIprB:var(--gFpsJY);--gaBiDO:color-mix(in srgb,var(--cGNUcb) 8%,transparent);--fxHMpn:color-mix(in srgb,var(--cGNUcb) 72%,transparent);--fQFmqL:var(--cGNUcb);--dUMcYZ:var(--dosFxZ);--dntrJc:var(--dosFxZ) }@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes pulse{50%{opacity:0.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,0.2,1)}}@keyframes fadeIn{0%{opacity:0}}@keyframes fadeOut{to{opacity:0}}@keyframes scaleIn{0%{opacity:0}to{opacity:1;scale:1}}@keyframes scaleOut{0%{opacity:1;scale:1}to{opacity:0;scale:0.9}}@keyframes slideIn{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}@keyframes slideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(1.25rem)}}@keyframes slideRight{0%{left:-150%}to{left:175%}}@keyframes moveRight{0%{transform:translateX(0rem)}80%{transform:translateX(1.25rem)}to{transform:translateX(1.2rem)}}@keyframes moveLeft{0%{transform:translateX(0rem)}80%{transform:translateX(-1.25rem)}to{transform:translateX(-1.2rem)}}@keyframes animateSpinnerSmall{0%{stroke-dasharray:0.4,60;stroke-dashoffset:0}50%{stroke-dasharray:36,60;stroke-dashoffset:-14}to{stroke-dasharray:36,60;stroke-dashoffset:-52}}@keyframes animateSpinnerLarge{0%{stroke-dasharray:0.875,175;stroke-dashoffset:0}50%{stroke-dasharray:78.75,131.25;stroke-dashoffset:-31}to{stroke-dasharray:0.875,175;stroke-dashoffset:-158}}@keyframes popIn{0%{scale:0}to{scale:1}}@keyframes popOut{0%{scale:1}to{scale:0}}}@layer utilities{@layer compositions{.JIGdQ{font-size:0.75rem;line-height:1.25rem;font-weight:var(--llFanx)}.caxCit{font-size:0.875rem}.AEdnq,.caxCit{line-height:1.5rem;font-weight:var(--llFanx)}.AEdnq{font-size:1rem}.ggkuag{font-size:1.125rem;line-height:1.75rem}.KOyzo,.ggkuag{font-weight:var(--llFanx)}.KOyzo{font-size:0.75rem;line-height:1.25rem}.bqPPXX{font-size:0.875rem}.bqPPXX,.iBKgpR{line-height:1.5rem;font-weight:var(--llFanx)}.iBKgpR{font-size:1rem}.dVmflu{font-size:0.875rem}.dVmflu,.hkxWuN{line-height:1.5rem;font-family:var(--gxQaAd)}.hkxWuN{font-size:1rem}.eIvlPr{font-size:1.125rem;line-height:1.75rem;font-family:var(--gxQaAd)}.ZlnHu{line-height:3.25rem}.ZlnHu,.dNxFtD{font-size:2.5rem;font-weight:var(--janwPd)}.dNxFtD{line-height:3.5rem}.bcvUKl{font-size:2.25rem;line-height:3rem;font-weight:var(--janwPd)}.fDZIkY,.gRVYOk{font-size:2rem;line-height:2.75rem;font-weight:var(--janwPd)}.cqslnx{font-size:1.5rem;line-height:2.25rem;font-weight:var(--ghWdwL)}.cFGrCm,.cSachX{font-size:1.25rem;line-height:2rem;font-weight:var(--ghWdwL)}.brKaZa,.efWsLj{font-size:1.125rem;line-height:1.75rem;font-weight:var(--ghWdwL)}.buUIbR{font-size:0.625rem}.buUIbR,.hkuMfQ{letter-spacing:0.06rem;text-transform:uppercase;line-height:0.75rem;font-weight:var(--hmvyHR)}.hkuMfQ{font-size:0.75rem}@media screen and (min-width: 64rem){.KOyzo{font-size:0.875rem}.KOyzo,.bqPPXX{line-height:1.5rem}.bqPPXX{font-size:1rem}.iBKgpR{font-size:1.125rem;line-height:1.75rem}.ZlnHu{font-size:5rem;line-height:5.5rem}.bcvUKl{font-size:4rem;line-height:4.75rem}.fDZIkY{font-size:3rem;line-height:4rem}.cSachX{font-size:1.5rem;line-height:2.25rem}.brKaZa{font-size:1.25rem;line-height:2rem}.buUIbR{font-size:0.75rem;line-height:0.75rem}}}.fEVEmD{display:inline-flex}.jTWvec{position:relative}.iPfXWl{box-sizing:border-box}.dKuXep{border-radius:var(--cDRSmz)}.lbmNld{border:thin solid}.bZRhvx{cursor:pointer}.hWbyxU{transition:all 0.1s ease}.diIxfU{outline:var(--dzOvWn)}.efvJEH{will-change:transform,opacity}.kFYpif{background:none}.Axmbx{height:var(--fzzdix)}.jGqtLL{padding-block:var(--jJIQbV)}.fzoqgU{padding-inline:var(--hIimNX)}.fzpabD{height:var(--ckODEv)}.fzoAXm{padding-block:var(--bYDCFo)}.fznPAm{padding-inline:var(--gGIQOF)}.fznKiw{height:var(--gFjjJU)}.fzoqgp{padding-block:var(--hIimNX)}.cPRswh{background:var(--gBHQLb)}.dTWubc{background:var(--iAjuTO)}.edEltL{background:var(--cOyFst)}.gDSsAr{background:var(--iqIoUR)}.hoYZte{background:var(--qsPVo)}.foDtdn{background:var(--edNtiq)}.AxjtU{padding:var(--fcTUxn)}.gsynQv{height:fit-content}.hZLYvv{background:#ffffff14}.kXEOGR{backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.hmegja{background:var(--jSQkQM)}.cERSkX{pointer-events:none}.dMMuNs{width:var(--khWApH)}.bYJPrM{border-radius:var(--kkkBVq)}.fPSBzf{display:flex}.gzBMzy{text-align:center}.cbkwRf{white-space:nowrap}.bunRPm{color:var(--jlmaOs)}.rbsQX{color:var(--etZyR)}.flFbEq{color:var(--iagzVE)}.ecosjt{color:var(--gBHQLb)}.jiGUEY{color:var(--cemPJF)}.deYFWh{color:var(--gHzsmL)}.iATurT{color:var(--iqIoUR)}.drDZIi{color:var(--kFAOBM)}.fQAFQl{outline-offset:var(--gEfgCY)}.AxmbG{width:var(--fzzdix)}.pitAi{padding:var(--jJIQbV)}.fzpabA{width:var(--ckODEv)}.Axikr{padding:var(--bYDCFo)}.fznKij{width:var(--gFjjJU)}.AxhTk{padding:var(--hIimNX)}.gsynQA{width:fit-content}.DyZUq{border-radius:10px}.lnVchA{background:var(--itfeCm)}.gCOtIw{background:var(--dxaFjW)}.fmhFEF{background:var(--ldafrz)}.kRLutI{background:var(--Iycdi)}.gIDZqd{transition:transform 0.2s ease,opacity 0.2s ease}.dLFxYe{text-align:left}.kkElPi{color:var(--enVPNY)}.jsoGzi{color:var(--fKbyps)}.bKCYEC{color:var(--iZlvjY)}.jnqkcv{color:var(--dZIprB)}.buzaNI{color:var(--YyYdq)}.kypCfT{text-transform:uppercase}.fkBQxR{letter-spacing:0.06rem}.gcohXo{border-radius:1rem}.fyplMZ{cursor:default}.ioQIUn{height:10.75rem}.ioQIUI{width:10.75rem}.dXscgu{overflow:hidden}.eLuUPu{overflow:visible}.qbege{gap:var(--fcTUxn)}.pvuga{gap:var(--hIimNX)}.pnxsH{gap:var(--fFrqVq)}.pezuA{gap:var(--gGIQOF)}.flMYjT{box-shadow:0px 1px 2px rgba(189,189,189,0.3)}.fMKpTj{box-shadow:8px 8px 48px rgba(16,15,17,0.14)}.fzrkhE{padding-inline:var(--flZesP)}.fznPzH{padding-block:var(--gGIQOF)}.fzpabv{padding:var(--uyqLg)}.kdFIjO{flex:1 1 0%}.bKPWST{max-width:29.125rem}.iZstbk{opacity:0.3}.dMMuMP{height:var(--khWApH)}.kbJfZC{background:var(--jlmaOs)}.gWzzAr{overflow:auto}.fLVKVB{scrollbar-width:none}.djBLSD{height:100vh}.dnFyWD{width:100vw}.eJvMDV{scale:1}.AxiEa{padding:var(--ebuyxV)}.Axmvo{padding:var(--flZesP)}.eAZrqn{height:auto}.dNXUzv{max-width:25rem}.coifUy{margin-inline:auto}.jeqdDQ{border-radius:var(--insZoq)}.jieZfE{pointer-events:all}.hdAwi{position:fixed}.csnEyP{--backdrop-blur:blur(0.375rem)}.crPXqh{backdrop-filter:var(--backdrop-blur) var(--backdrop-brightness) var(--backdrop-contrast) var(--backdrop-grayscale) var(--backdrop-hue-rotate) var(--backdrop-invert) var(--backdrop-saturate) var(--backdrop-sepia);-webkit-backdrop-filter:var(--backdrop-blur) var(--backdrop-brightness) var(--backdrop-contrast) var(--backdrop-grayscale) var(--backdrop-hue-rotate) var(--backdrop-invert) var(--backdrop-saturate) var(--backdrop-sepia)}.deAqKV{max-width:100rem}.hkIdtl{margin:0 auto}.cORRFI{max-width:none}.fDWVKV{border-radius:var(--hxxJkr)}.JcTPa{transition:all linear 120ms}.hYZFkb{width:100%}.fzozCt{height:var(--dDnfaV)}.fzoNwz{padding-block:var(--ebuyxV)}.AxjtB{margin:var(--fcTUxn)}.iQHTXh{min-width:var(--dDnfaV)}.dvMkiN{text-align:right}.dpjQla{transition:opacity linear 120ms}.dsySWt{text-wrap:wrap}.gsGAeM{color:var(--jmTbXW)}.fNCCNu{padding:20px}.AYoSK{z-index:var(--exvVve)}.kVkdUe{box-shadow:4px 8px 20px 0px rgba(0,0,0,0.15)}.dSXBgr{height:1rem}.dSXBfY{width:1rem}.eAZrpM{width:auto}.AYoSP{width:var(--jNBRbM)}.hQiMIj{max-width:var(--fnTGst)}.jXSfKH{position:absolute}.fzoAWH{padding-inline:var(--bYDCFo)}.eeKCgv{border-radius:var(--UXfgJ)}.Oxeoj{box-shadow:0px 4px 20px 0px rgba(0,0,0,0.10)}.ddgODW{display:none}.cGFOJB{display:block}.izPYod{transform:translateX(-50%) translateY(calc(-100% - 0.75rem))}.cPkmfo{transform:translateX(10%) translateY(calc(-100% - 0.75rem))}.cXTUEh{transform:translateX(-10%) translateY(calc(-100% - 0.75rem))}.iqmoHh{transform:translateX(calc(-100% - 0.75rem)) translateY(-50%)}.emrspq{transform:translateX(calc(-100% - 0.75rem)) translateY(-75%)}.zFGjL{transform:translateX(calc(-100% - 0.75rem)) translateY(-25%)}.ddBtbm{transform:translateX(calc(100% + 0.75rem)) translateY(-50%)}.kSbzJl{transform:translateX(calc(100% + 0.75rem)) translateY(-75%)}.hdzMuI{transform:translateX(calc(100% + 0.75rem)) translateY(-25%)}.jSRWPC{transform:translateX(-50%) translateY(calc(100% + 0.75rem))}.depkmP{transform:translateX(10%) translateY(calc(100% + 0.75rem))}.eqVTfG{transform:translateX(-10%) translateY(calc(100% + 0.75rem))}.fzoWka{width:var(--fnTGst)}.AxhSM{height:var(--juMtMc)}.kmFTYl{transform:translateX(-50%) translateY(0.75rem)}.hFunKo{transform:translateX(-50%) translateY(-0.75rem)}.AxhTf{width:var(--juMtMc)}.fzqACo{height:var(--bPcliI)}.kwEkgw{transform:translateX(-0.75rem) translateY(-50%)}.LwqbV{transform:translateX(0.75rem) translateY(-50%)}.jHxAip{background:linear-gradient(#00CC8F,#6851FF)}.hWgZTB{inset:var(--fcTUxn)}.dKLBtz{gap:10px}.cYdhWw{display:grid}.jZwGWY{fill:var(--RiClf)}.hGQgmY{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jcgYsf{--mix-background:color-mix(in srgb,var(--iagzVE) 20%,transparent);background:var(--mix-background,var(--iagzVE))}.jDVJRS{transform:translateY(0)}.japwPO{transform:translateY(100%)}.bTJmyy{transition:transform 0.3s}.fClTjd{border-top-left-radius:var(--eougbK);border-top-right-radius:var(--eougbK)}.jvjRt{box-shadow:0px -12px 56px 0px rgba(119,118,122,0.15)}.fzozCb{z-index:10}.cFLICG{transform:translateX(-100%)}.byXyn{transform:translateX(100%)}.khiFRn{transform:translateX(0)}.fzoCXr{width:var(--dAFdyM)}.fjzPTS{border-top-right-radius:var(--bphCwb);border-bottom-right-radius:var(--bphCwb)}.dXSjkM{border-top-left-radius:var(--bphCwb);border-bottom-left-radius:var(--bphCwb)}.eVHffH{--thickness:1px}.bjGQXr{gap:var(--cqwGG)}.cpnrKk{box-shadow:true}.fgrICX{background:#ffc439}.fnjBrW{border:1px solid transparent}.jGoIIY{padding-block:var(--cqwGG)}.lopGBb{stroke-width:2.5}.pThsL{gap:var(--dacYEG)}.fzoxFp{width:var(--fUWaSi)}.jonSOI{flex:0 0 auto}.lkYUqX{border-radius:9999px}.cUqkcP{animation:popIn 150ms}.ksKAre{animation:popOut 150ms}.ZlVyD{animation:spin 1.5s linear infinite}.emRNBL{stroke:var(--iagzVE)}.elaIWr{transform-origin:center center}.bkLsBk{gap:var(--jJIQbV)}.kRRXUg{stroke:var(--gBHQLb)}.jAmlUX{stroke:var(--jlmaOs)}.kYoAXZ{stroke-opacity:0.12}.jQNDvc{animation:spin 1s linear infinite}.dITaCb{border-radius:2rem}.bKdxLy{transform:skewX(-20deg)}.chmhDV{overflow-wrap:break-word}.bWVcuP{word-break:break-word}.llnClk{background:var(--kyjnqS)}.fRIRtM{border-radius:var(--dxfumK)}.dWKkCe{min-width:15rem}.mDYqS{width:40%}.dZeDlI{border-left:thin solid}.Axmvg{height:var(--cAmzCM)}.pCmHl{gap:var(--bYDCFo)}.bGySga{-webkit-user-select:none;user-select:none}.GzWLz{-webkit-user-select:auto;user-select:auto}.fMSoJ{filter:blur(10px)}.rHLwk{text-wrap:nowrap}.fzoYeD{width:22px}.fzoYeI{height:22px}.iiBJGO{font-variant:no-contextual}.dJRcZd{transition:none}.pKjuE{gap:var(--ebuyxV)}.fznYYc{width:var(--gANXGP)}.fzozgh{width:var(--htnoem)}.fznYYn{height:var(--gANXGP)}.fzozgi{height:var(--htnoem)}.hYbcjk{width:1.125rem}.hYbciH{height:1.125rem}.dgzwbo{object-fit:cover}.clyxRL{border-start-start-radius:var(--hxxJkr);border-end-start-radius:var(--hxxJkr)}.cMWMBT{border-radius:0}.duralB{transform:rotate(180)}.fznyyO{width:var(--hTmzdp)}.fznyzd{height:var(--hTmzdp)}.faAYXy{max-height:17.5rem}.fzqBIS{width:18px}.fzqBJp{height:18px}.hVpAQY{min-width:var(--kTdGYg)}.cEowv{max-width:30rem}.dGnaHP{caret-color:var(--edNtiq)}.eGizhS{border-radius:0.5rem}.fzoqgI{margin-block:var(--hIimNX)}.iWbCEa{max-width:var(--iQceEA)}.XApuw{overlay:true}.fznycS{height:var(--tQYHK)}.fznycJ{width:var(--tQYHK)}.Axhdq{padding:var(--gGIQOF)}.kInNhr{max-width:393px}.Axhdp{width:var(--eUDwWi)}.enrCNZ{border-radius:60px}.fzoLlM{height:var(--cpjPHA)}.fzoLlH{width:var(--cpjPHA)}.fzozCm{width:var(--dDnfaV)}.AxgJj{height:var(--hTQaBT)}.AxgJE{width:var(--hTQaBT)}.kZwhzw{border-radius:30px}.Axhzu{width:var(--beDnSR)}.Axhzd{height:var(--beDnSR)}.dtwJUe{border-radius:0.375rem}.gNnTtK{border-radius:var(--kLOfAE)}.bnMKLm{color:var(--DLYOY)}.fVXeaF{border-radius:var(--bphCwb)}.bMpqsa{opacity:0.5}.frJqtw{opacity:1}.fzoyvf{width:var(--kveXIc)}.fzoyvs{height:var(--kveXIc)}.dSXzlv{width:6rem}.dSXBCd{width:4rem}.kEPjac{min-height:var(--gANXGP)}.dLESCV{border-radius:0.75rem}.bVQpjJ{border-radius:var(--bewZvn)}.hLsNni{pointer-events:auto}.fGSyrq{transition:background-color 0.2s ease,border-color 0.2s ease}.piqPW{width:var(--siblR)}.pitgX{height:var(--hghuKL)}.mBgaT{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.lfSec{caret:18px}.kEVDGR{check:16px}.dSXBWl{height:3rem}.flFnwR{mult:2.5px}.bUyOMB{display:inline-block}.eOXPNx{max-width:var(--Mxqsr)}.jSqJiD{gap:var(--ieMJEa)}.ljqpme{transition:border-color 0.2s ease}.AxhcS{height:var(--eUDwWi)}.Axikw{width:var(--jshnNX)}.AxijT{height:var(--jshnNX)}.Axjal{padding:var(--dacYEG)}.kyvghW{background:var(--izlnso)}.fyBLPL{background:var(--iTjmdu)}.jqgBXf{box-shadow:0px 4px 20px 0px color-mix(in srgb,var(--jSQkQM) 10%,transparent)}.jIGVye{transition:transform 0.2s ease}.cXjUyC{border-radius:inherit}.fzplPS{height:var(--WLola)}.gnKssF{transition:background 0s}.gNPhbY{transition:background 0.2s ease}.AxjtK{z-index:0}.cgfjYq{background:var(--DLYOY)}.jGqhlT{padding-inline:var(--gEfgCY)}.cBWyVA{transition:background-color 0.2s ease}.iLEfrF{transition:left 0.2s ease}.jYtJnS{stroke-width:4}.fznWHu{width:var(--lcknGR)}.fznWHJ{height:var(--lcknGR)}.fzoAXP{margin-block:var(--bYDCFo)}.kwGEGT{pointer-events:initial}.fNCbQd{height:76px}.jXIVTv{max-width:115px}.hYZFjI{height:100%}.flXdLu{min-width:var(--htnoem)}.pBpid{padding-inline:var(--ieMJEa)}.gtdXBX{width:max-content}.cqBabc{border:thin solid transparent}.jzlacV{height:6.25rem}.evQrdT{--mix-background:color-mix(in srgb,var(--iagzVE) 6%,transparent);background:var(--mix-background,var(--iagzVE))}.bdwxhc{border-radius:52px}.gAFyjk{backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.hYxQqf{height:2.625rem}.hYxQqA{width:2.625rem}.fubjOl{box-shadow:0.125rem 0.125rem 1.5rem color-mix(in srgb,var(--cFFIOa) 15%,transparent)}.eWAJiI{fill:var(--ktVcUk)}.eWyFtu{color:var(--ktVcUk)}.gSVYRP{animation:fadeIn 0.5s,moveRight 1s 0.5s forwards}.kJWAhn{border-radius:50%}.imIknl{height:3.875rem}.imIknm{width:3.875rem}.Axjab{z-index:1}.iAVgSo{animation:fadeIn 0.5s,moveLeft 1s 0.5s forwards}.fznxJj{height:34px}.fznxIY{width:34px}.fzoayX{height:var(--hZfkST)}.fzoayU{width:var(--hZfkST)}.eliKuq{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.fzodHc{padding-block:var(--fFrqVq)}.pBpiF{margin-block:var(--ieMJEa)}.pzYgn{height:250px}.gWDyZg{color:var(--cFFIOa)}.fzozCl{padding:var(--ieMJEa)}.gnCXEd{overflow:scroll}.jsxjhB{width:200px}.hMIFzk{max-width:200px}.gHsxkk{min-width:88px}.gWcfgT{min-width:fit-content}.gVwSKA{min-height:fit-content}.cUIwgI{transition:transform 0.1s}.jrPJbn{width:114px}.fNAzWg{height:48px}.ATFQA{width:7px}.ATFQv{height:7px}.bxgBRd{background:var(--gHzsmL)}.ihDaVZ{--translate-x:var(--gGIQOF)}.cBAuwg{--translate-y:var(--gGIQOF)}.djKBfg{--translate-x:var(--bYDCFo)}.iPNhEZ{--translate-y:var(--bYDCFo)}.BJXMm{min-height:18px}.AORKl{min-width:18px}.AxiZQ{margin:var(--dacYEG)}.rmyfW{gap:var(--flZesP)}.bTqNYb{min-width:380px}.jJQbUA{transform:translate(-50%,-50%)}.fznCZP{padding-inline:var(--eDRUVY)}.eYxvy{stroke-width:8}.uLMIu{border-radius:14px}.iriloe{rotate:90deg}.kBkDOg{scrollbar-width:thin}.fUTAcQ{scrollbar-color:rgba(143,147,153,0.4) transparent}.eGSram{max-height:384px}.fzoNxe{padding-inline:var(--ebuyxV)}.fzoxFy{height:var(--fUWaSi)}.jrNHos{width:294px}.jrNHnX{height:294px}.plVOb{width:286px}.plVNY{height:286px}.jGeaAw{border-radius:16px}.kSmiQp{align-items:center}.legDhJ{justify-content:center}.bsdAgg{font-weight:var(--hmvyHR)}.gKedlK{border-color:var(--edNtiq)}.lcwbhf{border-color:var(--DLYOY)}.xYowz{font-size:var(--eRgJXV)}.lgBfkU{line-height:1.5rem}.wzdQU{font-size:var(--daFrau)}.xEQJi{font-size:var(--gKFLFQ)}.RiFXn{line-height:1.75rem}.ecsDQq{outline-color:var(--gBHQLb)}.dkFkBb{outline-style:solid}.jUIfTb{outline-width:var(--hiYFxW)}.uLlkq{animation-fill-mode:forwards}.hgoZRe{animation-name:scaleOut}.bXxxmv{animation-duration:150ms}.AMuyK{font-size:var(--loLyxA)}.fznCNG{margin-left:var(--eDRUVY)}.fznDiI{margin-right:var(--eDRUVY)}.kbJfZC{background-color:var(--jlmaOs)}.dRCFAU{align-items:flex-start}.fUfBYX{align-items:flex-end}.fRDJQy{background-color:var(--crPUBo)}.cZtwqS{animation-name:none}.fzpnVC{padding-bottom:var(--fcTUxn)}.bZlPyP{animation-name:scaleIn}.fDIibI{animation-duration:250ms}.qbeer{top:var(--fcTUxn)}.kiKDyH{left:var(--fcTUxn)}.hIekUp{animation-name:fadeIn}.Brknr{animation-duration:400ms}.hdbihI{animation-name:fadeOut}.iYhTva{font-weight:var(--leEsKL)}.foDtdn{background-color:var(--edNtiq)}.hDGJaH{border-style:solid}.lbLLll{border-width:var(--fFEzoc)}.kMhkax{border-color:var(--gfUEye)}.dwaifQ{border-color:var(--bWuoqD)}.hhWyss{font-weight:var(--llFanx)}.xNKXN{font-size:var(--gFqSQX)}.fvBKJs{justify-content:flex-start}.jUJMFv{justify-content:flex-end}.cPRswh{background-color:var(--gBHQLb)}.edEltL{background-color:var(--cOyFst)}.gCeNqG{background-color:var(--dLLYUY)}.gDSsAr{background-color:var(--iqIoUR)}.btsPBS{background-color:var(--kFAOBM)}.hZBAaK{top:0%}.eCaVMz{left:50%}.dlNJxY{right:100%}.eCzFHr{left:100%}.dDihBf{top:50%}.dTRYzG{left:0%}.dRndGF{right:0%}.ktFiky{bottom:0%}.kyGdCf{bottom:var(--fcTUxn)}.jIomzn{right:calc(var(--gGIQOF) * -1)}.eMGDsc{left:calc(var(--gGIQOF) * -1)}.ksWBqx{flex-direction:row}.cMoGaw{grid-template-columns:repeat(6,minmax(0,1fr))}.cxWwua{column-gap:2rem}.cxzifT{row-gap:2rem}.fznPDb{margin-top:var(--gGIQOF)}.iLbQFp{flex-direction:column}.jzuiJt{flex-shrink:0}.fznPCO{padding-top:var(--gGIQOF)}.hWgptE{right:var(--fcTUxn)}.fznPzA{padding-bottom:var(--gGIQOF)}.gSKPcF{justify-content:space-between}.gsLSP{border-block-end-width:var(--thickness)}.kNSbHl{border-color:var(--kJiqPO)}.iFtuvY{outline-color:#ffc439}.jGqhje{margin-top:var(--gEfgCY)}.iWITAz{border-width:var(--hiYFxW)}.OpsJf{border-color:var(--jlmaOs)}.cIFhny{left:-50%}.hhfvpY{background-image:linear-gradient(90deg,transparent,rgba(0,0,0,.1),transparent)}.bheJpJ{font-weight:600}.ckDurQ{justify-content:space-around}.bJrRn{border-color:var(--qsPVo)}.kWIjhW{font-family:inherit}.evhJrM{outline-style:none}.bnrbKB{border-left-width:var(--fFEzoc)}.jCnIUz{top:55px}.WUSvz{overflow-y:auto}.fzrkfx{margin-top:var(--flZesP)}.fzoqjJ{margin-top:var(--hIimNX)}.kiIPsp{flex-grow:0}.fzoBen{padding-top:var(--bYDCFo)}.eRLFrQ{border-bottom-color:var(--DLYOY)}.ikkoWx{border-bottom-width:1px}.gvTxLc{flex-direction:column-reverse}.kRUpGi{left:var(--djiiAi)}.jXbniH{top:var(--cBFxYr)}.jppWeU{border-width:2px}.hoYZte{background-color:var(--qsPVo)}.dKiwaS{font-weight:var(--ghWdwL)}.hQJXOm{align-items:start}.jgxhLI{border-color:var(--gBHQLb)}.jfQXOb{border-color:var(--kFAOBM)}.fNUXA{outline-color:var(--edNtiq)}.fzoAPu{margin-left:var(--bYDCFo)}.cLWmJb{border-width:1px}.pNAEp{margin-left:calc(var(--dacYEG) * -1)}.fzpbES{margin-right:var(--dacYEG)}.fzoNGh{margin-right:var(--ebuyxV)}.jDRgcp{left:var(--gGIQOF)}.cXMndB{--mix-borderColor:color-mix(in srgb,var(--iagzVE) 10%,transparent);border-color:var(--mix-borderColor,var(--iagzVE))}.boHRSr{border-width:var(--fCuVLy)}.dsEUfT{background-color:var(--hLOWYd)}.kAiqVl{border-width:3px}.jsWSlz{margin-top:-3px}.jbWTdm{margin-right:0.9rem}.jbWSUo{margin-left:0.9rem}.kFJmaE{--mix-backgroundColor:color-mix(in srgb,var(--iagzVE) 1%,transparent)}.ftGyaA,.kFJmaE{background-color:var(--mix-backgroundColor,var(--iagzVE))}.ftGyaA{--mix-backgroundColor:color-mix(in srgb,var(--iagzVE) 5%,transparent)}.fydxLC{--mix-borderColor:color-mix(in srgb,var(--iagzVE) 6%,transparent);border-color:var(--mix-borderColor,var(--iagzVE))}.fjYTfT{bottom:-1px}.bEeUNc{right:-1px}.kQauLJ{align-items:baseline}.fcwWhs{background-color:var(--gfUEye)}.hHdgel{background-color:var(--dnTPVf)}.bbHqQM{grid-template-columns:repeat(2,minmax(0,1fr))}.fzoqjw{padding-top:var(--hIimNX)}.fzoNvZ{margin-bottom:var(--ebuyxV)}.fzoNEP{margin-top:var(--ebuyxV)}.fzoAVA{margin-bottom:var(--bYDCFo)}.kRLutI{background-color:var(--Iycdi)}.XyjJy:is(:disabled,[disabled],[data-disabled]){opacity:0.3}.iFUqYl:is(:disabled,[disabled],[data-disabled]){pointer-events:none}.jrpcxw:before{position:absolute}.heDbSF:before{border-radius:inherit}.dwmXuW:before{opacity:0}.huWYIz:before{transition:opacity 0.1s ease}[data-color-mode=light] .jtDWvE{mix-blend-mode:multiply}[data-color-mode=dark] .gLaBRL{background:#ffffff29}.jNgRkF:before{display:none}[data-color-mode=dark] .hAWTSp{background:var(--iTjmdu)}[data-color-mode=dark] .ehbthU{color:var(--jSQkQM)}[data-color-mode=dark] .kkleQX{color:var(--bWuoqD)}[data-color-mode=dark] .dcESjf{border-block:solid}.iqcWiz::placeholder,.iqcWiz[data-placeholder]{color:var(--kFAOBM)}[data-color-mode=dark] .dSbdfc{background:var(--crPUBo)}.FuZjR:is(:disabled,[disabled],[data-disabled]){opacity:0.8}[data-color-mode=dark] .iuzRWK{background:rgba(0,0,0,.7)}[data-color-mode=dark] .jrIQHe{background:var(--Iycdi)}[data-color-mode=dark] .cDAZzQ{background:var(--jlmaOs)}[data-color-mode=dark] .dUhjQY{background:var(--eSphig)}[data-color-mode=dark] .egesjy{background:var(--lfBdGG)}[data-color-mode=dark] .ixYntQ{fill:var(--cFFIOa)}[data-color-mode=dark] .kmeQgS{color:var(--cFFIOa)}.dLVhZe:before{content:""}.gjcwJg:before{top:var(--fcTUxn)}.WaBms:before{left:var(--fcTUxn)}.dqEIyP:before{right:var(--fcTUxn)}.knajvY:before{bottom:var(--fcTUxn)}.cNKdvI:before{background-image:linear-gradient(rgba(0,0,0,0.05),rgba(0,0,0,0.05))}.hSfsjI:before{background-image:linear-gradient(rgba(255,255,255,0.05),rgba(255,255,255,0.05))}[data-color-mode=dark] .cEVFqR{border-width:1px}[data-color-mode=dark] .jCzVrn{border-color:var(--gfUEye)}[data-color-mode=dark] .dYDocO{background-color:var(--YyYdq)}[data-color-mode=dark] .HKuZu{background-image:linear-gradient(90deg,transparent,rgba(255,255,255,0.15),transparent)}.fmEGpT::-webkit-scrollbar,.hVrpDN::-webkit-scrollbar-track{background-color:var(--edNtiq)}.jOgXfC:focus-within{outline-offset:var(--gEfgCY)}.keDhFF:focus-within{outline-color:var(--gBHQLb)}.dLOUfk:focus-within{outline-style:solid}.hqoPOw:focus-within{outline-width:var(--hiYFxW)}.codFrx:is(:focus-visible,[data-focus-visible]){outline-offset:var(--gEfgCY)}.flBQvp:is(:focus-visible,[data-focus-visible]){border-radius:2px}.dmiQBo:is(:focus,[data-focus]){fill:url("#logo-gradient")}.AIGHf:is(:focus-visible,[data-focus-visible]){outline-color:var(--iAjuTO)}.dGEQaj:is(:focus-visible,[data-focus-visible]){outline-color:var(--itfeCm)}.hyjrVf:is(:focus-visible,[data-focus-visible]){outline-color:var(--dxaFjW)}.gcvzK:is(:focus-visible,[data-focus-visible]){outline-color:var(--ldafrz)}.bIoiOr:is(:focus-visible,[data-focus-visible]){outline-color:var(--Iycdi)}.hLPNjH:is(:focus-visible,[data-focus-visible]){outline-style:solid}.dTHceD:is(:focus-visible,[data-focus-visible]){outline-width:var(--hiYFxW)}.bXLdKW:is(:focus-visible,[data-focus-visible]){outline-color:var(--gBHQLb)}.eqIqpK:is(:hover,[data-hover]){background:#ffffff4d}.group:is(:hover,[data-hover]) .crpBMh{color:var(--enVPNY)}.group:is(:hover,[data-hover]) .dkgTgI{color:var(--cOyFst)}.group:is(:hover,[data-hover]) .dsNmcp{color:var(--iZlvjY)}.group:is(:hover,[data-hover]) .ejxEyT{color:var(--YyYdq)}.gFOtbv:is(:hover,[data-hover]){opacity:0.8}.gNRPsX:is(:hover,[data-hover]){filter:brightness(0.9)}.cNdQqS:is(:hover,[data-hover]){background:var(--crPUBo)}.hQYScc:is(:hover,[data-hover]){background:var(--iAjuTO)}.juloA:is(:hover,[data-hover]){background:var(--gfUEye)}.ekkLYF:is(:hover,[data-hover]){box-shadow:0 6px 8px 2px rgba(0,0,0,.18)}.ieWvIF:is(:hover,[data-hover]){cursor:pointer}.kznAev:is(:hover,[data-hover]){background:var(--edNtiq)}.lpgyhx:is(:hover,[data-hover]){background:var(--eRgqfH)}.gJEFOw:is(:hover,[data-hover]){background:var(--cFFIOa)}.eJlUjp:is(:hover,[data-hover]){background:var(--gBHQLb)}.group:is(:hover,[data-hover]) .fOIArh{color:var(--iagzVE)}.dmulsi:is(:hover,[data-hover]){fill:url("#logo-gradient")}.group:is(:hover,[data-hover]) .ejwVfp{color:var(--kFAOBM)}.dpCLFW:is(:hover,[data-hover]){background:var(--qsPVo)}.fFyjxH:is(:hover,[data-hover]){border-color:var(--DLYOY)}.khQJeR:is(:hover,[data-hover]){border-color:var(--gfUEye)}.group:is(:hover,[data-hover]) .jRgrno{border-color:var(--DLYOY)}.juloA:is(:hover,[data-hover]){background-color:var(--gfUEye)}.XicUs:is(:hover,[data-hover]){border-color:var(--gBHQLb)}.bhyTbN:is(:active,[data-active]){transform:scale(0.95)}.dLUGsc:is(:active,[data-active]){fill:url("#logo-gradient")}.fwLKPv>:first-child{min-width:var(--cAmzCM)}.kYYdmz>:last-child{min-width:var(--cAmzCM)}[data-color-mode=dark] .iBxkaW:before{background-image:linear-gradient(rgba(255,255,255,0.05),rgba(255,255,255,0.05))}[data-color-mode=dark] .gYKIuG:before{background-image:linear-gradient(rgba(0,0,0,0.05),rgba(0,0,0,0.05))}.feLnkv:is(:hover,[data-hover]):before{opacity:1}.hEvetW:is(:hover,[data-hover]):before{opacity:0}[data-color-mode=dark] .group:is(:hover,[data-hover]) .hOYqkw{color:var(--gzHfkH)}[data-color-mode=dark] .group:is(:hover,[data-hover]) .tdpny{color:var(--cOyFst)}[data-color-mode=dark] .group:is(:hover,[data-hover]) .jMRjnY{color:var(--dnTPVf)}[data-color-mode=dark] .group:is(:hover,[data-hover]) .hEkRYZ{color:var(--YyYdq)}[data-color-mode=dark] .cbdIkB:is(:hover,[data-hover]){background:var(--edNtiq)}[data-color-mode=dark] .bLXejb:is(:hover,[data-hover]){background:var(--gyKIIT)}[data-color-mode=dark] .leneMy:is(:hover,[data-hover]){background:var(--lfBdGG)}[data-color-mode=dark] .iCKJWv:is(:hover,[data-hover]){background:var(--gBHQLb)}@media (min-width: 48rem){.XrXGK{margin-inline:auto}.blyVxi{width:25rem}.jBZMtD{height:fit-content}.dOrSJl{box-shadow:0px 12px 56px color-mix(in srgb,var(--cFFIOa) 15%,transparent)}.cRloWQ{border-radius:var(--insZoq)}.fHEbLY{top:var(--uyqLg)}.ctyfRj{top:var(--fcTUxn)}}@media (min-width: 48rem){[data-color-mode=dark] .iueHSe{box-shadow:none}}@media (min-width: 48rem){[data-color-mode=dark] .isQWtr{border-block:solid}}@media (min-width: 48rem){[data-color-mode=dark] .ceYPvB{border-width:1px}}@media (min-width: 48rem){[data-color-mode=dark] .btXYvH{border-color:var(--gfUEye)}}@media screen and (min-width: 48rem){.kVsPah{padding-inline:var(--gGIQOF)}}@media (min-width: 769px){.fdZOLs{padding-top:15vh}}@media screen and (min-width: 64rem){.kTqchV{padding-inline:var(--flZesP)}}@media screen and (max-width: 47.9975rem){.hUYDug{max-width:var(--khWApH)}}@media only screen and (max-width: 767px){.fcSmAp{height:100dvh}}@media (max-width: 370px){.hYevRO{display:none}}@media (prefers-reduced-motion: reduce){.kuxZR{scale:1}}}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface PendingProps {
|
|
3
|
+
onPressBack: () => void;
|
|
4
|
+
title: string;
|
|
5
|
+
description: string;
|
|
6
|
+
Icon: React.ElementType;
|
|
7
|
+
isPending: boolean;
|
|
8
|
+
errorMessage: string | null;
|
|
9
|
+
}
|
|
10
|
+
export declare const Pending: ({ onPressBack, title, description, Icon, isPending, errorMessage }: PendingProps) => React.JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React, { ElementType } from 'react';
|
|
2
|
+
interface ProviderButtonProps {
|
|
3
|
+
label?: string;
|
|
4
|
+
Icon: ElementType;
|
|
5
|
+
onPress: () => void;
|
|
6
|
+
hideLabel?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const ProviderButton: ({ label, Icon, onPress, hideLabel }: ProviderButtonProps) => React.JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { OAuthProvider } from '../types';
|
|
3
|
+
import { WidgetAction } from 'src/reducer';
|
|
4
|
+
interface SocialProvidersProps {
|
|
5
|
+
providers: OAuthProvider[];
|
|
6
|
+
onPress: (provider: OAuthProvider) => void;
|
|
7
|
+
dispatch: React.Dispatch<WidgetAction>;
|
|
8
|
+
}
|
|
9
|
+
export declare const SocialProviders: ({ providers, onPress, dispatch }: SocialProvidersProps) => React.JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { WidgetAction } from '../reducer';
|
|
3
|
+
interface EmailLoginContextValue {
|
|
4
|
+
startEmailLogin: (email: string) => void;
|
|
5
|
+
submitOTP: (otp: string) => void;
|
|
6
|
+
submitMFA: (totp: string) => void;
|
|
7
|
+
lostDevice: () => void;
|
|
8
|
+
submitRecoveryCode: (recoveryCode: string) => void;
|
|
9
|
+
cancelLogin: () => void;
|
|
10
|
+
retryDeviceVerification: () => void;
|
|
11
|
+
resendEmailOTP: () => void;
|
|
12
|
+
email: string | null;
|
|
13
|
+
}
|
|
14
|
+
interface EmailLoginProviderProps {
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
dispatch: React.Dispatch<WidgetAction>;
|
|
17
|
+
}
|
|
18
|
+
export declare function EmailLoginProvider({ children, dispatch }: EmailLoginProviderProps): React.JSX.Element;
|
|
19
|
+
/**
|
|
20
|
+
* Hook to access the email login context
|
|
21
|
+
* @throws Error if used outside of EmailLoginProvider
|
|
22
|
+
*/
|
|
23
|
+
export declare function useEmailLogin(): EmailLoginContextValue;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { LoginResult, MagicWidgetProps, ThirdPartyWallet } from '../types';
|
|
3
|
+
interface WidgetConfigContextValue {
|
|
4
|
+
/** Third-party wallets to display */
|
|
5
|
+
wallets: ThirdPartyWallet[];
|
|
6
|
+
/** Call when login succeeds */
|
|
7
|
+
handleSuccess: (result: LoginResult) => void;
|
|
8
|
+
/** Call when login fails */
|
|
9
|
+
handleError: (error: Error) => void;
|
|
10
|
+
/** Call to close the widget. Undefined if onClose prop wasn't provided. */
|
|
11
|
+
handleClose?: () => void;
|
|
12
|
+
}
|
|
13
|
+
interface WidgetConfigProviderProps extends MagicWidgetProps {
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}
|
|
16
|
+
export declare function WidgetConfigProvider({ children, wallets, onSuccess, onError, onClose, closeOnSuccess, }: WidgetConfigProviderProps): React.JSX.Element;
|
|
17
|
+
/**
|
|
18
|
+
* Hook to access the widget configuration
|
|
19
|
+
* @throws Error if used outside of WidgetConfigProvider
|
|
20
|
+
*/
|
|
21
|
+
export declare function useWidgetConfig(): WidgetConfigContextValue;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { Extension, SDKBase } from '@magic-sdk/provider';
|
|
2
|
+
import { JsonRpcRequestPayload } from '@magic-sdk/types';
|
|
3
|
+
import type { Config } from '@wagmi/core';
|
|
4
|
+
import type { WagmiAdapter } from '@reown/appkit-adapter-wagmi';
|
|
5
|
+
import { ClientConfig } from './types/client-config';
|
|
6
|
+
export declare const MAGIC_WIDGET_PROVIDER = "magic-widget";
|
|
7
|
+
export type OAuthProvider = 'google' | 'facebook' | 'apple' | 'github' | 'bitbucket' | 'gitlab' | 'linkedin' | 'twitter' | 'discord' | 'twitch' | 'microsoft';
|
|
8
|
+
export interface OpenIDConnectUserInfo {
|
|
9
|
+
name?: string;
|
|
10
|
+
familyName?: string;
|
|
11
|
+
givenName?: string;
|
|
12
|
+
middleName?: string;
|
|
13
|
+
nickname?: string;
|
|
14
|
+
preferredUsername?: string;
|
|
15
|
+
profile?: string;
|
|
16
|
+
picture?: string;
|
|
17
|
+
website?: string;
|
|
18
|
+
email?: string;
|
|
19
|
+
emailVerified?: boolean;
|
|
20
|
+
gender?: string;
|
|
21
|
+
birthdate?: string;
|
|
22
|
+
zoneinfo?: string;
|
|
23
|
+
locale?: string;
|
|
24
|
+
phoneNumber?: string;
|
|
25
|
+
phoneNumberVerified?: boolean;
|
|
26
|
+
sub?: string;
|
|
27
|
+
sources?: Record<string, unknown>;
|
|
28
|
+
[key: string]: unknown;
|
|
29
|
+
}
|
|
30
|
+
export interface MagicUserMetadata {
|
|
31
|
+
issuer: string | null;
|
|
32
|
+
publicAddress: string | null;
|
|
33
|
+
email: string | null;
|
|
34
|
+
phoneNumber?: string | null;
|
|
35
|
+
isMfaEnabled?: boolean;
|
|
36
|
+
recoveryFactors?: Array<{
|
|
37
|
+
type: string;
|
|
38
|
+
value: string;
|
|
39
|
+
}>;
|
|
40
|
+
}
|
|
41
|
+
export interface OAuthRedirectResult {
|
|
42
|
+
oauth: {
|
|
43
|
+
provider: OAuthProvider;
|
|
44
|
+
scope: string[];
|
|
45
|
+
userHandle: string;
|
|
46
|
+
userInfo: OpenIDConnectUserInfo;
|
|
47
|
+
};
|
|
48
|
+
magic: {
|
|
49
|
+
idToken: string;
|
|
50
|
+
userMetadata: MagicUserMetadata;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export interface OAuthRedirectError {
|
|
54
|
+
provider: OAuthProvider;
|
|
55
|
+
error: string;
|
|
56
|
+
error_description?: string;
|
|
57
|
+
error_uri?: string;
|
|
58
|
+
}
|
|
59
|
+
export interface SiweGenerateNonceParams {
|
|
60
|
+
address?: string;
|
|
61
|
+
}
|
|
62
|
+
export interface SiweGenerateMessageParams {
|
|
63
|
+
address: string;
|
|
64
|
+
chainId?: number;
|
|
65
|
+
statement?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface SiweLoginParams {
|
|
68
|
+
message: string;
|
|
69
|
+
signature: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Get the initialized WalletKitExtension instance.
|
|
73
|
+
* Used internally by React components to access SIWE methods.
|
|
74
|
+
* @throws Error if extension hasn't been initialized yet
|
|
75
|
+
*/
|
|
76
|
+
export declare function getExtensionInstance(): WalletKitExtension;
|
|
77
|
+
export interface WalletKitExtensionOptions {
|
|
78
|
+
/** Reown (WalletConnect) project ID. Uses a default if not provided. */
|
|
79
|
+
projectId?: string;
|
|
80
|
+
}
|
|
81
|
+
export declare class WalletKitExtension extends Extension.Internal<'walletKit'> {
|
|
82
|
+
name: "walletKit";
|
|
83
|
+
config: {};
|
|
84
|
+
readonly projectId: string;
|
|
85
|
+
readonly wagmiConfig: Config;
|
|
86
|
+
readonly wagmiAdapter: WagmiAdapter;
|
|
87
|
+
private clientConfig;
|
|
88
|
+
private configPromise;
|
|
89
|
+
private eventsListenerAdded;
|
|
90
|
+
private reconnectPromise;
|
|
91
|
+
constructor(options?: WalletKitExtensionOptions);
|
|
92
|
+
/**
|
|
93
|
+
* Called by Magic SDK when the extension is initialized.
|
|
94
|
+
* We override to store a reference for internal React component access.
|
|
95
|
+
*/
|
|
96
|
+
init(sdk: SDKBase): void;
|
|
97
|
+
private restoreWalletConnection;
|
|
98
|
+
/**
|
|
99
|
+
* Set up the connected state after successful SIWE login.
|
|
100
|
+
* This enables RPC request routing through the 3rd party wallet.
|
|
101
|
+
*/
|
|
102
|
+
setConnectedState(address: string, chainId?: number): void;
|
|
103
|
+
/**
|
|
104
|
+
* Clear the connected state (called on logout/disconnect).
|
|
105
|
+
*/
|
|
106
|
+
clearConnectedState(): void;
|
|
107
|
+
/**
|
|
108
|
+
* Get the current wallet provider from wagmi.
|
|
109
|
+
* Returns null if not connected.
|
|
110
|
+
*/
|
|
111
|
+
getWalletProvider(): Promise<any | null>;
|
|
112
|
+
/**
|
|
113
|
+
* Execute an RPC request through the connected 3rd party wallet.
|
|
114
|
+
* This is called by ThirdPartyWalletsModule for magic-widget provider.
|
|
115
|
+
*/
|
|
116
|
+
walletRequest<T = unknown>(payload: Partial<JsonRpcRequestPayload>): Promise<T>;
|
|
117
|
+
/**
|
|
118
|
+
* Set up event listeners for account and chain changes.
|
|
119
|
+
*/
|
|
120
|
+
private setupEip1193EventListeners;
|
|
121
|
+
/**
|
|
122
|
+
* Handle wallet disconnect - clear SDK state AND invalidate Magic iframe session.
|
|
123
|
+
* Called when user disconnects wallet via wallet extension UI.
|
|
124
|
+
*/
|
|
125
|
+
private handleWalletDisconnect;
|
|
126
|
+
private dispatchWalletUpdate;
|
|
127
|
+
/**
|
|
128
|
+
* Generate a nonce for SIWE message construction.
|
|
129
|
+
* This calls the Magic backend to get a unique nonce.
|
|
130
|
+
*/
|
|
131
|
+
generateNonce(params?: SiweGenerateNonceParams): Promise<string>;
|
|
132
|
+
/**
|
|
133
|
+
* Generate a complete SIWE message.
|
|
134
|
+
* Fetches a nonce from the backend and constructs the message client-side.
|
|
135
|
+
*/
|
|
136
|
+
generateMessage(params: SiweGenerateMessageParams): Promise<string>;
|
|
137
|
+
/**
|
|
138
|
+
* Login with SIWE message and signature.
|
|
139
|
+
* Sends the signed message to Magic backend for verification and returns a DID token.
|
|
140
|
+
*/
|
|
141
|
+
login(params: SiweLoginParams): Promise<string>;
|
|
142
|
+
/**
|
|
143
|
+
* Login with OAuth popup.
|
|
144
|
+
* Opens a popup for the specified OAuth provider and returns the result.
|
|
145
|
+
*/
|
|
146
|
+
loginWithPopup(provider: OAuthProvider): Promise<OAuthRedirectResult>;
|
|
147
|
+
/**
|
|
148
|
+
* Fetch client configuration via RPC (proxied through embedded-wallet iframe).
|
|
149
|
+
* This avoids CORS issues by having the iframe make the request.
|
|
150
|
+
*/
|
|
151
|
+
fetchConfig(): Promise<ClientConfig>;
|
|
152
|
+
/**
|
|
153
|
+
* Get the cached client configuration (synchronous).
|
|
154
|
+
* Returns null if config hasn't been fetched yet.
|
|
155
|
+
*/
|
|
156
|
+
getConfig(): ClientConfig | null;
|
|
157
|
+
/**
|
|
158
|
+
* Login with Email OTP
|
|
159
|
+
*/
|
|
160
|
+
loginWithEmailOTP(email: string): import("@magic-sdk/provider").PromiEvent<string | null, {
|
|
161
|
+
"email-otp-sent": () => void;
|
|
162
|
+
"login-throttled": () => void;
|
|
163
|
+
"invalid-email-otp": () => void;
|
|
164
|
+
"invalid-mfa-otp": () => void;
|
|
165
|
+
"expired-email-otp": () => void;
|
|
166
|
+
"mfa-sent-handle": () => void;
|
|
167
|
+
"recovery-code-sent-handle": () => void;
|
|
168
|
+
"invalid-recovery-code": () => void;
|
|
169
|
+
"recovery-code-success": () => void;
|
|
170
|
+
"max-attempts-reached": () => void;
|
|
171
|
+
"Auth/id-token-created": (idToken: string) => void;
|
|
172
|
+
"Wallet/wallet-info-fetched": () => void;
|
|
173
|
+
"verify-email-otp": (otp: string) => void;
|
|
174
|
+
"verify-mfa-code": (mfa: string) => void;
|
|
175
|
+
"lost-device": () => void;
|
|
176
|
+
"verify-recovery-code": (recoveryCode: string) => void;
|
|
177
|
+
cancel: () => void;
|
|
178
|
+
} & {
|
|
179
|
+
"device-needs-approval": () => void;
|
|
180
|
+
"device-verification-email-sent": () => void;
|
|
181
|
+
"device-verification-link-expired": () => void;
|
|
182
|
+
"device-approved": () => void;
|
|
183
|
+
"device-retry": () => void;
|
|
184
|
+
} & {
|
|
185
|
+
done: (result: string | null) => void;
|
|
186
|
+
error: (reason: any) => void;
|
|
187
|
+
settled: () => void;
|
|
188
|
+
"closed-by-user": () => void;
|
|
189
|
+
}>;
|
|
190
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useMediaQuery(query: string): boolean;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { OAuthProvider, OAuthRedirectResult } from '../extension';
|
|
2
|
+
export interface UseOAuthLoginResult {
|
|
3
|
+
performOAuthLogin: (provider: OAuthProvider) => Promise<OAuthRedirectResult>;
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
error: Error | null;
|
|
6
|
+
isSuccess: boolean;
|
|
7
|
+
result: OAuthRedirectResult | null;
|
|
8
|
+
}
|
|
9
|
+
export declare function useOAuthLogin(): UseOAuthLoginResult;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface UseSiweLoginResult {
|
|
2
|
+
performSiweLogin: (address: string, chainId?: number) => Promise<string>;
|
|
3
|
+
isLoading: boolean;
|
|
4
|
+
error: Error | null;
|
|
5
|
+
isSuccess: boolean;
|
|
6
|
+
walletAddress: string | null;
|
|
7
|
+
}
|
|
8
|
+
export declare function useSiweLogin(): UseSiweLoginResult;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ThirdPartyWallet } from '../types';
|
|
2
|
+
export interface UseWalletConnectResult {
|
|
3
|
+
connectWallet: () => Promise<void>;
|
|
4
|
+
isPending: boolean;
|
|
5
|
+
error: Error | null;
|
|
6
|
+
address: `0x${string}` | undefined;
|
|
7
|
+
isConnected: boolean;
|
|
8
|
+
isConnectedToSelectedProvider: boolean;
|
|
9
|
+
disconnect: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function useWalletConnect(provider: ThirdPartyWallet): UseWalletConnectResult;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './MagicWidget';
|
|
2
|
+
export * from './extension';
|
|
3
|
+
export { ThirdPartyWallets, OAuthProvider, type ThirdPartyWallet, type DisplayMode, type MagicWidgetProps, type LoginResult, type EmailLoginResult, type OAuthLoginResult, type WalletLoginResult, type OAuthUserInfo, } from './types';
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { LoginProvider, OAuthProvider, ThirdPartyWallet } from './types';
|
|
2
|
+
export type View = 'login' | 'otp' | 'additional_providers' | 'wallet_pending' | 'walletconnect_pending' | 'oauth_pending' | 'email_otp_pending' | 'device_verification' | 'mfa_pending' | 'recovery_code' | 'lost_recovery_code' | 'login_success';
|
|
3
|
+
export type EmailLoginStatus = 'idle' | 'sending' | 'otp_sent' | 'verifying_otp' | 'invalid_otp' | 'expired_otp' | 'max_attempts_reached' | 'device_needs_approval' | 'device_verification_sent' | 'device_verification_expired' | 'device_approved' | 'mfa_required' | 'recovery_code' | 'success' | 'mfa_verifying' | 'mfa_invalid' | 'recovery_code_verifying' | 'lost_recovery_code' | 'error';
|
|
4
|
+
export interface WidgetState {
|
|
5
|
+
view: View;
|
|
6
|
+
email?: string;
|
|
7
|
+
selectedProvider?: LoginProvider;
|
|
8
|
+
walletAddress?: string;
|
|
9
|
+
error?: string;
|
|
10
|
+
emailLoginStatus?: EmailLoginStatus;
|
|
11
|
+
}
|
|
12
|
+
export type WidgetAction = {
|
|
13
|
+
type: 'GO_TO_LOGIN';
|
|
14
|
+
} | {
|
|
15
|
+
type: 'EMAIL_OTP_START';
|
|
16
|
+
email: string;
|
|
17
|
+
} | {
|
|
18
|
+
type: 'EMAIL_OTP_SENT';
|
|
19
|
+
} | {
|
|
20
|
+
type: 'EMAIL_OTP_INVALID';
|
|
21
|
+
} | {
|
|
22
|
+
type: 'EMAIL_OTP_EXPIRED';
|
|
23
|
+
} | {
|
|
24
|
+
type: 'EMAIL_OTP_MAX_ATTEMPTS_REACHED';
|
|
25
|
+
} | {
|
|
26
|
+
type: 'EMAIL_OTP_VERIFYING';
|
|
27
|
+
} | {
|
|
28
|
+
type: 'DEVICE_NEEDS_APPROVAL';
|
|
29
|
+
} | {
|
|
30
|
+
type: 'DEVICE_VERIFICATION_SENT';
|
|
31
|
+
} | {
|
|
32
|
+
type: 'DEVICE_VERIFICATION_EXPIRED';
|
|
33
|
+
} | {
|
|
34
|
+
type: 'DEVICE_APPROVED';
|
|
35
|
+
} | {
|
|
36
|
+
type: 'MFA_REQUIRED';
|
|
37
|
+
} | {
|
|
38
|
+
type: 'MFA_VERIFYING';
|
|
39
|
+
} | {
|
|
40
|
+
type: 'MFA_INVALID';
|
|
41
|
+
} | {
|
|
42
|
+
type: 'LOST_DEVICE';
|
|
43
|
+
} | {
|
|
44
|
+
type: 'RECOVERY_CODE_VERIFYING';
|
|
45
|
+
} | {
|
|
46
|
+
type: 'RECOVERY_CODE_INVALID';
|
|
47
|
+
} | {
|
|
48
|
+
type: 'LOST_RECOVERY_CODE';
|
|
49
|
+
} | {
|
|
50
|
+
type: 'LOGIN_SUCCESS';
|
|
51
|
+
} | {
|
|
52
|
+
type: 'RESET_EMAIL_ERROR';
|
|
53
|
+
} | {
|
|
54
|
+
type: 'LOGIN_ERROR';
|
|
55
|
+
error: string;
|
|
56
|
+
} | {
|
|
57
|
+
type: 'SELECT_PROVIDER';
|
|
58
|
+
provider: OAuthProvider;
|
|
59
|
+
} | {
|
|
60
|
+
type: 'GO_TO_ADDITIONAL_PROVIDERS';
|
|
61
|
+
} | {
|
|
62
|
+
type: 'SELECT_WALLET';
|
|
63
|
+
provider: ThirdPartyWallet;
|
|
64
|
+
} | {
|
|
65
|
+
type: 'WALLETCONNECT_CONNECTED';
|
|
66
|
+
address: string;
|
|
67
|
+
};
|
|
68
|
+
export declare const initialState: WidgetState;
|
|
69
|
+
export declare function widgetReducer(state: WidgetState, action: WidgetAction): WidgetState;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface ClientTheme {
|
|
2
|
+
appName: string;
|
|
3
|
+
assetUri: string;
|
|
4
|
+
textColor: `#${string}`;
|
|
5
|
+
buttonColor: `#${string}` | undefined;
|
|
6
|
+
buttonRadius: string | undefined;
|
|
7
|
+
containerRadius: string | undefined;
|
|
8
|
+
backgroundColor: `#${string}` | undefined;
|
|
9
|
+
neutralColor: `#${string}` | undefined;
|
|
10
|
+
themeColor: 'auto' | 'dark' | 'light';
|
|
11
|
+
customBrandingType: 1 | 2;
|
|
12
|
+
isDefaultAsset?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface ClientConfig {
|
|
15
|
+
clientId: string;
|
|
16
|
+
theme: ClientTheme;
|
|
17
|
+
authProviders: {
|
|
18
|
+
primary: string[];
|
|
19
|
+
secondary: string[];
|
|
20
|
+
social: string[];
|
|
21
|
+
};
|
|
22
|
+
}
|