@dynamic-labs/sdk-react-core 3.0.0-alpha.50 → 3.0.0-alpha.51

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 (45) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +13 -12
  5. package/src/lib/components/Typography/Typography.cjs +1 -0
  6. package/src/lib/components/Typography/Typography.js +1 -0
  7. package/src/lib/components/Typography/Typography.types.d.ts +1 -1
  8. package/src/lib/components/TypographyButton/TypographyButton.cjs +2 -1
  9. package/src/lib/components/TypographyButton/TypographyButton.js +2 -1
  10. package/src/lib/context/DynamicContext/hooks/useSelectedWalletConnector/useSelectedWalletConnector.d.ts +1 -1
  11. package/src/lib/context/ViewContext/types/index.d.ts +1 -1
  12. package/src/lib/layout/DynamicUserProfileLayout/DynamicUserProfileLayout.cjs +1 -0
  13. package/src/lib/layout/DynamicUserProfileLayout/DynamicUserProfileLayout.js +2 -1
  14. package/src/lib/locale/en/translation.cjs +24 -0
  15. package/src/lib/locale/en/translation.d.ts +24 -0
  16. package/src/lib/locale/en/translation.js +24 -0
  17. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.cjs +8 -1
  18. package/src/lib/modals/SignMessageConfirmationModal/SignMessageConfirmationModal.js +8 -1
  19. package/src/lib/shared/assets/blue-walletconnect.cjs +62 -0
  20. package/src/lib/shared/assets/blue-walletconnect.js +38 -0
  21. package/src/lib/shared/assets/index.d.ts +3 -0
  22. package/src/lib/styles/index.shadow.cjs +1 -1
  23. package/src/lib/styles/index.shadow.js +1 -1
  24. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +1 -0
  25. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +1 -0
  26. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +2 -2
  27. package/src/lib/views/GlobalWalletConfirmView/GlobalWalletConfirmView.cjs +105 -0
  28. package/src/lib/views/GlobalWalletConfirmView/GlobalWalletConfirmView.d.ts +12 -0
  29. package/src/lib/views/GlobalWalletConfirmView/GlobalWalletConfirmView.js +100 -0
  30. package/src/lib/views/GlobalWalletConfirmView/index.d.ts +1 -0
  31. package/src/lib/views/viewToComponentMap.cjs +2 -0
  32. package/src/lib/views/viewToComponentMap.d.ts +1 -0
  33. package/src/lib/views/viewToComponentMap.js +2 -0
  34. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.cjs +12 -5
  35. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetWalletHeader/DynamicWidgetWalletHeader.js +13 -6
  36. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/DynamicWidgetViews.cjs +2 -0
  37. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/DynamicWidgetViews.js +2 -0
  38. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +2 -0
  39. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +2 -0
  40. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.types.cjs +2 -0
  41. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.types.d.ts +3 -1
  42. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.types.js +2 -1
  43. package/src/lib/widgets/DynamicWidget/views/GlobalWalletView/GlobalWalletView.cjs +230 -0
  44. package/src/lib/widgets/DynamicWidget/views/GlobalWalletView/GlobalWalletView.d.ts +3 -0
  45. package/src/lib/widgets/DynamicWidget/views/GlobalWalletView/GlobalWalletView.js +225 -0
@@ -142,6 +142,7 @@ const useAuthLayoutChecks = () => {
142
142
  view.type !== 'embedded-wallet-auth-choice' &&
143
143
  view.type !== 'wallet-claim-intro' &&
144
144
  view.type !== 'passkey-recovery-add-email' &&
145
+ view.type !== 'global-wallet-confirm' &&
145
146
  view.type !== 'mfa-choose-device' &&
146
147
  view.type !== 'mfa-verification';
147
148
  const showConnectedWalletProgress = isBridgeFlow &&
@@ -138,6 +138,7 @@ const useAuthLayoutChecks = () => {
138
138
  view.type !== 'embedded-wallet-auth-choice' &&
139
139
  view.type !== 'wallet-claim-intro' &&
140
140
  view.type !== 'passkey-recovery-add-email' &&
141
+ view.type !== 'global-wallet-confirm' &&
141
142
  view.type !== 'mfa-choose-device' &&
142
143
  view.type !== 'mfa-verification';
143
144
  const showConnectedWalletProgress = isBridgeFlow &&
@@ -17,7 +17,7 @@ import { UserProfile } from '../../../..';
17
17
  */
18
18
  export declare const useEmbeddedWallet: () => {
19
19
  readonly createEmbeddedWallet: (chains?: EmbeddedWalletChainEnum[], options?: {
20
- webAuthnAttestation: import("dist/packages/wallet-connector-core/src").WebAuthnAttestation;
20
+ webAuthnAttestation: import("@dynamic-labs/wallet-connector-core").WebAuthnAttestation;
21
21
  } | undefined) => Promise<Wallet | undefined>;
22
22
  readonly createEmbeddedWalletAccount: ({ chain }: {
23
23
  chain: EmbeddedWalletChainEnum;
@@ -27,7 +27,7 @@ export declare const useEmbeddedWallet: () => {
27
27
  } | undefined) => Promise<string | undefined>;
28
28
  readonly createPasskey: (options: {
29
29
  oneTimeCode: string;
30
- } | undefined) => Promise<import("dist/packages/wallet-connector-core/src").WebAuthnAttestation>;
30
+ } | undefined) => Promise<import("@dynamic-labs/wallet-connector-core").WebAuthnAttestation>;
31
31
  readonly createPassword: (showIntro?: boolean | undefined) => Promise<string>;
32
32
  readonly getPasskeys: () => Promise<import("@dynamic-labs/sdk-api-core").UserPasskey[]>;
33
33
  readonly getWalletVersion: () => import(".").EmbeddedWalletVersion | undefined;
@@ -0,0 +1,105 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var React = require('react');
8
+ var reactI18next = require('react-i18next');
9
+ require('../../components/Accordion/components/AccordionItem/AccordionItem.cjs');
10
+ require('../../components/Alert/Alert.cjs');
11
+ require('../../events/dynamicEvents.cjs');
12
+ require('../../../../_virtual/_tslib.cjs');
13
+ require('@dynamic-labs/utils');
14
+ require('../../context/DynamicContext/DynamicContext.cjs');
15
+ require('@dynamic-labs/sdk-api-core');
16
+ require('../../shared/logger.cjs');
17
+ require('@dynamic-labs/iconic');
18
+ require('@dynamic-labs/wallet-connector-core');
19
+ require('../../context/ViewContext/ViewContext.cjs');
20
+ require('@dynamic-labs/wallet-book');
21
+ require('../../utils/constants/colors.cjs');
22
+ require('../../utils/constants/values.cjs');
23
+ require('../../shared/utils/classes/storage/localStorage.cjs');
24
+ require('../../shared/utils/classes/storage/sessionStorage.cjs');
25
+ require('../../shared/consts/index.cjs');
26
+ require('../../context/CaptchaContext/CaptchaContext.cjs');
27
+ require('../../context/ErrorContext/ErrorContext.cjs');
28
+ require('@dynamic-labs/multi-wallet');
29
+ require('react-international-phone');
30
+ require('../../config/ApiEndpoint.cjs');
31
+ require('@dynamic-labs/store');
32
+ require('../../locale/locale.cjs');
33
+ require('../../context/AccessDeniedContext/AccessDeniedContext.cjs');
34
+ require('../../context/AccountExistsContext/AccountExistsContext.cjs');
35
+ require('../../context/UserWalletsContext/UserWalletsContext.cjs');
36
+ require('../../context/VerificationContext/VerificationContext.cjs');
37
+ require('react-dom');
38
+ require('../../context/WalletContext/WalletContext.cjs');
39
+ require('../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs');
40
+ require('../../context/ThemeContext/ThemeContext.cjs');
41
+ require('../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.cjs');
42
+ require('@dynamic-labs/types');
43
+ require('../../context/LoadingContext/LoadingContext.cjs');
44
+ require('yup');
45
+ require('../../context/MockContext/MockContext.cjs');
46
+ require('../CollectUserDataView/useFields.cjs');
47
+ require('../../context/FieldsStateContext/FieldsStateContext.cjs');
48
+ require('../../context/UserFieldEditorContext/UserFieldEditorContext.cjs');
49
+ require('@dynamic-labs/rpc-providers');
50
+ var Typography = require('../../components/Typography/Typography.cjs');
51
+ require('../../context/FooterAnimationContext/index.cjs');
52
+ require('../../components/ShadowDOM/ShadowDOM.cjs');
53
+ require('../../components/Transition/ZoomTransition/ZoomTransition.cjs');
54
+ require('../../components/Transition/SlideInUpTransition/SlideInUpTransition.cjs');
55
+ require('../../components/Transition/OpacityTransition/OpacityTransition.cjs');
56
+ require('../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.cjs');
57
+ require('../../context/SocialRedirectContext/SocialRedirectContext.cjs');
58
+ require('../../context/WalletGroupContext/WalletGroupContext.cjs');
59
+ require('../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.cjs');
60
+ require('react-focus-lock');
61
+ require('../../widgets/DynamicWidget/context/DynamicWidgetContext.cjs');
62
+ require('../../components/IconButton/IconButton.cjs');
63
+ require('../../components/MenuList/Dropdown/Dropdown.cjs');
64
+ var TypographyButton = require('../../components/TypographyButton/TypographyButton.cjs');
65
+ require('formik');
66
+ require('../TransactionConfirmationView/helpers/transactionErrorMessage.cjs');
67
+ require('../../components/Input/Input.cjs');
68
+ require('@dynamic-labs/ethereum-core');
69
+ require('../../context/PasskeyContext/PasskeyContext.cjs');
70
+ require('../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
71
+ require('../../../polyfills.cjs');
72
+ require('../../context/ErrorBoundary/ErrorBoundaryBase.cjs');
73
+ require('../../context/ErrorBoundary/ErrorBoundaryContext.cjs');
74
+ require('../../widgets/DynamicBridgeWidget/context/DynamicBridgeWidgetContext/DynamicBridgeWidgetContext.cjs');
75
+ require('../../widgets/DynamicWidget/components/DynamicWidgetCard/DynamicWidgetCard.cjs');
76
+ require('../../components/IsBrowser/IsBrowser.cjs');
77
+ require('../../context/WidgetRegistry/WidgetRegistryContextProvider.cjs');
78
+ require('../../context/FundingContext/FundingContext.cjs');
79
+ require('../../components/Popper/Popper/Popper.cjs');
80
+ require('../../components/Popper/PopperContext/PopperContext.cjs');
81
+ require('../WalletList/WalletList.cjs');
82
+ require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
83
+ require('@hcaptcha/react-hcaptcha');
84
+ require('../../context/IpConfigurationContext/IpConfigurationContext.cjs');
85
+ require('../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.cjs');
86
+ require('../../context/SendBalanceContext/SendBalanceContext.cjs');
87
+ require('../../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
88
+ require('../../context/ConnectWithOtpContext/constants.cjs');
89
+ require('../../context/ReinitializeContext/ReinitializeContextProvider.cjs');
90
+ require('../../components/InlineWidget/InlineWidget.cjs');
91
+ require('qrcode');
92
+
93
+ const GlobalWalletConfirmView = ({ pairingInfo, onConfirm, onCancel }) => {
94
+ const { t } = reactI18next.useTranslation();
95
+ const [imageError, setImageError] = React.useState(false);
96
+ const handleImageError = () => {
97
+ setImageError(true);
98
+ };
99
+ return (jsxRuntime.jsx("div", { className: 'global-wallet-confirm', children: jsxRuntime.jsx("div", { className: 'popup-content', children: jsxRuntime.jsxs("div", { className: 'wallet-connection-view', children: [!imageError && (jsxRuntime.jsx("img", { src: pairingInfo.icons[0], alt: `${pairingInfo.name} icon`, className: 'dapp-icon', onError: handleImageError })), jsxRuntime.jsx(Typography.Typography, { className: 'connection-title', variant: 'title', font: 'bold', children: t('global_wallet.confirm.description', { name: pairingInfo.name }) }), jsxRuntime.jsx(Typography.Typography, { variant: 'body_normal', className: 'dapp-url', children: pairingInfo.url }), jsxRuntime.jsxs("div", { className: 'button-group', children: [jsxRuntime.jsx(TypographyButton.TypographyButton, { buttonClassName: 'cancel-button', onClick: onCancel, type: 'submit', buttonPadding: 'large', children: t('global_wallet.confirm.cancel_button') }), jsxRuntime.jsx(TypographyButton.TypographyButton, { buttonClassName: 'connect-global-button', onClick: onConfirm, type: 'submit', buttonPadding: 'large', typographyProps: {
100
+ color: 'white',
101
+ }, children: t('global_wallet.confirm.connect_button') })] })] }) }) }));
102
+ };
103
+
104
+ exports.GlobalWalletConfirmView = GlobalWalletConfirmView;
105
+ exports["default"] = GlobalWalletConfirmView;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export interface GlobalWalletConfirmViewProps {
3
+ pairingInfo: {
4
+ name: string;
5
+ url: string;
6
+ icons: string[];
7
+ };
8
+ onConfirm: () => void;
9
+ onCancel: () => void;
10
+ }
11
+ export declare const GlobalWalletConfirmView: React.FC<GlobalWalletConfirmViewProps>;
12
+ export default GlobalWalletConfirmView;
@@ -0,0 +1,100 @@
1
+ 'use client'
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { useState } from 'react';
4
+ import { useTranslation } from 'react-i18next';
5
+ import '../../components/Accordion/components/AccordionItem/AccordionItem.js';
6
+ import '../../components/Alert/Alert.js';
7
+ import '../../events/dynamicEvents.js';
8
+ import '../../../../_virtual/_tslib.js';
9
+ import '@dynamic-labs/utils';
10
+ import '../../context/DynamicContext/DynamicContext.js';
11
+ import '@dynamic-labs/sdk-api-core';
12
+ import '../../shared/logger.js';
13
+ import '@dynamic-labs/iconic';
14
+ import '@dynamic-labs/wallet-connector-core';
15
+ import '../../context/ViewContext/ViewContext.js';
16
+ import '@dynamic-labs/wallet-book';
17
+ import '../../utils/constants/colors.js';
18
+ import '../../utils/constants/values.js';
19
+ import '../../shared/utils/classes/storage/localStorage.js';
20
+ import '../../shared/utils/classes/storage/sessionStorage.js';
21
+ import '../../shared/consts/index.js';
22
+ import '../../context/CaptchaContext/CaptchaContext.js';
23
+ import '../../context/ErrorContext/ErrorContext.js';
24
+ import '@dynamic-labs/multi-wallet';
25
+ import 'react-international-phone';
26
+ import '../../config/ApiEndpoint.js';
27
+ import '@dynamic-labs/store';
28
+ import '../../locale/locale.js';
29
+ import '../../context/AccessDeniedContext/AccessDeniedContext.js';
30
+ import '../../context/AccountExistsContext/AccountExistsContext.js';
31
+ import '../../context/UserWalletsContext/UserWalletsContext.js';
32
+ import '../../context/VerificationContext/VerificationContext.js';
33
+ import 'react-dom';
34
+ import '../../context/WalletContext/WalletContext.js';
35
+ import '../../utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js';
36
+ import '../../context/ThemeContext/ThemeContext.js';
37
+ import '../../utils/hooks/useUserUpdateRequest/useUpdateUser/userFieldsSchema.js';
38
+ import '@dynamic-labs/types';
39
+ import '../../context/LoadingContext/LoadingContext.js';
40
+ import 'yup';
41
+ import '../../context/MockContext/MockContext.js';
42
+ import '../CollectUserDataView/useFields.js';
43
+ import '../../context/FieldsStateContext/FieldsStateContext.js';
44
+ import '../../context/UserFieldEditorContext/UserFieldEditorContext.js';
45
+ import '@dynamic-labs/rpc-providers';
46
+ import { Typography } from '../../components/Typography/Typography.js';
47
+ import '../../context/FooterAnimationContext/index.js';
48
+ import '../../components/ShadowDOM/ShadowDOM.js';
49
+ import '../../components/Transition/ZoomTransition/ZoomTransition.js';
50
+ import '../../components/Transition/SlideInUpTransition/SlideInUpTransition.js';
51
+ import '../../components/Transition/OpacityTransition/OpacityTransition.js';
52
+ import '../../components/OverlayCard/OverlayCardTarget/OverlayCardTarget.js';
53
+ import '../../context/SocialRedirectContext/SocialRedirectContext.js';
54
+ import '../../context/WalletGroupContext/WalletGroupContext.js';
55
+ import '../../widgets/DynamicWidget/components/DynamicWidgetHeader/DynamicWidgetHeader.js';
56
+ import 'react-focus-lock';
57
+ import '../../widgets/DynamicWidget/context/DynamicWidgetContext.js';
58
+ import '../../components/IconButton/IconButton.js';
59
+ import '../../components/MenuList/Dropdown/Dropdown.js';
60
+ import { TypographyButton } from '../../components/TypographyButton/TypographyButton.js';
61
+ import 'formik';
62
+ import '../TransactionConfirmationView/helpers/transactionErrorMessage.js';
63
+ import '../../components/Input/Input.js';
64
+ import '@dynamic-labs/ethereum-core';
65
+ import '../../context/PasskeyContext/PasskeyContext.js';
66
+ import '../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.js';
67
+ import '../../../polyfills.js';
68
+ import '../../context/ErrorBoundary/ErrorBoundaryBase.js';
69
+ import '../../context/ErrorBoundary/ErrorBoundaryContext.js';
70
+ import '../../widgets/DynamicBridgeWidget/context/DynamicBridgeWidgetContext/DynamicBridgeWidgetContext.js';
71
+ import '../../widgets/DynamicWidget/components/DynamicWidgetCard/DynamicWidgetCard.js';
72
+ import '../../components/IsBrowser/IsBrowser.js';
73
+ import '../../context/WidgetRegistry/WidgetRegistryContextProvider.js';
74
+ import '../../context/FundingContext/FundingContext.js';
75
+ import '../../components/Popper/Popper/Popper.js';
76
+ import '../../components/Popper/PopperContext/PopperContext.js';
77
+ import '../WalletList/WalletList.js';
78
+ import '../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
79
+ import '@hcaptcha/react-hcaptcha';
80
+ import '../../context/IpConfigurationContext/IpConfigurationContext.js';
81
+ import '../../components/PasskeyCreatedSuccessBanner/PasskeyCreatedSuccessBanner.js';
82
+ import '../../context/SendBalanceContext/SendBalanceContext.js';
83
+ import '../../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
84
+ import '../../context/ConnectWithOtpContext/constants.js';
85
+ import '../../context/ReinitializeContext/ReinitializeContextProvider.js';
86
+ import '../../components/InlineWidget/InlineWidget.js';
87
+ import 'qrcode';
88
+
89
+ const GlobalWalletConfirmView = ({ pairingInfo, onConfirm, onCancel }) => {
90
+ const { t } = useTranslation();
91
+ const [imageError, setImageError] = useState(false);
92
+ const handleImageError = () => {
93
+ setImageError(true);
94
+ };
95
+ return (jsx("div", { className: 'global-wallet-confirm', children: jsx("div", { className: 'popup-content', children: jsxs("div", { className: 'wallet-connection-view', children: [!imageError && (jsx("img", { src: pairingInfo.icons[0], alt: `${pairingInfo.name} icon`, className: 'dapp-icon', onError: handleImageError })), jsx(Typography, { className: 'connection-title', variant: 'title', font: 'bold', children: t('global_wallet.confirm.description', { name: pairingInfo.name }) }), jsx(Typography, { variant: 'body_normal', className: 'dapp-url', children: pairingInfo.url }), jsxs("div", { className: 'button-group', children: [jsx(TypographyButton, { buttonClassName: 'cancel-button', onClick: onCancel, type: 'submit', buttonPadding: 'large', children: t('global_wallet.confirm.cancel_button') }), jsx(TypographyButton, { buttonClassName: 'connect-global-button', onClick: onConfirm, type: 'submit', buttonPadding: 'large', typographyProps: {
96
+ color: 'white',
97
+ }, children: t('global_wallet.confirm.connect_button') })] })] }) }) }));
98
+ };
99
+
100
+ export { GlobalWalletConfirmView, GlobalWalletConfirmView as default };
@@ -0,0 +1 @@
1
+ export * from './GlobalWalletConfirmView';
@@ -128,6 +128,7 @@ var MfaVerificationView = require('./MfaVerificationView/MfaVerificationView.cjs
128
128
  var MfaRecoveryView = require('./MfaRecoveryView/MfaRecoveryView.cjs');
129
129
  var MfaSecureDeviceHelpView = require('./MfaSecureDeviceHelpView/MfaSecureDeviceHelpView.cjs');
130
130
  var SandboxMaximumThresholdReached = require('./SandboxMaximumThresholdReached/SandboxMaximumThresholdReached.cjs');
131
+ var GlobalWalletConfirmView = require('./GlobalWalletConfirmView/GlobalWalletConfirmView.cjs');
131
132
  require('../context/SendBalanceContext/SendBalanceContext.cjs');
132
133
  require('../context/ConnectWithOtpContext/ConnectWithOtpContext.cjs');
133
134
  require('../context/ConnectWithOtpContext/constants.cjs');
@@ -154,6 +155,7 @@ const viewToComponentMap = {
154
155
  'embedded-wallet-auth-choice': EmbeddedAuthChoice.EmbeddedAuthChoice,
155
156
  'farcaster-connect-view': FarcasterConnectView.FarcasterConnectView,
156
157
  'gate-blocked-wallet': NoAccess.NoAccess,
158
+ 'global-wallet-confirm': GlobalWalletConfirmView.GlobalWalletConfirmView,
157
159
  'login-with-email-or-wallet': LoginView.LoginView,
158
160
  'login-with-email-or-wallet-full-wallet-list': WalletList.WalletList,
159
161
  'login-with-email-verification': EmailVerification.EmailVerification,
@@ -19,6 +19,7 @@ export declare const viewToComponentMap: {
19
19
  'embedded-wallet-auth-choice': import("react").FC<import("./Passkey/EmbeddedAuthChoice/EmbeddedAuthChoice").EmbeddedAuthChoiceProps>;
20
20
  'farcaster-connect-view': ({ url }: import("./FarcasterConnectView/FarcasterConnectView").FarcasterConnectViewProps) => JSX.Element;
21
21
  'gate-blocked-wallet': () => JSX.Element;
22
+ 'global-wallet-confirm': import("react").FC<import("./GlobalWalletConfirmView").GlobalWalletConfirmViewProps>;
22
23
  'login-with-email-or-wallet': () => JSX.Element;
23
24
  'login-with-email-or-wallet-full-wallet-list': ({ isWalletConnectList, }: import("./WalletList").WalletListProps) => JSX.Element;
24
25
  'login-with-email-verification': import("react").FC<import("./EmailVerification/EmailVerification").EmailVerificationProps>;
@@ -124,6 +124,7 @@ import { MfaVerificationView } from './MfaVerificationView/MfaVerificationView.j
124
124
  import { MfaRecoveryView } from './MfaRecoveryView/MfaRecoveryView.js';
125
125
  import { MfaSecureDeviceHelper } from './MfaSecureDeviceHelpView/MfaSecureDeviceHelpView.js';
126
126
  import { SandboxMaximumThresholdReached } from './SandboxMaximumThresholdReached/SandboxMaximumThresholdReached.js';
127
+ import { GlobalWalletConfirmView } from './GlobalWalletConfirmView/GlobalWalletConfirmView.js';
127
128
  import '../context/SendBalanceContext/SendBalanceContext.js';
128
129
  import '../context/ConnectWithOtpContext/ConnectWithOtpContext.js';
129
130
  import '../context/ConnectWithOtpContext/constants.js';
@@ -150,6 +151,7 @@ const viewToComponentMap = {
150
151
  'embedded-wallet-auth-choice': EmbeddedAuthChoice,
151
152
  'farcaster-connect-view': FarcasterConnectView,
152
153
  'gate-blocked-wallet': NoAccess,
154
+ 'global-wallet-confirm': GlobalWalletConfirmView,
153
155
  'login-with-email-or-wallet': LoginView,
154
156
  'login-with-email-or-wallet-full-wallet-list': WalletList,
155
157
  'login-with-email-verification': EmailVerification,
@@ -18,6 +18,7 @@ var logger = require('../../../../../shared/logger.cjs');
18
18
  require('@dynamic-labs/iconic');
19
19
  require('../../../../../context/ViewContext/ViewContext.cjs');
20
20
  var add = require('../../../../../shared/assets/add.cjs');
21
+ var link = require('../../../../../shared/assets/link.cjs');
21
22
  var send = require('../../../../../shared/assets/send.cjs');
22
23
  require('@dynamic-labs/wallet-book');
23
24
  require('../../../../../utils/constants/colors.cjs');
@@ -104,6 +105,16 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
104
105
 
105
106
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
106
107
 
108
+ const LinkButton = React__default["default"].memo(({ connector }) => {
109
+ const { setDynamicWidgetView } = DynamicWidgetContext.useWidgetContext();
110
+ const handleOnClickLink = () => {
111
+ setDynamicWidgetView('global-wallet');
112
+ };
113
+ if (!connector.globalWallet)
114
+ return null;
115
+ return (jsxRuntime.jsx(TypographyButton.TypographyButton, { expanded: true, dataTestId: 'link-button', buttonPadding: 'small', buttonVariant: 'primary', onClick: handleOnClickLink, startSlot: jsxRuntime.jsx(Icon.Icon, { size: 'small', color: 'text-secondary', children: jsxRuntime.jsx(link.ReactComponent, {}) }), children: "Connect" }));
116
+ });
117
+ LinkButton.displayName = 'LinkButton';
107
118
  const DynamicWidgetWalletHeader = ({ variant, }) => {
108
119
  const { primaryWallet, user } = useInternalDynamicContext.useInternalDynamicContext();
109
120
  const { open: openSendBalanceModal } = SendBalanceContext.useSendBalance();
@@ -139,11 +150,7 @@ const DynamicWidgetWalletHeader = ({ variant, }) => {
139
150
  }
140
151
  };
141
152
  const isActionsVisible = isSendBalanceEnabled || fundingEnabled;
142
- return (jsxRuntime.jsxs("div", { className: 'dynamic-widget-wallet-header', "data-testid": 'dynamic-widget-wallet-header', children: [renderWalletHeader(), isLoadingEmbeddedWallet && (jsxRuntime.jsx("div", { className: 'dynamic-widget-wallet-header__wallet-info', children: jsxRuntime.jsx("div", { className: 'dynamic-widget-wallet-header__wallet-loading', children: jsxRuntime.jsx(Alert.Alert, { variant: 'info', icon: jsxRuntime.jsx(spinner.Spinner, { className: 'button__spinner' }), children: t('dyn_creating_wallet.loading_message') }) }) })), primaryWallet ? (jsxRuntime.jsxs("div", { "data-testid": 'primaryWalletStatus', className: 'dynamic-widget-wallet-header__wallet-info', children: [jsxRuntime.jsx(SecureEmbeddedWalletCard.SecureEmbeddedWalletCard, { className: 'dynamic-widget-wallet-header__wallet-info__secure-wallet' }), isActionsVisible && (jsxRuntime.jsxs("div", { className: 'dynamic-widget-wallet-header__wallet-actions', children: [fundingEnabled && (jsxRuntime.jsx(TypographyButton.TypographyButton, { expanded: true, dataTestId: 'buy-crypto-button', buttonPadding: 'small', buttonVariant: 'primary', onClick: () => setShowFunding(true), disabled: !supportsFunding, startSlot:
143
- // eslint-disable-next-line react/jsx-wrap-multilines
144
- jsxRuntime.jsx(Icon.Icon, { size: 'small', color: 'text-secondary', children: jsxRuntime.jsx(add.ReactComponent, {}) }), children: "Buy" })), isSendBalanceEnabled && (jsxRuntime.jsx(TypographyButton.TypographyButton, { expanded: true, dataTestId: 'send-balance-button', buttonPadding: 'small', buttonVariant: 'primary', onClick: handleOnClickSend, startSlot:
145
- // eslint-disable-next-line react/jsx-wrap-multilines
146
- jsxRuntime.jsx(Icon.Icon, { size: 'small', color: 'text-secondary', children: jsxRuntime.jsx(send.ReactComponent, {}) }), children: "Send" }))] }))] })) : (jsxRuntime.jsx(Typography.Typography, { className: 'dynamic-widget-wallet-header__email', variant: 'body_normal', weight: 'regular', children: !isLoadingEmbeddedWallet && getUserIdentifier.getUserIdentifier(user) }))] }));
153
+ return (jsxRuntime.jsxs("div", { className: 'dynamic-widget-wallet-header', "data-testid": 'dynamic-widget-wallet-header', children: [renderWalletHeader(), isLoadingEmbeddedWallet && (jsxRuntime.jsx("div", { className: 'dynamic-widget-wallet-header__wallet-info', children: jsxRuntime.jsx("div", { className: 'dynamic-widget-wallet-header__wallet-loading', children: jsxRuntime.jsx(Alert.Alert, { variant: 'info', icon: jsxRuntime.jsx(spinner.Spinner, { className: 'button__spinner' }), children: t('dyn_creating_wallet.loading_message') }) }) })), primaryWallet ? (jsxRuntime.jsxs("div", { "data-testid": 'primaryWalletStatus', className: 'dynamic-widget-wallet-header__wallet-info', children: [jsxRuntime.jsx(SecureEmbeddedWalletCard.SecureEmbeddedWalletCard, { className: 'dynamic-widget-wallet-header__wallet-info__secure-wallet' }), isActionsVisible && (jsxRuntime.jsxs("div", { className: 'dynamic-widget-wallet-header__wallet-actions', children: [fundingEnabled && (jsxRuntime.jsx(TypographyButton.TypographyButton, { expanded: true, dataTestId: 'buy-crypto-button', buttonPadding: 'small', buttonVariant: 'primary', onClick: () => setShowFunding(true), disabled: !supportsFunding, startSlot: jsxRuntime.jsx(Icon.Icon, { size: 'small', color: 'text-secondary', children: jsxRuntime.jsx(add.ReactComponent, {}) }), children: "Buy" })), isSendBalanceEnabled && (jsxRuntime.jsx(TypographyButton.TypographyButton, { expanded: true, dataTestId: 'send-balance-button', buttonPadding: 'small', buttonVariant: 'primary', onClick: handleOnClickSend, startSlot: jsxRuntime.jsx(Icon.Icon, { size: 'small', color: 'text-secondary', children: jsxRuntime.jsx(send.ReactComponent, {}) }), children: "Send" })), jsxRuntime.jsx(LinkButton, { connector: primaryWallet.connector })] }))] })) : (jsxRuntime.jsx(Typography.Typography, { className: 'dynamic-widget-wallet-header__email', variant: 'body_normal', weight: 'regular', children: !isLoadingEmbeddedWallet && getUserIdentifier.getUserIdentifier(user) }))] }));
147
154
  };
148
155
  React__default["default"].memo(DynamicWidgetWalletHeader);
149
156
 
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
3
  import React__default, { useMemo } from 'react';
4
4
  import { useTranslation } from 'react-i18next';
5
5
  import { isSendBalanceWalletConnector } from '@dynamic-labs/wallet-connector-core';
@@ -14,6 +14,7 @@ import { logger } from '../../../../../shared/logger.js';
14
14
  import '@dynamic-labs/iconic';
15
15
  import '../../../../../context/ViewContext/ViewContext.js';
16
16
  import { ReactComponent as SvgAdd } from '../../../../../shared/assets/add.js';
17
+ import { ReactComponent as SvgLink } from '../../../../../shared/assets/link.js';
17
18
  import { ReactComponent as SvgSend } from '../../../../../shared/assets/send.js';
18
19
  import '@dynamic-labs/wallet-book';
19
20
  import '../../../../../utils/constants/colors.js';
@@ -96,6 +97,16 @@ import { SecureEmbeddedWalletCard } from '../../../../../components/SecureEmbedd
96
97
  import { ActiveWalletInformation } from '../../ActiveWalletInformation/ActiveWalletInformation.js';
97
98
  import { UnknownWalletInformation } from '../../UnknownWalletInformation/UnknownWalletInformation.js';
98
99
 
100
+ const LinkButton = React__default.memo(({ connector }) => {
101
+ const { setDynamicWidgetView } = useWidgetContext();
102
+ const handleOnClickLink = () => {
103
+ setDynamicWidgetView('global-wallet');
104
+ };
105
+ if (!connector.globalWallet)
106
+ return null;
107
+ return (jsx(TypographyButton, { expanded: true, dataTestId: 'link-button', buttonPadding: 'small', buttonVariant: 'primary', onClick: handleOnClickLink, startSlot: jsx(Icon, { size: 'small', color: 'text-secondary', children: jsx(SvgLink, {}) }), children: "Connect" }));
108
+ });
109
+ LinkButton.displayName = 'LinkButton';
99
110
  const DynamicWidgetWalletHeader = ({ variant, }) => {
100
111
  const { primaryWallet, user } = useInternalDynamicContext();
101
112
  const { open: openSendBalanceModal } = useSendBalance();
@@ -131,11 +142,7 @@ const DynamicWidgetWalletHeader = ({ variant, }) => {
131
142
  }
132
143
  };
133
144
  const isActionsVisible = isSendBalanceEnabled || fundingEnabled;
134
- return (jsxs("div", { className: 'dynamic-widget-wallet-header', "data-testid": 'dynamic-widget-wallet-header', children: [renderWalletHeader(), isLoadingEmbeddedWallet && (jsx("div", { className: 'dynamic-widget-wallet-header__wallet-info', children: jsx("div", { className: 'dynamic-widget-wallet-header__wallet-loading', children: jsx(Alert, { variant: 'info', icon: jsx(Spinner, { className: 'button__spinner' }), children: t('dyn_creating_wallet.loading_message') }) }) })), primaryWallet ? (jsxs("div", { "data-testid": 'primaryWalletStatus', className: 'dynamic-widget-wallet-header__wallet-info', children: [jsx(SecureEmbeddedWalletCard, { className: 'dynamic-widget-wallet-header__wallet-info__secure-wallet' }), isActionsVisible && (jsxs("div", { className: 'dynamic-widget-wallet-header__wallet-actions', children: [fundingEnabled && (jsx(TypographyButton, { expanded: true, dataTestId: 'buy-crypto-button', buttonPadding: 'small', buttonVariant: 'primary', onClick: () => setShowFunding(true), disabled: !supportsFunding, startSlot:
135
- // eslint-disable-next-line react/jsx-wrap-multilines
136
- jsx(Icon, { size: 'small', color: 'text-secondary', children: jsx(SvgAdd, {}) }), children: "Buy" })), isSendBalanceEnabled && (jsx(TypographyButton, { expanded: true, dataTestId: 'send-balance-button', buttonPadding: 'small', buttonVariant: 'primary', onClick: handleOnClickSend, startSlot:
137
- // eslint-disable-next-line react/jsx-wrap-multilines
138
- jsx(Icon, { size: 'small', color: 'text-secondary', children: jsx(SvgSend, {}) }), children: "Send" }))] }))] })) : (jsx(Typography, { className: 'dynamic-widget-wallet-header__email', variant: 'body_normal', weight: 'regular', children: !isLoadingEmbeddedWallet && getUserIdentifier(user) }))] }));
145
+ return (jsxs("div", { className: 'dynamic-widget-wallet-header', "data-testid": 'dynamic-widget-wallet-header', children: [renderWalletHeader(), isLoadingEmbeddedWallet && (jsx("div", { className: 'dynamic-widget-wallet-header__wallet-info', children: jsx("div", { className: 'dynamic-widget-wallet-header__wallet-loading', children: jsx(Alert, { variant: 'info', icon: jsx(Spinner, { className: 'button__spinner' }), children: t('dyn_creating_wallet.loading_message') }) }) })), primaryWallet ? (jsxs("div", { "data-testid": 'primaryWalletStatus', className: 'dynamic-widget-wallet-header__wallet-info', children: [jsx(SecureEmbeddedWalletCard, { className: 'dynamic-widget-wallet-header__wallet-info__secure-wallet' }), isActionsVisible && (jsxs("div", { className: 'dynamic-widget-wallet-header__wallet-actions', children: [fundingEnabled && (jsx(TypographyButton, { expanded: true, dataTestId: 'buy-crypto-button', buttonPadding: 'small', buttonVariant: 'primary', onClick: () => setShowFunding(true), disabled: !supportsFunding, startSlot: jsx(Icon, { size: 'small', color: 'text-secondary', children: jsx(SvgAdd, {}) }), children: "Buy" })), isSendBalanceEnabled && (jsx(TypographyButton, { expanded: true, dataTestId: 'send-balance-button', buttonPadding: 'small', buttonVariant: 'primary', onClick: handleOnClickSend, startSlot: jsx(Icon, { size: 'small', color: 'text-secondary', children: jsx(SvgSend, {}) }), children: "Send" })), jsx(LinkButton, { connector: primaryWallet.connector })] }))] })) : (jsx(Typography, { className: 'dynamic-widget-wallet-header__email', variant: 'body_normal', weight: 'regular', children: !isLoadingEmbeddedWallet && getUserIdentifier(user) }))] }));
139
146
  };
140
147
  React__default.memo(DynamicWidgetWalletHeader);
141
148
 
@@ -12,9 +12,11 @@ var SendBalanceWidgetView = require('../../views/SendBalanceWidgetView/SendBalan
12
12
  var ManagePasskeysWidgetView = require('../../views/ManagePasskeysWidgetView/ManagePasskeysWidgetView.cjs');
13
13
  var SettingsView = require('../../views/SettingsView/SettingsView.cjs');
14
14
  var ManageMfaWidgetView = require('../../views/ManageMfaWidgetView/ManageMfaWidgetView.cjs');
15
+ var GlobalWalletView = require('../../views/GlobalWalletView/GlobalWalletView.cjs');
15
16
 
16
17
  const mapViewToComponent = {
17
18
  'edit-profile': EditProfileView.EditProfileView,
19
+ 'global-wallet': GlobalWalletView.GlobalWalletView,
18
20
  'manage-mfa': ManageMfaWidgetView.ManageMfaWidgetView,
19
21
  'manage-passkeys': ManagePasskeysWidgetView.ManagePasskeysWidgetView,
20
22
  profile: ProfileView.ProfileView,
@@ -8,9 +8,11 @@ import { SendBalanceWidgetView } from '../../views/SendBalanceWidgetView/SendBal
8
8
  import { ManagePasskeysWidgetView } from '../../views/ManagePasskeysWidgetView/ManagePasskeysWidgetView.js';
9
9
  import { SettingsView } from '../../views/SettingsView/SettingsView.js';
10
10
  import { ManageMfaWidgetView } from '../../views/ManageMfaWidgetView/ManageMfaWidgetView.js';
11
+ import { GlobalWalletView } from '../../views/GlobalWalletView/GlobalWalletView.js';
11
12
 
12
13
  const mapViewToComponent = {
13
14
  'edit-profile': EditProfileView,
15
+ 'global-wallet': GlobalWalletView,
14
16
  'manage-mfa': ManageMfaWidgetView,
15
17
  'manage-passkeys': ManagePasskeysWidgetView,
16
18
  profile: ProfileView,
@@ -115,6 +115,8 @@ const DynamicWidgetContextProvider = ({ children, }) => {
115
115
  return 'wallets';
116
116
  if (dynamicWidgetView === 'edit-profile')
117
117
  return 'profile';
118
+ if (dynamicWidgetView === 'global-wallet')
119
+ return 'wallets';
118
120
  return dynamicWidgetView;
119
121
  }, [dynamicWidgetView, isKYCEnabled, multiWallet]);
120
122
  useDynamicEvents.useInternalDynamicEvents('logout', () => goToInitialDynamicWidgetView());
@@ -111,6 +111,8 @@ const DynamicWidgetContextProvider = ({ children, }) => {
111
111
  return 'wallets';
112
112
  if (dynamicWidgetView === 'edit-profile')
113
113
  return 'profile';
114
+ if (dynamicWidgetView === 'global-wallet')
115
+ return 'wallets';
114
116
  return dynamicWidgetView;
115
117
  }, [dynamicWidgetView, isKYCEnabled, multiWallet]);
116
118
  useInternalDynamicEvents('logout', () => goToInitialDynamicWidgetView());
@@ -4,10 +4,12 @@
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  const DynamicSettingsViews = ['settings'];
7
+ const DynamicGlobalWalletViews = ['global-wallet'];
7
8
  const DynamicPasskeyWidgetViews = ['manage-passkeys'];
8
9
  const DynamicMfaWidgetViews = ['manage-mfa'];
9
10
  const DynamicTransactionsWidgetViews = ['send-balance'];
10
11
 
12
+ exports.DynamicGlobalWalletViews = DynamicGlobalWalletViews;
11
13
  exports.DynamicMfaWidgetViews = DynamicMfaWidgetViews;
12
14
  exports.DynamicPasskeyWidgetViews = DynamicPasskeyWidgetViews;
13
15
  exports.DynamicSettingsViews = DynamicSettingsViews;
@@ -13,10 +13,12 @@ export interface WidgetContextProps {
13
13
  }
14
14
  export declare const DynamicSettingsViews: readonly ["settings"];
15
15
  export type DynamicSettingsType = typeof DynamicSettingsViews[number];
16
+ export declare const DynamicGlobalWalletViews: readonly ["global-wallet"];
17
+ export type DynamicGlobalWalletType = typeof DynamicGlobalWalletViews[number];
16
18
  export declare const DynamicPasskeyWidgetViews: readonly ["manage-passkeys"];
17
19
  export declare const DynamicMfaWidgetViews: readonly ["manage-mfa"];
18
20
  export type DynamicPasskeyWidgetViewsType = typeof DynamicPasskeyWidgetViews[number];
19
21
  export type DynamicMfaWidgetViewsType = typeof DynamicMfaWidgetViews[number];
20
22
  export declare const DynamicTransactionsWidgetViews: readonly ["send-balance"];
21
23
  export type DynamicTransactionsWidgetViewsType = typeof DynamicTransactionsWidgetViews[number];
22
- export type DynamicWidgetViews = 'wallets' | 'profile' | 'edit-profile' | DynamicTransactionsWidgetViewsType | DynamicPasskeyWidgetViewsType | DynamicMfaWidgetViewsType | DynamicSettingsType;
24
+ export type DynamicWidgetViews = 'wallets' | 'profile' | 'edit-profile' | DynamicTransactionsWidgetViewsType | DynamicPasskeyWidgetViewsType | DynamicMfaWidgetViewsType | DynamicSettingsType | DynamicGlobalWalletType;
@@ -1,7 +1,8 @@
1
1
  'use client'
2
2
  const DynamicSettingsViews = ['settings'];
3
+ const DynamicGlobalWalletViews = ['global-wallet'];
3
4
  const DynamicPasskeyWidgetViews = ['manage-passkeys'];
4
5
  const DynamicMfaWidgetViews = ['manage-mfa'];
5
6
  const DynamicTransactionsWidgetViews = ['send-balance'];
6
7
 
7
- export { DynamicMfaWidgetViews, DynamicPasskeyWidgetViews, DynamicSettingsViews, DynamicTransactionsWidgetViews };
8
+ export { DynamicGlobalWalletViews, DynamicMfaWidgetViews, DynamicPasskeyWidgetViews, DynamicSettingsViews, DynamicTransactionsWidgetViews };