@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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/providers/CrossmintWalletProvider.tsx","../src/hooks/useWallet.ts","../src/hooks/useAuth.ts","../src/providers/CrossmintAuthProvider.tsx","../src/components/auth/AuthFormDialog.tsx","../src/providers/auth/AuthFormProvider.tsx","../src/hooks/useCrossmintAuth.ts","../src/components/auth/methods/email/EmailAuthFlow.tsx","../src/components/auth/methods/email/EmailOTPInput.tsx","../src/components/auth/AuthFormBackButton.tsx","../src/components/auth/methods/email/EmailSignIn.tsx","../src/components/common/Divider.tsx","../src/hooks/useOAuthWindowListener.ts","../src/components/auth/methods/google/GoogleSignIn.tsx","../src/components/auth/methods/farcaster/FarcasterSignIn.tsx","../src/components/auth/methods/web3/Web3AuthFlowButton.tsx","../src/components/auth/methods/web3/Web3ConnectorContainer.tsx","../src/components/auth/methods/web3/Web3Connectors.tsx","../src/components/auth/methods/web3/Web3AuthFlow.tsx","../src/components/auth/AuthForm.tsx"],"sourcesContent":["import { type ReactNode, createContext, useMemo, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport {\n type EVMSmartWallet,\n type EVMSmartWalletChain,\n SmartWalletError,\n SmartWalletSDK,\n type WalletParams,\n type PasskeySigner,\n} from \"@crossmint/client-sdk-smart-wallet\";\n\nimport { useCrossmint } from \"../hooks\";\nimport type { UIConfig } from \"@crossmint/common-sdk-base\";\nimport { PasskeyPrompt } from \"@/components/auth/PasskeyPrompt\";\n\ntype WalletStatus = \"not-loaded\" | \"in-progress\" | \"loaded\" | \"loading-error\";\n\ntype ValidPasskeyPromptType =\n | \"create-wallet\"\n | \"transaction\"\n | \"not-supported\"\n | \"create-wallet-error\"\n | \"transaction-error\";\ntype PasskeyPromptState =\n | {\n type: ValidPasskeyPromptType;\n open: true;\n primaryActionOnClick: () => void;\n secondaryActionOnClick?: () => void;\n }\n | { open: false };\n\ntype ValidWalletState =\n | { status: \"not-loaded\" | \"in-progress\" }\n | { status: \"loaded\"; wallet: EVMSmartWallet }\n | { status: \"loading-error\"; error: SmartWalletError };\n\ntype WalletContext = {\n status: WalletStatus;\n wallet?: EVMSmartWallet;\n error?: SmartWalletError;\n getOrCreateWallet: (\n config?: Pick<WalletConfig, \"signer\" | \"type\">\n ) => Promise<{ startedCreation: boolean; reason?: string }>;\n clearWallet: () => void;\n};\n\nexport const WalletContext = createContext<WalletContext>({\n status: \"not-loaded\",\n getOrCreateWallet: () => Promise.resolve({ startedCreation: false }),\n clearWallet: () => {},\n});\n\nexport type WalletConfig = WalletParams & { type: \"evm-smart-wallet\" };\n\nexport function CrossmintWalletProvider({\n children,\n defaultChain,\n showPasskeyHelpers = true, // enabled by default\n appearance,\n}: {\n children: ReactNode;\n defaultChain: EVMSmartWalletChain;\n showPasskeyHelpers?: boolean;\n appearance?: UIConfig;\n}) {\n const { crossmint } = useCrossmint(\"CrossmintWalletProvider must be used within CrossmintProvider\");\n const smartWalletSDK = useMemo(() => SmartWalletSDK.init({ clientApiKey: crossmint.apiKey }), [crossmint.apiKey]);\n\n const [walletState, setWalletState] = useState<ValidWalletState>({ status: \"not-loaded\" });\n const [passkeyPromptState, setPasskeyPromptState] = useState<PasskeyPromptState>({ open: false });\n\n const getOrCreateWallet = async (\n config: WalletConfig = { type: \"evm-smart-wallet\", signer: { type: \"PASSKEY\" } }\n ) => {\n if (walletState.status == \"in-progress\") {\n console.log(\"Wallet already loading\");\n return { startedCreation: false, reason: \"Wallet is already loading.\" };\n }\n\n if (crossmint.jwt == null) {\n return { startedCreation: false, reason: `Jwt not set in \"CrossmintProvider\".` };\n }\n\n try {\n setWalletState({ status: \"in-progress\" });\n const wallet = await smartWalletSDK.getOrCreateWallet(\n { jwt: crossmint.jwt as string },\n defaultChain,\n enhanceConfigWithPasskeyPrompts(config)\n );\n setWalletState({ status: \"loaded\", wallet });\n } catch (error: unknown) {\n console.error(\"There was an error creating a wallet \", error);\n setWalletState(deriveErrorState(error));\n }\n return { startedCreation: true };\n };\n\n const enhanceConfigWithPasskeyPrompts = (config: WalletConfig) => {\n if (showPasskeyHelpers && (config.signer as PasskeySigner).type === \"PASSKEY\") {\n return {\n ...config,\n signer: {\n ...config.signer,\n onPrePasskeyRegistration: createPasskeyPrompt(\"create-wallet\"),\n onPasskeyRegistrationError: createPasskeyPrompt(\"create-wallet-error\"),\n onFirstTimePasskeySigning: createPasskeyPrompt(\"transaction\"),\n onFirstTimePasskeySigningError: createPasskeyPrompt(\"transaction-error\"),\n },\n };\n }\n return config;\n };\n\n const createPasskeyPrompt = (type: ValidPasskeyPromptType) => () =>\n new Promise<void>((resolve) => {\n setPasskeyPromptState({\n type,\n open: true,\n primaryActionOnClick: () => {\n setPasskeyPromptState({ open: false });\n resolve();\n },\n secondaryActionOnClick: () => {\n setPasskeyPromptState({ open: false });\n resolve();\n },\n });\n });\n\n const clearWallet = () => {\n setWalletState({ status: \"not-loaded\" });\n };\n\n return (\n <WalletContext.Provider value={{ ...walletState, getOrCreateWallet, clearWallet }}>\n {children}\n {passkeyPromptState.open\n ? createPortal(<PasskeyPrompt state={passkeyPromptState} appearance={appearance} />, document.body)\n : null}\n </WalletContext.Provider>\n );\n}\n\nfunction deriveErrorState(error: unknown): { status: \"loading-error\"; error: SmartWalletError } {\n if (error instanceof SmartWalletError) {\n return { status: \"loading-error\", error };\n }\n\n const message = error instanceof Error ? error.message : String(error);\n const stack = error instanceof Error ? error.stack : undefined;\n return { status: \"loading-error\", error: new SmartWalletError(`Unknown Wallet Error: ${message}`, stack) };\n}\n","import { useContext } from \"react\";\n\nimport { WalletContext } from \"../providers/CrossmintWalletProvider\";\n\nexport function useWallet() {\n const walletContext = useContext(WalletContext);\n\n if (!walletContext) {\n throw new Error(\"useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider\");\n }\n\n return walletContext;\n}\n","import { useContext } from \"react\";\n\nimport { AuthContext, type AuthContextType } from \"../providers\";\n\nexport function useAuth(): AuthContextType {\n const context = useContext(AuthContext);\n if (context === undefined) {\n throw new Error(\"useAuth must be used within an AuthProvider\");\n }\n return context;\n}\n","import { type ReactNode, createContext, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { CrossmintAuth, getCookie } from \"@crossmint/client-sdk-auth\";\nimport type { EVMSmartWalletChain } from \"@crossmint/client-sdk-smart-wallet\";\nimport { type UIConfig, validateApiKeyAndGetCrossmintBaseUrl } from \"@crossmint/common-sdk-base\";\nimport { type AuthMaterialWithUser, SESSION_PREFIX, type SDKExternalUser } from \"@crossmint/common-sdk-auth\";\n\nimport AuthFormDialog from \"../components/auth/AuthFormDialog\";\nimport { useCrossmint, useWallet } from \"../hooks\";\nimport { CrossmintWalletProvider } from \"./CrossmintWalletProvider\";\nimport { AuthFormProvider } from \"./auth/AuthFormProvider\";\nimport { TwindProvider } from \"./TwindProvider\";\n\nexport type CrossmintAuthWalletConfig = {\n defaultChain: EVMSmartWalletChain;\n createOnLogin: \"all-users\" | \"off\";\n type: \"evm-smart-wallet\";\n showPasskeyHelpers?: boolean;\n};\n\nexport type LoginMethod = \"email\" | \"google\" | \"farcaster\" | \"web3\";\n\nexport type CrossmintAuthProviderProps = {\n embeddedWallets?: CrossmintAuthWalletConfig;\n appearance?: UIConfig;\n children: ReactNode;\n loginMethods?: LoginMethod[];\n refreshRoute?: string;\n logoutRoute?: string;\n};\n\ntype AuthStatus = \"logged-in\" | \"logged-out\" | \"in-progress\";\n\nexport interface AuthContextType {\n crossmintAuth?: CrossmintAuth;\n login: () => void;\n logout: () => void;\n jwt?: string;\n user?: SDKExternalUser;\n status: AuthStatus;\n getUser: () => void;\n}\n\nconst defaultContextValue: AuthContextType = {\n crossmintAuth: undefined,\n login: () => {},\n logout: () => {},\n jwt: undefined,\n user: undefined,\n status: \"logged-out\",\n getUser: () => {},\n};\n\nexport const AuthContext = createContext<AuthContextType>(defaultContextValue);\n\nconst defaultEmbeddedWallets: CrossmintAuthWalletConfig = {\n defaultChain: \"base-sepolia\",\n createOnLogin: \"off\",\n type: \"evm-smart-wallet\",\n};\n\nexport function CrossmintAuthProvider({\n embeddedWallets = defaultEmbeddedWallets,\n children,\n appearance,\n loginMethods = [\"email\", \"google\"],\n refreshRoute,\n logoutRoute,\n}: CrossmintAuthProviderProps) {\n const [user, setUser] = useState<SDKExternalUser | undefined>(undefined);\n const { crossmint, setJwt } = useCrossmint(\"CrossmintAuthProvider must be used within CrossmintProvider\");\n // Only create the CrossmintAuth instance once, even in StrictMode, as the constructor calls /refresh\n // It can only be called once to avoid race conditions\n const crossmintAuthRef = useRef<CrossmintAuth | null>(null);\n // biome-ignore lint/correctness/useExhaustiveDependencies: crossmint can't be a dependency because it updates with each jwt change\n const crossmintAuth = useMemo(() => {\n if (!crossmintAuthRef.current) {\n crossmintAuthRef.current = CrossmintAuth.from(crossmint, {\n callbacks: {\n onLogout: () => {\n setJwt(undefined);\n setUser(undefined);\n },\n onTokenRefresh: (authMaterial: AuthMaterialWithUser) => {\n setJwt(authMaterial.jwt);\n setUser(authMaterial.user);\n },\n },\n refreshRoute,\n logoutRoute,\n });\n }\n return crossmintAuthRef.current;\n }, []);\n\n const crossmintBaseUrl = validateApiKeyAndGetCrossmintBaseUrl(crossmint.apiKey);\n const [dialogOpen, setDialogOpen] = useState(false);\n\n useEffect(() => {\n if (crossmint.jwt == null) {\n const jwt = getCookie(SESSION_PREFIX);\n setJwt(jwt);\n }\n }, []);\n\n useEffect(() => {\n if (crossmint.jwt == null) {\n return;\n }\n\n setDialogOpen(false);\n }, [crossmint.jwt]);\n\n const login = () => {\n if (crossmint.jwt != null) {\n console.log(\"User already logged in\");\n return;\n }\n\n setDialogOpen(true);\n };\n\n const logout = () => {\n crossmintAuth.logout();\n };\n\n const getAuthStatus = (): AuthStatus => {\n if (crossmint.jwt != null) {\n return \"logged-in\";\n }\n if (dialogOpen) {\n return \"in-progress\";\n }\n return \"logged-out\";\n };\n\n const getUser = async () => {\n if (crossmint.jwt == null) {\n console.log(\"User not logged in\");\n return;\n }\n\n const user = await crossmintAuth.getUser();\n setUser(user);\n };\n\n return (\n <TwindProvider>\n <AuthContext.Provider\n value={{\n crossmintAuth,\n login,\n logout,\n jwt: crossmint.jwt,\n user,\n status: getAuthStatus(),\n getUser,\n }}\n >\n <CrossmintWalletProvider\n defaultChain={embeddedWallets.defaultChain}\n showPasskeyHelpers={embeddedWallets.showPasskeyHelpers}\n appearance={appearance}\n >\n <AuthFormProvider\n initialState={{\n appearance,\n setDialogOpen,\n loginMethods,\n embeddedWallets,\n baseUrl: crossmintBaseUrl,\n }}\n >\n <WalletManager embeddedWallets={embeddedWallets} accessToken={crossmint.jwt}>\n {children}\n </WalletManager>\n\n <AuthFormDialog open={dialogOpen} />\n </AuthFormProvider>\n </CrossmintWalletProvider>\n </AuthContext.Provider>\n </TwindProvider>\n );\n}\n\nfunction WalletManager({\n embeddedWallets,\n children,\n accessToken,\n}: {\n embeddedWallets: CrossmintAuthWalletConfig;\n children: ReactNode;\n accessToken: string | undefined;\n}) {\n const { getOrCreateWallet, clearWallet, status } = useWallet();\n\n useEffect(() => {\n if (embeddedWallets.createOnLogin === \"all-users\" && status === \"not-loaded\" && accessToken != null) {\n getOrCreateWallet({\n type: embeddedWallets.type,\n signer: { type: \"PASSKEY\" },\n });\n }\n\n if (status === \"loaded\" && accessToken == null) {\n clearWallet();\n }\n }, [accessToken, status]);\n\n return <>{children}</>;\n}\n","import { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport { AuthForm } from \"./AuthForm\";\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from \"../common/Dialog\";\nimport { useEffect } from \"react\";\n\nexport default function AuthFormDialog({ open }: { open: boolean }) {\n const { appearance, setDialogOpen } = useAuthForm();\n\n useEffect(() => {\n document.body.style.overflow = open ? \"hidden\" : \"\";\n }, [open]);\n\n return (\n <Dialog modal={false} open={open} onOpenChange={setDialogOpen}>\n <DialogContent\n onInteractOutside={(e) => e.preventDefault()}\n onOpenAutoFocus={(e) => e.preventDefault()}\n closeButtonColor={appearance?.colors?.textPrimary}\n closeButtonRingColor={appearance?.colors?.accent}\n className=\"cm-responsive-border-radius-auth-dialog !p-0 !min-[480px]:p-0\"\n style={{\n borderRadius: appearance?.borderRadius,\n backgroundColor: appearance?.colors?.background,\n }}\n >\n <VisuallyHidden asChild>\n <DialogTitle>Crossmint Auth</DialogTitle>\n </VisuallyHidden>\n <VisuallyHidden asChild>\n <DialogDescription>Sign in via Crossmint</DialogDescription>\n </VisuallyHidden>\n\n <AuthForm className=\"max-w-[448px]\" />\n </DialogContent>\n </Dialog>\n );\n}\n","import { createContext, useCallback, useContext, useEffect, useState, type ReactNode } from \"react\";\nimport type { OAuthProvider } from \"@crossmint/common-sdk-auth\";\nimport type { UIConfig } from \"@crossmint/common-sdk-base\";\nimport type { CrossmintAuthWalletConfig, LoginMethod } from \"../CrossmintAuthProvider\";\nimport { useCrossmintAuth } from \"@/hooks/useCrossmintAuth\";\nimport { WagmiAuthProvider } from \"./web3/WagmiAuthProvider\";\n\ntype AuthStep = \"initial\" | \"otp\" | \"qrCode\" | \"web3\" | \"web3/metamask\" | \"web3/walletconnect\";\n\ntype OAuthUrlMap = Record<OAuthProvider, string>;\nconst initialOAuthUrlMap: OAuthUrlMap = {\n google: \"\",\n // Farcaster is not included here as it uses a different authentication method\n};\ninterface AuthFormContextType {\n step: AuthStep;\n error: string | null;\n appearance?: UIConfig;\n loginMethods: LoginMethod[];\n oauthUrlMap: OAuthUrlMap;\n isLoadingOauthUrlMap: boolean;\n baseUrl: string;\n setStep: (step: AuthStep) => void;\n setError: (error: string | null) => void;\n setDialogOpen: (open: boolean) => void;\n}\n\ntype ContextInitialStateProps = {\n appearance?: UIConfig;\n loginMethods: LoginMethod[];\n baseUrl: string;\n setDialogOpen?: (open: boolean) => void;\n embeddedWallets: CrossmintAuthWalletConfig;\n};\n\nconst AuthFormContext = createContext<AuthFormContextType | undefined>(undefined);\n\nexport const useAuthForm = () => {\n const context = useContext(AuthFormContext);\n if (!context) {\n throw new Error(\"useAuthForm must be used within an AuthFormProvider\");\n }\n return context;\n};\n\nexport const AuthFormProvider = ({\n children,\n initialState,\n}: { children: ReactNode; initialState: ContextInitialStateProps }) => {\n const { crossmintAuth } = useCrossmintAuth();\n const [step, setStep] = useState<AuthStep>(\"initial\");\n const [error, setError] = useState<string | null>(null);\n const [oauthUrlMap, setOauthUrlMap] = useState<OAuthUrlMap>(initialOAuthUrlMap);\n const [isLoadingOauthUrlMap, setIsLoadingOauthUrlMap] = useState(true);\n\n const { loginMethods, baseUrl, setDialogOpen, appearance, embeddedWallets } = initialState;\n\n if (loginMethods.includes(\"web3\") && embeddedWallets?.createOnLogin === \"all-users\") {\n throw new Error(\"Creating wallets on login is not yet supported for web3 login method\");\n }\n\n const preFetchAndSetOauthUrl = useCallback(async () => {\n setIsLoadingOauthUrlMap(true);\n try {\n const oauthProviders = loginMethods.filter(\n (method): method is OAuthProvider => method in initialOAuthUrlMap\n );\n\n const oauthPromiseList = oauthProviders.map(async (provider) => {\n const url = await crossmintAuth?.getOAuthUrl(provider);\n return { [provider]: url };\n });\n\n const oauthUrlMap = Object.assign({}, ...(await Promise.all(oauthPromiseList)));\n setOauthUrlMap(oauthUrlMap);\n } catch (error) {\n console.error(\"Error fetching OAuth URLs:\", error);\n setError(\"Unable to load oauth providers. Please try again later.\");\n } finally {\n setIsLoadingOauthUrlMap(false);\n }\n }, [loginMethods, crossmintAuth]);\n\n useEffect(() => {\n preFetchAndSetOauthUrl();\n }, [preFetchAndSetOauthUrl]);\n\n const handleToggleDialog = (open: boolean) => {\n setDialogOpen?.(open);\n if (!open) {\n // Delay to allow the close transition to complete before resetting the step\n setTimeout(() => setStep(\"initial\"), 250);\n }\n };\n\n const value: AuthFormContextType = {\n step,\n error,\n baseUrl,\n appearance,\n loginMethods,\n oauthUrlMap,\n isLoadingOauthUrlMap,\n setDialogOpen: handleToggleDialog,\n setError,\n setStep,\n };\n\n return (\n <AuthFormContext.Provider value={value}>\n <WagmiAuthProvider>{children}</WagmiAuthProvider>\n </AuthFormContext.Provider>\n );\n};\n","import { useContext } from \"react\";\nimport { AuthContext } from \"../providers/CrossmintAuthProvider\";\n\nexport function useCrossmintAuth() {\n const context = useContext(AuthContext);\n\n if (!context) {\n throw new Error(\"useCrossmintAuth must be used within a CrossmintAuthProvider\");\n }\n\n return context;\n}\n","import { useState } from \"react\";\nimport { EmailOTPInput } from \"./EmailOTPInput\";\nimport { EmailSignIn } from \"./EmailSignIn\";\nimport { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport type { OtpEmailPayload } from \"@/types/auth\";\n\nexport function EmailAuthFlow() {\n const { step } = useAuthForm();\n const [otpEmailData, setOtpEmailData] = useState<OtpEmailPayload | null>(null);\n\n if (step === \"otp\") {\n return <EmailOTPInput otpEmailData={otpEmailData} setOtpEmailData={setOtpEmailData} />;\n }\n if (step === \"initial\") {\n return <EmailSignIn setOtpEmailData={setOtpEmailData} />;\n }\n\n return null;\n}\n","import { useState } from \"react\";\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from \"@/components/common/InputOTP\";\nimport { EmailOtpIcon } from \"@/icons/emailOTP\";\nimport { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport type { OtpEmailPayload } from \"@/types/auth\";\nimport { AuthFormBackButton } from \"../../AuthFormBackButton\";\nimport { useCrossmintAuth } from \"@/hooks/useCrossmintAuth\";\n\nexport const EMAIL_VERIFICATION_TOKEN_LENGTH = 6;\n\nexport function EmailOTPInput({\n otpEmailData,\n setOtpEmailData,\n}: { otpEmailData: OtpEmailPayload | null; setOtpEmailData: (data: OtpEmailPayload | null) => void }) {\n const { crossmintAuth } = useCrossmintAuth();\n const { appearance, setDialogOpen, setStep, setError } = useAuthForm();\n\n const [token, setToken] = useState(\"\");\n const [hasError, setHasError] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const handleOnSubmit = async () => {\n setLoading(true);\n try {\n const oneTimeSecret = await crossmintAuth?.confirmEmailOtp(\n otpEmailData?.email ?? \"\",\n otpEmailData?.emailId ?? \"\",\n token\n );\n\n await crossmintAuth?.handleRefreshAuthMaterial(oneTimeSecret as string);\n setDialogOpen(false);\n setStep(\"initial\");\n } catch (error) {\n console.error(\"Error confirming email OTP\", error);\n setError(\"Invalid code. Please try again.\");\n setHasError(true);\n } finally {\n setLoading(false);\n }\n };\n\n const handleOnBack = () => {\n setStep(\"initial\");\n setOtpEmailData(null);\n };\n\n return (\n <div>\n <AuthFormBackButton\n onClick={handleOnBack}\n iconColor={appearance?.colors?.textPrimary}\n ringColor={appearance?.colors?.accent}\n />\n\n <div className=\"flex flex-col items-center justify-start w-full\">\n <div className=\"relative left-3\">\n <EmailOtpIcon\n customAccentColor={appearance?.colors?.accent}\n customButtonBackgroundColor={appearance?.colors?.buttonBackground}\n customBackgroundColor={appearance?.colors?.background}\n />\n </div>\n <p\n className=\"text-base font-normal mt-4 mb-1 text-center text-cm-text-primary\"\n style={{ color: appearance?.colors?.textPrimary }}\n >\n {\"Check your email\"}\n </p>\n <p\n className=\"text-center text-cm-text-secondary px-4\"\n style={{ color: appearance?.colors?.textSecondary }}\n >\n {\"A temporary login code has been sent to your email\"}\n </p>\n <div className=\"py-8\">\n <InputOTP\n maxLength={EMAIL_VERIFICATION_TOKEN_LENGTH}\n value={token}\n onChange={(val) => {\n setToken(val);\n setHasError(false);\n setError(null);\n }}\n onComplete={handleOnSubmit}\n disabled={loading}\n customStyles={{\n accent: appearance?.colors?.accent ?? \"#04AA6D\",\n danger: appearance?.colors?.danger ?? \"#f44336\",\n border: appearance?.colors?.border ?? \"#E5E7EB\",\n textPrimary: appearance?.colors?.textPrimary ?? \"#909ca3\",\n buttonBackground: appearance?.colors?.buttonBackground ?? \"#eff6ff\",\n inputBackground: appearance?.colors?.inputBackground ?? \"#FFFFFF\",\n borderRadius: appearance?.borderRadius,\n }}\n >\n <InputOTPGroup>\n <InputOTPSlot index={0} hasError={hasError} />\n <InputOTPSlot index={1} hasError={hasError} />\n <InputOTPSlot index={2} hasError={hasError} />\n <InputOTPSlot index={3} hasError={hasError} />\n <InputOTPSlot index={4} hasError={hasError} />\n <InputOTPSlot index={5} hasError={hasError} />\n </InputOTPGroup>\n </InputOTP>\n </div>\n\n <p className=\"text-sm leading-tight text-cm-text-secondary text-center\">\n <span style={{ color: appearance?.colors?.textSecondary }}>\n Can't find the email? Check spam folder or contact\n </span>{\" \"}\n <a\n key=\"resend-email-link\"\n className=\"transition-opacity duration-150 text-cm-link hover:opacity-70\"\n style={{ color: appearance?.colors?.textLink }}\n href=\"mailto:support@crossmint.io\"\n >\n support@crossmint.io\n </a>\n </p>\n </div>\n </div>\n );\n}\n","import type React from \"react\";\nimport { classNames } from \"../../utils/classNames\";\nimport { LeftArrowIcon } from \"@/icons/leftArrow\";\nimport { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\n\nexport const AuthFormBackButton = ({\n className,\n iconColor,\n ringColor,\n onClick,\n ...props\n}: React.HTMLAttributes<HTMLButtonElement> & { iconColor?: string; ringColor?: string }) => {\n const { setError } = useAuthForm();\n\n return (\n <button\n className={classNames(\n \"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\",\n className\n )}\n onClick={(event) => {\n setError(null);\n onClick?.(event);\n }}\n {...props}\n >\n <LeftArrowIcon className=\"w-6 h-6\" style={{ color: iconColor }} />\n </button>\n );\n};\n","import { type FormEvent, useState } from \"react\";\nimport Color from \"color\";\n\nimport { Spinner } from \"@/components/common/Spinner\";\nimport { classNames } from \"@/utils/classNames\";\nimport { AlertIcon } from \"../../../../icons/alert\";\nimport { isEmailValid } from \"@crossmint/common-sdk-auth\";\nimport { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport type { OtpEmailPayload } from \"@/types/auth\";\nimport { useCrossmintAuth } from \"@/hooks/useCrossmintAuth\";\n\nexport function EmailSignIn({ setOtpEmailData }: { setOtpEmailData: (data: OtpEmailPayload) => void }) {\n const { crossmintAuth } = useCrossmintAuth();\n const { appearance, setStep, setError } = useAuthForm();\n\n const [emailInput, setEmailInput] = useState(\"\");\n const [emailError, setEmailError] = useState(\"\");\n const [isLoading, setIsLoading] = useState(false);\n\n async function handleOnSubmit(e: FormEvent<HTMLFormElement>) {\n e.preventDefault();\n\n if (!isEmailValid(emailInput)) {\n setEmailError(\"Please enter a valid email address\");\n return;\n }\n\n setIsLoading(true);\n\n try {\n const trimmedEmailInput = emailInput.trim().toLowerCase();\n const emailSignInRes = (await crossmintAuth?.sendEmailOtp(trimmedEmailInput)) as { emailId: string };\n\n setOtpEmailData({ email: trimmedEmailInput, emailId: emailSignInRes.emailId });\n setStep(\"otp\");\n } catch (_e: unknown) {\n setIsLoading(false);\n setError(\"Failed to send email. Please try again or contact support.\");\n }\n }\n\n return (\n <>\n <div className=\"flex flex-col items-start justify-start w-full rounded-lg\">\n <div className=\"w-full\">\n <form\n role=\"form\"\n className=\"relative\"\n onSubmit={handleOnSubmit}\n noValidate // we want to handle validation ourselves\n >\n <label htmlFor=\"emailInput\" className=\"sr-only\">\n Email\n </label>\n <input\n className={classNames(\n \"flex-grow text-cm-text-secondary text-left pl-[16px] pr-[80px] h-[58px] w-full border border-cm-border rounded-xl bg-cm-background-primary placeholder:text-sm placeholder:text-opacity-60\",\n \"transition-none duration-200 ease-in-out\",\n \"focus:outline-none focus-ring-custom\", // Add focus ring\n emailError ? \"border-red-500\" : \"\"\n )}\n style={{\n color: appearance?.colors?.textPrimary,\n borderRadius: appearance?.borderRadius,\n borderColor: emailError ? appearance?.colors?.danger : appearance?.colors?.border,\n backgroundColor: appearance?.colors?.inputBackground,\n // @ts-expect-error Add custom ring color to tailwind\n \"--focus-ring-color\": new Color(appearance?.colors?.accent ?? \"#04AA6D\")\n .alpha(0.18)\n .toString(),\n }}\n type=\"email\"\n placeholder=\"Enter email\"\n value={emailInput}\n onChange={(e) => {\n setEmailInput(e.target.value);\n setEmailError(\"\");\n setError(null);\n }}\n readOnly={isLoading}\n aria-describedby=\"emailError\"\n />\n <div className=\"absolute inset-y-0 right-0 flex items-center pr-4\">\n {emailError && <AlertIcon customColor={appearance?.colors?.danger} />}\n {isLoading && (\n <Spinner\n style={{\n color: appearance?.colors?.textSecondary,\n fill: appearance?.colors?.textPrimary,\n }}\n />\n )}\n {!emailError && !isLoading && (\n <button\n type=\"submit\"\n className={classNames(\"cursor-pointer font-medium text-cm-accent text-nowrap\")}\n style={{ color: appearance?.colors?.accent }}\n disabled={!emailInput}\n >\n Sign in\n </button>\n )}\n </div>\n </form>\n {emailError && <p className=\"text-xs text-red-500 mb-2 pt-2\">{emailError}</p>}\n </div>\n </div>\n </>\n );\n}\n","import { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport type { UIConfig } from \"@crossmint/common-sdk-base\";\n\nexport function Divider({ appearance, text }: { appearance?: UIConfig; text?: string }) {\n const { step } = useAuthForm();\n\n if (step !== \"initial\") {\n return null;\n }\n\n return (\n <div className=\"flex items-center justify-center w-full pt-2 pb-3\">\n <span className=\"w-full h-[1px] bg-cm-border\" style={{ backgroundColor: appearance?.colors?.border }} />\n {text != null ? (\n <p\n className=\"flex-none px-2 text-sm text-cm-text-primary\"\n style={{ color: appearance?.colors?.textSecondary }}\n >\n {text}\n </p>\n ) : null}\n <span className=\"w-full h-[1px] bg-cm-border\" style={{ backgroundColor: appearance?.colors?.border }} />\n </div>\n );\n}\n","import type { OAuthProvider } from \"@crossmint/common-sdk-auth\";\nimport { ChildWindow, PopupWindow } from \"@crossmint/client-sdk-window\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { z } from \"zod\";\nimport { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport { useCrossmintAuth } from \"./useCrossmintAuth\";\n\nexport const useOAuthWindowListener = (provider: OAuthProvider) => {\n const { crossmintAuth } = useCrossmintAuth();\n const { oauthUrlMap, setError } = useAuthForm();\n const [isLoading, setIsLoading] = useState(false);\n const childRef = useRef<ChildWindow<IncomingEvents, OutgoingEvents> | null>(null);\n\n useEffect(() => {\n if (childRef.current == null) {\n childRef.current = new ChildWindow<IncomingEvents, OutgoingEvents>(window.opener || window.parent, \"*\", {\n incomingEvents,\n });\n }\n\n return () => {\n if (childRef.current != null) {\n childRef.current.off(\"authMaterialFromPopupCallback\");\n }\n };\n }, []);\n\n const createPopupAndSetupListeners = async () => {\n if (childRef.current == null) {\n throw new Error(\"Child window not initialized\");\n }\n setIsLoading(true);\n setError(null);\n const popup = await PopupWindow.init(oauthUrlMap[provider], {\n awaitToLoad: false,\n crossOrigin: true,\n width: 400,\n height: 700,\n });\n\n const handleAuthMaterial = async (data: { oneTimeSecret: string }) => {\n await crossmintAuth?.handleRefreshAuthMaterial(data.oneTimeSecret);\n childRef.current?.off(\"authMaterialFromPopupCallback\");\n popup.window.close();\n setIsLoading(false);\n };\n\n const handleError = (data: { error: string }) => {\n setError(data.error);\n childRef.current?.off(\"errorFromPopupCallback\");\n popup.window.close();\n setIsLoading(false);\n };\n\n childRef.current.on(\"authMaterialFromPopupCallback\", handleAuthMaterial);\n childRef.current.on(\"errorFromPopupCallback\", handleError);\n // Add a check for manual window closure\n // Ideally we should find a more explicit way of doing this, but I think this is fine for now.\n const checkWindowClosure = setInterval(() => {\n if (popup.window.closed) {\n clearInterval(checkWindowClosure);\n setIsLoading(false);\n childRef.current?.off(\"authMaterialFromPopupCallback\");\n }\n }, 2500); // Check every 2.5 seconds\n };\n\n return {\n createPopupAndSetupListeners,\n isLoading,\n };\n};\n\nconst incomingEvents = {\n authMaterialFromPopupCallback: z.object({ oneTimeSecret: z.string() }),\n errorFromPopupCallback: z.object({ error: z.string() }),\n};\n\ntype IncomingEvents = {\n authMaterialFromPopupCallback: typeof incomingEvents.authMaterialFromPopupCallback;\n errorFromPopupCallback: typeof incomingEvents.errorFromPopupCallback;\n};\n\ntype OutgoingEvents = Record<string, never>;\n","import type { ButtonHTMLAttributes } from \"react\";\nimport { GoogleIcon } from \"@/icons/google\";\nimport { useOAuthWindowListener } from \"@/hooks/useOAuthWindowListener\";\nimport { Spinner } from \"@/components/common/Spinner\";\nimport { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport { classNames } from \"@/utils/classNames\";\n\nexport function GoogleSignIn({ ...props }: ButtonHTMLAttributes<HTMLButtonElement>) {\n const { step, appearance, isLoadingOauthUrlMap } = useAuthForm();\n const { createPopupAndSetupListeners, isLoading: isLoadingOAuthWindow } = useOAuthWindowListener(\"google\");\n const isLoading = isLoadingOauthUrlMap || isLoadingOAuthWindow;\n\n if (step !== \"initial\") {\n return null;\n }\n\n return (\n <button\n className={classNames(\n \"relative flex text-base p-4 bg-cm-muted-primary text-cm-text-primary items-center w-full rounded-xl justify-center\",\n \"transition-colors duration-200 ease-in-out\",\n \"hover:bg-cm-hover focus:bg-cm-hover outline-none\",\n isLoading ? \"cursor-not-allowed hover:bg-cm-muted-primary\" : \"\"\n )}\n style={{\n borderRadius: appearance?.borderRadius,\n backgroundColor: appearance?.colors?.buttonBackground,\n }}\n onClick={isLoading ? undefined : createPopupAndSetupListeners}\n {...props}\n >\n <>\n <GoogleIcon className=\"h-[25px] w-[25px] absolute left-[18px]\" />\n {isLoading ? (\n <Spinner\n style={{\n color: appearance?.colors?.textSecondary,\n fill: appearance?.colors?.textPrimary,\n }}\n />\n ) : (\n <span\n className=\"font-medium\"\n style={{ margin: \"0px 32px\", color: appearance?.colors?.textPrimary }}\n >\n Sign in with Google\n </span>\n )}\n </>\n <span className=\"sr-only\">Sign in with Google</span>\n </button>\n );\n}\n","import { useEffect, useMemo, useState } from \"react\";\nimport { useSignIn, QRCode, type UseSignInData } from \"@farcaster/auth-kit\";\nimport { FarcasterIcon } from \"@/icons/farcaster\";\nimport { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport { Spinner } from \"@/components/common/Spinner\";\nimport { classNames } from \"@/utils/classNames\";\nimport { AuthFormBackButton } from \"../../AuthFormBackButton\";\nimport { useCrossmintAuth } from \"@/hooks/useCrossmintAuth\";\nexport function FarcasterSignIn() {\n const { step, appearance, setStep, setError } = useAuthForm();\n\n if (step === \"initial\") {\n return (\n <div>\n <button\n className={classNames(\n \"relative flex text-base p-4 bg-cm-muted-primary text-cm-text-primary items-center w-full rounded-xl justify-center\",\n \"transition-colors duration-200 ease-in-out\",\n \"hover:bg-cm-hover focus:bg-cm-hover outline-none\"\n )}\n style={{\n borderRadius: appearance?.borderRadius,\n backgroundColor: appearance?.colors?.buttonBackground,\n }}\n onClick={() => {\n setStep(\"qrCode\");\n setError(null);\n }}\n >\n <FarcasterIcon className=\"h-[25px] w-[25px] absolute left-[18px]\" />\n <span\n className=\"font-medium\"\n style={{ margin: \"0px 32px\", color: appearance?.colors?.textPrimary }}\n >\n Sign in with Farcaster\n </span>\n <span className=\"sr-only\">Sign in with Farcaster</span>\n </button>\n </div>\n );\n }\n\n if (step === \"qrCode\") {\n return <FarcasterQRCode />;\n }\n\n return null;\n}\n\n// We want this to be a separate component so it can completely un-render when the user goes back to the initial screen\nfunction FarcasterQRCode() {\n const { crossmintAuth } = useCrossmintAuth();\n const { appearance, setStep, setDialogOpen, setError } = useAuthForm();\n const [farcasterData, setFarcasterData] = useState<UseSignInData | null>(null);\n\n const farcasterProps = useMemo(\n () => ({\n onSuccess: (data: UseSignInData) => {\n // Step 3. set the farcaster data once the sign in is successful\n setFarcasterData(data);\n },\n }),\n []\n );\n\n const { signIn, url: qrCodeUrl, connect, signOut, isConnected } = useSignIn(farcasterProps);\n\n const handleFarcasterSignIn = async (data: UseSignInData) => {\n setError(null);\n try {\n const oneTimeSecret = await crossmintAuth?.signInWithFarcaster(data);\n // Step 5. fetch the auth material, close the dialog, and unrender any farcaster client stuff\n await crossmintAuth?.handleRefreshAuthMaterial(oneTimeSecret as string);\n setDialogOpen(false);\n setStep(\"initial\");\n } catch (error) {\n console.error(\"Error during Farcaster sign-in:\", error);\n setError(\"Failed to sign in with Farcaster\");\n }\n };\n\n useEffect(() => {\n if (farcasterData != null) {\n // Step 4. call the handleFarcasterSignInfunction to handle the sign in\n handleFarcasterSignIn(farcasterData);\n }\n }, [farcasterData]);\n\n useEffect(() => {\n if (isConnected) {\n // Step 2. once connected, call the signIn function to start the sign in process\n signIn();\n }\n }, [isConnected]);\n\n useEffect(() => {\n // Step 1. call the connect function to initialize the connection\n connect();\n }, []);\n\n return (\n <div>\n <AuthFormBackButton\n onClick={() => {\n signOut();\n setStep(\"initial\");\n }}\n iconColor={appearance?.colors?.textPrimary}\n ringColor={appearance?.colors?.accent}\n />\n\n <div className=\"flex flex-col items-center gap-4\">\n <div className=\"text-center\">\n <h3\n className=\"text-lg font-semibold text-cm-text-primary mb-2\"\n style={{ color: appearance?.colors?.textPrimary }}\n >\n Sign in with Farcaster\n </h3>\n <p\n className=\"text-base font-normal text-cm-text-secondary\"\n style={{ color: appearance?.colors?.textSecondary }}\n >\n Scan with your phone's camera to continue.\n </p>\n </div>\n <div\n className=\"bg-white aspect-square rounded-lg p-4\"\n style={{\n backgroundColor: appearance?.colors?.inputBackground,\n borderRadius: appearance?.borderRadius,\n }}\n >\n {qrCodeUrl != null ? (\n <QRCode uri={qrCodeUrl} size={280} />\n ) : (\n <div className=\"min-h-[246px] flex items-center justify-center\">\n <Spinner\n style={{\n color: appearance?.colors?.textSecondary,\n fill: appearance?.colors?.textPrimary,\n }}\n />\n </div>\n )}\n </div>\n {qrCodeUrl ? (\n <>\n <p\n className=\"text-base text-center font-normal text-cm-text-secondary\"\n style={{ color: appearance?.colors?.textSecondary }}\n >\n Alternatively, click on this link to open Warpcast.\n </p>\n <a\n href={qrCodeUrl}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n className=\"text-base font-normal text-cm-link\"\n style={{ color: appearance?.colors?.textLink }}\n >\n Open Warpcast\n </a>\n </>\n ) : null}\n </div>\n </div>\n );\n}\n","import { ChevronRightIcon } from \"@/icons/chevronRight\";\nimport { WalletIcon } from \"@/icons/wallet\";\nimport { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport { classNames } from \"@/utils/classNames\";\n\nexport function Web3AuthFlowButton() {\n const { step, appearance, setStep, setError } = useAuthForm();\n\n if (step !== \"initial\") {\n return null;\n }\n\n return (\n <button\n className={classNames(\n \"relative flex text-base p-4 bg-cm-muted-primary text-cm-text-primary items-center w-full rounded-xl justify-center\",\n \"transition-colors duration-200 ease-in-out\",\n \"hover:bg-cm-hover focus:bg-cm-hover outline-none\"\n )}\n style={{\n borderRadius: appearance?.borderRadius,\n borderColor: appearance?.colors?.border,\n backgroundColor: appearance?.colors?.buttonBackground,\n }}\n onClick={() => {\n setStep(\"web3\");\n setError(null);\n }}\n >\n <WalletIcon\n className=\"h-[21px] w-[21px] absolute left-[20px]\"\n style={{ color: appearance?.colors?.textPrimary }}\n />\n <span className=\"font-medium\" style={{ margin: \"0px 32px\", color: appearance?.colors?.textPrimary }}>\n Continue with a wallet\n </span>\n <ChevronRightIcon\n className=\"h-[21px] w-[21px] absolute right-[20px]\"\n style={{ color: appearance?.colors?.textSecondary }}\n />\n <span className=\"sr-only\">Continue with a wallet</span>\n </button>\n );\n}\n","import { useState, useEffect } from \"react\";\nimport { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport { Web3Connector } from \"./Web3Connector\";\nimport { useAccount, useChainId, useConnect, useSignMessage } from \"wagmi\";\nimport { useCrossmintAuth } from \"@/hooks/useCrossmintAuth\";\n\ninterface Web3AuthWrapperProps {\n providerType: \"metaMaskSDK\" | \"coinbaseWalletSDK\" | \"walletConnect\";\n flag?: \"isMetaMask\";\n icon: string;\n}\n\nexport function Web3ConnectorContainer({ providerType, flag, icon }: Web3AuthWrapperProps) {\n const { crossmintAuth } = useCrossmintAuth();\n const { appearance, error, setError } = useAuthForm();\n const [isLoading, setIsLoading] = useState(false);\n\n const chainId = useChainId();\n const { address, status: accountStatus } = useAccount(); // hook is causing a hydration error when navigating back\n const { signMessageAsync, status: signMessageStatus } = useSignMessage();\n const { connect, connectors } = useConnect({\n mutation: {\n onError: () => setIsLoading(false),\n },\n });\n\n // fallback to walletConnect if the extension is not installed\n const isExtensionInstalled = window.ethereum?.[flag as keyof typeof window.ethereum] ?? false;\n if (!isExtensionInstalled) {\n providerType = \"walletConnect\";\n }\n\n const connector = connectors.find((c) => c.id === providerType);\n\n useEffect(() => {\n if (address != null) {\n handleSignIn();\n }\n }, [address]);\n\n const handleSignIn = async () => {\n if (address == null) {\n return;\n }\n setIsLoading(true);\n setError(null);\n\n try {\n const res = await crossmintAuth?.signInWithSmartWallet(address);\n const signature = await signMessageAsync({ message: res.challenge });\n const authResponse = (await crossmintAuth?.authenticateSmartWallet(address, signature)) as {\n oneTimeSecret: string;\n };\n\n const oneTimeSecret = authResponse.oneTimeSecret;\n await crossmintAuth?.handleRefreshAuthMaterial(oneTimeSecret);\n } catch (error) {\n console.error(`Error connecting to ${providerType}:`, error);\n setError(`Error connecting to ${providerType}. Please try again or contact support.`);\n } finally {\n setIsLoading(false);\n }\n };\n\n const isLoadingOrPending =\n isLoading ||\n accountStatus === \"connecting\" ||\n accountStatus === \"reconnecting\" ||\n signMessageStatus === \"pending\";\n\n return (\n <Web3Connector\n icon={icon}\n appearance={appearance}\n headingText={signMessageStatus === \"pending\" ? \"Sign to verify\" : \"Connect your wallet\"}\n buttonText={error != null && !isLoadingOrPending ? \"Retry\" : isLoadingOrPending ? \"Connecting\" : \"Connect\"}\n isLoading={isLoadingOrPending}\n onConnectClick={() => {\n if (address != null) {\n handleSignIn();\n } else if (connector) {\n connect({ connector, chainId });\n }\n }}\n />\n );\n}\n","import { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport { AuthFormBackButton } from \"../../AuthFormBackButton\";\nimport { Web3ConnectorButton } from \"./Web3ConnectorButton\";\nimport { metamaskIcon, walletConnectIcon } from \"@/icons/base64Icons\";\nimport { Web3ConnectorContainer } from \"./Web3ConnectorContainer\";\nimport { useAccount, useDisconnect } from \"wagmi\";\n\nexport function Web3Connectors() {\n const { appearance, step, setStep } = useAuthForm();\n const { isConnected } = useAccount();\n const { disconnect } = useDisconnect();\n\n if (step === \"web3\") {\n return (\n <>\n <AuthFormBackButton\n onClick={() => setStep(\"initial\")}\n iconColor={appearance?.colors?.textPrimary}\n ringColor={appearance?.colors?.accent}\n />\n <div className=\"flex flex-col items-center gap-2\">\n <div className=\"text-center mb-6\">\n <h3\n className=\"text-lg font-semibold text-cm-text-primary\"\n style={{ color: appearance?.colors?.textPrimary }}\n >\n Connect wallet\n </h3>\n </div>\n <div className=\"flex flex-col gap-[10px] w-full\">\n <Web3ConnectorButton\n title=\"Metamask\"\n appearance={appearance}\n img={metamaskIcon}\n onClick={() => {\n if (isConnected) {\n disconnect();\n }\n // wait for all disconnect state to be cleared before proceeding to the next step\n setTimeout(() => {\n setStep(\"web3/metamask\");\n }, 200);\n }}\n />\n <Web3ConnectorButton\n title=\"WalletConnect\"\n appearance={appearance}\n img={walletConnectIcon}\n onClick={() => {\n if (isConnected) {\n disconnect();\n }\n setTimeout(() => {\n setStep(\"web3/walletconnect\");\n }, 200);\n }}\n />\n </div>\n </div>\n </>\n );\n }\n\n if (step === \"web3/metamask\") {\n return (\n <>\n <AuthFormBackButton\n onClick={() => {\n setStep(\"web3\");\n }}\n iconColor={appearance?.colors?.textPrimary}\n ringColor={appearance?.colors?.accent}\n />\n <Web3ConnectorContainer providerType=\"metaMaskSDK\" flag=\"isMetaMask\" icon={metamaskIcon} />\n </>\n );\n }\n\n if (step === \"web3/walletconnect\") {\n return (\n <>\n <AuthFormBackButton\n onClick={() => {\n setStep(\"web3\");\n }}\n iconColor={appearance?.colors?.textPrimary}\n ringColor={appearance?.colors?.accent}\n />\n <Web3ConnectorContainer providerType=\"walletConnect\" icon={walletConnectIcon} />\n </>\n );\n }\n\n return null;\n}\n","import { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport { Web3AuthFlowButton } from \"./Web3AuthFlowButton\";\nimport { Web3Connectors } from \"./Web3Connectors\";\n\nexport function Web3AuthFlow() {\n const { step } = useAuthForm();\n\n if (step.startsWith(\"web3\")) {\n return <Web3Connectors />;\n }\n\n if (step === \"initial\") {\n return <Web3AuthFlowButton />;\n }\n\n return null;\n}\n","import { useAuthForm } from \"@/providers/auth/AuthFormProvider\";\nimport { EmailAuthFlow } from \"./methods/email/EmailAuthFlow\";\nimport { Divider } from \"../common/Divider\";\nimport { GoogleSignIn } from \"./methods/google/GoogleSignIn\";\nimport { FarcasterSignIn } from \"./methods/farcaster/FarcasterSignIn\";\nimport { PoweredByCrossmint } from \"../common/PoweredByCrossmint\";\nimport { FarcasterProvider } from \"../../providers/auth/FarcasterProvider\";\nimport { classNames } from \"@/utils/classNames\";\nimport { Web3AuthFlow } from \"./methods/web3/Web3AuthFlow\";\nimport Color from \"color\";\nimport { AlertIcon } from \"@/icons/alert\";\n\nexport function AuthForm({ className }: { className?: string }) {\n const { step, appearance, loginMethods, baseUrl, error } = useAuthForm();\n\n return (\n <div\n className={classNames(\n \"relative p-6 pb-4 !min-[480px]:p-10 !min-[480px]:pb-8 flex flex-col gap-[10px] antialiased animate-none\",\n className\n )}\n >\n {error ? (\n <div\n className=\"flex items-start justify-start w-full rounded-lg p-2 mt-4 bg-cm-danger-muted\"\n style={{\n backgroundColor: new Color(appearance?.colors?.danger ?? \"#f44336\").alpha(0.12).toString(),\n }}\n >\n <AlertIcon customColor={appearance?.colors?.danger ?? \"#f44336\"} />\n <p className=\"ml-2 text-sm\" style={{ color: appearance?.colors?.danger ?? \"#f44336\" }}>\n {error}\n </p>\n </div>\n ) : null}\n\n {step === \"initial\" ? (\n <div>\n <h1\n className=\"text-2xl font-bold text-cm-text-primary\"\n style={{ color: appearance?.colors?.textPrimary }}\n >\n Sign In\n </h1>\n <p\n className=\"text-base font-normal mb-3 text-cm-text-secondary\"\n style={{ color: appearance?.colors?.textSecondary }}\n >\n Sign in using one of the options below\n </p>\n </div>\n ) : null}\n\n {loginMethods.includes(\"email\") ? (\n <>\n <EmailAuthFlow />\n {loginMethods.length > 1 ? <Divider appearance={appearance} text=\"OR\" /> : null}\n </>\n ) : null}\n\n {loginMethods.includes(\"google\") ? <GoogleSignIn /> : null}\n {loginMethods.includes(\"farcaster\") ? (\n <FarcasterProvider baseUrl={baseUrl}>\n <FarcasterSignIn />\n </FarcasterProvider>\n ) : null}\n {loginMethods.includes(\"web3\") ? <Web3AuthFlow /> : null}\n\n {step === \"initial\" || step === \"otp\" ? (\n <PoweredByCrossmint\n className=\"mt-4 justify-center\"\n color={appearance?.colors?.textSecondary ?? \"#A4AFB2\"}\n />\n ) : null}\n </div>\n );\n}\n"],"mappings":"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","names":["createContext","useMemo","useState","useContext","createContext","useEffect","useMemo","useRef","useState","useContext","useContext","useContext","useContext","oauthUrlMap","error","useState","useState","jsx","jsx","useState","_a","_b","useState","jsx","jsxs","useState","_e","jsx","useState","jsx","jsxs","useEffect","useState","useState","useEffect","Fragment","jsx","jsxs","_a","useEffect","useState","Fragment","jsx","jsxs","useState","useEffect","jsx","jsxs","useState","useEffect","jsx","useState","useEffect","error","useAccount","Fragment","jsx","jsxs","jsx","Color","Fragment","jsx","jsxs","Color","useEffect","jsx","jsxs","Fragment","jsx","jsxs","createContext","useState","useRef","useMemo","useEffect","user","useContext","jsx","jsxs","createContext","useMemo","useState"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }
2
2
 
3
- var _chunkCOLJFFZFcjs = require('./chunk-COLJFFZF.cjs');
3
+ var _chunkRYB3MSFQcjs = require('./chunk-RYB3MSFQ.cjs');
4
4
 
5
5
 
6
6
  var _chunkKEKBOJCFcjs = require('./chunk-KEKBOJCF.cjs');
@@ -23,7 +23,7 @@ function EmbeddedCheckoutV3IFrame(props) {
23
23
  const [iframeClient, setIframeClient] = _react.useState.call(void 0, null);
24
24
  const [height, setHeight] = _react.useState.call(void 0, 0);
25
25
  const { crossmint } = _chunkKEKBOJCFcjs.useCrossmint.call(void 0, );
26
- const apiClient = _chunkCOLJFFZFcjs.createCrossmintApiClient.call(void 0, crossmint, {
26
+ const apiClient = _chunkRYB3MSFQcjs.createCrossmintApiClient.call(void 0, crossmint, {
27
27
  usageOrigin: "client"
28
28
  });
29
29
  const embedV3Service = _clientsdkbase.crossmintEmbeddedCheckoutV3Service.call(void 0, { apiClient });
@@ -76,11 +76,12 @@ function EmbeddedCheckoutV3IFrame(props) {
76
76
  iframeClient,
77
77
  apiKeyEnvironment: apiClient["parsedAPIKey"].environment
78
78
  }
79
- ) : null
79
+ ) : null,
80
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { id: "crossmint-focus-target", tabIndex: -1 })
80
81
  ] });
81
82
  }
82
83
 
83
84
 
84
85
 
85
86
  exports.EmbeddedCheckoutV3IFrame = EmbeddedCheckoutV3IFrame;
86
- //# sourceMappingURL=chunk-MDV3M7FD.cjs.map
87
+ //# sourceMappingURL=chunk-TK2JDIUN.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/embed/v3/EmbeddedCheckoutV3IFrame.tsx"],"names":[],"mappings":";;;;;;;;AACA,SAAS,MAAM,WAAW,QAAQ,gBAAgB;AAElD;AAAA,EAGI;AAAA,OACG;AA2CC,mBACI,KADJ;AAvCR,IAAM,gCAAgC;AAAA,EAAK;AAAA;AAAA,IAEvC,OAAO,gEAAwC,EAAE,KAAK,CAAC,SAAS;AAAA,MAC5D,SAAS,IAAI;AAAA,IACjB,EAAE;AAAA;AACN;AAEO,SAAS,yBAAyB,OAAyC;AAC9E,QAAM,CAAC,cAAc,eAAe,IAAI,SAAiD,IAAI;AAC7F,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,CAAC;AAEtC,QAAM,EAAE,UAAU,IAAI,aAAa;AACnC,QAAM,YAAY,yBAAyB,WAAW;AAAA,IAClD,aAAa;AAAA,EACjB,CAAC;AACD,QAAM,iBAAiB,mCAAmC,EAAE,UAAU,CAAC;AAEvE,QAAM,MAAM,OAA0B,IAAI;AAE1C,YAAU,MAAM;AACZ,UAAM,SAAS,IAAI;AACnB,QAAI,CAAC,UAAU,cAAc;AACzB;AAAA,IACJ;AACA,oBAAgB,eAAe,OAAO,aAAa,MAAM,CAAC;AAAA,EAC9D,GAAG,CAAC,IAAI,SAAS,YAAY,CAAC;AAE9B,YAAU,MAAM;AACZ,QAAI,gBAAgB,MAAM;AACtB;AAAA,IACJ;AACA,iBAAa,GAAG,qBAAqB,CAAC,SAAS,UAAU,KAAK,MAAM,CAAC;AAErE,WAAO,MAAM;AACT,mBAAa,IAAI,mBAAmB;AAAA,IACxC;AAAA,EACJ,GAAG,CAAC,YAAY,CAAC;AAEjB,SACI,iCACI;AAAA;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,KAAK,eAAe,OAAO,OAAO,KAAK;AAAA,QACvC,IAAG;AAAA,QACH,MAAK;AAAA,QACL,OAAM;AAAA,QACN,OAAO;AAAA,UACH,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,OAAO;AAAA,UACP,UAAU;AAAA,UACV,UAAU;AAAA,UACV,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,SAAS;AAAA,UACT,YAAY;AAAA,UACZ,QAAQ,GAAG,MAAM;AAAA,UACjB,iBAAiB;AAAA,QACrB;AAAA;AAAA,IACJ;AAAA,IACC,MAAM,QAAQ,OAAO,UAClB;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,mBAAmB,UAAU,cAAc,EAAE;AAAA;AAAA,IACjD,IACA;AAAA,IACJ,oBAAC,UAAK,IAAG,0BAAyB,UAAU,IAAI;AAAA,KACpD;AAER","sourcesContent":["import { useCrossmint } from \"@/hooks\";\nimport { lazy, useEffect, useRef, useState } from \"react\";\n\nimport {\n type CrossmintEmbeddedCheckoutV3Props,\n type EmbeddedCheckoutV3IFrameEmitter,\n crossmintEmbeddedCheckoutV3Service,\n} from \"@crossmint/client-sdk-base\";\n\nimport { createCrossmintApiClient } from \"@/utils/createCrossmintApiClient\";\n\nconst CryptoWalletConnectionHandler = lazy(() =>\n // @ts-expect-error - Error because we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n import(\"./crypto/CryptoWalletConnectionHandler\").then((mod) => ({\n default: mod.CryptoWalletConnectionHandler,\n }))\n);\n\nexport function EmbeddedCheckoutV3IFrame(props: CrossmintEmbeddedCheckoutV3Props) {\n const [iframeClient, setIframeClient] = useState<EmbeddedCheckoutV3IFrameEmitter | null>(null);\n const [height, setHeight] = useState(0);\n\n const { crossmint } = useCrossmint();\n const apiClient = createCrossmintApiClient(crossmint, {\n usageOrigin: \"client\",\n });\n const embedV3Service = crossmintEmbeddedCheckoutV3Service({ apiClient });\n\n const ref = useRef<HTMLIFrameElement>(null);\n\n useEffect(() => {\n const iframe = ref.current;\n if (!iframe || iframeClient) {\n return;\n }\n setIframeClient(embedV3Service.iframe.createClient(iframe));\n }, [ref.current, iframeClient]);\n\n useEffect(() => {\n if (iframeClient == null) {\n return;\n }\n iframeClient.on(\"ui:height.changed\", (data) => setHeight(data.height));\n\n return () => {\n iframeClient.off(\"ui:height.changed\");\n };\n }, [iframeClient]);\n\n return (\n <>\n <iframe\n ref={ref}\n src={embedV3Service.iframe.getUrl(props)}\n id=\"crossmint-embedded-checkout.iframe\"\n role=\"crossmint-embedded-checkout.iframe\"\n allow=\"payment *\"\n style={{\n boxShadow: \"none\",\n border: \"none\",\n padding: \"0px\",\n width: \"100%\",\n minWidth: \"100%\",\n overflow: \"hidden\",\n display: \"block\",\n userSelect: \"none\",\n transform: \"translate(0px)\",\n opacity: \"1\",\n transition: \"ease 0s, opacity 0.4s ease 0.1s\",\n height: `${height}px`,\n backgroundColor: \"transparent\",\n }}\n />\n {props.payment.crypto.enabled ? (\n <CryptoWalletConnectionHandler\n iframeClient={iframeClient}\n apiKeyEnvironment={apiClient[\"parsedAPIKey\"].environment}\n />\n ) : null}\n <span id=\"crossmint-focus-target\" tabIndex={-1} />\n </>\n );\n}\n"]}
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-L3FKENHU.js";
8
8
  import {
9
9
  LIB_VERSION
10
- } from "./chunk-MWRMO6JC.js";
10
+ } from "./chunk-6PCSAKDU.js";
11
11
  import {
12
12
  __objRest,
13
13
  __spreadValues
@@ -150,4 +150,4 @@ function CrossmintPayButton(buttonProps) {
150
150
  export {
151
151
  CrossmintPayButton
152
152
  };
153
- //# sourceMappingURL=chunk-Y4UEFDMP.js.map
153
+ //# sourceMappingURL=chunk-X3RNS2B7.js.map
@@ -5,9 +5,9 @@ import {
5
5
  classNames
6
6
  } from "./chunk-RZPQIRIY.js";
7
7
 
8
- // src/components/auth/methods/web3/Web3ConnectButton.tsx
8
+ // src/components/auth/methods/web3/Web3Connector.tsx
9
9
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
- function Web3ConnectButton({
10
+ function Web3Connector({
11
11
  icon,
12
12
  appearance,
13
13
  isLoading,
@@ -59,6 +59,6 @@ function Web3ConnectButton({
59
59
  }
60
60
 
61
61
  export {
62
- Web3ConnectButton
62
+ Web3Connector
63
63
  };
64
- //# sourceMappingURL=chunk-6DNBJVR5.js.map
64
+ //# sourceMappingURL=chunk-ZSWTJ6E7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/auth/methods/web3/Web3Connector.tsx"],"sourcesContent":["import type { UIConfig } from \"@crossmint/common-sdk-base\";\nimport { PoweredByCrossmint } from \"@/components/common/PoweredByCrossmint\";\nimport { classNames } from \"@/utils/classNames\";\n\nexport function Web3Connector({\n icon,\n appearance,\n isLoading,\n onConnectClick,\n headingText,\n buttonText,\n}: {\n icon: string;\n appearance?: UIConfig;\n isLoading: boolean;\n onConnectClick: () => void;\n headingText: string;\n buttonText: string;\n}) {\n return (\n <>\n <div className=\"flex flex-col items-center text-center mt-8 mb-4 gap-2\">\n <img src={icon} alt={\"metamask\"} className=\"h-[74px] w-[74px]\" />\n <h3\n className=\"text-lg font-semibold text-cm-text-primary\"\n style={{ color: appearance?.colors?.textPrimary }}\n >\n {headingText}\n </h3>\n <p\n className=\"text-base font-normal text-cm-text-primary\"\n style={{ color: appearance?.colors?.textPrimary }}\n >\n Don’t see your wallet? Check your other browser windows.\n </p>\n </div>\n\n <button\n className={classNames(\n \"relative flex text-base p-4 bg-cm-muted-primary text-cm-text-primary items-center w-full rounded-xl justify-center\",\n \"transition-colors duration-200 ease-in-out\",\n \"hover:bg-cm-hover focus:bg-cm-hover outline-none\",\n isLoading ? \"cursor-not-allowed bg-cm-muted-primary\" : \"\"\n )}\n style={{\n borderRadius: appearance?.borderRadius,\n borderColor: appearance?.colors?.border,\n backgroundColor: appearance?.colors?.buttonBackground,\n }}\n onClick={isLoading ? undefined : onConnectClick}\n >\n <span className=\"font-medium\" style={{ color: appearance?.colors?.textPrimary }}>\n {buttonText}\n </span>\n </button>\n\n <div className=\"flex justify-center pt-4\">\n <PoweredByCrossmint color={appearance?.colors?.textSecondary} />\n </div>\n </>\n );\n}\n"],"mappings":";;;;;;;;AAoBQ,mBAEQ,KADJ,YADJ;AAhBD,SAAS,cAAc;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAOG;AAlBH;AAmBI,SACI,iCACI;AAAA,yBAAC,SAAI,WAAU,0DACX;AAAA,0BAAC,SAAI,KAAK,MAAM,KAAK,YAAY,WAAU,qBAAoB;AAAA,MAC/D;AAAA,QAAC;AAAA;AAAA,UACG,WAAU;AAAA,UACV,OAAO,EAAE,QAAO,8CAAY,WAAZ,mBAAoB,YAAY;AAAA,UAE/C;AAAA;AAAA,MACL;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACG,WAAU;AAAA,UACV,OAAO,EAAE,QAAO,8CAAY,WAAZ,mBAAoB,YAAY;AAAA,UACnD;AAAA;AAAA,MAED;AAAA,OACJ;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACG,WAAW;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,UACA,YAAY,2CAA2C;AAAA,QAC3D;AAAA,QACA,OAAO;AAAA,UACH,cAAc,yCAAY;AAAA,UAC1B,cAAa,8CAAY,WAAZ,mBAAoB;AAAA,UACjC,kBAAiB,8CAAY,WAAZ,mBAAoB;AAAA,QACzC;AAAA,QACA,SAAS,YAAY,SAAY;AAAA,QAEjC,8BAAC,UAAK,WAAU,eAAc,OAAO,EAAE,QAAO,8CAAY,WAAZ,mBAAoB,YAAY,GACzE,sBACL;AAAA;AAAA,IACJ;AAAA,IAEA,oBAAC,SAAI,WAAU,4BACX,8BAAC,sBAAmB,QAAO,8CAAY,WAAZ,mBAAoB,eAAe,GAClE;AAAA,KACJ;AAER;","names":[]}
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkZOHRCGGIcjs = require('../chunk-ZOHRCGGI.cjs');
4
- require('../chunk-RTC2AZ6A.cjs');
3
+ var _chunk4DICVJSPcjs = require('../chunk-4DICVJSP.cjs');
4
+ require('../chunk-ITCHCRGX.cjs');
5
5
  require('../chunk-4DAZAO6Y.cjs');
6
6
 
7
7
 
8
- exports.CrossmintNFTCollectionView = _chunkZOHRCGGIcjs.CrossmintNFTCollectionView;
8
+ exports.CrossmintNFTCollectionView = _chunk4DICVJSPcjs.CrossmintNFTCollectionView;
9
9
  //# sourceMappingURL=CrossmintNFTCollectionView.cjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CrossmintNFTCollectionView
3
- } from "../chunk-HVI7FCLP.js";
4
- import "../chunk-MWRMO6JC.js";
3
+ } from "../chunk-KHZQYMF7.js";
4
+ import "../chunk-6PCSAKDU.js";
5
5
  import "../chunk-CRTRMMJ7.js";
6
6
  export {
7
7
  CrossmintNFTCollectionView
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkDVONA2BZcjs = require('../chunk-DVONA2BZ.cjs');
4
- require('../chunk-RTC2AZ6A.cjs');
3
+ var _chunkFLWOWTHQcjs = require('../chunk-FLWOWTHQ.cjs');
4
+ require('../chunk-ITCHCRGX.cjs');
5
5
  require('../chunk-4DAZAO6Y.cjs');
6
6
 
7
7
 
8
- exports.CrossmintNFTDetail = _chunkDVONA2BZcjs.CrossmintNFTDetail;
8
+ exports.CrossmintNFTDetail = _chunkFLWOWTHQcjs.CrossmintNFTDetail;
9
9
  //# sourceMappingURL=CrossmintNFTDetail.cjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CrossmintNFTDetail
3
- } from "../chunk-YO7ZZF32.js";
4
- import "../chunk-MWRMO6JC.js";
3
+ } from "../chunk-Q4BSNZSI.js";
4
+ import "../chunk-6PCSAKDU.js";
5
5
  import "../chunk-CRTRMMJ7.js";
6
6
  export {
7
7
  CrossmintNFTDetail
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkFOCUIKYHcjs = require('../../chunk-FOCUIKYH.cjs');
4
- require('../../chunk-DJ32OEWG.cjs');
5
- require('../../chunk-ZCYU7QA6.cjs');
3
+ var _chunkEBMORHG3cjs = require('../../chunk-EBMORHG3.cjs');
4
+ require('../../chunk-HSLAH2PN.cjs');
5
+ require('../../chunk-Q3UM7UCM.cjs');
6
6
  require('../../chunk-5S4VO6RB.cjs');
7
7
  require('../../chunk-QQXBYOKA.cjs');
8
8
  require('../../chunk-MJHLKJ6X.cjs');
@@ -11,7 +11,6 @@ require('../../chunk-MH37OJT2.cjs');
11
11
  require('../../chunk-PBSL6JOF.cjs');
12
12
  require('../../chunk-B7LYPQ4K.cjs');
13
13
  require('../../chunk-BE2ZLB3L.cjs');
14
- require('../../chunk-GY6G3ZC2.cjs');
15
14
  require('../../chunk-5RX5WFEW.cjs');
16
15
  require('../../chunk-HCW4RO2O.cjs');
17
16
  require('../../chunk-UASNCH3A.cjs');
@@ -25,13 +24,13 @@ require('../../chunk-URKPLEPV.cjs');
25
24
  require('../../chunk-HPOZ6I54.cjs');
26
25
  require('../../chunk-YE55IKBP.cjs');
27
26
  require('../../chunk-ENCR5SUW.cjs');
28
- require('../../chunk-67AB7TWG.cjs');
29
- require('../../chunk-COLJFFZF.cjs');
27
+ require('../../chunk-AQELE4DZ.cjs');
28
+ require('../../chunk-RYB3MSFQ.cjs');
30
29
  require('../../chunk-KEKBOJCF.cjs');
31
30
  require('../../chunk-A2JCJ2OV.cjs');
32
- require('../../chunk-RTC2AZ6A.cjs');
31
+ require('../../chunk-ITCHCRGX.cjs');
33
32
  require('../../chunk-4DAZAO6Y.cjs');
34
33
 
35
34
 
36
- exports.AuthForm = _chunkFOCUIKYHcjs.AuthForm;
35
+ exports.AuthForm = _chunkEBMORHG3cjs.AuthForm;
37
36
  //# sourceMappingURL=AuthForm.cjs.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  AuthForm
3
- } from "../../chunk-CUODMU27.js";
4
- import "../../chunk-WK5RAFJ3.js";
5
- import "../../chunk-6DNBJVR5.js";
3
+ } from "../../chunk-T5WAVOPI.js";
4
+ import "../../chunk-NFWMF6T7.js";
5
+ import "../../chunk-ZSWTJ6E7.js";
6
6
  import "../../chunk-OZS4WEKF.js";
7
7
  import "../../chunk-A7J4DAE7.js";
8
8
  import "../../chunk-XEZF7G64.js";
@@ -11,7 +11,6 @@ import "../../chunk-33WZFL2D.js";
11
11
  import "../../chunk-FKIMKZ4Y.js";
12
12
  import "../../chunk-QTL5I5C2.js";
13
13
  import "../../chunk-HATQVB6H.js";
14
- import "../../chunk-QJ44PL7L.js";
15
14
  import "../../chunk-RZPQIRIY.js";
16
15
  import "../../chunk-ZDQGQY7Z.js";
17
16
  import "../../chunk-IQPA3QOV.js";
@@ -25,11 +24,11 @@ import "../../chunk-I63FQCIV.js";
25
24
  import "../../chunk-ZIHCLVCD.js";
26
25
  import "../../chunk-H4F7UVPT.js";
27
26
  import "../../chunk-YWVQCHQF.js";
28
- import "../../chunk-6TUZ5CU7.js";
29
- import "../../chunk-GN7OANUR.js";
27
+ import "../../chunk-KCGRRFIF.js";
28
+ import "../../chunk-EFT2TZG5.js";
30
29
  import "../../chunk-3J6CUUWT.js";
31
30
  import "../../chunk-AUEQQ4D3.js";
32
- import "../../chunk-MWRMO6JC.js";
31
+ import "../../chunk-6PCSAKDU.js";
33
32
  import "../../chunk-CRTRMMJ7.js";
34
33
  export {
35
34
  AuthForm
@@ -1,10 +1,36 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkGY6G3ZC2cjs = require('../../chunk-GY6G3ZC2.cjs');
3
+ var _chunkEBMORHG3cjs = require('../../chunk-EBMORHG3.cjs');
4
+ require('../../chunk-HSLAH2PN.cjs');
5
+ require('../../chunk-Q3UM7UCM.cjs');
6
+ require('../../chunk-5S4VO6RB.cjs');
7
+ require('../../chunk-QQXBYOKA.cjs');
8
+ require('../../chunk-MJHLKJ6X.cjs');
9
+ require('../../chunk-QT7UEJZG.cjs');
10
+ require('../../chunk-MH37OJT2.cjs');
11
+ require('../../chunk-PBSL6JOF.cjs');
12
+ require('../../chunk-B7LYPQ4K.cjs');
13
+ require('../../chunk-BE2ZLB3L.cjs');
4
14
  require('../../chunk-5RX5WFEW.cjs');
5
15
  require('../../chunk-HCW4RO2O.cjs');
16
+ require('../../chunk-UASNCH3A.cjs');
17
+ require('../../chunk-MUS7DUPS.cjs');
18
+ require('../../chunk-IP4HQL5I.cjs');
19
+ require('../../chunk-KNOUJZN5.cjs');
20
+ require('../../chunk-ZMSST6ZZ.cjs');
21
+ require('../../chunk-QK5J7FD3.cjs');
22
+ require('../../chunk-AXZLLRBU.cjs');
23
+ require('../../chunk-URKPLEPV.cjs');
24
+ require('../../chunk-HPOZ6I54.cjs');
25
+ require('../../chunk-YE55IKBP.cjs');
26
+ require('../../chunk-ENCR5SUW.cjs');
27
+ require('../../chunk-AQELE4DZ.cjs');
28
+ require('../../chunk-RYB3MSFQ.cjs');
29
+ require('../../chunk-KEKBOJCF.cjs');
30
+ require('../../chunk-A2JCJ2OV.cjs');
31
+ require('../../chunk-ITCHCRGX.cjs');
6
32
  require('../../chunk-4DAZAO6Y.cjs');
7
33
 
8
34
 
9
- exports.AuthFormBackButton = _chunkGY6G3ZC2cjs.AuthFormBackButton;
35
+ exports.AuthFormBackButton = _chunkEBMORHG3cjs.AuthFormBackButton;
10
36
  //# sourceMappingURL=AuthFormBackButton.cjs.map
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React__default from 'react';
3
3
 
4
- declare const AuthFormBackButton: ({ className, iconColor, ringColor, ...props }: React__default.HTMLAttributes<HTMLButtonElement> & {
4
+ declare const AuthFormBackButton: ({ className, iconColor, ringColor, onClick, ...props }: React__default.HTMLAttributes<HTMLButtonElement> & {
5
5
  iconColor?: string;
6
6
  ringColor?: string;
7
7
  }) => react_jsx_runtime.JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React__default from 'react';
3
3
 
4
- declare const AuthFormBackButton: ({ className, iconColor, ringColor, ...props }: React__default.HTMLAttributes<HTMLButtonElement> & {
4
+ declare const AuthFormBackButton: ({ className, iconColor, ringColor, onClick, ...props }: React__default.HTMLAttributes<HTMLButtonElement> & {
5
5
  iconColor?: string;
6
6
  ringColor?: string;
7
7
  }) => react_jsx_runtime.JSX.Element;
@@ -1,8 +1,34 @@
1
1
  import {
2
2
  AuthFormBackButton
3
- } from "../../chunk-QJ44PL7L.js";
3
+ } from "../../chunk-T5WAVOPI.js";
4
+ import "../../chunk-NFWMF6T7.js";
5
+ import "../../chunk-ZSWTJ6E7.js";
6
+ import "../../chunk-OZS4WEKF.js";
7
+ import "../../chunk-A7J4DAE7.js";
8
+ import "../../chunk-XEZF7G64.js";
9
+ import "../../chunk-NMXFWIFA.js";
10
+ import "../../chunk-33WZFL2D.js";
11
+ import "../../chunk-FKIMKZ4Y.js";
12
+ import "../../chunk-QTL5I5C2.js";
13
+ import "../../chunk-HATQVB6H.js";
4
14
  import "../../chunk-RZPQIRIY.js";
5
15
  import "../../chunk-ZDQGQY7Z.js";
16
+ import "../../chunk-IQPA3QOV.js";
17
+ import "../../chunk-CPYPI45H.js";
18
+ import "../../chunk-DZ5MGN25.js";
19
+ import "../../chunk-VZIXXIU5.js";
20
+ import "../../chunk-7KIY6DLW.js";
21
+ import "../../chunk-QFQWKKVU.js";
22
+ import "../../chunk-3KR4GYLF.js";
23
+ import "../../chunk-I63FQCIV.js";
24
+ import "../../chunk-ZIHCLVCD.js";
25
+ import "../../chunk-H4F7UVPT.js";
26
+ import "../../chunk-YWVQCHQF.js";
27
+ import "../../chunk-KCGRRFIF.js";
28
+ import "../../chunk-EFT2TZG5.js";
29
+ import "../../chunk-3J6CUUWT.js";
30
+ import "../../chunk-AUEQQ4D3.js";
31
+ import "../../chunk-6PCSAKDU.js";
6
32
  import "../../chunk-CRTRMMJ7.js";
7
33
  export {
8
34
  AuthFormBackButton
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkFOCUIKYHcjs = require('../../chunk-FOCUIKYH.cjs');
4
- require('../../chunk-DJ32OEWG.cjs');
5
- require('../../chunk-ZCYU7QA6.cjs');
3
+ var _chunkEBMORHG3cjs = require('../../chunk-EBMORHG3.cjs');
4
+ require('../../chunk-HSLAH2PN.cjs');
5
+ require('../../chunk-Q3UM7UCM.cjs');
6
6
  require('../../chunk-5S4VO6RB.cjs');
7
7
  require('../../chunk-QQXBYOKA.cjs');
8
8
  require('../../chunk-MJHLKJ6X.cjs');
@@ -11,7 +11,6 @@ require('../../chunk-MH37OJT2.cjs');
11
11
  require('../../chunk-PBSL6JOF.cjs');
12
12
  require('../../chunk-B7LYPQ4K.cjs');
13
13
  require('../../chunk-BE2ZLB3L.cjs');
14
- require('../../chunk-GY6G3ZC2.cjs');
15
14
  require('../../chunk-5RX5WFEW.cjs');
16
15
  require('../../chunk-HCW4RO2O.cjs');
17
16
  require('../../chunk-UASNCH3A.cjs');
@@ -25,13 +24,13 @@ require('../../chunk-URKPLEPV.cjs');
25
24
  require('../../chunk-HPOZ6I54.cjs');
26
25
  require('../../chunk-YE55IKBP.cjs');
27
26
  require('../../chunk-ENCR5SUW.cjs');
28
- require('../../chunk-67AB7TWG.cjs');
29
- require('../../chunk-COLJFFZF.cjs');
27
+ require('../../chunk-AQELE4DZ.cjs');
28
+ require('../../chunk-RYB3MSFQ.cjs');
30
29
  require('../../chunk-KEKBOJCF.cjs');
31
30
  require('../../chunk-A2JCJ2OV.cjs');
32
- require('../../chunk-RTC2AZ6A.cjs');
31
+ require('../../chunk-ITCHCRGX.cjs');
33
32
  require('../../chunk-4DAZAO6Y.cjs');
34
33
 
35
34
 
36
- exports.default = _chunkFOCUIKYHcjs.AuthFormDialog;
35
+ exports.default = _chunkEBMORHG3cjs.AuthFormDialog;
37
36
  //# sourceMappingURL=AuthFormDialog.cjs.map
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  AuthFormDialog
3
- } from "../../chunk-CUODMU27.js";
4
- import "../../chunk-WK5RAFJ3.js";
5
- import "../../chunk-6DNBJVR5.js";
3
+ } from "../../chunk-T5WAVOPI.js";
4
+ import "../../chunk-NFWMF6T7.js";
5
+ import "../../chunk-ZSWTJ6E7.js";
6
6
  import "../../chunk-OZS4WEKF.js";
7
7
  import "../../chunk-A7J4DAE7.js";
8
8
  import "../../chunk-XEZF7G64.js";
@@ -11,7 +11,6 @@ import "../../chunk-33WZFL2D.js";
11
11
  import "../../chunk-FKIMKZ4Y.js";
12
12
  import "../../chunk-QTL5I5C2.js";
13
13
  import "../../chunk-HATQVB6H.js";
14
- import "../../chunk-QJ44PL7L.js";
15
14
  import "../../chunk-RZPQIRIY.js";
16
15
  import "../../chunk-ZDQGQY7Z.js";
17
16
  import "../../chunk-IQPA3QOV.js";
@@ -25,11 +24,11 @@ import "../../chunk-I63FQCIV.js";
25
24
  import "../../chunk-ZIHCLVCD.js";
26
25
  import "../../chunk-H4F7UVPT.js";
27
26
  import "../../chunk-YWVQCHQF.js";
28
- import "../../chunk-6TUZ5CU7.js";
29
- import "../../chunk-GN7OANUR.js";
27
+ import "../../chunk-KCGRRFIF.js";
28
+ import "../../chunk-EFT2TZG5.js";
30
29
  import "../../chunk-3J6CUUWT.js";
31
30
  import "../../chunk-AUEQQ4D3.js";
32
- import "../../chunk-MWRMO6JC.js";
31
+ import "../../chunk-6PCSAKDU.js";
33
32
  import "../../chunk-CRTRMMJ7.js";
34
33
  export {
35
34
  AuthFormDialog as default