@crossmint/client-sdk-react-ui 1.10.3 → 1.10.5

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 (172) hide show
  1. package/dist/{chunk-H2WTBOQ5.cjs → chunk-3LHIEADG.cjs} +3 -3
  2. package/dist/{chunk-R2H6H2HY.js → chunk-4BGD6LSC.js} +2 -2
  3. package/dist/{chunk-NGWVWCWP.cjs → chunk-6AFXSTEN.cjs} +3 -3
  4. package/dist/{chunk-GHIVSSM5.js → chunk-7YHGZZ6G.js} +2 -2
  5. package/dist/{chunk-2EYYCX3O.cjs → chunk-CPISBXIR.cjs} +2 -2
  6. package/dist/{chunk-2EYYCX3O.cjs.map → chunk-CPISBXIR.cjs.map} +1 -1
  7. package/dist/{chunk-7EGLPJKV.cjs → chunk-E7KTAG6X.cjs} +3 -3
  8. package/dist/{chunk-FOCUIKYH.cjs → chunk-EBMORHG3.cjs} +160 -79
  9. package/dist/chunk-EBMORHG3.cjs.map +1 -0
  10. package/dist/{chunk-HXZYERJJ.js → chunk-FKRBO2MK.js} +2 -2
  11. package/dist/{chunk-3RXUFZTR.cjs → chunk-G526QBKQ.cjs} +3 -3
  12. package/dist/{chunk-L5BIVHQJ.cjs → chunk-GGVJALEH.cjs} +3 -3
  13. package/dist/{chunk-ZRXZOZZZ.cjs → chunk-HR57IU52.cjs} +3 -3
  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-GM7C5PE4.js → chunk-HYP7ISWS.js} +2 -2
  17. package/dist/{chunk-WBKHUVJU.js → chunk-JZYMJ733.js} +2 -2
  18. package/dist/{chunk-5H7AYX72.cjs → chunk-LD66M6G7.cjs} +3 -3
  19. package/dist/{chunk-ZRYD4SFA.js → chunk-LF3XEXLA.js} +2 -2
  20. package/dist/{chunk-74SNQV3K.js → chunk-MBJBFR2H.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-GBW67Z6V.cjs → chunk-NTAMXW3Z.cjs} +3 -3
  25. package/dist/{chunk-ZCYU7QA6.cjs → chunk-Q3UM7UCM.cjs} +4 -4
  26. package/dist/chunk-Q3UM7UCM.cjs.map +1 -0
  27. package/dist/{chunk-CUODMU27.js → chunk-T5WAVOPI.js} +236 -155
  28. package/dist/chunk-T5WAVOPI.js.map +1 -0
  29. package/dist/{chunk-O4DWHB3U.js → chunk-YP4CPG34.js} +2 -2
  30. package/dist/{chunk-O4DWHB3U.js.map → chunk-YP4CPG34.js.map} +1 -1
  31. package/dist/{chunk-6DNBJVR5.js → chunk-ZSWTJ6E7.js} +4 -4
  32. package/dist/chunk-ZSWTJ6E7.js.map +1 -0
  33. package/dist/components/CrossmintNFTCollectionView.cjs +3 -3
  34. package/dist/components/CrossmintNFTCollectionView.js +2 -2
  35. package/dist/components/CrossmintNFTDetail.cjs +3 -3
  36. package/dist/components/CrossmintNFTDetail.js +2 -2
  37. package/dist/components/auth/AuthForm.cjs +7 -8
  38. package/dist/components/auth/AuthForm.js +6 -7
  39. package/dist/components/auth/AuthFormBackButton.cjs +28 -2
  40. package/dist/components/auth/AuthFormBackButton.d.cts +1 -1
  41. package/dist/components/auth/AuthFormBackButton.d.ts +1 -1
  42. package/dist/components/auth/AuthFormBackButton.js +27 -1
  43. package/dist/components/auth/AuthFormDialog.cjs +7 -8
  44. package/dist/components/auth/AuthFormDialog.js +6 -7
  45. package/dist/components/auth/EmbeddedAuthForm.cjs +8 -9
  46. package/dist/components/auth/EmbeddedAuthForm.js +7 -8
  47. package/dist/components/auth/methods/email/EmailAuthFlow.cjs +7 -8
  48. package/dist/components/auth/methods/email/EmailAuthFlow.js +6 -7
  49. package/dist/components/auth/methods/email/EmailOTPInput.cjs +7 -8
  50. package/dist/components/auth/methods/email/EmailOTPInput.js +6 -7
  51. package/dist/components/auth/methods/email/EmailSignIn.cjs +7 -8
  52. package/dist/components/auth/methods/email/EmailSignIn.js +6 -7
  53. package/dist/components/auth/methods/farcaster/FarcasterSignIn.cjs +7 -8
  54. package/dist/components/auth/methods/farcaster/FarcasterSignIn.js +6 -7
  55. package/dist/components/auth/methods/google/GoogleSignIn.cjs +7 -8
  56. package/dist/components/auth/methods/google/GoogleSignIn.js +6 -7
  57. package/dist/components/auth/methods/web3/Web3AuthFlow.cjs +7 -8
  58. package/dist/components/auth/methods/web3/Web3AuthFlow.js +6 -7
  59. package/dist/components/auth/methods/web3/{Web3SignIn.cjs → Web3AuthFlowButton.cjs} +8 -9
  60. package/dist/components/auth/methods/web3/Web3AuthFlowButton.d.cts +5 -0
  61. package/dist/components/auth/methods/web3/Web3AuthFlowButton.d.ts +5 -0
  62. package/dist/components/auth/methods/web3/{Web3SignIn.js → Web3AuthFlowButton.js} +9 -10
  63. package/dist/components/auth/methods/web3/{Web3ConnectButton.cjs → Web3Connector.cjs} +3 -3
  64. package/dist/components/auth/methods/web3/{Web3ConnectButton.d.cts → Web3Connector.d.cts} +2 -2
  65. package/dist/components/auth/methods/web3/{Web3ConnectButton.d.ts → Web3Connector.d.ts} +2 -2
  66. package/dist/components/auth/methods/web3/{Web3ConnectButton.js → Web3Connector.js} +4 -4
  67. package/dist/components/auth/methods/web3/Web3ConnectorButton.cjs +9 -0
  68. package/dist/components/auth/methods/web3/{Web3ProviderButton.d.cts → Web3ConnectorButton.d.cts} +2 -2
  69. package/dist/components/auth/methods/web3/{Web3ProviderButton.d.ts → Web3ConnectorButton.d.ts} +2 -2
  70. package/dist/components/auth/methods/web3/Web3ConnectorButton.js +9 -0
  71. package/dist/components/auth/methods/web3/{Web3AuthWrapper.cjs → Web3ConnectorContainer.cjs} +8 -9
  72. package/dist/components/auth/methods/web3/{Web3AuthWrapper.d.cts → Web3ConnectorContainer.d.cts} +2 -2
  73. package/dist/components/auth/methods/web3/{Web3AuthWrapper.d.ts → Web3ConnectorContainer.d.ts} +2 -2
  74. package/dist/components/auth/methods/web3/{Web3AuthWrapper.js → Web3ConnectorContainer.js} +9 -10
  75. package/dist/components/auth/methods/web3/Web3Connectors.cjs +7 -8
  76. package/dist/components/auth/methods/web3/Web3Connectors.js +6 -7
  77. package/dist/components/common/Divider.cjs +7 -8
  78. package/dist/components/common/Divider.js +6 -7
  79. package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.cjs +9 -10
  80. package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.js +8 -9
  81. package/dist/components/embed/v3/EmbeddedCheckoutV3IFrame.cjs +8 -9
  82. package/dist/components/embed/v3/EmbeddedCheckoutV3IFrame.js +7 -8
  83. package/dist/components/embed/v3/index.cjs +9 -10
  84. package/dist/components/embed/v3/index.js +8 -9
  85. package/dist/components/hosted/CrossmintPayButton.cjs +3 -3
  86. package/dist/components/hosted/CrossmintPayButton.js +2 -2
  87. package/dist/components/hosted/index.cjs +3 -3
  88. package/dist/components/hosted/index.js +2 -2
  89. package/dist/components/index.cjs +13 -14
  90. package/dist/components/index.js +12 -13
  91. package/dist/consts/version.cjs +2 -2
  92. package/dist/consts/version.js +1 -1
  93. package/dist/hooks/index.cjs +7 -8
  94. package/dist/hooks/index.js +6 -7
  95. package/dist/hooks/useAuth.cjs +7 -8
  96. package/dist/hooks/useAuth.js +6 -7
  97. package/dist/hooks/useCrossmintAuth.cjs +7 -8
  98. package/dist/hooks/useCrossmintAuth.js +6 -7
  99. package/dist/hooks/useCrossmintCheckout.cjs +4 -4
  100. package/dist/hooks/useCrossmintCheckout.js +3 -3
  101. package/dist/hooks/useOAuthWindowListener.cjs +7 -8
  102. package/dist/hooks/useOAuthWindowListener.js +6 -7
  103. package/dist/hooks/useWallet.cjs +7 -8
  104. package/dist/hooks/useWallet.js +6 -7
  105. package/dist/index.cjs +13 -14
  106. package/dist/index.cjs.map +1 -1
  107. package/dist/index.js +12 -13
  108. package/dist/index.js.map +1 -1
  109. package/dist/providers/CrossmintAuthProvider.cjs +7 -8
  110. package/dist/providers/CrossmintAuthProvider.js +6 -7
  111. package/dist/providers/CrossmintWalletProvider.cjs +7 -8
  112. package/dist/providers/CrossmintWalletProvider.js +6 -7
  113. package/dist/providers/auth/AuthFormProvider.cjs +7 -8
  114. package/dist/providers/auth/AuthFormProvider.d.cts +2 -0
  115. package/dist/providers/auth/AuthFormProvider.d.ts +2 -0
  116. package/dist/providers/auth/AuthFormProvider.js +6 -7
  117. package/dist/providers/index.cjs +7 -8
  118. package/dist/providers/index.js +6 -7
  119. package/dist/utils/createCrossmintApiClient.cjs +3 -3
  120. package/dist/utils/createCrossmintApiClient.js +2 -2
  121. package/package.json +4 -4
  122. package/src/components/auth/AuthForm.tsx +24 -2
  123. package/src/components/auth/AuthFormBackButton.tsx +9 -1
  124. package/src/components/auth/AuthFormDialog.tsx +1 -1
  125. package/src/components/auth/methods/email/EmailOTPInput.tsx +5 -3
  126. package/src/components/auth/methods/email/EmailSignIn.tsx +3 -2
  127. package/src/components/auth/methods/farcaster/FarcasterSignIn.tsx +5 -2
  128. package/src/components/auth/methods/web3/Web3AuthFlow.tsx +2 -2
  129. package/src/components/auth/methods/web3/{Web3SignIn.tsx → Web3AuthFlowButton.tsx} +6 -3
  130. package/src/components/auth/methods/web3/{Web3ConnectButton.tsx → Web3Connector.tsx} +1 -1
  131. package/src/components/auth/methods/web3/{Web3ProviderButton.tsx → Web3ConnectorButton.tsx} +1 -1
  132. package/src/components/auth/methods/web3/{Web3AuthWrapper.tsx → Web3ConnectorContainer.tsx} +5 -5
  133. package/src/components/auth/methods/web3/Web3Connectors.tsx +12 -8
  134. package/src/hooks/useOAuthWindowListener.ts +13 -10
  135. package/src/providers/auth/AuthFormProvider.tsx +6 -0
  136. package/dist/chunk-6DNBJVR5.js.map +0 -1
  137. package/dist/chunk-CUODMU27.js.map +0 -1
  138. package/dist/chunk-FOCUIKYH.cjs.map +0 -1
  139. package/dist/chunk-GY6G3ZC2.cjs +0 -41
  140. package/dist/chunk-GY6G3ZC2.cjs.map +0 -1
  141. package/dist/chunk-QJ44PL7L.js +0 -41
  142. package/dist/chunk-QJ44PL7L.js.map +0 -1
  143. package/dist/chunk-WK5RAFJ3.js.map +0 -1
  144. package/dist/chunk-ZCYU7QA6.cjs.map +0 -1
  145. package/dist/components/auth/methods/web3/Web3ProviderButton.cjs +0 -9
  146. package/dist/components/auth/methods/web3/Web3ProviderButton.js +0 -9
  147. package/dist/components/auth/methods/web3/Web3SignIn.d.cts +0 -5
  148. package/dist/components/auth/methods/web3/Web3SignIn.d.ts +0 -5
  149. /package/dist/{chunk-H2WTBOQ5.cjs.map → chunk-3LHIEADG.cjs.map} +0 -0
  150. /package/dist/{chunk-R2H6H2HY.js.map → chunk-4BGD6LSC.js.map} +0 -0
  151. /package/dist/{chunk-NGWVWCWP.cjs.map → chunk-6AFXSTEN.cjs.map} +0 -0
  152. /package/dist/{chunk-GHIVSSM5.js.map → chunk-7YHGZZ6G.js.map} +0 -0
  153. /package/dist/{chunk-7EGLPJKV.cjs.map → chunk-E7KTAG6X.cjs.map} +0 -0
  154. /package/dist/{chunk-HXZYERJJ.js.map → chunk-FKRBO2MK.js.map} +0 -0
  155. /package/dist/{chunk-3RXUFZTR.cjs.map → chunk-G526QBKQ.cjs.map} +0 -0
  156. /package/dist/{chunk-L5BIVHQJ.cjs.map → chunk-GGVJALEH.cjs.map} +0 -0
  157. /package/dist/{chunk-ZRXZOZZZ.cjs.map → chunk-HR57IU52.cjs.map} +0 -0
  158. /package/dist/{chunk-GM7C5PE4.js.map → chunk-HYP7ISWS.js.map} +0 -0
  159. /package/dist/{chunk-WBKHUVJU.js.map → chunk-JZYMJ733.js.map} +0 -0
  160. /package/dist/{chunk-5H7AYX72.cjs.map → chunk-LD66M6G7.cjs.map} +0 -0
  161. /package/dist/{chunk-ZRYD4SFA.js.map → chunk-LF3XEXLA.js.map} +0 -0
  162. /package/dist/{chunk-74SNQV3K.js.map → chunk-MBJBFR2H.js.map} +0 -0
  163. /package/dist/{chunk-EVL7VEPX.js.map → chunk-NKOG6FTK.js.map} +0 -0
  164. /package/dist/{chunk-GBW67Z6V.cjs.map → chunk-NTAMXW3Z.cjs.map} +0 -0
  165. /package/dist/components/auth/methods/web3/{Web3AuthWrapper.cjs.map → Web3AuthFlowButton.cjs.map} +0 -0
  166. /package/dist/components/auth/methods/web3/{Web3AuthWrapper.js.map → Web3AuthFlowButton.js.map} +0 -0
  167. /package/dist/components/auth/methods/web3/{Web3ConnectButton.cjs.map → Web3Connector.cjs.map} +0 -0
  168. /package/dist/components/auth/methods/web3/{Web3ConnectButton.js.map → Web3Connector.js.map} +0 -0
  169. /package/dist/components/auth/methods/web3/{Web3ProviderButton.cjs.map → Web3ConnectorButton.cjs.map} +0 -0
  170. /package/dist/components/auth/methods/web3/{Web3ProviderButton.js.map → Web3ConnectorButton.js.map} +0 -0
  171. /package/dist/components/auth/methods/web3/{Web3SignIn.cjs.map → Web3ConnectorContainer.cjs.map} +0 -0
  172. /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,5 +1,5 @@
1
1
  // package.json
2
- var version = "1.10.3";
2
+ var version = "1.10.5";
3
3
 
4
4
  // src/consts/version.ts
5
5
  var LIB_VERSION = version;
@@ -7,4 +7,4 @@ var LIB_VERSION = version;
7
7
  export {
8
8
  LIB_VERSION
9
9
  };
10
- //# sourceMappingURL=chunk-O4DWHB3U.js.map
10
+ //# sourceMappingURL=chunk-YP4CPG34.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../package.json","../src/consts/version.ts"],"sourcesContent":["{\n \"name\": \"@crossmint/client-sdk-react-ui\",\n \"version\": \"1.10.3\",\n \"repository\": \"https://github.com/Crossmint/crossmint-sdk\",\n \"license\": \"Apache-2.0\",\n \"author\": \"Paella Labs Inc\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\"dist\", \"src\", \"LICENSE\"],\n \"scripts\": {\n \"build\": \"cross-env NODE_OPTIONS='--max-old-space-size=8192' tsup\",\n \"dev\": \"cross-env NODE_OPTIONS='--max-old-space-size=8192' tsup --watch\",\n \"test:vitest\": \"vitest run\"\n },\n \"dependencies\": {\n \"@crossmint/client-sdk-auth\": \"workspace:*\",\n \"@crossmint/client-sdk-base\": \"workspace:*\",\n \"@crossmint/client-sdk-smart-wallet\": \"workspace:*\",\n \"@crossmint/client-sdk-window\": \"workspace:*\",\n \"@crossmint/common-sdk-auth\": \"workspace:*\",\n \"@crossmint/common-sdk-base\": \"workspace:*\",\n \"@dynamic-labs/ethereum\": \"2.6.3\",\n \"@dynamic-labs/sdk-react-core\": \"2.6.3\",\n \"@dynamic-labs/solana\": \"2.6.3\",\n \"@ethersproject/transactions\": \"5.7.0\",\n \"@farcaster/auth-kit\": \"0.6.0\",\n \"@headlessui/react\": \"2.1.5\",\n \"@radix-ui/react-dialog\": \"1.1.2\",\n \"@radix-ui/react-visually-hidden\": \"1.1.0\",\n \"@solana/web3.js\": \"1.95.1\",\n \"@tanstack/react-query\": \"5.51.18\",\n \"@twind/core\": \"1.1.3\",\n \"@twind/preset-tailwind\": \"1.1.4\",\n \"@wagmi/connectors\": \"5.3.3\",\n \"bs58\": \"5.0.0\",\n \"clsx\": \"2.1.1\",\n \"color\": \"4.2.3\",\n \"input-otp\": \"1.2.4\",\n \"lodash.isequal\": \"4.5.0\",\n \"react-jss\": \"10.10.0\",\n \"tailwind-merge\": \"2.4.0\",\n \"tailwindcss\": \"3.4.10\",\n \"viem\": \"2.17.5\",\n \"wagmi\": \"2.12.25\",\n \"zod\": \"3.22.4\"\n },\n \"devDependencies\": {\n \"@testing-library/react\": \"^16.0.1\",\n \"@types/color\": \"4.2.0\",\n \"@types/lodash.isequal\": \"4.5.6\",\n \"@types/react\": \"^18.3.0\",\n \"@types/react-dom\": \"^18.3.0\",\n \"react\": \"^18.3.0\",\n \"react-dom\": \"^18.3.0\"\n },\n \"peerDependencies\": {\n \"react\": \">=17.0.2\",\n \"react-dom\": \">=17.0.2\"\n }\n}\n","import { version } from \"../../package.json\";\n\nexport const LIB_VERSION = version;\n"],"mappings":";AAEI,cAAW;;;ACAR,IAAM,cAAc;","names":[]}
1
+ {"version":3,"sources":["../package.json","../src/consts/version.ts"],"sourcesContent":["{\n \"name\": \"@crossmint/client-sdk-react-ui\",\n \"version\": \"1.10.5\",\n \"repository\": \"https://github.com/Crossmint/crossmint-sdk\",\n \"license\": \"Apache-2.0\",\n \"author\": \"Paella Labs Inc\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\"dist\", \"src\", \"LICENSE\"],\n \"scripts\": {\n \"build\": \"cross-env NODE_OPTIONS='--max-old-space-size=8192' tsup\",\n \"dev\": \"cross-env NODE_OPTIONS='--max-old-space-size=8192' tsup --watch\",\n \"test:vitest\": \"vitest run\"\n },\n \"dependencies\": {\n \"@crossmint/client-sdk-auth\": \"workspace:*\",\n \"@crossmint/client-sdk-base\": \"workspace:*\",\n \"@crossmint/client-sdk-smart-wallet\": \"workspace:*\",\n \"@crossmint/client-sdk-window\": \"workspace:*\",\n \"@crossmint/common-sdk-auth\": \"workspace:*\",\n \"@crossmint/common-sdk-base\": \"workspace:*\",\n \"@dynamic-labs/ethereum\": \"2.6.3\",\n \"@dynamic-labs/sdk-react-core\": \"2.6.3\",\n \"@dynamic-labs/solana\": \"2.6.3\",\n \"@ethersproject/transactions\": \"5.7.0\",\n \"@farcaster/auth-kit\": \"0.6.0\",\n \"@headlessui/react\": \"2.1.5\",\n \"@radix-ui/react-dialog\": \"1.1.2\",\n \"@radix-ui/react-visually-hidden\": \"1.1.0\",\n \"@solana/web3.js\": \"1.95.1\",\n \"@tanstack/react-query\": \"5.51.18\",\n \"@twind/core\": \"1.1.3\",\n \"@twind/preset-tailwind\": \"1.1.4\",\n \"@wagmi/connectors\": \"5.3.3\",\n \"bs58\": \"5.0.0\",\n \"clsx\": \"2.1.1\",\n \"color\": \"4.2.3\",\n \"input-otp\": \"1.2.4\",\n \"lodash.isequal\": \"4.5.0\",\n \"react-jss\": \"10.10.0\",\n \"tailwind-merge\": \"2.4.0\",\n \"tailwindcss\": \"3.4.10\",\n \"viem\": \"2.17.5\",\n \"wagmi\": \"2.12.25\",\n \"zod\": \"3.22.4\"\n },\n \"devDependencies\": {\n \"@testing-library/react\": \"^16.0.1\",\n \"@types/color\": \"4.2.0\",\n \"@types/lodash.isequal\": \"4.5.6\",\n \"@types/react\": \"^18.3.0\",\n \"@types/react-dom\": \"^18.3.0\",\n \"react\": \"^18.3.0\",\n \"react-dom\": \"^18.3.0\"\n },\n \"peerDependencies\": {\n \"react\": \">=17.0.2\",\n \"react-dom\": \">=17.0.2\"\n }\n}\n","import { version } from \"../../package.json\";\n\nexport const LIB_VERSION = version;\n"],"mappings":";AAEI,cAAW;;;ACAR,IAAM,cAAc;","names":[]}
@@ -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 _chunkL5BIVHQJcjs = require('../chunk-L5BIVHQJ.cjs');
4
- require('../chunk-2EYYCX3O.cjs');
3
+ var _chunkGGVJALEHcjs = require('../chunk-GGVJALEH.cjs');
4
+ require('../chunk-CPISBXIR.cjs');
5
5
  require('../chunk-4DAZAO6Y.cjs');
6
6
 
7
7
 
8
- exports.CrossmintNFTCollectionView = _chunkL5BIVHQJcjs.CrossmintNFTCollectionView;
8
+ exports.CrossmintNFTCollectionView = _chunkGGVJALEHcjs.CrossmintNFTCollectionView;
9
9
  //# sourceMappingURL=CrossmintNFTCollectionView.cjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CrossmintNFTCollectionView
3
- } from "../chunk-ZRYD4SFA.js";
4
- import "../chunk-O4DWHB3U.js";
3
+ } from "../chunk-LF3XEXLA.js";
4
+ import "../chunk-YP4CPG34.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 _chunk7EGLPJKVcjs = require('../chunk-7EGLPJKV.cjs');
4
- require('../chunk-2EYYCX3O.cjs');
3
+ var _chunkE7KTAG6Xcjs = require('../chunk-E7KTAG6X.cjs');
4
+ require('../chunk-CPISBXIR.cjs');
5
5
  require('../chunk-4DAZAO6Y.cjs');
6
6
 
7
7
 
8
- exports.CrossmintNFTDetail = _chunk7EGLPJKVcjs.CrossmintNFTDetail;
8
+ exports.CrossmintNFTDetail = _chunkE7KTAG6Xcjs.CrossmintNFTDetail;
9
9
  //# sourceMappingURL=CrossmintNFTDetail.cjs.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CrossmintNFTDetail
3
- } from "../chunk-74SNQV3K.js";
4
- import "../chunk-O4DWHB3U.js";
3
+ } from "../chunk-MBJBFR2H.js";
4
+ import "../chunk-YP4CPG34.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-GBW67Z6V.cjs');
29
- require('../../chunk-NGWVWCWP.cjs');
27
+ require('../../chunk-NTAMXW3Z.cjs');
28
+ require('../../chunk-6AFXSTEN.cjs');
30
29
  require('../../chunk-KEKBOJCF.cjs');
31
30
  require('../../chunk-A2JCJ2OV.cjs');
32
- require('../../chunk-2EYYCX3O.cjs');
31
+ require('../../chunk-CPISBXIR.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-WBKHUVJU.js";
29
- import "../../chunk-R2H6H2HY.js";
27
+ import "../../chunk-JZYMJ733.js";
28
+ import "../../chunk-4BGD6LSC.js";
30
29
  import "../../chunk-3J6CUUWT.js";
31
30
  import "../../chunk-AUEQQ4D3.js";
32
- import "../../chunk-O4DWHB3U.js";
31
+ import "../../chunk-YP4CPG34.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-NTAMXW3Z.cjs');
28
+ require('../../chunk-6AFXSTEN.cjs');
29
+ require('../../chunk-KEKBOJCF.cjs');
30
+ require('../../chunk-A2JCJ2OV.cjs');
31
+ require('../../chunk-CPISBXIR.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-JZYMJ733.js";
28
+ import "../../chunk-4BGD6LSC.js";
29
+ import "../../chunk-3J6CUUWT.js";
30
+ import "../../chunk-AUEQQ4D3.js";
31
+ import "../../chunk-YP4CPG34.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-GBW67Z6V.cjs');
29
- require('../../chunk-NGWVWCWP.cjs');
27
+ require('../../chunk-NTAMXW3Z.cjs');
28
+ require('../../chunk-6AFXSTEN.cjs');
30
29
  require('../../chunk-KEKBOJCF.cjs');
31
30
  require('../../chunk-A2JCJ2OV.cjs');
32
- require('../../chunk-2EYYCX3O.cjs');
31
+ require('../../chunk-CPISBXIR.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-WBKHUVJU.js";
29
- import "../../chunk-R2H6H2HY.js";
27
+ import "../../chunk-JZYMJ733.js";
28
+ import "../../chunk-4BGD6LSC.js";
30
29
  import "../../chunk-3J6CUUWT.js";
31
30
  import "../../chunk-AUEQQ4D3.js";
32
- import "../../chunk-O4DWHB3U.js";
31
+ import "../../chunk-YP4CPG34.js";
33
32
  import "../../chunk-CRTRMMJ7.js";
34
33
  export {
35
34
  AuthFormDialog as default
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk3RXUFZTRcjs = require('../../chunk-3RXUFZTR.cjs');
4
- require('../../chunk-FOCUIKYH.cjs');
5
- require('../../chunk-DJ32OEWG.cjs');
6
- require('../../chunk-ZCYU7QA6.cjs');
3
+ var _chunkG526QBKQcjs = require('../../chunk-G526QBKQ.cjs');
4
+ 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,13 +25,13 @@ 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-GBW67Z6V.cjs');
30
- require('../../chunk-NGWVWCWP.cjs');
28
+ require('../../chunk-NTAMXW3Z.cjs');
29
+ require('../../chunk-6AFXSTEN.cjs');
31
30
  require('../../chunk-KEKBOJCF.cjs');
32
31
  require('../../chunk-A2JCJ2OV.cjs');
33
- require('../../chunk-2EYYCX3O.cjs');
32
+ require('../../chunk-CPISBXIR.cjs');
34
33
  require('../../chunk-4DAZAO6Y.cjs');
35
34
 
36
35
 
37
- exports.EmbeddedAuthForm = _chunk3RXUFZTRcjs.EmbeddedAuthForm;
36
+ exports.EmbeddedAuthForm = _chunkG526QBKQcjs.EmbeddedAuthForm;
38
37
  //# sourceMappingURL=EmbeddedAuthForm.cjs.map