@web3auth/modal 10.0.0-beta.1 → 10.0.0-beta.11

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 (262) hide show
  1. package/README.md +2 -2
  2. package/dist/lib.cjs/packages/modal/src/config.js +3 -3
  3. package/dist/lib.cjs/packages/modal/src/index.js +1 -0
  4. package/dist/lib.cjs/packages/modal/src/modalManager.js +125 -75
  5. package/dist/lib.cjs/packages/modal/src/react/Web3AuthProvider.js +8 -2
  6. package/dist/lib.cjs/packages/modal/src/react/context/WalletServicesInnerContext.js +72 -0
  7. package/dist/lib.cjs/packages/modal/src/react/context/Web3AuthInnerContext.js +40 -96
  8. package/dist/lib.cjs/packages/modal/src/react/hooks/useCheckout.js +34 -0
  9. package/dist/lib.cjs/packages/modal/src/react/hooks/useEnableMFA.js +30 -0
  10. package/dist/lib.cjs/packages/modal/src/react/hooks/useIdentityToken.js +42 -0
  11. package/dist/lib.cjs/packages/modal/src/react/hooks/useManageMFA.js +30 -0
  12. package/dist/lib.cjs/packages/modal/src/react/hooks/useSwap.js +34 -0
  13. package/dist/lib.cjs/packages/modal/src/react/hooks/useSwitchChain.js +32 -0
  14. package/dist/lib.cjs/packages/modal/src/react/hooks/useWalletConnectScanner.js +34 -0
  15. package/dist/lib.cjs/packages/modal/src/react/hooks/useWalletServicesPlugin.js +13 -0
  16. package/dist/lib.cjs/packages/modal/src/react/hooks/useWalletUI.js +34 -0
  17. package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3Auth.js +21 -8
  18. package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3AuthConnect.js +63 -0
  19. package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3AuthDisconnect.js +30 -0
  20. package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3AuthInner.js +15 -0
  21. package/dist/lib.cjs/packages/modal/src/react/hooks/useWeb3AuthUser.js +50 -0
  22. package/dist/lib.cjs/packages/modal/src/react/index.js +24 -3
  23. package/dist/lib.cjs/packages/modal/src/react/solana/hooks/useSignAndSendTransaction.js +36 -0
  24. package/dist/lib.cjs/packages/modal/src/react/solana/hooks/useSignMessage.js +37 -0
  25. package/dist/lib.cjs/packages/modal/src/react/solana/hooks/useSignTransaction.js +36 -0
  26. package/dist/lib.cjs/packages/modal/src/react/solana/hooks/useSolanaWallet.js +43 -0
  27. package/dist/lib.cjs/packages/modal/src/react/solana/index.js +13 -0
  28. package/dist/lib.cjs/packages/modal/src/react/wagmi/constants.js +16 -0
  29. package/dist/lib.cjs/packages/modal/src/react/wagmi/index.js +7 -0
  30. package/dist/lib.cjs/packages/modal/src/react/wagmi/provider.js +195 -0
  31. package/dist/lib.cjs/packages/modal/src/ui/components/BottomSheet/BottomSheet.js +3 -3
  32. package/dist/lib.cjs/packages/modal/src/ui/components/Button/ButtonSocial/ButtonSocial.js +1 -1
  33. package/dist/lib.cjs/packages/modal/src/ui/components/Button/ButtonWallet/ButtonWallet.js +12 -4
  34. package/dist/lib.cjs/packages/modal/src/ui/components/ConnectWallet/ConnectWallet.js +27 -21
  35. package/dist/lib.cjs/packages/modal/src/ui/components/ConnectWallet/ConnectWalletChainFilter/ConnectWalletChainFilter.js +7 -4
  36. package/dist/lib.cjs/packages/modal/src/ui/components/ConnectWallet/ConnectWalletChainNamespaceSelect/ConnectWalletChainNamespaceSelect.js +3 -2
  37. package/dist/lib.cjs/packages/modal/src/ui/components/ConnectWallet/ConnectWalletHeader/ConnectWalletHeader.js +1 -1
  38. package/dist/lib.cjs/packages/modal/src/ui/components/ConnectWallet/ConnectWalletList/ConnectWalletList.js +13 -5
  39. package/dist/lib.cjs/packages/modal/src/ui/components/ConnectWallet/ConnectWalletQrCode/ConnectWalletQrCode.js +14 -8
  40. package/dist/lib.cjs/packages/modal/src/ui/components/Footer/Footer.js +6 -9
  41. package/dist/lib.cjs/packages/modal/src/ui/components/Image/Image.js +5 -4
  42. package/dist/lib.cjs/packages/modal/src/ui/components/Loader/Loader.js +1 -1
  43. package/dist/lib.cjs/packages/modal/src/ui/components/Login/Login.js +80 -42
  44. package/dist/lib.cjs/packages/modal/src/ui/components/Login/LoginOtp/LoginOtp.js +12 -9
  45. package/dist/lib.cjs/packages/modal/src/ui/components/Login/LoginPasswordLess/LoginPasswordLess.js +10 -5
  46. package/dist/lib.cjs/packages/modal/src/ui/components/Modal/Modal.js +1 -1
  47. package/dist/lib.cjs/packages/modal/src/ui/components/PulseLoader/PulseLoader.js +3 -3
  48. package/dist/lib.cjs/packages/modal/src/ui/components/Root/Root.js +185 -128
  49. package/dist/lib.cjs/packages/modal/src/ui/components/SocialLoginList/SocialLoginList.js +15 -34
  50. package/dist/lib.cjs/packages/modal/src/ui/components/Widget/Widget.js +16 -3
  51. package/dist/lib.cjs/packages/modal/src/ui/config.js +2 -1
  52. package/dist/lib.cjs/packages/modal/src/ui/constants.js +30 -0
  53. package/dist/lib.cjs/packages/modal/src/ui/context/RootContext.js +12 -3
  54. package/dist/lib.cjs/packages/modal/src/ui/css/index.css.js +1 -1
  55. package/dist/lib.cjs/packages/modal/src/ui/handlers/AbstractHandler.js +6 -2
  56. package/dist/lib.cjs/packages/modal/src/ui/handlers/EmailPasswordlessHandler.js +7 -4
  57. package/dist/lib.cjs/packages/modal/src/ui/handlers/SmsPasswordlessHandler.js +2 -2
  58. package/dist/lib.cjs/packages/modal/src/ui/i18n/dutch.json.js +32 -31
  59. package/dist/lib.cjs/packages/modal/src/ui/i18n/english.json.js +32 -31
  60. package/dist/lib.cjs/packages/modal/src/ui/i18n/french.json.js +32 -31
  61. package/dist/lib.cjs/packages/modal/src/ui/i18n/german.json.js +32 -31
  62. package/dist/lib.cjs/packages/modal/src/ui/i18n/japanese.json.js +32 -31
  63. package/dist/lib.cjs/packages/modal/src/ui/i18n/korean.json.js +32 -31
  64. package/dist/lib.cjs/packages/modal/src/ui/i18n/mandarin.json.js +32 -31
  65. package/dist/lib.cjs/packages/modal/src/ui/i18n/portuguese.json.js +32 -31
  66. package/dist/lib.cjs/packages/modal/src/ui/i18n/spanish.json.js +32 -31
  67. package/dist/lib.cjs/packages/modal/src/ui/i18n/turkish.json.js +32 -31
  68. package/dist/lib.cjs/packages/modal/src/ui/loginModal.js +31 -19
  69. package/dist/lib.cjs/packages/modal/src/ui/utils.js +16 -4
  70. package/dist/lib.cjs/packages/modal/src/vue/WalletServicesInnerProvider.js +70 -0
  71. package/dist/lib.cjs/packages/modal/src/vue/Web3AuthProvider.js +38 -78
  72. package/dist/lib.cjs/packages/modal/src/vue/composables/useCheckout.js +34 -0
  73. package/dist/lib.cjs/packages/modal/src/vue/composables/useEnableMFA.js +32 -0
  74. package/dist/lib.cjs/packages/modal/src/vue/composables/useIdentityToken.js +44 -0
  75. package/dist/lib.cjs/packages/modal/src/vue/composables/useManageMFA.js +32 -0
  76. package/dist/lib.cjs/packages/modal/src/vue/composables/useSwap.js +34 -0
  77. package/dist/lib.cjs/packages/modal/src/vue/composables/useSwitchChain.js +32 -0
  78. package/dist/lib.cjs/packages/modal/src/vue/composables/useWalletConnectScanner.js +34 -0
  79. package/dist/lib.cjs/packages/modal/src/vue/composables/useWalletServicesPlugin.js +13 -0
  80. package/dist/lib.cjs/packages/modal/src/vue/composables/useWalletUI.js +34 -0
  81. package/dist/lib.cjs/packages/modal/src/vue/composables/useWeb3Auth.js +2 -4
  82. package/dist/lib.cjs/packages/modal/src/vue/composables/useWeb3AuthConnect.js +66 -0
  83. package/dist/lib.cjs/packages/modal/src/vue/composables/useWeb3AuthDisconnect.js +32 -0
  84. package/dist/lib.cjs/packages/modal/src/vue/composables/useWeb3AuthInner.js +12 -0
  85. package/dist/lib.cjs/packages/modal/src/vue/composables/useWeb3AuthUser.js +53 -0
  86. package/dist/lib.cjs/packages/modal/src/vue/index.js +24 -0
  87. package/dist/lib.cjs/packages/modal/src/vue/solana/composables/useSignAndSendTransaction.js +36 -0
  88. package/dist/lib.cjs/packages/modal/src/vue/solana/composables/useSignMessage.js +38 -0
  89. package/dist/lib.cjs/packages/modal/src/vue/solana/composables/useSignTransaction.js +36 -0
  90. package/dist/lib.cjs/packages/modal/src/vue/solana/composables/useSolanaWallet.js +53 -0
  91. package/dist/lib.cjs/packages/modal/src/vue/solana/index.js +13 -0
  92. package/dist/lib.cjs/packages/modal/src/vue/wagmi/constants.js +16 -0
  93. package/dist/lib.cjs/packages/modal/src/vue/wagmi/index.js +7 -0
  94. package/dist/lib.cjs/packages/modal/src/vue/wagmi/provider.js +233 -0
  95. package/dist/lib.cjs/types/config.d.ts +1 -0
  96. package/dist/lib.cjs/types/interface.d.ts +2 -3
  97. package/dist/lib.cjs/types/modalManager.d.ts +7 -3
  98. package/dist/lib.cjs/types/react/Web3AuthProvider.d.ts +1 -1
  99. package/dist/lib.cjs/types/react/context/WalletServicesInnerContext.d.ts +6 -0
  100. package/dist/lib.cjs/types/react/hooks/index.d.ts +13 -1
  101. package/dist/lib.cjs/types/react/hooks/useCheckout.d.ts +8 -0
  102. package/dist/lib.cjs/types/react/hooks/useEnableMFA.d.ts +7 -0
  103. package/dist/lib.cjs/types/react/hooks/useIdentityToken.d.ts +13 -0
  104. package/dist/lib.cjs/types/react/hooks/useManageMFA.d.ts +7 -0
  105. package/dist/lib.cjs/types/react/hooks/useSwap.d.ts +8 -0
  106. package/dist/lib.cjs/types/react/hooks/useSwitchChain.d.ts +7 -0
  107. package/dist/lib.cjs/types/react/hooks/useWalletConnectScanner.d.ts +8 -0
  108. package/dist/lib.cjs/types/react/hooks/useWalletServicesPlugin.d.ts +2 -0
  109. package/dist/lib.cjs/types/react/hooks/useWalletUI.d.ts +8 -0
  110. package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +2 -1
  111. package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +10 -0
  112. package/dist/lib.cjs/types/react/hooks/useWeb3AuthDisconnect.d.ts +9 -0
  113. package/dist/lib.cjs/types/react/hooks/useWeb3AuthInner.d.ts +2 -0
  114. package/dist/lib.cjs/types/react/hooks/useWeb3AuthUser.d.ts +9 -0
  115. package/dist/lib.cjs/types/react/index.d.ts +0 -1
  116. package/dist/lib.cjs/types/react/interfaces.d.ts +7 -2
  117. package/dist/lib.cjs/types/react/solana/hooks/index.d.ts +4 -0
  118. package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +8 -0
  119. package/dist/lib.cjs/types/react/solana/hooks/useSignMessage.d.ts +8 -0
  120. package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +13 -0
  121. package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +8 -0
  122. package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
  123. package/dist/lib.cjs/types/react/wagmi/constants.d.ts +43 -0
  124. package/dist/lib.cjs/types/react/wagmi/index.d.ts +2 -0
  125. package/dist/lib.cjs/types/react/wagmi/interface.d.ts +4 -0
  126. package/dist/lib.cjs/types/react/wagmi/provider.d.ts +3 -0
  127. package/dist/lib.cjs/types/ui/components/ConnectWallet/ConnectWallet.type.d.ts +1 -0
  128. package/dist/lib.cjs/types/ui/components/ConnectWallet/ConnectWalletQrCode/ConnectWalletQrCode.type.d.ts +3 -4
  129. package/dist/lib.cjs/types/ui/components/Login/Login.type.d.ts +2 -2
  130. package/dist/lib.cjs/types/ui/components/Login/LoginOtp/LoginOtp.type.d.ts +3 -2
  131. package/dist/lib.cjs/types/ui/config.d.ts +1 -1
  132. package/dist/lib.cjs/types/ui/constants.d.ts +4 -0
  133. package/dist/lib.cjs/types/ui/context/RootContext.d.ts +12 -3
  134. package/dist/lib.cjs/types/ui/handlers/AbstractHandler.d.ts +3 -2
  135. package/dist/lib.cjs/types/ui/handlers/EmailPasswordlessHandler.d.ts +3 -1
  136. package/dist/lib.cjs/types/ui/interfaces.d.ts +15 -7
  137. package/dist/lib.cjs/types/ui/loginModal.d.ts +1 -1
  138. package/dist/lib.cjs/types/ui/utils.d.ts +2 -2
  139. package/dist/lib.cjs/types/vue/WalletServicesInnerProvider.d.ts +1 -0
  140. package/dist/lib.cjs/types/vue/composables/index.d.ts +12 -0
  141. package/dist/lib.cjs/types/vue/composables/useCheckout.d.ts +9 -0
  142. package/dist/lib.cjs/types/vue/composables/useEnableMFA.d.ts +8 -0
  143. package/dist/lib.cjs/types/vue/composables/useIdentityToken.d.ts +9 -0
  144. package/dist/lib.cjs/types/vue/composables/useManageMFA.d.ts +8 -0
  145. package/dist/lib.cjs/types/vue/composables/useSwap.d.ts +9 -0
  146. package/dist/lib.cjs/types/vue/composables/useSwitchChain.d.ts +10 -0
  147. package/dist/lib.cjs/types/vue/composables/useWalletConnectScanner.d.ts +9 -0
  148. package/dist/lib.cjs/types/vue/composables/useWalletServicesPlugin.d.ts +2 -0
  149. package/dist/lib.cjs/types/vue/composables/useWalletUI.d.ts +9 -0
  150. package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +3 -2
  151. package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +11 -0
  152. package/dist/lib.cjs/types/vue/composables/useWeb3AuthDisconnect.d.ts +10 -0
  153. package/dist/lib.cjs/types/vue/composables/useWeb3AuthInner.d.ts +2 -0
  154. package/dist/lib.cjs/types/vue/composables/useWeb3AuthUser.d.ts +10 -0
  155. package/dist/lib.cjs/types/vue/interfaces.d.ts +10 -18
  156. package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +4 -0
  157. package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +9 -0
  158. package/dist/lib.cjs/types/vue/solana/composables/useSignMessage.d.ts +9 -0
  159. package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +9 -0
  160. package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +9 -0
  161. package/dist/lib.cjs/types/vue/solana/index.d.ts +1 -0
  162. package/dist/lib.cjs/types/vue/wagmi/constants.d.ts +43 -0
  163. package/dist/lib.cjs/types/vue/wagmi/index.d.ts +2 -0
  164. package/dist/lib.cjs/types/vue/wagmi/interface.d.ts +4 -0
  165. package/dist/lib.cjs/types/vue/wagmi/provider.d.ts +17 -0
  166. package/dist/lib.esm/packages/modal/src/config.js +3 -4
  167. package/dist/lib.esm/packages/modal/src/index.js +1 -1
  168. package/dist/lib.esm/packages/modal/src/modalManager.js +136 -76
  169. package/dist/lib.esm/packages/modal/src/react/Web3AuthProvider.js +9 -3
  170. package/dist/lib.esm/packages/modal/src/react/context/WalletServicesInnerContext.js +69 -0
  171. package/dist/lib.esm/packages/modal/src/react/context/Web3AuthInnerContext.js +42 -98
  172. package/dist/lib.esm/packages/modal/src/react/hooks/useCheckout.js +32 -0
  173. package/dist/lib.esm/packages/modal/src/react/hooks/useEnableMFA.js +28 -0
  174. package/dist/lib.esm/packages/modal/src/react/hooks/useIdentityToken.js +40 -0
  175. package/dist/lib.esm/packages/modal/src/react/hooks/useManageMFA.js +28 -0
  176. package/dist/lib.esm/packages/modal/src/react/hooks/useSwap.js +32 -0
  177. package/dist/lib.esm/packages/modal/src/react/hooks/useSwitchChain.js +30 -0
  178. package/dist/lib.esm/packages/modal/src/react/hooks/useWalletConnectScanner.js +32 -0
  179. package/dist/lib.esm/packages/modal/src/react/hooks/useWalletServicesPlugin.js +11 -0
  180. package/dist/lib.esm/packages/modal/src/react/hooks/useWalletUI.js +32 -0
  181. package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3Auth.js +21 -8
  182. package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3AuthConnect.js +61 -0
  183. package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3AuthDisconnect.js +28 -0
  184. package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3AuthInner.js +13 -0
  185. package/dist/lib.esm/packages/modal/src/react/hooks/useWeb3AuthUser.js +48 -0
  186. package/dist/lib.esm/packages/modal/src/react/index.js +12 -1
  187. package/dist/lib.esm/packages/modal/src/react/solana/hooks/useSignAndSendTransaction.js +34 -0
  188. package/dist/lib.esm/packages/modal/src/react/solana/hooks/useSignMessage.js +35 -0
  189. package/dist/lib.esm/packages/modal/src/react/solana/hooks/useSignTransaction.js +34 -0
  190. package/dist/lib.esm/packages/modal/src/react/solana/hooks/useSolanaWallet.js +41 -0
  191. package/dist/lib.esm/packages/modal/src/react/solana/index.js +4 -0
  192. package/dist/lib.esm/packages/modal/src/react/wagmi/constants.js +14 -0
  193. package/dist/lib.esm/packages/modal/src/react/wagmi/index.js +1 -0
  194. package/dist/lib.esm/packages/modal/src/react/wagmi/provider.js +194 -0
  195. package/dist/lib.esm/packages/modal/src/ui/components/BottomSheet/BottomSheet.js +3 -3
  196. package/dist/lib.esm/packages/modal/src/ui/components/Button/ButtonSocial/ButtonSocial.js +1 -1
  197. package/dist/lib.esm/packages/modal/src/ui/components/Button/ButtonWallet/ButtonWallet.js +14 -6
  198. package/dist/lib.esm/packages/modal/src/ui/components/ConnectWallet/ConnectWallet.js +27 -21
  199. package/dist/lib.esm/packages/modal/src/ui/components/ConnectWallet/ConnectWalletChainFilter/ConnectWalletChainFilter.js +7 -4
  200. package/dist/lib.esm/packages/modal/src/ui/components/ConnectWallet/ConnectWalletChainNamespaceSelect/ConnectWalletChainNamespaceSelect.js +3 -2
  201. package/dist/lib.esm/packages/modal/src/ui/components/ConnectWallet/ConnectWalletHeader/ConnectWalletHeader.js +1 -1
  202. package/dist/lib.esm/packages/modal/src/ui/components/ConnectWallet/ConnectWalletList/ConnectWalletList.js +13 -5
  203. package/dist/lib.esm/packages/modal/src/ui/components/ConnectWallet/ConnectWalletQrCode/ConnectWalletQrCode.js +15 -9
  204. package/dist/lib.esm/packages/modal/src/ui/components/Footer/Footer.js +6 -9
  205. package/dist/lib.esm/packages/modal/src/ui/components/Image/Image.js +5 -4
  206. package/dist/lib.esm/packages/modal/src/ui/components/Loader/Loader.js +1 -1
  207. package/dist/lib.esm/packages/modal/src/ui/components/Login/Login.js +84 -42
  208. package/dist/lib.esm/packages/modal/src/ui/components/Login/LoginOtp/LoginOtp.js +12 -9
  209. package/dist/lib.esm/packages/modal/src/ui/components/Login/LoginPasswordLess/LoginPasswordLess.js +11 -6
  210. package/dist/lib.esm/packages/modal/src/ui/components/Modal/Modal.js +1 -1
  211. package/dist/lib.esm/packages/modal/src/ui/components/PulseLoader/PulseLoader.js +3 -3
  212. package/dist/lib.esm/packages/modal/src/ui/components/Root/Root.js +189 -131
  213. package/dist/lib.esm/packages/modal/src/ui/components/SocialLoginList/SocialLoginList.js +16 -35
  214. package/dist/lib.esm/packages/modal/src/ui/components/Widget/Widget.js +18 -4
  215. package/dist/lib.esm/packages/modal/src/ui/config.js +2 -1
  216. package/dist/lib.esm/packages/modal/src/ui/constants.js +28 -1
  217. package/dist/lib.esm/packages/modal/src/ui/context/RootContext.js +12 -3
  218. package/dist/lib.esm/packages/modal/src/ui/css/index.css.js +1 -1
  219. package/dist/lib.esm/packages/modal/src/ui/handlers/AbstractHandler.js +5 -1
  220. package/dist/lib.esm/packages/modal/src/ui/handlers/EmailPasswordlessHandler.js +7 -4
  221. package/dist/lib.esm/packages/modal/src/ui/handlers/SmsPasswordlessHandler.js +2 -2
  222. package/dist/lib.esm/packages/modal/src/ui/i18n/dutch.json.js +32 -31
  223. package/dist/lib.esm/packages/modal/src/ui/i18n/english.json.js +32 -31
  224. package/dist/lib.esm/packages/modal/src/ui/i18n/french.json.js +32 -31
  225. package/dist/lib.esm/packages/modal/src/ui/i18n/german.json.js +32 -31
  226. package/dist/lib.esm/packages/modal/src/ui/i18n/japanese.json.js +32 -31
  227. package/dist/lib.esm/packages/modal/src/ui/i18n/korean.json.js +32 -31
  228. package/dist/lib.esm/packages/modal/src/ui/i18n/mandarin.json.js +32 -31
  229. package/dist/lib.esm/packages/modal/src/ui/i18n/portuguese.json.js +32 -31
  230. package/dist/lib.esm/packages/modal/src/ui/i18n/spanish.json.js +32 -31
  231. package/dist/lib.esm/packages/modal/src/ui/i18n/turkish.json.js +32 -31
  232. package/dist/lib.esm/packages/modal/src/ui/loginModal.js +33 -21
  233. package/dist/lib.esm/packages/modal/src/ui/utils.js +16 -4
  234. package/dist/lib.esm/packages/modal/src/vue/WalletServicesInnerProvider.js +69 -0
  235. package/dist/lib.esm/packages/modal/src/vue/Web3AuthProvider.js +40 -79
  236. package/dist/lib.esm/packages/modal/src/vue/composables/useCheckout.js +32 -0
  237. package/dist/lib.esm/packages/modal/src/vue/composables/useEnableMFA.js +30 -0
  238. package/dist/lib.esm/packages/modal/src/vue/composables/useIdentityToken.js +42 -0
  239. package/dist/lib.esm/packages/modal/src/vue/composables/useManageMFA.js +30 -0
  240. package/dist/lib.esm/packages/modal/src/vue/composables/useSwap.js +32 -0
  241. package/dist/lib.esm/packages/modal/src/vue/composables/useSwitchChain.js +30 -0
  242. package/dist/lib.esm/packages/modal/src/vue/composables/useWalletConnectScanner.js +32 -0
  243. package/dist/lib.esm/packages/modal/src/vue/composables/useWalletServicesPlugin.js +11 -0
  244. package/dist/lib.esm/packages/modal/src/vue/composables/useWalletUI.js +32 -0
  245. package/dist/lib.esm/packages/modal/src/vue/composables/useWeb3Auth.js +2 -4
  246. package/dist/lib.esm/packages/modal/src/vue/composables/useWeb3AuthConnect.js +64 -0
  247. package/dist/lib.esm/packages/modal/src/vue/composables/useWeb3AuthDisconnect.js +30 -0
  248. package/dist/lib.esm/packages/modal/src/vue/composables/useWeb3AuthInner.js +10 -0
  249. package/dist/lib.esm/packages/modal/src/vue/composables/useWeb3AuthUser.js +51 -0
  250. package/dist/lib.esm/packages/modal/src/vue/index.js +12 -0
  251. package/dist/lib.esm/packages/modal/src/vue/solana/composables/useSignAndSendTransaction.js +34 -0
  252. package/dist/lib.esm/packages/modal/src/vue/solana/composables/useSignMessage.js +36 -0
  253. package/dist/lib.esm/packages/modal/src/vue/solana/composables/useSignTransaction.js +34 -0
  254. package/dist/lib.esm/packages/modal/src/vue/solana/composables/useSolanaWallet.js +51 -0
  255. package/dist/lib.esm/packages/modal/src/vue/solana/index.js +4 -0
  256. package/dist/lib.esm/packages/modal/src/vue/wagmi/constants.js +14 -0
  257. package/dist/lib.esm/packages/modal/src/vue/wagmi/index.js +1 -0
  258. package/dist/lib.esm/packages/modal/src/vue/wagmi/provider.js +234 -0
  259. package/dist/modal.umd.min.js +1 -1
  260. package/dist/modal.umd.min.js.LICENSE.txt +0 -26
  261. package/package.json +67 -19
  262. package/dist/lib.cjs/types/react/context/index.d.ts +0 -1
@@ -3,7 +3,7 @@ import { WALLET_CONNECTORS } from '@web3auth/no-modal';
3
3
  import Bowser from 'bowser';
4
4
  import { useContext, useState, useMemo, useCallback } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
6
- import { PAGES } from '../../constants.js';
6
+ import { DEFAULT_METAMASK_WALLET_REGISTRY_ITEM, PAGES, CONNECT_WALLET_PAGES } from '../../constants.js';
7
7
  import { RootContext } from '../../context/RootContext.js';
8
8
  import { ThemedContext } from '../../context/ThemeContext.js';
9
9
  import { TOAST_TYPE, MODAL_STATUS } from '../../interfaces.js';
@@ -12,6 +12,8 @@ import { getMobileInstallLink, cn, getOsName, getIcons, getBrowserExtensionUrl,
12
12
  import BottomSheet from '../BottomSheet/BottomSheet.js';
13
13
  import ConnectWallet from '../ConnectWallet/ConnectWallet.js';
14
14
  import ConnectWalletChainNamespaceSelect from '../ConnectWallet/ConnectWalletChainNamespaceSelect/ConnectWalletChainNamespaceSelect.js';
15
+ import ConnectWalletHeader from '../ConnectWallet/ConnectWalletHeader/ConnectWalletHeader.js';
16
+ import ConnectWalletQrCode from '../ConnectWallet/ConnectWalletQrCode/ConnectWalletQrCode.js';
15
17
  import Footer from '../Footer/Footer.js';
16
18
  import Image from '../Image/Image.js';
17
19
  import Loader from '../Loader/Loader.js';
@@ -20,7 +22,7 @@ import Toast from '../Toast/Toast.js';
20
22
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
21
23
 
22
24
  function Root(props) {
23
- var _bodyState$walletDeta2, _bodyState$walletDeta4;
25
+ var _bodyState$installLin2, _bodyState$installLin4, _bodyState$metamaskQr2, _bodyState$metamaskQr3, _bodyState$metamaskQr4, _bodyState$multiChain, _bodyState$installLin5;
24
26
  const {
25
27
  setModalState,
26
28
  modalState,
@@ -45,7 +47,6 @@ function Root(props) {
45
47
  const {
46
48
  logoAlignment = "center",
47
49
  buttonRadiusType = "pill",
48
- enableMainSocialLoginButton = false,
49
50
  privacyPolicy = "",
50
51
  tncLink = "",
51
52
  displayInstalledExternalWallets = true,
@@ -58,9 +59,18 @@ function Root(props) {
58
59
  isDark
59
60
  } = useContext(ThemedContext);
60
61
  const [bodyState, setBodyState] = useState({
61
- showWalletDetails: false,
62
- walletDetails: null,
63
- showMultiChainSelector: false
62
+ metamaskQrCode: {
63
+ show: false,
64
+ wallet: null
65
+ },
66
+ installLinks: {
67
+ show: false,
68
+ wallet: null
69
+ },
70
+ multiChainSelector: {
71
+ show: false,
72
+ wallet: null
73
+ }
64
74
  });
65
75
  const [toast, setToast] = useState({
66
76
  message: "",
@@ -83,6 +93,11 @@ function Root(props) {
83
93
 
84
94
  // Wallet Details
85
95
  const deviceDetails = useMemo(() => {
96
+ if (typeof window === "undefined") return {
97
+ platform: "mobile",
98
+ browser: "chrome",
99
+ os: "ios"
100
+ };
86
101
  const browserData = Bowser.getParser(window.navigator.userAgent);
87
102
  return {
88
103
  platform: browserData.getPlatformType(),
@@ -91,9 +106,9 @@ function Root(props) {
91
106
  };
92
107
  }, []);
93
108
  const mobileInstallLinks = useMemo(() => {
94
- var _bodyState$walletDeta;
109
+ var _bodyState$installLin;
95
110
  if (deviceDetails.platform === "desktop") return [];
96
- const installConfig = ((_bodyState$walletDeta = bodyState.walletDetails) === null || _bodyState$walletDeta === void 0 || (_bodyState$walletDeta = _bodyState$walletDeta.walletRegistryItem) === null || _bodyState$walletDeta === void 0 ? void 0 : _bodyState$walletDeta.app) || {};
111
+ const installConfig = ((_bodyState$installLin = bodyState.installLinks) === null || _bodyState$installLin === void 0 || (_bodyState$installLin = _bodyState$installLin.wallet) === null || _bodyState$installLin === void 0 || (_bodyState$installLin = _bodyState$installLin.walletRegistryItem) === null || _bodyState$installLin === void 0 ? void 0 : _bodyState$installLin.app) || {};
97
112
  const installLinks = Object.keys(installConfig).reduce((acc, osKey) => {
98
113
  if (!["android", "ios"].includes(osKey)) return acc;
99
114
  const appId = installConfig[osKey];
@@ -110,7 +125,7 @@ function Root(props) {
110
125
  target: "_blank",
111
126
  children: /*#__PURE__*/jsxs("button", {
112
127
  type: "button",
113
- className: cn("w3a--link-arrow w3a--flex w3a--w-full w3a--items-center w3a--justify-start w3a--gap-x-2 w3a--border w3a--border-app-gray-200 w3a--bg-app-gray-50 w3a--px-5 w3a--py-2.5 hover:w3a--translate-y-[0.5px] hover:w3a--border-app-gray-50 dark:w3a--border-app-gray-500 dark:w3a--bg-app-gray-800 dark:hover:w3a--border-app-gray-800", {
128
+ className: cn("w3a--group w3a--relative w3a--overflow-hidden w3a--h-11 w3a--flex w3a--w-full w3a--items-center w3a--justify-start w3a--gap-x-2 w3a--border w3a--border-app-gray-200 w3a--bg-app-gray-50 w3a--px-5 w3a--py-2.5 hover:w3a--translate-y-[0.5px] hover:w3a--border-app-gray-50 dark:w3a--border-app-gray-500 dark:w3a--bg-app-gray-800 dark:hover:w3a--border-app-gray-800", {
114
129
  "w3a--rounded-full": buttonRadiusType === "pill",
115
130
  "w3a--rounded-lg": buttonRadiusType === "rounded",
116
131
  "w3a--rounded-none": buttonRadiusType === "square"
@@ -129,24 +144,24 @@ function Root(props) {
129
144
  os: getOsName(osKey)
130
145
  })
131
146
  }), /*#__PURE__*/jsx("img", {
132
- id: "device-link-arrow",
133
- className: "w3a--icon-animation w3a--ml-auto",
147
+ id: "install-links-arrow",
148
+ className: "w3a--absolute w3a--right-4 w3a--top-1/2 -w3a--translate-x-6 -w3a--translate-y-1/2 w3a--opacity-0 w3a--transition-all w3a--duration-300 group-hover:w3a--translate-x-0 group-hover:w3a--opacity-100",
134
149
  src: getIcons(isDark ? "chevron-right-dark" : "chevron-right-light"),
135
150
  alt: "arrow"
136
151
  })]
137
152
  })
138
153
  })
139
- }));
154
+ }, appUrl));
140
155
  return acc;
141
156
  }, []);
142
157
  return installLinks;
143
- }, [(_bodyState$walletDeta2 = bodyState.walletDetails) === null || _bodyState$walletDeta2 === void 0 || (_bodyState$walletDeta2 = _bodyState$walletDeta2.walletRegistryItem) === null || _bodyState$walletDeta2 === void 0 ? void 0 : _bodyState$walletDeta2.app, deviceDetails.platform, isDark, t, buttonRadiusType]);
158
+ }, [(_bodyState$installLin2 = bodyState.installLinks) === null || _bodyState$installLin2 === void 0 || (_bodyState$installLin2 = _bodyState$installLin2.wallet) === null || _bodyState$installLin2 === void 0 || (_bodyState$installLin2 = _bodyState$installLin2.walletRegistryItem) === null || _bodyState$installLin2 === void 0 ? void 0 : _bodyState$installLin2.app, deviceDetails.platform, isDark, t, buttonRadiusType]);
144
159
  const desktopInstallLinks = useMemo(() => {
145
- var _bodyState$walletDeta3;
160
+ var _bodyState$installLin3;
146
161
  if (deviceDetails.platform !== "desktop") return [];
147
162
  // if browser is brave, use chrome extension
148
163
  const browserType = deviceDetails.browser === "brave" ? "chrome" : deviceDetails.browser;
149
- const browserExtensionConfig = ((_bodyState$walletDeta3 = bodyState.walletDetails) === null || _bodyState$walletDeta3 === void 0 || (_bodyState$walletDeta3 = _bodyState$walletDeta3.walletRegistryItem) === null || _bodyState$walletDeta3 === void 0 ? void 0 : _bodyState$walletDeta3.app) || {};
164
+ const browserExtensionConfig = ((_bodyState$installLin3 = bodyState.installLinks) === null || _bodyState$installLin3 === void 0 || (_bodyState$installLin3 = _bodyState$installLin3.wallet) === null || _bodyState$installLin3 === void 0 || (_bodyState$installLin3 = _bodyState$installLin3.walletRegistryItem) === null || _bodyState$installLin3 === void 0 ? void 0 : _bodyState$installLin3.app) || {};
150
165
  const extensionForCurrentBrowser = browserExtensionConfig.browser && browserExtensionConfig.browser.includes(browserType) ? browserExtensionConfig.browser : undefined;
151
166
  const browserExtensionId = browserExtensionConfig[browserType] || extensionForCurrentBrowser;
152
167
  const browserExtensionUrl = browserExtensionId ? getBrowserExtensionUrl(browserType, browserExtensionId) : null;
@@ -157,7 +172,7 @@ function Root(props) {
157
172
  target: "_blank",
158
173
  children: /*#__PURE__*/jsxs("button", {
159
174
  type: "button",
160
- className: cn("w3a--link-arrow w3a--flex w3a--w-full w3a--items-center w3a--justify-start w3a--gap-x-2 w3a--border w3a--border-app-gray-200 w3a--bg-app-gray-50 w3a--px-5 w3a--py-2.5 hover:w3a--translate-y-[0.5px] hover:w3a--border-app-gray-50 dark:w3a--border-app-gray-500 dark:w3a--bg-app-gray-800 dark:hover:w3a--border-app-gray-800", {
175
+ className: cn("w3a--group w3a--relative w3a--overflow-hidden w3a--h-11 w3a--flex w3a--w-full w3a--items-center w3a--justify-start w3a--gap-x-2 w3a--border w3a--border-app-gray-200 w3a--bg-app-gray-50 w3a--px-5 w3a--py-2.5 hover:w3a--translate-y-[0.5px] hover:w3a--border-app-gray-50 dark:w3a--border-app-gray-500 dark:w3a--bg-app-gray-800 dark:hover:w3a--border-app-gray-800", {
161
176
  "w3a--rounded-full": buttonRadiusType === "pill",
162
177
  "w3a--rounded-lg": buttonRadiusType === "rounded",
163
178
  "w3a--rounded-none": buttonRadiusType === "square"
@@ -176,40 +191,27 @@ function Root(props) {
176
191
  browser: getBrowserName(deviceDetails.browser)
177
192
  })
178
193
  }), /*#__PURE__*/jsx("img", {
179
- id: "device-link-arrow",
180
- className: "w3a--icon-animation w3a--ml-auto",
194
+ id: "install-links-arrow",
195
+ className: "w3a--absolute w3a--right-4 w3a--top-1/2 -w3a--translate-x-6 -w3a--translate-y-1/2 w3a--opacity-0 w3a--transition-all w3a--duration-300 group-hover:w3a--translate-x-0 group-hover:w3a--opacity-100",
181
196
  src: getIcons(isDark ? "chevron-right-dark" : "chevron-right-light"),
182
197
  alt: "arrow"
183
198
  })]
184
199
  })
185
200
  })
186
- }) : null;
201
+ }, browserExtensionUrl) : null;
187
202
  return [installLink, ...mobileInstallLinks];
188
- }, [(_bodyState$walletDeta4 = bodyState.walletDetails) === null || _bodyState$walletDeta4 === void 0 || (_bodyState$walletDeta4 = _bodyState$walletDeta4.walletRegistryItem) === null || _bodyState$walletDeta4 === void 0 ? void 0 : _bodyState$walletDeta4.app, deviceDetails.browser, deviceDetails.platform, isDark, mobileInstallLinks, buttonRadiusType, t]);
203
+ }, [(_bodyState$installLin4 = bodyState.installLinks) === null || _bodyState$installLin4 === void 0 || (_bodyState$installLin4 = _bodyState$installLin4.wallet) === null || _bodyState$installLin4 === void 0 || (_bodyState$installLin4 = _bodyState$installLin4.walletRegistryItem) === null || _bodyState$installLin4 === void 0 ? void 0 : _bodyState$installLin4.app, deviceDetails.browser, deviceDetails.platform, isDark, mobileInstallLinks, buttonRadiusType, t]);
189
204
 
190
205
  // External Wallets
191
-
192
206
  const config = useMemo(() => modalState.externalWalletsConfig, [modalState.externalWalletsConfig]);
193
207
  const connectorVisibilityMap = useMemo(() => {
194
208
  const canShowMap = {};
195
209
  Object.keys(config).forEach(connector => {
196
- const connectorConfig = config[connector];
197
- if (!connectorConfig.showOnModal) {
198
- canShowMap[connector] = false;
199
- return;
200
- }
201
- if (deviceDetails.platform === "desktop" && connectorConfig.showOnDesktop) {
202
- canShowMap[connector] = true;
203
- return;
204
- }
205
- if ((deviceDetails.platform === "mobile" || deviceDetails.platform === "tablet") && connectorConfig.showOnMobile) {
206
- canShowMap[connector] = true;
207
- return;
208
- }
209
- canShowMap[connector] = false;
210
+ var _config$connector;
211
+ canShowMap[connector] = Boolean((_config$connector = config[connector]) === null || _config$connector === void 0 ? void 0 : _config$connector.showOnModal);
210
212
  });
211
213
  return canShowMap;
212
- }, [deviceDetails, config]);
214
+ }, [config]);
213
215
  const isWalletConnectConnectorIncluded = useMemo(
214
216
  // WC is always included when enabling wallet discovery
215
217
  () => Object.keys((walletRegistry === null || walletRegistry === void 0 ? void 0 : walletRegistry.default) || {}).length > 0 || Object.keys((walletRegistry === null || walletRegistry === void 0 ? void 0 : walletRegistry.others) || {}).length > 0, [walletRegistry]);
@@ -225,20 +227,23 @@ function Root(props) {
225
227
  const deepLink = walletRegistryItem === null || walletRegistryItem === void 0 || (_walletRegistryItem$m2 = walletRegistryItem.mobile) === null || _walletRegistryItem$m2 === void 0 ? void 0 : _walletRegistryItem$m2.native;
226
228
  href = universalLink || deepLink;
227
229
  }
230
+
231
+ // determine the chain namespaces supported by the wallet
232
+ const connectorConfig = config[wallet];
233
+ const connectorChainNamespaces = (connectorConfig === null || connectorConfig === void 0 ? void 0 : connectorConfig.chainNamespaces) || [];
228
234
  const registryNamespaces = new Set((_walletRegistryItem$c = walletRegistryItem.chains) === null || _walletRegistryItem$c === void 0 ? void 0 : _walletRegistryItem$c.map(chain => chain.split(":")[0]));
229
235
  const injectedChainNamespaces = new Set((_walletRegistryItem$i = walletRegistryItem.injected) === null || _walletRegistryItem$i === void 0 ? void 0 : _walletRegistryItem$i.map(injected => injected.namespace));
230
- const availableChainNamespaces = chainNamespaces.filter(x => registryNamespaces.has(x) || injectedChainNamespaces.has(x));
231
- const connector = config[wallet];
236
+ const availableChainNamespaces = chainNamespaces.filter(x => registryNamespaces.has(x) || injectedChainNamespaces.has(x) || connectorChainNamespaces.includes(x));
232
237
  const button = {
233
238
  name: wallet,
234
239
  displayName: walletRegistryItem.name,
235
240
  href,
236
- hasInjectedWallet: (connector === null || connector === void 0 ? void 0 : connector.isInjected) || false,
241
+ hasInjectedWallet: (connectorConfig === null || connectorConfig === void 0 ? void 0 : connectorConfig.isInjected) || false,
237
242
  hasWalletConnect: isWalletConnectConnectorIncluded && ((_walletRegistryItem$w = walletRegistryItem.walletConnect) === null || _walletRegistryItem$w === void 0 || (_walletRegistryItem$w = _walletRegistryItem$w.sdks) === null || _walletRegistryItem$w === void 0 ? void 0 : _walletRegistryItem$w.includes("sign_v2")),
238
243
  hasInstallLinks: Object.keys(walletRegistryItem.app || {}).length > 0,
239
244
  walletRegistryItem,
240
245
  imgExtension: walletRegistryItem.imgExtension || "svg",
241
- icon: connector === null || connector === void 0 ? void 0 : connector.icon,
246
+ icon: connectorConfig === null || connectorConfig === void 0 ? void 0 : connectorConfig.icon,
242
247
  chainNamespaces: availableChainNamespaces
243
248
  };
244
249
  if (!button.hasInjectedWallet && !button.hasWalletConnect && !button.hasInstallLinks) return acc;
@@ -247,32 +252,46 @@ function Root(props) {
247
252
  return acc;
248
253
  }, []);
249
254
  }, [connectorVisibilityMap, chainNamespaces, config, deviceDetails.platform, isWalletConnectConnectorIncluded]);
255
+ const allButtons = useMemo(() => {
256
+ return [...generateWalletButtons(walletRegistry.default), ...generateWalletButtons(walletRegistry.others)];
257
+ }, [generateWalletButtons, walletRegistry.default, walletRegistry.others]);
250
258
  const installedConnectorButtons = useMemo(() => {
251
259
  const installedConnectors = Object.keys(config).reduce((acc, connector) => {
252
- var _walletRegistryItem$c2, _walletRegistryItem$i2, _config$connector, _config$connector2;
253
- if ([WALLET_CONNECTORS.WALLET_CONNECT_V2].includes(connector) || !connectorVisibilityMap[connector]) return acc;
254
-
255
- // determine chain namespaces based on wallet registry
256
- const walletRegistryItem = walletRegistry.default[connector];
257
- const registryNamespaces = new Set(walletRegistryItem === null || walletRegistryItem === void 0 || (_walletRegistryItem$c2 = walletRegistryItem.chains) === null || _walletRegistryItem$c2 === void 0 ? void 0 : _walletRegistryItem$c2.map(chain => chain.split(":")[0]));
258
- const injectedChainNamespaces = new Set(walletRegistryItem === null || walletRegistryItem === void 0 || (_walletRegistryItem$i2 = walletRegistryItem.injected) === null || _walletRegistryItem$i2 === void 0 ? void 0 : _walletRegistryItem$i2.map(injected => injected.namespace));
259
- const availableChainNamespaces = chainNamespaces.filter(x => registryNamespaces.has(x) || injectedChainNamespaces.has(x));
260
+ if (connector === WALLET_CONNECTORS.WALLET_CONNECT_V2 || !connectorVisibilityMap[connector]) return acc;
261
+ const connectorConfig = config[connector];
260
262
  acc.push({
261
263
  name: connector,
262
- displayName: config[connector].label || connector,
263
- hasInjectedWallet: ((_config$connector = config[connector]) === null || _config$connector === void 0 ? void 0 : _config$connector.isInjected) || false,
264
+ displayName: (connectorConfig === null || connectorConfig === void 0 ? void 0 : connectorConfig.label) || connector,
265
+ hasInjectedWallet: (connectorConfig === null || connectorConfig === void 0 ? void 0 : connectorConfig.isInjected) || false,
264
266
  hasWalletConnect: false,
265
267
  hasInstallLinks: false,
266
- walletRegistryItem,
267
- icon: (_config$connector2 = config[connector]) === null || _config$connector2 === void 0 ? void 0 : _config$connector2.icon,
268
- chainNamespaces: availableChainNamespaces
268
+ icon: connectorConfig === null || connectorConfig === void 0 ? void 0 : connectorConfig.icon,
269
+ chainNamespaces: (connectorConfig === null || connectorConfig === void 0 ? void 0 : connectorConfig.chainNamespaces) || []
269
270
  });
270
271
  return acc;
271
272
  }, []);
272
273
 
274
+ // if metamask connector is not injected, use the registry button instead to display QR code
275
+ const metamaskConnectorIdx = installedConnectors.findIndex(x => x.name === WALLET_CONNECTORS.METAMASK && !x.hasInjectedWallet);
276
+ if (metamaskConnectorIdx !== -1) {
277
+ const metamaskConnector = installedConnectors[metamaskConnectorIdx];
278
+ let metamaskRegistryButton = allButtons.find(button => button.name === WALLET_CONNECTORS.METAMASK);
279
+ if (!metamaskRegistryButton) {
280
+ // use the default metamask registry item if it's not in the registry
281
+ metamaskRegistryButton = generateWalletButtons({
282
+ [WALLET_CONNECTORS.METAMASK]: DEFAULT_METAMASK_WALLET_REGISTRY_ITEM
283
+ })[0];
284
+ }
285
+ if (metamaskRegistryButton) {
286
+ installedConnectors.splice(metamaskConnectorIdx, 1, _objectSpread(_objectSpread({}, metamaskRegistryButton), {}, {
287
+ chainNamespaces: metamaskConnector.chainNamespaces // preserve the chain namespaces
288
+ }));
289
+ }
290
+ }
291
+
273
292
  // make metamask the first button and limit the number of buttons
274
293
  return installedConnectors;
275
- }, [config, connectorVisibilityMap, walletRegistry.default, chainNamespaces]);
294
+ }, [allButtons, config, connectorVisibilityMap, generateWalletButtons]);
276
295
  const customConnectorButtons = useMemo(() => {
277
296
  return installedConnectorButtons.filter(button => !button.hasInjectedWallet);
278
297
  }, [installedConnectorButtons]);
@@ -282,9 +301,6 @@ function Root(props) {
282
301
  // make metamask the first button and limit the number of buttons
283
302
  return installedConnectorButtons.sort((a, _) => a.name === WALLET_CONNECTORS.METAMASK ? -1 : 1).slice(0, displayInstalledExternalWallets ? MAX_TOP_INSTALLED_CONNECTORS : 1);
284
303
  }, [installedConnectorButtons, displayInstalledExternalWallets]);
285
- const allButtons = useMemo(() => {
286
- return [...generateWalletButtons(walletRegistry.default), ...generateWalletButtons(walletRegistry.others)];
287
- }, [generateWalletButtons, walletRegistry.default, walletRegistry.others]);
288
304
  const totalExternalWallets = useMemo(() => {
289
305
  const uniqueWalletSet = new Set();
290
306
  return allButtons.concat(installedConnectorButtons).filter(button => {
@@ -300,17 +316,22 @@ function Root(props) {
300
316
  setIsWalletDetailsExpanded(prev => !prev);
301
317
  };
302
318
  const containerMaxHeight = useMemo(() => {
319
+ var _bodyState$metamaskQr;
303
320
  const isPrivacyPolicyOrTncLink = privacyPolicy || tncLink;
304
- const isEnableMainSocialLoginButton = enableMainSocialLoginButton;
305
321
 
306
322
  // Loader Screen
307
323
  if (modalState.status !== MODAL_STATUS.INITIALIZED) {
308
- return "642px";
324
+ return "530px";
309
325
  }
310
326
 
311
327
  // Wallet Details Screen
312
328
  if (isWalletDetailsExpanded) {
313
- return "588px";
329
+ return isPrivacyPolicyOrTncLink ? "640px" : "588px";
330
+ }
331
+
332
+ // MetaMask QR Code Screen
333
+ if ((_bodyState$metamaskQr = bodyState.metamaskQrCode) !== null && _bodyState$metamaskQr !== void 0 && _bodyState$metamaskQr.show) {
334
+ return isPrivacyPolicyOrTncLink ? "640px" : "588px";
314
335
  }
315
336
 
316
337
  // Connect Wallet Screen
@@ -325,29 +346,33 @@ function Root(props) {
325
346
 
326
347
  // Only MetaMask
327
348
  if (topInstalledConnectorButtons.length === 1) {
328
- if (isPrivacyPolicyOrTncLink) {
329
- return isEnableMainSocialLoginButton ? "600px" : "560px";
330
- }
331
- return isEnableMainSocialLoginButton ? "570px" : "530px";
349
+ return isPrivacyPolicyOrTncLink ? "560px" : "530px";
332
350
  }
333
351
 
334
352
  // More than 1 connector
335
353
  if (topInstalledConnectorButtons.length > 1) {
336
354
  const maxHeight = 500 + (topInstalledConnectorButtons.length - 1) * 58;
337
355
  if (isPrivacyPolicyOrTncLink) {
338
- return `${maxHeight + (isEnableMainSocialLoginButton ? 120 : 60)}px`;
356
+ return `${maxHeight + 60}px`;
339
357
  }
340
- return `${maxHeight + (isEnableMainSocialLoginButton ? 66 : 16)}px`;
358
+ return `${maxHeight + 16}px`;
341
359
  }
342
360
  // Default
343
361
  return "539px";
344
- }, [isWalletDetailsExpanded, modalState.currentPage, isSocialLoginsExpanded, installedConnectorButtons, privacyPolicy, tncLink, enableMainSocialLoginButton, modalState.status]);
362
+ }, [privacyPolicy, tncLink, modalState.status, modalState.currentPage, isWalletDetailsExpanded, (_bodyState$metamaskQr2 = bodyState.metamaskQrCode) === null || _bodyState$metamaskQr2 === void 0 ? void 0 : _bodyState$metamaskQr2.show, isSocialLoginsExpanded, topInstalledConnectorButtons.length]);
345
363
  const contextValue = useMemo(() => ({
346
364
  bodyState,
347
365
  setBodyState,
348
366
  toast,
349
367
  setToast
350
368
  }), [bodyState, setBodyState, toast, setToast]);
369
+ const isShowLoader = useMemo(() => {
370
+ // don't show loader if metamask is connecting and there is a connect uri
371
+ if (modalState.detailedLoaderConnector === WALLET_CONNECTORS.METAMASK && modalState.metamaskConnectUri) {
372
+ return false;
373
+ }
374
+ return modalState.status !== MODAL_STATUS.INITIALIZED;
375
+ }, [modalState.detailedLoaderConnector, modalState.metamaskConnectUri, modalState.status]);
351
376
  return /*#__PURE__*/jsx(RootContext.Provider, {
352
377
  value: contextValue,
353
378
  children: /*#__PURE__*/jsxs("div", {
@@ -361,92 +386,125 @@ function Root(props) {
361
386
  className: "w3a--modal-curtain"
362
387
  }), /*#__PURE__*/jsxs("div", {
363
388
  className: "w3a--relative w3a--flex w3a--h-full w3a--flex-1 w3a--flex-col w3a--p-6",
364
- children: [modalState.status !== MODAL_STATUS.INITIALIZED ? /*#__PURE__*/jsx(Loader, {
389
+ children: [isShowLoader ? /*#__PURE__*/jsx(Loader, {
365
390
  connector: modalState.detailedLoaderConnector,
366
391
  connectorName: modalState.detailedLoaderConnectorName,
367
392
  modalStatus: modalState.status,
368
393
  onClose: onCloseLoader,
369
394
  appLogo: appLogo
370
- }) : /*#__PURE__*/jsxs(Fragment, {
371
- children: [modalState.currentPage === PAGES.LOGIN && showExternalWalletPage && modalState.status === MODAL_STATUS.INITIALIZED && /*#__PURE__*/jsx(Login, {
372
- web3authClientId: modalState.web3authClientId,
373
- web3authNetwork: modalState.web3authNetwork,
374
- isModalVisible: modalState.modalVisibility,
375
- isDark: isDark,
376
- appLogo: appLogo,
377
- showPasswordLessInput: showPasswordLessInput,
378
- showExternalWalletButton: showExternalWalletButton,
379
- showExternalWalletCount: displayExternalWalletsCount,
380
- showInstalledExternalWallets: displayInstalledExternalWallets,
381
- socialLoginsConfig: socialLoginsConfig,
382
- areSocialLoginsVisible: areSocialLoginsVisible,
383
- isEmailPrimary: isEmailPrimary,
384
- isExternalPrimary: isExternalPrimary,
385
- installedExternalWalletConfig: topInstalledConnectorButtons,
386
- isEmailPasswordLessLoginVisible: isEmailPasswordLessLoginVisible,
387
- isSmsPasswordLessLoginVisible: isSmsPasswordLessLoginVisible,
388
- totalExternalWallets: totalExternalWallets,
389
- logoAlignment: logoAlignment,
390
- buttonRadius: buttonRadiusType,
391
- enableMainSocialLoginButton: enableMainSocialLoginButton,
392
- handleSocialLoginClick: handleSocialLoginClick,
393
- handleExternalWalletBtnClick: onExternalWalletBtnClick,
394
- handleSocialLoginHeight: handleSocialLoginHeight,
395
- handleExternalWalletClick: preHandleExternalWalletClick
396
- }), modalState.currentPage === PAGES.CONNECT_WALLET && !showExternalWalletPage && modalState.status === MODAL_STATUS.INITIALIZED && /*#__PURE__*/jsx(ConnectWallet, {
397
- isDark: isDark,
398
- walletConnectUri: modalState.walletConnectUri,
399
- config: modalState.externalWalletsConfig,
400
- walletRegistry: walletRegistry,
401
- allExternalButtons: allButtons,
402
- connectorVisibilityMap: connectorVisibilityMap,
403
- customConnectorButtons: customConnectorButtons,
404
- deviceDetails: {
405
- platform: deviceDetails.platform,
406
- browser: deviceDetails.browser,
407
- os: deviceDetails.os
408
- },
409
- chainNamespace: chainNamespaces,
410
- buttonRadius: buttonRadiusType,
411
- handleWalletDetailsHeight: handleWalletDetailsHeight,
412
- onBackClick: onBackClick,
413
- handleExternalWalletClick: preHandleExternalWalletClick
414
- })]
395
+ }) : /*#__PURE__*/jsx(Fragment, {
396
+ children: (_bodyState$metamaskQr3 = bodyState.metamaskQrCode) !== null && _bodyState$metamaskQr3 !== void 0 && _bodyState$metamaskQr3.show ? /*#__PURE__*/jsxs("div", {
397
+ className: "w3a--relative w3a--flex w3a--flex-1 w3a--flex-col w3a--gap-y-4",
398
+ children: [/*#__PURE__*/jsx(ConnectWalletHeader, {
399
+ onBackClick: () => setBodyState(_objectSpread(_objectSpread({}, bodyState), {}, {
400
+ metamaskQrCode: {
401
+ show: false,
402
+ wallet: null
403
+ }
404
+ })),
405
+ currentPage: CONNECT_WALLET_PAGES.SELECTED_WALLET,
406
+ selectedButton: bodyState.metamaskQrCode.wallet
407
+ }), /*#__PURE__*/jsx(ConnectWalletQrCode, {
408
+ qrCodeValue: modalState.metamaskConnectUri,
409
+ isDark: isDark,
410
+ selectedButton: bodyState.metamaskQrCode.wallet,
411
+ primaryColor: (_bodyState$metamaskQr4 = bodyState.metamaskQrCode.wallet.walletRegistryItem) === null || _bodyState$metamaskQr4 === void 0 ? void 0 : _bodyState$metamaskQr4.primaryColor,
412
+ logoImage: `https://images.web3auth.io/login-${bodyState.metamaskQrCode.wallet.name}.${bodyState.metamaskQrCode.wallet.imgExtension}`
413
+ })]
414
+ }) : /*#__PURE__*/jsxs(Fragment, {
415
+ children: [modalState.currentPage === PAGES.LOGIN && showExternalWalletPage && modalState.status === MODAL_STATUS.INITIALIZED && /*#__PURE__*/jsx(Login, {
416
+ web3authClientId: modalState.web3authClientId,
417
+ web3authNetwork: modalState.web3authNetwork,
418
+ authBuildEnv: modalState.authBuildEnv,
419
+ isModalVisible: modalState.modalVisibility,
420
+ isDark: isDark,
421
+ appLogo: appLogo,
422
+ showPasswordLessInput: showPasswordLessInput,
423
+ showExternalWalletButton: showExternalWalletButton,
424
+ showExternalWalletCount: displayExternalWalletsCount,
425
+ showInstalledExternalWallets: displayInstalledExternalWallets,
426
+ socialLoginsConfig: socialLoginsConfig,
427
+ areSocialLoginsVisible: areSocialLoginsVisible,
428
+ isEmailPrimary: isEmailPrimary,
429
+ isExternalPrimary: isExternalPrimary,
430
+ installedExternalWalletConfig: topInstalledConnectorButtons,
431
+ isEmailPasswordLessLoginVisible: isEmailPasswordLessLoginVisible,
432
+ isSmsPasswordLessLoginVisible: isSmsPasswordLessLoginVisible,
433
+ totalExternalWallets: totalExternalWallets,
434
+ logoAlignment: logoAlignment,
435
+ buttonRadius: buttonRadiusType,
436
+ handleSocialLoginClick: handleSocialLoginClick,
437
+ handleExternalWalletBtnClick: onExternalWalletBtnClick,
438
+ handleSocialLoginHeight: handleSocialLoginHeight,
439
+ handleExternalWalletClick: preHandleExternalWalletClick
440
+ }), modalState.currentPage === PAGES.CONNECT_WALLET && !showExternalWalletPage && modalState.status === MODAL_STATUS.INITIALIZED && /*#__PURE__*/jsx(ConnectWallet, {
441
+ isDark: isDark,
442
+ walletConnectUri: modalState.walletConnectUri,
443
+ metamaskConnectUri: modalState.metamaskConnectUri,
444
+ config: modalState.externalWalletsConfig,
445
+ walletRegistry: walletRegistry,
446
+ allExternalButtons: allButtons,
447
+ connectorVisibilityMap: connectorVisibilityMap,
448
+ customConnectorButtons: customConnectorButtons,
449
+ deviceDetails: {
450
+ platform: deviceDetails.platform,
451
+ browser: deviceDetails.browser,
452
+ os: deviceDetails.os
453
+ },
454
+ chainNamespace: chainNamespaces,
455
+ buttonRadius: buttonRadiusType,
456
+ handleWalletDetailsHeight: handleWalletDetailsHeight,
457
+ onBackClick: onBackClick,
458
+ handleExternalWalletClick: preHandleExternalWalletClick
459
+ })]
460
+ })
415
461
  }), /*#__PURE__*/jsx(Footer, {
416
462
  privacyPolicy: privacyPolicy,
417
463
  termsOfService: tncLink
418
- }), bodyState.showMultiChainSelector && /*#__PURE__*/jsx(BottomSheet, {
464
+ }), ((_bodyState$multiChain = bodyState.multiChainSelector) === null || _bodyState$multiChain === void 0 ? void 0 : _bodyState$multiChain.show) && /*#__PURE__*/jsx(BottomSheet, {
419
465
  uiConfig: uiConfig,
420
- isShown: bodyState.showMultiChainSelector,
421
- onClose: () => setBodyState({
422
- showMultiChainSelector: false
423
- }),
466
+ isShown: bodyState.multiChainSelector.show,
467
+ onClose: () => setBodyState(_objectSpread(_objectSpread({}, bodyState), {}, {
468
+ multiChainSelector: {
469
+ show: false,
470
+ wallet: null
471
+ }
472
+ })),
424
473
  children: /*#__PURE__*/jsx(ConnectWalletChainNamespaceSelect, {
425
474
  isDark: isDark,
426
- wallet: bodyState.walletDetails,
475
+ wallet: bodyState.multiChainSelector.wallet,
427
476
  handleExternalWalletClick: params => {
428
477
  preHandleExternalWalletClick(params);
429
- setBodyState({
430
- showMultiChainSelector: false
431
- });
478
+ setBodyState(_objectSpread(_objectSpread({}, bodyState), {}, {
479
+ multiChainSelector: {
480
+ show: false,
481
+ wallet: null
482
+ }
483
+ }));
432
484
  }
433
485
  })
434
- }), bodyState.showWalletDetails && /*#__PURE__*/jsxs(BottomSheet, {
486
+ }), ((_bodyState$installLin5 = bodyState.installLinks) === null || _bodyState$installLin5 === void 0 ? void 0 : _bodyState$installLin5.show) && /*#__PURE__*/jsxs(BottomSheet, {
435
487
  uiConfig: uiConfig,
436
- isShown: bodyState.showWalletDetails,
437
- onClose: () => setBodyState({
438
- showWalletDetails: false
439
- }),
440
- children: [/*#__PURE__*/jsx("div", {
488
+ isShown: bodyState.installLinks.show,
489
+ onClose: () => setBodyState(_objectSpread(_objectSpread({}, bodyState), {}, {
490
+ installLinks: {
491
+ show: false,
492
+ wallet: null
493
+ }
494
+ })),
495
+ children: [/*#__PURE__*/jsx("p", {
496
+ className: "w3a--mb-2 w3a--text-center w3a--text-base w3a--font-semibold w3a--text-app-gray-900 dark:w3a--text-app-white",
497
+ children: t("modal.getWallet")
498
+ }), /*#__PURE__*/jsx("div", {
441
499
  className: "w3a--my-4 w3a--flex w3a--justify-center",
442
500
  children: /*#__PURE__*/jsx(Image, {
443
- imageId: `login-${bodyState.walletDetails.name}`,
444
- hoverImageId: `login-${bodyState.walletDetails.name}`,
501
+ imageId: `login-${bodyState.installLinks.wallet.name}`,
502
+ hoverImageId: `login-${bodyState.installLinks.wallet.name}`,
445
503
  fallbackImageId: "wallet",
446
504
  height: "80",
447
505
  width: "80",
448
506
  isButton: true,
449
- extension: bodyState.walletDetails.imgExtension
507
+ extension: bodyState.installLinks.wallet.imgExtension
450
508
  })
451
509
  }), /*#__PURE__*/jsx("ul", {
452
510
  className: "w3a--flex w3a--flex-col w3a--gap-y-2",