@turnkey/react-wallet-kit 2.0.0 → 2.1.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 (169) hide show
  1. package/dist/components/auth/index.d.ts.map +1 -1
  2. package/dist/components/auth/index.js +7 -57
  3. package/dist/components/auth/index.js.map +1 -1
  4. package/dist/components/auth/index.mjs +16 -132
  5. package/dist/components/auth/index.mjs.map +1 -1
  6. package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts +10 -0
  7. package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts.map +1 -0
  8. package/dist/components/auth/wallet/DesktopWalletConnectScreen.js +204 -0
  9. package/dist/components/auth/wallet/DesktopWalletConnectScreen.js.map +1 -0
  10. package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs +253 -0
  11. package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs.map +1 -0
  12. package/dist/components/auth/wallet/DisconnectWalletScreen.d.ts +8 -0
  13. package/dist/components/auth/wallet/DisconnectWalletScreen.d.ts.map +1 -0
  14. package/dist/components/auth/wallet/DisconnectWalletScreen.js +58 -0
  15. package/dist/components/auth/wallet/DisconnectWalletScreen.js.map +1 -0
  16. package/dist/components/auth/wallet/DisconnectWalletScreen.mjs +80 -0
  17. package/dist/components/auth/wallet/DisconnectWalletScreen.mjs.map +1 -0
  18. package/dist/components/auth/wallet/ExternalWalletChainSelector.d.ts +10 -0
  19. package/dist/components/auth/wallet/ExternalWalletChainSelector.d.ts.map +1 -0
  20. package/dist/components/auth/wallet/ExternalWalletChainSelector.js +115 -0
  21. package/dist/components/auth/wallet/ExternalWalletChainSelector.js.map +1 -0
  22. package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs +149 -0
  23. package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs.map +1 -0
  24. package/dist/components/auth/wallet/ExternalWalletSelector.d.ts +18 -0
  25. package/dist/components/auth/wallet/ExternalWalletSelector.d.ts.map +1 -0
  26. package/dist/components/auth/wallet/ExternalWalletSelector.js +233 -0
  27. package/dist/components/auth/wallet/ExternalWalletSelector.js.map +1 -0
  28. package/dist/components/auth/wallet/ExternalWalletSelector.mjs +323 -0
  29. package/dist/components/auth/wallet/ExternalWalletSelector.mjs.map +1 -0
  30. package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts +11 -0
  31. package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts.map +1 -0
  32. package/dist/components/auth/wallet/MobileWalletConnectScreen.js +200 -0
  33. package/dist/components/auth/wallet/MobileWalletConnectScreen.js.map +1 -0
  34. package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs +251 -0
  35. package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs.map +1 -0
  36. package/dist/components/auth/wallet/QRCodeDisplay.d.ts +8 -0
  37. package/dist/components/auth/wallet/QRCodeDisplay.d.ts.map +1 -0
  38. package/dist/components/auth/wallet/QRCodeDisplay.js +37 -0
  39. package/dist/components/auth/wallet/QRCodeDisplay.js.map +1 -0
  40. package/dist/components/auth/wallet/QRCodeDisplay.mjs +33 -0
  41. package/dist/components/auth/wallet/QRCodeDisplay.mjs.map +1 -0
  42. package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts +8 -0
  43. package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts.map +1 -0
  44. package/dist/components/auth/wallet/ShowAllWalletsScreen.js +253 -0
  45. package/dist/components/auth/wallet/ShowAllWalletsScreen.js.map +1 -0
  46. package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs +299 -0
  47. package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs.map +1 -0
  48. package/dist/components/auth/wallet/WalletAuthButton.d.ts +6 -0
  49. package/dist/components/auth/wallet/WalletAuthButton.d.ts.map +1 -0
  50. package/dist/components/auth/wallet/WalletAuthButton.js +33 -0
  51. package/dist/components/auth/wallet/WalletAuthButton.js.map +1 -0
  52. package/dist/components/auth/wallet/WalletAuthButton.mjs +47 -0
  53. package/dist/components/auth/wallet/WalletAuthButton.mjs.map +1 -0
  54. package/dist/components/auth/wallet/WalletButton.d.ts +16 -0
  55. package/dist/components/auth/wallet/WalletButton.d.ts.map +1 -0
  56. package/dist/components/auth/wallet/WalletButton.js +79 -0
  57. package/dist/components/auth/wallet/WalletButton.js.map +1 -0
  58. package/dist/components/auth/wallet/WalletButton.mjs +84 -0
  59. package/dist/components/auth/wallet/WalletButton.mjs.map +1 -0
  60. package/dist/components/auth/wallet/WalletButtonSkeleton.d.ts +2 -0
  61. package/dist/components/auth/wallet/WalletButtonSkeleton.d.ts.map +1 -0
  62. package/dist/components/auth/wallet/WalletButtonSkeleton.js +22 -0
  63. package/dist/components/auth/wallet/WalletButtonSkeleton.js.map +1 -0
  64. package/dist/components/auth/wallet/WalletButtonSkeleton.mjs +20 -0
  65. package/dist/components/auth/wallet/WalletButtonSkeleton.mjs.map +1 -0
  66. package/dist/components/auth/wallet/WalletConnectAppChainSelector.d.ts +12 -0
  67. package/dist/components/auth/wallet/WalletConnectAppChainSelector.d.ts.map +1 -0
  68. package/dist/components/auth/wallet/WalletConnectAppChainSelector.js +79 -0
  69. package/dist/components/auth/wallet/WalletConnectAppChainSelector.js.map +1 -0
  70. package/dist/components/auth/wallet/WalletConnectAppChainSelector.mjs +102 -0
  71. package/dist/components/auth/wallet/WalletConnectAppChainSelector.mjs.map +1 -0
  72. package/dist/components/auth/wallet/WalletConnectFlow.d.ts +21 -0
  73. package/dist/components/auth/wallet/WalletConnectFlow.d.ts.map +1 -0
  74. package/dist/components/auth/wallet/WalletConnectFlow.js +163 -0
  75. package/dist/components/auth/wallet/WalletConnectFlow.js.map +1 -0
  76. package/dist/components/auth/wallet/WalletConnectFlow.mjs +310 -0
  77. package/dist/components/auth/wallet/WalletConnectFlow.mjs.map +1 -0
  78. package/dist/components/auth/wallet/constants.d.ts +6 -0
  79. package/dist/components/auth/wallet/constants.d.ts.map +1 -0
  80. package/dist/components/auth/wallet/constants.js +14 -0
  81. package/dist/components/auth/wallet/constants.js.map +1 -0
  82. package/dist/components/auth/wallet/constants.mjs +8 -0
  83. package/dist/components/auth/wallet/constants.mjs.map +1 -0
  84. package/dist/components/auth/wallet/utils.d.ts +4 -0
  85. package/dist/components/auth/wallet/utils.d.ts.map +1 -0
  86. package/dist/components/auth/wallet/utils.js +9 -0
  87. package/dist/components/auth/wallet/utils.js.map +1 -0
  88. package/dist/components/auth/wallet/utils.mjs +7 -0
  89. package/dist/components/auth/wallet/utils.mjs.map +1 -0
  90. package/dist/components/design/Buttons.d.ts +1 -0
  91. package/dist/components/design/Buttons.d.ts.map +1 -1
  92. package/dist/components/design/Buttons.js +2 -0
  93. package/dist/components/design/Buttons.js.map +1 -1
  94. package/dist/components/design/Buttons.mjs +2 -0
  95. package/dist/components/design/Buttons.mjs.map +1 -1
  96. package/dist/components/design/ConnectedIndicator.d.ts +6 -0
  97. package/dist/components/design/ConnectedIndicator.d.ts.map +1 -0
  98. package/dist/components/design/ConnectedIndicator.js +20 -0
  99. package/dist/components/design/ConnectedIndicator.js.map +1 -0
  100. package/dist/components/design/ConnectedIndicator.mjs +17 -0
  101. package/dist/components/design/ConnectedIndicator.mjs.map +1 -0
  102. package/dist/components/design/Inputs.d.ts +7 -0
  103. package/dist/components/design/Inputs.d.ts.map +1 -1
  104. package/dist/components/design/Inputs.js +37 -0
  105. package/dist/components/design/Inputs.js.map +1 -1
  106. package/dist/components/design/Inputs.mjs +39 -2
  107. package/dist/components/design/Inputs.mjs.map +1 -1
  108. package/dist/components/design/Svg.d.ts +1 -0
  109. package/dist/components/design/Svg.d.ts.map +1 -1
  110. package/dist/components/user/ConnectWallet.d.ts +1 -1
  111. package/dist/components/user/ConnectWallet.d.ts.map +1 -1
  112. package/dist/components/user/ConnectWallet.js +6 -100
  113. package/dist/components/user/ConnectWallet.js.map +1 -1
  114. package/dist/components/user/ConnectWallet.mjs +5 -183
  115. package/dist/components/user/ConnectWallet.mjs.map +1 -1
  116. package/dist/index.js +4 -0
  117. package/dist/index.js.map +1 -1
  118. package/dist/index.mjs +1 -1
  119. package/dist/providers/TurnkeyProvider.d.ts.map +1 -1
  120. package/dist/providers/TurnkeyProvider.js +2 -1
  121. package/dist/providers/TurnkeyProvider.js.map +1 -1
  122. package/dist/providers/TurnkeyProvider.mjs +4 -3
  123. package/dist/providers/TurnkeyProvider.mjs.map +1 -1
  124. package/dist/providers/WalletConnectProvider.d.ts +23 -0
  125. package/dist/providers/WalletConnectProvider.d.ts.map +1 -0
  126. package/dist/providers/WalletConnectProvider.js +72 -0
  127. package/dist/providers/WalletConnectProvider.js.map +1 -0
  128. package/dist/providers/WalletConnectProvider.mjs +93 -0
  129. package/dist/providers/WalletConnectProvider.mjs.map +1 -0
  130. package/dist/providers/client/Provider.d.ts.map +1 -1
  131. package/dist/providers/client/Provider.js +5 -2
  132. package/dist/providers/client/Provider.js.map +1 -1
  133. package/dist/providers/client/Provider.mjs +5 -2
  134. package/dist/providers/client/Provider.mjs.map +1 -1
  135. package/dist/providers/modal/Provider.d.ts +5 -1
  136. package/dist/providers/modal/Provider.d.ts.map +1 -1
  137. package/dist/providers/modal/Provider.js.map +1 -1
  138. package/dist/providers/modal/Provider.mjs.map +1 -1
  139. package/dist/providers/modal/Root.d.ts.map +1 -1
  140. package/dist/providers/modal/Root.js +2 -0
  141. package/dist/providers/modal/Root.js.map +1 -1
  142. package/dist/providers/modal/Root.mjs +2 -0
  143. package/dist/providers/modal/Root.mjs.map +1 -1
  144. package/dist/providers/theme/Overrides.d.ts +1 -0
  145. package/dist/providers/theme/Overrides.d.ts.map +1 -1
  146. package/dist/providers/theme/Overrides.js +3 -1
  147. package/dist/providers/theme/Overrides.js.map +1 -1
  148. package/dist/providers/theme/Overrides.mjs +3 -1
  149. package/dist/providers/theme/Overrides.mjs.map +1 -1
  150. package/dist/styles.css +1 -1
  151. package/dist/types/base.d.ts +8 -0
  152. package/dist/types/base.d.ts.map +1 -1
  153. package/dist/types/base.js +7 -0
  154. package/dist/types/base.js.map +1 -1
  155. package/dist/types/base.mjs +8 -1
  156. package/dist/types/base.mjs.map +1 -1
  157. package/dist/utils/utils.d.ts +2 -1
  158. package/dist/utils/utils.d.ts.map +1 -1
  159. package/dist/utils/utils.js +5 -0
  160. package/dist/utils/utils.js.map +1 -1
  161. package/dist/utils/utils.mjs +7 -1
  162. package/dist/utils/utils.mjs.map +1 -1
  163. package/package.json +5 -5
  164. package/dist/components/auth/Wallet.d.ts +0 -34
  165. package/dist/components/auth/Wallet.d.ts.map +0 -1
  166. package/dist/components/auth/Wallet.js +0 -514
  167. package/dist/components/auth/Wallet.js.map +0 -1
  168. package/dist/components/auth/Wallet.mjs +0 -615
  169. package/dist/components/auth/Wallet.mjs.map +0 -1
@@ -0,0 +1,80 @@
1
+ import { slicedToArray as _slicedToArray, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../_virtual/_rollupPluginBabelHelpers.mjs';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { ActionButton } from '../../design/Buttons.mjs';
4
+ import { useState } from 'react';
5
+ import clsx from 'clsx';
6
+ import { useModal } from '../../../providers/modal/Hook.mjs';
7
+
8
+ function DisconnectWalletScreen(props) {
9
+ var _provider$info$icon;
10
+ var provider = props.provider,
11
+ onDisconnect = props.onDisconnect;
12
+ var _useModal = useModal(),
13
+ isMobile = _useModal.isMobile;
14
+ var _useState = useState(false),
15
+ _useState2 = _slicedToArray(_useState, 2),
16
+ isLoading = _useState2[0],
17
+ setIsLoading = _useState2[1];
18
+ var _useState3 = useState(false),
19
+ _useState4 = _slicedToArray(_useState3, 2),
20
+ hasError = _useState4[0],
21
+ setHasError = _useState4[1];
22
+ var handleDisconnect = /*#__PURE__*/function () {
23
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
24
+ return _regenerator().w(function (_context) {
25
+ while (1) switch (_context.p = _context.n) {
26
+ case 0:
27
+ setIsLoading(true);
28
+ setHasError(false);
29
+ _context.p = 1;
30
+ _context.n = 2;
31
+ return onDisconnect(provider);
32
+ case 2:
33
+ _context.n = 4;
34
+ break;
35
+ case 3:
36
+ _context.p = 3;
37
+ _context.v;
38
+ setHasError(true);
39
+ case 4:
40
+ _context.p = 4;
41
+ setIsLoading(false);
42
+ return _context.f(4);
43
+ case 5:
44
+ return _context.a(2);
45
+ }
46
+ }, _callee, null, [[1, 3, 4, 5]]);
47
+ }));
48
+ return function handleDisconnect() {
49
+ return _ref.apply(this, arguments);
50
+ };
51
+ }();
52
+ return jsxs("div", {
53
+ className: clsx("mt-8", isMobile ? "w-full" : "w-96"),
54
+ children: [jsxs("div", {
55
+ className: "mt-6 mb-5 flex flex-col items-center gap-3",
56
+ children: [jsx("img", {
57
+ src: (_provider$info$icon = provider.info.icon) !== null && _provider$info$icon !== void 0 ? _provider$info$icon : "",
58
+ className: "size-14 rounded-full"
59
+ }), jsx("div", {
60
+ className: clsx("text-2xl font-bold text-center", hasError && "text-danger-light dark:text-danger-dark"),
61
+ children: hasError ? "You can't disconnect this wallet!" : "Disconnect ".concat(provider.info.name)
62
+ }), jsx("div", {
63
+ className: "text-icon-text-light dark:text-icon-text-dark text-center !p-0",
64
+ children: hasError ? "Try disconnecting directly from the ".concat(provider.info.name, " app") : "You can always connect this wallet again later."
65
+ })]
66
+ }), jsx("div", {
67
+ className: "flex my-2 mt-0",
68
+ children: jsx(ActionButton, {
69
+ onClick: handleDisconnect,
70
+ loading: isLoading,
71
+ className: clsx("w-full max-w-md bg-danger-light dark:bg-danger-dark text-primary-text-light dark:text-primary-text-dark", hasError && "animate-shake opacity-50"),
72
+ spinnerClassName: "text-primary-danger-text-light dark:text-primary-danger-text-dark",
73
+ children: "Disconnect Wallet"
74
+ })
75
+ })]
76
+ });
77
+ }
78
+
79
+ export { DisconnectWalletScreen };
80
+ //# sourceMappingURL=DisconnectWalletScreen.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisconnectWalletScreen.mjs","sources":["../../../../src/components/auth/wallet/DisconnectWalletScreen.tsx"],"sourcesContent":[null],"names":["DisconnectWalletScreen","props","_provider$info$icon","provider","onDisconnect","_useModal","useModal","isMobile","_useState","useState","_useState2","_slicedToArray","isLoading","setIsLoading","_useState3","_useState4","hasError","setHasError","handleDisconnect","_ref","_asyncToGenerator","_regenerator","m","_callee","w","_context","p","n","v","f","a","apply","arguments","_jsxs","className","clsx","children","_jsx","src","info","icon","concat","name","ActionButton","onClick","loading","spinnerClassName"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { WalletProvider } from "@turnkey/core";
2
+ interface ExternalWalletChainSelectorProps {
3
+ providers: WalletProvider[];
4
+ onSelect: (provider: WalletProvider) => Promise<void>;
5
+ /** When provided, connected providers show disconnect UI and this handler is called on click. */
6
+ onDisconnect?: ((provider: WalletProvider) => Promise<void>) | undefined;
7
+ }
8
+ export declare function ExternalWalletChainSelector(props: ExternalWalletChainSelectorProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=ExternalWalletChainSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalWalletChainSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/wallet/ExternalWalletChainSelector.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAOpD,UAAU,gCAAgC;IACxC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,iGAAiG;IACjG,YAAY,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CAC1E;AACD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,gCAAgC,2CAiIxC"}
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Buttons = require('../../design/Buttons.js');
5
+ var Svg = require('../../design/Svg.js');
6
+ var reactFontawesome = require('@fortawesome/react-fontawesome');
7
+ var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
8
+ var react = require('react');
9
+ var clsx = require('clsx');
10
+ var core = require('@turnkey/core');
11
+ var Hook$1 = require('../../../providers/modal/Hook.js');
12
+ var Hook = require('../../../providers/client/Hook.js');
13
+ var ConnectedIndicator = require('../../design/ConnectedIndicator.js');
14
+ var utils = require('./utils.js');
15
+
16
+ function ExternalWalletChainSelector(props) {
17
+ const {
18
+ providers,
19
+ onSelect,
20
+ onDisconnect
21
+ } = props;
22
+ const {
23
+ walletProviders
24
+ } = Hook.useTurnkey();
25
+ const {
26
+ isMobile,
27
+ popPage
28
+ } = Hook$1.useModal();
29
+ const [loadingProvider, setLoadingProvider] = react.useState();
30
+ // we find matching providers in current state
31
+ const currentProviders = providers.map(inputProvider => walletProviders.find(p => p.interfaceType === inputProvider.interfaceType && p.chainInfo.namespace === inputProvider.chainInfo.namespace)).filter(p => p !== undefined);
32
+ // if no providers are found then that means that the user entered this screen
33
+ // while WalletConnect was still initializing, and then it failed to initialize
34
+ react.useEffect(() => {
35
+ if (currentProviders.length === 0) {
36
+ popPage();
37
+ }
38
+ }, [currentProviders.length, popPage]);
39
+ const shouldShowDisconnect = onDisconnect !== undefined;
40
+ const handleSelect = async provider => {
41
+ setLoadingProvider(provider);
42
+ if (utils.canDisconnect(provider, shouldShowDisconnect)) {
43
+ await onDisconnect(provider);
44
+ } else {
45
+ await onSelect(provider);
46
+ }
47
+ setLoadingProvider(undefined);
48
+ };
49
+ return jsxRuntime.jsxs("div", {
50
+ className: clsx("flex flex-col w-72 gap-4 mt-11 items-center justify-center", isMobile ? "w-full" : "w-72"),
51
+ children: [jsxRuntime.jsx("img", {
52
+ src: providers[0]?.info.icon,
53
+ className: "size-14 rounded-full"
54
+ }), jsxRuntime.jsxs("span", {
55
+ className: "text-sm text-center text-icon-text-light dark:text-icon-text-dark",
56
+ children: [providers[0]?.info.name ?? "This wallet provider", " supports multiple chains. Select which chain you would like to use."]
57
+ }), jsxRuntime.jsx("div", {
58
+ className: "w-full flex flex-col gap-2",
59
+ children: currentProviders.map(p => {
60
+ const [isHovering, setIsHovering] = react.useState(false);
61
+ return jsxRuntime.jsxs(Buttons.ActionButton, {
62
+ loading: loadingProvider === p,
63
+ loadingText: "Preparing...",
64
+ onClick: () => handleSelect(p),
65
+ ...(!isMobile && {
66
+ // This looks weird on mobile since there's no hover state
67
+ onMouseEnter: () => setIsHovering(true),
68
+ onMouseLeave: () => setIsHovering(false)
69
+ }),
70
+ className: "relative overflow-hidden flex items-center justify-start gap-2 w-full text-inherit bg-button-light dark:bg-button-dark",
71
+ children: [core.isEthereumProvider(p) ? jsxRuntime.jsxs("div", {
72
+ className: "relative",
73
+ children: [jsxRuntime.jsx(Svg.EthereumLogo, {
74
+ className: "size-5"
75
+ }), utils.canDisconnect(p, shouldShowDisconnect) && jsxRuntime.jsx(ConnectedIndicator.ConnectedIndicator, {
76
+ isPinging: true
77
+ })]
78
+ }) : core.isSolanaProvider(p) ? jsxRuntime.jsxs("div", {
79
+ className: "relative",
80
+ children: [jsxRuntime.jsx(Svg.SolanaLogo, {
81
+ className: "size-5"
82
+ }), utils.canDisconnect(p, shouldShowDisconnect) && jsxRuntime.jsx(ConnectedIndicator.ConnectedIndicator, {
83
+ isPinging: true
84
+ })]
85
+ }) :
86
+ // we should never reach here
87
+ // if we do then it means we forgot to update the auth component after adding a new chain
88
+ jsxRuntime.jsx("div", {
89
+ className: "relative",
90
+ children: jsxRuntime.jsx("span", {
91
+ className: "size-5 flex items-center justify-center rounded bg-gray-300 dark:bg-gray-700",
92
+ children: "?"
93
+ })
94
+ }), jsxRuntime.jsxs("div", {
95
+ className: "flex flex-col items-start",
96
+ children: [core.isEthereumProvider(p) ? "EVM" : core.isSolanaProvider(p) ? "Solana" :
97
+ // we should never reach here
98
+ // if we do then it means we forgot to update the auth component after adding a new chain
99
+ `?`, utils.canDisconnect(p, shouldShowDisconnect) && jsxRuntime.jsxs("span", {
100
+ className: "text-xs text-icon-text-light dark:text-icon-text-dark",
101
+ children: ["Connected: ", p.connectedAddresses[0]?.slice(0, 4), "...", p.connectedAddresses[0]?.slice(-3)]
102
+ })]
103
+ }), jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
104
+ className: clsx(`absolute transition-all duration-200`, isHovering ? "right-4" : "-right-4", utils.canDisconnect(p, shouldShowDisconnect) ? "text-danger-light dark:text-danger-dark" : "text-icon-text-light dark:text-icon-text-dark"),
105
+ size: utils.canDisconnect(p, shouldShowDisconnect) ? "lg" : "1x",
106
+ icon: utils.canDisconnect(p, shouldShowDisconnect) ? freeSolidSvgIcons.faClose : freeSolidSvgIcons.faChevronRight
107
+ })]
108
+ }, p.chainInfo.namespace);
109
+ })
110
+ })]
111
+ });
112
+ }
113
+
114
+ exports.ExternalWalletChainSelector = ExternalWalletChainSelector;
115
+ //# sourceMappingURL=ExternalWalletChainSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalWalletChainSelector.js","sources":["../../../../src/components/auth/wallet/ExternalWalletChainSelector.tsx"],"sourcesContent":[null],"names":["ExternalWalletChainSelector","props","providers","onSelect","onDisconnect","walletProviders","useTurnkey","isMobile","popPage","useModal","loadingProvider","setLoadingProvider","useState","currentProviders","map","inputProvider","find","p","interfaceType","chainInfo","namespace","filter","undefined","useEffect","length","shouldShowDisconnect","handleSelect","provider","canDisconnect","_jsxs","className","clsx","children","_jsx","src","info","icon","name","isHovering","setIsHovering","ActionButton","loading","loadingText","onClick","onMouseEnter","onMouseLeave","isEthereumProvider","EthereumLogo","ConnectedIndicator","isPinging","isSolanaProvider","SolanaLogo","connectedAddresses","slice","FontAwesomeIcon","size","faClose","faChevronRight"],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import { slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../_virtual/_rollupPluginBabelHelpers.mjs';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { ActionButton } from '../../design/Buttons.mjs';
4
+ import { EthereumLogo, SolanaLogo } from '../../design/Svg.mjs';
5
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
6
+ import { faClose, faChevronRight } from '@fortawesome/free-solid-svg-icons';
7
+ import { useState, useEffect } from 'react';
8
+ import clsx from 'clsx';
9
+ import { isEthereumProvider, isSolanaProvider } from '@turnkey/core';
10
+ import { useModal } from '../../../providers/modal/Hook.mjs';
11
+ import { useTurnkey } from '../../../providers/client/Hook.mjs';
12
+ import { ConnectedIndicator } from '../../design/ConnectedIndicator.mjs';
13
+ import { canDisconnect } from './utils.mjs';
14
+
15
+ function ExternalWalletChainSelector(props) {
16
+ var _providers$, _providers$0$info$nam, _providers$2;
17
+ var providers = props.providers,
18
+ onSelect = props.onSelect,
19
+ onDisconnect = props.onDisconnect;
20
+ var _useTurnkey = useTurnkey(),
21
+ walletProviders = _useTurnkey.walletProviders;
22
+ var _useModal = useModal(),
23
+ isMobile = _useModal.isMobile,
24
+ popPage = _useModal.popPage;
25
+ var _useState = useState(),
26
+ _useState2 = _slicedToArray(_useState, 2),
27
+ loadingProvider = _useState2[0],
28
+ setLoadingProvider = _useState2[1];
29
+ // we find matching providers in current state
30
+ var currentProviders = providers.map(function (inputProvider) {
31
+ return walletProviders.find(function (p) {
32
+ return p.interfaceType === inputProvider.interfaceType && p.chainInfo.namespace === inputProvider.chainInfo.namespace;
33
+ });
34
+ }).filter(function (p) {
35
+ return p !== undefined;
36
+ });
37
+ // if no providers are found then that means that the user entered this screen
38
+ // while WalletConnect was still initializing, and then it failed to initialize
39
+ useEffect(function () {
40
+ if (currentProviders.length === 0) {
41
+ popPage();
42
+ }
43
+ }, [currentProviders.length, popPage]);
44
+ var shouldShowDisconnect = onDisconnect !== undefined;
45
+ var handleSelect = /*#__PURE__*/function () {
46
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(provider) {
47
+ return _regenerator().w(function (_context) {
48
+ while (1) switch (_context.n) {
49
+ case 0:
50
+ setLoadingProvider(provider);
51
+ if (!canDisconnect(provider, shouldShowDisconnect)) {
52
+ _context.n = 2;
53
+ break;
54
+ }
55
+ _context.n = 1;
56
+ return onDisconnect(provider);
57
+ case 1:
58
+ _context.n = 3;
59
+ break;
60
+ case 2:
61
+ _context.n = 3;
62
+ return onSelect(provider);
63
+ case 3:
64
+ setLoadingProvider(undefined);
65
+ case 4:
66
+ return _context.a(2);
67
+ }
68
+ }, _callee);
69
+ }));
70
+ return function handleSelect(_x) {
71
+ return _ref.apply(this, arguments);
72
+ };
73
+ }();
74
+ return jsxs("div", {
75
+ className: clsx("flex flex-col w-72 gap-4 mt-11 items-center justify-center", isMobile ? "w-full" : "w-72"),
76
+ children: [jsx("img", {
77
+ src: (_providers$ = providers[0]) === null || _providers$ === void 0 ? void 0 : _providers$.info.icon,
78
+ className: "size-14 rounded-full"
79
+ }), jsxs("span", {
80
+ className: "text-sm text-center text-icon-text-light dark:text-icon-text-dark",
81
+ children: [(_providers$0$info$nam = (_providers$2 = providers[0]) === null || _providers$2 === void 0 ? void 0 : _providers$2.info.name) !== null && _providers$0$info$nam !== void 0 ? _providers$0$info$nam : "This wallet provider", " supports multiple chains. Select which chain you would like to use."]
82
+ }), jsx("div", {
83
+ className: "w-full flex flex-col gap-2",
84
+ children: currentProviders.map(function (p) {
85
+ var _p$connectedAddresses, _p$connectedAddresses2;
86
+ var _useState3 = useState(false),
87
+ _useState4 = _slicedToArray(_useState3, 2),
88
+ isHovering = _useState4[0],
89
+ setIsHovering = _useState4[1];
90
+ return jsxs(ActionButton, _objectSpread2(_objectSpread2({
91
+ loading: loadingProvider === p,
92
+ loadingText: "Preparing...",
93
+ onClick: function onClick() {
94
+ return handleSelect(p);
95
+ }
96
+ }, !isMobile && {
97
+ // This looks weird on mobile since there's no hover state
98
+ onMouseEnter: function onMouseEnter() {
99
+ return setIsHovering(true);
100
+ },
101
+ onMouseLeave: function onMouseLeave() {
102
+ return setIsHovering(false);
103
+ }
104
+ }), {}, {
105
+ className: "relative overflow-hidden flex items-center justify-start gap-2 w-full text-inherit bg-button-light dark:bg-button-dark",
106
+ children: [isEthereumProvider(p) ? jsxs("div", {
107
+ className: "relative",
108
+ children: [jsx(EthereumLogo, {
109
+ className: "size-5"
110
+ }), canDisconnect(p, shouldShowDisconnect) && jsx(ConnectedIndicator, {
111
+ isPinging: true
112
+ })]
113
+ }) : isSolanaProvider(p) ? jsxs("div", {
114
+ className: "relative",
115
+ children: [jsx(SolanaLogo, {
116
+ className: "size-5"
117
+ }), canDisconnect(p, shouldShowDisconnect) && jsx(ConnectedIndicator, {
118
+ isPinging: true
119
+ })]
120
+ }) :
121
+ // we should never reach here
122
+ // if we do then it means we forgot to update the auth component after adding a new chain
123
+ jsx("div", {
124
+ className: "relative",
125
+ children: jsx("span", {
126
+ className: "size-5 flex items-center justify-center rounded bg-gray-300 dark:bg-gray-700",
127
+ children: "?"
128
+ })
129
+ }), jsxs("div", {
130
+ className: "flex flex-col items-start",
131
+ children: [isEthereumProvider(p) ? "EVM" : isSolanaProvider(p) ? "Solana" : // we should never reach here
132
+ // if we do then it means we forgot to update the auth component after adding a new chain
133
+ "?", canDisconnect(p, shouldShowDisconnect) && jsxs("span", {
134
+ className: "text-xs text-icon-text-light dark:text-icon-text-dark",
135
+ children: ["Connected: ", (_p$connectedAddresses = p.connectedAddresses[0]) === null || _p$connectedAddresses === void 0 ? void 0 : _p$connectedAddresses.slice(0, 4), "...", (_p$connectedAddresses2 = p.connectedAddresses[0]) === null || _p$connectedAddresses2 === void 0 ? void 0 : _p$connectedAddresses2.slice(-3)]
136
+ })]
137
+ }), jsx(FontAwesomeIcon, {
138
+ className: clsx("absolute transition-all duration-200", isHovering ? "right-4" : "-right-4", canDisconnect(p, shouldShowDisconnect) ? "text-danger-light dark:text-danger-dark" : "text-icon-text-light dark:text-icon-text-dark"),
139
+ size: canDisconnect(p, shouldShowDisconnect) ? "lg" : "1x",
140
+ icon: canDisconnect(p, shouldShowDisconnect) ? faClose : faChevronRight
141
+ })]
142
+ }), p.chainInfo.namespace);
143
+ })
144
+ })]
145
+ });
146
+ }
147
+
148
+ export { ExternalWalletChainSelector };
149
+ //# sourceMappingURL=ExternalWalletChainSelector.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalWalletChainSelector.mjs","sources":["../../../../src/components/auth/wallet/ExternalWalletChainSelector.tsx"],"sourcesContent":[null],"names":["ExternalWalletChainSelector","props","_providers$","_providers$0$info$nam","_providers$2","providers","onSelect","onDisconnect","_useTurnkey","useTurnkey","walletProviders","_useModal","useModal","isMobile","popPage","_useState","useState","_useState2","_slicedToArray","loadingProvider","setLoadingProvider","currentProviders","map","inputProvider","find","p","interfaceType","chainInfo","namespace","filter","undefined","useEffect","length","shouldShowDisconnect","handleSelect","_ref","_asyncToGenerator","_regenerator","m","_callee","provider","w","_context","n","canDisconnect","a","_x","apply","arguments","_jsxs","className","clsx","children","_jsx","src","info","icon","name","_p$connectedAddresses","_p$connectedAddresses2","_useState3","_useState4","isHovering","setIsHovering","ActionButton","_objectSpread","loading","loadingText","onClick","onMouseEnter","onMouseLeave","isEthereumProvider","EthereumLogo","ConnectedIndicator","isPinging","isSolanaProvider","SolanaLogo","connectedAddresses","slice","FontAwesomeIcon","size","faClose","faChevronRight"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type WalletAccount } from "@turnkey/core";
2
+ import { WalletSelectorMode } from "../../../types/base";
3
+ export { WalletSelectorMode } from "../../../types/base";
4
+ interface AuthModeProps {
5
+ mode: WalletSelectorMode.Auth;
6
+ /** Session key for the auth flow */
7
+ sessionKey?: string | undefined;
8
+ }
9
+ interface ConnectModeProps {
10
+ mode: WalletSelectorMode.Connect;
11
+ /** Called when a wallet is successfully connected or disconnected */
12
+ onSuccess: (type: "connect" | "disconnect", account: WalletAccount) => void;
13
+ /** Duration to show success page (ms). If 0 or undefined, closes immediately */
14
+ successPageDuration?: number | undefined;
15
+ }
16
+ export type ExternalWalletSelectorProps = AuthModeProps | ConnectModeProps;
17
+ export declare function ExternalWalletSelector(props: ExternalWalletSelectorProps): import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=ExternalWalletSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalWalletSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/wallet/ExternalWalletSelector.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,aAAa,EAEnB,MAAM,eAAe,CAAC;AAWvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,UAAU,aAAa;IACrB,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;IAC9B,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC;IACjC,qEAAqE;IACrE,SAAS,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,YAAY,EAAE,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5E,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,MAAM,2BAA2B,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAE3E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,2CAqQxE"}
@@ -0,0 +1,233 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var clsx = require('clsx');
6
+ var core = require('@turnkey/core');
7
+ var Hook = require('../../../providers/modal/Hook.js');
8
+ var Hook$1 = require('../../../providers/client/Hook.js');
9
+ var utils$1 = require('../../../utils/utils.js');
10
+ var WalletButton = require('./WalletButton.js');
11
+ var ExternalWalletChainSelector = require('./ExternalWalletChainSelector.js');
12
+ var WalletConnectFlow = require('./WalletConnectFlow.js');
13
+ var utils = require('./utils.js');
14
+ var Action = require('../Action.js');
15
+ var Success = require('../../design/Success.js');
16
+ var DisconnectWalletScreen = require('./DisconnectWalletScreen.js');
17
+ var base = require('../../../types/base.js');
18
+
19
+ function ExternalWalletSelector(props) {
20
+ const {
21
+ mode
22
+ } = props;
23
+ const {
24
+ pushPage,
25
+ popPage,
26
+ closeModal,
27
+ isMobile
28
+ } = Hook.useModal();
29
+ const {
30
+ walletProviders,
31
+ wallets,
32
+ loginOrSignupWithWallet,
33
+ connectWalletAccount,
34
+ disconnectWalletAccount
35
+ } = Hook$1.useTurnkey();
36
+ // Derive config based on mode
37
+ const isConnectMode = mode === base.WalletSelectorMode.Connect;
38
+ const sessionKey = isConnectMode ? undefined : props.sessionKey;
39
+ const shouldShowDisconnect = isConnectMode;
40
+ const successPageDuration = isConnectMode ? props.successPageDuration : undefined;
41
+ const onSuccess = isConnectMode ? props.onSuccess : undefined;
42
+ // Auth mode: show ActionPage and call loginOrSignupWithWallet
43
+ const handleAuthSelect = async provider => {
44
+ pushPage({
45
+ key: "Wallet Login/Signup",
46
+ content: jsxRuntime.jsx(Action.ActionPage, {
47
+ title: `Authenticating with ${provider.info.name}...`,
48
+ action: async () => {
49
+ await loginOrSignupWithWallet({
50
+ walletProvider: provider,
51
+ ...(sessionKey && {
52
+ sessionKey
53
+ })
54
+ });
55
+ },
56
+ icon: jsxRuntime.jsx("img", {
57
+ className: "size-11 rounded-full",
58
+ src: provider.info.icon || ""
59
+ })
60
+ }),
61
+ showTitle: false
62
+ });
63
+ };
64
+ // Connect mode: show ActionPage, connect wallet, show success
65
+ const handleConnectSelect = async provider => {
66
+ pushPage({
67
+ key: `Connect ${provider.info.name}`,
68
+ content: jsxRuntime.jsx(Action.ActionPage, {
69
+ title: `Connecting ${provider.info.name}`,
70
+ icon: jsxRuntime.jsx("img", {
71
+ className: "size-11 rounded-full",
72
+ src: provider.info.icon || ""
73
+ }),
74
+ closeOnComplete: false,
75
+ action: async () => {
76
+ const account = await connectWalletAccount(provider);
77
+ onSuccess?.("connect", account);
78
+ if (successPageDuration && successPageDuration > 0) {
79
+ pushPage({
80
+ key: "Connecting Success",
81
+ content: jsxRuntime.jsx(Success.SuccessPage, {
82
+ text: "Successfully connected wallet!",
83
+ onComplete: () => closeModal(),
84
+ duration: successPageDuration
85
+ }),
86
+ preventBack: true,
87
+ showTitle: false
88
+ });
89
+ } else {
90
+ closeModal();
91
+ }
92
+ }
93
+ }),
94
+ showTitle: false
95
+ });
96
+ };
97
+ // Connect mode: show disconnect confirmation, then disconnect
98
+ const handleDisconnect = async provider => {
99
+ pushPage({
100
+ key: `Disconnect ${provider.info.name}`,
101
+ content: jsxRuntime.jsx(DisconnectWalletScreen.DisconnectWalletScreen, {
102
+ provider: provider,
103
+ onDisconnect: async () => {
104
+ const address = provider.connectedAddresses[0];
105
+ // Find the matching account from connected wallets
106
+ const connectedWallets = wallets.filter(w => w.source === core.WalletSource.Connected);
107
+ const matchedAccount = connectedWallets.flatMap(w => w.accounts).find(a => a.address === address);
108
+ await disconnectWalletAccount(provider);
109
+ onSuccess?.("disconnect", matchedAccount);
110
+ if (successPageDuration && successPageDuration > 0) {
111
+ pushPage({
112
+ key: "Disconnect Success",
113
+ content: jsxRuntime.jsx(Success.SuccessPage, {
114
+ text: "Successfully disconnected wallet!",
115
+ onComplete: () => closeModal(),
116
+ duration: successPageDuration
117
+ }),
118
+ preventBack: true,
119
+ showTitle: false
120
+ });
121
+ } else {
122
+ closeModal();
123
+ }
124
+ }
125
+ }),
126
+ showTitle: false
127
+ });
128
+ };
129
+ // Select the appropriate handler based on mode
130
+ const onSelect = isConnectMode ? handleConnectSelect : handleAuthSelect;
131
+ // Group providers by name
132
+ const grouped = walletProviders.reduce((acc, provider) => {
133
+ const name = provider.info.name;
134
+ if (!acc[name]) acc[name] = [];
135
+ acc[name].push(provider);
136
+ return acc;
137
+ }, {});
138
+ const pushStandardChainSelector = group => {
139
+ pushPage({
140
+ key: `Select chain`,
141
+ content: jsxRuntime.jsx(ExternalWalletChainSelector.ExternalWalletChainSelector, {
142
+ providers: group,
143
+ onSelect: onSelect,
144
+ onDisconnect: isConnectMode ? handleDisconnect : undefined
145
+ })
146
+ });
147
+ };
148
+ const pushWalletConnectFlow = group => {
149
+ pushPage({
150
+ key: "WalletConnect",
151
+ content: jsxRuntime.jsx(WalletConnectFlow.WalletConnectFlow, {
152
+ providers: group,
153
+ mode: mode,
154
+ sessionKey: sessionKey,
155
+ onDisconnect: isConnectMode ? handleDisconnect : undefined
156
+ }),
157
+ showTitle: false
158
+ });
159
+ };
160
+ // ─────────────────────────────────────────────────────────────────────────────
161
+ // Selection handlers
162
+ // ─────────────────────────────────────────────────────────────────────────────
163
+ const handleSelectGroup = group => {
164
+ const provider = group[0];
165
+ const isConnected = !!utils.canDisconnect(provider, shouldShowDisconnect);
166
+ // Single chain - direct action
167
+ if (group.length === 1) {
168
+ if (isConnected) {
169
+ handleDisconnect(provider);
170
+ } else {
171
+ onSelect(provider);
172
+ }
173
+ return;
174
+ }
175
+ // Multiple chains - need chain selector
176
+ if (utils$1.isWalletConnect(provider)) {
177
+ pushWalletConnectFlow(group);
178
+ } else {
179
+ pushStandardChainSelector(group);
180
+ }
181
+ };
182
+ // ─────────────────────────────────────────────────────────────────────────────
183
+ // Auto-navigation when only one provider group exists
184
+ // ─────────────────────────────────────────────────────────────────────────────
185
+ react.useEffect(() => {
186
+ const groupedValues = Object.values(grouped);
187
+ if (groupedValues.length === 1) {
188
+ popPage(); // Remove this page to prevent back-button loops
189
+ handleSelectGroup(groupedValues[0]);
190
+ }
191
+ }, [grouped]);
192
+ // ─────────────────────────────────────────────────────────────────────────────
193
+ // Render
194
+ // ─────────────────────────────────────────────────────────────────────────────
195
+ if (Object.keys(grouped).length === 0) {
196
+ return jsxRuntime.jsxs("div", {
197
+ className: clsx("flex flex-col h-40 mt-4 gap-2 justify-center items-center text-xs text-center text-icon-text-light dark:text-icon-text-dark", isMobile ? "w-full" : "w-80"),
198
+ children: [jsxRuntime.jsx("span", {
199
+ className: "text-sm font-medium",
200
+ children: "No wallet providers available."
201
+ }), jsxRuntime.jsx("span", {
202
+ children: "Only wallets supporting EIP-1193 (Ethereum) or the Solana wallet standard are supported."
203
+ })]
204
+ });
205
+ }
206
+ return jsxRuntime.jsx("div", {
207
+ className: clsx("min-h-42 max-h-64 mt-12 overflow-y-auto tk-scrollbar p-0.5", isMobile ? "w-full" : "w-80"),
208
+ children: jsxRuntime.jsx("div", {
209
+ className: "flex flex-col gap-2",
210
+ children: Object.entries(grouped).map(([name, group]) => {
211
+ const first = group[0];
212
+ return jsxRuntime.jsx(WalletButton.WalletButton, {
213
+ icon: first.info.icon ?? "",
214
+ name: first.info.name ?? "",
215
+ chains: group.map(c => ({
216
+ namespace: c.chainInfo.namespace,
217
+ isConnected: !!utils.canDisconnect(c, shouldShowDisconnect)
218
+ })),
219
+ onClick: () => handleSelectGroup(group),
220
+ shouldShowDisconnect: shouldShowDisconnect,
221
+ isMobile: isMobile
222
+ }, name);
223
+ })
224
+ })
225
+ });
226
+ }
227
+
228
+ Object.defineProperty(exports, "WalletSelectorMode", {
229
+ enumerable: true,
230
+ get: function () { return base.WalletSelectorMode; }
231
+ });
232
+ exports.ExternalWalletSelector = ExternalWalletSelector;
233
+ //# sourceMappingURL=ExternalWalletSelector.js.map