@dynamic-labs/sdk-react-core 0.18.0-beta.30 → 0.18.0-beta.32

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 (43) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +9 -9
  5. package/src/index.cjs +2 -0
  6. package/src/index.js +1 -0
  7. package/src/lib/Main.cjs +5 -0
  8. package/src/lib/Main.js +5 -0
  9. package/src/lib/components/DynamicConnectButton/components/ConnectButton.cjs +1 -1
  10. package/src/lib/components/DynamicConnectButton/components/ConnectButton.js +1 -1
  11. package/src/lib/components/ListTile/ListTile.cjs +1 -1
  12. package/src/lib/components/ListTile/ListTile.js +1 -1
  13. package/src/lib/components/ListTile/ListTile.types.d.ts +1 -0
  14. package/src/lib/components/OTPVerificationView/OTPVerificationView.cjs +5 -3
  15. package/src/lib/components/OTPVerificationView/OTPVerificationView.d.ts +1 -0
  16. package/src/lib/components/OTPVerificationView/OTPVerificationView.js +5 -3
  17. package/src/lib/context/ViewContext/ViewContext.d.ts +1 -1
  18. package/src/lib/data/api.cjs +16 -0
  19. package/src/lib/data/api.d.ts +1 -0
  20. package/src/lib/data/api.js +18 -3
  21. package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +10 -2
  22. package/src/lib/layout/DynamicAuthLayout/Header/header.js +10 -2
  23. package/src/lib/shared/assets/double-arrow-right.cjs +53 -0
  24. package/src/lib/shared/assets/double-arrow-right.js +29 -0
  25. package/src/lib/shared/assets/index.d.ts +1 -0
  26. package/src/lib/styles/index.shadow.cjs +1 -1
  27. package/src/lib/styles/index.shadow.js +1 -1
  28. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +2 -1
  29. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +2 -1
  30. package/src/lib/views/EmailUpdate/EmailUpdate.cjs +8 -2
  31. package/src/lib/views/EmailUpdate/EmailUpdate.js +8 -2
  32. package/src/lib/views/EmailVerification/EmailVerification.cjs +6 -0
  33. package/src/lib/views/EmailVerification/EmailVerification.js +7 -1
  34. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.cjs +3 -2
  35. package/src/lib/views/EmailWalletOTPVerificationView/EmailWalletOTPVerificationView.js +3 -2
  36. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.cjs +1 -1
  37. package/src/lib/views/LoginWithEmailView/components/SocialSignIn/SocialSignIn.js +1 -1
  38. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +107 -0
  39. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.d.ts +2 -0
  40. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +103 -0
  41. package/src/lib/views/MergeUserAccountsView/index.d.ts +1 -0
  42. package/src/lib/views/viewToComponentMap.cjs +2 -0
  43. package/src/lib/views/viewToComponentMap.js +2 -0
package/CHANGELOG.md CHANGED
@@ -1,4 +1,28 @@
1
1
 
2
+ ## [0.18.0-beta.32](https://github.com/dynamic-labs/DynamicAuth/compare/v0.18.0-beta.31...v0.18.0-beta.32) (2023-08-09)
3
+
4
+
5
+ ### Features
6
+
7
+ * disable social buttons after provider is selected ([#2875](https://github.com/dynamic-labs/DynamicAuth/issues/2875)) ([#2881](https://github.com/dynamic-labs/DynamicAuth/issues/2881)) ([8a20409](https://github.com/dynamic-labs/DynamicAuth/commit/8a204095a322872caf6255db40bc10d29047e9a4))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * css variables are being ignored for ConnectButton component ([#2884](https://github.com/dynamic-labs/DynamicAuth/issues/2884)) ([979557e](https://github.com/dynamic-labs/DynamicAuth/commit/979557edf2da81c2681c57e8431a5bf0ed235433))
13
+
14
+ ## [0.18.0-beta.31](https://github.com/dynamic-labs/DynamicAuth/compare/v0.18.0-beta.30...v0.18.0-beta.31) (2023-08-08)
15
+
16
+
17
+ ### Features
18
+
19
+ * **GVTY-65:** allow merging accounts when duplicated email in KYC step ([#2868](https://github.com/dynamic-labs/DynamicAuth/issues/2868)) ([041d0a8](https://github.com/dynamic-labs/DynamicAuth/commit/041d0a809e06a7b1407a46b04722c9ebc4802304))
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * **GVTY-150:** blocto pop up to sign after disconnect ([#2870](https://github.com/dynamic-labs/DynamicAuth/issues/2870)) ([14ccfa0](https://github.com/dynamic-labs/DynamicAuth/commit/14ccfa030dbe8989b9404e2e57ba3f5b50ca88ff))
25
+
2
26
  ## [0.18.0-beta.30](https://github.com/dynamic-labs/DynamicAuth/compare/v0.18.0-beta.29...v0.18.0-beta.30) (2023-08-04)
3
27
 
4
28
  ### Bug Fixes
package/package.cjs CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var version = "0.18.0-beta.30";
5
+ var version = "0.18.0-beta.32";
6
6
  var dependencies = {
7
7
  "react-focus-lock": "2.9.2",
8
8
  "@dynamic-labs/iconic": "0.1.23",
9
- "@dynamic-labs/sdk-api": "0.0.248",
9
+ "@dynamic-labs/sdk-api": "0.0.255",
10
10
  "@hcaptcha/react-hcaptcha": "1.4.4",
11
11
  "country-list": "2.3.0",
12
12
  yup: "0.32.11",
package/package.js CHANGED
@@ -1,8 +1,8 @@
1
- var version = "0.18.0-beta.30";
1
+ var version = "0.18.0-beta.32";
2
2
  var dependencies = {
3
3
  "react-focus-lock": "2.9.2",
4
4
  "@dynamic-labs/iconic": "0.1.23",
5
- "@dynamic-labs/sdk-api": "0.0.248",
5
+ "@dynamic-labs/sdk-api": "0.0.255",
6
6
  "@hcaptcha/react-hcaptcha": "1.4.4",
7
7
  "country-list": "2.3.0",
8
8
  yup: "0.32.11",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "0.18.0-beta.30",
3
+ "version": "0.18.0-beta.32",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dynamic-labs/DynamicAuth.git",
@@ -9,20 +9,20 @@
9
9
  "dependencies": {
10
10
  "react-focus-lock": "2.9.2",
11
11
  "@dynamic-labs/iconic": "0.1.23",
12
- "@dynamic-labs/sdk-api": "0.0.248",
12
+ "@dynamic-labs/sdk-api": "0.0.255",
13
13
  "@hcaptcha/react-hcaptcha": "1.4.4",
14
14
  "country-list": "2.3.0",
15
15
  "yup": "0.32.11",
16
16
  "formik": "2.2.9",
17
17
  "qrcode": "1.5.1",
18
18
  "ethers": "5.7.2",
19
- "@dynamic-labs/logger": "0.18.0-beta.30",
20
- "@dynamic-labs/multi-wallet": "0.18.0-beta.30",
21
- "@dynamic-labs/rpc-providers": "0.18.0-beta.30",
22
- "@dynamic-labs/types": "0.18.0-beta.30",
23
- "@dynamic-labs/utils": "0.18.0-beta.30",
24
- "@dynamic-labs/wallet-book": "0.18.0-beta.30",
25
- "@dynamic-labs/wallet-connector-core": "0.18.0-beta.30",
19
+ "@dynamic-labs/logger": "0.18.0-beta.32",
20
+ "@dynamic-labs/multi-wallet": "0.18.0-beta.32",
21
+ "@dynamic-labs/rpc-providers": "0.18.0-beta.32",
22
+ "@dynamic-labs/types": "0.18.0-beta.32",
23
+ "@dynamic-labs/utils": "0.18.0-beta.32",
24
+ "@dynamic-labs/wallet-book": "0.18.0-beta.32",
25
+ "@dynamic-labs/wallet-connector-core": "0.18.0-beta.32",
26
26
  "eventemitter3": "5.0.1"
27
27
  },
28
28
  "devDependencies": {
package/src/index.cjs CHANGED
@@ -77,6 +77,7 @@ var switchHorizontal = require('./lib/shared/assets/switch-horizontal.cjs');
77
77
  var dotsHorizontal = require('./lib/shared/assets/dots-horizontal.cjs');
78
78
  var send = require('./lib/shared/assets/send.cjs');
79
79
  var questionMark = require('./lib/shared/assets/question-mark.cjs');
80
+ var doubleArrowRight = require('./lib/shared/assets/double-arrow-right.cjs');
80
81
  var index$2 = require('./lib/shared/consts/index.cjs');
81
82
  var logger = require('./lib/shared/logger.cjs');
82
83
  require('./lib/utils/constants/colors.cjs');
@@ -207,6 +208,7 @@ exports.SwitchHorizontalIcon = switchHorizontal.ReactComponent;
207
208
  exports.DotsHorizontalIcon = dotsHorizontal.ReactComponent;
208
209
  exports.SendIcon = send.ReactComponent;
209
210
  exports.QuestionMarkIcon = questionMark.ReactComponent;
211
+ exports.DoubleArrowRightIcon = doubleArrowRight.ReactComponent;
210
212
  exports.authModalZIndex = index$2.authModalZIndex;
211
213
  exports.countryCodes = index$2.countryCodes;
212
214
  exports.defaultWalletsForChains = index$2.defaultWalletsForChains;
package/src/index.js CHANGED
@@ -73,6 +73,7 @@ export { ReactComponent as SwitchHorizontalIcon } from './lib/shared/assets/swit
73
73
  export { ReactComponent as DotsHorizontalIcon } from './lib/shared/assets/dots-horizontal.js';
74
74
  export { ReactComponent as SendIcon } from './lib/shared/assets/send.js';
75
75
  export { ReactComponent as QuestionMarkIcon } from './lib/shared/assets/question-mark.js';
76
+ export { ReactComponent as DoubleArrowRightIcon } from './lib/shared/assets/double-arrow-right.js';
76
77
  export { authModalZIndex, countryCodes, defaultWalletsForChains, tShirtSizes, teamNames, toolkitZIndex, tooltipZIndex, widgetModalZIndex } from './lib/shared/consts/index.js';
77
78
  export { logger } from './lib/shared/logger.js';
78
79
  import './lib/utils/constants/colors.js';
package/src/lib/Main.cjs CHANGED
@@ -54,6 +54,9 @@ var isSelectedWalletAlreadyConnected = require('./utils/functions/isSelectedWall
54
54
  var viewToComponentMap = require('./views/viewToComponentMap.cjs');
55
55
  require('./main.global.cjs');
56
56
 
57
+ const viewsToDisableCloseOnOverlayClick = [
58
+ 'email-wallet-otp-verification-view',
59
+ ];
57
60
  const Main = () => {
58
61
  const { selectedWalletConnector, linkedWallets, isProjectSettingsLoading, projectSettings, setShowAuthFlow, showAuthFlow, wallets, clearStatesOnBackClick, user, unlinkConnectedWallet, authMode, connectedWallets, } = useInternalDynamicContext.useInternalDynamicContext();
59
62
  const { view, goToInitialView } = ViewContext.useViewContext();
@@ -61,6 +64,8 @@ const Main = () => {
61
64
  const { setExistentAccountData } = AccountExistsContext.useAccountExistsContext();
62
65
  usePreventPageScroll.usePreventPageScroll(showAuthFlow);
63
66
  const handleClose = () => {
67
+ if (viewsToDisableCloseOnOverlayClick.includes(view))
68
+ return;
64
69
  setShowAuthFlow(false);
65
70
  setDeniedAddress('');
66
71
  setDeniedOauthProvider(undefined);
package/src/lib/Main.js CHANGED
@@ -50,6 +50,9 @@ import { isSelectedWalletAlreadyConnected } from './utils/functions/isSelectedWa
50
50
  import { viewToComponentMap } from './views/viewToComponentMap.js';
51
51
  import './main.global.js';
52
52
 
53
+ const viewsToDisableCloseOnOverlayClick = [
54
+ 'email-wallet-otp-verification-view',
55
+ ];
53
56
  const Main = () => {
54
57
  const { selectedWalletConnector, linkedWallets, isProjectSettingsLoading, projectSettings, setShowAuthFlow, showAuthFlow, wallets, clearStatesOnBackClick, user, unlinkConnectedWallet, authMode, connectedWallets, } = useInternalDynamicContext();
55
58
  const { view, goToInitialView } = useViewContext();
@@ -57,6 +60,8 @@ const Main = () => {
57
60
  const { setExistentAccountData } = useAccountExistsContext();
58
61
  usePreventPageScroll(showAuthFlow);
59
62
  const handleClose = () => {
63
+ if (viewsToDisableCloseOnOverlayClick.includes(view))
64
+ return;
60
65
  setShowAuthFlow(false);
61
66
  setDeniedAddress('');
62
67
  setDeniedOauthProvider(undefined);
@@ -6,6 +6,6 @@ var jsxRuntime = require('react/jsx-runtime');
6
6
  var Button = require('../../Button/Button.cjs');
7
7
  var classNames = require('../../../utils/functions/classNames/classNames.cjs');
8
8
 
9
- const ConnectButton = ({ buttonClassName, buttonContainerClassName, onClick, isActive, isLoading, children, }) => (jsxRuntime.jsx("div", Object.assign({ className: buttonContainerClassName }, { children: jsxRuntime.jsx(Button.Button, Object.assign({ dataTestId: 'ConnectButton', onClick: onClick, buttonClassName: classNames.classNames('connect-button', buttonClassName), loading: isLoading && isActive, disabled: isLoading && isActive, buttonVariant: 'primary', buttonPadding: 'large', buttonRounded: 'default' }, { children: children })) })));
9
+ const ConnectButton = ({ buttonClassName, buttonContainerClassName, onClick, isActive, isLoading, children, }) => (jsxRuntime.jsx("div", Object.assign({ className: buttonContainerClassName }, { children: jsxRuntime.jsx(Button.Button, Object.assign({ dataTestId: 'ConnectButton', onClick: onClick, buttonClassName: classNames.classNames('connect-button', buttonClassName), loading: isLoading && isActive, disabled: isLoading && isActive, buttonVariant: 'primary', buttonPadding: 'large' }, { children: children })) })));
10
10
 
11
11
  exports.ConnectButton = ConnectButton;
@@ -2,6 +2,6 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { Button } from '../../Button/Button.js';
3
3
  import { classNames } from '../../../utils/functions/classNames/classNames.js';
4
4
 
5
- const ConnectButton = ({ buttonClassName, buttonContainerClassName, onClick, isActive, isLoading, children, }) => (jsx("div", Object.assign({ className: buttonContainerClassName }, { children: jsx(Button, Object.assign({ dataTestId: 'ConnectButton', onClick: onClick, buttonClassName: classNames('connect-button', buttonClassName), loading: isLoading && isActive, disabled: isLoading && isActive, buttonVariant: 'primary', buttonPadding: 'large', buttonRounded: 'default' }, { children: children })) })));
5
+ const ConnectButton = ({ buttonClassName, buttonContainerClassName, onClick, isActive, isLoading, children, }) => (jsx("div", Object.assign({ className: buttonContainerClassName }, { children: jsx(Button, Object.assign({ dataTestId: 'ConnectButton', onClick: onClick, buttonClassName: classNames('connect-button', buttonClassName), loading: isLoading && isActive, disabled: isLoading && isActive, buttonVariant: 'primary', buttonPadding: 'large' }, { children: children })) })));
6
6
 
7
7
  export { ConnectButton };
@@ -6,6 +6,6 @@ var jsxRuntime = require('react/jsx-runtime');
6
6
  var classNames = require('../../utils/functions/classNames/classNames.cjs');
7
7
  var Typography = require('../Typography/Typography.cjs');
8
8
 
9
- const ListTile = ({ children, onClick, leading, trailing, style, className = '', dataTestId, }) => (jsxRuntime.jsxs("button", Object.assign({ "data-testid": dataTestId, type: 'button', className: classNames.classNames(className, 'list-tile'), onClick: onClick, style: style }, { children: [leading, jsxRuntime.jsx("div", Object.assign({ className: 'list-tile__children' }, { children: jsxRuntime.jsx(Typography.Typography, Object.assign({ weight: 'medium', variant: 'body_normal', color: 'primary', as: 'span' }, { children: children })) })), trailing] })));
9
+ const ListTile = ({ children, onClick, leading, disabled = false, trailing, style, className = '', dataTestId, }) => (jsxRuntime.jsxs("button", Object.assign({ "data-testid": dataTestId, type: 'button', className: classNames.classNames(className, 'list-tile'), onClick: onClick, style: style, disabled: disabled }, { children: [leading, jsxRuntime.jsx("div", Object.assign({ className: 'list-tile__children' }, { children: jsxRuntime.jsx(Typography.Typography, Object.assign({ weight: 'medium', variant: 'body_normal', color: 'primary', as: 'span' }, { children: children })) })), trailing] })));
10
10
 
11
11
  exports.ListTile = ListTile;
@@ -2,6 +2,6 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { classNames } from '../../utils/functions/classNames/classNames.js';
3
3
  import { Typography } from '../Typography/Typography.js';
4
4
 
5
- const ListTile = ({ children, onClick, leading, trailing, style, className = '', dataTestId, }) => (jsxs("button", Object.assign({ "data-testid": dataTestId, type: 'button', className: classNames(className, 'list-tile'), onClick: onClick, style: style }, { children: [leading, jsx("div", Object.assign({ className: 'list-tile__children' }, { children: jsx(Typography, Object.assign({ weight: 'medium', variant: 'body_normal', color: 'primary', as: 'span' }, { children: children })) })), trailing] })));
5
+ const ListTile = ({ children, onClick, leading, disabled = false, trailing, style, className = '', dataTestId, }) => (jsxs("button", Object.assign({ "data-testid": dataTestId, type: 'button', className: classNames(className, 'list-tile'), onClick: onClick, style: style, disabled: disabled }, { children: [leading, jsx("div", Object.assign({ className: 'list-tile__children' }, { children: jsx(Typography, Object.assign({ weight: 'medium', variant: 'body_normal', color: 'primary', as: 'span' }, { children: children })) })), trailing] })));
6
6
 
7
7
  export { ListTile };
@@ -4,6 +4,7 @@ export type ListTileProps = {
4
4
  dataTestId?: string;
5
5
  leading?: ReactNode;
6
6
  onClick?: MouseEventHandler<HTMLButtonElement>;
7
+ disabled?: boolean;
7
8
  style?: CSSProperties;
8
9
  trailing?: ReactNode;
9
10
  };
@@ -10,6 +10,7 @@ require('@dynamic-labs/sdk-api');
10
10
  require('../../shared/logger.cjs');
11
11
  require('@dynamic-labs/wallet-connector-core');
12
12
  require('../../context/ViewContext/ViewContext.cjs');
13
+ var close = require('../../shared/assets/close.cjs');
13
14
  var chevronLeft = require('../../shared/assets/chevron-left.cjs');
14
15
  var check = require('../../shared/assets/check.cjs');
15
16
  var pencilAltIcon = require('../../shared/assets/pencil-alt-icon.cjs');
@@ -54,9 +55,10 @@ require('yup');
54
55
  require('../InlineWidget/InlineWidget.cjs');
55
56
  require('../MenuList/Dropdown/Dropdown.cjs');
56
57
 
57
- const OTPVerificationView = ({ onClickBack, onClickEditEmail, isLoading, email, onPinComplete, isValid, error, onPinChange, displayPoweredByDynamic = false, }) => {
58
- const backButton = (jsxRuntime.jsx(IconButton.IconButton, Object.assign({ type: 'button', onClick: onClickBack, "data-testid": 'back-button' }, { children: jsxRuntime.jsx(chevronLeft.ReactComponent, {}) })));
59
- return (jsxRuntime.jsxs("div", Object.assign({ className: 'otp-verification-view' }, { children: [jsxRuntime.jsx(ModalHeaderBanner.ModalHeaderBanner, { type: 'error', message: error === null || error === void 0 ? void 0 : error.message }), jsxRuntime.jsx(ModalHeader.ModalHeader, Object.assign({ alignContent: 'bottom', leading: onClickBack && backButton }, { children: jsxRuntime.jsxs("div", Object.assign({ className: 'otp-verification-view__status-header' }, { children: [isValid && (jsxRuntime.jsx(IconWithStatus.IconWithStatus, { Icon: iconic.SignInWithEmailIcon, iconSize: 50, InnerIcon: check.ReactComponent })), !isValid && (jsxRuntime.jsx(IconWithSpinner.IconWithSpinner, { Icon: iconic.SignInWithEmailIcon, iconSize: 80, isSpinning: isLoading }))] })) })), jsxRuntime.jsx(Typography.Typography, Object.assign({ weight: 'medium', variant: 'title', color: 'primary', className: 'otp-verification-view__title' }, { children: isValid ? 'Verification code confirmed' : 'Confirm verification code' })), jsxRuntime.jsxs("div", Object.assign({ className: 'otp-verification-view__body' }, { children: [isValid && (jsxRuntime.jsx(Typography.Typography, Object.assign({ variant: 'body_normal', weight: 'regular', color: 'secondary' }, { children: "Hang tight while we get things ready for you" }))), !isValid && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Typography.Typography, Object.assign({ variant: 'body_normal', weight: 'regular', color: 'secondary' }, { children: "We\u2019ve sent a verification code to" })), jsxRuntime.jsxs("div", Object.assign({ className: 'otp-verification-view__email-container' }, { children: [jsxRuntime.jsx(Typography.Typography, Object.assign({ variant: 'body_normal', weight: 'bold', color: 'secondary' }, { children: shortenEmail.shortenEmail(email) })), onClickEditEmail && (jsxRuntime.jsx(IconButton.IconButton, Object.assign({ onClick: onClickEditEmail, "data-testid": 'otp-verification-view__edit-button' }, { children: jsxRuntime.jsx(Icon.Icon, Object.assign({ color: 'text-tertiary' }, { children: jsxRuntime.jsx(pencilAltIcon.ReactComponent, {}) })) })))] }))] }))] })), jsxRuntime.jsx(PinField.PinField, { initialValue: Array(6).join('.').split('.'), isLoading: isLoading, handleComplete: onPinComplete, isValidated: isValid, inputMode: 'numeric', pattern: '[0-9]*', hasError: Boolean(error), onChange: onPinChange }), jsxRuntime.jsx("div", Object.assign({ className: 'otp-verification-view__footer' }, { children: displayPoweredByDynamic && jsxRuntime.jsx(PoweredByDynamic.PoweredByDynamic, {}) }))] })));
58
+ const OTPVerificationView = ({ onClickBack, onClickEditEmail, isLoading, email, onPinComplete, isValid, error, onPinChange, onClickClose, displayPoweredByDynamic = false, }) => {
59
+ const backButton = onClickBack && (jsxRuntime.jsx(IconButton.IconButton, Object.assign({ type: 'button', onClick: onClickBack, "data-testid": 'back-button' }, { children: jsxRuntime.jsx(chevronLeft.ReactComponent, {}) })));
60
+ const closeButton = (jsxRuntime.jsx(IconButton.IconButton, Object.assign({ onClick: onClickClose, type: 'button', "data-testid": 'close-button' }, { children: jsxRuntime.jsx(close.ReactComponent, {}) })));
61
+ return (jsxRuntime.jsxs("div", Object.assign({ className: 'otp-verification-view' }, { children: [jsxRuntime.jsx(ModalHeaderBanner.ModalHeaderBanner, { type: 'error', message: error === null || error === void 0 ? void 0 : error.message }), jsxRuntime.jsx(ModalHeader.ModalHeader, Object.assign({ alignContent: 'bottom', leading: onClickBack && backButton, trailing: onClickClose && closeButton }, { children: jsxRuntime.jsxs("div", Object.assign({ className: 'otp-verification-view__status-header' }, { children: [isValid && (jsxRuntime.jsx(IconWithStatus.IconWithStatus, { Icon: iconic.SignInWithEmailIcon, iconSize: 50, InnerIcon: check.ReactComponent })), !isValid && (jsxRuntime.jsx(IconWithSpinner.IconWithSpinner, { Icon: iconic.SignInWithEmailIcon, iconSize: 80, isSpinning: isLoading }))] })) })), jsxRuntime.jsx(Typography.Typography, Object.assign({ weight: 'medium', variant: 'title', color: 'primary', className: 'otp-verification-view__title' }, { children: isValid ? 'Verification code confirmed' : 'Confirm verification code' })), jsxRuntime.jsxs("div", Object.assign({ className: 'otp-verification-view__body' }, { children: [isValid && (jsxRuntime.jsx(Typography.Typography, Object.assign({ variant: 'body_normal', weight: 'regular', color: 'secondary' }, { children: "Hang tight while we get things ready for you" }))), !isValid && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Typography.Typography, Object.assign({ variant: 'body_normal', weight: 'regular', color: 'secondary' }, { children: "We\u2019ve sent a verification code to" })), jsxRuntime.jsxs("div", Object.assign({ className: 'otp-verification-view__email-container' }, { children: [jsxRuntime.jsx(Typography.Typography, Object.assign({ variant: 'body_normal', weight: 'bold', color: 'secondary' }, { children: shortenEmail.shortenEmail(email) })), onClickEditEmail && (jsxRuntime.jsx(IconButton.IconButton, Object.assign({ onClick: onClickEditEmail, "data-testid": 'otp-verification-view__edit-button' }, { children: jsxRuntime.jsx(Icon.Icon, Object.assign({ color: 'text-tertiary' }, { children: jsxRuntime.jsx(pencilAltIcon.ReactComponent, {}) })) })))] }))] }))] })), jsxRuntime.jsx(PinField.PinField, { initialValue: Array(6).join('.').split('.'), isLoading: isLoading, handleComplete: onPinComplete, isValidated: isValid, inputMode: 'numeric', pattern: '[0-9]*', hasError: Boolean(error), onChange: onPinChange }), jsxRuntime.jsx("div", Object.assign({ className: 'otp-verification-view__footer' }, { children: displayPoweredByDynamic && jsxRuntime.jsx(PoweredByDynamic.PoweredByDynamic, {}) }))] })));
60
62
  };
61
63
 
62
64
  exports.OTPVerificationView = OTPVerificationView;
@@ -6,6 +6,7 @@ type OtpVerificationLayoutProps = {
6
6
  isLoading: boolean;
7
7
  isValid: boolean;
8
8
  onClickBack?: MouseEventHandler<HTMLButtonElement>;
9
+ onClickClose?: MouseEventHandler<HTMLButtonElement>;
9
10
  onClickEditEmail?: MouseEventHandler<HTMLButtonElement>;
10
11
  onPinChange?: (value: string) => void;
11
12
  onPinComplete: (value: string) => void;
@@ -6,6 +6,7 @@ import '@dynamic-labs/sdk-api';
6
6
  import '../../shared/logger.js';
7
7
  import '@dynamic-labs/wallet-connector-core';
8
8
  import '../../context/ViewContext/ViewContext.js';
9
+ import { ReactComponent as SvgClose } from '../../shared/assets/close.js';
9
10
  import { ReactComponent as SvgChevronLeft } from '../../shared/assets/chevron-left.js';
10
11
  import { ReactComponent as SvgCheck } from '../../shared/assets/check.js';
11
12
  import { ReactComponent as SvgPencilAltIcon } from '../../shared/assets/pencil-alt-icon.js';
@@ -50,9 +51,10 @@ import 'yup';
50
51
  import '../InlineWidget/InlineWidget.js';
51
52
  import '../MenuList/Dropdown/Dropdown.js';
52
53
 
53
- const OTPVerificationView = ({ onClickBack, onClickEditEmail, isLoading, email, onPinComplete, isValid, error, onPinChange, displayPoweredByDynamic = false, }) => {
54
- const backButton = (jsx(IconButton, Object.assign({ type: 'button', onClick: onClickBack, "data-testid": 'back-button' }, { children: jsx(SvgChevronLeft, {}) })));
55
- return (jsxs("div", Object.assign({ className: 'otp-verification-view' }, { children: [jsx(ModalHeaderBanner, { type: 'error', message: error === null || error === void 0 ? void 0 : error.message }), jsx(ModalHeader, Object.assign({ alignContent: 'bottom', leading: onClickBack && backButton }, { children: jsxs("div", Object.assign({ className: 'otp-verification-view__status-header' }, { children: [isValid && (jsx(IconWithStatus, { Icon: SignInWithEmailIcon, iconSize: 50, InnerIcon: SvgCheck })), !isValid && (jsx(IconWithSpinner, { Icon: SignInWithEmailIcon, iconSize: 80, isSpinning: isLoading }))] })) })), jsx(Typography, Object.assign({ weight: 'medium', variant: 'title', color: 'primary', className: 'otp-verification-view__title' }, { children: isValid ? 'Verification code confirmed' : 'Confirm verification code' })), jsxs("div", Object.assign({ className: 'otp-verification-view__body' }, { children: [isValid && (jsx(Typography, Object.assign({ variant: 'body_normal', weight: 'regular', color: 'secondary' }, { children: "Hang tight while we get things ready for you" }))), !isValid && (jsxs(Fragment, { children: [jsx(Typography, Object.assign({ variant: 'body_normal', weight: 'regular', color: 'secondary' }, { children: "We\u2019ve sent a verification code to" })), jsxs("div", Object.assign({ className: 'otp-verification-view__email-container' }, { children: [jsx(Typography, Object.assign({ variant: 'body_normal', weight: 'bold', color: 'secondary' }, { children: shortenEmail(email) })), onClickEditEmail && (jsx(IconButton, Object.assign({ onClick: onClickEditEmail, "data-testid": 'otp-verification-view__edit-button' }, { children: jsx(Icon, Object.assign({ color: 'text-tertiary' }, { children: jsx(SvgPencilAltIcon, {}) })) })))] }))] }))] })), jsx(PinField, { initialValue: Array(6).join('.').split('.'), isLoading: isLoading, handleComplete: onPinComplete, isValidated: isValid, inputMode: 'numeric', pattern: '[0-9]*', hasError: Boolean(error), onChange: onPinChange }), jsx("div", Object.assign({ className: 'otp-verification-view__footer' }, { children: displayPoweredByDynamic && jsx(PoweredByDynamic, {}) }))] })));
54
+ const OTPVerificationView = ({ onClickBack, onClickEditEmail, isLoading, email, onPinComplete, isValid, error, onPinChange, onClickClose, displayPoweredByDynamic = false, }) => {
55
+ const backButton = onClickBack && (jsx(IconButton, Object.assign({ type: 'button', onClick: onClickBack, "data-testid": 'back-button' }, { children: jsx(SvgChevronLeft, {}) })));
56
+ const closeButton = (jsx(IconButton, Object.assign({ onClick: onClickClose, type: 'button', "data-testid": 'close-button' }, { children: jsx(SvgClose, {}) })));
57
+ return (jsxs("div", Object.assign({ className: 'otp-verification-view' }, { children: [jsx(ModalHeaderBanner, { type: 'error', message: error === null || error === void 0 ? void 0 : error.message }), jsx(ModalHeader, Object.assign({ alignContent: 'bottom', leading: onClickBack && backButton, trailing: onClickClose && closeButton }, { children: jsxs("div", Object.assign({ className: 'otp-verification-view__status-header' }, { children: [isValid && (jsx(IconWithStatus, { Icon: SignInWithEmailIcon, iconSize: 50, InnerIcon: SvgCheck })), !isValid && (jsx(IconWithSpinner, { Icon: SignInWithEmailIcon, iconSize: 80, isSpinning: isLoading }))] })) })), jsx(Typography, Object.assign({ weight: 'medium', variant: 'title', color: 'primary', className: 'otp-verification-view__title' }, { children: isValid ? 'Verification code confirmed' : 'Confirm verification code' })), jsxs("div", Object.assign({ className: 'otp-verification-view__body' }, { children: [isValid && (jsx(Typography, Object.assign({ variant: 'body_normal', weight: 'regular', color: 'secondary' }, { children: "Hang tight while we get things ready for you" }))), !isValid && (jsxs(Fragment, { children: [jsx(Typography, Object.assign({ variant: 'body_normal', weight: 'regular', color: 'secondary' }, { children: "We\u2019ve sent a verification code to" })), jsxs("div", Object.assign({ className: 'otp-verification-view__email-container' }, { children: [jsx(Typography, Object.assign({ variant: 'body_normal', weight: 'bold', color: 'secondary' }, { children: shortenEmail(email) })), onClickEditEmail && (jsx(IconButton, Object.assign({ onClick: onClickEditEmail, "data-testid": 'otp-verification-view__edit-button' }, { children: jsx(Icon, Object.assign({ color: 'text-tertiary' }, { children: jsx(SvgPencilAltIcon, {}) })) })))] }))] }))] })), jsx(PinField, { initialValue: Array(6).join('.').split('.'), isLoading: isLoading, handleComplete: onPinComplete, isValidated: isValid, inputMode: 'numeric', pattern: '[0-9]*', hasError: Boolean(error), onChange: onPinChange }), jsx("div", Object.assign({ className: 'otp-verification-view__footer' }, { children: displayPoweredByDynamic && jsx(PoweredByDynamic, {}) }))] })));
56
58
  };
57
59
 
58
60
  export { OTPVerificationView };
@@ -1,5 +1,5 @@
1
1
  import { SetStateAction, Dispatch, PropsWithChildren, FC } from 'react';
2
- export type ViewType = 'captcha' | 'chainalysis-blocked-wallet' | 'collect-user-data' | 'collect-user-data-login-with-email' | 'login-with-email-or-wallet-full-wallet-list' | 'login-with-email-or-wallet' | 'login-with-email-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' | 'update-email' | 'verify-email' | 'wallet-connect-mobile-wallets-list' | 'wallet-list' | 'wallet-sign' | 'wallet-used' | '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';
2
+ export type ViewType = 'captcha' | 'chainalysis-blocked-wallet' | 'collect-user-data' | 'collect-user-data-login-with-email' | 'login-with-email-or-wallet-full-wallet-list' | 'login-with-email-or-wallet' | 'login-with-email-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' | 'update-email' | 'verify-email' | 'wallet-connect-mobile-wallets-list' | 'wallet-list' | 'wallet-sign' | 'wallet-used' | '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';
3
3
  export type ViewContextProps = {
4
4
  setView: Dispatch<SetStateAction<ViewType>>;
5
5
  view: ViewType;
@@ -128,6 +128,9 @@ const verifyEmail = ({ verificationToken, verificationUUID, environmentId, }, us
128
128
  catch (e) {
129
129
  const data = yield e.json();
130
130
  logger.logger.error(data.error);
131
+ if (data.code === sdkApi$1.UnprocessableEntityErrorCode.UserHasAlreadyAccountWithEmail) {
132
+ throw new utils.UserHasAccountWithEmailError(data.error);
133
+ }
131
134
  throw new utils.EmailVerificationError(data.code);
132
135
  }
133
136
  });
@@ -396,6 +399,18 @@ const sendDynamicProps = (environmentId, settingsToSend) => _tslib.__awaiter(voi
396
399
  catch (e) {
397
400
  logger.logger.error(e);
398
401
  }
402
+ });
403
+ const mergeUserAccounts = (userJwt, environmentId) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
404
+ try {
405
+ const { jwt } = yield sdkApi(userJwt).mergeUsers({
406
+ environmentId,
407
+ });
408
+ return jwt;
409
+ }
410
+ catch (e) {
411
+ logger.logger.error(e);
412
+ throw e;
413
+ }
399
414
  });
400
415
 
401
416
  exports.createEmailVerification = createEmailVerification;
@@ -409,6 +424,7 @@ exports.linkWallet = linkWallet;
409
424
  exports.mapAuthModeTypeToEnum = mapAuthModeTypeToEnum;
410
425
  exports.mapChainToChainEnum = mapChainToChainEnum;
411
426
  exports.mapProviderToProviderEnum = mapProviderToProviderEnum;
427
+ exports.mergeUserAccounts = mergeUserAccounts;
412
428
  exports.retryEmailVerification = retryEmailVerification;
413
429
  exports.revokeSession = revokeSession;
414
430
  exports.sendDynamicProps = sendDynamicProps;
@@ -66,3 +66,4 @@ export declare const sendDynamicProps: (environmentId: string, settingsToSend: {
66
66
  dynamicContextProps?: object;
67
67
  dynamicWagmiSettings?: object;
68
68
  }) => Promise<void>;
69
+ export declare const mergeUserAccounts: (userJwt: string, environmentId: string) => Promise<string | undefined>;
@@ -1,6 +1,6 @@
1
1
  import { __awaiter } from '../../../_virtual/_tslib.js';
2
- import { NoAccessError, AccountExistsError, EmailVerificationError, DynamicError, EmailAlreadyExistsError, UsernameAlreadyExistsError, EmailProviderError, WalletUsedError, WalletNotDeployedError, ChainalysisError, GateBlockedError } from '@dynamic-labs/utils';
3
- import { SDKApi, Configuration, VerifyRequestFromJSON, ChainEnum, WalletProviderEnum, AuthModeEnum } from '@dynamic-labs/sdk-api';
2
+ import { NoAccessError, AccountExistsError, EmailVerificationError, UserHasAccountWithEmailError, DynamicError, EmailAlreadyExistsError, UsernameAlreadyExistsError, EmailProviderError, WalletUsedError, WalletNotDeployedError, ChainalysisError, GateBlockedError } from '@dynamic-labs/utils';
3
+ import { UnprocessableEntityErrorCode, SDKApi, Configuration, VerifyRequestFromJSON, ChainEnum, WalletProviderEnum, AuthModeEnum } from '@dynamic-labs/sdk-api';
4
4
  import { VERSION, API_VERSION } from '../../version.js';
5
5
  import ApiEndpoint from '../config/ApiEndpoint.js';
6
6
  import { logger } from '../shared/logger.js';
@@ -124,6 +124,9 @@ const verifyEmail = ({ verificationToken, verificationUUID, environmentId, }, us
124
124
  catch (e) {
125
125
  const data = yield e.json();
126
126
  logger.error(data.error);
127
+ if (data.code === UnprocessableEntityErrorCode.UserHasAlreadyAccountWithEmail) {
128
+ throw new UserHasAccountWithEmailError(data.error);
129
+ }
127
130
  throw new EmailVerificationError(data.code);
128
131
  }
129
132
  });
@@ -392,6 +395,18 @@ const sendDynamicProps = (environmentId, settingsToSend) => __awaiter(void 0, vo
392
395
  catch (e) {
393
396
  logger.error(e);
394
397
  }
398
+ });
399
+ const mergeUserAccounts = (userJwt, environmentId) => __awaiter(void 0, void 0, void 0, function* () {
400
+ try {
401
+ const { jwt } = yield sdkApi(userJwt).mergeUsers({
402
+ environmentId,
403
+ });
404
+ return jwt;
405
+ }
406
+ catch (e) {
407
+ logger.error(e);
408
+ throw e;
409
+ }
395
410
  });
396
411
 
397
- export { createEmailVerification, createVisit, fetchNetworkSettings, fetchNonce, fetchProjectSettings, getEmailProvider, getOnrampProviders, linkWallet, mapAuthModeTypeToEnum, mapChainToChainEnum, mapProviderToProviderEnum, retryEmailVerification, revokeSession, sendDynamicProps, signInWithEmailVerification, transferWallet, unlinkOAuth, unlinkWallet, updateUserProfileFields, verifyEmail, verifyOAuth, verifyWallet };
412
+ export { createEmailVerification, createVisit, fetchNetworkSettings, fetchNonce, fetchProjectSettings, getEmailProvider, getOnrampProviders, linkWallet, mapAuthModeTypeToEnum, mapChainToChainEnum, mapProviderToProviderEnum, mergeUserAccounts, retryEmailVerification, revokeSession, sendDynamicProps, signInWithEmailVerification, transferWallet, unlinkOAuth, unlinkWallet, updateUserProfileFields, verifyEmail, verifyOAuth, verifyWallet };
@@ -32,7 +32,7 @@ require('../../../components/Transition/OpacityTransition/OpacityTransition.cjs'
32
32
  require('../../../config/ApiEndpoint.cjs');
33
33
  require('@dynamic-labs/rpc-providers');
34
34
  require('../../../utils/hooks/useWallets/utils/verifyMagicIsSetup/verifyMagicIsSetup.cjs');
35
- require('../../../context/ErrorContext/ErrorContext.cjs');
35
+ var ErrorContext = require('../../../context/ErrorContext/ErrorContext.cjs');
36
36
  require('../../../context/AccessDeniedContext/AccessDeniedContext.cjs');
37
37
  var AccountExistsContext = require('../../../context/AccountExistsContext/AccountExistsContext.cjs');
38
38
  var ModalHeader = require('../../../components/ModalHeader/ModalHeader.cjs');
@@ -55,6 +55,7 @@ var index = require('../../../context/FooterAnimationContext/index.cjs');
55
55
 
56
56
  const Header = ({ onClose: handleClose, heading, projectSettings, walletConnector, }) => {
57
57
  const { clearStatesOnBackClick, selectedWalletConnector } = useInternalDynamicContext.useInternalDynamicContext();
58
+ const { setError } = ErrorContext.useErrorContext();
58
59
  const { setShowQrCodeImage } = QrCodeContext.useQrCodeContext();
59
60
  const { isFooterExpanded, setIsFooterExpanded } = index.useFooterAnimationContext();
60
61
  const { view, goToInitialView } = ViewContext.useViewContext();
@@ -63,11 +64,18 @@ const Header = ({ onClose: handleClose, heading, projectSettings, walletConnecto
63
64
  const handleBackClick = React.useCallback(() => {
64
65
  goToInitialView();
65
66
  setExistentAccountData(undefined);
67
+ setError(undefined);
66
68
  // on back button click in Coinbase wallet clearing state would kill connection and refresh the page
67
69
  if ((selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.name) !== 'Coinbase') {
68
70
  clearStatesOnBackClick();
69
71
  }
70
- }, [clearStatesOnBackClick, selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.name, goToInitialView]);
72
+ }, [
73
+ goToInitialView,
74
+ setExistentAccountData,
75
+ setError,
76
+ selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.name,
77
+ clearStatesOnBackClick,
78
+ ]);
71
79
  const leadingButtons = React.useMemo(() => {
72
80
  let buttons = [];
73
81
  if (showBackButton) {
@@ -28,7 +28,7 @@ import '../../../components/Transition/OpacityTransition/OpacityTransition.js';
28
28
  import '../../../config/ApiEndpoint.js';
29
29
  import '@dynamic-labs/rpc-providers';
30
30
  import '../../../utils/hooks/useWallets/utils/verifyMagicIsSetup/verifyMagicIsSetup.js';
31
- import '../../../context/ErrorContext/ErrorContext.js';
31
+ import { useErrorContext } from '../../../context/ErrorContext/ErrorContext.js';
32
32
  import '../../../context/AccessDeniedContext/AccessDeniedContext.js';
33
33
  import { useAccountExistsContext } from '../../../context/AccountExistsContext/AccountExistsContext.js';
34
34
  import { ModalHeader } from '../../../components/ModalHeader/ModalHeader.js';
@@ -51,6 +51,7 @@ import { useFooterAnimationContext } from '../../../context/FooterAnimationConte
51
51
 
52
52
  const Header = ({ onClose: handleClose, heading, projectSettings, walletConnector, }) => {
53
53
  const { clearStatesOnBackClick, selectedWalletConnector } = useInternalDynamicContext();
54
+ const { setError } = useErrorContext();
54
55
  const { setShowQrCodeImage } = useQrCodeContext();
55
56
  const { isFooterExpanded, setIsFooterExpanded } = useFooterAnimationContext();
56
57
  const { view, goToInitialView } = useViewContext();
@@ -59,11 +60,18 @@ const Header = ({ onClose: handleClose, heading, projectSettings, walletConnecto
59
60
  const handleBackClick = useCallback(() => {
60
61
  goToInitialView();
61
62
  setExistentAccountData(undefined);
63
+ setError(undefined);
62
64
  // on back button click in Coinbase wallet clearing state would kill connection and refresh the page
63
65
  if ((selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.name) !== 'Coinbase') {
64
66
  clearStatesOnBackClick();
65
67
  }
66
- }, [clearStatesOnBackClick, selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.name, goToInitialView]);
68
+ }, [
69
+ goToInitialView,
70
+ setExistentAccountData,
71
+ setError,
72
+ selectedWalletConnector === null || selectedWalletConnector === void 0 ? void 0 : selectedWalletConnector.name,
73
+ clearStatesOnBackClick,
74
+ ]);
67
75
  const leadingButtons = useMemo(() => {
68
76
  let buttons = [];
69
77
  if (showBackButton) {
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ function _interopNamespace(e) {
8
+ if (e && e.__esModule) return e;
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n["default"] = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
+
27
+ var _path;
28
+ var _excluded = ["title", "titleId"];
29
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
30
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
31
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
32
+ var SvgDoubleArrowRight = function SvgDoubleArrowRight(_ref) {
33
+ var title = _ref.title,
34
+ titleId = _ref.titleId,
35
+ props = _objectWithoutProperties(_ref, _excluded);
36
+ return /*#__PURE__*/React__namespace.createElement("svg", _extends({
37
+ width: 16,
38
+ height: 16,
39
+ viewBox: "0 0 16 16",
40
+ fill: "none",
41
+ xmlns: "http://www.w3.org/2000/svg",
42
+ "aria-labelledby": titleId
43
+ }, props), title ? /*#__PURE__*/React__namespace.createElement("title", {
44
+ id: titleId
45
+ }, title) : null, _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
46
+ fillRule: "evenodd",
47
+ clipRule: "evenodd",
48
+ d: "M2.862 2.862c.26-.26.682-.26.943 0L8.47 7.529a.667.667 0 0 1 0 .942l-4.666 4.667a.667.667 0 0 1-.943-.943L7.057 8 2.862 3.805a.667.667 0 0 1 0-.943Zm5.333 0c.26-.26.683-.26.943 0l4.667 4.667c.26.26.26.682 0 .942l-4.667 4.667a.667.667 0 0 1-.943-.943L12.39 8 8.195 3.805a.667.667 0 0 1 0-.943Z",
49
+ fill: "currentColor"
50
+ })));
51
+ };
52
+
53
+ exports.ReactComponent = SvgDoubleArrowRight;
@@ -0,0 +1,29 @@
1
+ import * as React from 'react';
2
+
3
+ var _path;
4
+ var _excluded = ["title", "titleId"];
5
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
6
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
7
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
8
+ var SvgDoubleArrowRight = function SvgDoubleArrowRight(_ref) {
9
+ var title = _ref.title,
10
+ titleId = _ref.titleId,
11
+ props = _objectWithoutProperties(_ref, _excluded);
12
+ return /*#__PURE__*/React.createElement("svg", _extends({
13
+ width: 16,
14
+ height: 16,
15
+ viewBox: "0 0 16 16",
16
+ fill: "none",
17
+ xmlns: "http://www.w3.org/2000/svg",
18
+ "aria-labelledby": titleId
19
+ }, props), title ? /*#__PURE__*/React.createElement("title", {
20
+ id: titleId
21
+ }, title) : null, _path || (_path = /*#__PURE__*/React.createElement("path", {
22
+ fillRule: "evenodd",
23
+ clipRule: "evenodd",
24
+ d: "M2.862 2.862c.26-.26.682-.26.943 0L8.47 7.529a.667.667 0 0 1 0 .942l-4.666 4.667a.667.667 0 0 1-.943-.943L7.057 8 2.862 3.805a.667.667 0 0 1 0-.943Zm5.333 0c.26-.26.683-.26.943 0l4.667 4.667c.26.26.26.682 0 .942l-4.667 4.667a.667.667 0 0 1-.943-.943L12.39 8 8.195 3.805a.667.667 0 0 1 0-.943Z",
25
+ fill: "currentColor"
26
+ })));
27
+ };
28
+
29
+ export { SvgDoubleArrowRight as ReactComponent };
@@ -34,3 +34,4 @@ export { ReactComponent as SwitchHorizontalIcon } from './switch-horizontal.svg'
34
34
  export { ReactComponent as DotsHorizontalIcon } from './dots-horizontal.svg';
35
35
  export { ReactComponent as SendIcon } from './send.svg';
36
36
  export { ReactComponent as QuestionMarkIcon } from './question-mark.svg';
37
+ export { ReactComponent as DoubleArrowRightIcon } from './double-arrow-right.svg';