@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.
Files changed (76) hide show
  1. package/LICENSE +177 -0
  2. package/dist/es/index.mjs +1 -0
  3. package/dist/es/types/MagicWidget.d.ts +3 -0
  4. package/dist/es/types/components/EmailInput.d.ts +2 -0
  5. package/dist/es/types/components/Pending.d.ts +11 -0
  6. package/dist/es/types/components/ProviderButton.d.ts +9 -0
  7. package/dist/es/types/components/SocialProviders.d.ts +10 -0
  8. package/dist/es/types/components/WidgetHeader.d.ts +7 -0
  9. package/dist/es/types/constants.d.ts +3 -0
  10. package/dist/es/types/context/EmailLoginContext.d.ts +24 -0
  11. package/dist/es/types/context/WidgetConfigContext.d.ts +22 -0
  12. package/dist/es/types/context/index.d.ts +2 -0
  13. package/dist/es/types/extension.d.ts +190 -0
  14. package/dist/es/types/hooks/useMediaQuery.d.ts +1 -0
  15. package/dist/es/types/hooks/useOAuthLogin.d.ts +9 -0
  16. package/dist/es/types/hooks/useSiweLogin.d.ts +8 -0
  17. package/dist/es/types/hooks/useWalletConnect.d.ts +11 -0
  18. package/dist/es/types/index.d.ts +3 -0
  19. package/dist/es/types/lib/provider-config.d.ts +2 -0
  20. package/dist/es/types/lib/validators.d.ts +2 -0
  21. package/dist/es/types/reducer.d.ts +69 -0
  22. package/dist/es/types/types/client-config.d.ts +22 -0
  23. package/dist/es/types/types.d.ts +168 -0
  24. package/dist/es/types/utils/device.d.ts +5 -0
  25. package/dist/es/types/views/AdditionalProvidersView.d.ts +7 -0
  26. package/dist/es/types/views/DeviceVerificationView.d.ts +8 -0
  27. package/dist/es/types/views/EmailOTPView.d.ts +8 -0
  28. package/dist/es/types/views/LoginSuccessView.d.ts +7 -0
  29. package/dist/es/types/views/LoginView.d.ts +7 -0
  30. package/dist/es/types/views/LostRecoveryCode.d.ts +5 -0
  31. package/dist/es/types/views/MfaView.d.ts +8 -0
  32. package/dist/es/types/views/OAuthPendingView.d.ts +9 -0
  33. package/dist/es/types/views/RecoveryCode.d.ts +8 -0
  34. package/dist/es/types/views/WalletConnectView.d.ts +7 -0
  35. package/dist/es/types/views/WalletPendingView.d.ts +10 -0
  36. package/dist/es/types/wagmi/config.d.ts +8 -0
  37. package/dist/es/types/wagmi/connectors.d.ts +9 -0
  38. package/dist/es/types/wagmi/walletconnect-provider.d.ts +3 -0
  39. package/dist/styles.css +1 -0
  40. package/dist/types/MagicWidget.d.ts +3 -0
  41. package/dist/types/components/EmailInput.d.ts +2 -0
  42. package/dist/types/components/Pending.d.ts +11 -0
  43. package/dist/types/components/ProviderButton.d.ts +9 -0
  44. package/dist/types/components/SocialProviders.d.ts +10 -0
  45. package/dist/types/components/WidgetHeader.d.ts +7 -0
  46. package/dist/types/constants.d.ts +3 -0
  47. package/dist/types/context/EmailLoginContext.d.ts +24 -0
  48. package/dist/types/context/WidgetConfigContext.d.ts +22 -0
  49. package/dist/types/context/index.d.ts +2 -0
  50. package/dist/types/extension.d.ts +190 -0
  51. package/dist/types/hooks/useMediaQuery.d.ts +1 -0
  52. package/dist/types/hooks/useOAuthLogin.d.ts +9 -0
  53. package/dist/types/hooks/useSiweLogin.d.ts +8 -0
  54. package/dist/types/hooks/useWalletConnect.d.ts +11 -0
  55. package/dist/types/index.d.ts +3 -0
  56. package/dist/types/lib/provider-config.d.ts +2 -0
  57. package/dist/types/lib/validators.d.ts +2 -0
  58. package/dist/types/reducer.d.ts +69 -0
  59. package/dist/types/types/client-config.d.ts +22 -0
  60. package/dist/types/types.d.ts +168 -0
  61. package/dist/types/utils/device.d.ts +5 -0
  62. package/dist/types/views/AdditionalProvidersView.d.ts +7 -0
  63. package/dist/types/views/DeviceVerificationView.d.ts +8 -0
  64. package/dist/types/views/EmailOTPView.d.ts +8 -0
  65. package/dist/types/views/LoginSuccessView.d.ts +7 -0
  66. package/dist/types/views/LoginView.d.ts +7 -0
  67. package/dist/types/views/LostRecoveryCode.d.ts +5 -0
  68. package/dist/types/views/MfaView.d.ts +8 -0
  69. package/dist/types/views/OAuthPendingView.d.ts +9 -0
  70. package/dist/types/views/RecoveryCode.d.ts +8 -0
  71. package/dist/types/views/WalletConnectView.d.ts +7 -0
  72. package/dist/types/views/WalletPendingView.d.ts +10 -0
  73. package/dist/types/wagmi/config.d.ts +8 -0
  74. package/dist/types/wagmi/connectors.d.ts +9 -0
  75. package/dist/types/wagmi/walletconnect-provider.d.ts +3 -0
  76. 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;
@@ -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,3 @@
1
+ import React from 'react';
2
+ import { MagicWidgetProps } from './types';
3
+ export declare function MagicWidget({ displayMode, isOpen, onClose, closeOnSuccess, closeOnClickOutside, wallets, onSuccess, onError, onReady, }: MagicWidgetProps): React.JSX.Element | null;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const EmailInput: () => React.JSX.Element;
@@ -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,7 @@
1
+ import React from 'react';
2
+ type WidgetHeaderProps = {
3
+ showHeaderText?: boolean;
4
+ onPressBack?: () => void;
5
+ };
6
+ export default function WidgetHeader({ showHeaderText, onPressBack }: WidgetHeaderProps): React.JSX.Element;
7
+ export {};
@@ -0,0 +1,3 @@
1
+ import { OAuthProvider, ProviderMetadata, ThirdPartyWallet } from './types';
2
+ export declare const WALLET_METADATA: Record<ThirdPartyWallet, ProviderMetadata>;
3
+ export declare const OAUTH_METADATA: Record<OAuthProvider, ProviderMetadata>;
@@ -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,2 @@
1
+ export { EmailLoginProvider, useEmailLogin } from './EmailLoginContext';
2
+ export { WidgetConfigProvider, useWidgetConfig } from './WidgetConfigContext';
@@ -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,2 @@
1
+ import { LoginProvider, ProviderConfig } from '../types';
2
+ export declare function getProviderConfig(provider: LoginProvider): ProviderConfig;
@@ -0,0 +1,2 @@
1
+ export declare function isSanctionedEmail(email: string): boolean;
2
+ export declare function isValidEmail(source?: string | null): boolean;
@@ -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
+ }