@crossmint/client-sdk-react-ui 1.10.2 → 1.10.4

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 (181) hide show
  1. package/dist/{chunk-ZOHRCGGI.cjs → chunk-4DICVJSP.cjs} +3 -3
  2. package/dist/{chunk-NX473NO2.cjs → chunk-6NPGETRZ.cjs} +3 -3
  3. package/dist/{chunk-MWRMO6JC.js → chunk-6PCSAKDU.js} +2 -2
  4. package/dist/{chunk-MWRMO6JC.js.map → chunk-6PCSAKDU.js.map} +1 -1
  5. package/dist/{chunk-67AB7TWG.cjs → chunk-AQELE4DZ.cjs} +3 -3
  6. package/dist/{chunk-SMCUFLHP.cjs → chunk-CY2PXN5Y.cjs} +3 -3
  7. package/dist/{chunk-FOCUIKYH.cjs → chunk-EBMORHG3.cjs} +160 -79
  8. package/dist/chunk-EBMORHG3.cjs.map +1 -0
  9. package/dist/{chunk-GN7OANUR.js → chunk-EFT2TZG5.js} +2 -2
  10. package/dist/{chunk-DVONA2BZ.cjs → chunk-FLWOWTHQ.cjs} +3 -3
  11. package/dist/{chunk-3RXUFZTR.cjs → chunk-G526QBKQ.cjs} +3 -3
  12. package/dist/{chunk-XJYLJQA5.js → chunk-HQG5G5PG.js} +4 -3
  13. package/dist/{chunk-XJYLJQA5.js.map → chunk-HQG5G5PG.js.map} +1 -1
  14. package/dist/{chunk-DJ32OEWG.cjs → chunk-HSLAH2PN.cjs} +4 -4
  15. package/dist/{chunk-DJ32OEWG.cjs.map → chunk-HSLAH2PN.cjs.map} +1 -1
  16. package/dist/{chunk-RTC2AZ6A.cjs → chunk-ITCHCRGX.cjs} +2 -2
  17. package/dist/{chunk-RTC2AZ6A.cjs.map → chunk-ITCHCRGX.cjs.map} +1 -1
  18. package/dist/{chunk-6TUZ5CU7.js → chunk-KCGRRFIF.js} +2 -2
  19. package/dist/{chunk-HVI7FCLP.js → chunk-KHZQYMF7.js} +2 -2
  20. package/dist/{chunk-QB4KFTCT.js → chunk-KSDNMTQD.js} +2 -2
  21. package/dist/{chunk-WK5RAFJ3.js → chunk-NFWMF6T7.js} +4 -4
  22. package/dist/chunk-NFWMF6T7.js.map +1 -0
  23. package/dist/{chunk-EVL7VEPX.js → chunk-NKOG6FTK.js} +2 -2
  24. package/dist/{chunk-ZCYU7QA6.cjs → chunk-Q3UM7UCM.cjs} +4 -4
  25. package/dist/chunk-Q3UM7UCM.cjs.map +1 -0
  26. package/dist/{chunk-YO7ZZF32.js → chunk-Q4BSNZSI.js} +2 -2
  27. package/dist/{chunk-COLJFFZF.cjs → chunk-RYB3MSFQ.cjs} +3 -3
  28. package/dist/{chunk-CUODMU27.js → chunk-T5WAVOPI.js} +236 -155
  29. package/dist/chunk-T5WAVOPI.js.map +1 -0
  30. package/dist/{chunk-MDV3M7FD.cjs → chunk-TK2JDIUN.cjs} +5 -4
  31. package/dist/chunk-TK2JDIUN.cjs.map +1 -0
  32. package/dist/{chunk-Y4UEFDMP.js → chunk-X3RNS2B7.js} +2 -2
  33. package/dist/{chunk-6DNBJVR5.js → chunk-ZSWTJ6E7.js} +4 -4
  34. package/dist/chunk-ZSWTJ6E7.js.map +1 -0
  35. package/dist/components/CrossmintNFTCollectionView.cjs +3 -3
  36. package/dist/components/CrossmintNFTCollectionView.js +2 -2
  37. package/dist/components/CrossmintNFTDetail.cjs +3 -3
  38. package/dist/components/CrossmintNFTDetail.js +2 -2
  39. package/dist/components/auth/AuthForm.cjs +7 -8
  40. package/dist/components/auth/AuthForm.js +6 -7
  41. package/dist/components/auth/AuthFormBackButton.cjs +28 -2
  42. package/dist/components/auth/AuthFormBackButton.d.cts +1 -1
  43. package/dist/components/auth/AuthFormBackButton.d.ts +1 -1
  44. package/dist/components/auth/AuthFormBackButton.js +27 -1
  45. package/dist/components/auth/AuthFormDialog.cjs +7 -8
  46. package/dist/components/auth/AuthFormDialog.js +6 -7
  47. package/dist/components/auth/EmbeddedAuthForm.cjs +8 -9
  48. package/dist/components/auth/EmbeddedAuthForm.js +7 -8
  49. package/dist/components/auth/methods/email/EmailAuthFlow.cjs +7 -8
  50. package/dist/components/auth/methods/email/EmailAuthFlow.js +6 -7
  51. package/dist/components/auth/methods/email/EmailOTPInput.cjs +7 -8
  52. package/dist/components/auth/methods/email/EmailOTPInput.js +6 -7
  53. package/dist/components/auth/methods/email/EmailSignIn.cjs +7 -8
  54. package/dist/components/auth/methods/email/EmailSignIn.js +6 -7
  55. package/dist/components/auth/methods/farcaster/FarcasterSignIn.cjs +7 -8
  56. package/dist/components/auth/methods/farcaster/FarcasterSignIn.js +6 -7
  57. package/dist/components/auth/methods/google/GoogleSignIn.cjs +7 -8
  58. package/dist/components/auth/methods/google/GoogleSignIn.js +6 -7
  59. package/dist/components/auth/methods/web3/Web3AuthFlow.cjs +7 -8
  60. package/dist/components/auth/methods/web3/Web3AuthFlow.js +6 -7
  61. package/dist/components/auth/methods/web3/{Web3SignIn.cjs → Web3AuthFlowButton.cjs} +8 -9
  62. package/dist/components/auth/methods/web3/Web3AuthFlowButton.d.cts +5 -0
  63. package/dist/components/auth/methods/web3/Web3AuthFlowButton.d.ts +5 -0
  64. package/dist/components/auth/methods/web3/{Web3SignIn.js → Web3AuthFlowButton.js} +9 -10
  65. package/dist/components/auth/methods/web3/{Web3ConnectButton.cjs → Web3Connector.cjs} +3 -3
  66. package/dist/components/auth/methods/web3/{Web3ConnectButton.d.cts → Web3Connector.d.cts} +2 -2
  67. package/dist/components/auth/methods/web3/{Web3ConnectButton.d.ts → Web3Connector.d.ts} +2 -2
  68. package/dist/components/auth/methods/web3/{Web3ConnectButton.js → Web3Connector.js} +4 -4
  69. package/dist/components/auth/methods/web3/Web3ConnectorButton.cjs +9 -0
  70. package/dist/components/auth/methods/web3/{Web3ProviderButton.d.cts → Web3ConnectorButton.d.cts} +2 -2
  71. package/dist/components/auth/methods/web3/{Web3ProviderButton.d.ts → Web3ConnectorButton.d.ts} +2 -2
  72. package/dist/components/auth/methods/web3/Web3ConnectorButton.js +9 -0
  73. package/dist/components/auth/methods/web3/{Web3AuthWrapper.cjs → Web3ConnectorContainer.cjs} +8 -9
  74. package/dist/components/auth/methods/web3/{Web3AuthWrapper.d.ts → Web3ConnectorContainer.d.cts} +2 -2
  75. package/dist/components/auth/methods/web3/{Web3AuthWrapper.d.cts → Web3ConnectorContainer.d.ts} +2 -2
  76. package/dist/components/auth/methods/web3/{Web3AuthWrapper.js → Web3ConnectorContainer.js} +9 -10
  77. package/dist/components/auth/methods/web3/Web3Connectors.cjs +7 -8
  78. package/dist/components/auth/methods/web3/Web3Connectors.js +6 -7
  79. package/dist/components/common/Divider.cjs +7 -8
  80. package/dist/components/common/Divider.js +6 -7
  81. package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.cjs +9 -10
  82. package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.js +8 -9
  83. package/dist/components/embed/v3/EmbeddedCheckoutV3IFrame.cjs +8 -9
  84. package/dist/components/embed/v3/EmbeddedCheckoutV3IFrame.js +7 -8
  85. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.cjs +33 -8
  86. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.cjs.map +1 -1
  87. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.d.cts +5 -1
  88. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.d.ts +5 -1
  89. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.js +35 -10
  90. package/dist/components/embed/v3/crypto/CryptoWalletConnectionHandler.js.map +1 -1
  91. package/dist/components/embed/v3/index.cjs +9 -10
  92. package/dist/components/embed/v3/index.js +8 -9
  93. package/dist/components/hosted/CrossmintPayButton.cjs +3 -3
  94. package/dist/components/hosted/CrossmintPayButton.js +2 -2
  95. package/dist/components/hosted/index.cjs +3 -3
  96. package/dist/components/hosted/index.js +2 -2
  97. package/dist/components/index.cjs +13 -14
  98. package/dist/components/index.js +12 -13
  99. package/dist/consts/version.cjs +2 -2
  100. package/dist/consts/version.js +1 -1
  101. package/dist/hooks/index.cjs +7 -8
  102. package/dist/hooks/index.js +6 -7
  103. package/dist/hooks/useAuth.cjs +7 -8
  104. package/dist/hooks/useAuth.js +6 -7
  105. package/dist/hooks/useCrossmintAuth.cjs +7 -8
  106. package/dist/hooks/useCrossmintAuth.js +6 -7
  107. package/dist/hooks/useCrossmintCheckout.cjs +4 -4
  108. package/dist/hooks/useCrossmintCheckout.js +3 -3
  109. package/dist/hooks/useOAuthWindowListener.cjs +7 -8
  110. package/dist/hooks/useOAuthWindowListener.js +6 -7
  111. package/dist/hooks/useWallet.cjs +7 -8
  112. package/dist/hooks/useWallet.js +6 -7
  113. package/dist/index.cjs +13 -14
  114. package/dist/index.cjs.map +1 -1
  115. package/dist/index.js +12 -13
  116. package/dist/index.js.map +1 -1
  117. package/dist/providers/CrossmintAuthProvider.cjs +7 -8
  118. package/dist/providers/CrossmintAuthProvider.js +6 -7
  119. package/dist/providers/CrossmintWalletProvider.cjs +7 -8
  120. package/dist/providers/CrossmintWalletProvider.js +6 -7
  121. package/dist/providers/auth/AuthFormProvider.cjs +7 -8
  122. package/dist/providers/auth/AuthFormProvider.d.cts +2 -0
  123. package/dist/providers/auth/AuthFormProvider.d.ts +2 -0
  124. package/dist/providers/auth/AuthFormProvider.js +6 -7
  125. package/dist/providers/index.cjs +7 -8
  126. package/dist/providers/index.js +6 -7
  127. package/dist/utils/createCrossmintApiClient.cjs +3 -3
  128. package/dist/utils/createCrossmintApiClient.js +2 -2
  129. package/package.json +3 -3
  130. package/src/components/auth/AuthForm.tsx +24 -2
  131. package/src/components/auth/AuthFormBackButton.tsx +9 -1
  132. package/src/components/auth/AuthFormDialog.tsx +1 -1
  133. package/src/components/auth/methods/email/EmailOTPInput.tsx +5 -3
  134. package/src/components/auth/methods/email/EmailSignIn.tsx +3 -2
  135. package/src/components/auth/methods/farcaster/FarcasterSignIn.tsx +5 -2
  136. package/src/components/auth/methods/web3/Web3AuthFlow.tsx +2 -2
  137. package/src/components/auth/methods/web3/{Web3SignIn.tsx → Web3AuthFlowButton.tsx} +6 -3
  138. package/src/components/auth/methods/web3/{Web3ConnectButton.tsx → Web3Connector.tsx} +1 -1
  139. package/src/components/auth/methods/web3/{Web3ProviderButton.tsx → Web3ConnectorButton.tsx} +1 -1
  140. package/src/components/auth/methods/web3/{Web3AuthWrapper.tsx → Web3ConnectorContainer.tsx} +5 -5
  141. package/src/components/auth/methods/web3/Web3Connectors.tsx +12 -8
  142. package/src/components/embed/v3/EmbeddedCheckoutV3IFrame.tsx +1 -0
  143. package/src/components/embed/v3/crypto/CryptoWalletConnectionHandler.tsx +35 -8
  144. package/src/hooks/useOAuthWindowListener.ts +13 -10
  145. package/src/providers/auth/AuthFormProvider.tsx +6 -0
  146. package/dist/chunk-6DNBJVR5.js.map +0 -1
  147. package/dist/chunk-CUODMU27.js.map +0 -1
  148. package/dist/chunk-FOCUIKYH.cjs.map +0 -1
  149. package/dist/chunk-GY6G3ZC2.cjs +0 -41
  150. package/dist/chunk-GY6G3ZC2.cjs.map +0 -1
  151. package/dist/chunk-MDV3M7FD.cjs.map +0 -1
  152. package/dist/chunk-QJ44PL7L.js +0 -41
  153. package/dist/chunk-QJ44PL7L.js.map +0 -1
  154. package/dist/chunk-WK5RAFJ3.js.map +0 -1
  155. package/dist/chunk-ZCYU7QA6.cjs.map +0 -1
  156. package/dist/components/auth/methods/web3/Web3ProviderButton.cjs +0 -9
  157. package/dist/components/auth/methods/web3/Web3ProviderButton.js +0 -9
  158. package/dist/components/auth/methods/web3/Web3SignIn.d.cts +0 -5
  159. package/dist/components/auth/methods/web3/Web3SignIn.d.ts +0 -5
  160. /package/dist/{chunk-ZOHRCGGI.cjs.map → chunk-4DICVJSP.cjs.map} +0 -0
  161. /package/dist/{chunk-NX473NO2.cjs.map → chunk-6NPGETRZ.cjs.map} +0 -0
  162. /package/dist/{chunk-67AB7TWG.cjs.map → chunk-AQELE4DZ.cjs.map} +0 -0
  163. /package/dist/{chunk-SMCUFLHP.cjs.map → chunk-CY2PXN5Y.cjs.map} +0 -0
  164. /package/dist/{chunk-GN7OANUR.js.map → chunk-EFT2TZG5.js.map} +0 -0
  165. /package/dist/{chunk-DVONA2BZ.cjs.map → chunk-FLWOWTHQ.cjs.map} +0 -0
  166. /package/dist/{chunk-3RXUFZTR.cjs.map → chunk-G526QBKQ.cjs.map} +0 -0
  167. /package/dist/{chunk-6TUZ5CU7.js.map → chunk-KCGRRFIF.js.map} +0 -0
  168. /package/dist/{chunk-HVI7FCLP.js.map → chunk-KHZQYMF7.js.map} +0 -0
  169. /package/dist/{chunk-QB4KFTCT.js.map → chunk-KSDNMTQD.js.map} +0 -0
  170. /package/dist/{chunk-EVL7VEPX.js.map → chunk-NKOG6FTK.js.map} +0 -0
  171. /package/dist/{chunk-YO7ZZF32.js.map → chunk-Q4BSNZSI.js.map} +0 -0
  172. /package/dist/{chunk-COLJFFZF.cjs.map → chunk-RYB3MSFQ.cjs.map} +0 -0
  173. /package/dist/{chunk-Y4UEFDMP.js.map → chunk-X3RNS2B7.js.map} +0 -0
  174. /package/dist/components/auth/methods/web3/{Web3AuthWrapper.cjs.map → Web3AuthFlowButton.cjs.map} +0 -0
  175. /package/dist/components/auth/methods/web3/{Web3AuthWrapper.js.map → Web3AuthFlowButton.js.map} +0 -0
  176. /package/dist/components/auth/methods/web3/{Web3ConnectButton.cjs.map → Web3Connector.cjs.map} +0 -0
  177. /package/dist/components/auth/methods/web3/{Web3ConnectButton.js.map → Web3Connector.js.map} +0 -0
  178. /package/dist/components/auth/methods/web3/{Web3ProviderButton.cjs.map → Web3ConnectorButton.cjs.map} +0 -0
  179. /package/dist/components/auth/methods/web3/{Web3ProviderButton.js.map → Web3ConnectorButton.js.map} +0 -0
  180. /package/dist/components/auth/methods/web3/{Web3SignIn.cjs.map → Web3ConnectorContainer.cjs.map} +0 -0
  181. /package/dist/components/auth/methods/web3/{Web3SignIn.js.map → Web3ConnectorContainer.js.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkFOCUIKYHcjs = require('../../chunk-FOCUIKYH.cjs');
5
- require('../../chunk-DJ32OEWG.cjs');
6
- require('../../chunk-ZCYU7QA6.cjs');
4
+ var _chunkEBMORHG3cjs = require('../../chunk-EBMORHG3.cjs');
5
+ require('../../chunk-HSLAH2PN.cjs');
6
+ require('../../chunk-Q3UM7UCM.cjs');
7
7
  require('../../chunk-5S4VO6RB.cjs');
8
8
  require('../../chunk-QQXBYOKA.cjs');
9
9
  require('../../chunk-MJHLKJ6X.cjs');
@@ -12,7 +12,6 @@ require('../../chunk-MH37OJT2.cjs');
12
12
  require('../../chunk-PBSL6JOF.cjs');
13
13
  require('../../chunk-B7LYPQ4K.cjs');
14
14
  require('../../chunk-BE2ZLB3L.cjs');
15
- require('../../chunk-GY6G3ZC2.cjs');
16
15
  require('../../chunk-5RX5WFEW.cjs');
17
16
  require('../../chunk-HCW4RO2O.cjs');
18
17
  require('../../chunk-UASNCH3A.cjs');
@@ -26,14 +25,14 @@ require('../../chunk-URKPLEPV.cjs');
26
25
  require('../../chunk-HPOZ6I54.cjs');
27
26
  require('../../chunk-YE55IKBP.cjs');
28
27
  require('../../chunk-ENCR5SUW.cjs');
29
- require('../../chunk-67AB7TWG.cjs');
30
- require('../../chunk-COLJFFZF.cjs');
28
+ require('../../chunk-AQELE4DZ.cjs');
29
+ require('../../chunk-RYB3MSFQ.cjs');
31
30
  require('../../chunk-KEKBOJCF.cjs');
32
31
  require('../../chunk-A2JCJ2OV.cjs');
33
- require('../../chunk-RTC2AZ6A.cjs');
32
+ require('../../chunk-ITCHCRGX.cjs');
34
33
  require('../../chunk-4DAZAO6Y.cjs');
35
34
 
36
35
 
37
36
 
38
- exports.AuthFormProvider = _chunkFOCUIKYHcjs.AuthFormProvider; exports.useAuthForm = _chunkFOCUIKYHcjs.useAuthForm;
37
+ exports.AuthFormProvider = _chunkEBMORHG3cjs.AuthFormProvider; exports.useAuthForm = _chunkEBMORHG3cjs.useAuthForm;
39
38
  //# sourceMappingURL=AuthFormProvider.cjs.map
@@ -10,12 +10,14 @@ type AuthStep = "initial" | "otp" | "qrCode" | "web3" | "web3/metamask" | "web3/
10
10
  type OAuthUrlMap = Record<OAuthProvider, string>;
11
11
  interface AuthFormContextType {
12
12
  step: AuthStep;
13
+ error: string | null;
13
14
  appearance?: UIConfig;
14
15
  loginMethods: LoginMethod[];
15
16
  oauthUrlMap: OAuthUrlMap;
16
17
  isLoadingOauthUrlMap: boolean;
17
18
  baseUrl: string;
18
19
  setStep: (step: AuthStep) => void;
20
+ setError: (error: string | null) => void;
19
21
  setDialogOpen: (open: boolean) => void;
20
22
  }
21
23
  type ContextInitialStateProps = {
@@ -10,12 +10,14 @@ type AuthStep = "initial" | "otp" | "qrCode" | "web3" | "web3/metamask" | "web3/
10
10
  type OAuthUrlMap = Record<OAuthProvider, string>;
11
11
  interface AuthFormContextType {
12
12
  step: AuthStep;
13
+ error: string | null;
13
14
  appearance?: UIConfig;
14
15
  loginMethods: LoginMethod[];
15
16
  oauthUrlMap: OAuthUrlMap;
16
17
  isLoadingOauthUrlMap: boolean;
17
18
  baseUrl: string;
18
19
  setStep: (step: AuthStep) => void;
20
+ setError: (error: string | null) => void;
19
21
  setDialogOpen: (open: boolean) => void;
20
22
  }
21
23
  type ContextInitialStateProps = {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  AuthFormProvider,
3
3
  useAuthForm
4
- } from "../../chunk-CUODMU27.js";
5
- import "../../chunk-WK5RAFJ3.js";
6
- import "../../chunk-6DNBJVR5.js";
4
+ } from "../../chunk-T5WAVOPI.js";
5
+ import "../../chunk-NFWMF6T7.js";
6
+ import "../../chunk-ZSWTJ6E7.js";
7
7
  import "../../chunk-OZS4WEKF.js";
8
8
  import "../../chunk-A7J4DAE7.js";
9
9
  import "../../chunk-XEZF7G64.js";
@@ -12,7 +12,6 @@ import "../../chunk-33WZFL2D.js";
12
12
  import "../../chunk-FKIMKZ4Y.js";
13
13
  import "../../chunk-QTL5I5C2.js";
14
14
  import "../../chunk-HATQVB6H.js";
15
- import "../../chunk-QJ44PL7L.js";
16
15
  import "../../chunk-RZPQIRIY.js";
17
16
  import "../../chunk-ZDQGQY7Z.js";
18
17
  import "../../chunk-IQPA3QOV.js";
@@ -26,11 +25,11 @@ import "../../chunk-I63FQCIV.js";
26
25
  import "../../chunk-ZIHCLVCD.js";
27
26
  import "../../chunk-H4F7UVPT.js";
28
27
  import "../../chunk-YWVQCHQF.js";
29
- import "../../chunk-6TUZ5CU7.js";
30
- import "../../chunk-GN7OANUR.js";
28
+ import "../../chunk-KCGRRFIF.js";
29
+ import "../../chunk-EFT2TZG5.js";
31
30
  import "../../chunk-3J6CUUWT.js";
32
31
  import "../../chunk-AUEQQ4D3.js";
33
- import "../../chunk-MWRMO6JC.js";
32
+ import "../../chunk-6PCSAKDU.js";
34
33
  import "../../chunk-CRTRMMJ7.js";
35
34
  export {
36
35
  AuthFormProvider,
@@ -3,9 +3,9 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkFOCUIKYHcjs = require('../chunk-FOCUIKYH.cjs');
7
- require('../chunk-DJ32OEWG.cjs');
8
- require('../chunk-ZCYU7QA6.cjs');
6
+ var _chunkEBMORHG3cjs = require('../chunk-EBMORHG3.cjs');
7
+ require('../chunk-HSLAH2PN.cjs');
8
+ require('../chunk-Q3UM7UCM.cjs');
9
9
  require('../chunk-5S4VO6RB.cjs');
10
10
  require('../chunk-QQXBYOKA.cjs');
11
11
  require('../chunk-MJHLKJ6X.cjs');
@@ -14,7 +14,6 @@ require('../chunk-MH37OJT2.cjs');
14
14
  require('../chunk-PBSL6JOF.cjs');
15
15
  require('../chunk-B7LYPQ4K.cjs');
16
16
  require('../chunk-BE2ZLB3L.cjs');
17
- require('../chunk-GY6G3ZC2.cjs');
18
17
  require('../chunk-5RX5WFEW.cjs');
19
18
  require('../chunk-HCW4RO2O.cjs');
20
19
  require('../chunk-UASNCH3A.cjs');
@@ -28,16 +27,16 @@ require('../chunk-URKPLEPV.cjs');
28
27
  require('../chunk-HPOZ6I54.cjs');
29
28
  require('../chunk-YE55IKBP.cjs');
30
29
  require('../chunk-ENCR5SUW.cjs');
31
- require('../chunk-67AB7TWG.cjs');
32
- require('../chunk-COLJFFZF.cjs');
30
+ require('../chunk-AQELE4DZ.cjs');
31
+ require('../chunk-RYB3MSFQ.cjs');
33
32
  require('../chunk-KEKBOJCF.cjs');
34
33
  require('../chunk-A2JCJ2OV.cjs');
35
- require('../chunk-RTC2AZ6A.cjs');
34
+ require('../chunk-ITCHCRGX.cjs');
36
35
  require('../chunk-4DAZAO6Y.cjs');
37
36
 
38
37
 
39
38
 
40
39
 
41
40
 
42
- exports.AuthContext = _chunkFOCUIKYHcjs.AuthContext; exports.CrossmintAuthProvider = _chunkFOCUIKYHcjs.CrossmintAuthProvider; exports.CrossmintWalletProvider = _chunkFOCUIKYHcjs.CrossmintWalletProvider; exports.WalletContext = _chunkFOCUIKYHcjs.WalletContext;
41
+ exports.AuthContext = _chunkEBMORHG3cjs.AuthContext; exports.CrossmintAuthProvider = _chunkEBMORHG3cjs.CrossmintAuthProvider; exports.CrossmintWalletProvider = _chunkEBMORHG3cjs.CrossmintWalletProvider; exports.WalletContext = _chunkEBMORHG3cjs.WalletContext;
43
42
  //# sourceMappingURL=index.cjs.map
@@ -3,9 +3,9 @@ import {
3
3
  CrossmintAuthProvider,
4
4
  CrossmintWalletProvider,
5
5
  WalletContext
6
- } from "../chunk-CUODMU27.js";
7
- import "../chunk-WK5RAFJ3.js";
8
- import "../chunk-6DNBJVR5.js";
6
+ } from "../chunk-T5WAVOPI.js";
7
+ import "../chunk-NFWMF6T7.js";
8
+ import "../chunk-ZSWTJ6E7.js";
9
9
  import "../chunk-OZS4WEKF.js";
10
10
  import "../chunk-A7J4DAE7.js";
11
11
  import "../chunk-XEZF7G64.js";
@@ -14,7 +14,6 @@ import "../chunk-33WZFL2D.js";
14
14
  import "../chunk-FKIMKZ4Y.js";
15
15
  import "../chunk-QTL5I5C2.js";
16
16
  import "../chunk-HATQVB6H.js";
17
- import "../chunk-QJ44PL7L.js";
18
17
  import "../chunk-RZPQIRIY.js";
19
18
  import "../chunk-ZDQGQY7Z.js";
20
19
  import "../chunk-IQPA3QOV.js";
@@ -28,11 +27,11 @@ import "../chunk-I63FQCIV.js";
28
27
  import "../chunk-ZIHCLVCD.js";
29
28
  import "../chunk-H4F7UVPT.js";
30
29
  import "../chunk-YWVQCHQF.js";
31
- import "../chunk-6TUZ5CU7.js";
32
- import "../chunk-GN7OANUR.js";
30
+ import "../chunk-KCGRRFIF.js";
31
+ import "../chunk-EFT2TZG5.js";
33
32
  import "../chunk-3J6CUUWT.js";
34
33
  import "../chunk-AUEQQ4D3.js";
35
- import "../chunk-MWRMO6JC.js";
34
+ import "../chunk-6PCSAKDU.js";
36
35
  import "../chunk-CRTRMMJ7.js";
37
36
  export {
38
37
  AuthContext,
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkCOLJFFZFcjs = require('../chunk-COLJFFZF.cjs');
4
- require('../chunk-RTC2AZ6A.cjs');
3
+ var _chunkRYB3MSFQcjs = require('../chunk-RYB3MSFQ.cjs');
4
+ require('../chunk-ITCHCRGX.cjs');
5
5
  require('../chunk-4DAZAO6Y.cjs');
6
6
 
7
7
 
8
- exports.createCrossmintApiClient = _chunkCOLJFFZFcjs.createCrossmintApiClient;
8
+ exports.createCrossmintApiClient = _chunkRYB3MSFQcjs.createCrossmintApiClient;
9
9
  //# sourceMappingURL=createCrossmintApiClient.cjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createCrossmintApiClient
3
- } from "../chunk-GN7OANUR.js";
4
- import "../chunk-MWRMO6JC.js";
3
+ } from "../chunk-EFT2TZG5.js";
4
+ import "../chunk-6PCSAKDU.js";
5
5
  import "../chunk-CRTRMMJ7.js";
6
6
  export {
7
7
  createCrossmintApiClient
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crossmint/client-sdk-react-ui",
3
- "version": "1.10.2",
3
+ "version": "1.10.4",
4
4
  "repository": "https://github.com/Crossmint/crossmint-sdk",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Paella Labs Inc",
@@ -43,11 +43,11 @@
43
43
  "viem": "2.17.5",
44
44
  "wagmi": "2.12.25",
45
45
  "zod": "3.22.4",
46
- "@crossmint/client-sdk-auth": "1.0.0",
46
+ "@crossmint/client-sdk-auth": "1.1.0",
47
47
  "@crossmint/client-sdk-base": "1.3.2",
48
48
  "@crossmint/client-sdk-smart-wallet": "0.1.22",
49
49
  "@crossmint/client-sdk-window": "0.1.0",
50
- "@crossmint/common-sdk-auth": "1.0.0",
50
+ "@crossmint/common-sdk-auth": "1.0.1",
51
51
  "@crossmint/common-sdk-base": "0.3.0"
52
52
  },
53
53
  "devDependencies": {
@@ -7,11 +7,33 @@ import { PoweredByCrossmint } from "../common/PoweredByCrossmint";
7
7
  import { FarcasterProvider } from "../../providers/auth/FarcasterProvider";
8
8
  import { classNames } from "@/utils/classNames";
9
9
  import { Web3AuthFlow } from "./methods/web3/Web3AuthFlow";
10
+ import Color from "color";
11
+ import { AlertIcon } from "@/icons/alert";
10
12
 
11
13
  export function AuthForm({ className }: { className?: string }) {
12
- const { step, appearance, loginMethods, baseUrl } = useAuthForm();
14
+ const { step, appearance, loginMethods, baseUrl, error } = useAuthForm();
15
+
13
16
  return (
14
- <div className={classNames("flex flex-col gap-[10px] antialiased animate-none", className)}>
17
+ <div
18
+ className={classNames(
19
+ "relative p-6 pb-4 !min-[480px]:p-10 !min-[480px]:pb-8 flex flex-col gap-[10px] antialiased animate-none",
20
+ className
21
+ )}
22
+ >
23
+ {error ? (
24
+ <div
25
+ className="flex items-start justify-start w-full rounded-lg p-2 mt-4 bg-cm-danger-muted"
26
+ style={{
27
+ backgroundColor: new Color(appearance?.colors?.danger ?? "#f44336").alpha(0.12).toString(),
28
+ }}
29
+ >
30
+ <AlertIcon customColor={appearance?.colors?.danger ?? "#f44336"} />
31
+ <p className="ml-2 text-sm" style={{ color: appearance?.colors?.danger ?? "#f44336" }}>
32
+ {error}
33
+ </p>
34
+ </div>
35
+ ) : null}
36
+
15
37
  {step === "initial" ? (
16
38
  <div>
17
39
  <h1
@@ -1,19 +1,27 @@
1
1
  import type React from "react";
2
2
  import { classNames } from "../../utils/classNames";
3
3
  import { LeftArrowIcon } from "@/icons/leftArrow";
4
+ import { useAuthForm } from "@/providers/auth/AuthFormProvider";
4
5
 
5
6
  export const AuthFormBackButton = ({
6
7
  className,
7
8
  iconColor,
8
9
  ringColor,
10
+ onClick,
9
11
  ...props
10
12
  }: React.HTMLAttributes<HTMLButtonElement> & { iconColor?: string; ringColor?: string }) => {
13
+ const { setError } = useAuthForm();
14
+
11
15
  return (
12
16
  <button
13
17
  className={classNames(
14
- "absolute rounded-full opacity-70 ring-offset-background text-cm-text-primary transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-cm-accent focus:ring-offset-2 disabled:pointer-events-none",
18
+ "absolute left-4 top-4 min-[480px]:!left-6 min-[480px]:!top-6 rounded-full opacity-70 ring-offset-background text-cm-text-primary transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-cm-accent focus:ring-offset-2 disabled:pointer-events-none",
15
19
  className
16
20
  )}
21
+ onClick={(event) => {
22
+ setError(null);
23
+ onClick?.(event);
24
+ }}
17
25
  {...props}
18
26
  >
19
27
  <LeftArrowIcon className="w-6 h-6" style={{ color: iconColor }} />
@@ -18,7 +18,7 @@ export default function AuthFormDialog({ open }: { open: boolean }) {
18
18
  onOpenAutoFocus={(e) => e.preventDefault()}
19
19
  closeButtonColor={appearance?.colors?.textPrimary}
20
20
  closeButtonRingColor={appearance?.colors?.accent}
21
- className="cm-responsive-border-radius-auth-dialog"
21
+ className="cm-responsive-border-radius-auth-dialog !p-0 !min-[480px]:p-0"
22
22
  style={{
23
23
  borderRadius: appearance?.borderRadius,
24
24
  backgroundColor: appearance?.colors?.background,
@@ -13,7 +13,7 @@ export function EmailOTPInput({
13
13
  setOtpEmailData,
14
14
  }: { otpEmailData: OtpEmailPayload | null; setOtpEmailData: (data: OtpEmailPayload | null) => void }) {
15
15
  const { crossmintAuth } = useCrossmintAuth();
16
- const { appearance, setDialogOpen, setStep } = useAuthForm();
16
+ const { appearance, setDialogOpen, setStep, setError } = useAuthForm();
17
17
 
18
18
  const [token, setToken] = useState("");
19
19
  const [hasError, setHasError] = useState(false);
@@ -31,8 +31,9 @@ export function EmailOTPInput({
31
31
  await crossmintAuth?.handleRefreshAuthMaterial(oneTimeSecret as string);
32
32
  setDialogOpen(false);
33
33
  setStep("initial");
34
- } catch (e) {
35
- console.error("Error signing in via email ", e);
34
+ } catch (error) {
35
+ console.error("Error confirming email OTP", error);
36
+ setError("Invalid code. Please try again.");
36
37
  setHasError(true);
37
38
  } finally {
38
39
  setLoading(false);
@@ -79,6 +80,7 @@ export function EmailOTPInput({
79
80
  onChange={(val) => {
80
81
  setToken(val);
81
82
  setHasError(false);
83
+ setError(null);
82
84
  }}
83
85
  onComplete={handleOnSubmit}
84
86
  disabled={loading}
@@ -11,7 +11,7 @@ import { useCrossmintAuth } from "@/hooks/useCrossmintAuth";
11
11
 
12
12
  export function EmailSignIn({ setOtpEmailData }: { setOtpEmailData: (data: OtpEmailPayload) => void }) {
13
13
  const { crossmintAuth } = useCrossmintAuth();
14
- const { appearance, setStep } = useAuthForm();
14
+ const { appearance, setStep, setError } = useAuthForm();
15
15
 
16
16
  const [emailInput, setEmailInput] = useState("");
17
17
  const [emailError, setEmailError] = useState("");
@@ -35,7 +35,7 @@ export function EmailSignIn({ setOtpEmailData }: { setOtpEmailData: (data: OtpEm
35
35
  setStep("otp");
36
36
  } catch (_e: unknown) {
37
37
  setIsLoading(false);
38
- setEmailError("Failed to send email. Please try again or contact support.");
38
+ setError("Failed to send email. Please try again or contact support.");
39
39
  }
40
40
  }
41
41
 
@@ -75,6 +75,7 @@ export function EmailSignIn({ setOtpEmailData }: { setOtpEmailData: (data: OtpEm
75
75
  onChange={(e) => {
76
76
  setEmailInput(e.target.value);
77
77
  setEmailError("");
78
+ setError(null);
78
79
  }}
79
80
  readOnly={isLoading}
80
81
  aria-describedby="emailError"
@@ -7,7 +7,7 @@ import { classNames } from "@/utils/classNames";
7
7
  import { AuthFormBackButton } from "../../AuthFormBackButton";
8
8
  import { useCrossmintAuth } from "@/hooks/useCrossmintAuth";
9
9
  export function FarcasterSignIn() {
10
- const { step, appearance, setStep } = useAuthForm();
10
+ const { step, appearance, setStep, setError } = useAuthForm();
11
11
 
12
12
  if (step === "initial") {
13
13
  return (
@@ -24,6 +24,7 @@ export function FarcasterSignIn() {
24
24
  }}
25
25
  onClick={() => {
26
26
  setStep("qrCode");
27
+ setError(null);
27
28
  }}
28
29
  >
29
30
  <FarcasterIcon className="h-[25px] w-[25px] absolute left-[18px]" />
@@ -49,7 +50,7 @@ export function FarcasterSignIn() {
49
50
  // We want this to be a separate component so it can completely un-render when the user goes back to the initial screen
50
51
  function FarcasterQRCode() {
51
52
  const { crossmintAuth } = useCrossmintAuth();
52
- const { appearance, setStep, setDialogOpen } = useAuthForm();
53
+ const { appearance, setStep, setDialogOpen, setError } = useAuthForm();
53
54
  const [farcasterData, setFarcasterData] = useState<UseSignInData | null>(null);
54
55
 
55
56
  const farcasterProps = useMemo(
@@ -65,6 +66,7 @@ function FarcasterQRCode() {
65
66
  const { signIn, url: qrCodeUrl, connect, signOut, isConnected } = useSignIn(farcasterProps);
66
67
 
67
68
  const handleFarcasterSignIn = async (data: UseSignInData) => {
69
+ setError(null);
68
70
  try {
69
71
  const oneTimeSecret = await crossmintAuth?.signInWithFarcaster(data);
70
72
  // Step 5. fetch the auth material, close the dialog, and unrender any farcaster client stuff
@@ -73,6 +75,7 @@ function FarcasterQRCode() {
73
75
  setStep("initial");
74
76
  } catch (error) {
75
77
  console.error("Error during Farcaster sign-in:", error);
78
+ setError("Failed to sign in with Farcaster");
76
79
  }
77
80
  };
78
81
 
@@ -1,5 +1,5 @@
1
1
  import { useAuthForm } from "@/providers/auth/AuthFormProvider";
2
- import { Web3SignIn } from "./Web3SignIn";
2
+ import { Web3AuthFlowButton } from "./Web3AuthFlowButton";
3
3
  import { Web3Connectors } from "./Web3Connectors";
4
4
 
5
5
  export function Web3AuthFlow() {
@@ -10,7 +10,7 @@ export function Web3AuthFlow() {
10
10
  }
11
11
 
12
12
  if (step === "initial") {
13
- return <Web3SignIn />;
13
+ return <Web3AuthFlowButton />;
14
14
  }
15
15
 
16
16
  return null;
@@ -3,8 +3,8 @@ import { WalletIcon } from "@/icons/wallet";
3
3
  import { useAuthForm } from "@/providers/auth/AuthFormProvider";
4
4
  import { classNames } from "@/utils/classNames";
5
5
 
6
- export function Web3SignIn() {
7
- const { step, appearance, setStep } = useAuthForm();
6
+ export function Web3AuthFlowButton() {
7
+ const { step, appearance, setStep, setError } = useAuthForm();
8
8
 
9
9
  if (step !== "initial") {
10
10
  return null;
@@ -22,7 +22,10 @@ export function Web3SignIn() {
22
22
  borderColor: appearance?.colors?.border,
23
23
  backgroundColor: appearance?.colors?.buttonBackground,
24
24
  }}
25
- onClick={() => setStep("web3")}
25
+ onClick={() => {
26
+ setStep("web3");
27
+ setError(null);
28
+ }}
26
29
  >
27
30
  <WalletIcon
28
31
  className="h-[21px] w-[21px] absolute left-[20px]"
@@ -2,7 +2,7 @@ import type { UIConfig } from "@crossmint/common-sdk-base";
2
2
  import { PoweredByCrossmint } from "@/components/common/PoweredByCrossmint";
3
3
  import { classNames } from "@/utils/classNames";
4
4
 
5
- export function Web3ConnectButton({
5
+ export function Web3Connector({
6
6
  icon,
7
7
  appearance,
8
8
  isLoading,
@@ -2,7 +2,7 @@ import type { UIConfig } from "@crossmint/common-sdk-base";
2
2
  import type React from "react";
3
3
  import { classNames } from "../../../../utils/classNames";
4
4
 
5
- export function Web3ProviderButton({
5
+ export function Web3ConnectorButton({
6
6
  title,
7
7
  appearance,
8
8
  img,
@@ -1,6 +1,6 @@
1
1
  import { useState, useEffect } from "react";
2
2
  import { useAuthForm } from "@/providers/auth/AuthFormProvider";
3
- import { Web3ConnectButton } from "./Web3ConnectButton";
3
+ import { Web3Connector } from "./Web3Connector";
4
4
  import { useAccount, useChainId, useConnect, useSignMessage } from "wagmi";
5
5
  import { useCrossmintAuth } from "@/hooks/useCrossmintAuth";
6
6
 
@@ -10,11 +10,10 @@ interface Web3AuthWrapperProps {
10
10
  icon: string;
11
11
  }
12
12
 
13
- export function Web3AuthWrapper({ providerType, flag, icon }: Web3AuthWrapperProps) {
13
+ export function Web3ConnectorContainer({ providerType, flag, icon }: Web3AuthWrapperProps) {
14
14
  const { crossmintAuth } = useCrossmintAuth();
15
- const { appearance } = useAuthForm();
15
+ const { appearance, error, setError } = useAuthForm();
16
16
  const [isLoading, setIsLoading] = useState(false);
17
- const [error, setError] = useState<string | null>(null);
18
17
 
19
18
  const chainId = useChainId();
20
19
  const { address, status: accountStatus } = useAccount(); // hook is causing a hydration error when navigating back
@@ -44,6 +43,7 @@ export function Web3AuthWrapper({ providerType, flag, icon }: Web3AuthWrapperPro
44
43
  return;
45
44
  }
46
45
  setIsLoading(true);
46
+ setError(null);
47
47
 
48
48
  try {
49
49
  const res = await crossmintAuth?.signInWithSmartWallet(address);
@@ -69,7 +69,7 @@ export function Web3AuthWrapper({ providerType, flag, icon }: Web3AuthWrapperPro
69
69
  signMessageStatus === "pending";
70
70
 
71
71
  return (
72
- <Web3ConnectButton
72
+ <Web3Connector
73
73
  icon={icon}
74
74
  appearance={appearance}
75
75
  headingText={signMessageStatus === "pending" ? "Sign to verify" : "Connect your wallet"}
@@ -1,8 +1,8 @@
1
1
  import { useAuthForm } from "@/providers/auth/AuthFormProvider";
2
2
  import { AuthFormBackButton } from "../../AuthFormBackButton";
3
- import { Web3ProviderButton } from "./Web3ProviderButton";
3
+ import { Web3ConnectorButton } from "./Web3ConnectorButton";
4
4
  import { metamaskIcon, walletConnectIcon } from "@/icons/base64Icons";
5
- import { Web3AuthWrapper } from "./Web3AuthWrapper";
5
+ import { Web3ConnectorContainer } from "./Web3ConnectorContainer";
6
6
  import { useAccount, useDisconnect } from "wagmi";
7
7
 
8
8
  export function Web3Connectors() {
@@ -28,7 +28,7 @@ export function Web3Connectors() {
28
28
  </h3>
29
29
  </div>
30
30
  <div className="flex flex-col gap-[10px] w-full">
31
- <Web3ProviderButton
31
+ <Web3ConnectorButton
32
32
  title="Metamask"
33
33
  appearance={appearance}
34
34
  img={metamaskIcon}
@@ -42,7 +42,7 @@ export function Web3Connectors() {
42
42
  }, 200);
43
43
  }}
44
44
  />
45
- <Web3ProviderButton
45
+ <Web3ConnectorButton
46
46
  title="WalletConnect"
47
47
  appearance={appearance}
48
48
  img={walletConnectIcon}
@@ -65,11 +65,13 @@ export function Web3Connectors() {
65
65
  return (
66
66
  <>
67
67
  <AuthFormBackButton
68
- onClick={() => setStep("web3")}
68
+ onClick={() => {
69
+ setStep("web3");
70
+ }}
69
71
  iconColor={appearance?.colors?.textPrimary}
70
72
  ringColor={appearance?.colors?.accent}
71
73
  />
72
- <Web3AuthWrapper providerType="metaMaskSDK" flag="isMetaMask" icon={metamaskIcon} />
74
+ <Web3ConnectorContainer providerType="metaMaskSDK" flag="isMetaMask" icon={metamaskIcon} />
73
75
  </>
74
76
  );
75
77
  }
@@ -78,11 +80,13 @@ export function Web3Connectors() {
78
80
  return (
79
81
  <>
80
82
  <AuthFormBackButton
81
- onClick={() => setStep("web3")}
83
+ onClick={() => {
84
+ setStep("web3");
85
+ }}
82
86
  iconColor={appearance?.colors?.textPrimary}
83
87
  ringColor={appearance?.colors?.accent}
84
88
  />
85
- <Web3AuthWrapper providerType="walletConnect" icon={walletConnectIcon} />
89
+ <Web3ConnectorContainer providerType="walletConnect" icon={walletConnectIcon} />
86
90
  </>
87
91
  );
88
92
  }
@@ -77,6 +77,7 @@ export function EmbeddedCheckoutV3IFrame(props: CrossmintEmbeddedCheckoutV3Props
77
77
  apiKeyEnvironment={apiClient["parsedAPIKey"].environment}
78
78
  />
79
79
  ) : null}
80
+ <span id="crossmint-focus-target" tabIndex={-1} />
80
81
  </>
81
82
  );
82
83
  }