@turnkey/sdk-react 1.1.2 → 2.0.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 (200) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/actions/createSuborg.d.ts +21 -0
  3. package/dist/actions/createSuborg.d.ts.map +1 -0
  4. package/dist/actions/createSuborg.js +50 -0
  5. package/dist/actions/createSuborg.js.map +1 -0
  6. package/dist/actions/createSuborg.mjs +48 -0
  7. package/dist/actions/createSuborg.mjs.map +1 -0
  8. package/dist/actions/getSuborgs.d.ts +10 -0
  9. package/dist/actions/getSuborgs.d.ts.map +1 -0
  10. package/dist/actions/getSuborgs.js +31 -0
  11. package/dist/actions/getSuborgs.js.map +1 -0
  12. package/dist/actions/getSuborgs.mjs +29 -0
  13. package/dist/actions/getSuborgs.mjs.map +1 -0
  14. package/dist/actions/getVerifiedSuborgs.d.ts +10 -0
  15. package/dist/actions/getVerifiedSuborgs.d.ts.map +1 -0
  16. package/dist/actions/getVerifiedSuborgs.js +31 -0
  17. package/dist/actions/getVerifiedSuborgs.js.map +1 -0
  18. package/dist/actions/getVerifiedSuborgs.mjs +29 -0
  19. package/dist/actions/getVerifiedSuborgs.mjs.map +1 -0
  20. package/dist/actions/index.d.ts +7 -0
  21. package/dist/actions/index.d.ts.map +1 -0
  22. package/dist/actions/initOtpAuth.d.ts +13 -0
  23. package/dist/actions/initOtpAuth.d.ts.map +1 -0
  24. package/dist/actions/initOtpAuth.js +39 -0
  25. package/dist/actions/initOtpAuth.js.map +1 -0
  26. package/dist/actions/initOtpAuth.mjs +37 -0
  27. package/dist/actions/initOtpAuth.mjs.map +1 -0
  28. package/dist/actions/oauth.d.ts +13 -0
  29. package/dist/actions/oauth.d.ts.map +1 -0
  30. package/dist/actions/oauth.js +32 -0
  31. package/dist/actions/oauth.js.map +1 -0
  32. package/dist/actions/oauth.mjs +30 -0
  33. package/dist/actions/oauth.mjs.map +1 -0
  34. package/dist/actions/otpAuth.d.ts +14 -0
  35. package/dist/actions/otpAuth.d.ts.map +1 -0
  36. package/dist/actions/otpAuth.js +32 -0
  37. package/dist/actions/otpAuth.js.map +1 -0
  38. package/dist/actions/otpAuth.mjs +30 -0
  39. package/dist/actions/otpAuth.mjs.map +1 -0
  40. package/dist/assets/apple.svg.js +6 -0
  41. package/dist/assets/apple.svg.js.map +1 -0
  42. package/dist/assets/apple.svg.mjs +4 -0
  43. package/dist/assets/apple.svg.mjs.map +1 -0
  44. package/dist/assets/caution.svg.js +6 -0
  45. package/dist/assets/caution.svg.js.map +1 -0
  46. package/dist/assets/caution.svg.mjs +4 -0
  47. package/dist/assets/caution.svg.mjs.map +1 -0
  48. package/dist/assets/export.svg.js +6 -0
  49. package/dist/assets/export.svg.js.map +1 -0
  50. package/dist/assets/export.svg.mjs +4 -0
  51. package/dist/assets/export.svg.mjs.map +1 -0
  52. package/dist/assets/eye.svg.js +6 -0
  53. package/dist/assets/eye.svg.js.map +1 -0
  54. package/dist/assets/eye.svg.mjs +4 -0
  55. package/dist/assets/eye.svg.mjs.map +1 -0
  56. package/dist/assets/facebook.svg.js +6 -0
  57. package/dist/assets/facebook.svg.js.map +1 -0
  58. package/dist/assets/facebook.svg.mjs +4 -0
  59. package/dist/assets/facebook.svg.mjs.map +1 -0
  60. package/dist/assets/fonts/Inter-Bold.woff2 +0 -0
  61. package/dist/assets/fonts/Inter-Regular.woff2 +0 -0
  62. package/dist/assets/fonts/Inter-SemiBold.woff2 +0 -0
  63. package/dist/assets/google.svg.js +6 -0
  64. package/dist/assets/google.svg.js.map +1 -0
  65. package/dist/assets/google.svg.mjs +4 -0
  66. package/dist/assets/google.svg.mjs.map +1 -0
  67. package/dist/assets/import.svg.js +6 -0
  68. package/dist/assets/import.svg.js.map +1 -0
  69. package/dist/assets/import.svg.mjs +4 -0
  70. package/dist/assets/import.svg.mjs.map +1 -0
  71. package/dist/assets/turnkey.svg.js +6 -0
  72. package/dist/assets/turnkey.svg.js.map +1 -0
  73. package/dist/assets/turnkey.svg.mjs +4 -0
  74. package/dist/assets/turnkey.svg.mjs.map +1 -0
  75. package/dist/assets/unlock.svg.js +6 -0
  76. package/dist/assets/unlock.svg.js.map +1 -0
  77. package/dist/assets/unlock.svg.mjs +4 -0
  78. package/dist/assets/unlock.svg.mjs.map +1 -0
  79. package/dist/components/auth/Apple.d.ts +15 -0
  80. package/dist/components/auth/Apple.d.ts.map +1 -0
  81. package/dist/components/auth/Apple.js +80 -0
  82. package/dist/components/auth/Apple.js.map +1 -0
  83. package/dist/components/auth/Apple.mjs +78 -0
  84. package/dist/components/auth/Apple.mjs.map +1 -0
  85. package/dist/components/auth/Auth.d.ts +18 -0
  86. package/dist/components/auth/Auth.d.ts.map +1 -0
  87. package/dist/components/auth/Auth.js +277 -0
  88. package/dist/components/auth/Auth.js.map +1 -0
  89. package/dist/components/auth/Auth.mjs +275 -0
  90. package/dist/components/auth/Auth.mjs.map +1 -0
  91. package/dist/components/auth/Auth.module.css.js +6 -0
  92. package/dist/components/auth/Auth.module.css.js.map +1 -0
  93. package/dist/components/auth/Auth.module.css.mjs +4 -0
  94. package/dist/components/auth/Auth.module.css.mjs.map +1 -0
  95. package/dist/components/auth/Facebook.d.ts +10 -0
  96. package/dist/components/auth/Facebook.d.ts.map +1 -0
  97. package/dist/components/auth/Facebook.js +81 -0
  98. package/dist/components/auth/Facebook.js.map +1 -0
  99. package/dist/components/auth/Facebook.mjs +79 -0
  100. package/dist/components/auth/Facebook.mjs.map +1 -0
  101. package/dist/components/auth/Google.d.ts +15 -0
  102. package/dist/components/auth/Google.d.ts.map +1 -0
  103. package/dist/components/auth/Google.js +62 -0
  104. package/dist/components/auth/Google.js.map +1 -0
  105. package/dist/components/auth/Google.mjs +60 -0
  106. package/dist/components/auth/Google.mjs.map +1 -0
  107. package/dist/components/auth/OtpVerification.d.ts +14 -0
  108. package/dist/components/auth/OtpVerification.d.ts.map +1 -0
  109. package/dist/components/auth/OtpVerification.js +71 -0
  110. package/dist/components/auth/OtpVerification.js.map +1 -0
  111. package/dist/components/auth/OtpVerification.mjs +69 -0
  112. package/dist/components/auth/OtpVerification.mjs.map +1 -0
  113. package/dist/components/auth/OtpVerification.module.css.js +6 -0
  114. package/dist/components/auth/OtpVerification.module.css.js.map +1 -0
  115. package/dist/components/auth/OtpVerification.module.css.mjs +4 -0
  116. package/dist/components/auth/OtpVerification.module.css.mjs.map +1 -0
  117. package/dist/components/auth/PhoneInput.d.ts +9 -0
  118. package/dist/components/auth/PhoneInput.d.ts.map +1 -0
  119. package/dist/components/auth/PhoneInput.js +84 -0
  120. package/dist/components/auth/PhoneInput.js.map +1 -0
  121. package/dist/components/auth/PhoneInput.mjs +82 -0
  122. package/dist/components/auth/PhoneInput.mjs.map +1 -0
  123. package/dist/components/auth/Socials.module.css.js +6 -0
  124. package/dist/components/auth/Socials.module.css.js.map +1 -0
  125. package/dist/components/auth/Socials.module.css.mjs +4 -0
  126. package/dist/components/auth/Socials.module.css.mjs.map +1 -0
  127. package/dist/components/auth/TurnkeyThemeProvider.d.ts +26 -0
  128. package/dist/components/auth/TurnkeyThemeProvider.d.ts.map +1 -0
  129. package/dist/components/auth/TurnkeyThemeProvider.js +38 -0
  130. package/dist/components/auth/TurnkeyThemeProvider.js.map +1 -0
  131. package/dist/components/auth/TurnkeyThemeProvider.mjs +36 -0
  132. package/dist/components/auth/TurnkeyThemeProvider.mjs.map +1 -0
  133. package/dist/components/auth/constants.d.ts +36 -0
  134. package/dist/components/auth/constants.d.ts.map +1 -0
  135. package/dist/components/auth/constants.js +53 -0
  136. package/dist/components/auth/constants.js.map +1 -0
  137. package/dist/components/auth/constants.mjs +44 -0
  138. package/dist/components/auth/constants.mjs.map +1 -0
  139. package/dist/components/auth/facebookUtils.d.ts +6 -0
  140. package/dist/components/auth/facebookUtils.d.ts.map +1 -0
  141. package/dist/components/auth/facebookUtils.js +35 -0
  142. package/dist/components/auth/facebookUtils.js.map +1 -0
  143. package/dist/components/auth/facebookUtils.mjs +32 -0
  144. package/dist/components/auth/facebookUtils.mjs.map +1 -0
  145. package/dist/components/auth/index.d.ts +5 -0
  146. package/dist/components/auth/index.d.ts.map +1 -0
  147. package/dist/components/auth/otp.d.ts +8 -0
  148. package/dist/components/auth/otp.d.ts.map +1 -0
  149. package/dist/components/auth/otp.js +83 -0
  150. package/dist/components/auth/otp.js.map +1 -0
  151. package/dist/components/auth/otp.mjs +81 -0
  152. package/dist/components/auth/otp.mjs.map +1 -0
  153. package/dist/components/auth/utils.d.ts +2 -0
  154. package/dist/components/auth/utils.d.ts.map +1 -0
  155. package/dist/components/auth/utils.js +11 -0
  156. package/dist/components/auth/utils.js.map +1 -0
  157. package/dist/components/auth/utils.mjs +9 -0
  158. package/dist/components/auth/utils.mjs.map +1 -0
  159. package/dist/components/export/Export.d.ts +9 -0
  160. package/dist/components/export/Export.d.ts.map +1 -0
  161. package/dist/components/export/Export.js +118 -0
  162. package/dist/components/export/Export.js.map +1 -0
  163. package/dist/components/export/Export.mjs +116 -0
  164. package/dist/components/export/Export.mjs.map +1 -0
  165. package/dist/components/export/Export.module.css.js +6 -0
  166. package/dist/components/export/Export.module.css.js.map +1 -0
  167. package/dist/components/export/Export.module.css.mjs +4 -0
  168. package/dist/components/export/Export.module.css.mjs.map +1 -0
  169. package/dist/components/export/index.d.ts +2 -0
  170. package/dist/components/export/index.d.ts.map +1 -0
  171. package/dist/components/import/Import.d.ts +8 -0
  172. package/dist/components/import/Import.d.ts.map +1 -0
  173. package/dist/components/import/Import.js +149 -0
  174. package/dist/components/import/Import.js.map +1 -0
  175. package/dist/components/import/Import.mjs +147 -0
  176. package/dist/components/import/Import.mjs.map +1 -0
  177. package/dist/components/import/Import.module.css.js +6 -0
  178. package/dist/components/import/Import.module.css.js.map +1 -0
  179. package/dist/components/import/Import.module.css.mjs +4 -0
  180. package/dist/components/import/Import.module.css.mjs.map +1 -0
  181. package/dist/components/import/index.d.ts +2 -0
  182. package/dist/components/import/index.d.ts.map +1 -0
  183. package/dist/components/index.d.ts +4 -0
  184. package/dist/components/index.d.ts.map +1 -0
  185. package/dist/contexts/TurnkeyContext.js +12 -11
  186. package/dist/contexts/TurnkeyContext.js.map +1 -1
  187. package/dist/contexts/TurnkeyContext.mjs +2 -1
  188. package/dist/contexts/TurnkeyContext.mjs.map +1 -1
  189. package/dist/hooks/use-turnkey.js +2 -2
  190. package/dist/index.d.ts +8 -0
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +31 -0
  193. package/dist/index.js.map +1 -1
  194. package/dist/index.mjs +12 -0
  195. package/dist/index.mjs.map +1 -1
  196. package/dist/styles.cjs.css +10 -0
  197. package/dist/styles.cjs.css.map +1 -0
  198. package/dist/styles.esm.css +10 -0
  199. package/dist/styles.esm.css.map +1 -0
  200. package/package.json +21 -3
@@ -0,0 +1,78 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useState, useEffect } from 'react';
3
+ import { sha256 } from '@noble/hashes/sha2';
4
+ import { bytesToHex } from '@noble/hashes/utils';
5
+ import styles from './Socials.module.css.mjs';
6
+ import appleIcon from '../../assets/apple.svg.mjs';
7
+ import { APPLE_AUTH_SCRIPT_URL, APPLE_AUTH_URL, popupWidth, popupHeight } from './constants.mjs';
8
+
9
+ const AppleAuthButton = ({ iframePublicKey, onSuccess, clientId, layout, }) => {
10
+ const [appleSDKLoaded, setAppleSDKLoaded] = useState(false);
11
+ const redirectURI = process.env.NEXT_PUBLIC_OAUTH_REDIRECT_URI;
12
+ useEffect(() => {
13
+ const loadAppleSDK = () => {
14
+ const script = document.createElement("script");
15
+ script.src = APPLE_AUTH_SCRIPT_URL;
16
+ script.onload = () => setAppleSDKLoaded(true);
17
+ script.onerror = () => console.error("Failed to load AppleID SDK");
18
+ document.body.appendChild(script);
19
+ };
20
+ if (!window.AppleID) {
21
+ loadAppleSDK();
22
+ }
23
+ else {
24
+ setAppleSDKLoaded(true);
25
+ }
26
+ }, []);
27
+ const handleLogin = () => {
28
+ const nonce = bytesToHex(sha256(iframePublicKey));
29
+ const appleAuthUrl = new URL(APPLE_AUTH_URL);
30
+ appleAuthUrl.searchParams.set("client_id", clientId);
31
+ appleAuthUrl.searchParams.set("redirect_uri", redirectURI);
32
+ appleAuthUrl.searchParams.set("response_type", "code id_token");
33
+ appleAuthUrl.searchParams.set("response_mode", "fragment");
34
+ appleAuthUrl.searchParams.set("nonce", nonce);
35
+ // Calculate popup dimensions and position for centering
36
+ const width = popupWidth;
37
+ const height = popupHeight;
38
+ const left = window.screenX + (window.innerWidth - width) / 2;
39
+ const top = window.screenY + (window.innerHeight - height) / 2;
40
+ // Open the Apple login popup
41
+ const authWindow = window.open(appleAuthUrl.toString(), "_blank", `width=${width},height=${height},top=${top},left=${left},scrollbars=yes,resizable=yes`);
42
+ if (!authWindow) {
43
+ console.error("Failed to open Apple login window.");
44
+ return;
45
+ }
46
+ // Monitor the popup for redirect and extract tokens
47
+ const interval = setInterval(() => {
48
+ try {
49
+ const url = authWindow?.location.href || "";
50
+ if (url.startsWith(window.location.origin)) {
51
+ const hashParams = new URLSearchParams(url.split("#")[1]);
52
+ const idToken = hashParams.get("id_token");
53
+ if (idToken) {
54
+ authWindow?.close();
55
+ clearInterval(interval);
56
+ onSuccess({ idToken });
57
+ }
58
+ }
59
+ }
60
+ catch (error) {
61
+ // Ignore cross-origin errors until the popup redirects to the same origin.
62
+ // These errors occur because the script attempts to access the URL of the popup window while it's on a different domain.
63
+ // Due to browser security policies (Same-Origin Policy), accessing properties like location.href on a window that is on a different domain will throw an exception.
64
+ // Once the popup redirects to the same origin as the parent window, these errors will no longer occur, and the script can safely access the popup's location to extract parameters.
65
+ }
66
+ if (authWindow?.closed) {
67
+ clearInterval(interval);
68
+ }
69
+ }, 500);
70
+ };
71
+ if (!appleSDKLoaded) {
72
+ return null;
73
+ }
74
+ return (jsxs("div", { onClick: handleLogin, className: layout === "inline" ? styles.iconButton : styles.socialButton, children: [jsx("img", { src: appleIcon, className: layout === "inline" ? styles.iconLarge : styles.iconSmall }), layout === "stacked" && jsx("span", { children: "Continue with Apple" })] }));
75
+ };
76
+
77
+ export { AppleAuthButton as default };
78
+ //# sourceMappingURL=Apple.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Apple.mjs","sources":["../../../src/components/auth/Apple.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ interface AuthProps {
3
+ onAuthSuccess: () => Promise<void>;
4
+ onError: (errorMessage: string) => void;
5
+ authConfig: {
6
+ emailEnabled: boolean;
7
+ passkeyEnabled: boolean;
8
+ phoneEnabled: boolean;
9
+ appleEnabled: boolean;
10
+ facebookEnabled: boolean;
11
+ googleEnabled: boolean;
12
+ };
13
+ configOrder: string[];
14
+ customSmsMessage?: string;
15
+ }
16
+ declare const Auth: React.FC<AuthProps>;
17
+ export default Auth;
18
+ //# sourceMappingURL=Auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/components/auth/Auth.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAkDnD,UAAU,SAAS;IACjB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,UAAU,EAAE;QACV,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,EAAE,OAAO,CAAC;QACxB,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;QACzB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA0iB7B,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -0,0 +1,277 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Auth_module = require('./Auth.module.css.js');
5
+ var React = require('react');
6
+ var createSuborg = require('../../actions/createSuborg.js');
7
+ var getSuborgs = require('../../actions/getSuborgs.js');
8
+ var getVerifiedSuborgs = require('../../actions/getVerifiedSuborgs.js');
9
+ var initOtpAuth = require('../../actions/initOtpAuth.js');
10
+ var oauth = require('../../actions/oauth.js');
11
+ require('@turnkey/sdk-server');
12
+ var PhoneInput = require('./PhoneInput.js');
13
+ var Google = require('./Google.js');
14
+ var Apple = require('./Apple.js');
15
+ var Facebook = require('./Facebook.js');
16
+ var material = require('@mui/material');
17
+ var turnkey = require('../../assets/turnkey.svg.js');
18
+ var google = require('../../assets/google.svg.js');
19
+ var facebook = require('../../assets/facebook.svg.js');
20
+ var apple = require('../../assets/apple.svg.js');
21
+ var ChevronLeftIcon = require('@mui/icons-material/ChevronLeft');
22
+ var OtpVerification = require('./OtpVerification.js');
23
+ var useTurnkey = require('../../hooks/use-turnkey.js');
24
+ var constants = require('./constants.js');
25
+
26
+ const passkeyIcon = (jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "43", height: "48", fill: "none", children: [jsxRuntime.jsx("path", { fill: "var(--icon-color)", "fill-rule": "evenodd", d: "M27.52 37.06a6.8 6.8 0 0 0-2.02-.31H12a6.75 6.75 0 0 0-6.75 6.75V48H.75v-4.5A11.25 11.25 0 0 1 12 32.25h13.5c.68 0 1.355.062 2.016.182zm4.698-23.74a13.5 13.5 0 1 0-8.503 13.484c-.057-.178-.131-.425-.167-.566a13 13 0 0 1-.229-1.134 12 12 0 0 1-.054-.448q-.02-.202-.013-1.064c.007-.82.01-.877.055-1.186.018-.121.046-.29.072-.438a9 9 0 1 1 4.315-6.714 13.83 13.83 0 0 1 .87-.564 14 14 0 0 1 1.08-.556c.102-.045.299-.128.44-.184.14-.056.384-.146.544-.202.16-.055.436-.141.615-.194.18-.05.467-.125.641-.165.092-.02.214-.046.334-.07", "clip-rule": "evenodd" }), jsxRuntime.jsx("path", { fill: "var(--icon-color)", "fill-rule": "evenodd", d: "M33.844 16.554a9.563 9.563 0 0 0-.975.134c-.125.022-.355.075-.51.114s-.418.12-.589.177a11 11 0 0 0-.553.21 12 12 0 0 0-.519.244 8.29 8.29 0 0 0-.961.573c-.114.08-.313.23-.445.334-.13.104-.358.31-.507.454a10 10 0 0 0-.466.495c-.107.127-.269.334-.362.46-.091.128-.232.34-.313.474-.079.133-.195.34-.256.46-.062.122-.15.308-.196.413a10 10 0 0 0-.152.387c-.04.107-.1.304-.14.44a9 9 0 0 0-.119.51c-.028.145-.065.374-.082.51a6 6 0 0 0-.032.773c-.002.327.007.598.021.712a8.924 8.924 0 0 0 .163.905c.03.116.09.322.134.457.046.136.125.35.178.475a8 8 0 0 0 .725 1.329 9.15 9.15 0 0 0 .622.772c.111.121.294.306.408.41.114.101.295.256.4.342.108.085.273.211.37.28.097.068.244.165.325.218l.299.179c.082.047.251.137.374.2.125.062.232.127.24.146.013.025.018 2.403.018 7.032 0 5.905.004 7.018.025 7.125.014.07.047.18.075.24.029.064.08.156.113.203.032.05.522.654 1.086 1.345.564.693 1.07 1.31 1.123 1.371.054.063.14.151.195.195.054.042.162.111.239.151s.204.092.281.115c.121.035.181.04.413.04.206 0 .3-.007.387-.03a2 2 0 0 0 .237-.09 1.8 1.8 0 0 0 .388-.25c.029-.029.547-.657 1.153-1.397a97 97 0 0 0 1.12-1.383.4.4 0 0 0 .019-.137c0-.053-.016-.178-.035-.276a5 5 0 0 0-.273-.876 24 24 0 0 0-.298-.73 32 32 0 0 0-.626-1.365.8.8 0 0 1-.069-.172q.001-.033.041-.043c.021-.003.134-.016.25-.026s.295-.032.395-.046c.102-.016.248-.044.325-.065a.9.9 0 0 0 .237-.102.8.8 0 0 0 .15-.133c.028-.037.073-.116.1-.174.026-.058.054-.16.065-.229a1.895 1.895 0 0 0-.042-.589 2 2 0 0 0-.074-.193c-.023-.053-.355-.542-.736-1.085-.38-.543-.693-1.005-.693-1.025 0-.028.037-.046.234-.105.128-.04.339-.113.469-.162.132-.047.293-.116.36-.15a1 1 0 0 0 .204-.144.8.8 0 0 0 .144-.212c.034-.072.072-.18.085-.238s.024-.2.024-.316c0-.123-.009-.25-.024-.308a1.4 1.4 0 0 0-.072-.202c-.032-.07-.275-.39-.737-.975-.378-.479-.687-.883-.687-.9s.018-.043.04-.055.197-.11.39-.215c.194-.103.431-.237.528-.295.096-.058.22-.15.274-.204a1.1 1.1 0 0 0 .257-.459c.026-.1.031-.247.04-1.283.005-.642.016-1.178.023-1.19s.105-.069.22-.125c.112-.058.284-.15.38-.204a10 10 0 0 0 .985-.668 6.762 6.762 0 0 0 .826-.767c.107-.117.267-.305.358-.418a8 8 0 0 0 .605-.891 8.9 8.9 0 0 0 .373-.756c.045-.105.12-.308.17-.448a8 8 0 0 0 .156-.536c.037-.155.088-.408.113-.563.023-.155.05-.381.061-.505a8 8 0 0 0-.007-1.139 8 8 0 0 0-.07-.527 8 8 0 0 0-.097-.466c-.028-.116-.08-.3-.116-.413a7 7 0 0 0-.83-1.714 10 10 0 0 0-.256-.37 9 9 0 0 0-.23-.29 9 9 0 0 0-.81-.82 9 9 0 0 0-.395-.32 9 9 0 0 0-.835-.556 13 13 0 0 0-.417-.221 11 11 0 0 0-.483-.223 8 8 0 0 0-.98-.343 11 11 0 0 0-.422-.108c-.106-.022-.288-.06-.404-.079a10 10 0 0 0-.51-.073 8 8 0 0 0-.852-.043c-.304-.001-.644.002-.756.011m.207 3.334-.058.006a4.6 4.6 0 0 0-1.283.341 4 4 0 0 0-.334.159 4.354 4.354 0 0 0-.668.452 5.5 5.5 0 0 0-.669.69 5 5 0 0 0-.207.308 4 4 0 0 0-.18.325c-.04.088-.101.234-.135.325a3.856 3.856 0 0 0-.177.66c-.016.087-.034.24-.04.342-.01.159-.008.19.017.215.028.03.25.031 4.175.031 3.663 0 4.15-.003 4.174-.026q.029-.027.028-.12a3 3 0 0 0-.072-.574 3.9 3.9 0 0 0-.297-.87 4 4 0 0 0-.21-.379 6 6 0 0 0-.23-.316 6 6 0 0 0-.346-.37 5 5 0 0 0-.365-.326 7 7 0 0 0-.246-.178 5 5 0 0 0-.264-.16 4.6 4.6 0 0 0-1.585-.52 5.681 5.681 0 0 0-.84-.035z", "clip-rule": "evenodd" })] }));
27
+ const passkeyIconError = (jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "43", height: "48", fill: "none", children: [jsxRuntime.jsx("path", { fill: "var(--error-color)", "fill-rule": "evenodd", d: "M27.52 37.06a6.8 6.8 0 0 0-2.02-.31H12a6.75 6.75 0 0 0-6.75 6.75V48H.75v-4.5A11.25 11.25 0 0 1 12 32.25h13.5c.68 0 1.355.062 2.016.182zm4.698-23.74a13.5 13.5 0 1 0-8.503 13.484c-.057-.178-.131-.425-.167-.566a13 13 0 0 1-.229-1.134 12 12 0 0 1-.054-.448q-.02-.202-.013-1.064c.007-.82.01-.877.055-1.186.018-.121.046-.29.072-.438a9 9 0 1 1 4.315-6.714 13.83 13.83 0 0 1 .87-.564 14 14 0 0 1 1.08-.556c.102-.045.299-.128.44-.184.14-.056.384-.146.544-.202.16-.055.436-.141.615-.194.18-.05.467-.125.641-.165.092-.02.214-.046.334-.07", "clip-rule": "evenodd" }), jsxRuntime.jsx("path", { fill: "var(--error-color)", "fill-rule": "evenodd", d: "M33.844 16.554a9.563 9.563 0 0 0-.975.134c-.125.022-.355.075-.51.114s-.418.12-.589.177a11 11 0 0 0-.553.21 12 12 0 0 0-.519.244 8.29 8.29 0 0 0-.961.573c-.114.08-.313.23-.445.334-.13.104-.358.31-.507.454a10 10 0 0 0-.466.495c-.107.127-.269.334-.362.46-.091.128-.232.34-.313.474-.079.133-.195.34-.256.46-.062.122-.15.308-.196.413a10 10 0 0 0-.152.387c-.04.107-.1.304-.14.44a9 9 0 0 0-.119.51c-.028.145-.065.374-.082.51a6 6 0 0 0-.032.773c-.002.327.007.598.021.712a8.924 8.924 0 0 0 .163.905c.03.116.09.322.134.457.046.136.125.35.178.475a8 8 0 0 0 .725 1.329 9.15 9.15 0 0 0 .622.772c.111.121.294.306.408.41.114.101.295.256.4.342.108.085.273.211.37.28.097.068.244.165.325.218l.299.179c.082.047.251.137.374.2.125.062.232.127.24.146.013.025.018 2.403.018 7.032 0 5.905.004 7.018.025 7.125.014.07.047.18.075.24.029.064.08.156.113.203.032.05.522.654 1.086 1.345.564.693 1.07 1.31 1.123 1.371.054.063.14.151.195.195.054.042.162.111.239.151s.204.092.281.115c.121.035.181.04.413.04.206 0 .3-.007.387-.03a2 2 0 0 0 .237-.09 1.8 1.8 0 0 0 .388-.25c.029-.029.547-.657 1.153-1.397a97 97 0 0 0 1.12-1.383.4.4 0 0 0 .019-.137c0-.053-.016-.178-.035-.276a5 5 0 0 0-.273-.876 24 24 0 0 0-.298-.73 32 32 0 0 0-.626-1.365.8.8 0 0 1-.069-.172q.001-.033.041-.043c.021-.003.134-.016.25-.026s.295-.032.395-.046c.102-.016.248-.044.325-.065a.9.9 0 0 0 .237-.102.8.8 0 0 0 .15-.133c.028-.037.073-.116.1-.174.026-.058.054-.16.065-.229a1.895 1.895 0 0 0-.042-.589 2 2 0 0 0-.074-.193c-.023-.053-.355-.542-.736-1.085-.38-.543-.693-1.005-.693-1.025 0-.028.037-.046.234-.105.128-.04.339-.113.469-.162.132-.047.293-.116.36-.15a1 1 0 0 0 .204-.144.8.8 0 0 0 .144-.212c.034-.072.072-.18.085-.238s.024-.2.024-.316c0-.123-.009-.25-.024-.308a1.4 1.4 0 0 0-.072-.202c-.032-.07-.275-.39-.737-.975-.378-.479-.687-.883-.687-.9s.018-.043.04-.055.197-.11.39-.215c.194-.103.431-.237.528-.295.096-.058.22-.15.274-.204a1.1 1.1 0 0 0 .257-.459c.026-.1.031-.247.04-1.283.005-.642.016-1.178.023-1.19s.105-.069.22-.125c.112-.058.284-.15.38-.204a10 10 0 0 0 .985-.668 6.762 6.762 0 0 0 .826-.767c.107-.117.267-.305.358-.418a8 8 0 0 0 .605-.891 8.9 8.9 0 0 0 .373-.756c.045-.105.12-.308.17-.448a8 8 0 0 0 .156-.536c.037-.155.088-.408.113-.563.023-.155.05-.381.061-.505a8 8 0 0 0-.007-1.139 8 8 0 0 0-.07-.527 8 8 0 0 0-.097-.466c-.028-.116-.08-.3-.116-.413a7 7 0 0 0-.83-1.714 10 10 0 0 0-.256-.37 9 9 0 0 0-.23-.29 9 9 0 0 0-.81-.82 9 9 0 0 0-.395-.32 9 9 0 0 0-.835-.556 13 13 0 0 0-.417-.221 11 11 0 0 0-.483-.223 8 8 0 0 0-.98-.343 11 11 0 0 0-.422-.108c-.106-.022-.288-.06-.404-.079a10 10 0 0 0-.51-.073 8 8 0 0 0-.852-.043c-.304-.001-.644.002-.756.011m.207 3.334-.058.006a4.6 4.6 0 0 0-1.283.341 4 4 0 0 0-.334.159 4.354 4.354 0 0 0-.668.452 5.5 5.5 0 0 0-.669.69 5 5 0 0 0-.207.308 4 4 0 0 0-.18.325c-.04.088-.101.234-.135.325a3.856 3.856 0 0 0-.177.66c-.016.087-.034.24-.04.342-.01.159-.008.19.017.215.028.03.25.031 4.175.031 3.663 0 4.15-.003 4.174-.026q.029-.027.028-.12a3 3 0 0 0-.072-.574 3.9 3.9 0 0 0-.297-.87 4 4 0 0 0-.21-.379 6 6 0 0 0-.23-.316 6 6 0 0 0-.346-.37 5 5 0 0 0-.365-.326 7 7 0 0 0-.246-.178 5 5 0 0 0-.264-.16 4.6 4.6 0 0 0-1.585-.52 5.681 5.681 0 0 0-.84-.035z", "clip-rule": "evenodd" })] }));
28
+ const Auth = ({ onAuthSuccess, onError, authConfig, configOrder, customSmsMessage, }) => {
29
+ const { passkeyClient, authIframeClient } = useTurnkey.useTurnkey();
30
+ const [email, setEmail] = React.useState("");
31
+ const [phone, setPhone] = React.useState("");
32
+ const [otpId, setOtpId] = React.useState(null);
33
+ const [step, setStep] = React.useState("auth");
34
+ const [oauthLoading, setOauthLoading] = React.useState("");
35
+ const [suborgId, setSuborgId] = React.useState("");
36
+ const [passkeySignupScreen, setPasskeySignupScreen] = React.useState(false);
37
+ const [passkeyCreationScreen, setPasskeyCreationScreen] = React.useState(false);
38
+ const [passkeySignupError, setPasskeySignupError] = React.useState("");
39
+ const [loading, setLoading] = React.useState(true);
40
+ const [passkeyCreated, setPasskeyCreated] = React.useState(false);
41
+ const handleResendCode = async () => {
42
+ if (step === constants.OtpType.Email) {
43
+ await handleOtpLogin(constants.FilterType.Email, email, constants.OtpType.Email);
44
+ }
45
+ else if (step === constants.OtpType.Sms) {
46
+ await handleOtpLogin(constants.FilterType.PhoneNumber, phone, constants.OtpType.Sms);
47
+ }
48
+ };
49
+ React.useEffect(() => {
50
+ if (authIframeClient) {
51
+ setLoading(false);
52
+ }
53
+ }, [authIframeClient]);
54
+ if (loading) {
55
+ return (jsxRuntime.jsx("div", { className: Auth_module.defaultLoader, children: jsxRuntime.jsx(material.CircularProgress, { size: 80, thickness: 1, className: Auth_module.circularProgress }) }));
56
+ }
57
+ const isValidEmail = (email) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
58
+ const isValidPhone = (phone) => /^\+1\d{10}$/.test(phone);
59
+ const handleGetOrCreateSuborg = async (filterType, filterValue, additionalData = {}) => {
60
+ let suborgId;
61
+ if (filterType == constants.FilterType.Email ||
62
+ filterType == constants.FilterType.PhoneNumber) {
63
+ const getVerifiedSuborgsResponse = await getVerifiedSuborgs.getVerifiedSuborgs({
64
+ filterType,
65
+ filterValue,
66
+ });
67
+ if (!getVerifiedSuborgsResponse ||
68
+ !getVerifiedSuborgsResponse.organizationIds) {
69
+ onError(constants.authErrors.suborg.fetchFailed);
70
+ }
71
+ suborgId = getVerifiedSuborgsResponse?.organizationIds[0];
72
+ }
73
+ else {
74
+ const getSuborgsResponse = await getSuborgs.getSuborgs({ filterType, filterValue });
75
+ if (!getSuborgsResponse || !getSuborgsResponse.organizationIds) {
76
+ onError(constants.authErrors.suborg.fetchFailed);
77
+ }
78
+ suborgId = getSuborgsResponse?.organizationIds[0];
79
+ }
80
+ if (!suborgId) {
81
+ const createSuborgData = { ...additionalData };
82
+ if (filterType === constants.FilterType.Email)
83
+ createSuborgData.email = filterValue;
84
+ else if (filterType === constants.FilterType.PhoneNumber)
85
+ createSuborgData.phoneNumber = filterValue;
86
+ const createSuborgResponse = await createSuborg.createSuborg(createSuborgData);
87
+ if (!createSuborgResponse || !createSuborgResponse.subOrganizationId) {
88
+ onError(constants.authErrors.suborg.createFailed);
89
+ }
90
+ suborgId = createSuborgResponse?.subOrganizationId;
91
+ }
92
+ return suborgId;
93
+ };
94
+ const handleAuthSuccess = async (credentialBundle) => {
95
+ if (credentialBundle) {
96
+ await authIframeClient.injectCredentialBundle(credentialBundle);
97
+ await authIframeClient.loginWithAuthBundle(credentialBundle);
98
+ await onAuthSuccess();
99
+ }
100
+ };
101
+ const handleSignupWithPasskey = async () => {
102
+ setPasskeySignupError("");
103
+ const siteInfo = `${new URL(window.location.href).hostname} - ${new Date().toLocaleString(undefined, {
104
+ year: "numeric",
105
+ month: "long",
106
+ day: "numeric",
107
+ hour: "2-digit",
108
+ minute: "2-digit",
109
+ second: "2-digit",
110
+ })}`;
111
+ setPasskeySignupScreen(false);
112
+ setPasskeyCreationScreen(true);
113
+ try {
114
+ if (!passkeyCreated) {
115
+ const { encodedChallenge, attestation } = (await passkeyClient?.createUserPasskey({
116
+ publicKey: { user: { name: siteInfo, displayName: siteInfo } },
117
+ })) || {};
118
+ if (encodedChallenge && attestation) {
119
+ const response = await createSuborg.createSuborg({
120
+ email,
121
+ passkey: {
122
+ authenticatorName: "First Passkey",
123
+ challenge: encodedChallenge,
124
+ attestation,
125
+ },
126
+ });
127
+ if (response?.subOrganizationId) {
128
+ setPasskeyCreated(true);
129
+ }
130
+ else {
131
+ constants.authErrors.passkey.createFailed;
132
+ }
133
+ }
134
+ else {
135
+ constants.authErrors.passkey.createFailed;
136
+ }
137
+ }
138
+ const sessionResponse = await passkeyClient?.createReadWriteSession({
139
+ targetPublicKey: authIframeClient?.iframePublicKey,
140
+ organizationId: process.env.NEXT_PUBLIC_ORGANIZATION_ID,
141
+ });
142
+ if (sessionResponse?.credentialBundle) {
143
+ await handleAuthSuccess(sessionResponse.credentialBundle);
144
+ }
145
+ else {
146
+ setPasskeySignupError(constants.authErrors.passkey.loginFailed);
147
+ }
148
+ }
149
+ catch {
150
+ setPasskeySignupError(constants.authErrors.passkey.timeoutOrNotAllowed);
151
+ }
152
+ };
153
+ const handleLoginWithPasskey = async () => {
154
+ try {
155
+ const sessionResponse = await passkeyClient?.createReadWriteSession({
156
+ targetPublicKey: authIframeClient?.iframePublicKey,
157
+ organizationId: process.env.NEXT_PUBLIC_ORGANIZATION_ID,
158
+ });
159
+ if (sessionResponse?.credentialBundle) {
160
+ await handleAuthSuccess(sessionResponse.credentialBundle);
161
+ }
162
+ else {
163
+ constants.authErrors.passkey.loginFailed;
164
+ }
165
+ }
166
+ catch (error) {
167
+ onError(constants.authErrors.passkey.loginFailed);
168
+ }
169
+ };
170
+ const handleOtpLogin = async (type, value, otpType) => {
171
+ const suborgId = await handleGetOrCreateSuborg(type, value);
172
+ const initAuthResponse = await initOtpAuth.initOtpAuth({
173
+ suborgID: suborgId,
174
+ otpType,
175
+ contact: value,
176
+ ...(customSmsMessage && { customSmsMessage }),
177
+ userIdentifier: authIframeClient?.iframePublicKey,
178
+ });
179
+ if (initAuthResponse && initAuthResponse.otpId) {
180
+ setSuborgId(suborgId);
181
+ setOtpId(initAuthResponse?.otpId);
182
+ setStep(otpType);
183
+ }
184
+ else {
185
+ onError(constants.authErrors.otp.sendFailed);
186
+ }
187
+ };
188
+ const handleOAuthLogin = async (credential, providerName) => {
189
+ setOauthLoading(providerName);
190
+ const suborgId = await handleGetOrCreateSuborg(constants.FilterType.OidcToken, credential, {
191
+ oauthProviders: [{ providerName, oidcToken: credential }],
192
+ });
193
+ const oauthResponse = await oauth.oauth({
194
+ suborgID: suborgId,
195
+ oidcToken: credential,
196
+ targetPublicKey: authIframeClient?.iframePublicKey,
197
+ });
198
+ if (oauthResponse && oauthResponse.credentialBundle) {
199
+ await handleAuthSuccess(oauthResponse.credentialBundle);
200
+ }
201
+ else {
202
+ onError(constants.authErrors.oauth.loginFailed);
203
+ }
204
+ };
205
+ const renderBackButton = () => (jsxRuntime.jsx(ChevronLeftIcon, { onClick: () => {
206
+ setPasskeyCreationScreen(false);
207
+ setPasskeySignupError("");
208
+ setPasskeySignupScreen(false);
209
+ setOtpId(null);
210
+ }, sx: {
211
+ color: "var(--text-secondary)",
212
+ position: "absolute",
213
+ top: 16,
214
+ left: 16,
215
+ zIndex: 10,
216
+ cursor: "pointer",
217
+ borderRadius: "50%",
218
+ padding: "6px",
219
+ transition: "background-color 0.3s ease",
220
+ } }));
221
+ const renderSocialButtons = () => {
222
+ const { googleEnabled, appleEnabled, facebookEnabled } = authConfig;
223
+ const layout = [googleEnabled, appleEnabled, facebookEnabled].filter(Boolean).length >= 2
224
+ ? "inline"
225
+ : "stacked";
226
+ return (jsxRuntime.jsxs("div", { className: layout === "inline"
227
+ ? Auth_module.socialButtonContainerInline
228
+ : Auth_module.socialButtonContainerStacked, children: [googleEnabled && (jsxRuntime.jsx(Google, { layout: layout, clientId: process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID, iframePublicKey: authIframeClient.iframePublicKey, onSuccess: (response) => handleOAuthLogin(response.idToken, "Google") })), appleEnabled && (jsxRuntime.jsx(Apple, { layout: layout, clientId: process.env.NEXT_PUBLIC_APPLE_CLIENT_ID, iframePublicKey: authIframeClient.iframePublicKey, onSuccess: (response) => handleOAuthLogin(response.idToken, "Apple") })), facebookEnabled && (jsxRuntime.jsx(Facebook, { layout: layout, clientId: process.env.NEXT_PUBLIC_FACEBOOK_CLIENT_ID, iframePublicKey: authIframeClient.iframePublicKey, onSuccess: (response) => handleOAuthLogin(response.id_token, "Facebook") }))] }));
229
+ };
230
+ const renderSection = (section) => {
231
+ switch (section) {
232
+ case "email":
233
+ return authConfig.emailEnabled && !otpId ? (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: Auth_module.inputGroup, children: jsxRuntime.jsx(material.TextField, { name: "emailInput", autoComplete: "off", type: "email", placeholder: "Enter your email", value: email, onChange: (e) => setEmail(e.target.value), fullWidth: true, sx: {
234
+ "& .MuiOutlinedInput-root": {
235
+ color: "var(--input-text)",
236
+ "& fieldset": {
237
+ borderColor: "var(--input-border)",
238
+ },
239
+ "&:hover fieldset": {
240
+ borderColor: "var(--input-hover-border)",
241
+ },
242
+ "&.Mui-focused fieldset": {
243
+ borderColor: "var(--input-focus-border)",
244
+ border: "1px solid",
245
+ },
246
+ },
247
+ "& .MuiInputBase-input": {
248
+ padding: "12px",
249
+ },
250
+ backgroundColor: "var(--input-bg)",
251
+ }, variant: "outlined" }) }), jsxRuntime.jsx("button", { className: Auth_module.authButton, type: "button", onClick: () => handleOtpLogin(constants.FilterType.Email, email, constants.OtpType.Email), disabled: !isValidEmail(email), children: "Continue" })] })) : null;
252
+ case "passkey":
253
+ return authConfig.passkeyEnabled && !otpId ? (jsxRuntime.jsxs("div", { className: Auth_module.passkeyContainer, children: [jsxRuntime.jsx("button", { className: Auth_module.authButton, type: "button", onClick: handleLoginWithPasskey, children: "Log in with passkey" }), jsxRuntime.jsx("div", { className: Auth_module.noPasskeyLink, onClick: () => setPasskeySignupScreen(true), children: "Sign up with passkey" })] })) : null;
254
+ case "phone":
255
+ return authConfig.phoneEnabled && !otpId ? (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: Auth_module.phoneInput, children: jsxRuntime.jsx(PhoneInput.MuiPhone, { onChange: (value) => setPhone(value), value: phone }) }), jsxRuntime.jsx("button", { className: Auth_module.authButton, type: "button", onClick: () => handleOtpLogin(constants.FilterType.PhoneNumber, phone, constants.OtpType.Sms), disabled: !isValidPhone(phone), children: "Continue" })] })) : null;
256
+ case "socials":
257
+ return authConfig.googleEnabled ||
258
+ authConfig.appleEnabled ||
259
+ authConfig.facebookEnabled
260
+ ? renderSocialButtons()
261
+ : null;
262
+ default:
263
+ return null;
264
+ }
265
+ };
266
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: passkeySignupScreen ? (jsxRuntime.jsxs("div", { className: Auth_module.authCard, children: [renderBackButton(), jsxRuntime.jsx("div", { className: Auth_module.passkeyIconContainer, children: passkeyIcon }), jsxRuntime.jsx("center", { children: jsxRuntime.jsx("h3", { className: Auth_module.primaryText, children: "Create a passkey" }) }), jsxRuntime.jsx("div", { className: Auth_module.rowsContainer, children: jsxRuntime.jsx("center", { children: jsxRuntime.jsx("span", { className: Auth_module.primaryText, children: "Passkeys allow for easy biometric access to your wallet and can be synced across devices." }) }) }), jsxRuntime.jsx("button", { className: Auth_module.authButton, type: "button", onClick: handleSignupWithPasskey, children: "Continue" })] })) : passkeyCreationScreen ? (jsxRuntime.jsxs("div", { className: Auth_module.authCard, children: [renderBackButton(), jsxRuntime.jsx("div", { className: Auth_module.passkeyIconContainer, children: passkeySignupError ? (jsxRuntime.jsx("div", { children: passkeyIconError })) : (jsxRuntime.jsxs("div", { className: Auth_module.loadingWrapper, children: [jsxRuntime.jsx(material.CircularProgress, { size: 80, thickness: 1, className: Auth_module.circularProgress }), passkeyIcon] })) }), jsxRuntime.jsx("center", { children: jsxRuntime.jsx("h3", { className: Auth_module.primaryText, children: passkeySignupError
267
+ ? "Authentication error"
268
+ : passkeyCreated
269
+ ? "Logging in with passkey..."
270
+ : "Creating passkey..." }) }), jsxRuntime.jsx("div", { className: Auth_module.rowsContainer, children: jsxRuntime.jsx("span", { className: Auth_module.primaryText, children: jsxRuntime.jsx("center", { children: passkeySignupError ? passkeySignupError : "" }) }) }), passkeySignupError && (jsxRuntime.jsx("button", { className: Auth_module.authButton, type: "button", onClick: handleSignupWithPasskey, children: "Retry" }))] })) : (jsxRuntime.jsx("div", { children: oauthLoading !== "" ? (jsxRuntime.jsxs("div", { className: Auth_module.authCardLoading, children: [jsxRuntime.jsxs("h3", { className: Auth_module.verifyingText, children: ["Verifying with ", oauthLoading] }), jsxRuntime.jsxs("div", { className: Auth_module.loadingWrapper, children: [jsxRuntime.jsx(material.CircularProgress, { size: 80, thickness: 1, className: Auth_module.circularProgress }), oauthLoading === "Google" && (jsxRuntime.jsx("img", { src: google, className: Auth_module.oauthIcon })), oauthLoading === "Facebook" && (jsxRuntime.jsx("img", { src: facebook, className: Auth_module.oauthIcon })), oauthLoading === "Apple" && (jsxRuntime.jsx("img", { src: apple, className: Auth_module.oauthIcon }))] }), jsxRuntime.jsxs("div", { className: Auth_module.poweredBy, children: [jsxRuntime.jsx("span", { children: "Secured by" }), jsxRuntime.jsx("img", { src: turnkey })] })] })) : (jsxRuntime.jsxs("div", { className: Auth_module.authCard, children: [otpId && renderBackButton(), jsxRuntime.jsx("h2", { className: Auth_module.primaryText, children: !otpId && "Log in or sign up" }), jsxRuntime.jsxs("div", { className: Auth_module.authForm, children: [!otpId &&
271
+ configOrder
272
+ .filter((section) => renderSection(section) !== null)
273
+ .map((section, index, visibleSections) => (jsxRuntime.jsxs(React.Fragment, { children: [renderSection(section), index < visibleSections.length - 1 && (jsxRuntime.jsx("div", { className: Auth_module.separator, children: jsxRuntime.jsx("span", { children: "OR" }) }))] }, section))), otpId && (jsxRuntime.jsx(OtpVerification, { type: step, contact: step === constants.OtpType.Email ? email : phone, suborgId: suborgId, otpId: otpId, authIframeClient: authIframeClient, onValidateSuccess: handleAuthSuccess, onResendCode: handleResendCode })), !otpId && (jsxRuntime.jsx("div", { className: Auth_module.tos, children: jsxRuntime.jsxs("span", { children: ["By continuing, you agree to our", " ", jsxRuntime.jsx("a", { href: "https://www.turnkey.com/legal/terms", target: "_blank", rel: "noopener noreferrer", className: Auth_module.tosBold, children: "Terms of Service" }), " ", "&", " ", jsxRuntime.jsx("a", { href: "https://www.turnkey.com/legal/privacy", target: "_blank", rel: "noopener noreferrer", className: Auth_module.tosBold, children: "Privacy Policy" }), "."] }) }))] }), jsxRuntime.jsxs("div", { onClick: () => (window.location.href = "https://www.turnkey.com/"), className: Auth_module.poweredBy, children: [jsxRuntime.jsx("span", { children: "Secured by" }), jsxRuntime.jsx("img", { src: turnkey })] })] })) })) }));
274
+ };
275
+
276
+ module.exports = Auth;
277
+ //# sourceMappingURL=Auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Auth.js","sources":["../../../src/components/auth/Auth.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx","useTurnkey","useState","OtpType","FilterType","useEffect","styles","CircularProgress","getVerifiedSuborgs","authErrors","getSuborgs","createSuborg","initOtpAuth","oauth","GoogleAuthButton","AppleAuthButton","FacebookAuthButton","TextField","MuiPhone","_Fragment","googleIcon","facebookIcon","appleIcon","turnkeyIcon"],"mappings":"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"}