@cedros/login-react 0.0.28 → 0.0.30

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 (175) hide show
  1. package/README.md +2 -0
  2. package/dist/{AdminDepositList-CyT4VBH8.js → AdminDepositList-BUm_ZcAW.js} +1 -1
  3. package/dist/{AdminDepositList-CyT4VBH8.js.map → AdminDepositList-BUm_ZcAW.js.map} +1 -1
  4. package/dist/{AdminDepositList-b2AXtLg0.cjs → AdminDepositList-B_z6x3j5.cjs} +1 -1
  5. package/dist/{AdminDepositList-b2AXtLg0.cjs.map → AdminDepositList-B_z6x3j5.cjs.map} +1 -1
  6. package/dist/{AdminWithdrawalHistory-DL9zbu2b.cjs → AdminWithdrawalHistory-B2EY2ZmH.cjs} +1 -1
  7. package/dist/{AdminWithdrawalHistory-DL9zbu2b.cjs.map → AdminWithdrawalHistory-B2EY2ZmH.cjs.map} +1 -1
  8. package/dist/{AdminWithdrawalHistory-Cud-yuWy.js → AdminWithdrawalHistory-C76bkbjX.js} +1 -1
  9. package/dist/{AdminWithdrawalHistory-Cud-yuWy.js.map → AdminWithdrawalHistory-C76bkbjX.js.map} +1 -1
  10. package/dist/{AuthenticationSettings-D6GvSw3g.cjs → AuthenticationSettings-C-aYDXNH.cjs} +1 -1
  11. package/dist/{AuthenticationSettings-D6GvSw3g.cjs.map → AuthenticationSettings-C-aYDXNH.cjs.map} +1 -1
  12. package/dist/AuthenticationSettings-CoTic-d_.cjs +1 -0
  13. package/dist/AuthenticationSettings-CoTic-d_.cjs.map +1 -0
  14. package/dist/{AuthenticationSettings-rb4Fksw5.js → AuthenticationSettings-CsPbxwP7.js} +1 -1
  15. package/dist/{AuthenticationSettings-rb4Fksw5.js.map → AuthenticationSettings-CsPbxwP7.js.map} +1 -1
  16. package/dist/AuthenticationSettings-DIVk0OP8.js +712 -0
  17. package/dist/AuthenticationSettings-DIVk0OP8.js.map +1 -0
  18. package/dist/AutosaveStatus-DGNI4lXn.cjs +1 -0
  19. package/dist/AutosaveStatus-DGNI4lXn.cjs.map +1 -0
  20. package/dist/{AutosaveStatus-vkJxtuEw.js → AutosaveStatus-f-jw25Ay.js} +141 -93
  21. package/dist/AutosaveStatus-f-jw25Ay.js.map +1 -0
  22. package/dist/{CreditSystemSettings-ChA_lbef.cjs → CreditSystemSettings-BNkvsgsk.cjs} +1 -1
  23. package/dist/{CreditSystemSettings-ChA_lbef.cjs.map → CreditSystemSettings-BNkvsgsk.cjs.map} +1 -1
  24. package/dist/{CreditSystemSettings-DsRipb2R.js → CreditSystemSettings-C6ed3yp7.js} +1 -1
  25. package/dist/{CreditSystemSettings-DsRipb2R.js.map → CreditSystemSettings-C6ed3yp7.js.map} +1 -1
  26. package/dist/{CreditSystemSettings-r3gnGjiU.cjs → CreditSystemSettings-DM9ep1TF.cjs} +1 -1
  27. package/dist/{CreditSystemSettings-r3gnGjiU.cjs.map → CreditSystemSettings-DM9ep1TF.cjs.map} +1 -1
  28. package/dist/{CreditSystemSettings-a31pqSYS.js → CreditSystemSettings-uinhzoha.js} +1 -1
  29. package/dist/{CreditSystemSettings-a31pqSYS.js.map → CreditSystemSettings-uinhzoha.js.map} +1 -1
  30. package/dist/{DepositsSection-DD9MKUFt.js → DepositsSection-Bb4ISzvE.js} +1 -1
  31. package/dist/{DepositsSection-DD9MKUFt.js.map → DepositsSection-Bb4ISzvE.js.map} +1 -1
  32. package/dist/{DepositsSection-BkKUS4vk.cjs → DepositsSection-uQUdGeVb.cjs} +1 -1
  33. package/dist/{DepositsSection-BkKUS4vk.cjs.map → DepositsSection-uQUdGeVb.cjs.map} +1 -1
  34. package/dist/EmailRegisterForm-B_TiJkD6.cjs +1 -0
  35. package/dist/EmailRegisterForm-B_TiJkD6.cjs.map +1 -0
  36. package/dist/EmailRegisterForm-CCEuQA-w.js +773 -0
  37. package/dist/EmailRegisterForm-CCEuQA-w.js.map +1 -0
  38. package/dist/{EmailSettings-BVJ4vz0Y.js → EmailSettings-BAuQtEfM.js} +1 -1
  39. package/dist/{EmailSettings-BVJ4vz0Y.js.map → EmailSettings-BAuQtEfM.js.map} +1 -1
  40. package/dist/{EmailSettings-Dg2SAiHj.cjs → EmailSettings-BC0f1PCI.cjs} +1 -1
  41. package/dist/{EmailSettings-Dg2SAiHj.cjs.map → EmailSettings-BC0f1PCI.cjs.map} +1 -1
  42. package/dist/{EmailSettings-CM5l8qqK.cjs → EmailSettings-BF5EiPl9.cjs} +1 -1
  43. package/dist/{EmailSettings-CM5l8qqK.cjs.map → EmailSettings-BF5EiPl9.cjs.map} +1 -1
  44. package/dist/{EmailSettings-xtVl4kXD.js → EmailSettings-BKuXy8sc.js} +1 -1
  45. package/dist/{EmailSettings-xtVl4kXD.js.map → EmailSettings-BKuXy8sc.js.map} +1 -1
  46. package/dist/{EmbeddedWalletSettings-Bmx8x21f.cjs → EmbeddedWalletSettings-BRjt2PAj.cjs} +1 -1
  47. package/dist/{EmbeddedWalletSettings-Bmx8x21f.cjs.map → EmbeddedWalletSettings-BRjt2PAj.cjs.map} +1 -1
  48. package/dist/{EmbeddedWalletSettings-BuDgqv-K.js → EmbeddedWalletSettings-C27X9He2.js} +1 -1
  49. package/dist/{EmbeddedWalletSettings-BuDgqv-K.js.map → EmbeddedWalletSettings-C27X9He2.js.map} +1 -1
  50. package/dist/{EmbeddedWalletSettings-BXN9VbNJ.cjs → EmbeddedWalletSettings-CJY39UZN.cjs} +1 -1
  51. package/dist/{EmbeddedWalletSettings-BXN9VbNJ.cjs.map → EmbeddedWalletSettings-CJY39UZN.cjs.map} +1 -1
  52. package/dist/{EmbeddedWalletSettings-DY5iJhS0.js → EmbeddedWalletSettings-Dmi-EQ7W.js} +1 -1
  53. package/dist/{EmbeddedWalletSettings-DY5iJhS0.js.map → EmbeddedWalletSettings-Dmi-EQ7W.js.map} +1 -1
  54. package/dist/GoogleLoginButton-CjBO3Rf1.cjs +1 -0
  55. package/dist/GoogleLoginButton-CjBO3Rf1.cjs.map +1 -0
  56. package/dist/{GoogleLoginButton-B6qnNMZp.js → GoogleLoginButton-DEbiQngr.js} +51 -51
  57. package/dist/GoogleLoginButton-DEbiQngr.js.map +1 -0
  58. package/dist/LoadingSpinner-6vml-zwr.js.map +1 -1
  59. package/dist/LoadingSpinner-d6sSxgQN.cjs.map +1 -1
  60. package/dist/{PermissionsSection-BPbE-hNx.cjs → PermissionsSection-DEMVp7X3.cjs} +1 -1
  61. package/dist/PermissionsSection-DEMVp7X3.cjs.map +1 -0
  62. package/dist/{PermissionsSection-CighC1p6.js → PermissionsSection-DNzOL1xW.js} +27 -25
  63. package/dist/PermissionsSection-DNzOL1xW.js.map +1 -0
  64. package/dist/{ServerSettings-BAstMKHS.js → ServerSettings-BT9weFPz.js} +1 -1
  65. package/dist/{ServerSettings-BAstMKHS.js.map → ServerSettings-BT9weFPz.js.map} +1 -1
  66. package/dist/{ServerSettings-LIIP5TPz.cjs → ServerSettings-CKfiLfXi.cjs} +1 -1
  67. package/dist/{ServerSettings-LIIP5TPz.cjs.map → ServerSettings-CKfiLfXi.cjs.map} +1 -1
  68. package/dist/{ServerSettings-9Q091f3o.js → ServerSettings-CZfBdMxG.js} +1 -1
  69. package/dist/{ServerSettings-9Q091f3o.js.map → ServerSettings-CZfBdMxG.js.map} +1 -1
  70. package/dist/{ServerSettings-PH7T8JKI.cjs → ServerSettings-rHrVN8O8.cjs} +1 -1
  71. package/dist/{ServerSettings-PH7T8JKI.cjs.map → ServerSettings-rHrVN8O8.cjs.map} +1 -1
  72. package/dist/SolanaLoginButton-DAV3r4oB.cjs +1 -0
  73. package/dist/SolanaLoginButton-DAV3r4oB.cjs.map +1 -0
  74. package/dist/{mobileWalletAdapter-Ds4-7Snb.js → SolanaLoginButton-DFOoLqoj.js} +80 -79
  75. package/dist/SolanaLoginButton-DFOoLqoj.js.map +1 -0
  76. package/dist/{TeamSection-BIECkp7g.js → TeamSection-CoMXyFtz.js} +2 -2
  77. package/dist/{TeamSection-BIECkp7g.js.map → TeamSection-CoMXyFtz.js.map} +1 -1
  78. package/dist/{TeamSection-BOH9pv_E.cjs → TeamSection-DopbZClq.cjs} +1 -1
  79. package/dist/{TeamSection-BOH9pv_E.cjs.map → TeamSection-DopbZClq.cjs.map} +1 -1
  80. package/dist/{UsersSection-t-zm0jZW.js → UsersSection--PAE1XRh.js} +1 -1
  81. package/dist/{UsersSection-t-zm0jZW.js.map → UsersSection--PAE1XRh.js.map} +1 -1
  82. package/dist/{UsersSection-e6q7FHzx.cjs → UsersSection-C7aRNkK2.cjs} +1 -1
  83. package/dist/{UsersSection-e6q7FHzx.cjs.map → UsersSection-C7aRNkK2.cjs.map} +1 -1
  84. package/dist/{WebhookSettings-D0F8ESlB.js → WebhookSettings-Bgld6D_T.js} +1 -1
  85. package/dist/{WebhookSettings-D0F8ESlB.js.map → WebhookSettings-Bgld6D_T.js.map} +1 -1
  86. package/dist/{WebhookSettings-2p9abGm5.cjs → WebhookSettings-DXjnq-c7.cjs} +1 -1
  87. package/dist/{WebhookSettings-2p9abGm5.cjs.map → WebhookSettings-DXjnq-c7.cjs.map} +1 -1
  88. package/dist/{WebhookSettings-CdFM7_V-.cjs → WebhookSettings-DnLk97Mr.cjs} +1 -1
  89. package/dist/{WebhookSettings-CdFM7_V-.cjs.map → WebhookSettings-DnLk97Mr.cjs.map} +1 -1
  90. package/dist/{WebhookSettings-CXMBju7N.js → WebhookSettings-ufiGTmbG.js} +1 -1
  91. package/dist/{WebhookSettings-CXMBju7N.js.map → WebhookSettings-ufiGTmbG.js.map} +1 -1
  92. package/dist/{WithdrawalsSection-yRDTVFsb.js → WithdrawalsSection-BN-FjTEV.js} +1 -1
  93. package/dist/{WithdrawalsSection-yRDTVFsb.js.map → WithdrawalsSection-BN-FjTEV.js.map} +1 -1
  94. package/dist/{WithdrawalsSection-sljIyeaz.cjs → WithdrawalsSection-BhuCwFat.cjs} +1 -1
  95. package/dist/{WithdrawalsSection-sljIyeaz.cjs.map → WithdrawalsSection-BhuCwFat.cjs.map} +1 -1
  96. package/dist/admin-only.cjs +1 -1
  97. package/dist/admin-only.js +1 -1
  98. package/dist/email-only.cjs +1 -1
  99. package/dist/email-only.d.ts +17 -1
  100. package/dist/email-only.js +3 -3
  101. package/dist/google-only.cjs +1 -1
  102. package/dist/google-only.d.ts +16 -0
  103. package/dist/google-only.js +3 -3
  104. package/dist/index.cjs +12 -12
  105. package/dist/index.cjs.map +1 -1
  106. package/dist/index.d.ts +246 -10
  107. package/dist/index.js +3484 -2611
  108. package/dist/index.js.map +1 -1
  109. package/dist/login-react.css +1 -1
  110. package/dist/{plugin-DbkijwEV.js → plugin-BbExid4E.js} +1 -1
  111. package/dist/{plugin-DbkijwEV.js.map → plugin-BbExid4E.js.map} +1 -1
  112. package/dist/{plugin-PU2vAozn.cjs → plugin-Xca67fp7.cjs} +1 -1
  113. package/dist/{plugin-PU2vAozn.cjs.map → plugin-Xca67fp7.cjs.map} +1 -1
  114. package/dist/{shamir-CiBczzDN.cjs → shamir-DBpHm7WN.cjs} +1 -1
  115. package/dist/{shamir-CiBczzDN.cjs.map → shamir-DBpHm7WN.cjs.map} +1 -1
  116. package/dist/{shamir-OAB2zD9Y.js → shamir-R8ddesFt.js} +1 -1
  117. package/dist/{shamir-OAB2zD9Y.js.map → shamir-R8ddesFt.js.map} +1 -1
  118. package/dist/{silentWalletEnroll-FqXS7Rvh.js → silentWalletEnroll-Dp1GTeNr.js} +3 -3
  119. package/dist/{silentWalletEnroll-FqXS7Rvh.js.map → silentWalletEnroll-Dp1GTeNr.js.map} +1 -1
  120. package/dist/{silentWalletEnroll-wnkcB9HP.cjs → silentWalletEnroll-HPvsbd2J.cjs} +1 -1
  121. package/dist/{silentWalletEnroll-wnkcB9HP.cjs.map → silentWalletEnroll-HPvsbd2J.cjs.map} +1 -1
  122. package/dist/solana-only.cjs +1 -1
  123. package/dist/solana-only.d.ts +16 -0
  124. package/dist/solana-only.js +3 -3
  125. package/dist/{useAdminDeposits-BTSyeAfg.js → useAdminDeposits-C76B2Q_8.js} +1 -1
  126. package/dist/{useAdminDeposits-BTSyeAfg.js.map → useAdminDeposits-C76B2Q_8.js.map} +1 -1
  127. package/dist/{useAdminDeposits-BkkCwHWp.cjs → useAdminDeposits-CpLd68oP.cjs} +1 -1
  128. package/dist/{useAdminDeposits-BkkCwHWp.cjs.map → useAdminDeposits-CpLd68oP.cjs.map} +1 -1
  129. package/dist/{useAuth-m5Hf89v8.js → useAuth-CVLv2oKA.js} +547 -545
  130. package/dist/useAuth-CVLv2oKA.js.map +1 -0
  131. package/dist/useAuth-XZaciuLg.cjs +1 -0
  132. package/dist/useAuth-XZaciuLg.cjs.map +1 -0
  133. package/dist/useCedrosLogin-CFfID-0i.js +228 -0
  134. package/dist/useCedrosLogin-CFfID-0i.js.map +1 -0
  135. package/dist/useCedrosLogin-DtJorrE7.cjs +1 -0
  136. package/dist/useCedrosLogin-DtJorrE7.cjs.map +1 -0
  137. package/dist/{useOrgs-C3pzMA9h.js → useOrgs-C90KT9KP.js} +1 -1
  138. package/dist/{useOrgs-C3pzMA9h.js.map → useOrgs-C90KT9KP.js.map} +1 -1
  139. package/dist/{useOrgs-DDVRCaVi.cjs → useOrgs-CNqfn-fk.cjs} +1 -1
  140. package/dist/{useOrgs-DDVRCaVi.cjs.map → useOrgs-CNqfn-fk.cjs.map} +1 -1
  141. package/dist/{useSystemSettings-DRrreszl.cjs → useSystemSettings-B2jY51ob.cjs} +1 -1
  142. package/dist/{useSystemSettings-DRrreszl.cjs.map → useSystemSettings-B2jY51ob.cjs.map} +1 -1
  143. package/dist/{useSystemSettings-DBlAMjFi.js → useSystemSettings-rgskaDqP.js} +1 -1
  144. package/dist/{useSystemSettings-DBlAMjFi.js.map → useSystemSettings-rgskaDqP.js.map} +1 -1
  145. package/dist/{useUsersStatsSummary-NjEFvWuz.js → useUsersStatsSummary-5DJwzntC.js} +2 -2
  146. package/dist/{useUsersStatsSummary-NjEFvWuz.js.map → useUsersStatsSummary-5DJwzntC.js.map} +1 -1
  147. package/dist/{useUsersStatsSummary-8qY7iP4G.cjs → useUsersStatsSummary-DgKaUIfs.cjs} +1 -1
  148. package/dist/{useUsersStatsSummary-8qY7iP4G.cjs.map → useUsersStatsSummary-DgKaUIfs.cjs.map} +1 -1
  149. package/package.json +1 -1
  150. package/dist/AuthenticationSettings-C9f5MKgj.cjs +0 -1
  151. package/dist/AuthenticationSettings-C9f5MKgj.cjs.map +0 -1
  152. package/dist/AuthenticationSettings-DC64o_J6.js +0 -525
  153. package/dist/AuthenticationSettings-DC64o_J6.js.map +0 -1
  154. package/dist/AutosaveStatus-BFj5GIab.cjs +0 -1
  155. package/dist/AutosaveStatus-BFj5GIab.cjs.map +0 -1
  156. package/dist/AutosaveStatus-vkJxtuEw.js.map +0 -1
  157. package/dist/EmailRegisterForm-B1DB-bqe.cjs +0 -1
  158. package/dist/EmailRegisterForm-B1DB-bqe.cjs.map +0 -1
  159. package/dist/EmailRegisterForm-BAX_uBIt.js +0 -927
  160. package/dist/EmailRegisterForm-BAX_uBIt.js.map +0 -1
  161. package/dist/GoogleLoginButton-B6qnNMZp.js.map +0 -1
  162. package/dist/GoogleLoginButton-D7CoMXLq.cjs +0 -1
  163. package/dist/GoogleLoginButton-D7CoMXLq.cjs.map +0 -1
  164. package/dist/PermissionsSection-BPbE-hNx.cjs.map +0 -1
  165. package/dist/PermissionsSection-CighC1p6.js.map +0 -1
  166. package/dist/mobileWalletAdapter-BhzZHGIl.cjs +0 -1
  167. package/dist/mobileWalletAdapter-BhzZHGIl.cjs.map +0 -1
  168. package/dist/mobileWalletAdapter-Ds4-7Snb.js.map +0 -1
  169. package/dist/useAuth-X6Ds6WW4.cjs +0 -1
  170. package/dist/useAuth-X6Ds6WW4.cjs.map +0 -1
  171. package/dist/useAuth-m5Hf89v8.js.map +0 -1
  172. package/dist/useCedrosLogin-C9MrcZvh.cjs +0 -1
  173. package/dist/useCedrosLogin-C9MrcZvh.cjs.map +0 -1
  174. package/dist/useCedrosLogin-_94MmGGq.js +0 -216
  175. package/dist/useCedrosLogin-_94MmGGq.js.map +0 -1
@@ -1,927 +0,0 @@
1
- import { jsxs as f, jsx as e, Fragment as O } from "react/jsx-runtime";
2
- import { useRef as G, useState as v, useCallback as C, useEffect as W, useMemo as z, useId as J } from "react";
3
- import { u as U, A as H, h as P } from "./useCedrosLogin-_94MmGGq.js";
4
- import { b as j, v as ce } from "./validation-B8kMV3BL.js";
5
- import { L as K } from "./LoadingSpinner-6vml-zwr.js";
6
- import { E as Q } from "./ErrorMessage-CcEK0pYO.js";
7
- import { s as ie } from "./sanitization-CQ-H1MSg.js";
8
- function Z(n = {}) {
9
- const { maxAttempts: p = 5, windowMs: N = 6e4, showCountdown: d = !1 } = n, h = G([]), [c, w] = v(!1), [, l] = v(0), m = C(() => {
10
- l((r) => r + 1);
11
- }, []), u = C(() => {
12
- const r = Date.now();
13
- h.current = h.current.filter((t) => r - t < N);
14
- }, [N]), k = C(() => {
15
- u(), w((r) => h.current.length === 0 && r ? !1 : r);
16
- }, [u]), i = C(() => (u(), Math.max(0, p - h.current.length)), [u, p]), g = C(() => {
17
- if (u(), h.current.length === 0)
18
- return 0;
19
- const t = h.current[0] + N;
20
- return Math.max(0, t - Date.now());
21
- }, [u, N]), y = C(() => (u(), h.current.length < p), [u, p]), E = C(() => {
22
- if (k(), h.current.length >= p) {
23
- const r = g(), t = Math.ceil(r / 1e3);
24
- throw new Error(
25
- `Too many attempts. Please wait ${t} second${t === 1 ? "" : "s"} before trying again.`
26
- );
27
- }
28
- h.current.push(Date.now()), w((r) => r || !0), m();
29
- }, [k, p, g, m]), b = C(() => {
30
- h.current = [], w((r) => r && !1), m();
31
- }, [m]);
32
- return W(() => {
33
- if (!c || !d) return;
34
- const r = window.setInterval(() => {
35
- k(), m();
36
- }, 1e3);
37
- return () => {
38
- window.clearInterval(r);
39
- };
40
- }, [c, d, m, k]), {
41
- checkLimit: E,
42
- isAllowed: y,
43
- getRemainingAttempts: i,
44
- getTimeUntilReset: g,
45
- reset: b
46
- };
47
- }
48
- function le(n) {
49
- return "mfaRequired" in n && n.mfaRequired === !0;
50
- }
51
- function X() {
52
- const { config: n, _internal: p } = U(), [N, d] = v(!1), [h, c] = v(null), {
53
- checkLimit: w,
54
- getRemainingAttempts: l,
55
- getTimeUntilReset: m,
56
- reset: u
57
- } = Z({ maxAttempts: 5, windowMs: 6e4 }), k = z(
58
- () => new H({
59
- baseUrl: n.serverUrl,
60
- timeoutMs: n.requestTimeout,
61
- retryAttempts: n.retryAttempts
62
- }),
63
- [n.serverUrl, n.requestTimeout, n.retryAttempts]
64
- ), i = n.callbacks, g = n.features?.walletEnrollment !== !1, y = n.serverUrl, E = C(
65
- async (t, s) => {
66
- if (!j(t)) {
67
- const a = {
68
- code: "VALIDATION_ERROR",
69
- message: "Please enter a valid email address"
70
- };
71
- throw c(a), a;
72
- }
73
- try {
74
- w();
75
- } catch (a) {
76
- const o = {
77
- code: "RATE_LIMITED",
78
- message: a instanceof Error ? a.message : "Too many attempts"
79
- };
80
- throw c(o), o;
81
- }
82
- d(!0), c(null);
83
- try {
84
- const a = await k.post("/login", {
85
- email: t,
86
- password: s
87
- });
88
- if (le(a))
89
- return {
90
- mfaRequired: !0,
91
- mfaToken: a.mfaToken,
92
- email: t,
93
- userId: a.userId
94
- };
95
- const o = a;
96
- return i?.onLoginSuccess?.(o.user, "email"), p?.handleLoginSuccess(o.user, o.tokens), u(), {
97
- mfaRequired: !1,
98
- response: o
99
- };
100
- } catch (a) {
101
- const o = P(a, "Login failed");
102
- throw c(o), o;
103
- } finally {
104
- d(!1);
105
- }
106
- },
107
- [k, i, p, w, u]
108
- ), b = C(
109
- async (t, s, a) => {
110
- if (!j(t)) {
111
- const o = {
112
- code: "VALIDATION_ERROR",
113
- message: "Please enter a valid email address"
114
- };
115
- throw c(o), o;
116
- }
117
- try {
118
- w();
119
- } catch (o) {
120
- const L = {
121
- code: "RATE_LIMITED",
122
- message: o instanceof Error ? o.message : "Too many attempts"
123
- };
124
- throw c(L), L;
125
- }
126
- d(!0), c(null);
127
- try {
128
- const o = await k.post("/register", { email: t, password: s, name: a });
129
- if (i?.onLoginSuccess?.(o.user, "email"), p?.handleLoginSuccess(o.user, o.tokens), u(), g) {
130
- const L = o.tokens?.accessToken ?? "", R = !L ? 200 : 0;
131
- new Promise((A) => setTimeout(A, R)).then(() => import("./silentWalletEnroll-FqXS7Rvh.js")).then(
132
- ({ silentWalletEnroll: A }) => A({
133
- password: s,
134
- serverUrl: y,
135
- accessToken: L
136
- })
137
- ).then((A) => {
138
- A.success || console.warn("[useEmailAuth] Wallet auto-enrollment failed:", A.error);
139
- }).catch((A) => {
140
- const M = A instanceof Error ? A.message : "Unknown error";
141
- console.warn("[useEmailAuth] Wallet auto-enrollment unavailable:", M);
142
- });
143
- }
144
- return o;
145
- } catch (o) {
146
- const L = P(o, "Registration failed");
147
- throw c(L), L;
148
- } finally {
149
- d(!1);
150
- }
151
- },
152
- [
153
- k,
154
- i,
155
- p,
156
- w,
157
- u,
158
- y,
159
- g
160
- ]
161
- ), r = C(() => c(null), []);
162
- return {
163
- login: E,
164
- register: b,
165
- isLoading: N,
166
- error: h,
167
- clearError: r,
168
- // M-10: Point-in-time snapshots for UI display (see interface JSDoc)
169
- remainingAttempts: l(),
170
- timeUntilReset: m()
171
- };
172
- }
173
- function de(n) {
174
- return typeof n == "object" && n !== null && "mfaRequired" in n && n.mfaRequired === !0;
175
- }
176
- function ue() {
177
- const { config: n, _internal: p } = U(), [N, d] = v(!1), [h, c] = v(!1), [w, l] = v(null), m = z(
178
- () => new H({
179
- baseUrl: n.serverUrl,
180
- timeoutMs: n.requestTimeout,
181
- retryAttempts: n.retryAttempts
182
- }),
183
- [n.serverUrl, n.requestTimeout, n.retryAttempts]
184
- ), { checkLimit: u, getRemainingAttempts: k } = Z({
185
- maxAttempts: 3,
186
- windowMs: 3e5
187
- }), i = C(
188
- async (b) => {
189
- if (!j(b)) {
190
- const r = {
191
- code: "VALIDATION_ERROR",
192
- message: "Please enter a valid email address"
193
- };
194
- throw l(r), r;
195
- }
196
- try {
197
- u();
198
- } catch (r) {
199
- const t = {
200
- code: "RATE_LIMITED",
201
- message: r instanceof Error ? r.message : "Too many attempts"
202
- };
203
- throw l(t), t;
204
- }
205
- d(!0), l(null), c(!1);
206
- try {
207
- await m.post("/instant-link", { email: b }), c(!0);
208
- } catch (r) {
209
- const t = P(r, "Failed to send sign-in link");
210
- throw l(t), t;
211
- } finally {
212
- d(!1);
213
- }
214
- },
215
- [m, u]
216
- ), g = C(
217
- async (b) => {
218
- if (!b || b.trim().length === 0) {
219
- const r = {
220
- code: "VALIDATION_ERROR",
221
- message: "Invalid or missing sign-in link token"
222
- };
223
- throw l(r), r;
224
- }
225
- d(!0), l(null), c(!1);
226
- try {
227
- const r = await m.post(
228
- "/instant-link/verify",
229
- {
230
- token: b
231
- }
232
- );
233
- return de(r) || (n.callbacks?.onLoginSuccess?.(r.user, "email"), p?.handleLoginSuccess(r.user, r.tokens)), r;
234
- } catch (r) {
235
- const t = P(r, "Failed to verify sign-in link");
236
- throw l(t), t;
237
- } finally {
238
- d(!1);
239
- }
240
- },
241
- [m, n.callbacks, p]
242
- ), y = C(() => l(null), []), E = C(() => {
243
- l(null), c(!1), d(!1);
244
- }, []);
245
- return {
246
- sendInstantLink: i,
247
- verifyInstantLink: g,
248
- isLoading: N,
249
- isSuccess: h,
250
- error: w,
251
- clearError: y,
252
- reset: E,
253
- remainingAttempts: k()
254
- };
255
- }
256
- function ee({
257
- label: n = "Password",
258
- labelAction: p,
259
- showStrengthMeter: N = !1,
260
- onValidationChange: d,
261
- error: h,
262
- className: c = "",
263
- onChange: w,
264
- value: l,
265
- ...m
266
- }) {
267
- const [u, k] = v(!1), [i, g] = v(null), y = J(), E = (r) => {
268
- const t = r.target.value;
269
- if (N || d) {
270
- const s = ce(t);
271
- g(s), d?.(s);
272
- }
273
- w?.(r);
274
- }, b = {
275
- weak: "var(--cedros-destructive, #ef4444)",
276
- fair: "var(--cedros-warning, #f59e0b)",
277
- good: "var(--cedros-success, #22c55e)",
278
- strong: "var(--cedros-success, #22c55e)"
279
- };
280
- return /* @__PURE__ */ f("div", { className: `cedros-password-input ${c}`, children: [
281
- /* @__PURE__ */ f("div", { className: "cedros-label-row", children: [
282
- /* @__PURE__ */ e("label", { htmlFor: y, className: "cedros-label", children: n }),
283
- p
284
- ] }),
285
- /* @__PURE__ */ f("div", { className: "cedros-password-wrapper", children: [
286
- /* @__PURE__ */ e(
287
- "input",
288
- {
289
- id: y,
290
- type: u ? "text" : "password",
291
- className: "cedros-input",
292
- onChange: E,
293
- value: l,
294
- "aria-invalid": h ? "true" : void 0,
295
- "aria-describedby": h ? `${y}-error` : void 0,
296
- ...m
297
- }
298
- ),
299
- /* @__PURE__ */ e(
300
- "button",
301
- {
302
- type: "button",
303
- className: "cedros-password-toggle",
304
- onClick: () => k(!u),
305
- "aria-label": u ? "Hide password" : "Show password",
306
- "aria-pressed": u,
307
- children: u ? /* @__PURE__ */ f("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
308
- /* @__PURE__ */ e(
309
- "path",
310
- {
311
- d: "M2.5 10s3-6 7.5-6 7.5 6 7.5 6-3 6-7.5 6-7.5-6-7.5-6z",
312
- stroke: "currentColor",
313
- strokeWidth: "1.5"
314
- }
315
- ),
316
- /* @__PURE__ */ e("circle", { cx: "10", cy: "10", r: "2.5", stroke: "currentColor", strokeWidth: "1.5" }),
317
- /* @__PURE__ */ e("path", { d: "M3 17L17 3", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" })
318
- ] }) : /* @__PURE__ */ f("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
319
- /* @__PURE__ */ e(
320
- "path",
321
- {
322
- d: "M2.5 10s3-6 7.5-6 7.5 6 7.5 6-3 6-7.5 6-7.5-6-7.5-6z",
323
- stroke: "currentColor",
324
- strokeWidth: "1.5"
325
- }
326
- ),
327
- /* @__PURE__ */ e("circle", { cx: "10", cy: "10", r: "2.5", stroke: "currentColor", strokeWidth: "1.5" })
328
- ] })
329
- }
330
- )
331
- ] }),
332
- h && /* @__PURE__ */ e("p", { id: `${y}-error`, className: "cedros-input-error", children: h }),
333
- N && i && l?.length > 0 && /* @__PURE__ */ f("div", { className: "cedros-password-strength", children: [
334
- /* @__PURE__ */ e("div", { className: "cedros-strength-bar", children: /* @__PURE__ */ e(
335
- "div",
336
- {
337
- className: "cedros-strength-fill",
338
- style: {
339
- width: `${i.strength === "weak" ? 25 : i.strength === "fair" ? 50 : i.strength === "good" ? 75 : 100}%`,
340
- backgroundColor: b[i.strength]
341
- }
342
- }
343
- ) }),
344
- /* @__PURE__ */ e("span", { className: "cedros-strength-label", children: i.strength })
345
- ] })
346
- ] });
347
- }
348
- function me() {
349
- const { config: n, _internal: p } = U(), [N, d] = v("idle"), [h, c] = v(!1), [w, l] = v(null), {
350
- checkLimit: m,
351
- getRemainingAttempts: u,
352
- getTimeUntilReset: k,
353
- reset: i
354
- } = Z({ maxAttempts: 5, windowMs: 12e4 }), g = z(
355
- () => new H({
356
- baseUrl: n.serverUrl,
357
- timeoutMs: n.requestTimeout,
358
- retryAttempts: n.retryAttempts
359
- }),
360
- [n.serverUrl, n.requestTimeout, n.retryAttempts]
361
- ), y = C(
362
- async (r, t) => {
363
- const s = /^[A-Z0-9]{16}$/i.test(t) || /^[A-Z0-9]{4}(-[A-Z0-9]{4}){3}$/i.test(t);
364
- if (!(/^\d{6}$/.test(t) || s)) {
365
- const o = {
366
- code: "VALIDATION_ERROR",
367
- message: "Please enter a valid 6-digit code or recovery code"
368
- };
369
- throw l(o), o;
370
- }
371
- try {
372
- m();
373
- } catch (o) {
374
- const L = {
375
- code: "RATE_LIMITED",
376
- message: o instanceof Error ? o.message : "Too many attempts"
377
- };
378
- throw l(L), L;
379
- }
380
- c(!0), l(null), d("verifying");
381
- try {
382
- const o = await g.post("/login/mfa", { mfaToken: r, code: t });
383
- return d("success"), i(), p && o.user && o.tokens && p.handleLoginSuccess(o.user, o.tokens), o;
384
- } catch (o) {
385
- const L = P(o, "Invalid verification code");
386
- throw l(L), d("error"), L;
387
- } finally {
388
- c(!1);
389
- }
390
- },
391
- [g, p, m, i]
392
- ), E = C(() => l(null), []), b = C(() => {
393
- l(null), d("idle"), c(!1);
394
- }, []);
395
- return {
396
- state: N,
397
- isLoading: h,
398
- error: w,
399
- verifyTotp: y,
400
- clearError: E,
401
- reset: b,
402
- // Point-in-time snapshots for UI display
403
- remainingAttempts: u(),
404
- timeUntilReset: k()
405
- };
406
- }
407
- const I = 6;
408
- function he({
409
- value: n = "",
410
- onChange: p,
411
- onComplete: N,
412
- disabled: d = !1,
413
- error: h,
414
- autoFocus: c = !1,
415
- className: w = ""
416
- }) {
417
- const l = G([]), [m, u] = v(n.padEnd(I, "")), k = J();
418
- W(() => {
419
- u(n.padEnd(I, ""));
420
- }, [n]);
421
- const i = C((t) => {
422
- t >= 0 && t < I && l.current[t]?.focus();
423
- }, []), g = C(
424
- (t) => {
425
- const s = t.replace(/\D/g, "").slice(0, I);
426
- u(s.padEnd(I, "")), p?.(s), s.length === I && N?.(s);
427
- },
428
- [p, N]
429
- ), y = C(
430
- (t, s) => {
431
- if (!/^\d?$/.test(s)) return;
432
- const a = m.split("");
433
- a[t] = s;
434
- const o = a.join("").replace(/ /g, "");
435
- g(o), s && t < I - 1 && i(t + 1);
436
- },
437
- [m, g, i]
438
- ), E = C(
439
- (t, s) => {
440
- if (s.key === "Backspace") {
441
- s.preventDefault();
442
- const a = m.split("");
443
- a[t] && a[t] !== " " ? (a[t] = " ", g(a.join("").replace(/ /g, ""))) : t > 0 && (a[t - 1] = " ", g(a.join("").replace(/ /g, "")), i(t - 1));
444
- } else s.key === "ArrowLeft" && t > 0 ? (s.preventDefault(), i(t - 1)) : s.key === "ArrowRight" && t < I - 1 && (s.preventDefault(), i(t + 1));
445
- },
446
- [m, g, i]
447
- ), b = C(
448
- (t) => {
449
- t.preventDefault();
450
- const a = t.clipboardData.getData("text").replace(/\D/g, "").slice(0, I);
451
- a && (g(a), i(Math.min(a.length, I - 1)));
452
- },
453
- [g, i]
454
- ), r = C((t) => {
455
- t.target.select();
456
- }, []);
457
- return W(() => {
458
- c && !d && l.current[0]?.focus();
459
- }, [c, d]), /* @__PURE__ */ f("div", { className: `cedros-otp-input ${w}`, children: [
460
- /* @__PURE__ */ e("div", { className: "cedros-otp-slots", role: "group", "aria-label": "One-time password", children: Array.from({ length: I }).map((t, s) => /* @__PURE__ */ e(
461
- "input",
462
- {
463
- ref: (a) => {
464
- l.current[s] = a;
465
- },
466
- id: `${k}-${s}`,
467
- type: "text",
468
- inputMode: "numeric",
469
- pattern: "[0-9]*",
470
- maxLength: 1,
471
- className: `cedros-otp-slot ${h ? "cedros-otp-slot-error" : ""}`,
472
- value: m[s] === " " ? "" : m[s] || "",
473
- onChange: (a) => y(s, a.target.value),
474
- onKeyDown: (a) => E(s, a),
475
- onPaste: b,
476
- onFocus: r,
477
- disabled: d,
478
- autoComplete: "one-time-code",
479
- "aria-label": `Digit ${s + 1}`,
480
- "aria-invalid": h ? "true" : void 0
481
- },
482
- s
483
- )) }),
484
- h && /* @__PURE__ */ e("p", { className: "cedros-otp-error", role: "alert", children: h })
485
- ] });
486
- }
487
- function pe({
488
- mfaToken: n,
489
- email: p,
490
- onSuccess: N,
491
- onBack: d,
492
- className: h = ""
493
- }) {
494
- const { verifyTotp: c, isLoading: w, error: l, clearError: m } = me(), [u, k] = v(""), [i, g] = v(!1), [y, E] = v(""), b = async (s) => {
495
- const a = s || (i ? y : u);
496
- if (a)
497
- try {
498
- await c(n, a), N?.();
499
- } catch {
500
- i ? E("") : k("");
501
- }
502
- }, r = (s) => {
503
- b(s);
504
- }, t = () => {
505
- g(!i), m(), k(""), E("");
506
- };
507
- return /* @__PURE__ */ f("div", { className: `cedros-totp-verify ${h}`, children: [
508
- /* @__PURE__ */ f("div", { className: "cedros-totp-verify-header", children: [
509
- /* @__PURE__ */ f(
510
- "svg",
511
- {
512
- className: "cedros-totp-verify-icon",
513
- width: "48",
514
- height: "48",
515
- viewBox: "0 0 48 48",
516
- fill: "none",
517
- "aria-hidden": "true",
518
- children: [
519
- /* @__PURE__ */ e("rect", { x: "8", y: "20", width: "32", height: "24", rx: "4", stroke: "currentColor", strokeWidth: "2" }),
520
- /* @__PURE__ */ e(
521
- "path",
522
- {
523
- d: "M16 20V14a8 8 0 1 1 16 0v6",
524
- stroke: "currentColor",
525
- strokeWidth: "2",
526
- strokeLinecap: "round"
527
- }
528
- ),
529
- /* @__PURE__ */ e("circle", { cx: "24", cy: "32", r: "3", fill: "currentColor" })
530
- ]
531
- }
532
- ),
533
- /* @__PURE__ */ e("h3", { className: "cedros-totp-title", children: "Two-factor authentication" }),
534
- /* @__PURE__ */ e("p", { className: "cedros-totp-description", children: i ? "Enter one of your recovery codes to sign in." : "Enter the 6-digit code from your authenticator app." }),
535
- p && /* @__PURE__ */ e("p", { className: "cedros-totp-email", children: p })
536
- ] }),
537
- i ? /* @__PURE__ */ f("div", { className: "cedros-totp-backup-input", children: [
538
- /* @__PURE__ */ e(
539
- "input",
540
- {
541
- type: "text",
542
- className: `cedros-input ${l ? "cedros-input-error" : ""}`,
543
- placeholder: "Enter recovery code",
544
- value: y,
545
- onChange: (s) => {
546
- E(s.target.value.toUpperCase()), m();
547
- },
548
- onKeyDown: (s) => {
549
- s.key === "Enter" && y && b();
550
- },
551
- disabled: w,
552
- autoFocus: !0,
553
- autoComplete: "one-time-code"
554
- }
555
- ),
556
- l && /* @__PURE__ */ e("p", { className: "cedros-input-error", role: "alert", children: l.message })
557
- ] }) : /* @__PURE__ */ e(
558
- he,
559
- {
560
- value: u,
561
- onChange: (s) => {
562
- k(s), m();
563
- },
564
- onComplete: r,
565
- disabled: w,
566
- error: l?.message,
567
- autoFocus: !0
568
- }
569
- ),
570
- /* @__PURE__ */ e(
571
- "button",
572
- {
573
- type: "button",
574
- className: "cedros-button cedros-button-primary cedros-button-md cedros-button-full",
575
- onClick: () => b(),
576
- disabled: w || (i ? !y : u.length !== 6),
577
- children: w ? /* @__PURE__ */ f(O, { children: [
578
- /* @__PURE__ */ e(K, { size: "sm" }),
579
- /* @__PURE__ */ e("span", { children: "Verifying..." })
580
- ] }) : "Verify"
581
- }
582
- ),
583
- /* @__PURE__ */ f("div", { className: "cedros-totp-verify-footer", children: [
584
- /* @__PURE__ */ e(
585
- "button",
586
- {
587
- type: "button",
588
- className: "cedros-link cedros-link-sm",
589
- onClick: t,
590
- disabled: w,
591
- children: i ? "Use authenticator app" : "Use a recovery code"
592
- }
593
- ),
594
- d && /* @__PURE__ */ f(O, { children: [
595
- /* @__PURE__ */ e("span", { className: "cedros-totp-verify-divider", children: "•" }),
596
- /* @__PURE__ */ e(
597
- "button",
598
- {
599
- type: "button",
600
- className: "cedros-link cedros-link-sm",
601
- onClick: d,
602
- disabled: w,
603
- children: "Back to login"
604
- }
605
- )
606
- ] })
607
- ] })
608
- ] });
609
- }
610
- function Ce({
611
- onSuccess: n,
612
- onSwitchToRegister: p,
613
- onForgotPassword: N,
614
- className: d = ""
615
- }) {
616
- const { config: h } = U(), { login: c, isLoading: w, error: l, clearError: m } = X(), {
617
- sendInstantLink: u,
618
- isLoading: k,
619
- isSuccess: i,
620
- error: g,
621
- clearError: y,
622
- reset: E
623
- } = ue(), [b, r] = v(""), [t, s] = v(""), [a, o] = v(null), [L, S] = v(""), R = h.forms?.forgotPassword?.mode ?? (h.features?.instantLink ? "instantLink" : "reset"), A = async (D) => {
624
- D.preventDefault();
625
- try {
626
- const q = await c(b, t);
627
- q.mfaRequired ? (o(q.mfaToken), S(q.email)) : n?.();
628
- } catch {
629
- }
630
- }, M = () => {
631
- o(null), S(""), n?.();
632
- }, _ = () => {
633
- o(null), S(""), s("");
634
- }, x = async () => {
635
- if (R === "instantLink")
636
- try {
637
- await u(b);
638
- } catch {
639
- }
640
- else
641
- N?.();
642
- };
643
- if (a)
644
- return /* @__PURE__ */ e(
645
- pe,
646
- {
647
- mfaToken: a,
648
- email: L,
649
- onSuccess: M,
650
- onBack: _,
651
- className: d
652
- }
653
- );
654
- if (i)
655
- return /* @__PURE__ */ f("div", { className: `cedros-instant-link-success ${d}`, children: [
656
- /* @__PURE__ */ f(
657
- "svg",
658
- {
659
- className: "cedros-success-icon",
660
- width: "48",
661
- height: "48",
662
- viewBox: "0 0 48 48",
663
- fill: "none",
664
- "aria-hidden": "true",
665
- children: [
666
- /* @__PURE__ */ e("circle", { cx: "24", cy: "24", r: "22", stroke: "currentColor", strokeWidth: "2" }),
667
- /* @__PURE__ */ e(
668
- "path",
669
- {
670
- d: "M14 24l7 7 13-13",
671
- stroke: "currentColor",
672
- strokeWidth: "2",
673
- strokeLinecap: "round",
674
- strokeLinejoin: "round"
675
- }
676
- )
677
- ]
678
- }
679
- ),
680
- /* @__PURE__ */ e("h3", { className: "cedros-success-title", children: "Check your email" }),
681
- /* @__PURE__ */ f("p", { className: "cedros-success-message", children: [
682
- "We sent a sign-in link to ",
683
- /* @__PURE__ */ e("strong", { children: b }),
684
- ". Click the link to sign in."
685
- ] }),
686
- /* @__PURE__ */ e(
687
- "button",
688
- {
689
- type: "button",
690
- className: "cedros-button cedros-button-md cedros-button-outline",
691
- onClick: E,
692
- children: "Back to login"
693
- }
694
- )
695
- ] });
696
- const F = l || g, B = () => {
697
- m(), y();
698
- }, V = w || k;
699
- return /* @__PURE__ */ f("form", { onSubmit: A, className: `cedros-form ${d}`, children: [
700
- /* @__PURE__ */ f("div", { className: "cedros-form-field", children: [
701
- /* @__PURE__ */ e("label", { htmlFor: "email", className: "cedros-label", children: "Email" }),
702
- /* @__PURE__ */ e(
703
- "input",
704
- {
705
- id: "email",
706
- type: "email",
707
- className: "cedros-input",
708
- value: b,
709
- onChange: (D) => r(D.target.value),
710
- placeholder: "you@example.com",
711
- required: !0,
712
- "aria-required": "true",
713
- autoComplete: "email",
714
- disabled: V
715
- }
716
- )
717
- ] }),
718
- /* @__PURE__ */ e("div", { className: "cedros-form-field", children: /* @__PURE__ */ e(
719
- ee,
720
- {
721
- value: t,
722
- onChange: (D) => s(D.target.value),
723
- placeholder: "Enter your password",
724
- required: !0,
725
- autoComplete: "current-password",
726
- disabled: V,
727
- labelAction: N || R === "instantLink" ? /* @__PURE__ */ e(
728
- "button",
729
- {
730
- type: "button",
731
- className: "cedros-link cedros-link-sm",
732
- onClick: x,
733
- disabled: k,
734
- children: k ? "Sending..." : "Forgot your password?"
735
- }
736
- ) : void 0
737
- }
738
- ) }),
739
- /* @__PURE__ */ e(Q, { error: F, onDismiss: B }),
740
- /* @__PURE__ */ e(
741
- "button",
742
- {
743
- type: "submit",
744
- className: "cedros-button cedros-button-primary cedros-button-md cedros-button-full",
745
- disabled: V || !b || !t,
746
- "aria-busy": w,
747
- children: w ? /* @__PURE__ */ f(O, { children: [
748
- /* @__PURE__ */ e(K, { size: "sm", announce: !0, label: "Signing in" }),
749
- /* @__PURE__ */ e("span", { children: "Signing in..." })
750
- ] }) : "Sign in"
751
- }
752
- ),
753
- p && /* @__PURE__ */ f("p", { className: "cedros-form-footer", children: [
754
- "Don't have an account?",
755
- " ",
756
- /* @__PURE__ */ e("button", { type: "button", className: "cedros-link", onClick: p, children: "Sign up" })
757
- ] })
758
- ] });
759
- }
760
- function Ne({
761
- onSuccess: n,
762
- onSwitchToLogin: p,
763
- className: N = ""
764
- }) {
765
- const { config: d } = U(), { register: h, isLoading: c, error: w, clearError: l } = X(), [m, u] = v(""), [k, i] = v(""), [g, y] = v(""), [E, b] = v(""), [r, t] = v(null), [s, a] = v(null), o = d.forms?.termsOfService, L = d.forms?.emailOptIn, S = o?.show ?? !1, R = o?.required ?? !0, A = o?.defaultChecked ?? !1, M = o?.label ?? "I agree to the Terms of Service", _ = o?.url, x = ie(_), F = L?.show ?? !1, B = L?.defaultChecked ?? !1, V = L?.label ?? "Send me updates and news", [D, q] = v(A), [te, re] = v(B), $ = g === E, se = r?.isValid ?? !1, Y = k && g && E && $ && se && (!S || !R || D) && !c, oe = async (T) => {
766
- if (T.preventDefault(), a(null), S && R && !D) {
767
- a({
768
- code: "VALIDATION_ERROR",
769
- message: "You must agree to the Terms of Service to continue"
770
- });
771
- return;
772
- }
773
- if (Y)
774
- try {
775
- await h(k, g, m || void 0), n?.();
776
- } catch {
777
- }
778
- }, ne = w || s, ae = () => {
779
- l(), a(null);
780
- };
781
- return /* @__PURE__ */ f("form", { onSubmit: oe, className: `cedros-form ${N}`, children: [
782
- /* @__PURE__ */ f("div", { className: "cedros-form-field", children: [
783
- /* @__PURE__ */ f("label", { htmlFor: "name", className: "cedros-label", children: [
784
- "Name ",
785
- /* @__PURE__ */ e("span", { className: "cedros-optional", children: "(optional)" })
786
- ] }),
787
- /* @__PURE__ */ e(
788
- "input",
789
- {
790
- id: "name",
791
- type: "text",
792
- className: "cedros-input",
793
- value: m,
794
- onChange: (T) => u(T.target.value),
795
- placeholder: "Your name",
796
- autoComplete: "name",
797
- disabled: c
798
- }
799
- )
800
- ] }),
801
- /* @__PURE__ */ f("div", { className: "cedros-form-field", children: [
802
- /* @__PURE__ */ e("label", { htmlFor: "register-email", className: "cedros-label", children: "Email" }),
803
- /* @__PURE__ */ e(
804
- "input",
805
- {
806
- id: "register-email",
807
- type: "email",
808
- className: "cedros-input",
809
- value: k,
810
- onChange: (T) => i(T.target.value),
811
- placeholder: "you@example.com",
812
- required: !0,
813
- "aria-required": "true",
814
- autoComplete: "email",
815
- disabled: c
816
- }
817
- )
818
- ] }),
819
- /* @__PURE__ */ e("div", { className: "cedros-form-field", children: /* @__PURE__ */ e(
820
- ee,
821
- {
822
- value: g,
823
- onChange: (T) => y(T.target.value),
824
- placeholder: "Create a password",
825
- required: !0,
826
- autoComplete: "new-password",
827
- disabled: c,
828
- showStrengthMeter: !0,
829
- onValidationChange: t
830
- }
831
- ) }),
832
- /* @__PURE__ */ f("div", { className: "cedros-form-field", children: [
833
- /* @__PURE__ */ e("label", { htmlFor: "confirm-password", className: "cedros-label", children: "Confirm Password" }),
834
- /* @__PURE__ */ e(
835
- "input",
836
- {
837
- id: "confirm-password",
838
- type: "password",
839
- className: "cedros-input",
840
- value: E,
841
- onChange: (T) => b(T.target.value),
842
- placeholder: "Confirm your password",
843
- required: !0,
844
- "aria-required": "true",
845
- autoComplete: "new-password",
846
- disabled: c,
847
- "aria-invalid": E && !$ ? "true" : void 0,
848
- "aria-describedby": E && !$ ? "confirm-password-error" : void 0
849
- }
850
- ),
851
- E && !$ && /* @__PURE__ */ e("p", { id: "confirm-password-error", className: "cedros-input-error", role: "alert", children: "Passwords do not match" })
852
- ] }),
853
- S && /* @__PURE__ */ e("div", { className: "cedros-form-field cedros-checkbox-field", children: /* @__PURE__ */ f("label", { className: "cedros-checkbox-label", children: [
854
- /* @__PURE__ */ e(
855
- "input",
856
- {
857
- type: "checkbox",
858
- className: "cedros-checkbox",
859
- checked: D,
860
- onChange: (T) => q(T.target.checked),
861
- disabled: c,
862
- "aria-required": R
863
- }
864
- ),
865
- /* @__PURE__ */ f("span", { className: "cedros-checkbox-text", children: [
866
- x ? /* @__PURE__ */ f(O, { children: [
867
- M.replace("Terms of Service", "").trim() || "I agree to the",
868
- " ",
869
- /* @__PURE__ */ e(
870
- "a",
871
- {
872
- href: x,
873
- target: "_blank",
874
- rel: "noopener noreferrer",
875
- className: "cedros-link",
876
- children: "Terms of Service"
877
- }
878
- )
879
- ] }) : M,
880
- R && /* @__PURE__ */ e("span", { className: "cedros-required", children: "*" })
881
- ] })
882
- ] }) }),
883
- F && /* @__PURE__ */ e("div", { className: "cedros-form-field cedros-checkbox-field", children: /* @__PURE__ */ f("label", { className: "cedros-checkbox-label", children: [
884
- /* @__PURE__ */ e(
885
- "input",
886
- {
887
- type: "checkbox",
888
- className: "cedros-checkbox",
889
- checked: te,
890
- onChange: (T) => re(T.target.checked),
891
- disabled: c
892
- }
893
- ),
894
- /* @__PURE__ */ e("span", { className: "cedros-checkbox-text", children: V })
895
- ] }) }),
896
- /* @__PURE__ */ e(Q, { error: ne, onDismiss: ae }),
897
- /* @__PURE__ */ e(
898
- "button",
899
- {
900
- type: "submit",
901
- className: "cedros-button cedros-button-primary cedros-button-md cedros-button-full",
902
- disabled: !Y,
903
- "aria-busy": c,
904
- children: c ? /* @__PURE__ */ f(O, { children: [
905
- /* @__PURE__ */ e(K, { size: "sm", announce: !0, label: "Creating account" }),
906
- /* @__PURE__ */ e("span", { children: "Creating account..." })
907
- ] }) : "Create account"
908
- }
909
- ),
910
- p && /* @__PURE__ */ f("p", { className: "cedros-form-footer", children: [
911
- "Already have an account?",
912
- " ",
913
- /* @__PURE__ */ e("button", { type: "button", className: "cedros-link", onClick: p, children: "Sign in" })
914
- ] })
915
- ] });
916
- }
917
- export {
918
- Ce as E,
919
- he as O,
920
- ee as P,
921
- pe as T,
922
- Ne as a,
923
- Z as b,
924
- ue as c,
925
- me as d,
926
- X as u
927
- };