@dynamic-labs/sdk-react-core 4.19.5 → 4.19.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +12 -12
- package/src/lib/components/AppOriginTile/AppOriginTile.cjs +8 -5
- package/src/lib/components/AppOriginTile/AppOriginTile.d.ts +4 -1
- package/src/lib/components/AppOriginTile/AppOriginTile.js +8 -5
- package/src/lib/components/Chip/Chip.cjs +2 -3
- package/src/lib/components/Chip/Chip.d.ts +5 -4
- package/src/lib/components/Chip/Chip.js +2 -3
- package/src/lib/components/NeedHelpSection/NeedHelpSection.cjs +3 -2
- package/src/lib/components/NeedHelpSection/NeedHelpSection.js +3 -2
- package/src/lib/context/OnrampContext/useEnabledOnrampProviders/useEnabledOnrampProviders.d.ts +2 -2
- package/src/lib/context/ViewContext/types/index.d.ts +1 -1
- package/src/lib/data/api/exchangeAccounts/exchangeAccounts.d.ts +45 -0
- package/src/lib/data/api/exchangeAccounts/index.d.ts +1 -0
- package/src/lib/data/api/index.d.ts +1 -0
- package/src/lib/data/api/onramp/onramp.d.ts +2 -2
- package/src/lib/locale/en/translation.cjs +16 -0
- package/src/lib/locale/en/translation.d.ts +16 -0
- package/src/lib/locale/en/translation.js +16 -0
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +1 -1
- package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +1 -1
- package/src/lib/modals/ZkSyncApprovalModal/ZkSyncApprovalModal.cjs +22 -0
- package/src/lib/modals/ZkSyncApprovalModal/ZkSyncApprovalModal.d.ts +8 -0
- package/src/lib/modals/ZkSyncApprovalModal/ZkSyncApprovalModal.js +18 -0
- package/src/lib/modals/ZkSyncApprovalModal/index.d.ts +1 -0
- package/src/lib/modals/index.d.ts +1 -0
- package/src/lib/shared/assets/backup.cjs +52 -0
- package/src/lib/shared/assets/backup.js +28 -0
- package/src/lib/shared/assets/clock.cjs +54 -0
- package/src/lib/shared/assets/clock.js +30 -0
- package/src/lib/shared/assets/index.d.ts +2 -0
- package/src/lib/styles/index.shadow.cjs +1 -1
- package/src/lib/styles/index.shadow.js +1 -1
- package/src/lib/utils/constants/authViewLayoutChecks.cjs +1 -0
- package/src/lib/utils/constants/authViewLayoutChecks.js +1 -0
- package/src/lib/utils/functions/onrampConfigurationToOnrampOption/onrampConfigurationToOnrampOption.d.ts +2 -2
- package/src/lib/utils/functions/updatePrimaryWalletId/updatePrimaryWalletId.cjs +25 -18
- package/src/lib/utils/functions/updatePrimaryWalletId/updatePrimaryWalletId.js +25 -18
- package/src/lib/utils/hooks/index.d.ts +1 -0
- package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.cjs +4 -0
- package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.js +4 -0
- package/src/lib/utils/hooks/useExchangeAccounts/index.d.ts +1 -0
- package/src/lib/utils/hooks/useExchangeAccounts/useExchangeAccounts.d.ts +13 -0
- package/src/lib/utils/hooks/useSyncDynamicWaas/useSyncDynamicWaas.cjs +4 -2
- package/src/lib/utils/hooks/useSyncDynamicWaas/useSyncDynamicWaas.js +4 -2
- package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.cjs +12 -1
- package/src/lib/utils/hooks/useWalletUiUtils/useWalletUiUtils.js +12 -1
- package/src/lib/views/BackupUnsuccessfulView/BackupUnsuccessfulView.cjs +138 -0
- package/src/lib/views/BackupUnsuccessfulView/BackupUnsuccessfulView.d.ts +3 -0
- package/src/lib/views/BackupUnsuccessfulView/BackupUnsuccessfulView.js +133 -0
- package/src/lib/views/Passkey/PasskeyNewDomainDetectedView/PasskeyNewDomainDetectedView.cjs +1 -1
- package/src/lib/views/Passkey/PasskeyNewDomainDetectedView/PasskeyNewDomainDetectedView.js +1 -1
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.cjs +1 -1
- package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.js +1 -1
- package/src/lib/views/SessionKeyApprovalView/SessionKeyApprovalView.cjs +114 -0
- package/src/lib/views/SessionKeyApprovalView/SessionKeyApprovalView.js +110 -0
- package/src/lib/views/SessionPermissionsView/SessionPermissionsView.cjs +6 -6
- package/src/lib/views/SessionPermissionsView/SessionPermissionsView.js +2 -2
- package/src/lib/views/index.d.ts +1 -0
- package/src/lib/views/viewToComponentMap.cjs +2 -0
- package/src/lib/views/viewToComponentMap.d.ts +1 -0
- package/src/lib/views/viewToComponentMap.js +2 -0
- package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/prompts/QrCodeModalView/QrCodeModalView.js +1 -1
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/RevokeAccessView/RevokeAccessView.cjs +6 -4
- package/src/lib/widgets/DynamicWidget/views/SessionManagementView/RevokeAccessView/RevokeAccessView.js +7 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
|
|
2
|
+
### [4.19.6](https://github.com/dynamic-labs/dynamic-auth/compare/v4.19.5...v4.19.6) (2025-06-04)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* backup unsuccessful popup when create wallet fails ([#8872](https://github.com/dynamic-labs/dynamic-auth/issues/8872)) ([c8f88f2](https://github.com/dynamic-labs/dynamic-auth/commit/c8f88f2cafdb7856764305764a230e159f09dadf))
|
|
8
|
+
* **global-wallet:** new native api method to return the eoa wallet for a connected smart wallet ([#8864](https://github.com/dynamic-labs/dynamic-auth/issues/8864)) ([5d0e200](https://github.com/dynamic-labs/dynamic-auth/commit/5d0e2002caefb658f6120b102abe145d6caafaf4))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* dont call select endpoint when signing in with 7702 wallet ([#8854](https://github.com/dynamic-labs/dynamic-auth/issues/8854)) ([9828a8f](https://github.com/dynamic-labs/dynamic-auth/commit/9828a8fb758b07dd4dc51cb9eadee483b884defe))
|
|
14
|
+
|
|
2
15
|
### [4.19.5](https://github.com/dynamic-labs/dynamic-auth/compare/v4.19.4...v4.19.5) (2025-06-02)
|
|
3
16
|
|
|
4
17
|
|
package/package.cjs
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
-
var version = "4.19.
|
|
6
|
+
var version = "4.19.6";
|
|
7
7
|
var dependencies = {
|
|
8
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
8
|
+
"@dynamic-labs/sdk-api-core": "0.0.681",
|
|
9
9
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
10
10
|
"@thumbmarkjs/thumbmarkjs": "0.16.0",
|
|
11
11
|
"country-list": "2.3.0",
|
package/package.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
var version = "4.19.
|
|
2
|
+
var version = "4.19.6";
|
|
3
3
|
var dependencies = {
|
|
4
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
4
|
+
"@dynamic-labs/sdk-api-core": "0.0.681",
|
|
5
5
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
6
6
|
"@thumbmarkjs/thumbmarkjs": "0.16.0",
|
|
7
7
|
"country-list": "2.3.0",
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "4.19.
|
|
3
|
+
"version": "4.19.6",
|
|
4
4
|
"dependencies": {
|
|
5
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
5
|
+
"@dynamic-labs/sdk-api-core": "0.0.681",
|
|
6
6
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
7
7
|
"@thumbmarkjs/thumbmarkjs": "0.16.0",
|
|
8
8
|
"country-list": "2.3.0",
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"yup": "0.32.11",
|
|
15
15
|
"react-international-phone": "4.2.5",
|
|
16
16
|
"bs58": "5.0.0",
|
|
17
|
-
"@dynamic-labs/assert-package-version": "4.19.
|
|
18
|
-
"@dynamic-labs/iconic": "4.19.
|
|
19
|
-
"@dynamic-labs/logger": "4.19.
|
|
20
|
-
"@dynamic-labs/multi-wallet": "4.19.
|
|
21
|
-
"@dynamic-labs/rpc-providers": "4.19.
|
|
22
|
-
"@dynamic-labs/store": "4.19.
|
|
23
|
-
"@dynamic-labs/types": "4.19.
|
|
24
|
-
"@dynamic-labs/utils": "4.19.
|
|
25
|
-
"@dynamic-labs/wallet-book": "4.19.
|
|
26
|
-
"@dynamic-labs/wallet-connector-core": "4.19.
|
|
17
|
+
"@dynamic-labs/assert-package-version": "4.19.6",
|
|
18
|
+
"@dynamic-labs/iconic": "4.19.6",
|
|
19
|
+
"@dynamic-labs/logger": "4.19.6",
|
|
20
|
+
"@dynamic-labs/multi-wallet": "4.19.6",
|
|
21
|
+
"@dynamic-labs/rpc-providers": "4.19.6",
|
|
22
|
+
"@dynamic-labs/store": "4.19.6",
|
|
23
|
+
"@dynamic-labs/types": "4.19.6",
|
|
24
|
+
"@dynamic-labs/utils": "4.19.6",
|
|
25
|
+
"@dynamic-labs/wallet-book": "4.19.6",
|
|
26
|
+
"@dynamic-labs/wallet-connector-core": "4.19.6",
|
|
27
27
|
"eventemitter3": "5.0.1"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
@@ -10,18 +10,21 @@ var Typography = require('../Typography/Typography.cjs');
|
|
|
10
10
|
var Chip = require('../Chip/Chip.cjs');
|
|
11
11
|
var getGlobalWalletContext = require('../../shared/utils/functions/getGlobalWalletContext/getGlobalWalletContext.cjs');
|
|
12
12
|
|
|
13
|
-
const AppOriginTile = () => {
|
|
13
|
+
const AppOriginTile = ({ origin }) => {
|
|
14
14
|
const { requesterOrigin } = getGlobalWalletContext.getGlobalWalletContext();
|
|
15
|
-
const
|
|
15
|
+
const displayOrigin = React.useMemo(() => {
|
|
16
|
+
if (origin) {
|
|
17
|
+
return origin;
|
|
18
|
+
}
|
|
16
19
|
if (requesterOrigin) {
|
|
17
20
|
return requesterOrigin;
|
|
18
21
|
}
|
|
19
22
|
return utils.PlatformService.getDisplayOrigin();
|
|
20
|
-
}, [requesterOrigin]);
|
|
21
|
-
if (!
|
|
23
|
+
}, [origin, requesterOrigin]);
|
|
24
|
+
if (!displayOrigin) {
|
|
22
25
|
return null;
|
|
23
26
|
}
|
|
24
|
-
return (jsxRuntime.jsx(Chip.Chip, { className: 'app-origin-tile', children: jsxRuntime.jsx(Typography.Typography, { color: 'secondary', variant: 'body_normal', weight: 'regular', children:
|
|
27
|
+
return (jsxRuntime.jsx(Chip.Chip, { className: 'app-origin-tile', children: jsxRuntime.jsx(Typography.Typography, { color: 'secondary', variant: 'body_normal', weight: 'regular', as: 'span', children: displayOrigin }) }));
|
|
25
28
|
};
|
|
26
29
|
|
|
27
30
|
exports.AppOriginTile = AppOriginTile;
|
|
@@ -6,18 +6,21 @@ import { Typography } from '../Typography/Typography.js';
|
|
|
6
6
|
import { Chip } from '../Chip/Chip.js';
|
|
7
7
|
import { getGlobalWalletContext } from '../../shared/utils/functions/getGlobalWalletContext/getGlobalWalletContext.js';
|
|
8
8
|
|
|
9
|
-
const AppOriginTile = () => {
|
|
9
|
+
const AppOriginTile = ({ origin }) => {
|
|
10
10
|
const { requesterOrigin } = getGlobalWalletContext();
|
|
11
|
-
const
|
|
11
|
+
const displayOrigin = useMemo(() => {
|
|
12
|
+
if (origin) {
|
|
13
|
+
return origin;
|
|
14
|
+
}
|
|
12
15
|
if (requesterOrigin) {
|
|
13
16
|
return requesterOrigin;
|
|
14
17
|
}
|
|
15
18
|
return PlatformService.getDisplayOrigin();
|
|
16
|
-
}, [requesterOrigin]);
|
|
17
|
-
if (!
|
|
19
|
+
}, [origin, requesterOrigin]);
|
|
20
|
+
if (!displayOrigin) {
|
|
18
21
|
return null;
|
|
19
22
|
}
|
|
20
|
-
return (jsx(Chip, { className: 'app-origin-tile', children: jsx(Typography, { color: 'secondary', variant: 'body_normal', weight: 'regular', children:
|
|
23
|
+
return (jsx(Chip, { className: 'app-origin-tile', children: jsx(Typography, { color: 'secondary', variant: 'body_normal', weight: 'regular', as: 'span', children: displayOrigin }) }));
|
|
21
24
|
};
|
|
22
25
|
|
|
23
26
|
export { AppOriginTile };
|
|
@@ -7,8 +7,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
7
7
|
var Typography = require('../Typography/Typography.cjs');
|
|
8
8
|
var classNames = require('../../utils/functions/classNames/classNames.cjs');
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}), children: [Boolean(icon) && jsxRuntime.jsx("div", { className: 'chip--icon', children: icon }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_small', children: children })] }));
|
|
10
|
+
/** An outlined chip component that displays a label and optional leading and trailing icons. */
|
|
11
|
+
const Chip = ({ children, leading, trailing, className, }) => (jsxRuntime.jsxs("div", { className: classNames.classNames('chip', className), children: [Boolean(leading) && jsxRuntime.jsx("div", { className: 'chip--leading', children: leading }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_small', children: children }), Boolean(trailing) && jsxRuntime.jsx("div", { className: 'chip--trailing', children: trailing })] }));
|
|
13
12
|
|
|
14
13
|
exports.Chip = Chip;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { FC, PropsWithChildren, ReactNode } from 'react';
|
|
2
|
-
|
|
2
|
+
export interface ChipProps {
|
|
3
3
|
className?: string;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
leading?: ReactNode;
|
|
5
|
+
trailing?: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
/** An outlined chip component that displays a label and optional leading and trailing icons. */
|
|
6
8
|
export declare const Chip: FC<PropsWithChildren<ChipProps>>;
|
|
7
|
-
export {};
|
|
@@ -3,8 +3,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { Typography } from '../Typography/Typography.js';
|
|
4
4
|
import { classNames } from '../../utils/functions/classNames/classNames.js';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}), children: [Boolean(icon) && jsx("div", { className: 'chip--icon', children: icon }), jsx(Typography, { variant: 'body_small', children: children })] }));
|
|
6
|
+
/** An outlined chip component that displays a label and optional leading and trailing icons. */
|
|
7
|
+
const Chip = ({ children, leading, trailing, className, }) => (jsxs("div", { className: classNames('chip', className), children: [Boolean(leading) && jsx("div", { className: 'chip--leading', children: leading }), jsx(Typography, { variant: 'body_small', children: children }), Boolean(trailing) && jsx("div", { className: 'chip--trailing', children: trailing })] }));
|
|
9
8
|
|
|
10
9
|
export { Chip };
|
|
@@ -103,7 +103,7 @@ var useInternalDynamicContext = require('../../context/DynamicContext/useDynamic
|
|
|
103
103
|
|
|
104
104
|
const NeedHelpSection = ({ isRecoveryFlow = false, isExport = false, }) => {
|
|
105
105
|
var _a, _b, _c, _d, _e;
|
|
106
|
-
const { projectSettings, user } = useInternalDynamicContext.useInternalDynamicContext();
|
|
106
|
+
const { projectSettings, user, primaryWallet } = useInternalDynamicContext.useInternalDynamicContext();
|
|
107
107
|
const { t } = reactI18next.useTranslation();
|
|
108
108
|
const { pushView } = ViewContext.useViewContext();
|
|
109
109
|
const { initPasskeyRecoveryProcess } = usePasskeyRecovery.usePasskeyRecovery();
|
|
@@ -114,8 +114,9 @@ const NeedHelpSection = ({ isRecoveryFlow = false, isExport = false, }) => {
|
|
|
114
114
|
((_c = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers) === null || _c === void 0 ? void 0 : _c.find((p) => p.provider === sdkApiCore.ProviderEnum.Turnkey && p.enabledAt)) &&
|
|
115
115
|
Boolean((_e = (_d = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _d === void 0 ? void 0 : _d.embeddedWallets) === null || _e === void 0 ? void 0 : _e.emailRecoveryEnabled);
|
|
116
116
|
const v2Wallet = user === null || user === void 0 ? void 0 : user.verifiedCredentials.some((credential) => { var _a; return ((_a = credential.walletProperties) === null || _a === void 0 ? void 0 : _a.version) === sdkApiCore.EmbeddedWalletVersionEnum.V2; });
|
|
117
|
+
const v3Wallet = (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.key) === 'dynamicwaas';
|
|
117
118
|
// revert to v2 wallet view (no passkey recovery) if passkey recovery is not enabled
|
|
118
|
-
const v1Wallet = !v2Wallet && isRecoveryEnabled;
|
|
119
|
+
const v1Wallet = !v3Wallet && !v2Wallet && isRecoveryEnabled;
|
|
119
120
|
const hasContactInfo = Boolean(supportEmail || Object.keys(supportUrls || {}).length > 0);
|
|
120
121
|
const getSupportHelpSession = () => {
|
|
121
122
|
// For v1 wallets, only show the "Go here for support" link that triggers recovery
|
|
@@ -99,7 +99,7 @@ import { useInternalDynamicContext } from '../../context/DynamicContext/useDynam
|
|
|
99
99
|
|
|
100
100
|
const NeedHelpSection = ({ isRecoveryFlow = false, isExport = false, }) => {
|
|
101
101
|
var _a, _b, _c, _d, _e;
|
|
102
|
-
const { projectSettings, user } = useInternalDynamicContext();
|
|
102
|
+
const { projectSettings, user, primaryWallet } = useInternalDynamicContext();
|
|
103
103
|
const { t } = useTranslation();
|
|
104
104
|
const { pushView } = useViewContext();
|
|
105
105
|
const { initPasskeyRecoveryProcess } = usePasskeyRecovery();
|
|
@@ -110,8 +110,9 @@ const NeedHelpSection = ({ isRecoveryFlow = false, isExport = false, }) => {
|
|
|
110
110
|
((_c = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers) === null || _c === void 0 ? void 0 : _c.find((p) => p.provider === ProviderEnum.Turnkey && p.enabledAt)) &&
|
|
111
111
|
Boolean((_e = (_d = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _d === void 0 ? void 0 : _d.embeddedWallets) === null || _e === void 0 ? void 0 : _e.emailRecoveryEnabled);
|
|
112
112
|
const v2Wallet = user === null || user === void 0 ? void 0 : user.verifiedCredentials.some((credential) => { var _a; return ((_a = credential.walletProperties) === null || _a === void 0 ? void 0 : _a.version) === EmbeddedWalletVersionEnum.V2; });
|
|
113
|
+
const v3Wallet = (primaryWallet === null || primaryWallet === void 0 ? void 0 : primaryWallet.key) === 'dynamicwaas';
|
|
113
114
|
// revert to v2 wallet view (no passkey recovery) if passkey recovery is not enabled
|
|
114
|
-
const v1Wallet = !v2Wallet && isRecoveryEnabled;
|
|
115
|
+
const v1Wallet = !v3Wallet && !v2Wallet && isRecoveryEnabled;
|
|
115
116
|
const hasContactInfo = Boolean(supportEmail || Object.keys(supportUrls || {}).length > 0);
|
|
116
117
|
const getSupportHelpSession = () => {
|
|
117
118
|
// For v1 wallets, only show the "Go here for support" link that triggers recovery
|
package/src/lib/context/OnrampContext/useEnabledOnrampProviders/useEnabledOnrampProviders.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Wallet } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
-
import { type
|
|
2
|
+
import { type RampConfiguration, type OnrampProviders } from '@dynamic-labs/sdk-api-core';
|
|
3
3
|
export type EnabledOnrampProvidersTarget = {
|
|
4
4
|
address?: string;
|
|
5
5
|
token?: string;
|
|
@@ -11,5 +11,5 @@ type UseEnabledOnrampProvidersProps = {
|
|
|
11
11
|
environmentId: string;
|
|
12
12
|
target: EnabledOnrampProvidersTarget;
|
|
13
13
|
};
|
|
14
|
-
export declare const useEnabledOnrampProviders: ({ primaryWallet, network, environmentId, projectSettingsOnramps, target, }: UseEnabledOnrampProvidersProps) =>
|
|
14
|
+
export declare const useEnabledOnrampProviders: ({ primaryWallet, network, environmentId, projectSettingsOnramps, target, }: UseEnabledOnrampProvidersProps) => RampConfiguration[];
|
|
15
15
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ComponentProps, FC } from 'react';
|
|
2
2
|
import { viewToComponentMap } from '../../../views/viewToComponentMap';
|
|
3
|
-
export type ViewType = 'access-blocked' | 'select-hardware-wallet' | 'captcha' | 'chainalysis-blocked-wallet' | 'collect-user-data' | 'collect-user-data-login-no-wallet' | 'login-with-email-or-wallet-full-wallet-list' | 'login-with-email-or-wallet' | 'login-with-wallet-only' | 'login-with-email-verification' | 'login-with-sms-verification' | 'network-not-supported' | 'network-not-supported-manual' | 'no-access' | 'no-qr-not-installed' | 'pending-connect' | 'pending-signature-without-back-button' | 'pending-signature' | 'qr-code' | 'verify-email' | 'verify-sms' | 'wallet-connect-mobile-wallets-list' | 'wallet-list' | 'external-funding-wallet-list' | 'sandbox-maximum-threshold-reached' | 'multi-wallet-wallet-list' | 'wallet-sign' | 'wallet-used' | 'wallet-group' | 'select-wallet-in-wallet-group' | 'wait-for-email-confirmation-view' | 'email-wallet-otp-verification-view' | 'social-redirect-view' | 'wallet-locked-view' | 'social-wrong-account' | 'gate-blocked-wallet' | 'bridge-welcome' | 'bridge-summary' | 'bridge-next-wallet-connection' | 'account-exists' | 'merge-user-accounts' | 'merge-user-accounts-conflicts' | 'merge-user-accounts-with-same-email' | 'mfa-choose-device' | 'mfa-recovery' | 'mfa-secure-device' | 'mfa-secure-device-help' | 'mfa-verification' | 'mfa-display-backup-codes' | 'wallet-cannot-be-transferred' | 'passkey-intro' | 'passkey-recovery-add-email' | 'global-wallet-confirm' | 'global-wallet-malicious' | 'global-wallet-info' | 'passkey-recovery-start' | 'passkey-recovery-bundle' | 'passkey-recovery-complete' | 'passkey-new-domain-detected' | 'embedded-delete-view' | 'embedded-reveal-view' | 'embedded-reveal-account-view' | 'embedded-wallet-auth-choice' | 'rename-passkey' | 'wallet-redirect-view' | 'mobile-wallet-redirect-view' | 'farcaster-connect-view' | 'embedded-wallet-exists' | 'user-delete-account';
|
|
3
|
+
export type ViewType = 'access-blocked' | 'backup-unsuccessful' | 'select-hardware-wallet' | 'captcha' | 'chainalysis-blocked-wallet' | 'collect-user-data' | 'collect-user-data-login-no-wallet' | 'login-with-email-or-wallet-full-wallet-list' | 'login-with-email-or-wallet' | 'login-with-wallet-only' | 'login-with-email-verification' | 'login-with-sms-verification' | 'network-not-supported' | 'network-not-supported-manual' | 'no-access' | 'no-qr-not-installed' | 'pending-connect' | 'pending-signature-without-back-button' | 'pending-signature' | 'qr-code' | 'verify-email' | 'verify-sms' | 'wallet-connect-mobile-wallets-list' | 'wallet-list' | 'external-funding-wallet-list' | 'sandbox-maximum-threshold-reached' | 'multi-wallet-wallet-list' | 'wallet-sign' | 'wallet-used' | 'wallet-group' | 'select-wallet-in-wallet-group' | 'wait-for-email-confirmation-view' | 'email-wallet-otp-verification-view' | 'social-redirect-view' | 'wallet-locked-view' | 'social-wrong-account' | 'gate-blocked-wallet' | 'bridge-welcome' | 'bridge-summary' | 'bridge-next-wallet-connection' | 'account-exists' | 'merge-user-accounts' | 'merge-user-accounts-conflicts' | 'merge-user-accounts-with-same-email' | 'mfa-choose-device' | 'mfa-recovery' | 'mfa-secure-device' | 'mfa-secure-device-help' | 'mfa-verification' | 'mfa-display-backup-codes' | 'wallet-cannot-be-transferred' | 'passkey-intro' | 'passkey-recovery-add-email' | 'global-wallet-confirm' | 'global-wallet-malicious' | 'global-wallet-info' | 'passkey-recovery-start' | 'passkey-recovery-bundle' | 'passkey-recovery-complete' | 'passkey-new-domain-detected' | 'embedded-delete-view' | 'embedded-reveal-view' | 'embedded-reveal-account-view' | 'embedded-wallet-auth-choice' | 'rename-passkey' | 'wallet-redirect-view' | 'mobile-wallet-redirect-view' | 'farcaster-connect-view' | 'embedded-wallet-exists' | 'user-delete-account';
|
|
4
4
|
export type ViewMapConstraint = Record<ViewType, FC<any>>;
|
|
5
5
|
export type ViewMap = typeof viewToComponentMap;
|
|
6
6
|
export type ViewState<T extends ViewType> = {
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Account, CreateExchangeTransferRequest, ExchangeKeyEnum, ExchangeTransferResponse } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
/**
|
|
3
|
+
* Retrieve the list of exchange accounts linked to a user for a given exchange provider.
|
|
4
|
+
*
|
|
5
|
+
* @param environmentId – Dynamic environment ID
|
|
6
|
+
* @param exchangeKey – The key identifying the exchange provider (e.g., 'coinbase')
|
|
7
|
+
* @returns An array of `Account` objects representing the user's linked exchange accounts
|
|
8
|
+
*/
|
|
9
|
+
export declare const getUserExchangeAccounts: ({ environmentId, exchangeKey, }: {
|
|
10
|
+
environmentId: string;
|
|
11
|
+
exchangeKey: ExchangeKeyEnum;
|
|
12
|
+
}) => Promise<Account[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Transfer funds from a user-linked exchange account to an external address
|
|
15
|
+
* or another Coinbase account.
|
|
16
|
+
*
|
|
17
|
+
* @param environmentId – Dynamic environment ID
|
|
18
|
+
* @param exchangeKey – The key identifying the exchange provider (e.g., `'coinbase'`)
|
|
19
|
+
* @param accountId – The exchange-account ID to transfer funds **from**
|
|
20
|
+
* @param transfer – JSON body matching `CreateExchangeTransferRequest`
|
|
21
|
+
* @returns Details of the created transfer (`ExchangeTransferResponse`)
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* await createExchangeAccountTransfer({
|
|
26
|
+
* environmentId: 'env_123',
|
|
27
|
+
* exchangeKey: ExchangeKeyEnum.COINBASE,
|
|
28
|
+
* accountId: 'acc_456',
|
|
29
|
+
* transfer: {
|
|
30
|
+
* to: '0xRecipientAddress',
|
|
31
|
+
* amount: 0.25,
|
|
32
|
+
* currency: 'ETH',
|
|
33
|
+
* network: 'ethereum',
|
|
34
|
+
* description: 'Withdrawal to cold wallet',
|
|
35
|
+
* mfaCode: '123456',
|
|
36
|
+
* },
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export declare const createExchangeAccountTransfer: ({ environmentId, exchangeKey, accountId, transfer, }: {
|
|
41
|
+
environmentId: string;
|
|
42
|
+
exchangeKey: ExchangeKeyEnum;
|
|
43
|
+
accountId: string;
|
|
44
|
+
transfer: CreateExchangeTransferRequest;
|
|
45
|
+
}) => Promise<ExchangeTransferResponse>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './exchangeAccounts';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RampConfiguration } from '@dynamic-labs/sdk-api-core';
|
|
2
2
|
export declare const getOnrampProviders: ({ chain, environmentId, networkId, token, walletAddress, }: {
|
|
3
3
|
chain: string;
|
|
4
4
|
environmentId: string;
|
|
5
5
|
networkId?: string | number;
|
|
6
6
|
token?: string;
|
|
7
7
|
walletAddress: string;
|
|
8
|
-
}) => Promise<
|
|
8
|
+
}) => Promise<RampConfiguration[]>;
|
|
@@ -1167,6 +1167,22 @@ const translation = {
|
|
|
1167
1167
|
no_devices: 'No authenticator apps configured',
|
|
1168
1168
|
generate_backup_codes_button: 'Get new backup codes',
|
|
1169
1169
|
},
|
|
1170
|
+
/**
|
|
1171
|
+
* @description copy keys for waas backup unsuccessful view
|
|
1172
|
+
* @default
|
|
1173
|
+
* {
|
|
1174
|
+
title: 'Backup Unsuccessful',
|
|
1175
|
+
description: "We weren't able to back up your wallet. To keep things secure, we'll need to refresh and generate a new wallet for you.",
|
|
1176
|
+
try_again: 'Try Again',
|
|
1177
|
+
},
|
|
1178
|
+
*/
|
|
1179
|
+
dyn_waas: {
|
|
1180
|
+
backup_unsuccessful: {
|
|
1181
|
+
title: 'Backup Unsuccessful',
|
|
1182
|
+
description: "We weren't able to back up your wallet. To keep things secure, we'll need to refresh and generate a new wallet for you.",
|
|
1183
|
+
try_again: 'Try Again',
|
|
1184
|
+
},
|
|
1185
|
+
},
|
|
1170
1186
|
/**
|
|
1171
1187
|
* @description copy keys for mfa views
|
|
1172
1188
|
* @default
|
|
@@ -1163,6 +1163,22 @@ export declare const translation: {
|
|
|
1163
1163
|
no_devices: string;
|
|
1164
1164
|
generate_backup_codes_button: string;
|
|
1165
1165
|
};
|
|
1166
|
+
/**
|
|
1167
|
+
* @description copy keys for waas backup unsuccessful view
|
|
1168
|
+
* @default
|
|
1169
|
+
* {
|
|
1170
|
+
title: 'Backup Unsuccessful',
|
|
1171
|
+
description: "We weren't able to back up your wallet. To keep things secure, we'll need to refresh and generate a new wallet for you.",
|
|
1172
|
+
try_again: 'Try Again',
|
|
1173
|
+
},
|
|
1174
|
+
*/
|
|
1175
|
+
dyn_waas: {
|
|
1176
|
+
backup_unsuccessful: {
|
|
1177
|
+
title: string;
|
|
1178
|
+
description: string;
|
|
1179
|
+
try_again: string;
|
|
1180
|
+
};
|
|
1181
|
+
};
|
|
1166
1182
|
/**
|
|
1167
1183
|
* @description copy keys for mfa views
|
|
1168
1184
|
* @default
|
|
@@ -1163,6 +1163,22 @@ const translation = {
|
|
|
1163
1163
|
no_devices: 'No authenticator apps configured',
|
|
1164
1164
|
generate_backup_codes_button: 'Get new backup codes',
|
|
1165
1165
|
},
|
|
1166
|
+
/**
|
|
1167
|
+
* @description copy keys for waas backup unsuccessful view
|
|
1168
|
+
* @default
|
|
1169
|
+
* {
|
|
1170
|
+
title: 'Backup Unsuccessful',
|
|
1171
|
+
description: "We weren't able to back up your wallet. To keep things secure, we'll need to refresh and generate a new wallet for you.",
|
|
1172
|
+
try_again: 'Try Again',
|
|
1173
|
+
},
|
|
1174
|
+
*/
|
|
1175
|
+
dyn_waas: {
|
|
1176
|
+
backup_unsuccessful: {
|
|
1177
|
+
title: 'Backup Unsuccessful',
|
|
1178
|
+
description: "We weren't able to back up your wallet. To keep things secure, we'll need to refresh and generate a new wallet for you.",
|
|
1179
|
+
try_again: 'Try Again',
|
|
1180
|
+
},
|
|
1181
|
+
},
|
|
1166
1182
|
/**
|
|
1167
1183
|
* @description copy keys for mfa views
|
|
1168
1184
|
* @default
|
|
@@ -102,12 +102,12 @@ require('qrcode');
|
|
|
102
102
|
require('../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.cjs');
|
|
103
103
|
var getProperErrorMessage = require('./getProperErrorMessage.cjs');
|
|
104
104
|
require('../../../index.cjs');
|
|
105
|
+
var NeedHelpSection = require('../../components/NeedHelpSection/NeedHelpSection.cjs');
|
|
105
106
|
require('../../context/IpConfigurationContext/IpConfigurationContext.cjs');
|
|
106
107
|
require('../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
|
|
107
108
|
require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
|
|
108
109
|
require('@hcaptcha/react-hcaptcha');
|
|
109
110
|
require('../../context/ErrorContext/hooks/useErrorText/useErrorText.cjs');
|
|
110
|
-
var NeedHelpSection = require('../../components/NeedHelpSection/NeedHelpSection.cjs');
|
|
111
111
|
var PasskeyCreatedSuccessBanner = require('../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
|
|
112
112
|
require('../../store/state/connectorsInitializing/connectorsInitializing.cjs');
|
|
113
113
|
require('../../store/state/tokenBalances.cjs');
|
|
@@ -98,12 +98,12 @@ import 'qrcode';
|
|
|
98
98
|
import '../../widgets/DynamicWidget/views/ReceiveWalletFunds/ReceiveWalletFunds.js';
|
|
99
99
|
import { getProperErrorMessage } from './getProperErrorMessage.js';
|
|
100
100
|
import '../../../index.js';
|
|
101
|
+
import { NeedHelpSection } from '../../components/NeedHelpSection/NeedHelpSection.js';
|
|
101
102
|
import '../../context/IpConfigurationContext/IpConfigurationContext.js';
|
|
102
103
|
import '../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
|
|
103
104
|
import '../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
|
|
104
105
|
import '@hcaptcha/react-hcaptcha';
|
|
105
106
|
import '../../context/ErrorContext/hooks/useErrorText/useErrorText.js';
|
|
106
|
-
import { NeedHelpSection } from '../../components/NeedHelpSection/NeedHelpSection.js';
|
|
107
107
|
import { PasskeyCreatedSuccessBanner } from '../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
|
|
108
108
|
import '../../store/state/connectorsInitializing/connectorsInitializing.js';
|
|
109
109
|
import '../../store/state/tokenBalances.js';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
var ConfirmationModal = require('../ConfirmationModal/ConfirmationModal.cjs');
|
|
8
|
+
var useConfirmationPortal = require('../../utils/hooks/useConfirmationPortal/useConfirmationPortal.cjs');
|
|
9
|
+
var SessionKeyApprovalView = require('../../views/SessionKeyApprovalView/SessionKeyApprovalView.cjs');
|
|
10
|
+
|
|
11
|
+
const ZkSyncApprovalModal = ({ session, onCancel, onApproved, }) => {
|
|
12
|
+
const { onSuccess, show, handleOnModalUnmount, closeModal } = useConfirmationPortal.useConfirmationPortal({
|
|
13
|
+
defaultErrorMessage: 'User canceled',
|
|
14
|
+
onReject: onCancel,
|
|
15
|
+
onResolve: onApproved,
|
|
16
|
+
});
|
|
17
|
+
return (jsxRuntime.jsx(ConfirmationModal.ConfirmationModal, { modalId: 'zksync-approval-modal', show: show,
|
|
18
|
+
// Disables the closing by clicking outside the modal
|
|
19
|
+
closeModal: () => { }, handleOnModalUnmount: handleOnModalUnmount, children: jsxRuntime.jsx(SessionKeyApprovalView.SessionKeyApprovalView, { session: session, onApprove: onSuccess, onReject: closeModal }) }));
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
exports.ZkSyncApprovalModal = ZkSyncApprovalModal;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { ConfirmationModal } from '../ConfirmationModal/ConfirmationModal.js';
|
|
4
|
+
import { useConfirmationPortal } from '../../utils/hooks/useConfirmationPortal/useConfirmationPortal.js';
|
|
5
|
+
import { SessionKeyApprovalView } from '../../views/SessionKeyApprovalView/SessionKeyApprovalView.js';
|
|
6
|
+
|
|
7
|
+
const ZkSyncApprovalModal = ({ session, onCancel, onApproved, }) => {
|
|
8
|
+
const { onSuccess, show, handleOnModalUnmount, closeModal } = useConfirmationPortal({
|
|
9
|
+
defaultErrorMessage: 'User canceled',
|
|
10
|
+
onReject: onCancel,
|
|
11
|
+
onResolve: onApproved,
|
|
12
|
+
});
|
|
13
|
+
return (jsx(ConfirmationModal, { modalId: 'zksync-approval-modal', show: show,
|
|
14
|
+
// Disables the closing by clicking outside the modal
|
|
15
|
+
closeModal: () => { }, handleOnModalUnmount: handleOnModalUnmount, children: jsx(SessionKeyApprovalView, { session: session, onApprove: onSuccess, onReject: closeModal }) }));
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { ZkSyncApprovalModal };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ZkSyncApprovalModal';
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var React = require('react');
|
|
7
|
+
|
|
8
|
+
function _interopNamespace(e) {
|
|
9
|
+
if (e && e.__esModule) return e;
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n["default"] = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
27
|
+
|
|
28
|
+
var _path;
|
|
29
|
+
var _excluded = ["title", "titleId"];
|
|
30
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
|
|
31
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
|
|
32
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
|
|
33
|
+
var SvgBackup = function SvgBackup(_ref) {
|
|
34
|
+
var title = _ref.title,
|
|
35
|
+
titleId = _ref.titleId,
|
|
36
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
37
|
+
return /*#__PURE__*/React__namespace.createElement("svg", _extends({
|
|
38
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
39
|
+
width: 65,
|
|
40
|
+
height: 64,
|
|
41
|
+
viewBox: "0 0 65 64",
|
|
42
|
+
fill: "none",
|
|
43
|
+
"aria-labelledby": titleId
|
|
44
|
+
}, props), title ? /*#__PURE__*/React__namespace.createElement("title", {
|
|
45
|
+
id: titleId
|
|
46
|
+
}, title) : null, _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
|
|
47
|
+
d: "M32.5 0c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32 0-17.673 14.327-32 32-32Zm10.325 34.635a.89.89 0 0 0-1.258-.016l-1.8 1.757a.89.89 0 0 0-.016 1.258l1.758 1.801a.89.89 0 0 0 1.273-1.242l-.338-.346a7.119 7.119 0 1 1-5.245.735.89.89 0 1 0-.886-1.543 8.897 8.897 0 1 0 6.321-.975l.176-.171a.89.89 0 0 0 .015-1.258ZM20.45 15a4.95 4.95 0 0 0-4.95 4.95v23.1A4.95 4.95 0 0 0 20.45 48h8.11a12.481 12.481 0 0 1-.383-3.081c0-6.004 4.247-11.016 9.901-12.194a2.462 2.462 0 0 1 2.172-.256 12.403 12.403 0 0 1 8.25 2.795V26.55a4.95 4.95 0 0 0-4.95-4.95h-23.1a1.65 1.65 0 1 1 0-3.3h19.8a1.65 1.65 0 1 0 0-3.3h-19.8Z",
|
|
48
|
+
fill: "currentColor"
|
|
49
|
+
})));
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
exports.ReactComponent = SvgBackup;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
var _path;
|
|
5
|
+
var _excluded = ["title", "titleId"];
|
|
6
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
|
|
7
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
|
|
8
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
|
|
9
|
+
var SvgBackup = function SvgBackup(_ref) {
|
|
10
|
+
var title = _ref.title,
|
|
11
|
+
titleId = _ref.titleId,
|
|
12
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
13
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
14
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
15
|
+
width: 65,
|
|
16
|
+
height: 64,
|
|
17
|
+
viewBox: "0 0 65 64",
|
|
18
|
+
fill: "none",
|
|
19
|
+
"aria-labelledby": titleId
|
|
20
|
+
}, props), title ? /*#__PURE__*/React.createElement("title", {
|
|
21
|
+
id: titleId
|
|
22
|
+
}, title) : null, _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
23
|
+
d: "M32.5 0c17.673 0 32 14.327 32 32 0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32 0-17.673 14.327-32 32-32Zm10.325 34.635a.89.89 0 0 0-1.258-.016l-1.8 1.757a.89.89 0 0 0-.016 1.258l1.758 1.801a.89.89 0 0 0 1.273-1.242l-.338-.346a7.119 7.119 0 1 1-5.245.735.89.89 0 1 0-.886-1.543 8.897 8.897 0 1 0 6.321-.975l.176-.171a.89.89 0 0 0 .015-1.258ZM20.45 15a4.95 4.95 0 0 0-4.95 4.95v23.1A4.95 4.95 0 0 0 20.45 48h8.11a12.481 12.481 0 0 1-.383-3.081c0-6.004 4.247-11.016 9.901-12.194a2.462 2.462 0 0 1 2.172-.256 12.403 12.403 0 0 1 8.25 2.795V26.55a4.95 4.95 0 0 0-4.95-4.95h-23.1a1.65 1.65 0 1 1 0-3.3h19.8a1.65 1.65 0 1 0 0-3.3h-19.8Z",
|
|
24
|
+
fill: "currentColor"
|
|
25
|
+
})));
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { SvgBackup as ReactComponent };
|