@web3auth/modal 9.5.4 → 10.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dist/lib.cjs/node_modules/style-inject/dist/style-inject.es.js +28 -0
  2. package/dist/lib.cjs/{config.js → packages/modal/src/config.js} +14 -14
  3. package/dist/lib.cjs/{index.js → packages/modal/src/index.js} +7 -0
  4. package/dist/lib.cjs/{modalManager.js → packages/modal/src/modalManager.js} +92 -92
  5. package/dist/lib.cjs/packages/modal/src/react/Web3AuthProvider.js +15 -0
  6. package/dist/lib.cjs/packages/modal/src/react/context/Web3AuthInnerContext.js +225 -0
  7. package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3Auth.js +15 -0
  8. package/dist/lib.cjs/packages/modal/src/react/index.js +12 -0
  9. package/dist/lib.cjs/packages/modal/src/ui/assets/arrow-left-dark.svg.js +7 -0
  10. package/dist/lib.cjs/packages/modal/src/ui/assets/arrow-left-light.svg.js +7 -0
  11. package/dist/lib.cjs/packages/modal/src/ui/assets/x-dark.svg.js +7 -0
  12. package/dist/lib.cjs/packages/modal/src/ui/assets/x-light.svg.js +7 -0
  13. package/dist/lib.cjs/packages/modal/src/ui/components/AdapterLoader.js +108 -0
  14. package/dist/lib.cjs/packages/modal/src/ui/components/Button/Button.js +34 -0
  15. package/dist/lib.cjs/packages/modal/src/ui/components/Button/styles.css.js +8 -0
  16. package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallet/ExternalWalletButton.js +44 -0
  17. package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallet/ExternalWalletConnect.js +67 -0
  18. package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallet/ExternalWalletDetails.js +34 -0
  19. package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallet/ExternalWalletHeader.js +46 -0
  20. package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallet/ExternalWalletInstall.js +167 -0
  21. package/dist/lib.cjs/packages/modal/src/ui/components/ExternalWallets.js +273 -0
  22. package/dist/lib.cjs/packages/modal/src/ui/components/Footer.js +20 -0
  23. package/dist/lib.cjs/packages/modal/src/ui/components/Header.js +81 -0
  24. package/dist/lib.cjs/packages/modal/src/ui/components/Icon.js +73 -0
  25. package/dist/lib.cjs/packages/modal/src/ui/components/Image.js +51 -0
  26. package/dist/lib.cjs/packages/modal/src/ui/components/Loader.js +59 -0
  27. package/dist/lib.cjs/packages/modal/src/ui/components/Modal.js +244 -0
  28. package/dist/lib.cjs/packages/modal/src/ui/components/SelfCustodyViaWeb3Auth.js +30 -0
  29. package/dist/lib.cjs/packages/modal/src/ui/components/SocialLoginPasswordless.js +141 -0
  30. package/dist/lib.cjs/packages/modal/src/ui/components/SocialLogins.js +148 -0
  31. package/dist/lib.cjs/packages/modal/src/ui/components/WalletConnect.js +84 -0
  32. package/dist/lib.cjs/packages/modal/src/ui/config.js +17 -0
  33. package/dist/lib.cjs/packages/modal/src/ui/context/ThemeContext.js +9 -0
  34. package/dist/lib.cjs/packages/modal/src/ui/css/web3auth.css.js +8 -0
  35. package/dist/lib.cjs/packages/modal/src/ui/i18n/dutch.json.js +84 -0
  36. package/dist/lib.cjs/packages/modal/src/ui/i18n/english.json.js +84 -0
  37. package/dist/lib.cjs/packages/modal/src/ui/i18n/french.json.js +82 -0
  38. package/dist/lib.cjs/packages/modal/src/ui/i18n/german.json.js +84 -0
  39. package/dist/lib.cjs/packages/modal/src/ui/i18n/japanese.json.js +84 -0
  40. package/dist/lib.cjs/packages/modal/src/ui/i18n/korean.json.js +84 -0
  41. package/dist/lib.cjs/packages/modal/src/ui/i18n/mandarin.json.js +84 -0
  42. package/dist/lib.cjs/packages/modal/src/ui/i18n/portuguese.json.js +84 -0
  43. package/dist/lib.cjs/packages/modal/src/ui/i18n/spanish.json.js +84 -0
  44. package/dist/lib.cjs/packages/modal/src/ui/i18n/turkish.json.js +84 -0
  45. package/dist/lib.cjs/packages/modal/src/ui/interfaces.js +26 -0
  46. package/dist/lib.cjs/packages/modal/src/ui/localeImport.js +25 -0
  47. package/dist/lib.cjs/packages/modal/src/ui/loginModal.js +309 -0
  48. package/dist/lib.cjs/packages/modal/src/ui/utils.js +71 -0
  49. package/dist/lib.cjs/packages/modal/src/vue/Web3AuthProvider.js +234 -0
  50. package/dist/lib.cjs/packages/modal/src/vue/composables/useWeb3Auth.js +12 -0
  51. package/dist/lib.cjs/packages/modal/src/vue/index.js +9 -0
  52. package/dist/lib.esm/node_modules/style-inject/dist/style-inject.es.js +26 -0
  53. package/dist/lib.esm/{config.js → packages/modal/src/config.js} +1 -1
  54. package/dist/lib.esm/{index.js → packages/modal/src/index.js} +1 -0
  55. package/dist/lib.esm/{modalManager.js → packages/modal/src/modalManager.js} +5 -5
  56. package/dist/lib.esm/packages/modal/src/react/Web3AuthProvider.js +13 -0
  57. package/dist/lib.esm/packages/modal/src/react/context/Web3AuthInnerContext.js +222 -0
  58. package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3Auth.js +13 -0
  59. package/dist/lib.esm/packages/modal/src/react/index.js +3 -0
  60. package/dist/lib.esm/packages/modal/src/ui/assets/arrow-left-dark.svg.js +5 -0
  61. package/dist/lib.esm/packages/modal/src/ui/assets/arrow-left-light.svg.js +5 -0
  62. package/dist/lib.esm/packages/modal/src/ui/assets/x-dark.svg.js +5 -0
  63. package/dist/lib.esm/packages/modal/src/ui/assets/x-light.svg.js +5 -0
  64. package/dist/lib.esm/packages/modal/src/ui/components/AdapterLoader.js +106 -0
  65. package/dist/lib.esm/packages/modal/src/ui/components/Button/Button.js +32 -0
  66. package/dist/lib.esm/packages/modal/src/ui/components/Button/styles.css.js +6 -0
  67. package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallet/ExternalWalletButton.js +42 -0
  68. package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallet/ExternalWalletConnect.js +65 -0
  69. package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallet/ExternalWalletDetails.js +32 -0
  70. package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallet/ExternalWalletHeader.js +44 -0
  71. package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallet/ExternalWalletInstall.js +165 -0
  72. package/dist/lib.esm/packages/modal/src/ui/components/ExternalWallets.js +271 -0
  73. package/dist/lib.esm/packages/modal/src/ui/components/Footer.js +18 -0
  74. package/dist/lib.esm/packages/modal/src/ui/components/Header.js +79 -0
  75. package/dist/lib.esm/packages/modal/src/ui/components/Icon.js +71 -0
  76. package/dist/lib.esm/packages/modal/src/ui/components/Image.js +49 -0
  77. package/dist/lib.esm/packages/modal/src/ui/components/Loader.js +57 -0
  78. package/dist/lib.esm/packages/modal/src/ui/components/Modal.js +242 -0
  79. package/dist/lib.esm/packages/modal/src/ui/components/SelfCustodyViaWeb3Auth.js +28 -0
  80. package/dist/lib.esm/packages/modal/src/ui/components/SocialLoginPasswordless.js +139 -0
  81. package/dist/lib.esm/packages/modal/src/ui/components/SocialLogins.js +146 -0
  82. package/dist/lib.esm/packages/modal/src/ui/components/WalletConnect.js +82 -0
  83. package/dist/lib.esm/packages/modal/src/ui/config.js +13 -0
  84. package/dist/lib.esm/packages/modal/src/ui/context/ThemeContext.js +7 -0
  85. package/dist/lib.esm/packages/modal/src/ui/css/web3auth.css.js +6 -0
  86. package/dist/lib.esm/packages/modal/src/ui/i18n/dutch.json.js +79 -0
  87. package/dist/lib.esm/packages/modal/src/ui/i18n/english.json.js +79 -0
  88. package/dist/lib.esm/packages/modal/src/ui/i18n/french.json.js +77 -0
  89. package/dist/lib.esm/packages/modal/src/ui/i18n/german.json.js +79 -0
  90. package/dist/lib.esm/packages/modal/src/ui/i18n/japanese.json.js +79 -0
  91. package/dist/lib.esm/packages/modal/src/ui/i18n/korean.json.js +79 -0
  92. package/dist/lib.esm/packages/modal/src/ui/i18n/mandarin.json.js +79 -0
  93. package/dist/lib.esm/packages/modal/src/ui/i18n/portuguese.json.js +79 -0
  94. package/dist/lib.esm/packages/modal/src/ui/i18n/spanish.json.js +79 -0
  95. package/dist/lib.esm/packages/modal/src/ui/i18n/turkish.json.js +79 -0
  96. package/dist/lib.esm/packages/modal/src/ui/interfaces.js +20 -0
  97. package/dist/lib.esm/packages/modal/src/ui/localeImport.js +23 -0
  98. package/dist/lib.esm/packages/modal/src/ui/loginModal.js +307 -0
  99. package/dist/lib.esm/packages/modal/src/ui/utils.js +65 -0
  100. package/dist/lib.esm/packages/modal/src/vue/Web3AuthProvider.js +232 -0
  101. package/dist/lib.esm/packages/modal/src/vue/composables/useWeb3Auth.js +10 -0
  102. package/dist/lib.esm/packages/modal/src/vue/index.js +2 -0
  103. package/dist/modal.cjs.js +5703 -420
  104. package/dist/modal.umd.min.js +1 -1
  105. package/dist/modal.umd.min.js.LICENSE.txt +54 -0
  106. package/dist/types/index.d.ts +1 -0
  107. package/dist/types/interface.d.ts +1 -1
  108. package/dist/types/modalManager.d.ts +2 -3
  109. package/dist/types/react/Web3AuthProvider.d.ts +3 -0
  110. package/dist/types/react/context/Web3AuthInnerContext.d.ts +4 -0
  111. package/dist/types/react/context/index.d.ts +1 -0
  112. package/dist/types/react/hooks/index.d.ts +1 -0
  113. package/dist/types/react/hooks/useWeb3Auth.d.ts +2 -0
  114. package/dist/types/react/index.d.ts +4 -0
  115. package/dist/types/react/interfaces.d.ts +18 -0
  116. package/dist/types/ui/components/AdapterLoader.d.ts +11 -0
  117. package/dist/types/ui/components/Button/Button.d.ts +16 -0
  118. package/dist/types/ui/components/Button/index.d.ts +1 -0
  119. package/dist/types/ui/components/ExternalWallet/ExternalWalletButton.d.ts +7 -0
  120. package/dist/types/ui/components/ExternalWallet/ExternalWalletConnect.d.ts +9 -0
  121. package/dist/types/ui/components/ExternalWallet/ExternalWalletDetails.d.ts +9 -0
  122. package/dist/types/ui/components/ExternalWallet/ExternalWalletHeader.d.ts +8 -0
  123. package/dist/types/ui/components/ExternalWallet/ExternalWalletInstall.d.ts +8 -0
  124. package/dist/types/ui/components/ExternalWallets.d.ts +17 -0
  125. package/dist/types/ui/components/Footer.d.ts +1 -0
  126. package/dist/types/ui/components/Header.d.ts +8 -0
  127. package/dist/types/ui/components/Icon.d.ts +9 -0
  128. package/dist/types/ui/components/Image.d.ts +12 -0
  129. package/dist/types/ui/components/Loader.d.ts +10 -0
  130. package/dist/types/ui/components/Modal.d.ts +16 -0
  131. package/dist/types/ui/components/SelfCustodyViaWeb3Auth.d.ts +1 -0
  132. package/dist/types/ui/components/SocialLoginPasswordless.d.ts +16 -0
  133. package/dist/types/ui/components/SocialLogins.d.ts +14 -0
  134. package/dist/types/ui/components/WalletConnect.d.ts +8 -0
  135. package/dist/types/ui/config.d.ts +4 -0
  136. package/dist/types/ui/context/ThemeContext.d.ts +3 -0
  137. package/dist/types/ui/helper/countryData.d.ts +7 -0
  138. package/dist/types/ui/i18n/index.d.ts +11 -0
  139. package/dist/types/ui/index.d.ts +4 -0
  140. package/dist/types/ui/interfaces.d.ts +106 -0
  141. package/dist/types/ui/localeImport.d.ts +3 -0
  142. package/dist/types/ui/loginModal.d.ts +27 -0
  143. package/dist/types/ui/utils.d.ts +12 -0
  144. package/dist/types/vue/Web3AuthProvider.d.ts +13 -0
  145. package/dist/types/vue/composables/index.d.ts +1 -0
  146. package/dist/types/vue/composables/useWeb3Auth.d.ts +2 -0
  147. package/dist/types/vue/index.d.ts +3 -0
  148. package/dist/types/vue/interfaces.d.ts +45 -0
  149. package/package.json +100 -43
  150. package/dist/modal.esm.js +0 -513
@@ -1,12 +1,12 @@
1
1
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
2
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
- import { LOGIN_PROVIDER, getAuthDefaultOptions, AuthAdapter } from '@web3auth/auth-adapter';
4
- import { cloneDeep, WalletInitializationError, fetchProjectConfig, log, fetchWalletRegistry, WALLET_ADAPTERS, ADAPTER_NAMES, getChainConfig, ADAPTER_CATEGORY, ADAPTER_STATUS, ADAPTER_EVENTS } from '@web3auth/base';
5
- import { CommonJRPCProvider } from '@web3auth/base-provider';
6
- import { Web3AuthNoModal } from '@web3auth/no-modal';
7
- import { getUserLanguage, LoginModal, capitalizeFirstLetter, getAdapterSocialLogins, LOGIN_MODAL_EVENTS, AUTH_PROVIDERS } from '@web3auth/ui';
3
+ import { Web3AuthNoModal, cloneDeep, WalletInitializationError, fetchProjectConfig, log, fetchWalletRegistry, WALLET_ADAPTERS, LOGIN_PROVIDER, ADAPTER_NAMES, getAuthDefaultOptions, getChainConfig, AuthAdapter, ADAPTER_CATEGORY, ADAPTER_STATUS, CommonJRPCProvider, ADAPTER_EVENTS } from '@web3auth/no-modal';
8
4
  import deepmerge from 'deepmerge';
9
5
  import { defaultOtherModalConfig, walletRegistryUrl } from './config.js';
6
+ import { capitalizeFirstLetter, AUTH_PROVIDERS } from './ui/config.js';
7
+ import { LOGIN_MODAL_EVENTS } from './ui/interfaces.js';
8
+ import { LoginModal } from './ui/loginModal.js';
9
+ import { getUserLanguage, getAdapterSocialLogins } from './ui/utils.js';
10
10
 
11
11
  class Web3Auth extends Web3AuthNoModal {
12
12
  constructor(options) {
@@ -0,0 +1,13 @@
1
+ import { createElement } from 'react';
2
+ import { Web3AuthInnerProvider } from './context/Web3AuthInnerContext.js';
3
+
4
+ function Web3AuthProvider({
5
+ config,
6
+ children
7
+ }) {
8
+ return /*#__PURE__*/createElement(Web3AuthInnerProvider, {
9
+ config
10
+ }, children);
11
+ }
12
+
13
+ export { Web3AuthProvider };
@@ -0,0 +1,222 @@
1
+ import { WalletInitializationError, WalletLoginError, ADAPTER_EVENTS, ADAPTER_STATUS } from '@web3auth/no-modal';
2
+ import { createContext, useState, useCallback, useEffect, useMemo, createElement } from 'react';
3
+ import { Web3Auth } from '../../modalManager.js';
4
+
5
+ const Web3AuthInnerContext = /*#__PURE__*/createContext(null);
6
+ function Web3AuthInnerProvider(params) {
7
+ const {
8
+ children,
9
+ config
10
+ } = params;
11
+ const [web3Auth, setWeb3Auth] = useState(null);
12
+ const [isConnecting, setIsConnecting] = useState(false);
13
+ const [isInitializing, setIsInitializing] = useState(false);
14
+ const [initError, setInitError] = useState(null);
15
+ const [connectError, setConnectError] = useState(null);
16
+ const [isConnected, setIsConnected] = useState(false);
17
+ const [provider, setProvider] = useState(null);
18
+ const [userInfo, setUserInfo] = useState(null);
19
+ const [isMFAEnabled, setIsMFAEnabled] = useState(false);
20
+ const [isInitialized, setIsInitialized] = useState(false);
21
+ const [status, setStatus] = useState(null);
22
+ const addPlugin = useCallback(plugin => {
23
+ if (!web3Auth) throw WalletInitializationError.notReady();
24
+ return web3Auth.addPlugin(plugin);
25
+ }, [web3Auth]);
26
+ const getPlugin = useCallback(name => {
27
+ if (!web3Auth) throw WalletInitializationError.notReady();
28
+ return web3Auth.getPlugin(name);
29
+ }, [web3Auth]);
30
+ const enableMFA = useCallback(async loginParams => {
31
+ if (!web3Auth) throw WalletInitializationError.notReady();
32
+ if (!isConnected) throw WalletLoginError.notConnectedError();
33
+ await web3Auth.enableMFA(loginParams);
34
+ const localUserInfo = await web3Auth.getUserInfo();
35
+ setUserInfo(localUserInfo);
36
+ setIsMFAEnabled(localUserInfo.isMfaEnabled || false);
37
+ }, [web3Auth, isConnected]);
38
+ const manageMFA = useCallback(async loginParams => {
39
+ if (!web3Auth) throw WalletInitializationError.notReady();
40
+ if (!isConnected) throw WalletLoginError.notConnectedError();
41
+ await web3Auth.manageMFA(loginParams);
42
+ }, [web3Auth, isConnected]);
43
+ const logout = useCallback(async (logoutParams = {
44
+ cleanup: false
45
+ }) => {
46
+ if (!web3Auth) throw WalletInitializationError.notReady();
47
+ if (!isConnected) throw WalletLoginError.notConnectedError();
48
+ await web3Auth.logout(logoutParams);
49
+ }, [web3Auth, isConnected]);
50
+ const connect = useCallback(async () => {
51
+ if (!web3Auth) throw WalletInitializationError.notReady();
52
+ try {
53
+ setConnectError(null);
54
+ setIsConnecting(true);
55
+ const localProvider = await web3Auth.connect();
56
+ return localProvider;
57
+ } catch (error) {
58
+ setConnectError(error);
59
+ throw error;
60
+ } finally {
61
+ setIsConnecting(false);
62
+ }
63
+ }, [web3Auth]);
64
+ const addAndSwitchChain = useCallback(async chainConfig => {
65
+ if (!web3Auth) throw WalletInitializationError.notReady();
66
+ await web3Auth.addChain(chainConfig);
67
+ await web3Auth.switchChain({
68
+ chainId: chainConfig.chainId
69
+ });
70
+ }, [web3Auth]);
71
+ const authenticateUser = useCallback(async () => {
72
+ if (!web3Auth) throw WalletInitializationError.notReady();
73
+ return web3Auth.authenticateUser();
74
+ }, [web3Auth]);
75
+ const addChain = useCallback(async chainConfig => {
76
+ if (!web3Auth) throw WalletInitializationError.notReady();
77
+ return web3Auth.addChain(chainConfig);
78
+ }, [web3Auth]);
79
+ const switchChain = useCallback(chainParams => {
80
+ if (!web3Auth) throw WalletInitializationError.notReady();
81
+ return web3Auth.switchChain(chainParams);
82
+ }, [web3Auth]);
83
+ useEffect(() => {
84
+ const resetHookState = () => {
85
+ setProvider(null);
86
+ setUserInfo(null);
87
+ setIsMFAEnabled(false);
88
+ setIsConnected(false);
89
+ setStatus(null);
90
+ };
91
+ resetHookState();
92
+ const {
93
+ web3AuthOptions,
94
+ adapters = [],
95
+ plugins = []
96
+ } = config;
97
+ const web3AuthInstance = new Web3Auth(web3AuthOptions);
98
+ if (adapters.length) adapters.map(adapter => web3AuthInstance.configureAdapter(adapter));
99
+ if (plugins.length) {
100
+ plugins.forEach(plugin => {
101
+ web3AuthInstance.addPlugin(plugin);
102
+ });
103
+ }
104
+ setWeb3Auth(web3AuthInstance);
105
+ }, [config]);
106
+ useEffect(() => {
107
+ async function init() {
108
+ try {
109
+ setInitError(null);
110
+ setIsInitializing(true);
111
+ const {
112
+ modalConfig,
113
+ hideWalletDiscovery
114
+ } = config;
115
+ if (modalConfig) {
116
+ await web3Auth.initModal({
117
+ modalConfig,
118
+ hideWalletDiscovery
119
+ });
120
+ } else {
121
+ await web3Auth.initModal();
122
+ }
123
+ } catch (error) {
124
+ setInitError(error);
125
+ } finally {
126
+ setIsInitializing(false);
127
+ }
128
+ }
129
+ if (web3Auth) init();
130
+ }, [web3Auth, config]);
131
+ useEffect(() => {
132
+ const addState = async () => {
133
+ setProvider(web3Auth.provider);
134
+ const userState = await web3Auth.getUserInfo();
135
+ setUserInfo(userState);
136
+ setIsMFAEnabled((userState === null || userState === void 0 ? void 0 : userState.isMfaEnabled) || false);
137
+ };
138
+ const resetState = () => {
139
+ setProvider(null);
140
+ setUserInfo(null);
141
+ setIsMFAEnabled(false);
142
+ };
143
+ if (web3Auth) {
144
+ if (isConnected) addState();else resetState();
145
+ }
146
+ }, [web3Auth, isConnected]);
147
+ useEffect(() => {
148
+ const notReadyListener = () => setStatus(web3Auth.status);
149
+ const readyListener = () => {
150
+ setStatus(web3Auth.status);
151
+ setIsInitialized(true);
152
+ };
153
+ const connectedListener = () => {
154
+ setStatus(web3Auth.status);
155
+ // we do this because of rehydration issues. status connected is fired first but web3auth sdk is not ready yet.
156
+ if (web3Auth.status === ADAPTER_STATUS.CONNECTED) {
157
+ setIsInitialized(true);
158
+ setIsConnected(true);
159
+ }
160
+ };
161
+ const disconnectedListener = () => {
162
+ setStatus(web3Auth.status);
163
+ setIsConnected(false);
164
+ };
165
+ const connectingListener = () => {
166
+ setStatus(web3Auth.status);
167
+ };
168
+ const errorListener = () => {
169
+ setStatus(ADAPTER_STATUS.ERRORED);
170
+ };
171
+ if (web3Auth) {
172
+ // web3Auth is initialized here.
173
+ setStatus(web3Auth.status);
174
+ web3Auth.on(ADAPTER_EVENTS.NOT_READY, notReadyListener);
175
+ web3Auth.on(ADAPTER_EVENTS.READY, readyListener);
176
+ web3Auth.on(ADAPTER_EVENTS.CONNECTED, connectedListener);
177
+ web3Auth.on(ADAPTER_EVENTS.DISCONNECTED, disconnectedListener);
178
+ web3Auth.on(ADAPTER_EVENTS.CONNECTING, connectingListener);
179
+ web3Auth.on(ADAPTER_EVENTS.ERRORED, errorListener);
180
+ }
181
+ return () => {
182
+ if (web3Auth) {
183
+ web3Auth.off(ADAPTER_EVENTS.NOT_READY, notReadyListener);
184
+ web3Auth.off(ADAPTER_EVENTS.READY, readyListener);
185
+ web3Auth.off(ADAPTER_EVENTS.CONNECTED, connectedListener);
186
+ web3Auth.off(ADAPTER_EVENTS.DISCONNECTED, disconnectedListener);
187
+ web3Auth.off(ADAPTER_EVENTS.CONNECTING, connectingListener);
188
+ web3Auth.off(ADAPTER_EVENTS.ERRORED, errorListener);
189
+ }
190
+ };
191
+ }, [web3Auth]);
192
+ const value = useMemo(() => {
193
+ return {
194
+ web3Auth,
195
+ isConnected,
196
+ isInitialized,
197
+ provider,
198
+ userInfo,
199
+ isMFAEnabled,
200
+ status,
201
+ connect,
202
+ enableMFA,
203
+ manageMFA,
204
+ logout,
205
+ addAndSwitchChain,
206
+ addChain,
207
+ addPlugin,
208
+ authenticateUser,
209
+ switchChain,
210
+ getPlugin,
211
+ isInitializing,
212
+ isConnecting,
213
+ initError,
214
+ connectError
215
+ };
216
+ }, [web3Auth, isConnected, isInitialized, provider, userInfo, isMFAEnabled, status, getPlugin, connect, enableMFA, manageMFA, logout, addAndSwitchChain, addChain, addPlugin, authenticateUser, switchChain, isInitializing, isConnecting, initError, connectError]);
217
+ return /*#__PURE__*/createElement(Web3AuthInnerContext.Provider, {
218
+ value
219
+ }, children);
220
+ }
221
+
222
+ export { Web3AuthInnerContext, Web3AuthInnerProvider };
@@ -0,0 +1,13 @@
1
+ import { WalletInitializationError } from '@web3auth/no-modal';
2
+ import { useContext } from 'react';
3
+ import { Web3AuthInnerContext } from '../context/Web3AuthInnerContext.js';
4
+
5
+ const useWeb3Auth = () => {
6
+ const context = useContext(Web3AuthInnerContext);
7
+ if (!context) {
8
+ throw WalletInitializationError.fromCode(1000, "usage of useWeb3Auth not wrapped in `Web3AuthContextProvider`.");
9
+ }
10
+ return context;
11
+ };
12
+
13
+ export { useWeb3Auth };
@@ -0,0 +1,3 @@
1
+ export { Web3AuthInnerContext, Web3AuthInnerProvider } from './context/Web3AuthInnerContext.js';
2
+ export { useWeb3Auth } from './hooks/useWeb3Auth.js';
3
+ export { Web3AuthProvider } from './Web3AuthProvider.js';
@@ -0,0 +1,5 @@
1
+ import 'react';
2
+
3
+ var ArrowDark = "data:image/svg+xml,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.33333%2015.8333L2.5%209.99992M2.5%209.99992L8.33333%204.16659M2.5%209.99992L17.5%209.99992%22%20stroke%3D%22%239CA3AF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E";
4
+
5
+ export { ArrowDark as default };
@@ -0,0 +1,5 @@
1
+ import 'react';
2
+
3
+ var ArrowLight = "data:image/svg+xml,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M8.33333%2015.8333L2.5%209.99995M2.5%209.99995L8.33333%204.16662M2.5%209.99995L17.5%209.99995%22%20stroke%3D%22%236B7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E";
4
+
5
+ export { ArrowLight as default };
@@ -0,0 +1,5 @@
1
+ import 'react';
2
+
3
+ var XDark = "data:image/svg+xml,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M0.292787%201.29299C0.480314%201.10552%200.734622%201.0002%200.999786%201.0002C1.26495%201.0002%201.51926%201.10552%201.70679%201.29299L5.99979%205.58599L10.2928%201.29299C10.385%201.19748%2010.4954%201.1213%2010.6174%201.06889C10.7394%201.01648%2010.8706%200.988893%2011.0034%200.987739C11.1362%200.986585%2011.2678%201.01189%2011.3907%201.06217C11.5136%201.11245%2011.6253%201.1867%2011.7192%201.28059C11.8131%201.37449%2011.8873%201.48614%2011.9376%201.60904C11.9879%201.73193%2012.0132%201.86361%2012.012%201.99639C12.0109%202.12917%2011.9833%202.26039%2011.9309%202.38239C11.8785%202.5044%2011.8023%202.61474%2011.7068%202.70699L7.41379%206.99999L11.7068%2011.293C11.8889%2011.4816%2011.9897%2011.7342%2011.9875%2011.9964C11.9852%2012.2586%2011.88%2012.5094%2011.6946%2012.6948C11.5092%2012.8802%2011.2584%2012.9854%2010.9962%2012.9877C10.734%2012.9899%2010.4814%2012.8891%2010.2928%2012.707L5.99979%208.41399L1.70679%2012.707C1.51818%2012.8891%201.26558%2012.9899%201.00339%2012.9877C0.741188%2012.9854%200.490376%2012.8802%200.304968%2012.6948C0.11956%2012.5094%200.0143906%2012.2586%200.0121121%2011.9964C0.00983372%2011.7342%200.110629%2011.4816%200.292787%2011.293L4.58579%206.99999L0.292787%202.70699C0.105316%202.51946%200%202.26515%200%201.99999C0%201.73483%200.105316%201.48052%200.292787%201.29299V1.29299Z%22%20fill%3D%22%239CA3AF%22%2F%3E%3C%2Fsvg%3E";
4
+
5
+ export { XDark as default };
@@ -0,0 +1,5 @@
1
+ import 'react';
2
+
3
+ var XLight = "data:image/svg+xml,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M0.292787%201.29299C0.480314%201.10552%200.734622%201.0002%200.999786%201.0002C1.26495%201.0002%201.51926%201.10552%201.70679%201.29299L5.99979%205.58599L10.2928%201.29299C10.385%201.19748%2010.4954%201.1213%2010.6174%201.06889C10.7394%201.01648%2010.8706%200.988893%2011.0034%200.987739C11.1362%200.986585%2011.2678%201.01189%2011.3907%201.06217C11.5136%201.11245%2011.6253%201.1867%2011.7192%201.28059C11.8131%201.37449%2011.8873%201.48614%2011.9376%201.60904C11.9879%201.73193%2012.0132%201.86361%2012.012%201.99639C12.0109%202.12917%2011.9833%202.26039%2011.9309%202.38239C11.8785%202.5044%2011.8023%202.61474%2011.7068%202.70699L7.41379%206.99999L11.7068%2011.293C11.8889%2011.4816%2011.9897%2011.7342%2011.9875%2011.9964C11.9852%2012.2586%2011.88%2012.5094%2011.6946%2012.6948C11.5092%2012.8802%2011.2584%2012.9854%2010.9962%2012.9877C10.734%2012.9899%2010.4814%2012.8891%2010.2928%2012.707L5.99979%208.41399L1.70679%2012.707C1.51818%2012.8891%201.26558%2012.9899%201.00339%2012.9877C0.741188%2012.9854%200.490376%2012.8802%200.304968%2012.6948C0.11956%2012.5094%200.0143906%2012.2586%200.0121121%2011.9964C0.00983372%2011.7342%200.110629%2011.4816%200.292787%2011.293L4.58579%206.99999L0.292787%202.70699C0.105316%202.51946%200%202.26515%200%201.99999C0%201.73483%200.105316%201.48052%200.292787%201.29299V1.29299Z%22%20fill%3D%22%236B7280%22%2F%3E%3C%2Fsvg%3E";
4
+
5
+ export { XLight as default };
@@ -0,0 +1,106 @@
1
+ import { log, ADAPTER_STATUS } from '@web3auth/no-modal';
2
+ import { useEffect } from 'react';
3
+ import { useTranslation } from 'react-i18next';
4
+ import { MODAL_STATUS } from '../interfaces.js';
5
+ import i18nInstance from '../localeImport.js';
6
+ import Icon from './Icon.js';
7
+ import Image from './Image.js';
8
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
9
+
10
+ const closeIcon = /*#__PURE__*/jsx(Icon, {
11
+ iconName: "x-light",
12
+ darkIconName: "close"
13
+ });
14
+ function DetailedLoader(props) {
15
+ const {
16
+ adapter,
17
+ appLogo,
18
+ message,
19
+ modalStatus,
20
+ adapterName,
21
+ onClose
22
+ } = props;
23
+ const providerIcon = adapter === "twitter" ? /*#__PURE__*/jsx(Image, {
24
+ imageId: "login-x-dark"
25
+ }) : /*#__PURE__*/jsx(Image, {
26
+ imageId: `login-${adapter}`,
27
+ height: "30",
28
+ width: "30"
29
+ });
30
+ const [t] = useTranslation(undefined, {
31
+ i18n: i18nInstance
32
+ });
33
+ useEffect(() => {
34
+ log.debug("adapter loader re-rendering");
35
+ if (modalStatus === MODAL_STATUS.CONNECTED) {
36
+ setTimeout(() => {
37
+ onClose();
38
+ }, 3000);
39
+ }
40
+ }, [modalStatus, onClose]);
41
+ return modalStatus !== MODAL_STATUS.INITIALIZED ? /*#__PURE__*/jsxs("div", {
42
+ className: "w3ajs-modal-loader w3a-modal__loader w3a--h-full",
43
+ children: [/*#__PURE__*/jsx("div", {
44
+ className: "w3a-modal__loader-content",
45
+ children: /*#__PURE__*/jsxs("div", {
46
+ className: "w3a-modal__loader-info",
47
+ children: [modalStatus === MODAL_STATUS.CONNECTING && /*#__PURE__*/jsxs(Fragment, {
48
+ children: [/*#__PURE__*/jsxs("div", {
49
+ className: "w3a-modal__loader-bridge",
50
+ children: [/*#__PURE__*/jsxs("div", {
51
+ className: "w3a-modal__loader-app-logo",
52
+ children: [/*#__PURE__*/jsx("img", {
53
+ src: appLogo,
54
+ className: "w3a--block dark:w3a--hidden w3a--h-10 w3a--w-10",
55
+ alt: ""
56
+ }), /*#__PURE__*/jsx("img", {
57
+ src: appLogo,
58
+ className: "w3a--hidden dark:w3a--block w3a--h-10 w3a--w-10",
59
+ alt: ""
60
+ })]
61
+ }), /*#__PURE__*/jsx("div", {
62
+ className: "w3a-modal__connector",
63
+ children: /*#__PURE__*/jsxs("div", {
64
+ className: "w3a-modal__connector-beat",
65
+ children: [/*#__PURE__*/jsx("div", {}), /*#__PURE__*/jsx("div", {}), /*#__PURE__*/jsx("div", {}), /*#__PURE__*/jsx("div", {}), /*#__PURE__*/jsx("div", {})]
66
+ })
67
+ }), /*#__PURE__*/jsx("div", {
68
+ className: "w3a-modal__loader-social-logo",
69
+ children: providerIcon
70
+ })]
71
+ }), /*#__PURE__*/jsxs("div", {
72
+ children: [/*#__PURE__*/jsx("div", {
73
+ className: "w3a-modal__loader-bridge-message",
74
+ children: t("modal.adapter-loader.message1", {
75
+ adapter: adapterName
76
+ })
77
+ }), /*#__PURE__*/jsx("div", {
78
+ className: "w3a-modal__loader-bridge-message",
79
+ children: t("modal.adapter-loader.message2", {
80
+ adapter: adapterName
81
+ })
82
+ })]
83
+ })]
84
+ }), modalStatus === ADAPTER_STATUS.CONNECTED && /*#__PURE__*/jsxs("div", {
85
+ className: "w3a--flex w3a--flex-col w3a--items-center",
86
+ children: [/*#__PURE__*/jsx(Icon, {
87
+ iconName: "connected"
88
+ }), /*#__PURE__*/jsx("div", {
89
+ className: "w3ajs-modal-loader__message w3a-spinner-message w3a--mt-4",
90
+ children: message
91
+ })]
92
+ }), modalStatus === ADAPTER_STATUS.ERRORED && /*#__PURE__*/jsx("div", {
93
+ className: "w3ajs-modal-loader__message w3a-spinner-message w3a-spinner-message--error",
94
+ children: message
95
+ })]
96
+ })
97
+ }), (modalStatus === ADAPTER_STATUS.CONNECTED || modalStatus === ADAPTER_STATUS.ERRORED) && /*#__PURE__*/jsx("button", {
98
+ type: "button",
99
+ className: "w3a-header__button w3ajs-loader-close-btn",
100
+ onClick: onClose,
101
+ children: closeIcon
102
+ })]
103
+ }) : null;
104
+ }
105
+
106
+ export { DetailedLoader as default };
@@ -0,0 +1,32 @@
1
+ import './styles.css.js';
2
+ import { memo } from 'react';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function Button(props) {
6
+ const {
7
+ variant = "primary",
8
+ onClick,
9
+ children,
10
+ title,
11
+ className,
12
+ style,
13
+ size = "md",
14
+ disabled,
15
+ type = "button"
16
+ } = props;
17
+ const sizeClass = `size-${size}`;
18
+ return /*#__PURE__*/jsx("button", {
19
+ disabled: disabled
20
+ // eslint-disable-next-line react/button-has-type
21
+ ,
22
+ type: type,
23
+ className: `t-btn t-btn-${variant} w3a--rounded-full ${sizeClass} ${className}`,
24
+ onClick: onClick,
25
+ title: title,
26
+ style: style,
27
+ children: children
28
+ });
29
+ }
30
+ var Button$1 = /*#__PURE__*/memo(Button);
31
+
32
+ export { Button$1 as default };
@@ -0,0 +1,6 @@
1
+ import styleInject from '../../../../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".w3a-parent-container #w3a-modal button.t-btn,.w3a-parent-container a.t-btn{align-items:center;display:flex;justify-content:center;transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:linear}.w3a-parent-container #w3a-modal button.t-btn:not(.t-btn-text):disabled,.w3a-parent-container a.t-btn:not(.t-btn-text):disabled{background-color:var(--app-gray-300);border-width:0;color:var(--app-gray-400)}.w3a-parent-container #w3a-modal button.t-btn:not(.t-btn-text):hover:disabled,.w3a-parent-container a.t-btn:not(.t-btn-text):hover:disabled{background-color:var(--app-gray-300);border-color:var(--app-gray-300);color:var(--app-gray-400)}.w3a-parent-container #w3a-modal button.t-btn:not(.t-btn-text):active:disabled,.w3a-parent-container a.t-btn:not(.t-btn-text):active:disabled{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-offset-width:0px;background-color:var(--app-gray-300);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);outline-width:0}.w3a-parent-container #w3a-modal button.t-btn:not(.t-btn-text):disabled:is(.w3a--dark *),.w3a-parent-container a.t-btn:not(.t-btn-text):disabled:is(.w3a--dark *){background-color:var(--app-gray-700);color:var(--app-gray-600)}.w3a-parent-container #w3a-modal .size-xs{font-size:.75rem;height:32px;line-height:1rem;padding:.5rem .75rem}.w3a-parent-container #w3a-modal .size-sm{font-size:.875rem;height:36px;line-height:1.25rem;padding:.5rem .75rem}.w3a-parent-container #w3a-modal .size-md{font-size:.875rem;height:42px;line-height:1.25rem;padding:.625rem 1.25rem}.w3a-parent-container #w3a-modal .size-lg{font-size:1rem;height:48px;line-height:1.5rem;padding:.75rem 1.25rem}.w3a-parent-container #w3a-modal .size-xl{font-size:1rem;height:52px;line-height:1.5rem;padding:.875rem 1rem}.w3a-parent-container #w3a-modal .t-btn.t-btn-primary{background-color:var(--app-primary-600);color:var(--app-on-primary);outline:2px solid #0000;outline-offset:2px}.w3a-parent-container #w3a-modal .t-btn.t-btn-primary:hover{background-color:var(--app-primary-700)}.w3a-parent-container #w3a-modal .t-btn.t-btn-primary:focus-visible{outline-color:var(--app-primary-600);outline-offset:1px;outline-style:solid;outline-width:1px}.w3a-parent-container #w3a-modal .t-btn.t-btn-primary:active{background-color:var(--app-primary-600);outline-color:var(--app-primary-600);outline-offset:1px;outline-style:solid;outline-width:1px}.w3a-parent-container #w3a-modal .t-btn.t-btn-primary:is(.w3a--dark *){background-color:var(--app-primary-500)}.w3a-parent-container #w3a-modal .t-btn.t-btn-primary:hover:is(.w3a--dark *){background-color:var(--app-primary-400)}.w3a-parent-container #w3a-modal .t-btn.t-btn-primary:focus-visible:is(.w3a--dark *){outline-color:var(--app-primary-500)}.w3a-parent-container #w3a-modal .t-btn.t-btn-primary:active:is(.w3a--dark *){background-color:var(--app-primary-500);outline-color:var(--app-primary-500)}.w3a-parent-container #w3a-modal .t-btn.t-btn-secondary{background-color:initial;border-color:var(--app-gray-500);border-width:1px;color:var(--app-gray-600);outline:2px solid #0000;outline-offset:2px}.w3a-parent-container #w3a-modal .t-btn.t-btn-secondary:hover{background-color:var(--app-gray-200)}.w3a-parent-container #w3a-modal .t-btn.t-btn-secondary:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--app-primary-600);background-color:initial;border-color:var(--app-primary-600);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.w3a-parent-container #w3a-modal .t-btn.t-btn-secondary:active{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--app-primary-600);background-color:initial;border-color:var(--app-primary-600);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.w3a-parent-container #w3a-modal .t-btn.t-btn-secondary:is(.w3a--dark *){border-color:var(--app-gray-300);color:var(--app-white)}.w3a-parent-container #w3a-modal .t-btn.t-btn-secondary:hover:is(.w3a--dark *){background-color:var(--app-gray-700)}.w3a-parent-container #w3a-modal .t-btn.t-btn-secondary:focus-visible:is(.w3a--dark *){--tw-ring-color:var(--app-primary-500);background-color:initial;border-color:var(--app-primary-500)}.w3a-parent-container #w3a-modal .t-btn.t-btn-secondary:active:is(.w3a--dark *){--tw-ring-color:var(--app-primary-500);background-color:initial;border-color:var(--app-primary-500)}.w3a-parent-container #w3a-modal .t-btn.t-btn-tertiary{background-color:var(--app-gray-200);color:var(--app-gray-800)}.w3a-parent-container #w3a-modal .t-btn.t-btn-tertiary:hover{background-color:var(--app-gray-300)}.w3a-parent-container #w3a-modal .t-btn.t-btn-tertiary:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--app-primary-600);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.w3a-parent-container #w3a-modal .t-btn.t-btn-tertiary:active{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--app-primary-600);background-color:var(--app-gray-200);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.w3a-parent-container #w3a-modal .t-btn.t-btn-tertiary:is(.w3a--dark *){background-color:var(--app-gray-500);color:var(--app-white)}.w3a-parent-container #w3a-modal .t-btn.t-btn-tertiary:hover:is(.w3a--dark *){background-color:var(--app-gray-400)}.w3a-parent-container #w3a-modal .t-btn.t-btn-tertiary:focus-visible:is(.w3a--dark *){--tw-ring-color:var(--app-primary-500)}.w3a-parent-container #w3a-modal .t-btn.t-btn-tertiary:active:is(.w3a--dark *){--tw-ring-color:var(--app-primary-500);background-color:var(--app-gray-500)}.w3a-parent-container #w3a-modal .t-btn.t-btn-text{color:var(--app-primary-600)}.w3a-parent-container #w3a-modal .t-btn.t-btn-text:hover{color:var(--app-primary-800);text-decoration-line:underline}.w3a-parent-container #w3a-modal .t-btn.t-btn-text:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--app-primary-600);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.w3a-parent-container #w3a-modal .t-btn.t-btn-text:active{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);--tw-ring-color:var(--app-primary-600);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);color:var(--app-primary-600)}.w3a-parent-container #w3a-modal .t-btn.t-btn-text:disabled{color:var(--app-gray-400);text-decoration-line:none}.w3a-parent-container #w3a-modal .t-btn.t-btn-text:is(.w3a--dark *){color:var(--app-primary-500)}.w3a-parent-container #w3a-modal .t-btn.t-btn-text:hover:is(.w3a--dark *){color:var(--app-primary-400)}.w3a-parent-container #w3a-modal .t-btn.t-btn-text:disabled:is(.w3a--dark *){color:var(--app-gray-600)}.w3a-parent-container #w3a-modal .btn-link{text-decoration-line:none}.w3a-parent-container #w3a-modal button.t-btn:hover>.hover-icon{display:block;transition:display .15s;transition-timing-function:cubic-bezier(0,.54,.63,.99)}.w3a-parent-container #w3a-modal button.t-btn:hover>.image-icon{display:none;transition:display .15s;transition-timing-function:cubic-bezier(0,.54,.63,.99)}";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
@@ -0,0 +1,42 @@
1
+ import { useTranslation } from 'react-i18next';
2
+ import i18nInstance from '../../localeImport.js';
3
+ import Button from '../Button/Button.js';
4
+ import Image from '../Image.js';
5
+ import { jsxs, jsx } from 'react/jsx-runtime';
6
+
7
+ function ExternalWalletButton(props) {
8
+ const {
9
+ button,
10
+ handleWalletClick
11
+ } = props;
12
+ const [t] = useTranslation(undefined, {
13
+ i18n: i18nInstance
14
+ });
15
+ return /*#__PURE__*/jsxs(Button, {
16
+ variant: "tertiary",
17
+ type: "button",
18
+ onClick: () => handleWalletClick(button),
19
+ className: "w3a--w-full w3a--rounded-xl w3a--size-xl !w3a--justify-between w3a--items-center wallet-btn",
20
+ title: button.name,
21
+ children: [/*#__PURE__*/jsxs("div", {
22
+ className: "w3a--flex w3a--items-center",
23
+ children: [/*#__PURE__*/jsx(Image, {
24
+ imageId: `login-${button.name}`,
25
+ hoverImageId: `login-${button.name}`,
26
+ fallbackImageId: "wallet",
27
+ height: "24",
28
+ width: "24",
29
+ isButton: true,
30
+ extension: button.imgExtension
31
+ }), /*#__PURE__*/jsx("p", {
32
+ className: "w3a--ml-2 w3a--text-left w3a--text-sm",
33
+ children: button.displayName
34
+ })]
35
+ }), button.hasInjectedWallet && /*#__PURE__*/jsx("span", {
36
+ className: "w3a--inline-flex w3a--items-center w3a--rounded-lg w3a--px-2 w3a--py-1 w3a--text-xs w3a--font-medium w3a--bg-app-primary-100 w3a--text-app-primary-800",
37
+ children: t("modal.external.installed")
38
+ })]
39
+ });
40
+ }
41
+
42
+ export { ExternalWalletButton as default };
@@ -0,0 +1,65 @@
1
+ import { useState } from 'react';
2
+ import { useTranslation } from 'react-i18next';
3
+ import { MODAL_STATUS } from '../../interfaces.js';
4
+ import i18nInstance from '../../localeImport.js';
5
+ import Button from '../Button/Button.js';
6
+ import Loader from '../Loader.js';
7
+ import WalletConnect from '../WalletConnect.js';
8
+ import ExternalWalletHeader from './ExternalWalletHeader.js';
9
+ import ExternalWalletInstall from './ExternalWalletInstall.js';
10
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
11
+
12
+ function ExternalWalletConnect(props) {
13
+ const {
14
+ connectButton,
15
+ walletConnectUri,
16
+ goBack,
17
+ closeModal
18
+ } = props;
19
+ const [isWalletDownloadShown, setIsWalletDownloadShown] = useState(false);
20
+ const [t] = useTranslation(undefined, {
21
+ i18n: i18nInstance
22
+ });
23
+ const showWalletDownload = () => {
24
+ setIsWalletDownloadShown(true);
25
+ };
26
+ return /*#__PURE__*/jsx("div", {
27
+ children: isWalletDownloadShown ? /*#__PURE__*/jsx("div", {
28
+ children: /*#__PURE__*/jsx(ExternalWalletInstall, {
29
+ connectButton: connectButton,
30
+ goBack: () => setIsWalletDownloadShown(false),
31
+ closeModal: closeModal
32
+ })
33
+ }) : /*#__PURE__*/jsxs(Fragment, {
34
+ children: [/*#__PURE__*/jsx(ExternalWalletHeader, {
35
+ title: connectButton.displayName,
36
+ goBack: goBack,
37
+ closeModal: closeModal
38
+ }), !walletConnectUri ? /*#__PURE__*/jsx(Loader, {
39
+ modalStatus: MODAL_STATUS.CONNECTING,
40
+ canEmit: false
41
+ }) : /*#__PURE__*/jsx(WalletConnect, {
42
+ walletConnectUri: walletConnectUri,
43
+ logoImage: `https://images.web3auth.io/login-${connectButton.name}.${connectButton.imgExtension}`,
44
+ primaryColor: connectButton.walletRegistryItem.primaryColor
45
+ }), connectButton.hasInstallLinks && /*#__PURE__*/jsxs("div", {
46
+ className: "w3a--flex w3a--flex-row w3a--items-center w3a--justify-between w3a--gap-2 w3a--bg-app-gray-50 dark:w3a--bg-app-gray-700 w3a--text-app-gray-900 dark:w3a--text-app-white w3a--px-3 w3a--py-2 w3a--rounded-xl",
47
+ children: [/*#__PURE__*/jsxs("span", {
48
+ className: "w3a--text-sm w3a--truncate w3a--flex-grow-0",
49
+ children: [t("modal.external.dont-have"), " ", /*#__PURE__*/jsx("span", {
50
+ children: connectButton.displayName
51
+ }), "?"]
52
+ }), /*#__PURE__*/jsx(Button, {
53
+ type: "button",
54
+ variant: "secondary",
55
+ size: "xs",
56
+ className: "w3a--flex-grow-1 w3a--flex-shrink-0",
57
+ onClick: showWalletDownload,
58
+ children: t("modal.external.get-wallet")
59
+ })]
60
+ })]
61
+ })
62
+ });
63
+ }
64
+
65
+ export { ExternalWalletConnect as default };
@@ -0,0 +1,32 @@
1
+ import ExternalWalletConnect from './ExternalWalletConnect.js';
2
+ import ExternalWalletInstall from './ExternalWalletInstall.js';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function ExternalWalletDetail(props) {
6
+ const {
7
+ connectButton,
8
+ walletConnectUri,
9
+ goBack,
10
+ closeModal
11
+ } = props;
12
+ return /*#__PURE__*/jsx("div", {
13
+ children: connectButton.hasWalletConnect ?
14
+ /*#__PURE__*/
15
+ // Wallet Connect
16
+ jsx(ExternalWalletConnect, {
17
+ connectButton: connectButton,
18
+ walletConnectUri: walletConnectUri,
19
+ goBack: goBack,
20
+ closeModal: closeModal
21
+ }) :
22
+ /*#__PURE__*/
23
+ // Download wallets
24
+ jsx(ExternalWalletInstall, {
25
+ connectButton: connectButton,
26
+ goBack: goBack,
27
+ closeModal: closeModal
28
+ })
29
+ });
30
+ }
31
+
32
+ export { ExternalWalletDetail as default };
@@ -0,0 +1,44 @@
1
+ import Icon from '../Icon.js';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+
4
+ function ExternalWalletHeader(props) {
5
+ const {
6
+ title,
7
+ goBack,
8
+ closeModal,
9
+ disableBackButton
10
+ } = props;
11
+ return /*#__PURE__*/jsxs("div", {
12
+ className: "w3a--flex w3a--flex-row w3a--justify-center w3a--items-center w3a--gap-1",
13
+ children: [/*#__PURE__*/jsx("div", {
14
+ className: "w3a--flex-grow-1 w3a--flex-shrink-0 w3a--items-center w3a--justify-start w3a--mr-auto",
15
+ children: !disableBackButton && /*#__PURE__*/jsx("button", {
16
+ type: "button",
17
+ className: "w3a-external-back w3ajs-external-back",
18
+ onClick: goBack,
19
+ children: /*#__PURE__*/jsx(Icon, {
20
+ iconName: "arrow-left-light",
21
+ darkIconName: "arrow-left-dark",
22
+ width: "16",
23
+ height: "16"
24
+ })
25
+ })
26
+ }), /*#__PURE__*/jsx("div", {
27
+ className: "w3a-header__title w3a--flex-grow-0 w3a--flex-shrink w3a--truncate w3a--mr-6",
28
+ children: title
29
+ }), /*#__PURE__*/jsx("div", {
30
+ className: "w3a--flex-grow-1 w3a--flex-shrink-0 w3a--items-center w3a--justify-end w3a--ml-auto",
31
+ children: /*#__PURE__*/jsx("button", {
32
+ type: "button",
33
+ onClick: closeModal,
34
+ className: "w3a-header__button_wallet w3ajs-close-btn",
35
+ children: /*#__PURE__*/jsx(Icon, {
36
+ iconName: "x-light",
37
+ darkIconName: "x-dark"
38
+ })
39
+ })
40
+ })]
41
+ });
42
+ }
43
+
44
+ export { ExternalWalletHeader as default };