@dynamic-labs/sdk-react-core 3.1.3 → 3.2.0

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 +25 -1
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +10 -10
  5. package/src/lib/context/ConnectWithOtpContext/utils/createEmailHandler.cjs +11 -1
  6. package/src/lib/context/ConnectWithOtpContext/utils/createEmailHandler.js +12 -2
  7. package/src/lib/context/SocialRedirectContext/hooks/useRedirectSocialHandler/useRedirectSocialHandler.cjs +15 -8
  8. package/src/lib/context/SocialRedirectContext/hooks/useRedirectSocialHandler/useRedirectSocialHandler.js +15 -8
  9. package/src/lib/locale/en/translation.cjs +43 -24
  10. package/src/lib/locale/en/translation.d.ts +43 -24
  11. package/src/lib/locale/en/translation.js +43 -24
  12. package/src/lib/modals/SendBalanceModal/SendBalanceModal.cjs +5 -5
  13. package/src/lib/modals/SendBalanceModal/SendBalanceModal.js +5 -5
  14. package/src/lib/shared/assets/connected-apps.cjs +64 -0
  15. package/src/lib/shared/assets/connected-apps.js +40 -0
  16. package/src/lib/shared/assets/index.d.ts +1 -0
  17. package/src/lib/styles/index.shadow.cjs +1 -1
  18. package/src/lib/styles/index.shadow.js +1 -1
  19. package/src/lib/utils/functions/getWalletConnectorForWallet/getWalletConnectorForWallet.cjs +24 -0
  20. package/src/lib/utils/functions/getWalletConnectorForWallet/getWalletConnectorForWallet.js +20 -0
  21. package/src/lib/utils/functions/socialStorage/socialStorage.d.ts +3 -0
  22. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +5 -3
  23. package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +5 -3
  24. package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.cjs +9 -0
  25. package/src/lib/utils/hooks/useConnectedWalletsNetworkValidation/useConnectedWalletsNetworkValidation.js +10 -1
  26. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.cjs +1 -0
  27. package/src/lib/utils/hooks/useSocialAuth/useSocialAuth.js +1 -0
  28. package/src/lib/utils/hooks/useWalletConnectors/utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.cjs +9 -2
  29. package/src/lib/utils/hooks/useWalletConnectors/utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.js +10 -3
  30. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +0 -14
  31. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +0 -14
  32. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/DynamicWidgetViews.cjs +4 -2
  33. package/src/lib/widgets/DynamicWidget/components/DynamicWidgetViews/DynamicWidgetViews.js +4 -2
  34. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +8 -1
  35. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +9 -2
  36. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.types.cjs +4 -1
  37. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.types.d.ts +19 -14
  38. package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.types.js +4 -1
  39. package/src/lib/widgets/DynamicWidget/views/ConnectedAppsView/ConnectedAppsView.cjs +180 -0
  40. package/src/lib/widgets/DynamicWidget/views/ConnectedAppsView/ConnectedAppsView.d.ts +12 -0
  41. package/src/lib/widgets/DynamicWidget/views/ConnectedAppsView/ConnectedAppsView.js +175 -0
  42. package/src/lib/widgets/DynamicWidget/views/GlobalWalletView/GlobalWalletView.cjs +7 -9
  43. package/src/lib/widgets/DynamicWidget/views/GlobalWalletView/GlobalWalletView.js +7 -9
  44. package/src/lib/widgets/DynamicWidget/views/SettingsView/SettingsView.cjs +17 -8
  45. package/src/lib/widgets/DynamicWidget/views/SettingsView/SettingsView.js +17 -8
package/CHANGELOG.md CHANGED
@@ -1,4 +1,28 @@
1
1
 
2
+ ## [3.2.0](https://github.com/dynamic-labs/DynamicAuth/compare/v3.1.4...v3.2.0) (2024-10-02)
3
+
4
+
5
+ ### Features
6
+
7
+ * view global connectivity connections and allow disconnection ([#7037](https://github.com/dynamic-labs/DynamicAuth/issues/7037)) ([6d7c2ba](https://github.com/dynamic-labs/DynamicAuth/commit/6d7c2baf2d1480e30e1394547635f0f1e7c47509))
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * ensure the correct auth mode is used on social redirect ([#7047](https://github.com/dynamic-labs/DynamicAuth/issues/7047)) ([#7055](https://github.com/dynamic-labs/DynamicAuth/issues/7055)) ([b83ee70](https://github.com/dynamic-labs/DynamicAuth/commit/b83ee702fede980dad9641ad08453fc20ba1b6bb))
13
+
14
+ ### [3.1.4](https://github.com/dynamic-labs/DynamicAuth/compare/v3.1.3...v3.1.4) (2024-09-30)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * add popper context to send balance ([#7017](https://github.com/dynamic-labs/DynamicAuth/issues/7017)) ([bedcc5e](https://github.com/dynamic-labs/DynamicAuth/commit/bedcc5ec005267b7fa40a2020bc9fef6e2e09714))
20
+ * add retry to useConnectWithOtp ([#7013](https://github.com/dynamic-labs/DynamicAuth/issues/7013)) ([4d3455a](https://github.com/dynamic-labs/DynamicAuth/commit/4d3455a5ead6585ec309ff32294f392154900d73))
21
+ * don't re-fetch wallet address on network change ([#7023](https://github.com/dynamic-labs/DynamicAuth/issues/7023)) ([d23b716](https://github.com/dynamic-labs/DynamicAuth/commit/d23b71608af8b6b75b015efdfcb8bea34602dc6a))
22
+ * fix sign message with solana wallet standard provider ([#7015](https://github.com/dynamic-labs/DynamicAuth/issues/7015)) ([b575622](https://github.com/dynamic-labs/DynamicAuth/commit/b575622d7ec8b3dc61049acb592b7c7fa458ec61))
23
+ * persist isHardwareWalletEnabled on wallet connector ([#7025](https://github.com/dynamic-labs/DynamicAuth/issues/7025)) ([7ed7832](https://github.com/dynamic-labs/DynamicAuth/commit/7ed7832235ecafe8172a16528d428f7c03485064))
24
+ * update wallet reference when user switches wallet in connect-only ([#7031](https://github.com/dynamic-labs/DynamicAuth/issues/7031)) ([031515f](https://github.com/dynamic-labs/DynamicAuth/commit/031515fc6c785facbbc95d2f65d58551559334e6))
25
+
2
26
  ### [3.1.3](https://github.com/dynamic-labs/DynamicAuth/compare/v3.1.2...v3.1.3) (2024-09-25)
3
27
 
4
28
 
@@ -878,7 +902,7 @@
878
902
 
879
903
  - React Native - You can now build mobile-first onboarding experiences with the same Dynamic magic but for React Native, get started [here](https://docs.dynamic.xyz/react-native/introduction)
880
904
 
881
- - Cookie Authentication - Dynamic can now be configured to set a secure, HttpOnly cookie that can be used for authenticating with Dynamic’s backend. This will contain a minified version of our JWT token.
905
+ - Cookie Authentication - Dynamic can now be configured to set a secure, HttpOnly cookie that can be used for authenticating with Dynamic’s backend. This will contain a minified version of our JWT token.
882
906
 
883
907
 
884
908
  ## Improvements
package/package.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "3.1.3";
6
+ var version = "3.2.0";
7
7
  var dependencies = {
8
8
  "@dynamic-labs/sdk-api-core": "0.0.535",
9
9
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  'use client'
2
- var version = "3.1.3";
2
+ var version = "3.2.0";
3
3
  var dependencies = {
4
4
  "@dynamic-labs/sdk-api-core": "0.0.535",
5
5
  "@hcaptcha/react-hcaptcha": "1.4.4",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "3.1.3",
3
+ "version": "3.2.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/dynamic-labs/dynamic-auth.git",
@@ -17,15 +17,15 @@
17
17
  "react-i18next": "13.5.0",
18
18
  "yup": "0.32.11",
19
19
  "react-international-phone": "4.2.5",
20
- "@dynamic-labs/iconic": "3.1.3",
21
- "@dynamic-labs/logger": "3.1.3",
22
- "@dynamic-labs/multi-wallet": "3.1.3",
23
- "@dynamic-labs/rpc-providers": "3.1.3",
24
- "@dynamic-labs/store": "3.1.3",
25
- "@dynamic-labs/types": "3.1.3",
26
- "@dynamic-labs/utils": "3.1.3",
27
- "@dynamic-labs/wallet-book": "3.1.3",
28
- "@dynamic-labs/wallet-connector-core": "3.1.3",
20
+ "@dynamic-labs/iconic": "3.2.0",
21
+ "@dynamic-labs/logger": "3.2.0",
22
+ "@dynamic-labs/multi-wallet": "3.2.0",
23
+ "@dynamic-labs/rpc-providers": "3.2.0",
24
+ "@dynamic-labs/store": "3.2.0",
25
+ "@dynamic-labs/types": "3.2.0",
26
+ "@dynamic-labs/utils": "3.2.0",
27
+ "@dynamic-labs/wallet-book": "3.2.0",
28
+ "@dynamic-labs/wallet-connector-core": "3.2.0",
29
29
  "eventemitter3": "5.0.1"
30
30
  },
31
31
  "devDependencies": {
@@ -27,11 +27,21 @@ require('../../../store/state/projectSettings/projectSettings.cjs');
27
27
  require('../../../locale/locale.cjs');
28
28
 
29
29
  const createEmailHandler = (environmentId, { shouldRegisterSessionKeysOnSignin, generateSessionKey, }) => (email$1) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
30
- const { verificationUUID } = yield email.createEmailVerification({
30
+ const createEmailVerificationResponse = yield email.createEmailVerification({
31
31
  email: email$1,
32
32
  environmentId,
33
33
  });
34
+ let { verificationUUID } = createEmailVerificationResponse;
34
35
  return {
36
+ retry: () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
37
+ const retryEmailVerificationResponse = yield email.retryEmailVerification({
38
+ email: email$1,
39
+ environmentId,
40
+ verificationUUID,
41
+ });
42
+ // eslint-disable-next-line prefer-destructuring
43
+ verificationUUID = retryEmailVerificationResponse.verificationUUID;
44
+ }),
35
45
  type: 'email',
36
46
  verify: (oneTimePassword) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
37
47
  let sessionPublicKey = undefined;
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
- import { createEmailVerification, signInWithEmailVerification } from '../../../data/api/email/email.js';
3
+ import { createEmailVerification, retryEmailVerification, signInWithEmailVerification } from '../../../data/api/email/email.js';
4
4
  import '@dynamic-labs/sdk-api-core';
5
5
  import '@dynamic-labs/utils';
6
6
  import '../../../shared/logger.js';
@@ -23,11 +23,21 @@ import '../../../store/state/projectSettings/projectSettings.js';
23
23
  import '../../../locale/locale.js';
24
24
 
25
25
  const createEmailHandler = (environmentId, { shouldRegisterSessionKeysOnSignin, generateSessionKey, }) => (email) => __awaiter(void 0, void 0, void 0, function* () {
26
- const { verificationUUID } = yield createEmailVerification({
26
+ const createEmailVerificationResponse = yield createEmailVerification({
27
27
  email,
28
28
  environmentId,
29
29
  });
30
+ let { verificationUUID } = createEmailVerificationResponse;
30
31
  return {
32
+ retry: () => __awaiter(void 0, void 0, void 0, function* () {
33
+ const retryEmailVerificationResponse = yield retryEmailVerification({
34
+ email,
35
+ environmentId,
36
+ verificationUUID,
37
+ });
38
+ // eslint-disable-next-line prefer-destructuring
39
+ verificationUUID = retryEmailVerificationResponse.verificationUUID;
40
+ }),
31
41
  type: 'email',
32
42
  verify: (oneTimePassword) => __awaiter(void 0, void 0, void 0, function* () {
33
43
  let sessionPublicKey = undefined;
@@ -5,15 +5,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var _tslib = require('../../../../../../_virtual/_tslib.cjs');
7
7
  var React = require('react');
8
+ var utils = require('@dynamic-labs/utils');
8
9
  require('@dynamic-labs/sdk-api-core');
9
- require('../../../../shared/logger.cjs');
10
+ var logger = require('../../../../shared/logger.cjs');
10
11
  require('@dynamic-labs/iconic');
11
12
  require('@dynamic-labs/wallet-connector-core');
12
13
  require('react/jsx-runtime');
13
14
  var ViewContext = require('../../../ViewContext/ViewContext.cjs');
14
15
  require('@dynamic-labs/wallet-book');
15
16
  var isSSR = require('../../../../shared/utils/functions/isSSR/isSSR.cjs');
16
- require('@dynamic-labs/utils');
17
17
  require('../../../../utils/constants/colors.cjs');
18
18
  require('../../../../utils/constants/values.cjs');
19
19
  var useEffectOnce = require('../../../../shared/utils/hooks/useEffectOnce/useEffectOnce.cjs');
@@ -29,7 +29,7 @@ require('react-international-phone');
29
29
  var socialStorage = require('../../../../utils/functions/socialStorage/socialStorage.cjs');
30
30
  var getSocialSignInProviderForProviderEnum = require('../../../../utils/functions/getSocialSignInProviderForProviderEnum/getSocialSignInProviderForProviderEnum.cjs');
31
31
  require('../../../../config/ApiEndpoint.cjs');
32
- require('../../../../store/state/user/user.cjs');
32
+ var user = require('../../../../store/state/user/user.cjs');
33
33
  require('../../../../locale/locale.cjs');
34
34
  require('../../../../store/state/projectSettings/projectSettings.cjs');
35
35
  require('../../../AccessDeniedContext/AccessDeniedContext.cjs');
@@ -101,7 +101,7 @@ const useRedirectSocialHandler = ({ setSocialProvider, }) => {
101
101
  const { setView } = ViewContext.useViewContext();
102
102
  const { setDynamicWidgetView } = DynamicWidgetContext.useWidgetContext();
103
103
  const [socialStorageItem, setSocialStorageItem] = React.useState(null);
104
- const { sdkHasLoaded, user, setShowAuthFlow, isRenderingEmbeddedAuthFlow, setShowDynamicUserProfile, } = useInternalDynamicContext.useInternalDynamicContext();
104
+ const { sdkHasLoaded, setShowAuthFlow, isRenderingEmbeddedAuthFlow, setShowDynamicUserProfile, } = useInternalDynamicContext.useInternalDynamicContext();
105
105
  const { completeConnection } = useSocialAuth.useSocialAuth({
106
106
  sessionTimeout: 10000,
107
107
  });
@@ -140,17 +140,24 @@ const useRedirectSocialHandler = ({ setSocialProvider, }) => {
140
140
  useEffectOnceCondition.useEffectOnceCondition(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
141
141
  if (!socialStorageItem)
142
142
  return;
143
- const authMode = user ? 'link' : 'signin';
144
143
  // Update UI to reflect the original state
145
- if (authMode === 'signin') {
144
+ if (socialStorageItem.mode === 'signin') {
145
+ if (user.getUser()) {
146
+ logger.logger.error(new utils.DynamicError('User is already logged in'));
147
+ return;
148
+ }
146
149
  updateInterfaceStateForSignIn(socialStorageItem);
147
150
  }
148
- else if (authMode === 'link') {
151
+ else if (socialStorageItem.mode === 'link') {
152
+ if (!user.getUser()) {
153
+ logger.logger.error(new utils.DynamicError('User not logged in'));
154
+ return;
155
+ }
149
156
  updateInterfaceStateForLink();
150
157
  }
151
158
  yield completeConnection({
152
159
  authCode: socialStorageItem.code,
153
- authMode,
160
+ authMode: socialStorageItem.mode,
154
161
  captchaToken: socialStorageItem.captchaToken,
155
162
  provider: socialStorageItem.provider,
156
163
  state: socialStorageItem.state,
@@ -1,15 +1,15 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../../../_virtual/_tslib.js';
3
3
  import { useState, useCallback } from 'react';
4
+ import { DynamicError } from '@dynamic-labs/utils';
4
5
  import '@dynamic-labs/sdk-api-core';
5
- import '../../../../shared/logger.js';
6
+ import { logger } from '../../../../shared/logger.js';
6
7
  import '@dynamic-labs/iconic';
7
8
  import '@dynamic-labs/wallet-connector-core';
8
9
  import 'react/jsx-runtime';
9
10
  import { useViewContext } from '../../../ViewContext/ViewContext.js';
10
11
  import '@dynamic-labs/wallet-book';
11
12
  import { isSSR } from '../../../../shared/utils/functions/isSSR/isSSR.js';
12
- import '@dynamic-labs/utils';
13
13
  import '../../../../utils/constants/colors.js';
14
14
  import '../../../../utils/constants/values.js';
15
15
  import { useEffectOnce } from '../../../../shared/utils/hooks/useEffectOnce/useEffectOnce.js';
@@ -25,7 +25,7 @@ import 'react-international-phone';
25
25
  import { searchSocialStorageByState, deleteSocialStorage } from '../../../../utils/functions/socialStorage/socialStorage.js';
26
26
  import { getSocialSignInProviderForProviderEnum } from '../../../../utils/functions/getSocialSignInProviderForProviderEnum/getSocialSignInProviderForProviderEnum.js';
27
27
  import '../../../../config/ApiEndpoint.js';
28
- import '../../../../store/state/user/user.js';
28
+ import { getUser } from '../../../../store/state/user/user.js';
29
29
  import '../../../../locale/locale.js';
30
30
  import '../../../../store/state/projectSettings/projectSettings.js';
31
31
  import '../../../AccessDeniedContext/AccessDeniedContext.js';
@@ -97,7 +97,7 @@ const useRedirectSocialHandler = ({ setSocialProvider, }) => {
97
97
  const { setView } = useViewContext();
98
98
  const { setDynamicWidgetView } = useWidgetContext();
99
99
  const [socialStorageItem, setSocialStorageItem] = useState(null);
100
- const { sdkHasLoaded, user, setShowAuthFlow, isRenderingEmbeddedAuthFlow, setShowDynamicUserProfile, } = useInternalDynamicContext();
100
+ const { sdkHasLoaded, setShowAuthFlow, isRenderingEmbeddedAuthFlow, setShowDynamicUserProfile, } = useInternalDynamicContext();
101
101
  const { completeConnection } = useSocialAuth({
102
102
  sessionTimeout: 10000,
103
103
  });
@@ -136,17 +136,24 @@ const useRedirectSocialHandler = ({ setSocialProvider, }) => {
136
136
  useEffectOnceCondition(() => __awaiter(void 0, void 0, void 0, function* () {
137
137
  if (!socialStorageItem)
138
138
  return;
139
- const authMode = user ? 'link' : 'signin';
140
139
  // Update UI to reflect the original state
141
- if (authMode === 'signin') {
140
+ if (socialStorageItem.mode === 'signin') {
141
+ if (getUser()) {
142
+ logger.error(new DynamicError('User is already logged in'));
143
+ return;
144
+ }
142
145
  updateInterfaceStateForSignIn(socialStorageItem);
143
146
  }
144
- else if (authMode === 'link') {
147
+ else if (socialStorageItem.mode === 'link') {
148
+ if (!getUser()) {
149
+ logger.error(new DynamicError('User not logged in'));
150
+ return;
151
+ }
145
152
  updateInterfaceStateForLink();
146
153
  }
147
154
  yield completeConnection({
148
155
  authCode: socialStorageItem.code,
149
- authMode,
156
+ authMode: socialStorageItem.mode,
150
157
  captchaToken: socialStorageItem.captchaToken,
151
158
  provider: socialStorageItem.provider,
152
159
  state: socialStorageItem.state,
@@ -820,31 +820,37 @@ const translation = {
820
820
  * @description Settings for Dynamic settings view which are used inside dynamic widget
821
821
  * @default
822
822
  * {
823
- global_section: {
824
- title: 'Global',
825
- currency: {
826
- title: 'Currency',
827
- badge: 'coming soon',
828
- },
829
- },
830
- export_section: {
831
- private_key_button: 'Private key',
832
- srp_button: 'Recovery phrase',
833
- title: 'Export & Backup',
834
- },
835
- identity_section: {
836
- title: 'Recovery',
837
- add_email_button: 'Add an email',
823
+ global_section: {
824
+ title: 'Global',
825
+ currency: {
826
+ title: 'Currency',
827
+ badge: 'coming soon',
838
828
  },
839
- tags: { recommended: 'Recommended' },
840
- security_section: {
841
- email_auth_button: 'One time code',
842
- passkey_button: 'Passkeys',
843
- password_button: 'Passcode',
844
- title: 'Security Methods',
845
- },
846
- title: 'Settings',
847
- }
829
+ },
830
+ global_connectivity_section: {
831
+ title: 'Global Connectivity',
832
+ connected_apps_button: 'Connected Apps',
833
+ },
834
+ export_section: {
835
+ private_key_button: 'Private key',
836
+ srp_button: 'Recovery phrase',
837
+ title: 'Export & Backup',
838
+ },
839
+ identity_section: {
840
+ title: 'Recovery',
841
+ add_email_button: 'Add an email',
842
+ },
843
+ tags: { recommended: 'Recommended' },
844
+ security_section: {
845
+ email_auth_button: 'One time code',
846
+ passkey_button: 'Passkeys',
847
+ password_button: 'Passcode',
848
+ mfa_button: 'Authenticator App',
849
+ title: '2 factor authentication',
850
+ },
851
+ title: 'Settings',
852
+ button_logout: 'Log out',
853
+ }
848
854
  */
849
855
  dyn_settings: {
850
856
  global_section: {
@@ -854,6 +860,10 @@ const translation = {
854
860
  badge: 'coming soon',
855
861
  },
856
862
  },
863
+ global_connectivity_section: {
864
+ title: 'Global Connectivity',
865
+ connected_apps_button: 'Connected Apps',
866
+ },
857
867
  export_section: {
858
868
  private_key_button: 'Private key',
859
869
  srp_button: 'Recovery phrase',
@@ -926,6 +936,10 @@ const translation = {
926
936
  proceed: 'Proceed',
927
937
  },
928
938
  },
939
+ connected_apps: {
940
+ title: 'Connected Apps',
941
+ no_connections: 'No connected apps',
942
+ },
929
943
  },
930
944
  */
931
945
  global_wallet: {
@@ -973,6 +987,11 @@ const translation = {
973
987
  proceed: 'Proceed',
974
988
  },
975
989
  },
990
+ connected_apps: {
991
+ title: 'Connected Apps',
992
+ subtitle: 'Connected apps allow you to interact with your wallet on other platforms.',
993
+ success: 'Successfully connected to {{name}}.',
994
+ },
976
995
  },
977
996
  /**
978
997
  * @description copy keys for mfa management view
@@ -814,31 +814,37 @@ export declare const translation: {
814
814
  * @description Settings for Dynamic settings view which are used inside dynamic widget
815
815
  * @default
816
816
  * {
817
- global_section: {
818
- title: 'Global',
819
- currency: {
820
- title: 'Currency',
821
- badge: 'coming soon',
822
- },
823
- },
824
- export_section: {
825
- private_key_button: 'Private key',
826
- srp_button: 'Recovery phrase',
827
- title: 'Export & Backup',
828
- },
829
- identity_section: {
830
- title: 'Recovery',
831
- add_email_button: 'Add an email',
817
+ global_section: {
818
+ title: 'Global',
819
+ currency: {
820
+ title: 'Currency',
821
+ badge: 'coming soon',
832
822
  },
833
- tags: { recommended: 'Recommended' },
834
- security_section: {
835
- email_auth_button: 'One time code',
836
- passkey_button: 'Passkeys',
837
- password_button: 'Passcode',
838
- title: 'Security Methods',
839
- },
840
- title: 'Settings',
841
- }
823
+ },
824
+ global_connectivity_section: {
825
+ title: 'Global Connectivity',
826
+ connected_apps_button: 'Connected Apps',
827
+ },
828
+ export_section: {
829
+ private_key_button: 'Private key',
830
+ srp_button: 'Recovery phrase',
831
+ title: 'Export & Backup',
832
+ },
833
+ identity_section: {
834
+ title: 'Recovery',
835
+ add_email_button: 'Add an email',
836
+ },
837
+ tags: { recommended: 'Recommended' },
838
+ security_section: {
839
+ email_auth_button: 'One time code',
840
+ passkey_button: 'Passkeys',
841
+ password_button: 'Passcode',
842
+ mfa_button: 'Authenticator App',
843
+ title: '2 factor authentication',
844
+ },
845
+ title: 'Settings',
846
+ button_logout: 'Log out',
847
+ }
842
848
  */
843
849
  dyn_settings: {
844
850
  global_section: {
@@ -848,6 +854,10 @@ export declare const translation: {
848
854
  badge: string;
849
855
  };
850
856
  };
857
+ global_connectivity_section: {
858
+ title: string;
859
+ connected_apps_button: string;
860
+ };
851
861
  export_section: {
852
862
  private_key_button: string;
853
863
  srp_button: string;
@@ -922,6 +932,10 @@ export declare const translation: {
922
932
  proceed: 'Proceed',
923
933
  },
924
934
  },
935
+ connected_apps: {
936
+ title: 'Connected Apps',
937
+ no_connections: 'No connected apps',
938
+ },
925
939
  },
926
940
  */
927
941
  global_wallet: {
@@ -969,6 +983,11 @@ export declare const translation: {
969
983
  proceed: string;
970
984
  };
971
985
  };
986
+ connected_apps: {
987
+ title: string;
988
+ subtitle: string;
989
+ success: string;
990
+ };
972
991
  };
973
992
  /**
974
993
  * @description copy keys for mfa management view
@@ -816,31 +816,37 @@ const translation = {
816
816
  * @description Settings for Dynamic settings view which are used inside dynamic widget
817
817
  * @default
818
818
  * {
819
- global_section: {
820
- title: 'Global',
821
- currency: {
822
- title: 'Currency',
823
- badge: 'coming soon',
824
- },
825
- },
826
- export_section: {
827
- private_key_button: 'Private key',
828
- srp_button: 'Recovery phrase',
829
- title: 'Export & Backup',
830
- },
831
- identity_section: {
832
- title: 'Recovery',
833
- add_email_button: 'Add an email',
819
+ global_section: {
820
+ title: 'Global',
821
+ currency: {
822
+ title: 'Currency',
823
+ badge: 'coming soon',
834
824
  },
835
- tags: { recommended: 'Recommended' },
836
- security_section: {
837
- email_auth_button: 'One time code',
838
- passkey_button: 'Passkeys',
839
- password_button: 'Passcode',
840
- title: 'Security Methods',
841
- },
842
- title: 'Settings',
843
- }
825
+ },
826
+ global_connectivity_section: {
827
+ title: 'Global Connectivity',
828
+ connected_apps_button: 'Connected Apps',
829
+ },
830
+ export_section: {
831
+ private_key_button: 'Private key',
832
+ srp_button: 'Recovery phrase',
833
+ title: 'Export & Backup',
834
+ },
835
+ identity_section: {
836
+ title: 'Recovery',
837
+ add_email_button: 'Add an email',
838
+ },
839
+ tags: { recommended: 'Recommended' },
840
+ security_section: {
841
+ email_auth_button: 'One time code',
842
+ passkey_button: 'Passkeys',
843
+ password_button: 'Passcode',
844
+ mfa_button: 'Authenticator App',
845
+ title: '2 factor authentication',
846
+ },
847
+ title: 'Settings',
848
+ button_logout: 'Log out',
849
+ }
844
850
  */
845
851
  dyn_settings: {
846
852
  global_section: {
@@ -850,6 +856,10 @@ const translation = {
850
856
  badge: 'coming soon',
851
857
  },
852
858
  },
859
+ global_connectivity_section: {
860
+ title: 'Global Connectivity',
861
+ connected_apps_button: 'Connected Apps',
862
+ },
853
863
  export_section: {
854
864
  private_key_button: 'Private key',
855
865
  srp_button: 'Recovery phrase',
@@ -922,6 +932,10 @@ const translation = {
922
932
  proceed: 'Proceed',
923
933
  },
924
934
  },
935
+ connected_apps: {
936
+ title: 'Connected Apps',
937
+ no_connections: 'No connected apps',
938
+ },
925
939
  },
926
940
  */
927
941
  global_wallet: {
@@ -969,6 +983,11 @@ const translation = {
969
983
  proceed: 'Proceed',
970
984
  },
971
985
  },
986
+ connected_apps: {
987
+ title: 'Connected Apps',
988
+ subtitle: 'Connected apps allow you to interact with your wallet on other platforms.',
989
+ success: 'Successfully connected to {{name}}.',
990
+ },
972
991
  },
973
992
  /**
974
993
  * @description copy keys for mfa management view
@@ -79,7 +79,7 @@ require('../../components/IsBrowser/IsBrowser.cjs');
79
79
  require('../../context/WidgetRegistry/WidgetRegistryContextProvider.cjs');
80
80
  require('../../context/FundingContext/FundingContext.cjs');
81
81
  require('../../components/Popper/Popper/Popper.cjs');
82
- require('../../components/Popper/PopperContext/PopperContext.cjs');
82
+ var PopperContext = require('../../components/Popper/PopperContext/PopperContext.cjs');
83
83
  require('../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.cjs');
84
84
  require('@hcaptcha/react-hcaptcha');
85
85
  require('../../context/IpConfigurationContext/IpConfigurationContext.cjs');
@@ -112,10 +112,10 @@ const SendBalanceModal = ({ initialRecipientAddress, initialValue, onReject, onS
112
112
  };
113
113
  return (jsxRuntime.jsx(Portal.Portal, { handleClose: closeModal, isShown: show, zIndex: index.authModalZIndex, withBackdrop: true, elementId: 'dynamic-send-balance', transitionEvents: {
114
114
  onUnmount: handleOnModalUnmount,
115
- }, children: jsxRuntime.jsx(Modal.Modal, { children: jsxRuntime.jsx(ModalCard.ModalCard, { children: jsxRuntime.jsx(VerticalDrawerTransition.VerticalDrawerTransition, { isShown: true, children: jsxRuntime.jsx(SendBalanceView.SendBalanceView, { initialRecipientAddress: initialRecipientAddress, initialValue: initialValue, onError: (error) => (errorRef.current = error), onClickClose: closeModal, onDone: closeModal, displayPoweredByDynamicFooter: true, onSuccess: (receipt) => {
116
- errorRef.current = null;
117
- receiptRef.current = receipt;
118
- } }) }) }) }) }));
115
+ }, children: jsxRuntime.jsx(Modal.Modal, { children: jsxRuntime.jsx(ModalCard.ModalCard, { children: jsxRuntime.jsx(VerticalDrawerTransition.VerticalDrawerTransition, { isShown: true, children: jsxRuntime.jsx(PopperContext.PopperProvider, { children: jsxRuntime.jsx(SendBalanceView.SendBalanceView, { initialRecipientAddress: initialRecipientAddress, initialValue: initialValue, onError: (error) => (errorRef.current = error), onClickClose: closeModal, onDone: closeModal, displayPoweredByDynamicFooter: true, onSuccess: (receipt) => {
116
+ errorRef.current = null;
117
+ receiptRef.current = receipt;
118
+ } }) }) }) }) }) }));
119
119
  };
120
120
 
121
121
  exports.SendBalanceModal = SendBalanceModal;
@@ -75,7 +75,7 @@ import '../../components/IsBrowser/IsBrowser.js';
75
75
  import '../../context/WidgetRegistry/WidgetRegistryContextProvider.js';
76
76
  import '../../context/FundingContext/FundingContext.js';
77
77
  import '../../components/Popper/Popper/Popper.js';
78
- import '../../components/Popper/PopperContext/PopperContext.js';
78
+ import { PopperProvider } from '../../components/Popper/PopperContext/PopperContext.js';
79
79
  import '../../widgets/DynamicBridgeWidget/views/WalletsView/components/SecondaryWallets/SecondaryWallets.js';
80
80
  import '@hcaptcha/react-hcaptcha';
81
81
  import '../../context/IpConfigurationContext/IpConfigurationContext.js';
@@ -108,10 +108,10 @@ const SendBalanceModal = ({ initialRecipientAddress, initialValue, onReject, onS
108
108
  };
109
109
  return (jsx(Portal, { handleClose: closeModal, isShown: show, zIndex: authModalZIndex, withBackdrop: true, elementId: 'dynamic-send-balance', transitionEvents: {
110
110
  onUnmount: handleOnModalUnmount,
111
- }, children: jsx(Modal, { children: jsx(ModalCard, { children: jsx(VerticalDrawerTransition, { isShown: true, children: jsx(SendBalanceView, { initialRecipientAddress: initialRecipientAddress, initialValue: initialValue, onError: (error) => (errorRef.current = error), onClickClose: closeModal, onDone: closeModal, displayPoweredByDynamicFooter: true, onSuccess: (receipt) => {
112
- errorRef.current = null;
113
- receiptRef.current = receipt;
114
- } }) }) }) }) }));
111
+ }, children: jsx(Modal, { children: jsx(ModalCard, { children: jsx(VerticalDrawerTransition, { isShown: true, children: jsx(PopperProvider, { children: jsx(SendBalanceView, { initialRecipientAddress: initialRecipientAddress, initialValue: initialValue, onError: (error) => (errorRef.current = error), onClickClose: closeModal, onDone: closeModal, displayPoweredByDynamicFooter: true, onSuccess: (receipt) => {
112
+ errorRef.current = null;
113
+ receiptRef.current = receipt;
114
+ } }) }) }) }) }) }));
115
115
  };
116
116
 
117
117
  export { SendBalanceModal };