@getpara/react-sdk 2.0.0-alpha.3 → 2.0.0-alpha.30

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 (241) hide show
  1. package/dist/cli/cli.mjs +23 -13
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.js +6 -6499
  4. package/dist/modal/ParaModal.js +301 -0
  5. package/dist/modal/components/Account/Account.js +148 -0
  6. package/dist/modal/components/Account/AccountProfile.d.ts +1 -0
  7. package/dist/modal/components/Account/AccountProfile.js +168 -0
  8. package/dist/modal/components/Account/AccountProfileLink.d.ts +1 -0
  9. package/dist/modal/components/Account/AccountProfileLink.js +206 -0
  10. package/dist/modal/components/Account/AccountProfileLinkOptions.d.ts +1 -0
  11. package/dist/modal/components/Account/AccountProfileLinkOptions.js +111 -0
  12. package/dist/modal/components/Account/AccountProfileUnlink.d.ts +1 -0
  13. package/dist/modal/components/Account/AccountProfileUnlink.js +47 -0
  14. package/dist/modal/components/AddFunds/AddFunds.d.ts +0 -2
  15. package/dist/modal/components/AddFunds/AddFunds.js +69 -0
  16. package/dist/modal/components/AddFunds/AddFundsAsset.d.ts +1 -0
  17. package/dist/modal/components/AddFunds/AddFundsAsset.js +125 -0
  18. package/dist/modal/components/AddFunds/AddFundsAwaiting.js +78 -0
  19. package/dist/modal/components/AddFunds/AddFundsContext.d.ts +31 -0
  20. package/dist/modal/components/AddFunds/AddFundsContext.js +160 -0
  21. package/dist/modal/components/AddFunds/AddFundsDone.js +49 -0
  22. package/dist/modal/components/AddFunds/AddFundsProvider.d.ts +1 -0
  23. package/dist/modal/components/AddFunds/AddFundsProvider.js +109 -0
  24. package/dist/modal/components/AddFunds/AddFundsReceive.d.ts +1 -0
  25. package/dist/modal/components/AddFunds/AddFundsReceive.js +83 -0
  26. package/dist/modal/components/AddFunds/AddFundsSettings.d.ts +1 -0
  27. package/dist/modal/components/AddFunds/AddFundsSettings.js +237 -0
  28. package/dist/{MoonPayEmbed-Q2HP2BFI.js → modal/components/AddFunds/MoonPayEmbed.js} +1 -3
  29. package/dist/modal/components/AddFunds/common.d.ts +19 -0
  30. package/dist/modal/components/AddFunds/common.js +24 -0
  31. package/dist/modal/components/AddFunds/index.js +4 -0
  32. package/dist/modal/components/AuthInput/AuthInput.d.ts +17 -3
  33. package/dist/modal/components/AuthInput/AuthInput.js +277 -0
  34. package/dist/modal/components/AuthInput/hooks/useDropdownPosition.js +33 -0
  35. package/dist/modal/components/AuthInput/phoneMasks.js +253 -0
  36. package/dist/modal/components/AuthMainStep/AuthMainStep.d.ts +4 -3
  37. package/dist/modal/components/AuthMainStep/AuthMainStep.js +50 -0
  38. package/dist/modal/components/AuthMainStep/AuthMainStepContent.d.ts +4 -3
  39. package/dist/modal/components/AuthMainStep/AuthMainStepContent.js +164 -0
  40. package/dist/modal/components/AuthOptions/AuthOptions.d.ts +4 -3
  41. package/dist/modal/components/AuthOptions/AuthOptions.js +85 -0
  42. package/dist/modal/components/AwaitingBiometricsStep/AwaitingBiometricsStep.js +18 -0
  43. package/dist/modal/components/AwaitingOAuthStep/AwaitingOAuthStep.js +10 -0
  44. package/dist/modal/components/AwaitingPasswordStep/AwaitingPasswordStep.js +18 -0
  45. package/dist/modal/components/AwaitingWalletCreationStep/AwaitingWalletCreationStep.d.ts +5 -1
  46. package/dist/modal/components/AwaitingWalletCreationStep/AwaitingWalletCreationStep.js +49 -0
  47. package/dist/modal/components/BiometricCreationStep/BiometricCreationStep.js +62 -0
  48. package/dist/modal/components/BiometricLoginStep/BiometricLoginStep.js +48 -0
  49. package/dist/modal/components/Body/AnimatedHeightWrapper.js +29 -0
  50. package/dist/modal/components/Body/Body.d.ts +4 -3
  51. package/dist/modal/components/Body/Body.js +350 -0
  52. package/dist/modal/components/ChainSwitch/ChainSwitch.js +95 -0
  53. package/dist/modal/components/ChainSwitch/config.js +17 -0
  54. package/dist/modal/components/Controls/Controls.js +78 -0
  55. package/dist/modal/components/Controls/Selects.js +173 -0
  56. package/dist/modal/components/ExternalWalletNetworkSelectStep/ExternalWalletNetworkSelectStep.d.ts +1 -0
  57. package/dist/modal/components/ExternalWalletNetworkSelectStep/ExternalWalletNetworkSelectStep.js +75 -0
  58. package/dist/modal/components/ExternalWalletStep/ExternalWalletStep.d.ts +7 -0
  59. package/dist/modal/components/ExternalWalletStep/ExternalWalletStep.js +175 -0
  60. package/dist/modal/components/ExternalWalletStep/config.js +17 -0
  61. package/dist/modal/components/ExternalWalletVerificationStep/ExternalWalletVerificationStep.js +39 -0
  62. package/dist/modal/components/ExternalWallets/ExternalWallets.js +184 -0
  63. package/dist/modal/components/Footer/Footer.js +95 -0
  64. package/dist/modal/components/Header/Header.js +43 -0
  65. package/dist/modal/components/Header/hooks/useStepTitle.js +61 -0
  66. package/dist/modal/components/Hero/Hero.js +116 -0
  67. package/dist/modal/components/IFrameStep/IFrameStep.js +59 -0
  68. package/dist/modal/components/LoginDoneStep/LoginDoneStep.d.ts +4 -0
  69. package/dist/modal/components/LoginDoneStep/LoginDoneStep.js +44 -0
  70. package/dist/modal/components/ModalContent/ModalContent.js +88 -0
  71. package/dist/modal/components/OAuth/FarcasterOAuthStep.d.ts +1 -0
  72. package/dist/modal/components/OAuth/FarcasterOAuthStep.js +31 -0
  73. package/dist/modal/components/OAuth/OAuth.d.ts +2 -2
  74. package/dist/modal/components/OAuth/OAuth.js +79 -0
  75. package/dist/modal/components/OAuth/TelegramOAuthStep.d.ts +7 -0
  76. package/dist/modal/components/OAuth/TelegramOAuthStep.js +74 -0
  77. package/dist/modal/components/OnRampComponents/AddingFunds.js +23 -0
  78. package/dist/modal/components/OnRampComponents/OnRampProviderButton.js +77 -0
  79. package/dist/modal/components/RecoverySecretStep/RecoverySecretStep.js +107 -0
  80. package/dist/modal/components/Setup2FAStep/Setup2FAStep.js +132 -0
  81. package/dist/modal/components/TwoFactorDoneStep/TwoFactorDoneStep.js +27 -0
  82. package/dist/modal/components/VerificationCodeStep/VerificationCodeStep.d.ts +12 -1
  83. package/dist/modal/components/VerificationCodeStep/VerificationCodeStep.js +160 -0
  84. package/dist/modal/components/Waiting/Waiting.js +17 -0
  85. package/dist/modal/components/WalletCard/PartnerIcon.js +34 -0
  86. package/dist/modal/components/WalletCard/WalletCard.d.ts +3 -3
  87. package/dist/modal/components/WalletCard/WalletCard.js +128 -0
  88. package/dist/modal/components/WalletCreationDoneStep/WalletCreationDoneStep.js +83 -0
  89. package/dist/modal/components/common.d.ts +49 -13
  90. package/dist/modal/components/common.js +261 -0
  91. package/dist/modal/components/index.js +2 -0
  92. package/dist/modal/constants/constants.d.ts +10 -2
  93. package/dist/modal/constants/constants.js +142 -0
  94. package/dist/modal/constants/defaults.js +10 -0
  95. package/dist/modal/constants/oAuthLogos.d.ts +15 -6
  96. package/dist/modal/constants/oAuthLogos.js +158 -0
  97. package/dist/modal/constants/walletTypeConfig.d.ts +6 -0
  98. package/dist/modal/constants/walletTypeConfig.js +13 -0
  99. package/dist/modal/hooks/useGoBack.js +43 -0
  100. package/dist/modal/hooks/useTelegramLogin.d.ts +12 -0
  101. package/dist/modal/hooks/useTelegramLogin.js +65 -0
  102. package/dist/modal/index.d.ts +1 -2
  103. package/dist/modal/index.js +29 -0
  104. package/dist/modal/stores/index.js +2 -0
  105. package/dist/modal/stores/modal/actions.js +135 -0
  106. package/dist/modal/stores/modal/useModalStore.d.ts +15 -6
  107. package/dist/modal/stores/modal/useModalStore.js +73 -0
  108. package/dist/modal/types/commonTypes.d.ts +0 -47
  109. package/dist/modal/types/commonTypes.js +1 -0
  110. package/dist/modal/types/modalProps.d.ts +15 -2
  111. package/dist/modal/types/modalProps.js +12 -0
  112. package/dist/modal/utils/authInputHelpers.d.ts +5 -0
  113. package/dist/modal/utils/authInputHelpers.js +41 -0
  114. package/dist/modal/utils/authLayoutHelpers.js +8 -0
  115. package/dist/modal/utils/countryCodes.js +45 -0
  116. package/dist/modal/utils/getMailtoLink.js +10 -0
  117. package/dist/modal/utils/getTileButtonFlex.js +20 -0
  118. package/dist/modal/utils/getWalletDisplayName.d.ts +5 -0
  119. package/dist/modal/utils/getWalletDisplayName.js +22 -0
  120. package/dist/modal/utils/isPasskeySupported.js +15 -0
  121. package/dist/modal/utils/openPopup.js +60 -0
  122. package/dist/modal/utils/routeMobileExternalWallet.js +31 -0
  123. package/dist/modal/utils/steps.d.ts +21 -2
  124. package/dist/modal/utils/steps.js +273 -0
  125. package/dist/modal/utils/stringFormatters.d.ts +1 -0
  126. package/dist/modal/utils/stringFormatters.js +19 -0
  127. package/dist/modal/utils/validateOnRampConfig.js +32 -0
  128. package/dist/package.json +6 -0
  129. package/dist/provider/ParaProvider.js +117 -0
  130. package/dist/provider/actions/getEmbeddedAccount.d.ts +26 -0
  131. package/dist/provider/actions/getEmbeddedAccount.js +52 -0
  132. package/dist/provider/actions/getWallet.d.ts +3 -3
  133. package/dist/provider/actions/getWallet.js +18 -0
  134. package/dist/provider/actions/index.d.ts +22 -0
  135. package/dist/provider/actions/index.js +79 -0
  136. package/dist/provider/actions/utils.d.ts +4 -3
  137. package/dist/provider/actions/utils.js +34 -0
  138. package/dist/provider/components/CosmosWalletWrapper.js +43 -0
  139. package/dist/provider/components/EvmWalletWrapper.js +43 -0
  140. package/dist/provider/components/ExternalWalletWrapper.js +140 -0
  141. package/dist/provider/components/SolanaWalletWrapper.js +44 -0
  142. package/dist/provider/external/getParaCosmosConnector.js +19 -0
  143. package/dist/provider/external/getParaCosmosLib.d.ts +4 -0
  144. package/dist/provider/external/getParaCosmosLib.js +16 -0
  145. package/dist/provider/external/getParaEvmConnector.js +19 -0
  146. package/dist/provider/external/getParaEvmLib.d.ts +4 -0
  147. package/dist/provider/external/getParaEvmLib.js +16 -0
  148. package/dist/provider/external/getParaSolanaConnector.js +19 -0
  149. package/dist/provider/external/getParaSolanaLib.d.ts +4 -0
  150. package/dist/provider/external/getParaSolanaLib.js +16 -0
  151. package/dist/provider/external/stubs/CosmosExternalWalletContextStub.d.ts +1 -11
  152. package/dist/provider/external/stubs/CosmosExternalWalletContextStub.js +8 -0
  153. package/dist/provider/external/stubs/EvmExternalWalletContextStub.d.ts +1 -2
  154. package/dist/provider/external/stubs/EvmExternalWalletContextStub.js +8 -0
  155. package/dist/provider/external/stubs/SolanaExternalWalletContextStub.d.ts +1 -7
  156. package/dist/provider/external/stubs/SolanaExternalWalletContextStub.js +8 -0
  157. package/dist/provider/hooks/index.js +4 -0
  158. package/dist/provider/hooks/mutations/core.d.ts +27 -0
  159. package/dist/provider/hooks/mutations/core.js +66 -0
  160. package/dist/provider/hooks/mutations/index.d.ts +3 -25
  161. package/dist/provider/hooks/mutations/index.js +9 -0
  162. package/dist/provider/hooks/mutations/useLinkAccount.d.ts +9 -0
  163. package/dist/provider/hooks/mutations/useLinkAccount.js +18 -0
  164. package/dist/provider/hooks/mutations/utils.d.ts +11 -3
  165. package/dist/provider/hooks/mutations/utils.js +90 -0
  166. package/dist/provider/hooks/queries/core.d.ts +4 -0
  167. package/dist/provider/hooks/queries/core.js +16 -0
  168. package/dist/provider/hooks/queries/index.d.ts +2 -0
  169. package/dist/provider/hooks/queries/index.js +11 -0
  170. package/dist/provider/hooks/queries/useAccount.d.ts +91 -2
  171. package/dist/provider/hooks/queries/useAccount.js +138 -0
  172. package/dist/provider/hooks/queries/useIsFullyLoggedIn.d.ts +5 -0
  173. package/dist/provider/hooks/queries/useIsFullyLoggedIn.js +24 -0
  174. package/dist/provider/hooks/queries/useWallet.d.ts +1 -1
  175. package/dist/provider/hooks/queries/useWallet.js +26 -0
  176. package/dist/provider/hooks/queries/useWalletBalance.d.ts +6 -0
  177. package/dist/provider/hooks/queries/useWalletBalance.js +55 -0
  178. package/dist/provider/hooks/queries/utils.d.ts +7 -0
  179. package/dist/provider/hooks/queries/utils.js +25 -0
  180. package/dist/provider/hooks/utils/index.js +10 -0
  181. package/dist/provider/hooks/utils/useAutoSessionKeepAlive.js +74 -0
  182. package/dist/provider/hooks/utils/useClient.d.ts +1 -1
  183. package/dist/provider/hooks/utils/useClient.js +10 -0
  184. package/dist/provider/hooks/utils/useEventListeners.d.ts +1 -1
  185. package/dist/provider/hooks/utils/useEventListeners.js +157 -0
  186. package/dist/provider/hooks/utils/useFormattedBiometricHints.d.ts +4 -0
  187. package/dist/provider/hooks/utils/useFormattedBiometricHints.js +27 -0
  188. package/dist/provider/hooks/utils/useInternalClient.js +10 -0
  189. package/dist/provider/hooks/utils/useModal.d.ts +4 -1
  190. package/dist/provider/hooks/utils/useModal.js +27 -0
  191. package/dist/provider/hooks/utils/useWalletState.d.ts +3 -3
  192. package/dist/provider/hooks/utils/useWalletState.js +48 -0
  193. package/dist/provider/index.d.ts +2 -0
  194. package/dist/provider/index.js +11 -0
  195. package/dist/provider/providers/AccountLinkProvider.d.ts +47 -0
  196. package/dist/provider/providers/AccountLinkProvider.js +452 -0
  197. package/dist/provider/providers/AuthProvider.d.ts +12 -6
  198. package/dist/provider/providers/AuthProvider.js +523 -0
  199. package/dist/provider/providers/CosmosExternalWalletProvider.js +66 -0
  200. package/dist/provider/providers/EvmExternalWalletProvider.js +74 -0
  201. package/dist/provider/providers/ExternalWalletProvider.d.ts +21 -35
  202. package/dist/provider/providers/ExternalWalletProvider.js +596 -0
  203. package/dist/provider/providers/SolanaExternalWalletProvider.js +66 -0
  204. package/dist/provider/stores/getters.d.ts +1 -1
  205. package/dist/provider/stores/getters.js +13 -0
  206. package/dist/provider/stores/setters.js +7 -0
  207. package/dist/provider/stores/slices/analytics.d.ts +3 -0
  208. package/dist/provider/stores/slices/analytics.js +9 -0
  209. package/dist/provider/stores/slices/client.js +9 -0
  210. package/dist/provider/stores/slices/config.js +9 -0
  211. package/dist/provider/stores/slices/externalWallets.js +46 -0
  212. package/dist/provider/stores/slices/index.d.ts +1 -0
  213. package/dist/provider/stores/slices/index.js +6 -0
  214. package/dist/provider/stores/slices/modal.js +18 -0
  215. package/dist/provider/stores/slices/wallet.js +13 -0
  216. package/dist/provider/stores/types.d.ts +20 -5
  217. package/dist/provider/stores/types.js +1 -0
  218. package/dist/provider/stores/useStore.js +34 -0
  219. package/dist/provider/types/externalWalletProviders.d.ts +2 -2
  220. package/dist/provider/types/externalWalletProviders.js +1 -0
  221. package/dist/provider/types/provider.d.ts +25 -5
  222. package/dist/provider/types/provider.js +1 -0
  223. package/dist/provider/types/query.js +1 -0
  224. package/dist/provider/types/utils.d.ts +28 -5
  225. package/dist/provider/types/utils.js +1 -0
  226. package/dist/provider/utils/constants.d.ts +5 -0
  227. package/dist/provider/utils/constants.js +10 -0
  228. package/dist/provider/utils/paraConfigTypeGuards.js +13 -0
  229. package/dist/provider/utils/renameMutations.d.ts +2 -2
  230. package/dist/provider/utils/renameMutations.js +18 -0
  231. package/package.json +40 -39
  232. package/dist/MoonPayEmbed-Q2HP2BFI.js.br +0 -0
  233. package/dist/MoonPayEmbed-Q2HP2BFI.js.gz +0 -0
  234. package/dist/chunk-MMUBH76A.js.br +0 -0
  235. package/dist/chunk-MMUBH76A.js.gz +0 -0
  236. package/dist/index.js.br +0 -0
  237. package/dist/index.js.gz +0 -0
  238. package/dist/modal/components/StripeComponents/StripeComponents.d.ts +0 -16
  239. package/dist/modal/types/externalWallets.d.ts +0 -31
  240. package/dist/provider/actions/getAccount.d.ts +0 -19
  241. /package/dist/modal/{components/AuthInput → utils}/countryCodes.d.ts +0 -0
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ import "../../chunk-MMUBH76A.js";
3
+ import { useInternalClient } from "../../provider/hooks/utils/useInternalClient.js";
4
+ import { useExternalWallets } from "../../provider/providers/ExternalWalletProvider.js";
5
+ import { useModalStore } from "../stores/index.js";
6
+ import { getAddFundsStep, ModalStep } from "../utils/steps.js";
7
+ const useGoBack = () => {
8
+ const currentStep = useModalStore((state) => state.step);
9
+ const refs = useModalStore((state) => state.refs);
10
+ const setStep = useModalStore((state) => state.setStep);
11
+ const accountAddFundTab = useModalStore((state) => state.accountAddFundTab);
12
+ const decrementStep = useModalStore((state) => state.decrementStep);
13
+ const resetState = useModalStore((state) => state.resetState);
14
+ const { setChainIdSwitchingTo, disconnectExternalWallet } = useExternalWallets();
15
+ const para = useInternalClient();
16
+ const goBack = () => {
17
+ if (accountAddFundTab && currentStep === ModalStep.ADD_FUNDS_AWAITING) {
18
+ setStep(getAddFundsStep(accountAddFundTab));
19
+ } else {
20
+ decrementStep();
21
+ }
22
+ switch (refs.currentStep.current) {
23
+ case ModalStep.AUTH_MAIN:
24
+ case ModalStep.AUTH_MORE:
25
+ case ModalStep.EX_WALLET_SELECTED:
26
+ case ModalStep.EXTERNAL_WALLET_VERIFICATION: {
27
+ resetState();
28
+ if (para.isExternalWalletAuth) {
29
+ disconnectExternalWallet();
30
+ }
31
+ break;
32
+ }
33
+ case ModalStep.CHAIN_SWITCH: {
34
+ setChainIdSwitchingTo();
35
+ break;
36
+ }
37
+ }
38
+ };
39
+ return goBack;
40
+ };
41
+ export {
42
+ useGoBack
43
+ };
@@ -0,0 +1,12 @@
1
+ import { TelegramAuthResponse } from '@getpara/user-management-client';
2
+ import { MutationStatus } from '@tanstack/react-query';
3
+ export declare const useTelegramLogin: ({ isActive, onSubmit, status: propsStatus, }?: {
4
+ isActive?: boolean;
5
+ onSubmit?: (_: TelegramAuthResponse) => void;
6
+ status?: MutationStatus;
7
+ }) => {
8
+ url: string | undefined;
9
+ isLoaded: boolean;
10
+ setIsLoaded: import("react").Dispatch<import("react").SetStateAction<boolean>>;
11
+ status: MutationStatus | undefined;
12
+ };
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ import {
3
+ __async
4
+ } from "../../chunk-MMUBH76A.js";
5
+ import { useEffect, useState } from "react";
6
+ import { useInternalClient } from "../../provider/hooks/utils/useInternalClient.js";
7
+ import { useModalStore } from "../stores/index.js";
8
+ const useTelegramLogin = ({
9
+ isActive = false,
10
+ onSubmit,
11
+ status: propsStatus
12
+ } = {}) => {
13
+ const para = useInternalClient();
14
+ const refs = useModalStore((state) => state.refs);
15
+ const [url, setUrl] = useState();
16
+ const [isLoaded, setIsLoaded] = useState(false);
17
+ const [msgStatus, setMsgStatus] = useState("idle");
18
+ const status = msgStatus === "success" ? propsStatus : msgStatus;
19
+ useEffect(() => {
20
+ if (isActive) {
21
+ if (!url) {
22
+ para.constructPortalUrl("telegramLogin").then(setUrl);
23
+ }
24
+ }
25
+ }, [isActive, url]);
26
+ useEffect(() => {
27
+ const updateState = (event) => __async(void 0, null, function* () {
28
+ var _a, _b;
29
+ switch (event.data.type) {
30
+ case "TELEGRAM_LOGIN":
31
+ setMsgStatus("pending");
32
+ break;
33
+ case "TELEGRAM_FAILED":
34
+ setMsgStatus("error");
35
+ break;
36
+ case "TELEGRAM_SUCCESS":
37
+ setMsgStatus("success");
38
+ if (!!event.data.payload) {
39
+ const authObject = event.data.payload;
40
+ try {
41
+ yield onSubmit == null ? void 0 : onSubmit(authObject);
42
+ } catch (e) {
43
+ (_b = (_a = refs.telegramIFrame.current) == null ? void 0 : _a.contentWindow) == null ? void 0 : _b.postMessage({ type: "TELEGRAM_RETRY" }, "*");
44
+ }
45
+ }
46
+ break;
47
+ }
48
+ });
49
+ if (isActive) {
50
+ window == null ? void 0 : window.addEventListener("message", updateState, false);
51
+ }
52
+ return () => {
53
+ window == null ? void 0 : window.removeEventListener("message", updateState, false);
54
+ };
55
+ }, [isActive, onSubmit]);
56
+ return {
57
+ url,
58
+ isLoaded,
59
+ setIsLoaded,
60
+ status
61
+ };
62
+ };
63
+ export {
64
+ useTelegramLogin
65
+ };
@@ -3,7 +3,6 @@ export type { ParaModalProps, ParaModalHandle, ParaModalTheme } from './types/mo
3
3
  export { ModalStep, type ModalStepProp } from './utils/steps.js';
4
4
  export { AuthLayout } from './types/modalProps.js';
5
5
  export * from './utils/openPopup.js';
6
- export { ON_RAMP_PROVIDERS, ON_RAMP_ASSETS, NETWORKS, getAssetIcon, getAssetName, getNetworkIcon, getNetworkName, } from './constants/constants.js';
6
+ export { ON_RAMP_PROVIDERS, ON_RAMP_ASSETS, NETWORKS, getAssetIcon, getAssetCode, getNetworkIcon, getNetworkName, } from './constants/constants.js';
7
7
  export { SaveRecoverySecret } from './components/RecoverySecretStep/RecoverySecretStep.js';
8
8
  export * from './utils/validateOnRampConfig.js';
9
- export * from './types/externalWallets.js';
@@ -0,0 +1,29 @@
1
+ "use client";
2
+ import "../chunk-MMUBH76A.js";
3
+ export * from "./ParaModal.js";
4
+ import { ModalStep } from "./utils/steps.js";
5
+ import { AuthLayout } from "./types/modalProps.js";
6
+ export * from "./utils/openPopup.js";
7
+ import {
8
+ ON_RAMP_PROVIDERS,
9
+ ON_RAMP_ASSETS,
10
+ NETWORKS,
11
+ getAssetIcon,
12
+ getAssetCode,
13
+ getNetworkIcon,
14
+ getNetworkName
15
+ } from "./constants/constants.js";
16
+ import { SaveRecoverySecret } from "./components/RecoverySecretStep/RecoverySecretStep.js";
17
+ export * from "./utils/validateOnRampConfig.js";
18
+ export {
19
+ AuthLayout,
20
+ ModalStep,
21
+ NETWORKS,
22
+ ON_RAMP_ASSETS,
23
+ ON_RAMP_PROVIDERS,
24
+ SaveRecoverySecret,
25
+ getAssetCode,
26
+ getAssetIcon,
27
+ getNetworkIcon,
28
+ getNetworkName
29
+ };
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ export * from "./modal/useModalStore.js";
@@ -0,0 +1,135 @@
1
+ "use client";
2
+ import {
3
+ __spreadValues
4
+ } from "../../../chunk-MMUBH76A.js";
5
+ import { DEFAULT_MODAL_STATE } from "./useModalStore.js";
6
+ import {
7
+ AccountPreviousStep,
8
+ GuestPreviousStep,
9
+ LoginPreviousStep,
10
+ ModalStep,
11
+ SignUpPreviousStep
12
+ } from "../../utils/steps.js";
13
+ function getPreviousStep(flow, step) {
14
+ return flow === "account" ? AccountPreviousStep[step] : flow === "login" ? LoginPreviousStep[step] : flow === "guest" ? GuestPreviousStep[step] : SignUpPreviousStep[step];
15
+ }
16
+ const getActions = (set, get) => ({
17
+ resetState: () => set(DEFAULT_MODAL_STATE),
18
+ setOnModalStepChange: (onModalStepChange) => set({ onModalStepChange }),
19
+ setRecoveryShare: (recoveryShare) => set({ recoveryShare }),
20
+ setStep: (step) => {
21
+ const onModalStepChange = get().onModalStepChange;
22
+ const previousStep = get().step;
23
+ set({ step });
24
+ onModalStepChange == null ? void 0 : onModalStepChange({ previousStep, currentStep: step, canGoBack: get().hasPreviousStep() });
25
+ },
26
+ decrementStep: () => {
27
+ var _a;
28
+ const currentStep = get().step;
29
+ const onRampStep = get().onRampStep;
30
+ const flow = get().flow;
31
+ if ([ModalStep.ADD_FUNDS_BUY, ModalStep.ADD_FUNDS_WITHDRAW].includes(currentStep) && onRampStep > 0) {
32
+ set({ onRampStep: onRampStep - 1 });
33
+ return;
34
+ }
35
+ const onModalStepChange = get().onModalStepChange;
36
+ const accountLinkOptions = get().accountLinkOptions || [];
37
+ const signupState = get().getSignupState();
38
+ const iFrameUrl = get().iFrameUrl;
39
+ const refs = get().refs;
40
+ let prevStep = getPreviousStep(flow, currentStep);
41
+ if (currentStep === ModalStep.ACCOUNT_PROFILE_ADD && accountLinkOptions.length < 2) {
42
+ prevStep = ModalStep.ACCOUNT_PROFILE;
43
+ }
44
+ if (currentStep === ModalStep.PASSWORD_CREATION && iFrameUrl && !(signupState == null ? void 0 : signupState.passkeyUrl)) {
45
+ prevStep = ModalStep.AUTH_MAIN;
46
+ }
47
+ if (currentStep === ModalStep.EX_WALLET_SELECTED) {
48
+ set({ selectedExternalWalletId: void 0, isExternalWalletConnecting: false, externalWalletError: void 0 });
49
+ }
50
+ if (prevStep) {
51
+ set(__spreadValues({
52
+ authStepRoute: void 0,
53
+ step: prevStep,
54
+ stepDirection: -1
55
+ }, prevStep === ModalStep.AUTH_MAIN && { flow: void 0 }));
56
+ onModalStepChange == null ? void 0 : onModalStepChange({ previousStep: currentStep, currentStep: prevStep, canGoBack: get().hasPreviousStep() });
57
+ }
58
+ (_a = refs.popupWindow.current) == null ? void 0 : _a.close();
59
+ refs.popupWindow.current = null;
60
+ },
61
+ hasPreviousStep: () => {
62
+ const flow = get().flow;
63
+ const currentStep = get().step;
64
+ const onRampStep = get().onRampStep;
65
+ if ([ModalStep.ADD_FUNDS_BUY, ModalStep.ADD_FUNDS_WITHDRAW].includes(currentStep) && onRampStep > 0) {
66
+ return true;
67
+ }
68
+ return !!getPreviousStep(flow, currentStep);
69
+ },
70
+ setFlow: (flow) => set({ flow }),
71
+ isLogin: () => get().flow === "login",
72
+ isAccount: () => get().flow === "account",
73
+ setAuthState: (authState) => {
74
+ let flow = get().flow, newFlow;
75
+ switch (authState == null ? void 0 : authState.stage) {
76
+ case "login":
77
+ newFlow = "login";
78
+ break;
79
+ case "signup":
80
+ case "verify":
81
+ newFlow = flow === "guest" ? "guest" : "signup";
82
+ break;
83
+ default:
84
+ break;
85
+ }
86
+ set(__spreadValues({ authState }, newFlow ? { flow: newFlow } : {}));
87
+ },
88
+ getVerifyState: () => {
89
+ const authState = get().authState;
90
+ return (authState == null ? void 0 : authState.stage) === "verify" ? authState : void 0;
91
+ },
92
+ getLoginState: () => {
93
+ const authState = get().authState;
94
+ return (authState == null ? void 0 : authState.stage) === "login" ? authState : void 0;
95
+ },
96
+ getSignupState: () => {
97
+ const authState = get().authState;
98
+ return (authState == null ? void 0 : authState.stage) === "signup" ? authState : void 0;
99
+ },
100
+ setOnRampPurchase: (onRampPurchase) => set((state) => ({ onRampPurchase: __spreadValues(__spreadValues({}, state.onRampPurchase || {}), onRampPurchase) })),
101
+ setOnRampConfig: (onRampConfig) => set({ onRampConfig }),
102
+ setOnRampStep: (onRampStep) => set({ onRampStep }),
103
+ setIsFullyLoggedIn: (isFullyLoggedIn) => set({ isFullyLoggedIn }),
104
+ setAccountAddFundTab: (accountAddFundTab) => set({ accountAddFundTab }),
105
+ setGuestAddFundsTab: (guestAddFundsTab) => set({ guestAddFundsTab }),
106
+ setSelectedExternalWalletId: (selectedExternalWalletId) => set({ selectedExternalWalletId }),
107
+ setIsExternalWalletConnecting: (isExternalWalletConnecting) => set({ isExternalWalletConnecting }),
108
+ setExternalWalletError: (externalWalletError) => set({ externalWalletError }),
109
+ setIsUsingMobileConnector: (isUsingMobileConnector) => set({ isUsingMobileConnector }),
110
+ setStepDirection: (stepDirection) => set({ stepDirection }),
111
+ setFarcasterConnectUri: (farcasterConnectUri) => set({ farcasterConnectUri }),
112
+ setTwoFactorStatus: (twoFactorStatus) => set({ twoFactorStatus }),
113
+ setIFrameUrl: (iFrameUrl) => set({ iFrameUrl }),
114
+ setIsIFrameReady: (isIFrameReady) => set({ isIFrameReady }),
115
+ setAuthLayout: (authLayout) => {
116
+ const types = [];
117
+ const uniqueLayouts = [];
118
+ authLayout.map((layout) => {
119
+ const type = layout.split(":")[0];
120
+ if (!types.includes(type)) {
121
+ uniqueLayouts.push(layout);
122
+ types.push(type);
123
+ } else {
124
+ console.warn(`${layout} is a duplicate ${type} layout type. Please remove the duplicate type from your config.`);
125
+ }
126
+ });
127
+ set({ authLayout: uniqueLayouts });
128
+ },
129
+ setAuthStepRoute: (authStepRoute) => set({ authStepRoute }),
130
+ setIsPasskeySupported: (isPasskeySupported) => set({ isPasskeySupported }),
131
+ setAccountLinkOptions: (accountLinkOptions) => set({ accountLinkOptions })
132
+ });
133
+ export {
134
+ getActions
135
+ };
@@ -1,12 +1,14 @@
1
1
  import { ModalStep } from '../../utils/steps.js';
2
- import { OnRampConfig as OnRampConfigBase, OnRampPurchase, WalletType } from '@getpara/web-sdk';
3
- import { Tab as AddFundsTabType } from '../../components/AddFunds/AddFunds.js';
4
- import { AuthStateLogin, AuthStateSignup, AuthState, AuthStateVerify } from '@getpara/core-sdk';
2
+ import { AuthStateLogin, AuthStateSignup, AuthState, AuthStateVerify, OnRampConfig as OnRampConfigBase, OnRampPurchase, TWalletType, Setup2faResponse, SupportedAccountLinks } from '@getpara/web-sdk';
3
+ import { Tab as AddFundsTabType } from '../../components/AddFunds/AddFundsContext.js';
5
4
  import { TAuthLayout } from '../../types/modalProps.js';
6
5
  import { MutableRefObject } from 'react';
7
- import { Setup2faResponse } from '@getpara/user-management-client';
8
- type Flow = AuthStateSignup['stage'] | AuthStateLogin['stage'] | 'account';
9
- type ActiveWallet = [string | undefined, WalletType | undefined];
6
+ export type Flow = AuthStateSignup['stage'] | AuthStateLogin['stage'] | 'account' | 'guest';
7
+ type ActiveWallet = [string | undefined, TWalletType | undefined];
8
+ export declare enum OnRampStep {
9
+ SETTINGS = 0,
10
+ PROVIDER = 1
11
+ }
10
12
  export type OnRampConfig = OnRampConfigBase & {
11
13
  testMode?: boolean;
12
14
  };
@@ -24,8 +26,10 @@ interface ModalState {
24
26
  onModalStepChange?: (value: OnModalStepChangeValue) => void | undefined;
25
27
  onRampConfig: OnRampConfig | undefined;
26
28
  onRampPurchase: Partial<OnRampPurchase> | undefined;
29
+ onRampStep: OnRampStep;
27
30
  isFullyLoggedIn: boolean;
28
31
  accountAddFundTab?: AddFundsTabType;
32
+ guestAddFundsTab?: AddFundsTabType;
29
33
  selectedExternalWalletId?: string;
30
34
  isUsingMobileConnector?: boolean;
31
35
  isExternalWalletConnecting?: boolean;
@@ -44,13 +48,16 @@ interface ModalState {
44
48
  timeout: number;
45
49
  } | null>;
46
50
  currentStep: MutableRefObject<ModalStep | null>;
51
+ telegramIFrame: MutableRefObject<HTMLIFrameElement | null>;
47
52
  };
48
53
  isPasskeySupported: boolean;
54
+ accountLinkOptions: SupportedAccountLinks;
49
55
  }
50
56
  export interface ModalActions {
51
57
  resetState: () => void;
52
58
  setRecoveryShare: (recoveryShare: string | null) => void;
53
59
  setStep: (step: ModalStep) => void;
60
+ setGuestAddFundsTab: (tab?: AddFundsTabType | undefined) => void;
54
61
  decrementStep: () => void;
55
62
  hasPreviousStep: () => boolean;
56
63
  setFlow: (flow?: Flow) => void;
@@ -63,6 +70,7 @@ export interface ModalActions {
63
70
  setOnModalStepChange: (fn?: (value: OnModalStepChangeValue) => void) => void;
64
71
  setOnRampConfig: (_: OnRampConfig | undefined) => void;
65
72
  setOnRampPurchase: (_: Partial<OnRampPurchase> | undefined) => void;
73
+ setOnRampStep: (_: OnRampStep) => void;
66
74
  setIsFullyLoggedIn: (isFullyLoggedIn: boolean) => void;
67
75
  setAccountAddFundTab: (accountAddFundTab?: AddFundsTabType) => void;
68
76
  setSelectedExternalWalletId: (id?: string) => void;
@@ -77,6 +85,7 @@ export interface ModalActions {
77
85
  setAuthLayout: (authLayout: TAuthLayout[]) => void;
78
86
  setAuthStepRoute: (_?: ModalStep) => void;
79
87
  setIsPasskeySupported: (_: boolean) => void;
88
+ setAccountLinkOptions: (_: SupportedAccountLinks) => void;
80
89
  }
81
90
  export type ModalStore = ModalState & ModalActions;
82
91
  export declare const DEFAULT_MODAL_STATE: Omit<ModalState, 'step' | 'onRampConfig'>;
@@ -0,0 +1,73 @@
1
+ "use client";
2
+ import {
3
+ __spreadValues
4
+ } from "../../../chunk-MMUBH76A.js";
5
+ import { create } from "zustand";
6
+ import { persist, createJSONStorage } from "zustand/middleware";
7
+ import { ModalStep } from "../../utils/steps.js";
8
+ import { getActions } from "./actions.js";
9
+ import {
10
+ LINKED_ACCOUNT_TYPES
11
+ } from "@getpara/web-sdk";
12
+ import { AuthLayout } from "../../types/modalProps.js";
13
+ import { createRef } from "react";
14
+ var OnRampStep = /* @__PURE__ */ ((OnRampStep2) => {
15
+ OnRampStep2[OnRampStep2["SETTINGS"] = 0] = "SETTINGS";
16
+ OnRampStep2[OnRampStep2["PROVIDER"] = 1] = "PROVIDER";
17
+ return OnRampStep2;
18
+ })(OnRampStep || {});
19
+ const DEFAULT_MODAL_STATE = {
20
+ recoveryShare: null,
21
+ flow: void 0,
22
+ stepDirection: 1,
23
+ authState: void 0,
24
+ onModalStepChange: void 0,
25
+ onRampPurchase: void 0,
26
+ onRampStep: 0 /* SETTINGS */,
27
+ isFullyLoggedIn: false,
28
+ accountAddFundTab: void 0,
29
+ guestAddFundsTab: void 0,
30
+ isExternalWalletConnecting: false,
31
+ externalWalletError: void 0,
32
+ activeWallet: [void 0, void 0],
33
+ farcasterConnectUri: void 0,
34
+ twoFactorStatus: void 0,
35
+ iFrameUrl: void 0,
36
+ isIFrameReady: void 0,
37
+ authLayout: [AuthLayout.AUTH_FULL, AuthLayout.EXTERNAL_FULL],
38
+ authStepRoute: void 0,
39
+ refs: {
40
+ popupWindow: createRef(),
41
+ poll: createRef(),
42
+ currentStep: createRef(),
43
+ telegramIFrame: createRef()
44
+ },
45
+ isPasskeySupported: true,
46
+ accountLinkOptions: [...LINKED_ACCOUNT_TYPES]
47
+ };
48
+ const useModalStore = create()(
49
+ persist(
50
+ (set, get) => __spreadValues(__spreadValues({
51
+ step: ModalStep.AUTH_MAIN,
52
+ onRampConfig: void 0
53
+ }, DEFAULT_MODAL_STATE), getActions(set, get)),
54
+ {
55
+ version: 1,
56
+ name: "@PARA/modalState",
57
+ storage: createJSONStorage(() => localStorage),
58
+ partialize: (state) => ({
59
+ step: state.step,
60
+ authState: state.authState,
61
+ onRampPurchase: state.onRampPurchase,
62
+ selectedExternalWalletId: state.selectedExternalWalletId,
63
+ isUsingMobileConnector: state.isUsingMobileConnector,
64
+ isPasskeySupported: state.isPasskeySupported
65
+ })
66
+ }
67
+ )
68
+ );
69
+ export {
70
+ DEFAULT_MODAL_STATE,
71
+ OnRampStep,
72
+ useModalStore
73
+ };
@@ -1,51 +1,4 @@
1
1
  import { IconType } from '@getpara/react-components';
2
- import { AuthStateLogin, AuthStateVerify, WalletType } from '@getpara/web-sdk';
3
- export type WalletMetadata = {
4
- id: string;
5
- name: string;
6
- iconUrl: string;
7
- installed?: boolean;
8
- isExtension?: boolean;
9
- isMobile?: boolean;
10
- isWeb?: boolean;
11
- downloadUrl?: string;
12
- getQrUri?: () => Promise<string>;
13
- downloadUrls?: {
14
- android?: string;
15
- ios?: string;
16
- mobile?: string;
17
- qrCode?: string;
18
- chrome?: string;
19
- edge?: string;
20
- firefox?: string;
21
- opera?: string;
22
- safari?: string;
23
- browserExtension?: string;
24
- macos?: string;
25
- windows?: string;
26
- linux?: string;
27
- desktop?: string;
28
- };
29
- };
30
- export type CommonWallet = {
31
- connect: () => Promise<{
32
- address?: string;
33
- bufferAddress?: string;
34
- error?: string;
35
- authState?: AuthStateVerify | AuthStateLogin;
36
- }>;
37
- connectMobile: (isManualWalletConnect?: boolean) => Promise<{
38
- address?: string;
39
- bufferAddress?: string;
40
- error?: string;
41
- authState?: AuthStateVerify | AuthStateLogin;
42
- }>;
43
- type: WalletType;
44
- } & WalletMetadata;
45
- export type CommonChain = {
46
- id: string | number;
47
- name: string;
48
- };
49
2
  export type Tab<T> = {
50
3
  label: string;
51
4
  value: T;
@@ -0,0 +1 @@
1
+ "use client";
@@ -1,4 +1,4 @@
1
- import ParaWeb, { CurrentWalletIds, OAuthMethod } from '@getpara/web-sdk';
1
+ import ParaWeb, { CurrentWalletIds, SupportedAccountLinks, TOAuthMethod } from '@getpara/web-sdk';
2
2
  import { Theme } from '@getpara/react-components';
3
3
  import { OnModalStepChangeValue } from '../stores/index.js';
4
4
  import { ModalStep, ModalStepProp } from '../utils/steps.js';
@@ -54,7 +54,7 @@ export interface ParaModalProps {
54
54
  * Which OAuth methods (if any) to show.
55
55
  * Defaults to `true`.
56
56
  */
57
- oAuthMethods?: OAuthMethod[];
57
+ oAuthMethods?: TOAuthMethod[];
58
58
  /**
59
59
  * Whether or not to allow for email login. If true, only OAuth login will be available.
60
60
  * Defaults to `false`.
@@ -100,6 +100,10 @@ export interface ParaModalProps {
100
100
  * Default to [AuthLayout.AUTH_FULL, AuthLayout.EXTERNAL_FULL]
101
101
  */
102
102
  authLayout?: TAuthLayout[];
103
+ /**
104
+ * Default email or phone number (formatted like: +15555555555) to pre-populate the input field.
105
+ */
106
+ defaultAuthIdentifier?: string;
103
107
  /**
104
108
  * Called when the modal step changes
105
109
  */
@@ -108,9 +112,18 @@ export interface ParaModalProps {
108
112
  * Called when the modal is closed
109
113
  */
110
114
  onClose?: () => void;
115
+ /**
116
+ * Whether to enable guest login. A guest user will be provisioned embedded wallets that they will then claim upon signing up through your app.
117
+ */
118
+ isGuestModeEnabled?: boolean;
111
119
  loginTransitionOverride?: (para: ParaWeb) => Promise<void>;
112
120
  createWalletOverride?: (para: ParaWeb) => Promise<{
113
121
  recoverySecret?: string;
114
122
  walletIds: CurrentWalletIds;
115
123
  }>;
124
+ /**
125
+ * Which external accounts or wallets to allow your users to link to their accounts. The accounts will be displayed in this order in the modal account screen.
126
+ * If not provided, will default to your Developer Portal configuration or to all available account types.
127
+ */
128
+ supportedAccountLinks?: SupportedAccountLinks;
116
129
  }
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import "../../chunk-MMUBH76A.js";
3
+ var AuthLayout = /* @__PURE__ */ ((AuthLayout2) => {
4
+ AuthLayout2["AUTH_FULL"] = "AUTH:FULL";
5
+ AuthLayout2["AUTH_CONDENSED"] = "AUTH:CONDENSED";
6
+ AuthLayout2["EXTERNAL_FULL"] = "EXTERNAL:FULL";
7
+ AuthLayout2["EXTERNAL_CONDENSED"] = "EXTERNAL:CONDENSED";
8
+ return AuthLayout2;
9
+ })(AuthLayout || {});
10
+ export {
11
+ AuthLayout
12
+ };
@@ -0,0 +1,5 @@
1
+ import { Auth } from '@getpara/user-management-client';
2
+ import countryCodes from './countryCodes.js';
3
+ export declare function isCcMatch(countryCode: string, option: (typeof countryCodes)[number]): boolean;
4
+ export declare function validateAuth(auth: Auth<'email' | 'phone'>): Auth<'email' | 'phone'>;
5
+ export declare function validateInput(identifier: string, countryCode?: string, type?: 'email' | 'phone'): Auth<"email" | "phone">;
@@ -0,0 +1,41 @@
1
+ "use client";
2
+ import "../../chunk-MMUBH76A.js";
3
+ import { EMAIL_REGEX } from "../constants/constants.js";
4
+ import { formatPhoneNumber } from "@getpara/web-sdk";
5
+ function isCcMatch(countryCode, option) {
6
+ return countryCode === "+1" ? option.selectedLabel === "US" : option.value === countryCode;
7
+ }
8
+ function validateAuth(auth) {
9
+ switch (true) {
10
+ case "email" in auth:
11
+ if (!EMAIL_REGEX.test(auth.email)) {
12
+ throw new Error("Please enter a valid email address!");
13
+ }
14
+ break;
15
+ case "phone" in auth:
16
+ {
17
+ if (!/^\+1\d{3}555\d{4}$/.test(auth.phone)) {
18
+ const formatted = formatPhoneNumber(auth.phone);
19
+ if (!formatted) {
20
+ throw new Error("Please enter a valid phone number!");
21
+ }
22
+ }
23
+ }
24
+ break;
25
+ }
26
+ return auth;
27
+ }
28
+ function validateInput(identifier, countryCode, type) {
29
+ const isEmail = type === "email";
30
+ const isPhone = type === "phone";
31
+ const auth = isEmail ? { email: identifier } : isPhone ? { phone: `${countryCode}${identifier}` } : void 0;
32
+ if (!auth) {
33
+ throw new Error("Please enter a valid email or phone number!");
34
+ }
35
+ return validateAuth(auth);
36
+ }
37
+ export {
38
+ isCcMatch,
39
+ validateAuth,
40
+ validateInput
41
+ };
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import "../../chunk-MMUBH76A.js";
3
+ const hasExternalWallet = (authLayout) => authLayout.find((layout) => layout.includes("EXTERNAL"));
4
+ const hasEmbeddedAuth = (authLayout) => authLayout.find((layout) => layout.includes("AUTH"));
5
+ export {
6
+ hasEmbeddedAuth,
7
+ hasExternalWallet
8
+ };
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ import "../../chunk-MMUBH76A.js";
3
+ import { getCountries, getCountryCallingCode } from "libphonenumber-js";
4
+ const excludedCountries = [
5
+ "AC",
6
+ "CG",
7
+ "CI",
8
+ "CV",
9
+ "GF",
10
+ "GP",
11
+ "MF",
12
+ "NC",
13
+ "PM",
14
+ "RE",
15
+ "SD",
16
+ "SH",
17
+ "SJ",
18
+ "TA",
19
+ "VA",
20
+ "WF",
21
+ "XK",
22
+ "YT"
23
+ ];
24
+ const generateCountryCodes = () => {
25
+ const countries = getCountries();
26
+ const countryList = countries.filter((country) => !excludedCountries.includes(country)).map((country) => {
27
+ const countryCode = getCountryCallingCode(country);
28
+ const countryName = new Intl.DisplayNames(["en"], { type: "region" }).of(country);
29
+ return {
30
+ label: countryName != null ? countryName : "",
31
+ value: `+${countryCode}`,
32
+ selectedLabel: country,
33
+ icon: country
34
+ };
35
+ }).sort((a, b) => {
36
+ var _a, _b;
37
+ return ((_a = a.label) != null ? _a : "").localeCompare((_b = b.label) != null ? _b : "");
38
+ });
39
+ return countryList;
40
+ };
41
+ const countryCodes = generateCountryCodes();
42
+ var countryCodes_default = countryCodes;
43
+ export {
44
+ countryCodes_default as default
45
+ };
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import "../../chunk-MMUBH76A.js";
3
+ function getMailtoLink(email, recoveryShare) {
4
+ const emailBody = `Hello,%0D%0DBelow is your Para Recovery Secret. Keep this safe!%0D%0D${recoveryShare}%0D%0DPlease get in touch via support@getpara.com if you have any questions`;
5
+ const mailText = `mailto:${email}?subject=Para%20Recovery%20Secret&body=${emailBody}`;
6
+ return mailText;
7
+ }
8
+ export {
9
+ getMailtoLink
10
+ };