@crossmint/client-sdk-react-native-ui 0.13.30 → 0.13.33

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 (297) hide show
  1. package/dist/chunk-2D2RJCVX.js +1 -0
  2. package/dist/chunk-2PX34LDU.js +1 -0
  3. package/dist/chunk-33A67NJB.js +1 -0
  4. package/dist/chunk-3QSVHCEH.mjs +2 -0
  5. package/dist/chunk-4K5AKIUY.mjs +1 -0
  6. package/dist/chunk-5CLFJLE4.mjs +0 -0
  7. package/dist/chunk-72MMCJ2E.js +1 -0
  8. package/dist/chunk-77GXCNDP.js +1 -0
  9. package/dist/chunk-7USVT6EZ.mjs +1 -0
  10. package/dist/chunk-AJMHVVST.js +1 -0
  11. package/dist/chunk-C62HRWJA.js +1 -0
  12. package/dist/chunk-D4347S2W.mjs +1 -0
  13. package/dist/chunk-D5QADN6Z.mjs +1 -0
  14. package/dist/chunk-DC5HCBPK.js +1 -0
  15. package/dist/chunk-DGDGCUWI.js +1 -0
  16. package/dist/chunk-DKQZSNOO.js +1 -0
  17. package/dist/chunk-DRF2SEV2.mjs +1 -0
  18. package/dist/chunk-DZIX4GTA.mjs +1 -0
  19. package/dist/chunk-EEGS6YBT.mjs +1 -0
  20. package/dist/chunk-EF2YTIUF.mjs +1 -0
  21. package/dist/chunk-EF5KYLDO.js +1 -0
  22. package/dist/chunk-EI5LOD4Y.js +1 -0
  23. package/dist/chunk-F7VXWATP.js +1 -0
  24. package/dist/chunk-FFQ6EQCL.mjs +1 -0
  25. package/dist/chunk-FX23A4BR.mjs +1 -0
  26. package/dist/chunk-GP5U5576.js +1 -0
  27. package/dist/chunk-I3QSTPTV.mjs +0 -0
  28. package/dist/chunk-I4D3YJW2.js +1 -0
  29. package/dist/chunk-IUDQDPIN.mjs +1 -0
  30. package/dist/chunk-J42HASCI.js +1 -0
  31. package/dist/chunk-J477SX6P.mjs +1 -0
  32. package/dist/chunk-J7Q2R6UH.mjs +0 -0
  33. package/dist/chunk-K36KMDCG.js +1 -0
  34. package/dist/chunk-KBGJNOSB.js +1 -0
  35. package/dist/chunk-LK3AO6AY.mjs +1 -0
  36. package/dist/chunk-LOFHVHXQ.js +1 -0
  37. package/dist/chunk-MB7H3PBJ.mjs +0 -0
  38. package/dist/chunk-MKCQJOIO.js +1 -0
  39. package/dist/chunk-MVVSGLQL.js +2 -0
  40. package/dist/chunk-OCOGB3KT.mjs +1 -0
  41. package/dist/chunk-PCJMDUSI.mjs +1 -0
  42. package/dist/chunk-PSSAAY7D.mjs +1 -0
  43. package/dist/chunk-RRFC7QEE.js +1 -0
  44. package/dist/chunk-SHTETN4C.js +1 -0
  45. package/dist/chunk-TIQGKXQA.mjs +0 -0
  46. package/dist/chunk-TUC3RZ6L.mjs +1 -0
  47. package/dist/chunk-UA34B5QB.js +1 -0
  48. package/dist/chunk-UBHIBMTA.mjs +0 -0
  49. package/dist/chunk-VACQTZRT.js +1 -0
  50. package/dist/chunk-VQE67ZFF.js +1 -0
  51. package/dist/chunk-XNDIT72O.mjs +2 -0
  52. package/dist/chunk-YJORUMPB.js +2 -0
  53. package/dist/chunk-YLJDAK2S.mjs +1 -0
  54. package/dist/chunk-YQEWHOQ7.js +1 -0
  55. package/dist/chunk-ZCKUSOGC.mjs +1 -0
  56. package/dist/chunk-ZI3GTSDG.mjs +1 -0
  57. package/dist/components/embed/index.js +1 -16
  58. package/dist/components/embed/index.mjs +1 -16
  59. package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.js +1 -14
  60. package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.mjs +1 -14
  61. package/dist/components/embed/v3/EmbeddedCheckoutV3WebView.js +1 -13
  62. package/dist/components/embed/v3/EmbeddedCheckoutV3WebView.mjs +1 -13
  63. package/dist/components/embed/v3/crypto/PayerConnectionHandler.js +1 -8
  64. package/dist/components/embed/v3/crypto/PayerConnectionHandler.mjs +1 -8
  65. package/dist/components/embed/v3/index.js +1 -15
  66. package/dist/components/embed/v3/index.mjs +1 -15
  67. package/dist/components/index.js +1 -34
  68. package/dist/components/index.mjs +1 -34
  69. package/dist/components/signers/BaseCodeInput.js +1 -9
  70. package/dist/components/signers/BaseCodeInput.mjs +1 -9
  71. package/dist/components/signers/BaseConfirmation.js +1 -9
  72. package/dist/components/signers/BaseConfirmation.mjs +1 -9
  73. package/dist/components/signers/EmailSignersDialog.js +1 -11
  74. package/dist/components/signers/EmailSignersDialog.mjs +1 -11
  75. package/dist/components/signers/PhoneSignersDialog.js +1 -11
  76. package/dist/components/signers/PhoneSignersDialog.mjs +1 -11
  77. package/dist/components/signers/index.js +1 -16
  78. package/dist/components/signers/index.mjs +1 -16
  79. package/dist/components/wallets/ExportPrivateKeyButton.js +1 -8
  80. package/dist/components/wallets/ExportPrivateKeyButton.mjs +1 -8
  81. package/dist/components/wallets/index.js +1 -9
  82. package/dist/components/wallets/index.mjs +1 -9
  83. package/dist/hooks/index.js +1 -26
  84. package/dist/hooks/index.mjs +1 -26
  85. package/dist/hooks/useAuth.js +1 -14
  86. package/dist/hooks/useAuth.mjs +1 -14
  87. package/dist/hooks/useCrossmintCheckout.js +1 -11
  88. package/dist/hooks/useCrossmintCheckout.mjs +1 -11
  89. package/dist/hooks/useWalletEmailSigner.js +1 -8
  90. package/dist/hooks/useWalletEmailSigner.mjs +1 -8
  91. package/dist/index.js +1 -79
  92. package/dist/index.mjs +1 -79
  93. package/dist/logger/init.js +1 -9
  94. package/dist/logger/init.mjs +1 -9
  95. package/dist/plugin/mods/addQueryToAndroidManifest.js +1 -8
  96. package/dist/plugin/mods/addQueryToAndroidManifest.mjs +1 -8
  97. package/dist/plugin/withGooglePay.js +1 -57
  98. package/dist/plugin/withGooglePay.mjs +1 -57
  99. package/dist/providers/CrossmintAuthProvider.js +1 -14
  100. package/dist/providers/CrossmintAuthProvider.mjs +1 -14
  101. package/dist/providers/CrossmintProvider.js +1 -12
  102. package/dist/providers/CrossmintProvider.mjs +1 -12
  103. package/dist/providers/CrossmintWalletProvider.js +1 -16
  104. package/dist/providers/CrossmintWalletProvider.mjs +1 -16
  105. package/dist/providers/index.js +1 -28
  106. package/dist/providers/index.mjs +1 -28
  107. package/dist/styles/index.js +1 -8
  108. package/dist/styles/index.mjs +1 -8
  109. package/dist/styles/theme.js +1 -8
  110. package/dist/styles/theme.mjs +1 -8
  111. package/dist/types/auth.js +1 -1
  112. package/dist/types/auth.mjs +0 -1
  113. package/dist/utils/SecureStorage.js +1 -8
  114. package/dist/utils/SecureStorage.mjs +1 -8
  115. package/dist/utils/createCrossmintApiClient.js +1 -9
  116. package/dist/utils/createCrossmintApiClient.mjs +1 -9
  117. package/dist/utils/embed/userAgent.js +1 -12
  118. package/dist/utils/embed/userAgent.mjs +1 -12
  119. package/dist/utils/eventEmitter.js +1 -8
  120. package/dist/utils/eventEmitter.mjs +1 -8
  121. package/package.json +58 -54
  122. package/dist/chunk-24MMQ2R4.js +0 -15
  123. package/dist/chunk-24MMQ2R4.js.map +0 -1
  124. package/dist/chunk-2DNOAXOE.mjs +0 -8
  125. package/dist/chunk-2DNOAXOE.mjs.map +0 -1
  126. package/dist/chunk-2TEAOLM6.mjs +0 -149
  127. package/dist/chunk-2TEAOLM6.mjs.map +0 -1
  128. package/dist/chunk-34OVOZB2.mjs +0 -111
  129. package/dist/chunk-34OVOZB2.mjs.map +0 -1
  130. package/dist/chunk-3AWDWMZ2.mjs +0 -18
  131. package/dist/chunk-3AWDWMZ2.mjs.map +0 -1
  132. package/dist/chunk-3PJ6FXFT.mjs +0 -1
  133. package/dist/chunk-3PJ6FXFT.mjs.map +0 -1
  134. package/dist/chunk-3SFSPJXM.mjs +0 -55
  135. package/dist/chunk-3SFSPJXM.mjs.map +0 -1
  136. package/dist/chunk-4AJTICKY.mjs +0 -44
  137. package/dist/chunk-4AJTICKY.mjs.map +0 -1
  138. package/dist/chunk-4HKXTAVR.js +0 -14
  139. package/dist/chunk-4HKXTAVR.js.map +0 -1
  140. package/dist/chunk-4V7NDO5X.mjs +0 -157
  141. package/dist/chunk-4V7NDO5X.mjs.map +0 -1
  142. package/dist/chunk-4WJIXD7U.mjs +0 -14
  143. package/dist/chunk-4WJIXD7U.mjs.map +0 -1
  144. package/dist/chunk-5V6ONJWT.mjs +0 -61
  145. package/dist/chunk-5V6ONJWT.mjs.map +0 -1
  146. package/dist/chunk-5ZBDQUNG.js +0 -1
  147. package/dist/chunk-5ZBDQUNG.js.map +0 -1
  148. package/dist/chunk-6S5SEVGS.js +0 -17
  149. package/dist/chunk-6S5SEVGS.js.map +0 -1
  150. package/dist/chunk-6Z74KC25.mjs +0 -1
  151. package/dist/chunk-6Z74KC25.mjs.map +0 -1
  152. package/dist/chunk-7SPIOD4K.mjs +0 -66
  153. package/dist/chunk-7SPIOD4K.mjs.map +0 -1
  154. package/dist/chunk-ALMDA3KN.mjs +0 -199
  155. package/dist/chunk-ALMDA3KN.mjs.map +0 -1
  156. package/dist/chunk-BE4HT2U7.mjs +0 -1
  157. package/dist/chunk-BE4HT2U7.mjs.map +0 -1
  158. package/dist/chunk-BTH5QRIT.js +0 -149
  159. package/dist/chunk-BTH5QRIT.js.map +0 -1
  160. package/dist/chunk-BUB4U2GE.js +0 -44
  161. package/dist/chunk-BUB4U2GE.js.map +0 -1
  162. package/dist/chunk-BUTZZ7JB.js +0 -36
  163. package/dist/chunk-BUTZZ7JB.js.map +0 -1
  164. package/dist/chunk-CFHHVHNZ.mjs +0 -157
  165. package/dist/chunk-CFHHVHNZ.mjs.map +0 -1
  166. package/dist/chunk-CV6RWU2T.js +0 -50
  167. package/dist/chunk-CV6RWU2T.js.map +0 -1
  168. package/dist/chunk-DD2MVD6A.mjs +0 -36
  169. package/dist/chunk-DD2MVD6A.mjs.map +0 -1
  170. package/dist/chunk-EKXEDMRD.mjs +0 -71
  171. package/dist/chunk-EKXEDMRD.mjs.map +0 -1
  172. package/dist/chunk-FCDPEDXH.mjs +0 -148
  173. package/dist/chunk-FCDPEDXH.mjs.map +0 -1
  174. package/dist/chunk-FQID5LOL.js +0 -22
  175. package/dist/chunk-FQID5LOL.js.map +0 -1
  176. package/dist/chunk-FRD6HEIM.mjs +0 -22
  177. package/dist/chunk-FRD6HEIM.mjs.map +0 -1
  178. package/dist/chunk-GYBEEYGB.mjs +0 -1
  179. package/dist/chunk-GYBEEYGB.mjs.map +0 -1
  180. package/dist/chunk-HELXBZ7D.js +0 -18
  181. package/dist/chunk-HELXBZ7D.js.map +0 -1
  182. package/dist/chunk-IBQK5B7B.js +0 -71
  183. package/dist/chunk-IBQK5B7B.js.map +0 -1
  184. package/dist/chunk-IHZNXV5S.js +0 -1
  185. package/dist/chunk-IHZNXV5S.js.map +0 -1
  186. package/dist/chunk-IMME6ZBV.js +0 -61
  187. package/dist/chunk-IMME6ZBV.js.map +0 -1
  188. package/dist/chunk-J2MDWDV6.mjs +0 -1
  189. package/dist/chunk-J2MDWDV6.mjs.map +0 -1
  190. package/dist/chunk-KK4SQ7WF.js +0 -1
  191. package/dist/chunk-KK4SQ7WF.js.map +0 -1
  192. package/dist/chunk-KOUCOMBE.js +0 -148
  193. package/dist/chunk-KOUCOMBE.js.map +0 -1
  194. package/dist/chunk-MMVER6VO.js +0 -1
  195. package/dist/chunk-MMVER6VO.js.map +0 -1
  196. package/dist/chunk-MVLQR6RI.js +0 -199
  197. package/dist/chunk-MVLQR6RI.js.map +0 -1
  198. package/dist/chunk-NBWATZY4.js +0 -157
  199. package/dist/chunk-NBWATZY4.js.map +0 -1
  200. package/dist/chunk-OTRMAWWU.js +0 -55
  201. package/dist/chunk-OTRMAWWU.js.map +0 -1
  202. package/dist/chunk-P35PHJU5.mjs +0 -17
  203. package/dist/chunk-P35PHJU5.mjs.map +0 -1
  204. package/dist/chunk-PUTC7LI4.mjs +0 -348
  205. package/dist/chunk-PUTC7LI4.mjs.map +0 -1
  206. package/dist/chunk-Q2Y5CZT4.js +0 -157
  207. package/dist/chunk-Q2Y5CZT4.js.map +0 -1
  208. package/dist/chunk-Q7YPX4RJ.js +0 -66
  209. package/dist/chunk-Q7YPX4RJ.js.map +0 -1
  210. package/dist/chunk-R47XMJ32.js +0 -1
  211. package/dist/chunk-R47XMJ32.js.map +0 -1
  212. package/dist/chunk-RSCBYS6I.mjs +0 -15
  213. package/dist/chunk-RSCBYS6I.mjs.map +0 -1
  214. package/dist/chunk-RTLOANMR.mjs +0 -50
  215. package/dist/chunk-RTLOANMR.mjs.map +0 -1
  216. package/dist/chunk-S3OC5AT3.mjs +0 -24
  217. package/dist/chunk-S3OC5AT3.mjs.map +0 -1
  218. package/dist/chunk-SHSENRY7.js +0 -24
  219. package/dist/chunk-SHSENRY7.js.map +0 -1
  220. package/dist/chunk-TNPZITVL.mjs +0 -1
  221. package/dist/chunk-TNPZITVL.mjs.map +0 -1
  222. package/dist/chunk-UNIFCVYR.js +0 -348
  223. package/dist/chunk-UNIFCVYR.js.map +0 -1
  224. package/dist/chunk-VCF2YXCO.js +0 -208
  225. package/dist/chunk-VCF2YXCO.js.map +0 -1
  226. package/dist/chunk-XNVZRSGL.js +0 -111
  227. package/dist/chunk-XNVZRSGL.js.map +0 -1
  228. package/dist/chunk-XUGJXLWC.js +0 -8
  229. package/dist/chunk-XUGJXLWC.js.map +0 -1
  230. package/dist/chunk-XXJ7LQ44.js +0 -1
  231. package/dist/chunk-XXJ7LQ44.js.map +0 -1
  232. package/dist/chunk-Z7Y7COJM.mjs +0 -208
  233. package/dist/chunk-Z7Y7COJM.mjs.map +0 -1
  234. package/dist/components/embed/index.js.map +0 -1
  235. package/dist/components/embed/index.mjs.map +0 -1
  236. package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.js.map +0 -1
  237. package/dist/components/embed/v3/CrossmintEmbeddedCheckoutV3.mjs.map +0 -1
  238. package/dist/components/embed/v3/EmbeddedCheckoutV3WebView.js.map +0 -1
  239. package/dist/components/embed/v3/EmbeddedCheckoutV3WebView.mjs.map +0 -1
  240. package/dist/components/embed/v3/crypto/PayerConnectionHandler.js.map +0 -1
  241. package/dist/components/embed/v3/crypto/PayerConnectionHandler.mjs.map +0 -1
  242. package/dist/components/embed/v3/index.js.map +0 -1
  243. package/dist/components/embed/v3/index.mjs.map +0 -1
  244. package/dist/components/index.js.map +0 -1
  245. package/dist/components/index.mjs.map +0 -1
  246. package/dist/components/signers/BaseCodeInput.js.map +0 -1
  247. package/dist/components/signers/BaseCodeInput.mjs.map +0 -1
  248. package/dist/components/signers/BaseConfirmation.js.map +0 -1
  249. package/dist/components/signers/BaseConfirmation.mjs.map +0 -1
  250. package/dist/components/signers/EmailSignersDialog.js.map +0 -1
  251. package/dist/components/signers/EmailSignersDialog.mjs.map +0 -1
  252. package/dist/components/signers/PhoneSignersDialog.js.map +0 -1
  253. package/dist/components/signers/PhoneSignersDialog.mjs.map +0 -1
  254. package/dist/components/signers/index.js.map +0 -1
  255. package/dist/components/signers/index.mjs.map +0 -1
  256. package/dist/components/wallets/ExportPrivateKeyButton.js.map +0 -1
  257. package/dist/components/wallets/ExportPrivateKeyButton.mjs.map +0 -1
  258. package/dist/components/wallets/index.js.map +0 -1
  259. package/dist/components/wallets/index.mjs.map +0 -1
  260. package/dist/hooks/index.js.map +0 -1
  261. package/dist/hooks/index.mjs.map +0 -1
  262. package/dist/hooks/useAuth.js.map +0 -1
  263. package/dist/hooks/useAuth.mjs.map +0 -1
  264. package/dist/hooks/useCrossmintCheckout.js.map +0 -1
  265. package/dist/hooks/useCrossmintCheckout.mjs.map +0 -1
  266. package/dist/hooks/useWalletEmailSigner.js.map +0 -1
  267. package/dist/hooks/useWalletEmailSigner.mjs.map +0 -1
  268. package/dist/index.js.map +0 -1
  269. package/dist/index.mjs.map +0 -1
  270. package/dist/logger/init.js.map +0 -1
  271. package/dist/logger/init.mjs.map +0 -1
  272. package/dist/plugin/mods/addQueryToAndroidManifest.js.map +0 -1
  273. package/dist/plugin/mods/addQueryToAndroidManifest.mjs.map +0 -1
  274. package/dist/plugin/withGooglePay.js.map +0 -1
  275. package/dist/plugin/withGooglePay.mjs.map +0 -1
  276. package/dist/providers/CrossmintAuthProvider.js.map +0 -1
  277. package/dist/providers/CrossmintAuthProvider.mjs.map +0 -1
  278. package/dist/providers/CrossmintProvider.js.map +0 -1
  279. package/dist/providers/CrossmintProvider.mjs.map +0 -1
  280. package/dist/providers/CrossmintWalletProvider.js.map +0 -1
  281. package/dist/providers/CrossmintWalletProvider.mjs.map +0 -1
  282. package/dist/providers/index.js.map +0 -1
  283. package/dist/providers/index.mjs.map +0 -1
  284. package/dist/styles/index.js.map +0 -1
  285. package/dist/styles/index.mjs.map +0 -1
  286. package/dist/styles/theme.js.map +0 -1
  287. package/dist/styles/theme.mjs.map +0 -1
  288. package/dist/types/auth.js.map +0 -1
  289. package/dist/types/auth.mjs.map +0 -1
  290. package/dist/utils/SecureStorage.js.map +0 -1
  291. package/dist/utils/SecureStorage.mjs.map +0 -1
  292. package/dist/utils/createCrossmintApiClient.js.map +0 -1
  293. package/dist/utils/createCrossmintApiClient.mjs.map +0 -1
  294. package/dist/utils/embed/userAgent.js.map +0 -1
  295. package/dist/utils/embed/userAgent.mjs.map +0 -1
  296. package/dist/utils/eventEmitter.js.map +0 -1
  297. package/dist/utils/eventEmitter.mjs.map +0 -1
@@ -1,149 +0,0 @@
1
- import {
2
- theme
3
- } from "./chunk-3AWDWMZ2.mjs";
4
- import {
5
- __async
6
- } from "./chunk-7SPIOD4K.mjs";
7
-
8
- // src/components/signers/BaseConfirmation.tsx
9
- import { useState } from "react";
10
- import { View, Text, TouchableOpacity, StyleSheet, ActivityIndicator } from "react-native";
11
- import { jsx, jsxs } from "react/jsx-runtime";
12
- function BaseConfirmation({
13
- contactInfo,
14
- contactType,
15
- icon,
16
- onConfirm,
17
- onCancel,
18
- appearance
19
- }) {
20
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
21
- const [isLoading, setIsLoading] = useState(false);
22
- const [error, setError] = useState(null);
23
- const handleConfirm = () => __async(this, null, function* () {
24
- setIsLoading(true);
25
- setError(null);
26
- try {
27
- yield onConfirm();
28
- } catch (error2) {
29
- console.error(`Failed to send ${contactType} code`, error2);
30
- setError(`Failed to send ${contactType === "email" ? "email" : "SMS"}. Please try again.`);
31
- } finally {
32
- setIsLoading(false);
33
- }
34
- });
35
- const dynamicStyles = StyleSheet.create({
36
- container: {
37
- width: "100%"
38
- },
39
- title: {
40
- fontSize: 24,
41
- fontWeight: "600",
42
- color: ((_a = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _a.textPrimary) || theme["cm-text-primary"],
43
- textAlign: "center",
44
- marginBottom: 8
45
- },
46
- description: {
47
- fontSize: 16,
48
- color: ((_b = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _b.textSecondary) || theme["cm-text-secondary"],
49
- textAlign: "center",
50
- marginBottom: 24,
51
- lineHeight: 22
52
- },
53
- contactContainer: {
54
- borderWidth: 1,
55
- borderColor: ((_c = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _c.border) || theme["cm-border"],
56
- borderRadius: (appearance == null ? void 0 : appearance.borderRadius) || 12,
57
- padding: 16,
58
- marginBottom: 24,
59
- flexDirection: "row",
60
- alignItems: "center"
61
- },
62
- contactText: {
63
- fontSize: 16,
64
- color: ((_d = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _d.textPrimary) || theme["cm-text-primary"],
65
- marginLeft: 12,
66
- flex: 1
67
- },
68
- errorText: {
69
- fontSize: 14,
70
- color: ((_e = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _e.danger) || theme["cm-danger"],
71
- textAlign: "center",
72
- marginBottom: 16
73
- },
74
- buttonContainer: {
75
- flexDirection: "row",
76
- gap: 12
77
- },
78
- button: {
79
- flex: 1,
80
- paddingVertical: 16,
81
- paddingHorizontal: 24,
82
- borderRadius: 999,
83
- alignItems: "center",
84
- justifyContent: "center",
85
- minHeight: 52
86
- },
87
- primaryButton: {
88
- backgroundColor: ((_f = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _f.accent) || theme["cm-accent"]
89
- },
90
- secondaryButton: {
91
- backgroundColor: "transparent",
92
- borderWidth: 1,
93
- borderColor: ((_g = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _g.border) || theme["cm-border"]
94
- },
95
- disabledButton: {
96
- opacity: 0.6
97
- },
98
- buttonText: {
99
- fontSize: 16,
100
- fontWeight: "500",
101
- color: ((_h = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _h.background) || theme["cm-background-primary"]
102
- },
103
- secondaryButtonText: {
104
- color: ((_i = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _i.textPrimary) || theme["cm-text-primary"]
105
- }
106
- });
107
- return /* @__PURE__ */ jsxs(View, { style: dynamicStyles.container, children: [
108
- /* @__PURE__ */ jsx(Text, { style: dynamicStyles.title, children: "Confirm it's you" }),
109
- /* @__PURE__ */ jsxs(Text, { style: dynamicStyles.description, children: [
110
- "You're using this wallet for the first time on this device. Click 'Send code' to get a one-time verification code",
111
- contactType === "phone" ? " via SMS" : "",
112
- "."
113
- ] }),
114
- /* @__PURE__ */ jsxs(View, { style: dynamicStyles.contactContainer, children: [
115
- icon,
116
- /* @__PURE__ */ jsx(Text, { style: dynamicStyles.contactText, children: contactInfo })
117
- ] }),
118
- error && /* @__PURE__ */ jsx(Text, { style: dynamicStyles.errorText, children: error }),
119
- /* @__PURE__ */ jsxs(View, { style: dynamicStyles.buttonContainer, children: [
120
- /* @__PURE__ */ jsx(
121
- TouchableOpacity,
122
- {
123
- style: [dynamicStyles.button, dynamicStyles.secondaryButton],
124
- onPress: onCancel,
125
- disabled: isLoading,
126
- children: /* @__PURE__ */ jsx(Text, { style: [dynamicStyles.buttonText, dynamicStyles.secondaryButtonText], children: "Cancel" })
127
- }
128
- ),
129
- /* @__PURE__ */ jsx(
130
- TouchableOpacity,
131
- {
132
- style: [
133
- dynamicStyles.button,
134
- dynamicStyles.primaryButton,
135
- isLoading && dynamicStyles.disabledButton
136
- ],
137
- onPress: handleConfirm,
138
- disabled: isLoading,
139
- children: isLoading ? /* @__PURE__ */ jsx(ActivityIndicator, { color: ((_j = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _j.background) || theme["cm-background-primary"] }) : /* @__PURE__ */ jsx(Text, { style: dynamicStyles.buttonText, children: "Send code" })
140
- }
141
- )
142
- ] })
143
- ] });
144
- }
145
-
146
- export {
147
- BaseConfirmation
148
- };
149
- //# sourceMappingURL=chunk-2TEAOLM6.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/signers/BaseConfirmation.tsx"],"sourcesContent":["import { useState, type ReactNode } from \"react\";\nimport { View, Text, TouchableOpacity, StyleSheet, ActivityIndicator } from \"react-native\";\nimport type { UIConfig } from \"@crossmint/common-sdk-base\";\nimport { theme } from \"../../styles/theme\";\n\ninterface BaseConfirmationProps {\n contactInfo: string;\n contactType: \"email\" | \"phone\";\n icon: ReactNode;\n onConfirm: () => Promise<void>;\n onCancel?: () => void;\n appearance?: UIConfig;\n}\n\nexport function BaseConfirmation({\n contactInfo,\n contactType,\n icon,\n onConfirm,\n onCancel,\n appearance,\n}: BaseConfirmationProps) {\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const handleConfirm = async () => {\n setIsLoading(true);\n setError(null);\n try {\n await onConfirm();\n } catch (error) {\n console.error(`Failed to send ${contactType} code`, error);\n setError(`Failed to send ${contactType === \"email\" ? \"email\" : \"SMS\"}. Please try again.`);\n } finally {\n setIsLoading(false);\n }\n };\n\n const dynamicStyles = StyleSheet.create({\n container: {\n width: \"100%\",\n },\n title: {\n fontSize: 24,\n fontWeight: \"600\",\n color: appearance?.colors?.textPrimary || theme[\"cm-text-primary\"],\n textAlign: \"center\",\n marginBottom: 8,\n },\n description: {\n fontSize: 16,\n color: appearance?.colors?.textSecondary || theme[\"cm-text-secondary\"],\n textAlign: \"center\",\n marginBottom: 24,\n lineHeight: 22,\n },\n contactContainer: {\n borderWidth: 1,\n borderColor: appearance?.colors?.border || theme[\"cm-border\"],\n borderRadius: appearance?.borderRadius || 12,\n padding: 16,\n marginBottom: 24,\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n contactText: {\n fontSize: 16,\n color: appearance?.colors?.textPrimary || theme[\"cm-text-primary\"],\n marginLeft: 12,\n flex: 1,\n },\n errorText: {\n fontSize: 14,\n color: appearance?.colors?.danger || theme[\"cm-danger\"],\n textAlign: \"center\",\n marginBottom: 16,\n },\n buttonContainer: {\n flexDirection: \"row\",\n gap: 12,\n },\n button: {\n flex: 1,\n paddingVertical: 16,\n paddingHorizontal: 24,\n borderRadius: 999,\n alignItems: \"center\",\n justifyContent: \"center\",\n minHeight: 52,\n },\n primaryButton: {\n backgroundColor: appearance?.colors?.accent || theme[\"cm-accent\"],\n },\n secondaryButton: {\n backgroundColor: \"transparent\",\n borderWidth: 1,\n borderColor: appearance?.colors?.border || theme[\"cm-border\"],\n },\n disabledButton: {\n opacity: 0.6,\n },\n buttonText: {\n fontSize: 16,\n fontWeight: \"500\",\n color: appearance?.colors?.background || theme[\"cm-background-primary\"],\n },\n secondaryButtonText: {\n color: appearance?.colors?.textPrimary || theme[\"cm-text-primary\"],\n },\n });\n\n return (\n <View style={dynamicStyles.container}>\n <Text style={dynamicStyles.title}>Confirm it's you</Text>\n <Text style={dynamicStyles.description}>\n You're using this wallet for the first time on this device. Click 'Send code' to get a one-time\n verification code{contactType === \"phone\" ? \" via SMS\" : \"\"}.\n </Text>\n\n <View style={dynamicStyles.contactContainer}>\n {icon}\n <Text style={dynamicStyles.contactText}>{contactInfo}</Text>\n </View>\n\n {error && <Text style={dynamicStyles.errorText}>{error}</Text>}\n\n <View style={dynamicStyles.buttonContainer}>\n <TouchableOpacity\n style={[dynamicStyles.button, dynamicStyles.secondaryButton]}\n onPress={onCancel}\n disabled={isLoading}\n >\n <Text style={[dynamicStyles.buttonText, dynamicStyles.secondaryButtonText]}>Cancel</Text>\n </TouchableOpacity>\n\n <TouchableOpacity\n style={[\n dynamicStyles.button,\n dynamicStyles.primaryButton,\n isLoading && dynamicStyles.disabledButton,\n ]}\n onPress={handleConfirm}\n disabled={isLoading}\n >\n {isLoading ? (\n <ActivityIndicator color={appearance?.colors?.background || theme[\"cm-background-primary\"]} />\n ) : (\n <Text style={dynamicStyles.buttonText}>Send code</Text>\n )}\n </TouchableOpacity>\n </View>\n </View>\n );\n}\n"],"mappings":"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","names":["error"]}
@@ -1,111 +0,0 @@
1
- import {
2
- __async
3
- } from "./chunk-7SPIOD4K.mjs";
4
-
5
- // src/components/wallets/ExportPrivateKeyButton.tsx
6
- import { useState, useCallback, useRef, useEffect } from "react";
7
- import { View, Text, StyleSheet, Alert } from "react-native";
8
- import { useWallet, useCrossmint } from "@crossmint/client-sdk-react-base";
9
- import { environmentUrlConfig, exportSignerInboundEvents, exportSignerOutboundEvents } from "@crossmint/client-signers";
10
- import { isExportableSigner } from "@crossmint/wallets-sdk";
11
- import { validateAPIKey } from "@crossmint/common-sdk-base";
12
- import { WebViewParent, RNWebView } from "@crossmint/client-sdk-rn-window";
13
- import { jsx } from "react/jsx-runtime";
14
- function ExportPrivateKeyButton({ appearance }) {
15
- const { wallet } = useWallet();
16
- const { crossmint } = useCrossmint();
17
- const webViewRef = useRef(null);
18
- const connectionRef = useRef(null);
19
- const [frameUrl, setFrameUrl] = useState("");
20
- useEffect(() => {
21
- if (crossmint != null) {
22
- try {
23
- const parsedAPIKey = validateAPIKey(crossmint.apiKey);
24
- if (parsedAPIKey.isValid) {
25
- const baseUrl = environmentUrlConfig[parsedAPIKey.environment];
26
- setFrameUrl(`${baseUrl}/export`);
27
- }
28
- } catch (error) {
29
- console.error("Failed to get TEE URL:", error);
30
- }
31
- }
32
- }, [crossmint]);
33
- const handleWebViewLoadEnd = useCallback(
34
- (syntheticEvent) => __async(this, null, function* () {
35
- if (wallet == null || webViewRef.current == null || syntheticEvent.nativeEvent.loading) {
36
- return;
37
- }
38
- try {
39
- if (isExportableSigner(wallet.signer)) {
40
- const connection = new WebViewParent(webViewRef, {
41
- incomingEvents: exportSignerOutboundEvents,
42
- outgoingEvents: exportSignerInboundEvents
43
- });
44
- connectionRef.current = connection;
45
- yield connection.handshakeWithChild();
46
- yield wallet.signer._exportPrivateKey(connection);
47
- }
48
- } catch (error) {
49
- console.error("Failed to export private key:", error);
50
- Alert.alert("Export Failed", "Failed to export private key. Please try again.");
51
- }
52
- }),
53
- [wallet]
54
- );
55
- const handleWebViewError = useCallback((syntheticEvent) => {
56
- const { nativeEvent } = syntheticEvent;
57
- console.error("WebView error:", nativeEvent);
58
- Alert.alert("Export Failed", "Failed to load export interface. Please try again.");
59
- }, []);
60
- const handleMessage = useCallback((event) => {
61
- if (connectionRef.current) {
62
- connectionRef.current.handleMessage(event);
63
- }
64
- }, []);
65
- if (frameUrl === "" || wallet == null || !isExportableSigner(wallet.signer)) {
66
- return null;
67
- }
68
- return /* @__PURE__ */ jsx(View, { style: styles.webViewContainer, children: /* @__PURE__ */ jsx(
69
- RNWebView,
70
- {
71
- ref: webViewRef,
72
- source: { uri: frameUrl },
73
- style: styles.webView,
74
- javaScriptEnabled: true,
75
- domStorageEnabled: true,
76
- onLoadEnd: handleWebViewLoadEnd,
77
- onError: handleWebViewError,
78
- onHttpError: handleWebViewError,
79
- onMessage: handleMessage,
80
- startInLoadingState: true,
81
- renderLoading: () => /* @__PURE__ */ jsx(View, { style: styles.loadingContainer, children: /* @__PURE__ */ jsx(Text, { style: styles.loadingText, children: "Loading..." }) })
82
- }
83
- ) });
84
- }
85
- var styles = StyleSheet.create({
86
- webViewContainer: {
87
- height: 56,
88
- borderWidth: 1,
89
- borderColor: "#E5E5E5",
90
- borderRadius: 12,
91
- overflow: "hidden"
92
- },
93
- webView: {
94
- flex: 1
95
- },
96
- loadingContainer: {
97
- flex: 1,
98
- justifyContent: "center",
99
- alignItems: "center",
100
- backgroundColor: "#F5F5F5"
101
- },
102
- loadingText: {
103
- fontSize: 16,
104
- color: "#666666"
105
- }
106
- });
107
-
108
- export {
109
- ExportPrivateKeyButton
110
- };
111
- //# sourceMappingURL=chunk-34OVOZB2.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/wallets/ExportPrivateKeyButton.tsx"],"sourcesContent":["import { useState, useCallback, useRef, useEffect } from \"react\";\nimport { View, Text, StyleSheet, Alert } from \"react-native\";\nimport type { WebView, WebViewMessageEvent } from \"react-native-webview\";\nimport { useWallet, useCrossmint } from \"@crossmint/client-sdk-react-base\";\nimport { environmentUrlConfig, exportSignerInboundEvents, exportSignerOutboundEvents } from \"@crossmint/client-signers\";\nimport { isExportableSigner } from \"@crossmint/wallets-sdk\";\nimport { validateAPIKey } from \"@crossmint/common-sdk-base\";\nimport type { UIConfig } from \"@crossmint/common-sdk-base\";\nimport { WebViewParent, RNWebView } from \"@crossmint/client-sdk-rn-window\";\n\nexport interface ExportPrivateKeyButtonProps {\n /** Optional appearance configuration for styling the export button. */\n appearance?: UIConfig;\n}\n\n/**\n * Renders a button that allows the user to export their wallet's private key.\n * Only works with email and phone signers. Will not render for passkey or external wallet signers.\n */\nexport function ExportPrivateKeyButton({ appearance }: ExportPrivateKeyButtonProps) {\n const { wallet } = useWallet();\n const { crossmint } = useCrossmint();\n const webViewRef = useRef<WebView>(null);\n const connectionRef = useRef<WebViewParent<\n typeof exportSignerOutboundEvents,\n typeof exportSignerInboundEvents\n > | null>(null);\n const [frameUrl, setFrameUrl] = useState<string>(\"\");\n\n useEffect(() => {\n if (crossmint != null) {\n try {\n const parsedAPIKey = validateAPIKey(crossmint.apiKey);\n if (parsedAPIKey.isValid) {\n const baseUrl = environmentUrlConfig[parsedAPIKey.environment];\n setFrameUrl(`${baseUrl}/export`);\n }\n } catch (error) {\n console.error(\"Failed to get TEE URL:\", error);\n }\n }\n }, [crossmint]);\n\n const handleWebViewLoadEnd = useCallback(\n async (syntheticEvent: { nativeEvent: { loading: boolean } }) => {\n if (wallet == null || webViewRef.current == null || syntheticEvent.nativeEvent.loading) {\n return;\n }\n\n try {\n if (isExportableSigner(wallet.signer)) {\n const connection = new WebViewParent(webViewRef, {\n incomingEvents: exportSignerOutboundEvents,\n outgoingEvents: exportSignerInboundEvents,\n });\n connectionRef.current = connection;\n await connection.handshakeWithChild();\n await wallet.signer._exportPrivateKey(connection);\n }\n } catch (error) {\n console.error(\"Failed to export private key:\", error);\n Alert.alert(\"Export Failed\", \"Failed to export private key. Please try again.\");\n }\n },\n [wallet]\n );\n\n const handleWebViewError = useCallback((syntheticEvent: { nativeEvent: unknown }) => {\n const { nativeEvent } = syntheticEvent;\n console.error(\"WebView error:\", nativeEvent);\n Alert.alert(\"Export Failed\", \"Failed to load export interface. Please try again.\");\n }, []);\n\n const handleMessage = useCallback((event: WebViewMessageEvent) => {\n if (connectionRef.current) {\n connectionRef.current.handleMessage(event);\n }\n }, []);\n\n if (frameUrl === \"\" || wallet == null || !isExportableSigner(wallet.signer)) {\n return null;\n }\n\n return (\n <View style={styles.webViewContainer}>\n <RNWebView\n ref={webViewRef}\n source={{ uri: frameUrl }}\n style={styles.webView}\n javaScriptEnabled={true}\n domStorageEnabled={true}\n onLoadEnd={handleWebViewLoadEnd}\n onError={handleWebViewError}\n onHttpError={handleWebViewError}\n onMessage={handleMessage}\n startInLoadingState={true}\n renderLoading={() => (\n <View style={styles.loadingContainer}>\n <Text style={styles.loadingText}>Loading...</Text>\n </View>\n )}\n />\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n webViewContainer: {\n height: 56,\n borderWidth: 1,\n borderColor: \"#E5E5E5\",\n borderRadius: 12,\n overflow: \"hidden\",\n },\n webView: {\n flex: 1,\n },\n loadingContainer: {\n flex: 1,\n justifyContent: \"center\",\n alignItems: \"center\",\n backgroundColor: \"#F5F5F5\",\n },\n loadingText: {\n fontSize: 16,\n color: \"#666666\",\n },\n});\n"],"mappings":"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","names":[]}
@@ -1,18 +0,0 @@
1
- // src/styles/theme.ts
2
- var theme = {
3
- "cm-text-primary": "#00150D",
4
- "cm-text-secondary": "#67797F",
5
- "cm-background-primary": "#FFFFFF",
6
- "cm-muted-primary": "#F0F2F4",
7
- "cm-hover": "#E9ECF0",
8
- "cm-border": "#D9D9D9",
9
- "cm-link": "#1A74E9",
10
- "cm-accent": "#4CAF50",
11
- // old 04AA6D
12
- "cm-danger": "#f44336"
13
- };
14
-
15
- export {
16
- theme
17
- };
18
- //# sourceMappingURL=chunk-3AWDWMZ2.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/styles/theme.ts"],"sourcesContent":["export const theme = {\n \"cm-text-primary\": \"#00150D\",\n \"cm-text-secondary\": \"#67797F\",\n \"cm-background-primary\": \"#FFFFFF\",\n \"cm-muted-primary\": \"#F0F2F4\",\n \"cm-hover\": \"#E9ECF0\",\n \"cm-border\": \"#D9D9D9\",\n \"cm-link\": \"#1A74E9\",\n \"cm-accent\": \"#4CAF50\", // old 04AA6D\n \"cm-danger\": \"#f44336\",\n} as const;\n"],"mappings":";AAAO,IAAM,QAAQ;AAAA,EACjB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,yBAAyB;AAAA,EACzB,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,WAAW;AAAA,EACX,aAAa;AAAA;AAAA,EACb,aAAa;AACjB;","names":[]}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=chunk-3PJ6FXFT.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,55 +0,0 @@
1
- import {
2
- __async
3
- } from "./chunk-7SPIOD4K.mjs";
4
-
5
- // src/hooks/useWalletEmailSigner.ts
6
- import { useCallback, useContext } from "react";
7
- import { CrossmintWalletBaseContext } from "@crossmint/client-sdk-react-base";
8
- var throwNotAvailable = (functionName) => () => {
9
- throw new Error(`${functionName} is not available. Make sure you're using an email signer wallet.`);
10
- };
11
- function useWalletEmailSigner() {
12
- const context = useContext(CrossmintWalletBaseContext);
13
- if (context == null) {
14
- throw new Error("useWalletEmailSigner must be used within CrossmintWalletProvider");
15
- }
16
- const { emailSignerState } = context;
17
- const sendEmailWithOtp = useCallback(() => __async(this, null, function* () {
18
- var _a;
19
- if (!emailSignerState.sendEmailWithOtp) {
20
- throwNotAvailable("sendEmailWithOtp")();
21
- }
22
- return yield (_a = emailSignerState.sendEmailWithOtp) == null ? void 0 : _a.call(emailSignerState);
23
- }), [emailSignerState.sendEmailWithOtp]);
24
- const verifyOtp = useCallback(
25
- (otp) => __async(this, null, function* () {
26
- var _a;
27
- if (!emailSignerState.verifyOtp) {
28
- throwNotAvailable("verifyOtp")();
29
- }
30
- return yield (_a = emailSignerState.verifyOtp) == null ? void 0 : _a.call(emailSignerState, otp);
31
- }),
32
- [emailSignerState.verifyOtp]
33
- );
34
- const reject = useCallback(
35
- (error) => {
36
- var _a;
37
- if (!emailSignerState.reject) {
38
- throwNotAvailable("reject")();
39
- }
40
- (_a = emailSignerState.reject) == null ? void 0 : _a.call(emailSignerState, error);
41
- },
42
- [emailSignerState.reject]
43
- );
44
- return {
45
- needsAuth: emailSignerState.needsAuth,
46
- sendEmailWithOtp,
47
- verifyOtp,
48
- reject
49
- };
50
- }
51
-
52
- export {
53
- useWalletEmailSigner
54
- };
55
- //# sourceMappingURL=chunk-3SFSPJXM.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/hooks/useWalletEmailSigner.ts"],"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"],"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;","names":[]}
@@ -1,44 +0,0 @@
1
- import {
2
- __async
3
- } from "./chunk-7SPIOD4K.mjs";
4
-
5
- // src/components/embed/v3/crypto/PayerConnectionHandler.tsx
6
- import { useEffect } from "react";
7
- function PayerConnectionHandler({
8
- payer,
9
- webViewClient
10
- }) {
11
- useEffect(() => {
12
- if (webViewClient == null) {
13
- return;
14
- }
15
- const signTransactionListener = webViewClient.on(
16
- "crypto:send-transaction",
17
- (_0) => __async(this, [_0], function* ({ chain, serializedTransaction }) {
18
- try {
19
- yield payer.handleChainSwitch(chain);
20
- const tx = yield payer.handleSignAndSendTransaction(serializedTransaction);
21
- if (tx.success) {
22
- webViewClient.send("crypto:send-transaction:success", { txId: tx.txId });
23
- } else {
24
- webViewClient.send("crypto:send-transaction:failed", { error: tx.errorMessage });
25
- }
26
- } catch (error) {
27
- console.error("[PayerConnectionHandler] Failed to send transaction", error);
28
- webViewClient.send("crypto:send-transaction:failed", {
29
- error: error.message || "An unknown error occurred"
30
- });
31
- }
32
- })
33
- );
34
- return () => {
35
- webViewClient.off(signTransactionListener);
36
- };
37
- }, [webViewClient]);
38
- return null;
39
- }
40
-
41
- export {
42
- PayerConnectionHandler
43
- };
44
- //# sourceMappingURL=chunk-4AJTICKY.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/embed/v3/crypto/PayerConnectionHandler.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { EmbeddedCheckoutPayer } from \"@crossmint/client-sdk-base\";\nimport type { PayerSupportedBlockchains } from \"@crossmint/common-sdk-base\";\nimport type { WebViewParent } from \"@crossmint/client-sdk-rn-window\";\nimport type { embeddedCheckoutV3IncomingEvents, embeddedCheckoutV3OutgoingEvents } from \"@crossmint/client-sdk-base\";\n\nexport function PayerConnectionHandler({\n payer,\n webViewClient,\n}: {\n payer: EmbeddedCheckoutPayer;\n webViewClient: WebViewParent<\n typeof embeddedCheckoutV3IncomingEvents,\n typeof embeddedCheckoutV3OutgoingEvents\n > | null;\n}) {\n useEffect(() => {\n if (webViewClient == null) {\n return;\n }\n\n const signTransactionListener = webViewClient.on(\n \"crypto:send-transaction\",\n async ({ chain, serializedTransaction }) => {\n try {\n await payer.handleChainSwitch(chain as PayerSupportedBlockchains);\n const tx = await payer.handleSignAndSendTransaction(serializedTransaction);\n if (tx.success) {\n webViewClient.send(\"crypto:send-transaction:success\", { txId: tx.txId });\n } else {\n webViewClient.send(\"crypto:send-transaction:failed\", { error: tx.errorMessage });\n }\n } catch (error) {\n console.error(\"[PayerConnectionHandler] Failed to send transaction\", error);\n webViewClient.send(\"crypto:send-transaction:failed\", {\n error: (error as Error).message || \"An unknown error occurred\",\n });\n }\n }\n );\n\n return () => {\n webViewClient.off(signTransactionListener);\n };\n }, [webViewClient]);\n\n return null;\n}\n"],"mappings":";;;;;AAAA,SAAS,iBAAiB;AAMnB,SAAS,uBAAuB;AAAA,EACnC;AAAA,EACA;AACJ,GAMG;AACC,YAAU,MAAM;AACZ,QAAI,iBAAiB,MAAM;AACvB;AAAA,IACJ;AAEA,UAAM,0BAA0B,cAAc;AAAA,MAC1C;AAAA,MACA,CAAO,OAAqC,eAArC,KAAqC,WAArC,EAAE,OAAO,sBAAsB,GAAM;AACxC,YAAI;AACA,gBAAM,MAAM,kBAAkB,KAAkC;AAChE,gBAAM,KAAK,MAAM,MAAM,6BAA6B,qBAAqB;AACzE,cAAI,GAAG,SAAS;AACZ,0BAAc,KAAK,mCAAmC,EAAE,MAAM,GAAG,KAAK,CAAC;AAAA,UAC3E,OAAO;AACH,0BAAc,KAAK,kCAAkC,EAAE,OAAO,GAAG,aAAa,CAAC;AAAA,UACnF;AAAA,QACJ,SAAS,OAAO;AACZ,kBAAQ,MAAM,uDAAuD,KAAK;AAC1E,wBAAc,KAAK,kCAAkC;AAAA,YACjD,OAAQ,MAAgB,WAAW;AAAA,UACvC,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO,MAAM;AACT,oBAAc,IAAI,uBAAuB;AAAA,IAC7C;AAAA,EACJ,GAAG,CAAC,aAAa,CAAC;AAElB,SAAO;AACX;","names":[]}
@@ -1,14 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/plugin/mods/addQueryToAndroidManifest.ts
2
- function addQueryToAndroidManifest(androidManifest, query) {
3
- const manifest = androidManifest.manifest;
4
- if (!manifest.queries) {
5
- manifest.queries = [];
6
- }
7
- manifest.queries.push(query);
8
- return androidManifest;
9
- }
10
-
11
-
12
-
13
- exports.addQueryToAndroidManifest = addQueryToAndroidManifest;
14
- //# sourceMappingURL=chunk-4HKXTAVR.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/plugin/mods/addQueryToAndroidManifest.ts"],"names":[],"mappings":";AAEO,SAAS,0BAA0B,iBAAkC,OAAuC;AAC/G,QAAM,WAAW,gBAAgB;AAEjC,MAAI,CAAC,SAAS,SAAS;AACnB,aAAS,UAAU,CAAC;AAAA,EACxB;AAEA,WAAS,QAAQ,KAAK,KAAK;AAE3B,SAAO;AACX","sourcesContent":["import type { AndroidManifest, ManifestQuery } from \"@expo/config-plugins/build/android/Manifest\";\n\nexport function addQueryToAndroidManifest(androidManifest: AndroidManifest, query: ManifestQuery): AndroidManifest {\n const manifest = androidManifest.manifest;\n\n if (!manifest.queries) {\n manifest.queries = [];\n }\n\n manifest.queries.push(query);\n\n return androidManifest;\n}\n"]}
@@ -1,157 +0,0 @@
1
- import {
2
- BaseCodeInput
3
- } from "./chunk-ALMDA3KN.mjs";
4
- import {
5
- BaseConfirmation
6
- } from "./chunk-2TEAOLM6.mjs";
7
- import {
8
- theme
9
- } from "./chunk-3AWDWMZ2.mjs";
10
-
11
- // src/components/signers/PhoneSignersDialog.tsx
12
- import { View, StyleSheet, Dimensions, Modal, TouchableOpacity, Text } from "react-native";
13
- import { PhoneIcon, Smartphone, X } from "lucide-react-native";
14
- import { jsx, jsxs } from "react/jsx-runtime";
15
- var { width: screenWidth } = Dimensions.get("window");
16
- function PhoneSignersDialog({
17
- phone,
18
- open,
19
- setOpen,
20
- step,
21
- onSubmitOTP,
22
- onResendOTPCode,
23
- onSubmitPhone,
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("User cancelled"));
32
- setOpen(false);
33
- }
34
- }
35
- const dynamicStyles = StyleSheet.create({
36
- modalOverlay: {
37
- flex: 1,
38
- backgroundColor: "rgba(0, 0, 0, 0.5)",
39
- justifyContent: "center",
40
- alignItems: "center",
41
- padding: 16
42
- },
43
- modalContainer: {
44
- backgroundColor: ((_a = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _a.background) || theme["cm-background-primary"],
45
- borderRadius: (appearance == null ? void 0 : appearance.borderRadius) || 12,
46
- padding: 32,
47
- width: Math.min(screenWidth - 32, 400),
48
- maxHeight: "80%",
49
- position: "relative",
50
- alignItems: "center",
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) || 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__ */ jsx(
77
- Modal,
78
- {
79
- visible: open,
80
- transparent: true,
81
- animationType: "fade",
82
- onRequestClose: handleOnCancel,
83
- statusBarTranslucent: true,
84
- children: /* @__PURE__ */ jsx(View, { style: dynamicStyles.modalOverlay, children: /* @__PURE__ */ jsxs(View, { style: dynamicStyles.modalContainer, children: [
85
- /* @__PURE__ */ jsx(
86
- TouchableOpacity,
87
- {
88
- style: dynamicStyles.closeButton,
89
- onPress: handleOnCancel,
90
- hitSlop: { top: 10, bottom: 10, left: 10, right: 10 },
91
- children: /* @__PURE__ */ jsx(X, { size: 16, color: ((_c = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _c.textSecondary) || theme["cm-text-secondary"] })
92
- }
93
- ),
94
- step === "initial" ? /* @__PURE__ */ jsx(
95
- BaseConfirmation,
96
- {
97
- contactInfo: phone != null ? phone : "",
98
- contactType: "phone",
99
- icon: /* @__PURE__ */ jsx(
100
- PhoneIcon,
101
- {
102
- size: 22,
103
- color: ((_d = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _d.textPrimary) || theme["cm-text-primary"]
104
- }
105
- ),
106
- onConfirm: onSubmitPhone,
107
- onCancel: handleOnCancel,
108
- appearance
109
- }
110
- ) : /* @__PURE__ */ jsx(
111
- BaseCodeInput,
112
- {
113
- contactInfo: phone != null ? phone : "",
114
- contactType: "phone",
115
- icon: /* @__PURE__ */ jsx(
116
- View,
117
- {
118
- style: {
119
- backgroundColor: ((_e = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _e.accent) || theme["cm-accent"],
120
- borderRadius: 999,
121
- padding: 12
122
- },
123
- children: /* @__PURE__ */ jsx(
124
- Smartphone,
125
- {
126
- size: 22,
127
- color: ((_f = appearance == null ? void 0 : appearance.colors) == null ? void 0 : _f.background) || theme["cm-background-primary"]
128
- }
129
- )
130
- }
131
- ),
132
- title: "Check your phone",
133
- description: /* @__PURE__ */ jsxs(Text, { children: [
134
- "A temporary login code has been sent via SMS to",
135
- " ",
136
- /* @__PURE__ */ jsx(Text, { style: { fontWeight: "bold" }, children: phone })
137
- ] }),
138
- helpText: `Can't receive the SMS? Check your phone number.
139
- Some messages may take several minutes to arrive.`,
140
- onSubmitOTP,
141
- onResendCode: onResendOTPCode,
142
- appearance,
143
- otpLength: 10,
144
- keyboardType: "number-pad",
145
- autoComplete: "sms-otp",
146
- textContentType: "oneTimeCode"
147
- }
148
- )
149
- ] }) })
150
- }
151
- );
152
- }
153
-
154
- export {
155
- PhoneSignersDialog
156
- };
157
- //# sourceMappingURL=chunk-4V7NDO5X.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/signers/PhoneSignersDialog.tsx"],"sourcesContent":["import type { MutableRefObject } from \"react\";\nimport { View, StyleSheet, Dimensions, Modal, TouchableOpacity, Text } from \"react-native\";\nimport type { UIConfig } from \"@crossmint/common-sdk-base\";\nimport { PhoneIcon, Smartphone, X } from \"lucide-react-native\";\nimport { BaseConfirmation } from \"./BaseConfirmation\";\nimport { BaseCodeInput } from \"./BaseCodeInput\";\nimport { theme } from \"../../styles/theme\";\n\ninterface PhoneSignersDialogProps {\n phone?: string;\n open: boolean;\n setOpen: (open: boolean) => void;\n step: \"initial\" | \"otp\";\n onSubmitOTP: (token: string) => Promise<void>;\n onResendOTPCode: () => Promise<void>;\n onSubmitPhone: () => Promise<void>;\n rejectRef: MutableRefObject<((error: Error) => void) | undefined>;\n appearance?: UIConfig;\n}\n\nconst { width: screenWidth } = Dimensions.get(\"window\");\n\nexport function PhoneSignersDialog({\n phone,\n open,\n setOpen,\n step,\n onSubmitOTP,\n onResendOTPCode,\n onSubmitPhone,\n rejectRef,\n appearance,\n}: PhoneSignersDialogProps) {\n function handleOnCancel() {\n if (open) {\n rejectRef.current?.(new Error(\"User cancelled\"));\n setOpen(false);\n }\n }\n\n const dynamicStyles = StyleSheet.create({\n modalOverlay: {\n flex: 1,\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\n justifyContent: \"center\",\n alignItems: \"center\",\n padding: 16,\n },\n modalContainer: {\n backgroundColor: appearance?.colors?.background || theme[\"cm-background-primary\"],\n borderRadius: appearance?.borderRadius || 12,\n padding: 32,\n width: Math.min(screenWidth - 32, 400),\n maxHeight: \"80%\",\n position: \"relative\",\n alignItems: \"center\",\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.modalOverlay}>\n <View style={dynamicStyles.modalContainer}>\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={phone ?? \"\"}\n contactType=\"phone\"\n icon={\n <PhoneIcon\n size={22}\n color={appearance?.colors?.textPrimary || theme[\"cm-text-primary\"]}\n />\n }\n onConfirm={onSubmitPhone}\n onCancel={handleOnCancel}\n appearance={appearance}\n />\n ) : (\n <BaseCodeInput\n contactInfo={phone ?? \"\"}\n contactType=\"phone\"\n icon={\n <View\n style={{\n backgroundColor: appearance?.colors?.accent || theme[\"cm-accent\"],\n borderRadius: 999,\n padding: 12,\n }}\n >\n <Smartphone\n size={22}\n color={appearance?.colors?.background || theme[\"cm-background-primary\"]}\n />\n </View>\n }\n title=\"Check your phone\"\n description={\n <Text>\n A temporary login code has been sent via SMS to{\" \"}\n <Text style={{ fontWeight: \"bold\" }}>{phone}</Text>\n </Text>\n }\n helpText={`Can't receive the SMS? Check your phone number.\\nSome messages may take several minutes to arrive.`}\n onSubmitOTP={onSubmitOTP}\n onResendCode={onResendOTPCode}\n appearance={appearance}\n otpLength={10}\n keyboardType=\"number-pad\"\n autoComplete=\"sms-otp\"\n textContentType=\"oneTimeCode\"\n />\n )}\n </View>\n </View>\n </Modal>\n );\n}\n"],"mappings":"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","names":["_a"]}
@@ -1,14 +0,0 @@
1
- // src/plugin/mods/addQueryToAndroidManifest.ts
2
- function addQueryToAndroidManifest(androidManifest, query) {
3
- const manifest = androidManifest.manifest;
4
- if (!manifest.queries) {
5
- manifest.queries = [];
6
- }
7
- manifest.queries.push(query);
8
- return androidManifest;
9
- }
10
-
11
- export {
12
- addQueryToAndroidManifest
13
- };
14
- //# sourceMappingURL=chunk-4WJIXD7U.mjs.map