@getpara/react-sdk 1.2.0 → 1.3.1

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 (143) hide show
  1. package/dist/MoonPayEmbed-GAWXP6V7.js +2 -0
  2. package/dist/MoonPayEmbed-GAWXP6V7.js.br +0 -0
  3. package/dist/MoonPayEmbed-GAWXP6V7.js.gz +0 -0
  4. package/dist/index.js +675 -5
  5. package/dist/index.js.br +0 -0
  6. package/dist/index.js.gz +0 -0
  7. package/package.json +8 -7
  8. package/dist/modal/ParaModal.js +0 -281
  9. package/dist/modal/components/Account/Account.js +0 -60
  10. package/dist/modal/components/AddFunds/AddFunds.js +0 -147
  11. package/dist/modal/components/AddFunds/AddFundsAwaiting.js +0 -65
  12. package/dist/modal/components/AddFunds/AddFundsDone.js +0 -26
  13. package/dist/modal/components/AddFunds/MoonPayEmbed.js +0 -2
  14. package/dist/modal/components/AddFunds/index.js +0 -3
  15. package/dist/modal/components/AuthInput/AuthInput.js +0 -221
  16. package/dist/modal/components/AuthInput/countryCodes.js +0 -40
  17. package/dist/modal/components/AuthInput/hooks/useDropdownPosition.js +0 -23
  18. package/dist/modal/components/AuthInput/phoneMasks.js +0 -247
  19. package/dist/modal/components/AuthMainStep/AuthMainStep.js +0 -21
  20. package/dist/modal/components/AuthMainStep/AuthMainStepContent.js +0 -89
  21. package/dist/modal/components/AuthOptions/AuthOptions.js +0 -28
  22. package/dist/modal/components/AwaitingBiometricsStep/AwaitingBiometricsStep.js +0 -7
  23. package/dist/modal/components/AwaitingOAuthStep/AwaitingOAuthStep.js +0 -5
  24. package/dist/modal/components/AwaitingPasswordStep/AwaitingPasswordStep.js +0 -7
  25. package/dist/modal/components/AwaitingWalletCreationStep/AwaitingWalletCreationStep.js +0 -18
  26. package/dist/modal/components/BiometricCreationStep/BiometricCreationStep.js +0 -17
  27. package/dist/modal/components/BiometricLoginStep/BiometricLoginStep.js +0 -131
  28. package/dist/modal/components/Body/AnimatedHeightWrapper.js +0 -26
  29. package/dist/modal/components/Body/Body.js +0 -232
  30. package/dist/modal/components/ChainSwitch/ChainSwitch.js +0 -77
  31. package/dist/modal/components/ChainSwitch/config.js +0 -11
  32. package/dist/modal/components/Controls/Controls.js +0 -54
  33. package/dist/modal/components/Controls/Selects.js +0 -159
  34. package/dist/modal/components/ExternalWalletStep/ExternalWalletStep.js +0 -116
  35. package/dist/modal/components/ExternalWalletStep/config.js +0 -11
  36. package/dist/modal/components/ExternalWallets/ExternalWallets.js +0 -142
  37. package/dist/modal/components/ExternalWalletsWrapper/ExternalWalletsWrapper.js +0 -119
  38. package/dist/modal/components/Footer/Footer.js +0 -71
  39. package/dist/modal/components/Header/Header.js +0 -24
  40. package/dist/modal/components/Header/hooks/useStepTitle.js +0 -42
  41. package/dist/modal/components/Hero/Hero.js +0 -119
  42. package/dist/modal/components/IFrameStep/IFrameStep.js +0 -41
  43. package/dist/modal/components/LoginDoneStep/LoginDoneStep.js +0 -19
  44. package/dist/modal/components/ModalContent/ModalContent.js +0 -282
  45. package/dist/modal/components/OAuth/FarcasterOAuthStep.js +0 -81
  46. package/dist/modal/components/OAuth/OAuth.js +0 -125
  47. package/dist/modal/components/OAuth/TelegramOAuthStep.js +0 -133
  48. package/dist/modal/components/OnRampComponents/AddingFunds.js +0 -10
  49. package/dist/modal/components/OnRampComponents/OnRampProviderButton.js +0 -72
  50. package/dist/modal/components/RecoverySecretStep/RecoverySecretStep.js +0 -67
  51. package/dist/modal/components/Setup2FAStep/Setup2FAStep.js +0 -105
  52. package/dist/modal/components/StripeComponents/StripeComponents.js +0 -78
  53. package/dist/modal/components/TwoFactorDoneStep/TwoFactorDoneStep.js +0 -8
  54. package/dist/modal/components/VerificationCodeStep/VerificationCodeStep.js +0 -135
  55. package/dist/modal/components/Waiting/Waiting.js +0 -6
  56. package/dist/modal/components/WalletCard/PartnerIcon.js +0 -29
  57. package/dist/modal/components/WalletCard/WalletCard.js +0 -93
  58. package/dist/modal/components/WalletCreationDoneStep/WalletCreationDoneStep.js +0 -50
  59. package/dist/modal/components/common.js +0 -67
  60. package/dist/modal/components/index.js +0 -1
  61. package/dist/modal/constants/constants.js +0 -93
  62. package/dist/modal/constants/defaults.js +0 -5
  63. package/dist/modal/constants/oAuthLogos.js +0 -18
  64. package/dist/modal/hooks/useActiveWallet.js +0 -11
  65. package/dist/modal/hooks/useEmbeddedExternalConnection.js +0 -46
  66. package/dist/modal/hooks/useGoBack.js +0 -34
  67. package/dist/modal/index.js +0 -9
  68. package/dist/modal/providers/CosmosExternalWalletContextStub.js +0 -18
  69. package/dist/modal/providers/EvmExternalWalletContextStub.js +0 -22
  70. package/dist/modal/providers/ExternalWalletContext.js +0 -253
  71. package/dist/modal/providers/SolanaExternalWalletContextStub.js +0 -12
  72. package/dist/modal/stores/externalWalletProvider/actions.js +0 -5
  73. package/dist/modal/stores/externalWalletProvider/useExternalWalletProviderStore.js +0 -13
  74. package/dist/modal/stores/index.js +0 -3
  75. package/dist/modal/stores/modal/actions.js +0 -64
  76. package/dist/modal/stores/modal/useModalStore.js +0 -41
  77. package/dist/modal/stores/para/actions.js +0 -5
  78. package/dist/modal/stores/para/useParaStore.js +0 -3
  79. package/dist/modal/stores/theme/actions.js +0 -24
  80. package/dist/modal/stores/theme/useThemeStore.js +0 -14
  81. package/dist/modal/stores/userInfo/actions.js +0 -34
  82. package/dist/modal/stores/userInfo/useUserInfoStore.js +0 -9
  83. package/dist/modal/types/commonTypes.js +0 -1
  84. package/dist/modal/types/externalWallets.js +0 -21
  85. package/dist/modal/types/modalProps.js +0 -7
  86. package/dist/modal/utils/authLayoutHelpers.js +0 -2
  87. package/dist/modal/utils/getMailtoLink.js +0 -5
  88. package/dist/modal/utils/getTileButtonFlex.js +0 -15
  89. package/dist/modal/utils/isPasskeySupported.js +0 -10
  90. package/dist/modal/utils/openPopup.js +0 -55
  91. package/dist/modal/utils/routeMobileExternalWallet.js +0 -35
  92. package/dist/modal/utils/steps.js +0 -215
  93. package/dist/modal/utils/stringFormatters.js +0 -12
  94. package/dist/modal/utils/validateOnRampConfig.js +0 -26
  95. package/dist/provider/ParaProvider.js +0 -17
  96. package/dist/provider/actions/checkIfUserExists.js +0 -26
  97. package/dist/provider/actions/createUser.js +0 -30
  98. package/dist/provider/actions/getAccount.js +0 -24
  99. package/dist/provider/actions/getWallet.js +0 -16
  100. package/dist/provider/actions/initiateLogin.js +0 -23
  101. package/dist/provider/actions/keepSessionAlive.js +0 -23
  102. package/dist/provider/actions/logout.js +0 -20
  103. package/dist/provider/actions/signMessage.js +0 -23
  104. package/dist/provider/actions/signTransaction.js +0 -23
  105. package/dist/provider/actions/waitForAccountCreation.js +0 -24
  106. package/dist/provider/actions/waitForLoginAndSetup.js +0 -27
  107. package/dist/provider/actions/waitForPasskeyAndCreateWallet.js +0 -24
  108. package/dist/provider/hooks/index.js +0 -3
  109. package/dist/provider/hooks/mutations/index.js +0 -10
  110. package/dist/provider/hooks/mutations/useCheckIfUserExists.js +0 -23
  111. package/dist/provider/hooks/mutations/useCreateUser.js +0 -23
  112. package/dist/provider/hooks/mutations/useInitiateLogin.js +0 -23
  113. package/dist/provider/hooks/mutations/useKeepSessionAlive.js +0 -23
  114. package/dist/provider/hooks/mutations/useLogout.js +0 -33
  115. package/dist/provider/hooks/mutations/useSignMessage.js +0 -33
  116. package/dist/provider/hooks/mutations/useSignTransaction.js +0 -33
  117. package/dist/provider/hooks/mutations/useWaitForAccountCreation.js +0 -30
  118. package/dist/provider/hooks/mutations/useWaitForLoginAndSetup.js +0 -30
  119. package/dist/provider/hooks/mutations/useWaitForPasskeyAndCreateWallet.js +0 -30
  120. package/dist/provider/hooks/queries/index.js +0 -2
  121. package/dist/provider/hooks/queries/useAccount.js +0 -23
  122. package/dist/provider/hooks/queries/useWallet.js +0 -24
  123. package/dist/provider/hooks/utils/index.js +0 -3
  124. package/dist/provider/hooks/utils/useAutoSessionKeepAlive.js +0 -79
  125. package/dist/provider/hooks/utils/useClient.js +0 -8
  126. package/dist/provider/hooks/utils/useEventListeners.js +0 -87
  127. package/dist/provider/hooks/utils/useInternalClient.js +0 -9
  128. package/dist/provider/hooks/utils/useModal.js +0 -15
  129. package/dist/provider/hooks/utils/useWalletState.js +0 -33
  130. package/dist/provider/index.js +0 -3
  131. package/dist/provider/stores/getters.js +0 -5
  132. package/dist/provider/stores/slices/client.js +0 -4
  133. package/dist/provider/stores/slices/index.js +0 -3
  134. package/dist/provider/stores/slices/modal.js +0 -4
  135. package/dist/provider/stores/slices/wallet.js +0 -6
  136. package/dist/provider/stores/types.js +0 -1
  137. package/dist/provider/stores/useStore.js +0 -14
  138. package/dist/provider/types/provider.js +0 -1
  139. package/dist/provider/types/query.js +0 -1
  140. package/dist/provider/types/utils.js +0 -1
  141. package/dist/provider/utils/renameMutations.js +0 -19
  142. /package/dist/{modal/css → css}/modal.css +0 -0
  143. /package/dist/{modal/public → public}/Inter-VariableFont_slnt,wght.ttf +0 -0
@@ -1,159 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- import { CpslIdenticon, CpslSelect, CpslSelectItem, CpslText } from '@getpara/react-components';
12
- import { useExternalWallets } from '../../providers/ExternalWalletContext.js';
13
- import styled from 'styled-components';
14
- import { useThemeStore } from '../../stores/index.js';
15
- import { truncateAddress, WalletType } from '@getpara/web-sdk';
16
- import { useEffect, useRef } from 'react';
17
- import { useDropdownPosition } from '../AuthInput/hooks/useDropdownPosition.js';
18
- import { MOBILE_SIZE } from '../../constants/constants.js';
19
- import { useActiveWallet } from '../../hooks/useActiveWallet.js';
20
- import { useWalletState } from '../../../provider/index.js';
21
- import { useInternalClient } from '../../../provider/hooks/utils/useInternalClient.js';
22
- const getValue = (id, type) => {
23
- return id && type ? `${id}~${type}` : undefined;
24
- };
25
- const WALLET_TYPES = {
26
- [WalletType.EVM]: 'EVM',
27
- [WalletType.SOLANA]: 'Solana',
28
- [WalletType.COSMOS]: 'Cosmos',
29
- };
30
- export const ChainSelect = () => {
31
- var _a, _b;
32
- const containerRef = useRef(null);
33
- const { dropdownMaxHeight, dropdownWidth, mobileAnchor, resize } = useDropdownPosition(containerRef);
34
- const activeWallet = useActiveWallet();
35
- const { switchChain, chainId, chains, chainIdSwitchingTo } = useExternalWallets();
36
- useEffect(() => {
37
- if (dropdownMaxHeight && chainId) {
38
- resize();
39
- }
40
- }, [chainId, chainIdSwitchingTo, dropdownMaxHeight]);
41
- const handleChainChange = (chainId) => __awaiter(void 0, void 0, void 0, function* () {
42
- yield switchChain(chainId);
43
- });
44
- if (!activeWallet || !activeWallet.isExternal || activeWallet.type === WalletType.SOLANA) {
45
- return null;
46
- }
47
- const chainIdToUse = chainIdSwitchingTo !== null && chainIdSwitchingTo !== void 0 ? chainIdSwitchingTo : chainId;
48
- const selectedChainName = (_a = chains.find(c => c.id.toString() === chainIdToUse)) === null || _a === void 0 ? void 0 : _a.name;
49
- return (_jsx(Container, { children: _jsx(SelectContainer, { ref: containerRef, id: "inputContainer", children: _jsxs(StyledSelect, { selectedValue: (_b = chainIdToUse === null || chainIdToUse === void 0 ? void 0 : chainIdToUse.toString()) !== null && _b !== void 0 ? _b : '', onCpslSelectValueChange: e => {
50
- handleChainChange(e.detail);
51
- }, showFormattedSelectedItem: true, placeholder: "Choose chain...", anchorElId: "inputContainer", dropdownMaxHeight: dropdownMaxHeight, "$width": dropdownWidth, "$top": mobileAnchor + 16 + 1, autoWidth: true, selectedItemVariant: "bodyXS", children: [chainIdToUse && (_jsx(ChainName, { variant: "bodyXS", color: "contrast", slot: "selected-item", children: selectedChainName })), chains === null || chains === void 0 ? void 0 : chains.map(chain => (_jsx(StyledSelectItem, { slot: "items", value: chain.id.toString(), children: _jsx(ChainName, { variant: "bodyXS", color: "contrast", children: chain.name }) }, chain.id)))] }) }) }));
52
- };
53
- function getName(para, { type, isExternal, name, isMenu = false, hideWallets = false, }) {
54
- if (para.isMultiWallet) {
55
- return (name !== null && name !== void 0 ? name : `${isExternal ? 'External ' : ''}${WALLET_TYPES[type]}${!hideWallets && (isMenu || isExternal) ? ' Wallet' : ''}`);
56
- }
57
- return hideWallets ? 'My Account' : name || 'My Wallet';
58
- }
59
- export const AccountSelect = () => {
60
- const hideWallets = useThemeStore(state => state.hideWallets);
61
- const para = useInternalClient();
62
- const containerRef = useRef(null);
63
- const { dropdownMaxHeight, dropdownWidth, mobileAnchor, resize } = useDropdownPosition(containerRef);
64
- const { setSelectedWallet } = useWalletState();
65
- const activeWallet = useActiveWallet();
66
- const ActiveWalletNode = activeWallet ? (_jsxs(FlexRow, { slot: "selected-item", children: [_jsx(CpslIdenticon, { variant: "avatar", size: "14px", hash: para.getIdenticonHash(activeWallet.id, activeWallet.type) }), _jsx(WalletName, { variant: "bodyXS", color: "contrast", children: getName(para, Object.assign(Object.assign({}, activeWallet), { hideWallets })) }), !hideWallets && (_jsx(CpslText, { variant: "bodyXS", color: "secondary", children: para.getDisplayAddress(activeWallet.id, { truncate: true, addressType: activeWallet.type }) }))] })) : null;
67
- useEffect(() => {
68
- if (dropdownMaxHeight && (activeWallet === null || activeWallet === void 0 ? void 0 : activeWallet.address)) {
69
- resize();
70
- }
71
- }, [activeWallet, para.availableWallets, dropdownMaxHeight]);
72
- return (_jsx(Container, { children: _jsx(SelectContainer, { ref: containerRef, id: "addressInputContainer", children: para.availableWallets.length > 1 ? (_jsxs(StyledSelect, { selectedValue: getValue(activeWallet === null || activeWallet === void 0 ? void 0 : activeWallet.id, activeWallet === null || activeWallet === void 0 ? void 0 : activeWallet.type), onCpslSelectValueChange: e => {
73
- const [id, type] = e.detail.split('~');
74
- setSelectedWallet({ id, type: type });
75
- }, showFormattedSelectedItem: true, placeholder: "Choose wallet...", anchorElId: "addressInputContainer", dropdownMaxHeight: dropdownMaxHeight, "$width": dropdownWidth, "$top": mobileAnchor + 16 + 1, autoWidth: true, selectedItemVariant: "bodyXS", children: [activeWallet && ActiveWalletNode, para.availableWallets.map(({ address, name: _name, id, type, isExternal }) => {
76
- const key = getValue(id, type);
77
- const name = _name !== null && _name !== void 0 ? _name : getName(para, { type, isExternal, isMenu: true, hideWallets });
78
- return (_jsx(StyledSelectItem, { slot: "items", value: key, children: _jsxs(FlexRow, { children: [_jsx(CpslIdenticon, { size: "40px", hash: para.getIdenticonHash(id, type) }), _jsxs(FlexCol, { children: [name && (_jsx(CpslText, { variant: "bodyS", color: "contrast", children: name })), !hideWallets && (_jsx(CpslText, { variant: "bodyXS", color: "secondary", children: truncateAddress(address, type, { prefix: para.cosmosPrefix }) }))] })] }) }, key));
79
- })] })) : (ActiveWalletNode) }) }));
80
- };
81
- const Container = styled.div `
82
- flex: 0;
83
- width: 100%;
84
- display: flex;
85
- justify-content: center;
86
- `;
87
- const FlexRow = styled.div `
88
- display: flex;
89
- align-items: center;
90
- gap: 8px;
91
- `;
92
- const FlexCol = styled.div `
93
- display: flex;
94
- flex-direction: column;
95
- align-items: flex-start;
96
- `;
97
- const WalletName = styled(CpslText) `
98
- white-space: nowrap;
99
- `;
100
- const SelectContainer = styled.div `
101
- position: relative;
102
- display: flex;
103
- align-items: center;
104
- gap: 8px;
105
- border-radius: 1000px;
106
- background-color: var(--cpsl-color-background-8);
107
- padding: 8px;
108
- `;
109
- const ChainName = styled(CpslText) `
110
- max-width: 150px;
111
- text-transform: capitalize;
112
-
113
- &::part(text-element) {
114
- white-space: nowrap;
115
- text-overflow: ellipsis;
116
- overflow: hidden;
117
- }
118
- `;
119
- const StyledSelect = styled(CpslSelect) `
120
- --container-height: auto;
121
- --container-border-width: 0px;
122
- --container-padding-end: 0px;
123
- --container-padding-start: 0px;
124
- --container-background-color: transparent;
125
- --container-box-shadow: none;
126
- --container-gap: 2px;
127
- --icon-width: 16px;
128
- --icon-height: 16px;
129
-
130
- &::part(selected-text) {
131
- white-space: nowrap;
132
- }
133
-
134
- &::part(dropdown) {
135
- min-width: ${({ $width }) => `${$width - 2}px`};
136
- }
137
-
138
- &::part(popover) {
139
- /* Have to adjust the top of the popover here since we're using a transform on the modal which causes fixed position items to not be relative to the viewport */
140
- @media (max-width: ${MOBILE_SIZE}px) {
141
- top: ${({ $top }) => ($top ? `${$top}px` : '0px')};
142
- bottom: 16px;
143
- }
144
- cpsl-auth-modal.force-mobile-media & {
145
- top: ${({ $top }) => ($top ? `${$top}px` : '0px')};
146
- bottom: 16px;
147
- }
148
- }
149
-
150
- &::part(icon) {
151
- --icon-color: var(--cpsl-color-contrast);
152
- }
153
- `;
154
- const StyledSelectItem = styled(CpslSelectItem) `
155
- --outer-container-padding-start: 4px;
156
- --outer-container-padding-end: 4px;
157
- --outer-container-padding-top: 4px;
158
- --outer-container-padding-bottom: 4px;
159
- `;
@@ -1,116 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
- import { CpslButton, CpslIcon, CpslQrCode, CpslSpinner, CpslText } from '@getpara/react-components';
12
- import { CenteredText, InnerStepContainer, QRContainer, StepContainer } from '../common.js';
13
- import { useEffect, useMemo } from 'react';
14
- import { useModalStore } from '../../stores/index.js';
15
- import styled from 'styled-components';
16
- import { useExternalWallets } from '../../providers/ExternalWalletContext.js';
17
- import { useCopyToClipboard } from '@getpara/react-common';
18
- import { ModalStep } from '../../utils/steps.js';
19
- import { isMobile, isTablet, WalletType } from '@getpara/web-sdk';
20
- import { routeMobileExternalWallet } from '../../utils/routeMobileExternalWallet.js';
21
- export const ExternalWalletStep = () => {
22
- const [isCopied, copy] = useCopyToClipboard();
23
- const externalWalletError = useModalStore(state => state.externalWalletError);
24
- const setStep = useModalStore(state => state.setStep);
25
- const { connectExternalWallet, wallet, qrUri, walletDisplayHelpers } = useExternalWallets();
26
- useEffect(() => {
27
- routeMobileExternalWallet(qrUri);
28
- }, [qrUri]);
29
- const handleTryAgainClick = () => __awaiter(void 0, void 0, void 0, function* () {
30
- yield connectExternalWallet(wallet);
31
- });
32
- const handleCopy = () => {
33
- copy(qrUri);
34
- };
35
- const Content = useMemo(() => {
36
- var _a, _b, _c;
37
- if (!wallet) {
38
- return null;
39
- }
40
- const isWalletConnect = wallet.id === 'walletConnect';
41
- const isMobileWalletConnect = isMobile() && isWalletConnect;
42
- if (isMobileWalletConnect) {
43
- _jsx(InnerStepContainer, { children: _jsx(Text, { weight: "semiBold", children: "Continue in the WalletConnect modal." }) });
44
- }
45
- const { showExtension, showMobile, isSolanaMobileIOS } = walletDisplayHelpers;
46
- // Fallback to not supported text
47
- if ((!showMobile && !showExtension) || (isSolanaMobileIOS && !wallet.installed)) {
48
- const text = isSolanaMobileIOS
49
- ? "Solana wallets aren't available on mobile IOS browsers.\n\nPlease continue in the wallet app."
50
- : `${wallet.name} isn't supported on mobile devices.\n\nPlease choose another wallet or continue on desktop.`;
51
- return (_jsx(InnerStepContainer, { children: _jsx(Text, { weight: "semiBold", children: text }) }));
52
- }
53
- if (showExtension) {
54
- const isInstalled = wallet.installed;
55
- return (_jsxs(InnerStepContainer, { children: [isInstalled && !(externalWalletError === null || externalWalletError === void 0 ? void 0 : externalWalletError.length) ? (_jsx(CenteredText, { color: "contrast", weight: "semiBold", children: `Confirm connection request in the ${wallet.name} browser extension.` })) : (_jsxs(ErrorContainer, { children: [_jsx(ErrorIcon, { icon: "alertCircle" }), _jsx(CpslText, { weight: "semiBold", color: "error", children: isInstalled ? externalWalletError === null || externalWalletError === void 0 ? void 0 : externalWalletError[0] : `${wallet.name} not detected` })] })), _jsxs(CpslButton, { as: isInstalled ? 'button' : 'a', href: (_a = wallet.downloadUrl) !== null && _a !== void 0 ? _a : '', target: "_blank", variant: "secondary", onClick: handleTryAgainClick, children: [_jsx(CpslIcon, { slot: "start", icon: isInstalled ? 'refresh' : 'linkExternal' }), isInstalled ? 'Try Again' : `Get ${wallet.name}`] })] }));
56
- }
57
- if (showMobile) {
58
- // If Solana wallet or if on a mobile and NOT on a table, show the connection screen. Else show the QR code.
59
- if (wallet.type === WalletType.SOLANA || (isMobile() && !isTablet())) {
60
- // Checking if the wallet is installed only for Solana wallets since Solana MWA doesn't work on IOS Safari
61
- // https://docs.solanamobile.com/web/developing-for-web#ios-web
62
- const isInstalled = wallet.type !== WalletType.SOLANA || wallet.installed;
63
- return (_jsxs(_Fragment, { children: [_jsx(InnerStepContainer, { children: !isInstalled && (_jsx(CpslText, { weight: "semiBold", color: "error", children: `${wallet.name} not detected` })) }), wallet.id !== 'walletConnect' && (_jsxs(InnerStepContainer, { children: [_jsx(CpslButton, { onClick: () => routeMobileExternalWallet(qrUri), fullWidth: true, children: "Connect Wallet" }), _jsx(Link, { href: (_b = wallet.downloadUrl) !== null && _b !== void 0 ? _b : '', target: "_blank", children: _jsxs(ExternalButton, { variant: "secondary", children: [`Get ${wallet.name}`, _jsx(ExternalIcon, { icon: "linkExternal" })] }) })] }))] }));
64
- }
65
- const openWCModal = () => __awaiter(void 0, void 0, void 0, function* () {
66
- yield connectExternalWallet(wallet, true, true);
67
- });
68
- const GetWalletButton = (_jsxs(ExternalButton, { variant: "secondary", onClick: isWalletConnect ? openWCModal : undefined, children: [`${isWalletConnect ? 'Open' : 'Get'} ${wallet.name}`, _jsx(ExternalIcon, { icon: "linkExternal" })] }));
69
- return (_jsxs(_Fragment, { children: [_jsxs(InnerStepContainer, { children: [_jsx(CpslText, { weight: "semiBold", children: "Scan with your mobile device" }), _jsx(QRContainer, { children: !qrUri ? _jsx(CpslSpinner, { size: 100 }) : _jsx(CpslQrCode, { url: qrUri, imageSrc: wallet.iconUrl }) }), _jsxs(CpslButton, { size: "small", variant: "ghost", onClick: handleCopy, children: [_jsx(CpslIcon, { slot: "start", icon: isCopied ? 'check' : 'copy' }), isCopied ? 'Copied' : 'Copy Link'] })] }), _jsx(InnerStepContainer, { children: isWalletConnect ? (_jsx(_Fragment, { children: GetWalletButton })) : (_jsx(Link, { href: (_c = wallet.downloadUrl) !== null && _c !== void 0 ? _c : '', target: "_blank", children: GetWalletButton })) })] }));
70
- }
71
- }, [wallet, walletDisplayHelpers, externalWalletError, qrUri]);
72
- useEffect(() => {
73
- if (!wallet) {
74
- setStep(ModalStep.AUTH_MAIN);
75
- }
76
- }, [wallet]);
77
- if (!wallet) {
78
- return null;
79
- }
80
- return _jsx(Container, { children: Content });
81
- };
82
- const Container = styled(StepContainer) `
83
- flex: 1;
84
- justify-content: space-between;
85
- `;
86
- const ErrorContainer = styled.div `
87
- display: flex;
88
- align-items: center;
89
- justify-content: center;
90
- gap: 4px;
91
- `;
92
- const ErrorIcon = styled(CpslIcon) `
93
- --height: 16px;
94
- --width: 16px;
95
- --icon-color: var(--cpsl-color-text-error);
96
- `;
97
- const Text = styled(CenteredText) `
98
- white-space: pre-line;
99
- `;
100
- const ExternalButton = styled(CpslButton) `
101
- display: flex;
102
- gap: 8px;
103
- align-items: center;
104
- justify-content: center;
105
- width: 100%;
106
- cursor: pointer;
107
- margin-top: 8px;
108
- text-decoration: none;
109
- `;
110
- const ExternalIcon = styled(CpslIcon) `
111
- --height: 20px;
112
- --width: 20px;
113
- `;
114
- const Link = styled.a `
115
- text-decoration: none;
116
- `;
@@ -1,11 +0,0 @@
1
- export var TabValue;
2
- (function (TabValue) {
3
- TabValue["extension"] = "extension";
4
- TabValue["mobile"] = "mobile";
5
- TabValue["web"] = "web";
6
- })(TabValue || (TabValue = {}));
7
- export const TABS = {
8
- extension: { label: 'Extension', value: TabValue.extension, icon: 'puzzlePiece' },
9
- mobile: { label: 'Mobile', value: TabValue.mobile, icon: 'phone' },
10
- web: { label: 'Web', value: TabValue.web, icon: 'globe' },
11
- };
@@ -1,142 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
- import styled from 'styled-components';
12
- import { useExternalWallets } from '../../providers/ExternalWalletContext.js';
13
- import { StyledCpslTileButton } from '../common.js';
14
- import { CpslButton, CpslIcon, CpslInput, CpslText } from '@getpara/react-components';
15
- import { useModalStore, useThemeStore } from '../../stores/index.js';
16
- import { ModalStep } from '../../utils/steps.js';
17
- import { useState } from 'react';
18
- import { hasEmbeddedAuth } from '../../utils/authLayoutHelpers.js';
19
- const HAS_MORE_LENGTH = 3;
20
- export const ExternalWallets = () => {
21
- const { wallets, connectExternalWallet } = useExternalWallets();
22
- const setSelectedExternalWalletId = useModalStore(state => state.setSelectedExternalWalletId);
23
- const setStep = useModalStore(state => state.setStep);
24
- const showAll = useModalStore(state => state.step === ModalStep.EX_WALLET_MORE);
25
- const authLayout = useThemeStore(state => state.authLayout);
26
- const [search, setSearch] = useState('');
27
- const hasMore = wallets.length > HAS_MORE_LENGTH;
28
- const walletsToShow = showAll || !hasMore
29
- ? search
30
- ? wallets.filter(w => w.name.toLowerCase().includes(search.toLowerCase()))
31
- : wallets
32
- : wallets.slice(0, HAS_MORE_LENGTH);
33
- const showMoreButton = !showAll && hasMore;
34
- const handleShowAll = () => {
35
- setStep(ModalStep.EX_WALLET_MORE);
36
- };
37
- const handleParaClick = () => {
38
- setStep(ModalStep.AUTH_MORE);
39
- };
40
- const handleWalletClick = (wallet) => () => {
41
- setSelectedExternalWalletId(wallet.id);
42
- setStep(ModalStep.EX_WALLET_SELECTED);
43
- if (wallet.installed) {
44
- connectExternalWallet(wallet);
45
- }
46
- else if (wallet.isMobile) {
47
- connectExternalWallet(wallet, true);
48
- }
49
- };
50
- return (_jsxs(Container, { "$maxHeight": showAll, children: [showAll && (_jsxs(_Fragment, { children: [_jsx(SearchInputWrapper, { children: _jsx(SearchInput, { placeholder: "Search for your wallet", onCpslInput: (e) => __awaiter(void 0, void 0, void 0, function* () {
51
- setSearch(e.target.value);
52
- }), value: search, style: { width: '100%' }, children: _jsx(SearchIcon, { slot: "start", icon: "search" }) }) }), hasEmbeddedAuth(authLayout) && (_jsx(CpslButton, { fullWidth: true, variant: "tertiary", onClick: handleParaClick, children: _jsxs(WalletButtonOuterContainer, { children: [_jsxs(WalletButtonInnerContainer, { children: [_jsx(CpslIcon, { slot: "start", icon: "paraIcon" }), _jsx(CpslText, { weight: "medium", children: "Para" })] }), _jsx(Badge, { "$show": true, "$variant": "installed", children: _jsx(CpslText, { variant: "body2XS", weight: "medium", children: "Available" }) })] }) }))] })), walletsToShow.map(wallet => showAll ? (_jsx(CpslButton, { fullWidth: true, variant: "tertiary", onClick: handleWalletClick(wallet), children: _jsxs(WalletButtonOuterContainer, { children: [_jsxs(WalletButtonInnerContainer, { children: [_jsx(CpslIcon, { slot: "start", src: wallet.iconUrl }), _jsx(CpslText, { weight: "medium", children: wallet.name })] }), _jsx(Badge, { "$show": wallet.isMobile || wallet.installed, "$variant": wallet.installed ? 'installed' : 'mobile', children: _jsx(CpslText, { variant: "body2XS", weight: "medium", children: wallet.installed ? 'Installed' : 'Mobile' }) })] }) }, wallet.id)) : (_jsx(WalletTileButton, { src: wallet.iconUrl, onClick: handleWalletClick(wallet), children: _jsxs(TileButtonInnerContainer, { children: [wallet.installed && _jsx(InstalledIndicator, {}), _jsx(CpslText, { variant: "bodyXS", color: "secondary", weight: "medium", children: wallet.name })] }) }, wallet.id))), showMoreButton && (_jsxs(CpslButton, { variant: "tertiary", fullWidth: true, onClick: handleShowAll, children: [_jsx(CpslIcon, { slot: "start", icon: "wallet" }), "More Wallets"] })), showAll && _jsx(BlurContainer, {})] }));
53
- };
54
- const Container = styled.div `
55
- position: relative;
56
- display: flex;
57
- justify-content: center;
58
- gap: 8px;
59
- flex-wrap: wrap;
60
-
61
- max-height: ${({ $maxHeight }) => ($maxHeight ? '348px' : 'none')};
62
- overflow-y: auto;
63
-
64
- &::-webkit-scrollbar {
65
- display: none;
66
- }
67
- -ms-overflow-style: none;
68
- scrollbar-width: none;
69
- `;
70
- const WalletTileButton = styled(StyledCpslTileButton) `
71
- flex: 1;
72
- `;
73
- const WalletButtonOuterContainer = styled.div `
74
- width: 100%;
75
- display: flex;
76
- align-items: center;
77
- gap: 8px;
78
- justify-content: space-between;
79
- `;
80
- const WalletButtonInnerContainer = styled.div `
81
- display: flex;
82
- align-items: center;
83
- gap: 8px;
84
-
85
- cpsl-icon {
86
- --icon-color: var(--cpsl-color-contrast);
87
- }
88
- cpsl-text {
89
- &::part(text-element) {
90
- color: var(--cpsl-color-contrast);
91
- }
92
- }
93
- `;
94
- const Badge = styled.div `
95
- visibility: ${({ $show }) => ($show ? 'visible' : 'hidden')};
96
- padding: 2px 4px;
97
- border-radius: 4px;
98
- border: 1px solid;
99
- border-color: ${({ $variant }) => $variant === 'installed' ? 'var(--cpsl-color-utility-green)' : 'var(--cpsl-color-text-primary)'};
100
- cpsl-text {
101
- &::part(text-element) {
102
- color: ${({ $variant }) => $variant === 'installed' ? 'var(--cpsl-color-utility-green)' : 'var(--cpsl-color-text-primary)'};
103
- }
104
- }
105
- `;
106
- const InstalledIndicator = styled.span `
107
- width: 8px;
108
- height: 8px;
109
- border-radius: 100%;
110
- background-color: var(--cpsl-color-utility-green);
111
- `;
112
- const TileButtonInnerContainer = styled.div `
113
- display: flex;
114
- gap: 4px;
115
- align-items: center;
116
- `;
117
- const SearchIcon = styled(CpslIcon) `
118
- --icon-color: var(--cpsl-color-contrast);
119
- `;
120
- const SearchInputWrapper = styled.div `
121
- width: 100%;
122
- background-color: var(--cpsl-color-background-0);
123
-
124
- position: sticky;
125
- top: 0;
126
- padding-bottom: 4px;
127
- margin-bottom: -4px;
128
- `;
129
- const SearchInput = styled(CpslInput) `
130
- width: 100%;
131
- --container-background-color: var(--cpsl-color-background-8);
132
- --input-background-color: var(--cpsl-color-background-8);
133
- `;
134
- const BlurContainer = styled.div `
135
- position: sticky;
136
- height: 56px;
137
- width: 100%;
138
- bottom: 0;
139
-
140
- background: linear-gradient(0deg, var(--cpsl-color-background-0) 0%, rgba(234, 239, 211, 0) 100%);
141
- pointer-events: none;
142
- `;
@@ -1,119 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- import { useEffect, useState } from 'react';
12
- import { ExternalWalletProvider } from '../../providers/ExternalWalletContext.js';
13
- import { EvmExternalWalletContext, EvmExternalWalletProvider, } from '../../providers/EvmExternalWalletContextStub.js';
14
- import { CosmosWallet, EvmWallet, SolanaWallet } from '../../types/externalWallets.js';
15
- import { SolanaExternalWalletContext, SolanaExternalWalletProvider, } from '../../providers/SolanaExternalWalletContextStub.js';
16
- import { CosmosExternalWalletContext, CosmosExternalWalletProvider, } from '../../providers/CosmosExternalWalletContextStub.js';
17
- import { useModalStore, useUserInfoStore } from '../../stores/index.js';
18
- import { useExternalWalletProviderStore } from '../../stores/externalWalletProvider/useExternalWalletProviderStore.js';
19
- import { useInternalClient } from '../../../provider/hooks/utils/useInternalClient.js';
20
- export const ExternalWalletsWrapper = ({ children, wallets }) => {
21
- const para = useInternalClient();
22
- const resetModalState = useModalStore(state => state.resetState);
23
- const resetUserInfoState = useUserInfoStore(state => state.resetState);
24
- const StoredEvmProvider = useExternalWalletProviderStore(state => state.EvmProvider);
25
- const storedEvmContext = useExternalWalletProviderStore(state => state.evmContext);
26
- const StoredSolanaProvider = useExternalWalletProviderStore(state => state.SolanaProvider);
27
- const storedSolanaContext = useExternalWalletProviderStore(state => state.solanaContext);
28
- const StoredCosmosProvider = useExternalWalletProviderStore(state => state.CosmosProvider);
29
- const storedCosmosContext = useExternalWalletProviderStore(state => state.cosmosContext);
30
- // EVM
31
- const [EvmProvider, setEvmProvider] = useState(null);
32
- const [evmContext, setEvmContext] = useState(null);
33
- // Solana
34
- const [SolanaProvider, setSolanaProvider] = useState(null);
35
- const [solanaContext, setSolanaContext] = useState(null);
36
- // Cosmos
37
- const [CosmosProvider, setCosmosProvider] = useState(null);
38
- const [cosmosContext, setCosmosContext] = useState(null);
39
- useEffect(() => {
40
- const loadProviders = () => __awaiter(void 0, void 0, void 0, function* () {
41
- let newEvmContext = EvmExternalWalletContext;
42
- let newEvmProvider = EvmExternalWalletProvider;
43
- let newSolanaContext = SolanaExternalWalletContext;
44
- let newSolanaProvider = SolanaExternalWalletProvider;
45
- let newCosmosContext = CosmosExternalWalletContext;
46
- let newCosmosProvider = CosmosExternalWalletProvider;
47
- if (!(wallets === null || wallets === void 0 ? void 0 : wallets.length)) {
48
- newEvmContext = EvmExternalWalletContext;
49
- newEvmProvider = EvmExternalWalletProvider;
50
- newSolanaContext = SolanaExternalWalletContext;
51
- newSolanaProvider = SolanaExternalWalletProvider;
52
- newCosmosContext = CosmosExternalWalletContext;
53
- newCosmosProvider = CosmosExternalWalletProvider;
54
- }
55
- else {
56
- for (let i = 0; i < wallets.length; i++) {
57
- const wallet = wallets[i];
58
- // Handle EVM Wallets
59
- if (wallet in EvmWallet) {
60
- if (!StoredEvmProvider || !storedEvmContext) {
61
- throw new Error('@getpara/evm-wallet-connectors is required to use an external EVM wallet.');
62
- }
63
- else {
64
- newEvmContext = storedEvmContext;
65
- newEvmProvider = StoredEvmProvider;
66
- }
67
- }
68
- // Handle Solana Wallets
69
- if (wallet in SolanaWallet) {
70
- if (!StoredSolanaProvider || !storedSolanaContext) {
71
- throw new Error('@getpara/solana-wallet-connectors is required to use an external Solana wallet.');
72
- }
73
- else {
74
- newSolanaContext = storedSolanaContext;
75
- newSolanaProvider = StoredSolanaProvider;
76
- }
77
- }
78
- // Handle Cosmos Wallets
79
- if (wallet in CosmosWallet) {
80
- if (!StoredCosmosProvider || !storedCosmosContext) {
81
- throw new Error('@getpara/cosmos-wallet-connectors is required to use an external Cosmos wallet.');
82
- }
83
- else {
84
- newCosmosContext = storedCosmosContext;
85
- newCosmosProvider = StoredCosmosProvider;
86
- }
87
- }
88
- }
89
- }
90
- setEvmContext(newEvmContext);
91
- setEvmProvider(() => newEvmProvider);
92
- setSolanaContext(newSolanaContext);
93
- setSolanaProvider(() => newSolanaProvider);
94
- setCosmosContext(newCosmosContext);
95
- setCosmosProvider(() => newCosmosProvider);
96
- });
97
- loadProviders();
98
- }, [
99
- wallets,
100
- storedEvmContext,
101
- StoredEvmProvider,
102
- storedSolanaContext,
103
- StoredSolanaProvider,
104
- storedCosmosContext,
105
- StoredCosmosProvider,
106
- ]);
107
- const handleSwitchWallet = ({ address, error }) => {
108
- // If we error on switch wallets we logged out the Para instance so we need to reset the modal state
109
- // Or if we don't return an address on switch wallets we logged out the Para instance so we need to reset the modal state
110
- if (error || !address) {
111
- resetModalState();
112
- resetUserInfoState();
113
- }
114
- };
115
- if (!para || !EvmProvider || !SolanaProvider || !CosmosProvider) {
116
- return null;
117
- }
118
- return (_jsx(EvmProvider, { para: para, onSwitchWallet: handleSwitchWallet, children: _jsx(SolanaProvider, { para: para, onSwitchWallet: handleSwitchWallet, children: _jsx(CosmosProvider, { para: para, onSwitchWallet: handleSwitchWallet, children: _jsx(ExternalWalletProvider, { evmContext: evmContext, solanaContext: solanaContext, cosmosContext: cosmosContext, walletSort: wallets, children: children }) }) }) }));
119
- };
@@ -1,71 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { styled } from 'styled-components';
3
- import { CpslButton, CpslIcon, CpslText } from '@getpara/react-components';
4
- import { useModalStore } from '../../stores/index.js';
5
- import { PARA_CONNECT, PARA_TERMS_AND_CONDITIONS } from '../../constants/constants.js';
6
- import { useMemo } from 'react';
7
- import { getStepHasFooter } from '../../utils/steps.js';
8
- export const Footer = () => {
9
- const isAccount = useModalStore(state => state.isAccount());
10
- const currentStep = useModalStore(state => state.step);
11
- const showFooter = isAccount || getStepHasFooter(currentStep);
12
- const Content = useMemo(() => {
13
- if (isAccount) {
14
- return (_jsxs(ConnectContainer, { children: [_jsxs(ConnectText, { variant: "bodyS", color: "secondary", weight: "medium", children: ["Access all your wallet\u2019s features at", ' ', _jsx("a", { href: PARA_CONNECT, target: "blank", children: _jsx(ClickableText, { variant: "bodyS", weight: "medium", children: "Para Connect" }) })] }), _jsx(CpslButton, { as: "a", href: PARA_CONNECT, target: "blank", variant: "ghost", children: _jsx(RightChevron, { icon: "chevronUp" }) })] }));
15
- }
16
- return (_jsxs(_Fragment, { children: [_jsxs(InlineText, { variant: "body2XS", color: "secondary", weight: "medium", children: ["By logging in you agree to our", ' ', _jsx("a", { href: PARA_TERMS_AND_CONDITIONS, target: "blank", children: _jsx(ClickableText, { variant: "body2XS", weight: "medium", children: "Terms & Conditions" }) })] }), _jsxs(PoweredByContainer, { children: [_jsx(InlineText, { variant: "bodyS", color: "secondary", weight: "medium", children: "Powered by" }), _jsx(ParaLogo, { icon: "para" })] })] }));
17
- }, [isAccount]);
18
- if (!showFooter) {
19
- return null;
20
- }
21
- return (_jsx(FooterContainer, { slot: "footer", children: _jsx(FooterContentContainer, { children: Content }) }));
22
- };
23
- const FooterContainer = styled.div `
24
- display: flex;
25
- flex-direction: column;
26
- align-items: center;
27
- gap: 16px;
28
- padding: 8px 0px;
29
- `;
30
- const FooterContentContainer = styled.div `
31
- display: flex;
32
- flex-direction: column;
33
- align-items: center;
34
- gap: 8px;
35
- `;
36
- const PoweredByContainer = styled.div `
37
- display: flex;
38
- gap: 5px;
39
- align-items: center;
40
- justify-content: center;
41
- `;
42
- const ConnectContainer = styled.div `
43
- display: flex;
44
- gap: 8px;
45
- align-items: center;
46
- justify-content: center;
47
- `;
48
- const RightChevron = styled(CpslIcon) `
49
- transform: rotate(90deg);
50
-
51
- /* --icon-color: var(--cpsl-color-text-tertiary); */
52
- --height: 24px;
53
- --width: 24px;
54
- `;
55
- const InlineText = styled(CpslText) `
56
- text-align: center;
57
- display: inline-block;
58
- `;
59
- const ConnectText = styled(InlineText) `
60
- line-height: 20px;
61
- `;
62
- const ClickableText = styled(InlineText) `
63
- cursor: pointer;
64
- display: inline-block;
65
- `;
66
- const ParaLogo = styled(CpslIcon) `
67
- display: inline-block;
68
- --icon-color: var(--cpsl-color-text-secondary);
69
- --width: 49px;
70
- --height: auto;
71
- `;
@@ -1,24 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { styled } from 'styled-components';
3
- import { useStepTitle } from './hooks/useStepTitle.js';
4
- import { CenteredText } from '../common.js';
5
- import { AnimatePresence, motion } from 'framer-motion';
6
- import { useModalStore } from '../../stores/index.js';
7
- import { BODY_MOTION_VARIANTS, BODY_TRANSITION } from '../../constants/constants.js';
8
- export const Header = () => {
9
- const { title } = useStepTitle();
10
- const stepDirection = useModalStore(state => state.stepDirection);
11
- const currentStep = useModalStore(state => state.step);
12
- return (_jsx(AnimatePresence, { mode: "popLayout", initial: false, custom: stepDirection, children: _jsx(Container, { custom: stepDirection, variants: BODY_MOTION_VARIANTS, initial: "enter", animate: "center", exit: "exit", transition: BODY_TRANSITION, slot: "header", id: "header", children: _jsx(CenteredText, { weight: "semiBold", color: "secondary", children: title }) }, ['ADD_FUNDS_BUY', 'ADD_FUNDS_RECEIVE', 'ADD_FUNDS_WITHDRAW'].includes(currentStep) ? 'ADD_FUNDS' : currentStep) }));
13
- };
14
- const Container = styled(motion.div) `
15
- position: absolute;
16
- top: 16px;
17
- width: 100%;
18
- z-index: 2;
19
- display: flex;
20
- align-items: center;
21
- justify-content: space-between;
22
- gap: 8px;
23
- flex-wrap: wrap;
24
- `;