@crossmint/client-sdk-react-native-ui 0.13.33 → 0.13.34
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.
- package/dist/chunk-24MMQ2R4.js +15 -0
- package/dist/chunk-24MMQ2R4.js.map +1 -0
- package/dist/chunk-2DNOAXOE.mjs +8 -0
- package/dist/chunk-2DNOAXOE.mjs.map +1 -0
- package/dist/chunk-2TEAOLM6.mjs +149 -0
- package/dist/chunk-2TEAOLM6.mjs.map +1 -0
- package/dist/chunk-2YRJHM46.mjs +50 -0
- package/dist/chunk-2YRJHM46.mjs.map +1 -0
- package/dist/chunk-34OVOZB2.mjs +111 -0
- package/dist/chunk-34OVOZB2.mjs.map +1 -0
- package/dist/chunk-3AWDWMZ2.mjs +18 -0
- package/dist/chunk-3AWDWMZ2.mjs.map +1 -0
- package/dist/chunk-3MWGBZ5O.js +348 -0
- package/dist/chunk-3MWGBZ5O.js.map +1 -0
- package/dist/chunk-3PJ6FXFT.mjs +1 -0
- package/dist/chunk-3PJ6FXFT.mjs.map +1 -0
- package/dist/chunk-3SFSPJXM.mjs +55 -0
- package/dist/chunk-3SFSPJXM.mjs.map +1 -0
- package/dist/chunk-4AJTICKY.mjs +44 -0
- package/dist/chunk-4AJTICKY.mjs.map +1 -0
- package/dist/chunk-4HKXTAVR.js +14 -0
- package/dist/chunk-4HKXTAVR.js.map +1 -0
- package/dist/chunk-4NTIGHRE.js +148 -0
- package/dist/chunk-4NTIGHRE.js.map +1 -0
- package/dist/chunk-4V7NDO5X.mjs +157 -0
- package/dist/chunk-4V7NDO5X.mjs.map +1 -0
- package/dist/chunk-4WJIXD7U.mjs +14 -0
- package/dist/chunk-4WJIXD7U.mjs.map +1 -0
- package/dist/chunk-5ZBDQUNG.js +1 -0
- package/dist/chunk-5ZBDQUNG.js.map +1 -0
- package/dist/chunk-6W2GOMYU.js +22 -0
- package/dist/chunk-6W2GOMYU.js.map +1 -0
- package/dist/chunk-6Z74KC25.mjs +1 -0
- package/dist/chunk-6Z74KC25.mjs.map +1 -0
- package/dist/chunk-7SPIOD4K.mjs +66 -0
- package/dist/chunk-7SPIOD4K.mjs.map +1 -0
- package/dist/chunk-ALMDA3KN.mjs +199 -0
- package/dist/chunk-ALMDA3KN.mjs.map +1 -0
- package/dist/chunk-BE4HT2U7.mjs +1 -0
- package/dist/chunk-BE4HT2U7.mjs.map +1 -0
- package/dist/chunk-BTH5QRIT.js +149 -0
- package/dist/chunk-BTH5QRIT.js.map +1 -0
- package/dist/chunk-BUB4U2GE.js +44 -0
- package/dist/chunk-BUB4U2GE.js.map +1 -0
- package/dist/chunk-BUTZZ7JB.js +36 -0
- package/dist/chunk-BUTZZ7JB.js.map +1 -0
- package/dist/chunk-CFHHVHNZ.mjs +157 -0
- package/dist/chunk-CFHHVHNZ.mjs.map +1 -0
- package/dist/chunk-DD2MVD6A.mjs +36 -0
- package/dist/chunk-DD2MVD6A.mjs.map +1 -0
- package/dist/chunk-EKXEDMRD.mjs +71 -0
- package/dist/chunk-EKXEDMRD.mjs.map +1 -0
- package/dist/chunk-GYBEEYGB.mjs +1 -0
- package/dist/chunk-GYBEEYGB.mjs.map +1 -0
- package/dist/chunk-HELXBZ7D.js +18 -0
- package/dist/chunk-HELXBZ7D.js.map +1 -0
- package/dist/chunk-IBQK5B7B.js +71 -0
- package/dist/chunk-IBQK5B7B.js.map +1 -0
- package/dist/chunk-IHZNXV5S.js +1 -0
- package/dist/chunk-IHZNXV5S.js.map +1 -0
- package/dist/chunk-J2MDWDV6.mjs +1 -0
- package/dist/chunk-J2MDWDV6.mjs.map +1 -0
- package/dist/chunk-KK4SQ7WF.js +1 -0
- package/dist/chunk-KK4SQ7WF.js.map +1 -0
- package/dist/chunk-LMXGU2XA.js +50 -0
- package/dist/chunk-LMXGU2XA.js.map +1 -0
- package/dist/chunk-LWQ5CJC4.mjs +22 -0
- package/dist/chunk-LWQ5CJC4.mjs.map +1 -0
- package/dist/chunk-MMVER6VO.js +1 -0
- package/dist/chunk-MMVER6VO.js.map +1 -0
- package/dist/chunk-MVLQR6RI.js +199 -0
- package/dist/chunk-MVLQR6RI.js.map +1 -0
- package/dist/chunk-NBWATZY4.js +157 -0
- package/dist/chunk-NBWATZY4.js.map +1 -0
- package/dist/chunk-NSSAF6CV.mjs +348 -0
- package/dist/chunk-NSSAF6CV.mjs.map +1 -0
- package/dist/chunk-OLVGVQEA.js +24 -0
- package/dist/chunk-OLVGVQEA.js.map +1 -0
- package/dist/chunk-OTRMAWWU.js +55 -0
- package/dist/chunk-OTRMAWWU.js.map +1 -0
- package/dist/chunk-Q2Y5CZT4.js +157 -0
- package/dist/chunk-Q2Y5CZT4.js.map +1 -0
- package/dist/chunk-Q7YPX4RJ.js +66 -0
- package/dist/chunk-Q7YPX4RJ.js.map +1 -0
- package/dist/chunk-R2M3HW3E.mjs +61 -0
- package/dist/chunk-R2M3HW3E.mjs.map +1 -0
- package/dist/chunk-R3ZW4OCR.js +61 -0
- package/dist/chunk-R3ZW4OCR.js.map +1 -0
- package/dist/chunk-R47XMJ32.js +1 -0
- package/dist/chunk-R47XMJ32.js.map +1 -0
- package/dist/chunk-R5GF6WFB.mjs +148 -0
- package/dist/chunk-R5GF6WFB.mjs.map +1 -0
- package/dist/chunk-RSCBYS6I.mjs +15 -0
- package/dist/chunk-RSCBYS6I.mjs.map +1 -0
- package/dist/chunk-TNPZITVL.mjs +1 -0
- package/dist/chunk-TNPZITVL.mjs.map +1 -0
- package/dist/chunk-U74INGIF.js +17 -0
- package/dist/chunk-U74INGIF.js.map +1 -0
- package/dist/chunk-V2PIS2OC.mjs +17 -0
- package/dist/chunk-V2PIS2OC.mjs.map +1 -0
- package/dist/chunk-VCF2YXCO.js +208 -0
- package/dist/chunk-VCF2YXCO.js.map +1 -0
- package/dist/chunk-XNVZRSGL.js +111 -0
- package/dist/chunk-XNVZRSGL.js.map +1 -0
- package/dist/chunk-XUGJXLWC.js +8 -0
- package/dist/chunk-XUGJXLWC.js.map +1 -0
- package/dist/chunk-XXJ7LQ44.js +1 -0
- package/dist/chunk-XXJ7LQ44.js.map +1 -0
- package/dist/chunk-YAVGI5BZ.mjs +24 -0
- package/dist/chunk-YAVGI5BZ.mjs.map +1 -0
- package/dist/chunk-Z7Y7COJM.mjs +208 -0
- package/dist/chunk-Z7Y7COJM.mjs.map +1 -0
- package/dist/components/embed/index.js +16 -1
- package/dist/components/embed/index.js.map +1 -0
- package/dist/components/embed/index.mjs +16 -1
- package/dist/components/embed/index.mjs.map +1 -0
- package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.js +14 -1
- package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.js.map +1 -0
- package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.mjs +14 -1
- package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.mjs.map +1 -0
- package/dist/components/embed/v3/EmbeddedCheckoutV3WebView.js +13 -1
- package/dist/components/embed/v3/EmbeddedCheckoutV3WebView.js.map +1 -0
- package/dist/components/embed/v3/EmbeddedCheckoutV3WebView.mjs +13 -1
- package/dist/components/embed/v3/EmbeddedCheckoutV3WebView.mjs.map +1 -0
- package/dist/components/embed/v3/crypto/PayerConnectionHandler.js +8 -1
- package/dist/components/embed/v3/crypto/PayerConnectionHandler.js.map +1 -0
- package/dist/components/embed/v3/crypto/PayerConnectionHandler.mjs +8 -1
- package/dist/components/embed/v3/crypto/PayerConnectionHandler.mjs.map +1 -0
- package/dist/components/embed/v3/index.js +15 -1
- package/dist/components/embed/v3/index.js.map +1 -0
- package/dist/components/embed/v3/index.mjs +15 -1
- package/dist/components/embed/v3/index.mjs.map +1 -0
- package/dist/components/index.js +34 -1
- package/dist/components/index.js.map +1 -0
- package/dist/components/index.mjs +34 -1
- package/dist/components/index.mjs.map +1 -0
- package/dist/components/signers/BaseCodeInput.js +9 -1
- package/dist/components/signers/BaseCodeInput.js.map +1 -0
- package/dist/components/signers/BaseCodeInput.mjs +9 -1
- package/dist/components/signers/BaseCodeInput.mjs.map +1 -0
- package/dist/components/signers/BaseConfirmation.js +9 -1
- package/dist/components/signers/BaseConfirmation.js.map +1 -0
- package/dist/components/signers/BaseConfirmation.mjs +9 -1
- package/dist/components/signers/BaseConfirmation.mjs.map +1 -0
- package/dist/components/signers/EmailSignersDialog.js +11 -1
- package/dist/components/signers/EmailSignersDialog.js.map +1 -0
- package/dist/components/signers/EmailSignersDialog.mjs +11 -1
- package/dist/components/signers/EmailSignersDialog.mjs.map +1 -0
- package/dist/components/signers/PhoneSignersDialog.js +11 -1
- package/dist/components/signers/PhoneSignersDialog.js.map +1 -0
- package/dist/components/signers/PhoneSignersDialog.mjs +11 -1
- package/dist/components/signers/PhoneSignersDialog.mjs.map +1 -0
- package/dist/components/signers/index.js +16 -1
- package/dist/components/signers/index.js.map +1 -0
- package/dist/components/signers/index.mjs +16 -1
- package/dist/components/signers/index.mjs.map +1 -0
- package/dist/components/wallets/ExportPrivateKeyButton.js +8 -1
- package/dist/components/wallets/ExportPrivateKeyButton.js.map +1 -0
- package/dist/components/wallets/ExportPrivateKeyButton.mjs +8 -1
- package/dist/components/wallets/ExportPrivateKeyButton.mjs.map +1 -0
- package/dist/components/wallets/index.js +9 -1
- package/dist/components/wallets/index.js.map +1 -0
- package/dist/components/wallets/index.mjs +9 -1
- package/dist/components/wallets/index.mjs.map +1 -0
- package/dist/hooks/index.js +26 -1
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/index.mjs +26 -1
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/hooks/useAuth.js +14 -1
- package/dist/hooks/useAuth.js.map +1 -0
- package/dist/hooks/useAuth.mjs +14 -1
- package/dist/hooks/useAuth.mjs.map +1 -0
- package/dist/hooks/useCrossmintCheckout.js +11 -1
- package/dist/hooks/useCrossmintCheckout.js.map +1 -0
- package/dist/hooks/useCrossmintCheckout.mjs +11 -1
- package/dist/hooks/useCrossmintCheckout.mjs.map +1 -0
- package/dist/hooks/useWalletEmailSigner.js +8 -1
- package/dist/hooks/useWalletEmailSigner.js.map +1 -0
- package/dist/hooks/useWalletEmailSigner.mjs +8 -1
- package/dist/hooks/useWalletEmailSigner.mjs.map +1 -0
- package/dist/index.js +79 -1
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +79 -1
- package/dist/index.mjs.map +1 -0
- package/dist/logger/init.js +9 -1
- package/dist/logger/init.js.map +1 -0
- package/dist/logger/init.mjs +9 -1
- package/dist/logger/init.mjs.map +1 -0
- package/dist/plugin/mods/addQueryToAndroidManifest.js +8 -1
- package/dist/plugin/mods/addQueryToAndroidManifest.js.map +1 -0
- package/dist/plugin/mods/addQueryToAndroidManifest.mjs +8 -1
- package/dist/plugin/mods/addQueryToAndroidManifest.mjs.map +1 -0
- package/dist/plugin/withGooglePay.js +57 -1
- package/dist/plugin/withGooglePay.js.map +1 -0
- package/dist/plugin/withGooglePay.mjs +57 -1
- package/dist/plugin/withGooglePay.mjs.map +1 -0
- package/dist/providers/CrossmintAuthProvider.js +14 -1
- package/dist/providers/CrossmintAuthProvider.js.map +1 -0
- package/dist/providers/CrossmintAuthProvider.mjs +14 -1
- package/dist/providers/CrossmintAuthProvider.mjs.map +1 -0
- package/dist/providers/CrossmintProvider.js +12 -1
- package/dist/providers/CrossmintProvider.js.map +1 -0
- package/dist/providers/CrossmintProvider.mjs +12 -1
- package/dist/providers/CrossmintProvider.mjs.map +1 -0
- package/dist/providers/CrossmintWalletProvider.js +16 -1
- package/dist/providers/CrossmintWalletProvider.js.map +1 -0
- package/dist/providers/CrossmintWalletProvider.mjs +16 -1
- package/dist/providers/CrossmintWalletProvider.mjs.map +1 -0
- package/dist/providers/index.js +28 -1
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/index.mjs +28 -1
- package/dist/providers/index.mjs.map +1 -0
- package/dist/styles/index.js +8 -1
- package/dist/styles/index.js.map +1 -0
- package/dist/styles/index.mjs +8 -1
- package/dist/styles/index.mjs.map +1 -0
- package/dist/styles/theme.js +8 -1
- package/dist/styles/theme.js.map +1 -0
- package/dist/styles/theme.mjs +8 -1
- package/dist/styles/theme.mjs.map +1 -0
- package/dist/types/auth.js +1 -1
- package/dist/types/auth.js.map +1 -0
- package/dist/types/auth.mjs +1 -0
- package/dist/types/auth.mjs.map +1 -0
- package/dist/utils/SecureStorage.js +8 -1
- package/dist/utils/SecureStorage.js.map +1 -0
- package/dist/utils/SecureStorage.mjs +8 -1
- package/dist/utils/SecureStorage.mjs.map +1 -0
- package/dist/utils/createCrossmintApiClient.js +9 -1
- package/dist/utils/createCrossmintApiClient.js.map +1 -0
- package/dist/utils/createCrossmintApiClient.mjs +9 -1
- package/dist/utils/createCrossmintApiClient.mjs.map +1 -0
- package/dist/utils/embed/userAgent.js +12 -1
- package/dist/utils/embed/userAgent.js.map +1 -0
- package/dist/utils/embed/userAgent.mjs +12 -1
- package/dist/utils/embed/userAgent.mjs.map +1 -0
- package/dist/utils/eventEmitter.js +8 -1
- package/dist/utils/eventEmitter.js.map +1 -0
- package/dist/utils/eventEmitter.mjs +8 -1
- package/dist/utils/eventEmitter.mjs.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useWalletEmailSigner.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa,kBAAkB;AACxC,SAAS,kCAAkC;AAE3C,IAAM,oBAAoB,CAAC,iBAAyB,MAAM;AACtD,QAAM,IAAI,MAAM,GAAG,YAAY,mEAAmE;AACtG;AAkBO,SAAS,uBAA6C;AACzD,QAAM,UAAU,WAAW,0BAA0B;AAErD,MAAI,WAAW,MAAM;AACjB,UAAM,IAAI,MAAM,kEAAkE;AAAA,EACtF;AAEA,QAAM,EAAE,iBAAiB,IAAI;AAE7B,QAAM,mBAAmB,YAAY,MAAY;AAhCrD;AAiCQ,QAAI,CAAC,iBAAiB,kBAAkB;AACpC,wBAAkB,kBAAkB,EAAE;AAAA,IAC1C;AACA,WAAO,OAAM,sBAAiB,qBAAjB;AAAA,EACjB,IAAG,CAAC,iBAAiB,gBAAgB,CAAC;AAEtC,QAAM,YAAY;AAAA,IACd,CAAO,QAAgB;AAxC/B;AAyCY,UAAI,CAAC,iBAAiB,WAAW;AAC7B,0BAAkB,WAAW,EAAE;AAAA,MACnC;AACA,aAAO,OAAM,sBAAiB,cAAjB,0CAA6B;AAAA,IAC9C;AAAA,IACA,CAAC,iBAAiB,SAAS;AAAA,EAC/B;AAEA,QAAM,SAAS;AAAA,IACX,CAAC,UAAiB;AAlD1B;AAmDY,UAAI,CAAC,iBAAiB,QAAQ;AAC1B,0BAAkB,QAAQ,EAAE;AAAA,MAChC;AACA,6BAAiB,WAAjB,0CAA0B;AAAA,IAC9B;AAAA,IACA,CAAC,iBAAiB,MAAM;AAAA,EAC5B;AAEA,SAAO;AAAA,IACH,WAAW,iBAAiB;AAAA,IAC5B;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ","sourcesContent":["import { useCallback, useContext } from \"react\";\nimport { CrossmintWalletBaseContext } from \"@crossmint/client-sdk-react-base\";\n\nconst throwNotAvailable = (functionName: string) => () => {\n throw new Error(`${functionName} is not available. Make sure you're using an email signer wallet.`);\n};\n\nexport type EmailSignerFunctions = {\n /** Whether the email signer currently requires authentication (OTP verification). */\n needsAuth: boolean;\n /** Sends a one-time password to the user's email address. */\n sendEmailWithOtp: () => Promise<void>;\n /** Verifies the one-time password entered by the user. */\n verifyOtp: (otp: string) => Promise<void>;\n /** Rejects the current authentication request with an error. */\n reject: (error: Error) => void;\n};\n\n/**\n * Hook for managing email-based signer authentication flows.\n * Provides OTP send/verify functions for wallets using an email signer.\n * Must be used within a {@link CrossmintWalletProvider}.\n */\nexport function useWalletEmailSigner(): EmailSignerFunctions {\n const context = useContext(CrossmintWalletBaseContext);\n\n if (context == null) {\n throw new Error(\"useWalletEmailSigner must be used within CrossmintWalletProvider\");\n }\n\n const { emailSignerState } = context;\n\n const sendEmailWithOtp = useCallback(async () => {\n if (!emailSignerState.sendEmailWithOtp) {\n throwNotAvailable(\"sendEmailWithOtp\")();\n }\n return await emailSignerState.sendEmailWithOtp?.();\n }, [emailSignerState.sendEmailWithOtp]);\n\n const verifyOtp = useCallback(\n async (otp: string) => {\n if (!emailSignerState.verifyOtp) {\n throwNotAvailable(\"verifyOtp\")();\n }\n return await emailSignerState.verifyOtp?.(otp);\n },\n [emailSignerState.verifyOtp]\n );\n\n const reject = useCallback(\n (error: Error) => {\n if (!emailSignerState.reject) {\n throwNotAvailable(\"reject\")();\n }\n emailSignerState.reject?.(error);\n },\n [emailSignerState.reject]\n );\n\n return {\n needsAuth: emailSignerState.needsAuth,\n sendEmailWithOtp,\n verifyOtp,\n reject,\n };\n}\n"]}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkMVLQR6RIjs = require('./chunk-MVLQR6RI.js');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkBTH5QRITjs = require('./chunk-BTH5QRIT.js');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkHELXBZ7Djs = require('./chunk-HELXBZ7D.js');
|
|
10
|
+
|
|
11
|
+
// src/components/signers/EmailSignersDialog.tsx
|
|
12
|
+
var _reactnative = require('react-native');
|
|
13
|
+
var _lucidereactnative = require('lucide-react-native');
|
|
14
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
15
|
+
var { width: screenWidth } = _reactnative.Dimensions.get("window");
|
|
16
|
+
function EmailSignersDialog({
|
|
17
|
+
email,
|
|
18
|
+
open,
|
|
19
|
+
setOpen,
|
|
20
|
+
step,
|
|
21
|
+
onSubmitOTP,
|
|
22
|
+
onResendOTPCode,
|
|
23
|
+
onSubmitEmail,
|
|
24
|
+
rejectRef,
|
|
25
|
+
appearance
|
|
26
|
+
}) {
|
|
27
|
+
var _a, _b, _c, _d, _e, _f;
|
|
28
|
+
function handleOnCancel() {
|
|
29
|
+
var _a2;
|
|
30
|
+
if (open) {
|
|
31
|
+
(_a2 = rejectRef.current) == null ? void 0 : _a2.call(rejectRef, new Error());
|
|
32
|
+
setOpen(false);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
const dynamicStyles = _reactnative.StyleSheet.create({
|
|
36
|
+
centeredView: {
|
|
37
|
+
flex: 1,
|
|
38
|
+
backgroundColor: "rgba(0, 0, 0, 0.5)",
|
|
39
|
+
justifyContent: "center",
|
|
40
|
+
alignItems: "center",
|
|
41
|
+
padding: 16
|
|
42
|
+
},
|
|
43
|
+
modalView: {
|
|
44
|
+
backgroundColor: ((_a = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _a.background) || _chunkHELXBZ7Djs.theme["cm-background-primary"],
|
|
45
|
+
borderRadius: (appearance == null ? void 0 : appearance.borderRadius) || 12,
|
|
46
|
+
padding: 32,
|
|
47
|
+
alignItems: "center",
|
|
48
|
+
width: Math.min(screenWidth - 32, 400),
|
|
49
|
+
maxHeight: "80%",
|
|
50
|
+
position: "relative",
|
|
51
|
+
shadowColor: "#000",
|
|
52
|
+
shadowOffset: {
|
|
53
|
+
width: 0,
|
|
54
|
+
height: 2
|
|
55
|
+
},
|
|
56
|
+
shadowOpacity: 0.25,
|
|
57
|
+
shadowRadius: 4,
|
|
58
|
+
elevation: 5
|
|
59
|
+
},
|
|
60
|
+
closeButton: {
|
|
61
|
+
position: "absolute",
|
|
62
|
+
top: 16,
|
|
63
|
+
right: 16,
|
|
64
|
+
width: 32,
|
|
65
|
+
height: 32,
|
|
66
|
+
borderRadius: 6,
|
|
67
|
+
backgroundColor: ((_b = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _b.inputBackground) || _chunkHELXBZ7Djs.theme["cm-muted-primary"],
|
|
68
|
+
alignItems: "center",
|
|
69
|
+
justifyContent: "center",
|
|
70
|
+
zIndex: 1
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
if (!open) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
77
|
+
_reactnative.Modal,
|
|
78
|
+
{
|
|
79
|
+
visible: open,
|
|
80
|
+
transparent: true,
|
|
81
|
+
animationType: "fade",
|
|
82
|
+
onRequestClose: handleOnCancel,
|
|
83
|
+
statusBarTranslucent: true,
|
|
84
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactnative.View, { style: dynamicStyles.centeredView, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _reactnative.View, { style: dynamicStyles.modalView, children: [
|
|
85
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
86
|
+
_reactnative.TouchableOpacity,
|
|
87
|
+
{
|
|
88
|
+
style: dynamicStyles.closeButton,
|
|
89
|
+
onPress: handleOnCancel,
|
|
90
|
+
hitSlop: { top: 10, bottom: 10, left: 10, right: 10 },
|
|
91
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereactnative.X, { size: 16, color: ((_c = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _c.textSecondary) || _chunkHELXBZ7Djs.theme["cm-text-secondary"] })
|
|
92
|
+
}
|
|
93
|
+
),
|
|
94
|
+
step === "initial" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
95
|
+
_chunkBTH5QRITjs.BaseConfirmation,
|
|
96
|
+
{
|
|
97
|
+
contactInfo: email != null ? email : "",
|
|
98
|
+
contactType: "email",
|
|
99
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
100
|
+
_lucidereactnative.MailIcon,
|
|
101
|
+
{
|
|
102
|
+
size: 22,
|
|
103
|
+
color: ((_d = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _d.textPrimary) || _chunkHELXBZ7Djs.theme["cm-text-primary"]
|
|
104
|
+
}
|
|
105
|
+
),
|
|
106
|
+
onConfirm: onSubmitEmail,
|
|
107
|
+
onCancel: handleOnCancel,
|
|
108
|
+
appearance
|
|
109
|
+
}
|
|
110
|
+
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
111
|
+
_chunkMVLQR6RIjs.BaseCodeInput,
|
|
112
|
+
{
|
|
113
|
+
contactInfo: email != null ? email : "",
|
|
114
|
+
contactType: "email",
|
|
115
|
+
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
116
|
+
_reactnative.View,
|
|
117
|
+
{
|
|
118
|
+
style: {
|
|
119
|
+
backgroundColor: ((_e = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _e.accent) || _chunkHELXBZ7Djs.theme["cm-accent"],
|
|
120
|
+
borderRadius: 999,
|
|
121
|
+
padding: 12
|
|
122
|
+
},
|
|
123
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
124
|
+
_lucidereactnative.MailCheckIcon,
|
|
125
|
+
{
|
|
126
|
+
size: 22,
|
|
127
|
+
color: ((_f = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _f.background) || _chunkHELXBZ7Djs.theme["cm-background-primary"]
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
),
|
|
132
|
+
title: "Check your email",
|
|
133
|
+
description: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _reactnative.Text, { children: [
|
|
134
|
+
"A temporary login code has been sent to",
|
|
135
|
+
" ",
|
|
136
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _reactnative.Text, { style: { fontWeight: "bold" }, children: email })
|
|
137
|
+
] }),
|
|
138
|
+
helpText: `Can't find the email? Check spam folder.
|
|
139
|
+
Some emails may take several minutes to arrive.`,
|
|
140
|
+
onSubmitOTP,
|
|
141
|
+
onResendCode: onResendOTPCode,
|
|
142
|
+
appearance,
|
|
143
|
+
otpLength: 9,
|
|
144
|
+
keyboardType: "default",
|
|
145
|
+
autoComplete: "one-time-code",
|
|
146
|
+
textContentType: "oneTimeCode"
|
|
147
|
+
}
|
|
148
|
+
)
|
|
149
|
+
] }) })
|
|
150
|
+
}
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
exports.EmailSignersDialog = EmailSignersDialog;
|
|
157
|
+
//# sourceMappingURL=chunk-Q2Y5CZT4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/signers/EmailSignersDialog.tsx"],"names":["_a"],"mappings":"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","sourcesContent":["import type { MutableRefObject } from \"react\";\nimport { View, Modal, StyleSheet, Dimensions, TouchableOpacity, Text } from \"react-native\";\nimport type { UIConfig } from \"@crossmint/common-sdk-base\";\nimport { MailCheckIcon, MailIcon, X } from \"lucide-react-native\";\nimport { BaseConfirmation } from \"./BaseConfirmation\";\nimport { BaseCodeInput } from \"./BaseCodeInput\";\nimport { theme } from \"../../styles/theme\";\n\ninterface EmailSignersDialogProps {\n email?: string;\n open: boolean;\n setOpen: (open: boolean) => void;\n step: \"initial\" | \"otp\";\n onSubmitOTP: (token: string) => Promise<void>;\n onResendOTPCode: () => Promise<void>;\n onSubmitEmail: () => Promise<void>;\n rejectRef: MutableRefObject<((error: Error) => void) | undefined>;\n appearance?: UIConfig;\n}\n\nconst { width: screenWidth } = Dimensions.get(\"window\");\n\nexport function EmailSignersDialog({\n email,\n open,\n setOpen,\n step,\n onSubmitOTP,\n onResendOTPCode,\n onSubmitEmail,\n rejectRef,\n appearance,\n}: EmailSignersDialogProps) {\n function handleOnCancel() {\n if (open) {\n rejectRef.current?.(new Error());\n setOpen(false);\n }\n }\n\n const dynamicStyles = StyleSheet.create({\n centeredView: {\n flex: 1,\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: 16,\n },\n modalView: {\n backgroundColor: appearance?.colors?.background || theme[\"cm-background-primary\"],\n borderRadius: appearance?.borderRadius || 12,\n padding: 32,\n alignItems: \"center\",\n width: Math.min(screenWidth - 32, 400),\n maxHeight: \"80%\",\n position: \"relative\",\n shadowColor: \"#000\",\n shadowOffset: {\n width: 0,\n height: 2,\n },\n shadowOpacity: 0.25,\n shadowRadius: 4,\n elevation: 5,\n },\n closeButton: {\n position: \"absolute\",\n top: 16,\n right: 16,\n width: 32,\n height: 32,\n borderRadius: 6,\n backgroundColor: appearance?.colors?.inputBackground || theme[\"cm-muted-primary\"],\n alignItems: \"center\",\n justifyContent: \"center\",\n zIndex: 1,\n },\n });\n\n if (!open) {\n return null;\n }\n\n return (\n <Modal\n visible={open}\n transparent={true}\n animationType=\"fade\"\n onRequestClose={handleOnCancel}\n statusBarTranslucent={true}\n >\n <View style={dynamicStyles.centeredView}>\n <View style={dynamicStyles.modalView}>\n <TouchableOpacity\n style={dynamicStyles.closeButton}\n onPress={handleOnCancel}\n hitSlop={{ top: 10, bottom: 10, left: 10, right: 10 }}\n >\n <X size={16} color={appearance?.colors?.textSecondary || theme[\"cm-text-secondary\"]} />\n </TouchableOpacity>\n\n {step === \"initial\" ? (\n <BaseConfirmation\n contactInfo={email ?? \"\"}\n contactType=\"email\"\n icon={\n <MailIcon\n size={22}\n color={appearance?.colors?.textPrimary || theme[\"cm-text-primary\"]}\n />\n }\n onConfirm={onSubmitEmail}\n onCancel={handleOnCancel}\n appearance={appearance}\n />\n ) : (\n <BaseCodeInput\n contactInfo={email ?? \"\"}\n contactType=\"email\"\n icon={\n <View\n style={{\n backgroundColor: appearance?.colors?.accent || theme[\"cm-accent\"],\n borderRadius: 999,\n padding: 12,\n }}\n >\n <MailCheckIcon\n size={22}\n color={appearance?.colors?.background || theme[\"cm-background-primary\"]}\n />\n </View>\n }\n title=\"Check your email\"\n description={\n <Text>\n A temporary login code has been sent to{\" \"}\n <Text style={{ fontWeight: \"bold\" }}>{email}</Text>\n </Text>\n }\n helpText={`Can't find the email? Check spam folder.\\nSome emails may take several minutes to arrive.`}\n onSubmitOTP={onSubmitOTP}\n onResendCode={onResendOTPCode}\n appearance={appearance}\n otpLength={9}\n keyboardType=\"default\"\n autoComplete=\"one-time-code\"\n textContentType=\"oneTimeCode\"\n />\n )}\n </View>\n </View>\n </Modal>\n );\n}\n"]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
21
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
22
|
+
}) : x)(function(x) {
|
|
23
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
24
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
25
|
+
});
|
|
26
|
+
var __objRest = (source, exclude) => {
|
|
27
|
+
var target = {};
|
|
28
|
+
for (var prop in source)
|
|
29
|
+
if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
|
|
30
|
+
target[prop] = source[prop];
|
|
31
|
+
if (source != null && __getOwnPropSymbols)
|
|
32
|
+
for (var prop of __getOwnPropSymbols(source)) {
|
|
33
|
+
if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
|
|
34
|
+
target[prop] = source[prop];
|
|
35
|
+
}
|
|
36
|
+
return target;
|
|
37
|
+
};
|
|
38
|
+
var __async = (__this, __arguments, generator) => {
|
|
39
|
+
return new Promise((resolve, reject) => {
|
|
40
|
+
var fulfilled = (value) => {
|
|
41
|
+
try {
|
|
42
|
+
step(generator.next(value));
|
|
43
|
+
} catch (e) {
|
|
44
|
+
reject(e);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
var rejected = (value) => {
|
|
48
|
+
try {
|
|
49
|
+
step(generator.throw(value));
|
|
50
|
+
} catch (e) {
|
|
51
|
+
reject(e);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
55
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
exports.__spreadValues = __spreadValues; exports.__spreadProps = __spreadProps; exports.__require = __require; exports.__objRest = __objRest; exports.__async = __async;
|
|
66
|
+
//# sourceMappingURL=chunk-Q7YPX4RJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// package.json
|
|
2
|
+
var package_default = {
|
|
3
|
+
name: "@crossmint/client-sdk-react-native-ui",
|
|
4
|
+
version: "0.13.34",
|
|
5
|
+
repository: "https://github.com/Crossmint/crossmint-sdk",
|
|
6
|
+
license: "Apache-2.0",
|
|
7
|
+
author: "Paella Labs Inc",
|
|
8
|
+
sideEffects: false,
|
|
9
|
+
main: "./dist/index.js",
|
|
10
|
+
module: "./dist/index.mjs",
|
|
11
|
+
types: "./dist/index.d.ts",
|
|
12
|
+
files: ["dist", "app.plugin.js", "LICENSE"],
|
|
13
|
+
scripts: {
|
|
14
|
+
build: "cross-env NODE_OPTIONS='--max-old-space-size=8192' tsup",
|
|
15
|
+
dev: "cross-env NODE_OPTIONS='--max-old-space-size=8192' tsup --watch",
|
|
16
|
+
"generate:docs": "typedoc && node scripts/generate-reference.mjs"
|
|
17
|
+
},
|
|
18
|
+
dependencies: {
|
|
19
|
+
"@crossmint/client-sdk-auth": "workspace:*",
|
|
20
|
+
"@crossmint/client-sdk-base": "workspace:*",
|
|
21
|
+
"@crossmint/client-sdk-react-base": "workspace:*",
|
|
22
|
+
"@crossmint/client-sdk-rn-window": "workspace:*",
|
|
23
|
+
"@crossmint/client-signers": "workspace:*",
|
|
24
|
+
"@crossmint/common-sdk-auth": "workspace:*",
|
|
25
|
+
"@crossmint/common-sdk-base": "workspace:*",
|
|
26
|
+
"@crossmint/wallets-sdk": "workspace:*",
|
|
27
|
+
"@solana/web3.js": "1.98.1",
|
|
28
|
+
bs58: "^5.0.0",
|
|
29
|
+
"lodash.clonedeep": "4.5.0",
|
|
30
|
+
"lodash.isequal": "4.5.0",
|
|
31
|
+
"lucide-react-native": "0.548.0",
|
|
32
|
+
mitt: "3.0.1",
|
|
33
|
+
"react-native-svg": "15.14.0",
|
|
34
|
+
zod: "3.22.4"
|
|
35
|
+
},
|
|
36
|
+
devDependencies: {
|
|
37
|
+
"@expo/config-plugins": "^9.0.17",
|
|
38
|
+
typedoc: "0.28.16",
|
|
39
|
+
"@types/react": "19.1.10",
|
|
40
|
+
"expo-constants": "~18.0.9",
|
|
41
|
+
"expo-device": "~8.0.9",
|
|
42
|
+
"expo-secure-store": "~15.0.7",
|
|
43
|
+
"expo-web-browser": "~15.0.8"
|
|
44
|
+
},
|
|
45
|
+
peerDependencies: {
|
|
46
|
+
"@expo/config-plugins": ">=9.0.0",
|
|
47
|
+
"@solana/web3.js": "^1.98.1",
|
|
48
|
+
"expo-constants": ">=17 <19",
|
|
49
|
+
"expo-device": ">=7 <9",
|
|
50
|
+
"expo-secure-store": ">=14 <16",
|
|
51
|
+
"expo-web-browser": ">=14 <16",
|
|
52
|
+
react: ">=17.0.2",
|
|
53
|
+
"react-native": ">=0.74.3",
|
|
54
|
+
"react-native-webview": ">=13.15.0 <14"
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
package_default
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=chunk-R2M3HW3E.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../package.json"],"sourcesContent":["{\n \"name\": \"@crossmint/client-sdk-react-native-ui\",\n \"version\": \"0.13.34\",\n \"repository\": \"https://github.com/Crossmint/crossmint-sdk\",\n \"license\": \"Apache-2.0\",\n \"author\": \"Paella Labs Inc\",\n \"sideEffects\": false,\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\"dist\", \"app.plugin.js\", \"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 \"generate:docs\": \"typedoc && node scripts/generate-reference.mjs\"\n },\n \"dependencies\": {\n \"@crossmint/client-sdk-auth\": \"workspace:*\",\n \"@crossmint/client-sdk-base\": \"workspace:*\",\n \"@crossmint/client-sdk-react-base\": \"workspace:*\",\n \"@crossmint/client-sdk-rn-window\": \"workspace:*\",\n \"@crossmint/client-signers\": \"workspace:*\",\n \"@crossmint/common-sdk-auth\": \"workspace:*\",\n \"@crossmint/common-sdk-base\": \"workspace:*\",\n \"@crossmint/wallets-sdk\": \"workspace:*\",\n \"@solana/web3.js\": \"1.98.1\",\n \"bs58\": \"^5.0.0\",\n \"lodash.clonedeep\": \"4.5.0\",\n \"lodash.isequal\": \"4.5.0\",\n \"lucide-react-native\": \"0.548.0\",\n \"mitt\": \"3.0.1\",\n \"react-native-svg\": \"15.14.0\",\n \"zod\": \"3.22.4\"\n },\n \"devDependencies\": {\n \"@expo/config-plugins\": \"^9.0.17\",\n \"typedoc\": \"0.28.16\",\n \"@types/react\": \"19.1.10\",\n \"expo-constants\": \"~18.0.9\",\n \"expo-device\": \"~8.0.9\",\n \"expo-secure-store\": \"~15.0.7\",\n \"expo-web-browser\": \"~15.0.8\"\n },\n \"peerDependencies\": {\n \"@expo/config-plugins\": \">=9.0.0\",\n \"@solana/web3.js\": \"^1.98.1\",\n \"expo-constants\": \">=17 <19\",\n \"expo-device\": \">=7 <9\",\n \"expo-secure-store\": \">=14 <16\",\n \"expo-web-browser\": \">=14 <16\",\n \"react\": \">=17.0.2\",\n \"react-native\": \">=0.74.3\",\n \"react-native-webview\": \">=13.15.0 <14\"\n }\n}\n"],"mappings":";AAAA;AAAA,EACI,MAAQ;AAAA,EACR,SAAW;AAAA,EACX,YAAc;AAAA,EACd,SAAW;AAAA,EACX,QAAU;AAAA,EACV,aAAe;AAAA,EACf,MAAQ;AAAA,EACR,QAAU;AAAA,EACV,OAAS;AAAA,EACT,OAAS,CAAC,QAAQ,iBAAiB,SAAS;AAAA,EAC5C,SAAW;AAAA,IACP,OAAS;AAAA,IACT,KAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACA,cAAgB;AAAA,IACZ,8BAA8B;AAAA,IAC9B,8BAA8B;AAAA,IAC9B,oCAAoC;AAAA,IACpC,mCAAmC;AAAA,IACnC,6BAA6B;AAAA,IAC7B,8BAA8B;AAAA,IAC9B,8BAA8B;AAAA,IAC9B,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,MAAQ;AAAA,IACR,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,MAAQ;AAAA,IACR,oBAAoB;AAAA,IACpB,KAAO;AAAA,EACX;AAAA,EACA,iBAAmB;AAAA,IACf,wBAAwB;AAAA,IACxB,SAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,EACxB;AAAA,EACA,kBAAoB;AAAA,IAChB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,IACpB,OAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,EAC5B;AACJ;","names":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// package.json
|
|
2
|
+
var package_default = {
|
|
3
|
+
name: "@crossmint/client-sdk-react-native-ui",
|
|
4
|
+
version: "0.13.34",
|
|
5
|
+
repository: "https://github.com/Crossmint/crossmint-sdk",
|
|
6
|
+
license: "Apache-2.0",
|
|
7
|
+
author: "Paella Labs Inc",
|
|
8
|
+
sideEffects: false,
|
|
9
|
+
main: "./dist/index.js",
|
|
10
|
+
module: "./dist/index.mjs",
|
|
11
|
+
types: "./dist/index.d.ts",
|
|
12
|
+
files: ["dist", "app.plugin.js", "LICENSE"],
|
|
13
|
+
scripts: {
|
|
14
|
+
build: "cross-env NODE_OPTIONS='--max-old-space-size=8192' tsup",
|
|
15
|
+
dev: "cross-env NODE_OPTIONS='--max-old-space-size=8192' tsup --watch",
|
|
16
|
+
"generate:docs": "typedoc && node scripts/generate-reference.mjs"
|
|
17
|
+
},
|
|
18
|
+
dependencies: {
|
|
19
|
+
"@crossmint/client-sdk-auth": "workspace:*",
|
|
20
|
+
"@crossmint/client-sdk-base": "workspace:*",
|
|
21
|
+
"@crossmint/client-sdk-react-base": "workspace:*",
|
|
22
|
+
"@crossmint/client-sdk-rn-window": "workspace:*",
|
|
23
|
+
"@crossmint/client-signers": "workspace:*",
|
|
24
|
+
"@crossmint/common-sdk-auth": "workspace:*",
|
|
25
|
+
"@crossmint/common-sdk-base": "workspace:*",
|
|
26
|
+
"@crossmint/wallets-sdk": "workspace:*",
|
|
27
|
+
"@solana/web3.js": "1.98.1",
|
|
28
|
+
bs58: "^5.0.0",
|
|
29
|
+
"lodash.clonedeep": "4.5.0",
|
|
30
|
+
"lodash.isequal": "4.5.0",
|
|
31
|
+
"lucide-react-native": "0.548.0",
|
|
32
|
+
mitt: "3.0.1",
|
|
33
|
+
"react-native-svg": "15.14.0",
|
|
34
|
+
zod: "3.22.4"
|
|
35
|
+
},
|
|
36
|
+
devDependencies: {
|
|
37
|
+
"@expo/config-plugins": "^9.0.17",
|
|
38
|
+
typedoc: "0.28.16",
|
|
39
|
+
"@types/react": "19.1.10",
|
|
40
|
+
"expo-constants": "~18.0.9",
|
|
41
|
+
"expo-device": "~8.0.9",
|
|
42
|
+
"expo-secure-store": "~15.0.7",
|
|
43
|
+
"expo-web-browser": "~15.0.8"
|
|
44
|
+
},
|
|
45
|
+
peerDependencies: {
|
|
46
|
+
"@expo/config-plugins": ">=9.0.0",
|
|
47
|
+
"@solana/web3.js": "^1.98.1",
|
|
48
|
+
"expo-constants": ">=17 <19",
|
|
49
|
+
"expo-device": ">=7 <9",
|
|
50
|
+
"expo-secure-store": ">=14 <16",
|
|
51
|
+
"expo-web-browser": ">=14 <16",
|
|
52
|
+
react: ">=17.0.2",
|
|
53
|
+
"react-native": ">=0.74.3",
|
|
54
|
+
"react-native-webview": ">=13.15.0 <14"
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
exports.package_default = package_default;
|
|
61
|
+
//# sourceMappingURL=chunk-R3ZW4OCR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../package.json"],"names":[],"mappings":";AAAA;AAAA,EACI,MAAQ;AAAA,EACR,SAAW;AAAA,EACX,YAAc;AAAA,EACd,SAAW;AAAA,EACX,QAAU;AAAA,EACV,aAAe;AAAA,EACf,MAAQ;AAAA,EACR,QAAU;AAAA,EACV,OAAS;AAAA,EACT,OAAS,CAAC,QAAQ,iBAAiB,SAAS;AAAA,EAC5C,SAAW;AAAA,IACP,OAAS;AAAA,IACT,KAAO;AAAA,IACP,iBAAiB;AAAA,EACrB;AAAA,EACA,cAAgB;AAAA,IACZ,8BAA8B;AAAA,IAC9B,8BAA8B;AAAA,IAC9B,oCAAoC;AAAA,IACpC,mCAAmC;AAAA,IACnC,6BAA6B;AAAA,IAC7B,8BAA8B;AAAA,IAC9B,8BAA8B;AAAA,IAC9B,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,MAAQ;AAAA,IACR,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,uBAAuB;AAAA,IACvB,MAAQ;AAAA,IACR,oBAAoB;AAAA,IACpB,KAAO;AAAA,EACX;AAAA,EACA,iBAAmB;AAAA,IACf,wBAAwB;AAAA,IACxB,SAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,EACxB;AAAA,EACA,kBAAoB;AAAA,IAChB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,IACpB,OAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,EAC5B;AACJ","sourcesContent":["{\n \"name\": \"@crossmint/client-sdk-react-native-ui\",\n \"version\": \"0.13.34\",\n \"repository\": \"https://github.com/Crossmint/crossmint-sdk\",\n \"license\": \"Apache-2.0\",\n \"author\": \"Paella Labs Inc\",\n \"sideEffects\": false,\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.mjs\",\n \"types\": \"./dist/index.d.ts\",\n \"files\": [\"dist\", \"app.plugin.js\", \"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 \"generate:docs\": \"typedoc && node scripts/generate-reference.mjs\"\n },\n \"dependencies\": {\n \"@crossmint/client-sdk-auth\": \"workspace:*\",\n \"@crossmint/client-sdk-base\": \"workspace:*\",\n \"@crossmint/client-sdk-react-base\": \"workspace:*\",\n \"@crossmint/client-sdk-rn-window\": \"workspace:*\",\n \"@crossmint/client-signers\": \"workspace:*\",\n \"@crossmint/common-sdk-auth\": \"workspace:*\",\n \"@crossmint/common-sdk-base\": \"workspace:*\",\n \"@crossmint/wallets-sdk\": \"workspace:*\",\n \"@solana/web3.js\": \"1.98.1\",\n \"bs58\": \"^5.0.0\",\n \"lodash.clonedeep\": \"4.5.0\",\n \"lodash.isequal\": \"4.5.0\",\n \"lucide-react-native\": \"0.548.0\",\n \"mitt\": \"3.0.1\",\n \"react-native-svg\": \"15.14.0\",\n \"zod\": \"3.22.4\"\n },\n \"devDependencies\": {\n \"@expo/config-plugins\": \"^9.0.17\",\n \"typedoc\": \"0.28.16\",\n \"@types/react\": \"19.1.10\",\n \"expo-constants\": \"~18.0.9\",\n \"expo-device\": \"~8.0.9\",\n \"expo-secure-store\": \"~15.0.7\",\n \"expo-web-browser\": \"~15.0.8\"\n },\n \"peerDependencies\": {\n \"@expo/config-plugins\": \">=9.0.0\",\n \"@solana/web3.js\": \"^1.98.1\",\n \"expo-constants\": \">=17 <19\",\n \"expo-device\": \">=7 <9\",\n \"expo-secure-store\": \">=14 <16\",\n \"expo-web-browser\": \">=14 <16\",\n \"react\": \">=17.0.2\",\n \"react-native\": \">=0.74.3\",\n \"react-native-webview\": \">=13.15.0 <14\"\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";//# sourceMappingURL=chunk-R47XMJ32.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import {
|
|
2
|
+
userAgent
|
|
3
|
+
} from "./chunk-RSCBYS6I.mjs";
|
|
4
|
+
import {
|
|
5
|
+
PayerConnectionHandler
|
|
6
|
+
} from "./chunk-4AJTICKY.mjs";
|
|
7
|
+
import {
|
|
8
|
+
createCrossmintApiClient
|
|
9
|
+
} from "./chunk-LWQ5CJC4.mjs";
|
|
10
|
+
import {
|
|
11
|
+
localEventEmitter
|
|
12
|
+
} from "./chunk-2DNOAXOE.mjs";
|
|
13
|
+
import {
|
|
14
|
+
__spreadProps,
|
|
15
|
+
__spreadValues
|
|
16
|
+
} from "./chunk-7SPIOD4K.mjs";
|
|
17
|
+
|
|
18
|
+
// src/components/embed/v3/EmbeddedCheckoutV3WebView.tsx
|
|
19
|
+
import { useCrossmint } from "@crossmint/client-sdk-react-base";
|
|
20
|
+
import { useEffect, useRef, useState } from "react";
|
|
21
|
+
import { View } from "react-native";
|
|
22
|
+
import { crossmintEmbeddedCheckoutV3Service } from "@crossmint/client-sdk-base";
|
|
23
|
+
import { RNWebView, WebViewParent } from "@crossmint/client-sdk-rn-window";
|
|
24
|
+
import { embeddedCheckoutV3IncomingEvents, embeddedCheckoutV3OutgoingEvents } from "@crossmint/client-sdk-base";
|
|
25
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
26
|
+
function EmbeddedCheckoutV3WebView(props) {
|
|
27
|
+
var _a;
|
|
28
|
+
const [webViewClient, setWebViewClient] = useState(null);
|
|
29
|
+
const [height, setHeight] = useState(0);
|
|
30
|
+
const initialChainRef = useRef((_a = props.payment.crypto.payer) == null ? void 0 : _a.initialChain);
|
|
31
|
+
const memoizedProps = useRef(props);
|
|
32
|
+
if (havePropsChanged(props, memoizedProps.current)) {
|
|
33
|
+
const newProps = __spreadValues({}, props);
|
|
34
|
+
const initialChainPreservation = shouldPreserveInitialChain(props, initialChainRef.current);
|
|
35
|
+
if (initialChainPreservation.shouldPreserve) {
|
|
36
|
+
newProps.payment.crypto.payer = initialChainPreservation.updatedPayer;
|
|
37
|
+
}
|
|
38
|
+
memoizedProps.current = newProps;
|
|
39
|
+
}
|
|
40
|
+
const { crossmint } = useCrossmint();
|
|
41
|
+
const apiClient = createCrossmintApiClient(crossmint, {
|
|
42
|
+
usageOrigin: "client"
|
|
43
|
+
});
|
|
44
|
+
const embeddedCheckoutService = crossmintEmbeddedCheckoutV3Service({ apiClient });
|
|
45
|
+
const webViewRef = useRef(null);
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
const webView = webViewRef.current;
|
|
48
|
+
if (!webView || webViewClient) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const client = new WebViewParent(
|
|
52
|
+
{ current: webView },
|
|
53
|
+
{
|
|
54
|
+
incomingEvents: embeddedCheckoutV3IncomingEvents,
|
|
55
|
+
outgoingEvents: embeddedCheckoutV3OutgoingEvents
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
setWebViewClient(client);
|
|
59
|
+
}, [webViewRef.current, webViewClient]);
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
if (webViewClient == null) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const handleHeightChanged = (data) => setHeight(data.height);
|
|
65
|
+
webViewClient.on("ui:height.changed", handleHeightChanged);
|
|
66
|
+
const handleOrderUpdated = (data) => {
|
|
67
|
+
localEventEmitter.emit("order:updated", data);
|
|
68
|
+
};
|
|
69
|
+
webViewClient.on("order:updated", handleOrderUpdated);
|
|
70
|
+
return () => {
|
|
71
|
+
webViewClient.off("ui:height.changed");
|
|
72
|
+
webViewClient.off("order:updated");
|
|
73
|
+
};
|
|
74
|
+
}, [webViewClient]);
|
|
75
|
+
const handleMessage = (event) => {
|
|
76
|
+
if (webViewClient) {
|
|
77
|
+
webViewClient.handleMessage(event);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
return /* @__PURE__ */ jsxs(View, { style: { flex: 1 }, children: [
|
|
81
|
+
/* @__PURE__ */ jsx(
|
|
82
|
+
RNWebView,
|
|
83
|
+
{
|
|
84
|
+
ref: webViewRef,
|
|
85
|
+
globals: crossmint.appId ? { crossmintAppId: crossmint.appId } : void 0,
|
|
86
|
+
source: { uri: embeddedCheckoutService.iframe.getUrl(memoizedProps.current) },
|
|
87
|
+
onMessage: handleMessage,
|
|
88
|
+
style: {
|
|
89
|
+
width: "100%",
|
|
90
|
+
minWidth: "100%",
|
|
91
|
+
height,
|
|
92
|
+
backgroundColor: "transparent",
|
|
93
|
+
overflow: void 0,
|
|
94
|
+
opacity: 1,
|
|
95
|
+
padding: 0,
|
|
96
|
+
boxShadow: "none",
|
|
97
|
+
borderWidth: 0,
|
|
98
|
+
transform: [{ translateX: 0 }]
|
|
99
|
+
},
|
|
100
|
+
allowsInlineMediaPlayback: true,
|
|
101
|
+
mediaPlaybackRequiresUserAction: false,
|
|
102
|
+
allowsBackForwardNavigationGestures: false,
|
|
103
|
+
allowsLinkPreview: false,
|
|
104
|
+
scrollEnabled: true,
|
|
105
|
+
bounces: false,
|
|
106
|
+
showsHorizontalScrollIndicator: false,
|
|
107
|
+
showsVerticalScrollIndicator: false,
|
|
108
|
+
domStorageEnabled: true,
|
|
109
|
+
mixedContentMode: "always",
|
|
110
|
+
allowFileAccess: true,
|
|
111
|
+
allowUniversalAccessFromFileURLs: true,
|
|
112
|
+
geolocationEnabled: true,
|
|
113
|
+
userAgent,
|
|
114
|
+
paymentRequestEnabled: true
|
|
115
|
+
}
|
|
116
|
+
),
|
|
117
|
+
memoizedProps.current.payment.crypto.enabled ? memoizedProps.current.payment.crypto.payer != null ? /* @__PURE__ */ jsx(
|
|
118
|
+
PayerConnectionHandler,
|
|
119
|
+
{
|
|
120
|
+
payer: memoizedProps.current.payment.crypto.payer,
|
|
121
|
+
webViewClient
|
|
122
|
+
}
|
|
123
|
+
) : /* @__PURE__ */ jsx(ThrowError, { message: "If 'payment.crypto.enabled' is true, 'payment.crypto.payer' must be provided. Support for not providing a payer is not yet implemented." }) : null
|
|
124
|
+
] });
|
|
125
|
+
}
|
|
126
|
+
function havePropsChanged(parentProps, currentRefProps) {
|
|
127
|
+
return JSON.stringify(parentProps) !== JSON.stringify(currentRefProps);
|
|
128
|
+
}
|
|
129
|
+
function shouldPreserveInitialChain(props, storedInitialChain) {
|
|
130
|
+
if (props.payment.crypto.payer && storedInitialChain != null) {
|
|
131
|
+
return {
|
|
132
|
+
shouldPreserve: true,
|
|
133
|
+
updatedPayer: __spreadProps(__spreadValues({}, props.payment.crypto.payer), {
|
|
134
|
+
initialChain: storedInitialChain
|
|
135
|
+
})
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return { shouldPreserve: false };
|
|
139
|
+
}
|
|
140
|
+
function ThrowError({ message }) {
|
|
141
|
+
throw new Error(message);
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export {
|
|
146
|
+
EmbeddedCheckoutV3WebView
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=chunk-R5GF6WFB.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/embed/v3/EmbeddedCheckoutV3WebView.tsx"],"sourcesContent":["import { useCrossmint } from \"@crossmint/client-sdk-react-base\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { View } from \"react-native\";\nimport type { WebView, WebViewMessageEvent } from \"react-native-webview\";\n\nimport { type CrossmintEmbeddedCheckoutV3Props, crossmintEmbeddedCheckoutV3Service } from \"@crossmint/client-sdk-base\";\nimport { RNWebView, WebViewParent } from \"@crossmint/client-sdk-rn-window\";\nimport { embeddedCheckoutV3IncomingEvents, embeddedCheckoutV3OutgoingEvents } from \"@crossmint/client-sdk-base\";\n\nimport { createCrossmintApiClient } from \"@/utils/createCrossmintApiClient\";\nimport { userAgent } from \"@/utils/embed/userAgent\";\nimport { PayerConnectionHandler } from \"./crypto/PayerConnectionHandler\";\nimport type { PayerSupportedBlockchains } from \"@crossmint/common-sdk-base\";\nimport { localEventEmitter, type LocalEventEmitterEvents } from \"@/utils/eventEmitter\";\n\nexport function EmbeddedCheckoutV3WebView(props: CrossmintEmbeddedCheckoutV3Props) {\n const [webViewClient, setWebViewClient] = useState<WebViewParent<\n typeof embeddedCheckoutV3IncomingEvents,\n typeof embeddedCheckoutV3OutgoingEvents\n > | null>(null);\n const [height, setHeight] = useState(0);\n\n const initialChainRef = useRef(props.payment.crypto.payer?.initialChain);\n\n const memoizedProps = useRef(props);\n if (havePropsChanged(props, memoizedProps.current)) {\n const newProps = { ...props };\n const initialChainPreservation = shouldPreserveInitialChain(props, initialChainRef.current);\n if (initialChainPreservation.shouldPreserve) {\n newProps.payment.crypto.payer = initialChainPreservation.updatedPayer;\n }\n memoizedProps.current = newProps;\n }\n\n const { crossmint } = useCrossmint();\n const apiClient = createCrossmintApiClient(crossmint, {\n usageOrigin: \"client\",\n });\n const embeddedCheckoutService = crossmintEmbeddedCheckoutV3Service({ apiClient });\n\n const webViewRef = useRef<WebView>(null);\n\n useEffect(() => {\n const webView = webViewRef.current;\n if (!webView || webViewClient) {\n return;\n }\n\n const client = new WebViewParent(\n { current: webView },\n {\n incomingEvents: embeddedCheckoutV3IncomingEvents,\n outgoingEvents: embeddedCheckoutV3OutgoingEvents,\n }\n );\n setWebViewClient(client);\n }, [webViewRef.current, webViewClient]);\n\n useEffect(() => {\n if (webViewClient == null) {\n return;\n }\n\n const handleHeightChanged = (data: { height: number }) => setHeight(data.height);\n webViewClient.on(\"ui:height.changed\", handleHeightChanged);\n\n // Listen for order:updated events and re-emit as local event\n const handleOrderUpdated = (data: LocalEventEmitterEvents[\"order:updated\"]) => {\n localEventEmitter.emit(\"order:updated\", data);\n };\n webViewClient.on(\"order:updated\", handleOrderUpdated);\n\n return () => {\n webViewClient.off(\"ui:height.changed\");\n webViewClient.off(\"order:updated\");\n };\n }, [webViewClient]);\n\n const handleMessage = (event: WebViewMessageEvent) => {\n if (webViewClient) {\n webViewClient.handleMessage(event);\n }\n };\n\n return (\n <View style={{ flex: 1 }}>\n <RNWebView\n ref={webViewRef}\n globals={crossmint.appId ? { crossmintAppId: crossmint.appId } : undefined}\n source={{ uri: embeddedCheckoutService.iframe.getUrl(memoizedProps.current) }}\n onMessage={handleMessage}\n style={{\n width: \"100%\",\n minWidth: \"100%\",\n height,\n backgroundColor: \"transparent\",\n overflow: undefined,\n opacity: 1,\n padding: 0,\n boxShadow: \"none\",\n borderWidth: 0,\n transform: [{ translateX: 0 }],\n }}\n allowsInlineMediaPlayback={true}\n mediaPlaybackRequiresUserAction={false}\n allowsBackForwardNavigationGestures={false}\n allowsLinkPreview={false}\n scrollEnabled={true}\n bounces={false}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n domStorageEnabled={true}\n mixedContentMode=\"always\"\n allowFileAccess={true}\n allowUniversalAccessFromFileURLs={true}\n geolocationEnabled={true}\n userAgent={userAgent}\n paymentRequestEnabled={true}\n />\n {memoizedProps.current.payment.crypto.enabled ? (\n memoizedProps.current.payment.crypto.payer != null ? (\n <PayerConnectionHandler\n payer={memoizedProps.current.payment.crypto.payer}\n webViewClient={webViewClient}\n />\n ) : (\n <ThrowError message=\"If 'payment.crypto.enabled' is true, 'payment.crypto.payer' must be provided. Support for not providing a payer is not yet implemented.\" />\n )\n ) : null}\n </View>\n );\n}\n\nfunction havePropsChanged(\n parentProps: CrossmintEmbeddedCheckoutV3Props,\n currentRefProps: CrossmintEmbeddedCheckoutV3Props\n): boolean {\n return JSON.stringify(parentProps) !== JSON.stringify(currentRefProps);\n}\n\nfunction shouldPreserveInitialChain(\n props: CrossmintEmbeddedCheckoutV3Props,\n storedInitialChain: PayerSupportedBlockchains | undefined\n): { shouldPreserve: true; updatedPayer: typeof props.payment.crypto.payer } | { shouldPreserve: false } {\n if (props.payment.crypto.payer && storedInitialChain != null) {\n return {\n shouldPreserve: true,\n updatedPayer: {\n ...props.payment.crypto.payer,\n initialChain: storedInitialChain,\n },\n };\n }\n return { shouldPreserve: false };\n}\n\nfunction ThrowError({ message }: { message: string }) {\n throw new Error(message);\n // biome-ignore lint/correctness/noUnreachable: Need a return statement to satisfy JSX return type\n return null;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// src/utils/embed/userAgent.ts
|
|
2
|
+
import { Platform } from "react-native";
|
|
3
|
+
import * as Device from "expo-device";
|
|
4
|
+
var osVersion2 = Device.osVersion || "0";
|
|
5
|
+
var modelName2 = Device.modelName || "Unknown";
|
|
6
|
+
var userAgent = Platform.OS === "ios" ? `Mozilla/5.0 (iPhone; CPU iPhone OS ${osVersion2.toString().replace(/\./g, "_")} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/${Math.floor(
|
|
7
|
+
Number(osVersion2) / 2
|
|
8
|
+
)}.0 Mobile/15E148 Safari/604.1` : `Mozilla/5.0 (Linux; Android ${osVersion2}; ${modelName2}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.181 Mobile Safari/537.36`;
|
|
9
|
+
|
|
10
|
+
export {
|
|
11
|
+
osVersion2 as osVersion,
|
|
12
|
+
modelName2 as modelName,
|
|
13
|
+
userAgent
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=chunk-RSCBYS6I.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/embed/userAgent.ts"],"sourcesContent":["import { Platform } from \"react-native\";\nimport * as Device from \"expo-device\";\n\nexport const osVersion = Device.osVersion || \"0\";\nexport const modelName = Device.modelName || \"Unknown\";\n\nexport const userAgent =\n Platform.OS === \"ios\"\n ? `Mozilla/5.0 (iPhone; CPU iPhone OS ${osVersion\n .toString()\n .replace(/\\./g, \"_\")} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/${Math.floor(\n Number(osVersion) / 2\n )}.0 Mobile/15E148 Safari/604.1`\n : `Mozilla/5.0 (Linux; Android ${osVersion}; ${modelName}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.181 Mobile Safari/537.36`;\n"],"mappings":";AAAA,SAAS,gBAAgB;AACzB,YAAY,YAAY;AAEjB,IAAMA,aAAmB,oBAAa;AACtC,IAAMC,aAAmB,oBAAa;AAEtC,IAAM,YACT,SAAS,OAAO,QACV,sCAAsCD,WACjC,SAAS,EACT,QAAQ,OAAO,GAAG,CAAC,oEAAoE,KAAK;AAAA,EAC7F,OAAOA,UAAS,IAAI;AACxB,CAAC,kCACD,+BAA+BA,UAAS,KAAKC,UAAS;","names":["osVersion","modelName"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=chunk-TNPZITVL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunk4NTIGHREjs = require('./chunk-4NTIGHRE.js');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunkQ7YPX4RJjs = require('./chunk-Q7YPX4RJ.js');
|
|
7
|
+
|
|
8
|
+
// src/components/embed/v3/CrossmintEmbeddedCheckoutV3.tsx
|
|
9
|
+
var _jsxruntime = require('react/jsx-runtime');
|
|
10
|
+
function CrossmintEmbeddedCheckout(props) {
|
|
11
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk4NTIGHREjs.EmbeddedCheckoutV3WebView, _chunkQ7YPX4RJjs.__spreadValues.call(void 0, {}, props));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
exports.CrossmintEmbeddedCheckout = CrossmintEmbeddedCheckout;
|
|
17
|
+
//# sourceMappingURL=chunk-U74INGIF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/embed/v3/CrossmintEmbeddedCheckoutV3.tsx"],"names":[],"mappings":";;;;;;;;AAIW;AADJ,SAAS,0BAA0B,OAAyC;AAC/E,SAAO,oBAAC,8CAA8B,MAAO;AACjD","sourcesContent":["import { EmbeddedCheckoutV3WebView } from \"./EmbeddedCheckoutV3WebView\";\nimport type { CrossmintEmbeddedCheckoutV3Props } from \"@crossmint/client-sdk-base\";\n\nexport function CrossmintEmbeddedCheckout(props: CrossmintEmbeddedCheckoutV3Props) {\n return <EmbeddedCheckoutV3WebView {...props} />;\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EmbeddedCheckoutV3WebView
|
|
3
|
+
} from "./chunk-R5GF6WFB.mjs";
|
|
4
|
+
import {
|
|
5
|
+
__spreadValues
|
|
6
|
+
} from "./chunk-7SPIOD4K.mjs";
|
|
7
|
+
|
|
8
|
+
// src/components/embed/v3/CrossmintEmbeddedCheckoutV3.tsx
|
|
9
|
+
import { jsx } from "react/jsx-runtime";
|
|
10
|
+
function CrossmintEmbeddedCheckout(props) {
|
|
11
|
+
return /* @__PURE__ */ jsx(EmbeddedCheckoutV3WebView, __spreadValues({}, props));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export {
|
|
15
|
+
CrossmintEmbeddedCheckout
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=chunk-V2PIS2OC.mjs.map
|