@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,22 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var constants = require('./constants.js');
5
+
6
+ function WalletButtonSkeleton() {
7
+ return jsxRuntime.jsxs("div", {
8
+ style: {
9
+ height: `${constants.WALLET_BUTTON_HEIGHT}px`
10
+ },
11
+ className: "flex items-center gap-2 rounded-xl bg-button-light dark:bg-button-dark animate-pulse pointer-events-none px-3",
12
+ "aria-hidden": "true",
13
+ children: [jsxRuntime.jsx("div", {
14
+ className: "size-6 rounded-full bg-icon-background-light dark:bg-icon-background-dark"
15
+ }), jsxRuntime.jsx("div", {
16
+ className: "h-3 w-full rounded bg-icon-background-light dark:bg-icon-background-dark"
17
+ })]
18
+ });
19
+ }
20
+
21
+ exports.WalletButtonSkeleton = WalletButtonSkeleton;
22
+ //# sourceMappingURL=WalletButtonSkeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletButtonSkeleton.js","sources":["../../../../src/components/auth/wallet/WalletButtonSkeleton.tsx"],"sourcesContent":[null],"names":["WalletButtonSkeleton","_jsxs","style","height","WALLET_BUTTON_HEIGHT","className","children","_jsx"],"mappings":";;;;;SAEgBA,oBAAoBA,GAAA;EAClC,OACEC,eAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,KAAK,EAAE;MAAEC,MAAM,EAAE,GAAGC,8BAAoB,CAAA,EAAA;KAAM;AAC9CC,IAAAA,SAAS,EAAC,+GAA+G;AAAA,IAAA,aAAA,EAC7G,MAAM;AAAAC,IAAAA,QAAA,EAAA,CAElBC,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC;AAA2E,KAAA,CAAG,EAC7FE,cAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC;AAA0E,KAAA,CAAG;AAAA,GAAA,CACxF;AAEV;;;;"}
@@ -0,0 +1,20 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { WALLET_BUTTON_HEIGHT } from './constants.mjs';
3
+
4
+ function WalletButtonSkeleton() {
5
+ return jsxs("div", {
6
+ style: {
7
+ height: "".concat(WALLET_BUTTON_HEIGHT, "px")
8
+ },
9
+ className: "flex items-center gap-2 rounded-xl bg-button-light dark:bg-button-dark animate-pulse pointer-events-none px-3",
10
+ "aria-hidden": "true",
11
+ children: [jsx("div", {
12
+ className: "size-6 rounded-full bg-icon-background-light dark:bg-icon-background-dark"
13
+ }), jsx("div", {
14
+ className: "h-3 w-full rounded bg-icon-background-light dark:bg-icon-background-dark"
15
+ })]
16
+ });
17
+ }
18
+
19
+ export { WalletButtonSkeleton };
20
+ //# sourceMappingURL=WalletButtonSkeleton.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletButtonSkeleton.mjs","sources":["../../../../src/components/auth/wallet/WalletButtonSkeleton.tsx"],"sourcesContent":[null],"names":["WalletButtonSkeleton","_jsxs","style","height","concat","WALLET_BUTTON_HEIGHT","className","children","_jsx"],"mappings":";;;SAEgBA,oBAAoBA,GAAA;EAClC,OACEC,IAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,KAAK,EAAE;MAAEC,MAAM,EAAA,EAAA,CAAAC,MAAA,CAAKC,oBAAoB,EAAA,IAAA;KAAM;AAC9CC,IAAAA,SAAS,EAAC,+GAA+G;AAAA,IAAA,aAAA,EAC7G,MAAM;AAAAC,IAAAA,QAAA,EAAA,CAElBC,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC;AAA2E,KAAA,CAAG,EAC7FE,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC;AAA0E,KAAA,CAAG;AAAA,GAAA,CACxF;AAEV;;;;"}
@@ -0,0 +1,12 @@
1
+ import { type WalletConnectAppEntry } from "@turnkey/core";
2
+ interface WalletConnectAppChainSelectorProps {
3
+ apps: WalletConnectAppEntry[];
4
+ onSelect: (app: WalletConnectAppEntry) => Promise<void>;
5
+ }
6
+ /**
7
+ * A chain selector specifically for WalletConnect app entries.
8
+ * Displays available chains for a wallet app and allows the user to select one.
9
+ */
10
+ export declare function WalletConnectAppChainSelector(props: WalletConnectAppChainSelectorProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=WalletConnectAppChainSelector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletConnectAppChainSelector.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/wallet/WalletConnectAppChainSelector.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAS,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGlE,UAAU,kCAAkC;IAC1C,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,QAAQ,EAAE,CAAC,GAAG,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,kCAAkC,2CA0E1C"}
@@ -0,0 +1,79 @@
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 = require('../../../providers/modal/Hook.js');
12
+
13
+ /**
14
+ * A chain selector specifically for WalletConnect app entries.
15
+ * Displays available chains for a wallet app and allows the user to select one.
16
+ */
17
+ function WalletConnectAppChainSelector(props) {
18
+ const {
19
+ apps,
20
+ onSelect
21
+ } = props;
22
+ const {
23
+ isMobile
24
+ } = Hook.useModal();
25
+ const [loadingApp, setLoadingApp] = react.useState();
26
+ const handleSelect = async app => {
27
+ setLoadingApp(app);
28
+ try {
29
+ await onSelect(app);
30
+ } finally {
31
+ setLoadingApp(undefined);
32
+ }
33
+ };
34
+ const first = apps[0];
35
+ return jsxRuntime.jsxs("div", {
36
+ className: clsx("flex flex-col w-72 gap-4 mt-11 items-center justify-center", isMobile ? "w-full" : "w-72"),
37
+ children: [jsxRuntime.jsx("img", {
38
+ src: first?.icon,
39
+ className: "size-14 rounded-full"
40
+ }), jsxRuntime.jsxs("span", {
41
+ className: "text-sm text-center text-icon-text-light dark:text-icon-text-dark",
42
+ children: [first?.name ?? "This wallet", " supports multiple chains. Select which chain you would like to use."]
43
+ }), jsxRuntime.jsx("div", {
44
+ className: "w-full flex flex-col gap-2",
45
+ children: apps.map(app => {
46
+ const [isHovering, setIsHovering] = react.useState(false);
47
+ const isEthereum = app.chain === core.Chain.Ethereum;
48
+ const isSolana = app.chain === core.Chain.Solana;
49
+ return jsxRuntime.jsxs(Buttons.ActionButton, {
50
+ loading: loadingApp === app,
51
+ loadingText: "Preparing...",
52
+ onClick: () => handleSelect(app),
53
+ ...(!isMobile && {
54
+ onMouseEnter: () => setIsHovering(true),
55
+ onMouseLeave: () => setIsHovering(false)
56
+ }),
57
+ className: "relative overflow-hidden flex items-center justify-start gap-2 w-full text-inherit bg-button-light dark:bg-button-dark",
58
+ children: [isEthereum ? jsxRuntime.jsx(Svg.EthereumLogo, {
59
+ className: "size-5"
60
+ }) : isSolana ? jsxRuntime.jsx(Svg.SolanaLogo, {
61
+ className: "size-5"
62
+ }) : jsxRuntime.jsx("span", {
63
+ className: "size-5 flex items-center justify-center rounded bg-gray-300 dark:bg-gray-700",
64
+ children: "?"
65
+ }), jsxRuntime.jsx("div", {
66
+ className: "flex flex-col items-start",
67
+ children: isEthereum ? "EVM" : isSolana ? "Solana" : "Unknown"
68
+ }), jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
69
+ className: clsx("absolute transition-all duration-200 text-icon-text-light dark:text-icon-text-dark", isHovering ? "right-4" : "-right-4"),
70
+ icon: freeSolidSvgIcons.faChevronRight
71
+ })]
72
+ }, app.chain);
73
+ })
74
+ })]
75
+ });
76
+ }
77
+
78
+ exports.WalletConnectAppChainSelector = WalletConnectAppChainSelector;
79
+ //# sourceMappingURL=WalletConnectAppChainSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletConnectAppChainSelector.js","sources":["../../../../src/components/auth/wallet/WalletConnectAppChainSelector.tsx"],"sourcesContent":[null],"names":["WalletConnectAppChainSelector","props","apps","onSelect","isMobile","useModal","loadingApp","setLoadingApp","useState","handleSelect","app","undefined","first","_jsxs","className","clsx","children","_jsx","src","icon","name","map","isHovering","setIsHovering","isEthereum","chain","Chain","Ethereum","isSolana","Solana","ActionButton","loading","loadingText","onClick","onMouseEnter","onMouseLeave","EthereumLogo","SolanaLogo","FontAwesomeIcon","faChevronRight"],"mappings":";;;;;;;;;;;;AAcA;;;AAGG;AACG,SAAUA,6BAA6BA,CAC3CC,KAAyC,EAAA;EAEzC,MAAM;IAAEC,IAAI;AAAEC,IAAAA;AAAQ,GAAE,GAAGF,KAAK;EAChC,MAAM;AAAEG,IAAAA;GAAU,GAAGC,aAAQ,EAAE;EAC/B,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGC,cAAQ,EAAyB;AAErE,EAAA,MAAMC,YAAY,GAAG,MAAOC,GAA0B,IAAI;IACxDH,aAAa,CAACG,GAAG,CAAC;IAClB,IAAI;MACF,MAAMP,QAAQ,CAACO,GAAG,CAAC;AACrB,IAAA,CAAC,SAAS;MACRH,aAAa,CAACI,SAAS,CAAC;AAC1B,IAAA;EACF,CAAC;AAED,EAAA,MAAMC,KAAK,GAAGV,IAAI,CAAC,CAAC,CAAC;EAErB,OACEW,eAAA,CAAA,KAAA,EAAA;IACEC,SAAS,EAAEC,IAAI,CACb,4DAA4D,EAC5DX,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAC7B;AAAAY,IAAAA,QAAA,EAAA,CAEDC,cAAA,CAAA,KAAA,EAAA;MAAKC,GAAG,EAAEN,KAAK,EAAEO,IAAI;AAAEL,MAAAA,SAAS,EAAC;AAAsB,KAAA,CAAG,EAC1DD,eAAA,CAAA,MAAA,EAAA;AAAMC,MAAAA,SAAS,EAAC,mEAAmE;MAAAE,QAAA,EAAA,CAChFJ,KAAK,EAAEQ,IAAI,IAAI,aAAa,EAC5B,sEAAsE;AAAA,KAAA,CAClE,EACPH,cAAA,CAAA,KAAA,EAAA;AAAKH,MAAAA,SAAS,EAAC,4BAA4B;AAAAE,MAAAA,QAAA,EACxCd,IAAI,CAACmB,GAAG,CAAEX,GAAG,IAAI;QAChB,MAAM,CAACY,UAAU,EAAEC,aAAa,CAAC,GAAGf,cAAQ,CAAC,KAAK,CAAC;QACnD,MAAMgB,UAAU,GAAGd,GAAG,CAACe,KAAK,KAAKC,UAAK,CAACC,QAAQ;QAC/C,MAAMC,QAAQ,GAAGlB,GAAG,CAACe,KAAK,KAAKC,UAAK,CAACG,MAAM;QAE3C,OACEhB,eAAA,CAACiB,oBAAY,EAAA;UAEXC,OAAO,EAAEzB,UAAU,KAAKI,GAAG;AAC3BsB,UAAAA,WAAW,EAAC,cAAc;AAC1BC,UAAAA,OAAO,EAAEA,MAAMxB,YAAY,CAACC,GAAG,CAAC;UAAA,IAC3B,CAACN,QAAQ,IAAI;AAChB8B,YAAAA,YAAY,EAAEA,MAAMX,aAAa,CAAC,IAAI,CAAC;AACvCY,YAAAA,YAAY,EAAEA,MAAMZ,aAAa,CAAC,KAAK;WACxC,CAAC;AACFT,UAAAA,SAAS,EAAC,wHAAwH;qBAEjIU,UAAU,GACTP,eAACmB,gBAAY,EAAA;AAACtB,YAAAA,SAAS,EAAC;YAAW,GACjCc,QAAQ,GACVX,eAACoB,cAAU,EAAA;AAACvB,YAAAA,SAAS,EAAC;AAAQ,WAAA,CAAG,GAEjCG,cAAA,CAAA,MAAA,EAAA;AAAMH,YAAAA,SAAS,EAAC,8EAA8E;;YAG/F,EAEDG,cAAA,CAAA,KAAA,EAAA;AAAKH,YAAAA,SAAS,EAAC,2BAA2B;sBACvCU,UAAU,GAAG,KAAK,GAAGI,QAAQ,GAAG,QAAQ,GAAG;AAAS,WAAA,CACjD,EAENX,cAAA,CAACqB,gCAAe,EAAA;YACdxB,SAAS,EAAEC,IAAI,CACb,oFAAoF,EACpFO,UAAU,GAAG,SAAS,GAAG,UAAU,CACpC;AACDH,YAAAA,IAAI,EAAEoB;AAAc,WAAA,CACpB;AAAA,SAAA,EA9BG7B,GAAG,CAACe,KAAK,CA+BD;MAEnB,CAAC;AAAC,KAAA,CACE;AAAA,GAAA,CACF;AAEV;;;;"}
@@ -0,0 +1,102 @@
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 { faChevronRight } from '@fortawesome/free-solid-svg-icons';
7
+ import { useState } from 'react';
8
+ import clsx from 'clsx';
9
+ import { Chain } from '@turnkey/core';
10
+ import { useModal } from '../../../providers/modal/Hook.mjs';
11
+
12
+ /**
13
+ * A chain selector specifically for WalletConnect app entries.
14
+ * Displays available chains for a wallet app and allows the user to select one.
15
+ */
16
+ function WalletConnectAppChainSelector(props) {
17
+ var _first$name;
18
+ var apps = props.apps,
19
+ onSelect = props.onSelect;
20
+ var _useModal = useModal(),
21
+ isMobile = _useModal.isMobile;
22
+ var _useState = useState(),
23
+ _useState2 = _slicedToArray(_useState, 2),
24
+ loadingApp = _useState2[0],
25
+ setLoadingApp = _useState2[1];
26
+ var handleSelect = /*#__PURE__*/function () {
27
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(app) {
28
+ return _regenerator().w(function (_context) {
29
+ while (1) switch (_context.p = _context.n) {
30
+ case 0:
31
+ setLoadingApp(app);
32
+ _context.p = 1;
33
+ _context.n = 2;
34
+ return onSelect(app);
35
+ case 2:
36
+ _context.p = 2;
37
+ setLoadingApp(undefined);
38
+ return _context.f(2);
39
+ case 3:
40
+ return _context.a(2);
41
+ }
42
+ }, _callee, null, [[1,, 2, 3]]);
43
+ }));
44
+ return function handleSelect(_x) {
45
+ return _ref.apply(this, arguments);
46
+ };
47
+ }();
48
+ var first = apps[0];
49
+ return 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: [jsx("img", {
52
+ src: first === null || first === void 0 ? void 0 : first.icon,
53
+ className: "size-14 rounded-full"
54
+ }), jsxs("span", {
55
+ className: "text-sm text-center text-icon-text-light dark:text-icon-text-dark",
56
+ children: [(_first$name = first === null || first === void 0 ? void 0 : first.name) !== null && _first$name !== void 0 ? _first$name : "This wallet", " supports multiple chains. Select which chain you would like to use."]
57
+ }), jsx("div", {
58
+ className: "w-full flex flex-col gap-2",
59
+ children: apps.map(function (app) {
60
+ var _useState3 = useState(false),
61
+ _useState4 = _slicedToArray(_useState3, 2),
62
+ isHovering = _useState4[0],
63
+ setIsHovering = _useState4[1];
64
+ var isEthereum = app.chain === Chain.Ethereum;
65
+ var isSolana = app.chain === Chain.Solana;
66
+ return jsxs(ActionButton, _objectSpread2(_objectSpread2({
67
+ loading: loadingApp === app,
68
+ loadingText: "Preparing...",
69
+ onClick: function onClick() {
70
+ return handleSelect(app);
71
+ }
72
+ }, !isMobile && {
73
+ onMouseEnter: function onMouseEnter() {
74
+ return setIsHovering(true);
75
+ },
76
+ onMouseLeave: function onMouseLeave() {
77
+ return setIsHovering(false);
78
+ }
79
+ }), {}, {
80
+ className: "relative overflow-hidden flex items-center justify-start gap-2 w-full text-inherit bg-button-light dark:bg-button-dark",
81
+ children: [isEthereum ? jsx(EthereumLogo, {
82
+ className: "size-5"
83
+ }) : isSolana ? jsx(SolanaLogo, {
84
+ className: "size-5"
85
+ }) : jsx("span", {
86
+ className: "size-5 flex items-center justify-center rounded bg-gray-300 dark:bg-gray-700",
87
+ children: "?"
88
+ }), jsx("div", {
89
+ className: "flex flex-col items-start",
90
+ children: isEthereum ? "EVM" : isSolana ? "Solana" : "Unknown"
91
+ }), jsx(FontAwesomeIcon, {
92
+ className: clsx("absolute transition-all duration-200 text-icon-text-light dark:text-icon-text-dark", isHovering ? "right-4" : "-right-4"),
93
+ icon: faChevronRight
94
+ })]
95
+ }), app.chain);
96
+ })
97
+ })]
98
+ });
99
+ }
100
+
101
+ export { WalletConnectAppChainSelector };
102
+ //# sourceMappingURL=WalletConnectAppChainSelector.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletConnectAppChainSelector.mjs","sources":["../../../../src/components/auth/wallet/WalletConnectAppChainSelector.tsx"],"sourcesContent":[null],"names":["WalletConnectAppChainSelector","props","_first$name","apps","onSelect","_useModal","useModal","isMobile","_useState","useState","_useState2","_slicedToArray","loadingApp","setLoadingApp","handleSelect","_ref","_asyncToGenerator","_regenerator","m","_callee","app","w","_context","p","n","undefined","f","a","_x","apply","arguments","first","_jsxs","className","clsx","children","_jsx","src","icon","name","map","_useState3","_useState4","isHovering","setIsHovering","isEthereum","chain","Chain","Ethereum","isSolana","Solana","ActionButton","_objectSpread","loading","loadingText","onClick","onMouseEnter","onMouseLeave","EthereumLogo","SolanaLogo","FontAwesomeIcon","faChevronRight"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { WalletProvider } from "@turnkey/core";
2
+ import { WalletSelectorMode } from "../../../types/base";
3
+ interface WalletConnectFlowProps {
4
+ /** The WalletConnect provider group (one per chain) */
5
+ providers: WalletProvider[];
6
+ /** The mode determines the flow behavior */
7
+ mode: WalletSelectorMode;
8
+ /** Session key for auth flow (only used when mode is Auth) */
9
+ sessionKey?: string | undefined;
10
+ /** Custom disconnect handler (e.g. to show success page). Falls back to a simple disconnect + pop. */
11
+ onDisconnect?: ((provider: WalletProvider) => Promise<void>) | undefined;
12
+ }
13
+ /**
14
+ * Orchestrates the WalletConnect connection flow.
15
+ *
16
+ * Desktop flow: Chain selector → QR code screen
17
+ * Mobile flow: App selector → Deep link screen (with QR fallback)
18
+ */
19
+ export declare function WalletConnectFlow(props: WalletConnectFlowProps): null;
20
+ export {};
21
+ //# sourceMappingURL=WalletConnectFlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletConnectFlow.d.ts","sourceRoot":"","sources":["../../../../src/components/auth/wallet/WalletConnectFlow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,UAAU,sBAAsB;IAC9B,uDAAuD;IACvD,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,4CAA4C;IAC5C,IAAI,EAAE,kBAAkB,CAAC;IACzB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,sGAAsG;IACtG,YAAY,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CAC1E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,QAwK9D"}
@@ -0,0 +1,163 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var Hook = require('../../../providers/modal/Hook.js');
6
+ var Hook$1 = require('../../../providers/client/Hook.js');
7
+ var ExternalWalletChainSelector = require('./ExternalWalletChainSelector.js');
8
+ var DesktopWalletConnectScreen = require('./DesktopWalletConnectScreen.js');
9
+ var DisconnectWalletScreen = require('./DisconnectWalletScreen.js');
10
+ var MobileWalletConnectScreen = require('./MobileWalletConnectScreen.js');
11
+ var ShowAllWalletsScreen = require('./ShowAllWalletsScreen.js');
12
+ var base = require('../../../types/base.js');
13
+
14
+ /**
15
+ * Orchestrates the WalletConnect connection flow.
16
+ *
17
+ * Desktop flow: Chain selector → QR code screen
18
+ * Mobile flow: App selector → Deep link screen (with QR fallback)
19
+ */
20
+ function WalletConnectFlow(props) {
21
+ const {
22
+ providers,
23
+ mode,
24
+ sessionKey,
25
+ onDisconnect
26
+ } = props;
27
+ const {
28
+ pushPage,
29
+ popPage,
30
+ isMobile
31
+ } = Hook.useModal();
32
+ const {
33
+ connectWalletAccount,
34
+ disconnectWalletAccount,
35
+ loginOrSignupWithWallet
36
+ } = Hook$1.useTurnkey();
37
+ const isConnectMode = mode === base.WalletSelectorMode.Connect;
38
+ // Check if any provider in the group is already connected
39
+ const isConnected = isConnectMode && providers.some(p => p.connectedAddresses?.length > 0);
40
+ // ─────────────────────────────────────────────────────────────────────────────
41
+ // WalletConnect action handlers
42
+ // ─────────────────────────────────────────────────────────────────────────────
43
+ const handleAction = async provider => {
44
+ if (mode === base.WalletSelectorMode.Auth) {
45
+ // Auth flow: loginOrSignupWithWallet handles connect + sign
46
+ await loginOrSignupWithWallet({
47
+ walletProvider: provider,
48
+ ...(sessionKey && {
49
+ sessionKey
50
+ })
51
+ });
52
+ } else {
53
+ // Connect-only flow
54
+ await connectWalletAccount(provider);
55
+ }
56
+ };
57
+ const handleDisconnect = async provider => {
58
+ await disconnectWalletAccount(provider);
59
+ };
60
+ /** Push the DisconnectWalletScreen for a connected provider */
61
+ const pushDisconnectScreen = async provider => {
62
+ if (onDisconnect) {
63
+ await onDisconnect(provider);
64
+ return;
65
+ }
66
+ pushPage({
67
+ key: `Disconnect ${provider.info.name}`,
68
+ content: jsxRuntime.jsx(DisconnectWalletScreen.DisconnectWalletScreen, {
69
+ provider: provider,
70
+ onDisconnect: async p => {
71
+ await handleDisconnect(p);
72
+ popPage();
73
+ }
74
+ }),
75
+ showTitle: false
76
+ });
77
+ };
78
+ // ─────────────────────────────────────────────────────────────────────────────
79
+ // Screen navigation helpers
80
+ // ─────────────────────────────────────────────────────────────────────────────
81
+ const pushDesktopQRCodeScreen = (provider, onSelectAllWallets) => {
82
+ pushPage({
83
+ key: "Connect WalletConnect",
84
+ content: jsxRuntime.jsx(DesktopWalletConnectScreen.DesktopWalletConnectScreen, {
85
+ provider: provider,
86
+ onAction: handleAction,
87
+ onDisconnect: handleDisconnect,
88
+ onSelectAllWallets: onSelectAllWallets
89
+ })
90
+ });
91
+ };
92
+ const pushDesktopChainSelector = onSelectAllWallets => {
93
+ pushPage({
94
+ key: `Select chain`,
95
+ content: jsxRuntime.jsx(ExternalWalletChainSelector.ExternalWalletChainSelector, {
96
+ providers: providers,
97
+ onDisconnect: isConnectMode ? pushDisconnectScreen : undefined,
98
+ onSelect: async provider => pushDesktopQRCodeScreen(provider, onSelectAllWallets)
99
+ })
100
+ });
101
+ };
102
+ /** Mobile: Deep link screen to open wallet app */
103
+ const pushMobileDeepLinkScreen = provider => {
104
+ pushPage({
105
+ key: `Open app`,
106
+ content: jsxRuntime.jsx(MobileWalletConnectScreen.MobileWalletConnectScreen, {
107
+ provider: provider,
108
+ onConnect: async p => {
109
+ await connectWalletAccount(p);
110
+ },
111
+ onSign: mode === base.WalletSelectorMode.Auth ? async p => {
112
+ await loginOrSignupWithWallet({
113
+ walletProvider: p,
114
+ ...(sessionKey && {
115
+ sessionKey
116
+ })
117
+ });
118
+ } : undefined,
119
+ onSelectQRCode: async chain => {
120
+ // Fallback to QR code if deep link doesn't work
121
+ const chainProvider = providers.find(p => p.chainInfo.namespace === chain);
122
+ pushDesktopQRCodeScreen(chainProvider);
123
+ }
124
+ })
125
+ });
126
+ };
127
+ /** Mobile: Show all WalletConnect-compatible apps */
128
+ const pushMobileAppSelector = () => {
129
+ pushPage({
130
+ key: "Connect WalletConnect",
131
+ content: jsxRuntime.jsx(ShowAllWalletsScreen.ShowAllWalletsScreen, {
132
+ onSelect: async provider => pushMobileDeepLinkScreen(provider),
133
+ onSelectQRCode: async () => pushDesktopChainSelector()
134
+ })
135
+ });
136
+ };
137
+ // ─────────────────────────────────────────────────────────────────────────────
138
+ // Flow selection
139
+ // ─────────────────────────────────────────────────────────────────────────────
140
+ react.useEffect(() => {
141
+ // Mobile flow: App list -> deep link to wallet app
142
+ // Desktop flow: Chain selector -> QR code
143
+ //
144
+ // Exception: For "Connect Wallet" screen (disconnect possible),
145
+ // always use desktop flow since it shows connection status.
146
+ const useDesktopFlow = !isMobile || isConnected;
147
+ // Pop the WalletConnectFlow page itself so the back button on the next
148
+ // screen returns to the wallet list, not this empty orchestrator page.
149
+ popPage();
150
+ if (useDesktopFlow) {
151
+ pushDesktopChainSelector(async () => {
152
+ pushMobileAppSelector();
153
+ });
154
+ } else {
155
+ pushMobileAppSelector();
156
+ }
157
+ }, []);
158
+ // This component doesn't render anything - it just orchestrates navigation
159
+ return null;
160
+ }
161
+
162
+ exports.WalletConnectFlow = WalletConnectFlow;
163
+ //# sourceMappingURL=WalletConnectFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletConnectFlow.js","sources":["../../../../src/components/auth/wallet/WalletConnectFlow.tsx"],"sourcesContent":[null],"names":["WalletConnectFlow","props","providers","mode","sessionKey","onDisconnect","pushPage","popPage","isMobile","useModal","connectWalletAccount","disconnectWalletAccount","loginOrSignupWithWallet","useTurnkey","isConnectMode","WalletSelectorMode","Connect","isConnected","some","p","connectedAddresses","length","handleAction","provider","Auth","walletProvider","handleDisconnect","pushDisconnectScreen","key","info","name","content","_jsx","DisconnectWalletScreen","showTitle","pushDesktopQRCodeScreen","onSelectAllWallets","DesktopWalletConnectScreen","onAction","pushDesktopChainSelector","ExternalWalletChainSelector","undefined","onSelect","pushMobileDeepLinkScreen","MobileWalletConnectScreen","onConnect","onSign","onSelectQRCode","chain","chainProvider","find","chainInfo","namespace","pushMobileAppSelector","ShowAllWalletsScreen","useEffect","useDesktopFlow"],"mappings":"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"}