@seamless-auth/react 0.15.0 → 0.15.1

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @seamless-auth/react
2
2
 
3
+ ## 0.15.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 4a2d6ff: Support Node 22 and newer. The `engines` field now requires `>=22` instead of `>=24.0.0 <25.0.0`, and CI runs on Node 22, 24, and the latest release (fells-code/seamless-auth-api#339).
8
+ - 929f7d5: Fix the bundled magic-link screen (`/verify-magiclink`) under React Strict Mode. Strict Mode runs effects twice in development, and the screen sent the single-use link to the server twice: the first request consumed it, the second was refused, and the screen showed "Failed to verify token" for a link that worked. It now sends one request per link.
9
+
10
+ The screen also no longer assumes that verifying a link signs in the tab that opened it. The session belongs to the browser that requested the link. After verifying, the screen signs in when the link was opened in that same browser, and otherwise tells the reader to return to the device that asked.
11
+
12
+ - Updated dependencies [4a2d6ff]
13
+ - @seamless-auth/client@0.3.1
14
+
3
15
  ## 0.15.0
4
16
 
5
17
  ### Minor Changes
package/README.md CHANGED
@@ -462,17 +462,17 @@ function OAuthButtons() {
462
462
  const [providers, setProviders] = useState<OAuthProvider[]>([]);
463
463
 
464
464
  useEffect(() => {
465
- void listOAuthProviders().then(result => setProviders(result.providers));
465
+ void listOAuthProviders().then(({ data }) => setProviders(data?.providers ?? []));
466
466
  }, [listOAuthProviders]);
467
467
 
468
468
  async function signIn(providerId: string) {
469
- const result = await startOAuthLogin({
469
+ const { data, error } = await startOAuthLogin({
470
470
  providerId,
471
471
  redirectUri: `${window.location.origin}/oauth/callback`,
472
472
  returnTo: `${window.location.origin}/dashboard`,
473
473
  });
474
474
 
475
- window.location.assign(result.authorizationUrl);
475
+ if (!error) window.location.assign(data.authorizationUrl);
476
476
  }
477
477
 
478
478
  return (
@@ -549,13 +549,17 @@ The bundled `AuthRoutes` callback screen already maps these three codes to actio
549
549
  For fully custom UI without `useAuth()`, call the headless client directly:
550
550
 
551
551
  ```ts
552
- const providers = await authClient.listOAuthProviders();
553
- const started = await authClient.startOAuthLogin({
554
- providerId: providers.providers[0].id,
555
- redirectUri: `${window.location.origin}/oauth/callback`,
556
- });
552
+ const { data: listed } = await authClient.listOAuthProviders();
553
+ const provider = listed?.providers[0];
554
+
555
+ if (provider) {
556
+ const { data: started, error } = await authClient.startOAuthLogin({
557
+ providerId: provider.id,
558
+ redirectUri: `${window.location.origin}/oauth/callback`,
559
+ });
557
560
 
558
- window.location.assign(started.authorizationUrl);
561
+ if (!error) window.location.assign(started.authorizationUrl);
562
+ }
559
563
  ```
560
564
 
561
565
  OAuth must be enabled on the Seamless Auth API with `LOGIN_METHODS` including `oauth` and at least
package/dist/routes.js CHANGED
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import{jsxs as e,jsx as r,Fragment as a}from"react/jsx-runtime";import{useHref as o,useNavigate as i,useLocation as t,useSearchParams as s,Routes as n,Route as l,Navigate as c}from"react-router-dom";import{u as d,a as _,c as m,b as u,F as g,h as p}from"./chunks/shared-BzrBuR0z.js";import{useState as h,useEffect as f,useRef as v,useCallback as b}from"react";import y from"libphonenumber-js";import{isUnauthenticated as k,getPasskeyPolicyErrorCode as x,getOAuthErrorCode as w}from"@seamless-auth/client";const N="/login",P="/passkey-login",C="/verify-phone-otp",I="/verify-email-otp",T="/verify-magiclink",M="/oauth/callback",O="/register-passkey",S="/magic-link-sent";function z(e,r){void 0===r&&(r={});var a=r.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===a&&o.firstChild?o.insertBefore(i,o.firstChild):o.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var A="login-module__container___YggDx",B="login-module__card___Ub-Py",q="login-module__heading___neEqb",E="login-module__inputGroup___P6qgS",L="login-module__label___mx5vu",F="login-module__input___U07lW",j="login-module__helperText___kDQ4-",D="login-module__error___40zxh",R="login-module__button___0kFBs",V="login-module__submitHint___qOS5Z",G="login-module__toggle___1JiG1",W="login-module__fallbackCard___HdIk-",U="login-module__fallbackHeader___-il2v",K="login-module__fallbackDescription___ea5EB",Y="login-module__fallbackActions___AD3ni",$="login-module__fallbackActionButton___lFgWf",H="login-module__actionTitle___ycrMp",J="login-module__actionSubtext___opaIV",Z="login-module__linkButton___5lsoe";z(".login-module__container___YggDx{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center}.login-module__card___Ub-Py{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 4px 6px var(--seamless-shadow,rgba(0,0,0,.1));max-width:28rem;padding:2rem;width:100%}.login-module__heading___neEqb{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:center}.login-module__message___qSejT{color:var(--seamless-success,#68d391);text-align:center}.login-module__inputGroup___P6qgS{margin-bottom:1rem}.login-module__label___mx5vu{color:var(--seamless-text-muted,#d1d5db);display:block}.login-module__input___U07lW{background-color:var(--seamless-surface-raised,#4b5563);border:1px solid var(--seamless-border,#d1d5db);border-radius:.375rem;margin-top:.25rem;padding:.5rem;width:100%}.login-module__input___U07lW:focus{box-shadow:0 0 0 2px var(--seamless-accent,#3b82f6);outline:none}.login-module__helperText___kDQ4-{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:.5rem}.login-module__error___40zxh{color:var(--seamless-danger,#f87171);font-size:.875rem}.login-module__button___0kFBs{background-color:var(--seamless-accent,#2563eb);border-radius:.375rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;margin-top:1rem;padding:.5rem;transition:background-color .3s,opacity .3s;width:100%}.login-module__button___0kFBs:hover:not(:disabled){background-color:var(--seamless-accent-hover,#1d4ed8)}.login-module__button___0kFBs:disabled{cursor:not-allowed;opacity:.6}.login-module__submitHint___qOS5Z{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:.5rem;text-align:center}.login-module__toggle___1JiG1{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}.login-module__underline___gs-RS{text-decoration:underline}.login-module__phoneRow___oeNtq{display:grid;gap:.5rem;grid-template-columns:1fr 3fr;margin-top:.25rem}.login-module__phoneInput___2MPQC,.login-module__select___rRV1O{background-color:var(--seamless-surface-raised,#4b5563);border:1px solid var(--seamless-border,#d1d5db);border-radius:.375rem;padding:.5rem;width:100%}@media (max-width:500px){.login-module__phoneRow___oeNtq{grid-template-columns:1fr}}.login-module__fallbackCard___HdIk-{background:var(--seamless-surface-raised,hsla(0,0%,100%,.04));border:1px solid var(--seamless-border,hsla(0,0%,100%,.08));border-radius:12px;display:flex;flex-direction:column;gap:14px;margin-top:18px;padding:18px}.login-module__fallbackHeader___-il2v{color:var(--seamless-text,#f3f4f6);font-size:.95rem;font-weight:600}.login-module__fallbackDescription___ea5EB{color:var(--seamless-text-muted,#9ca3af);font-size:.85rem;line-height:1.4}.login-module__fallbackActions___AD3ni{display:flex;flex-direction:column;gap:10px}.login-module__fallbackActionButton___lFgWf{background:var(--seamless-surface,rgba(0,0,0,.25));border:1px solid var(--seamless-border,hsla(0,0%,100%,.08));border-radius:8px;cursor:pointer;display:flex;flex-direction:column;padding:12px 14px;text-align:left;transition:all .15s ease}.login-module__fallbackActionButton___lFgWf:hover{background:var(--seamless-surface-hover,hsla(0,0%,100%,.06));border-color:var(--seamless-border,hsla(0,0%,100%,.15))}.login-module__actionTitle___ycrMp{color:var(--seamless-text,#f9fafb);font-size:.9rem;font-weight:500}.login-module__actionSubtext___opaIV{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:2px}.login-module__linkButton___5lsoe{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.8rem;margin-top:6px}.login-module__linkButton___5lsoe:hover{text-decoration:underline}");const Q=e=>{if("string"!=typeof e)return!1;const r=e.trim();if(r.length<3||r.length>320)return!1;const a=r.split("@");if(2!==a.length)return!1;const[o,i]=a;return!(!/^[A-Za-z0-9._%+-]+$/.test(o)||o.startsWith(".")||o.endsWith(".")||o.includes(".."))&&!(!/^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(i)||i.startsWith("-")||i.endsWith("-")||i.startsWith(".")||i.endsWith(".")||i.includes(".."))},X=e=>{const r=y(e);return r?.isValid()||!1};const ee=({identifier:a,onMagicLink:o,onEmailOtp:i,onPhoneOtp:t,onPasskeyRetry:s,loginMethods:n})=>{const l=new Set(n??["passkey","magic_link","phone_otp"]),c=l.has("magic_link")&&Q(a),d=l.has("email_otp")&&Boolean(i)&&Q(a),_=l.has("phone_otp")&&X(a),m=l.has("passkey")&&Boolean(s);return c||d||_||m?e("div",{className:W,children:[r("div",{className:U,children:"Choose a sign-in method"}),r("p",{className:K,children:"Choose another secure sign-in method."}),e("div",{className:Y,children:[c&&e("button",{type:"button",className:$,onClick:o,children:[r("span",{className:H,children:"Email Magic Link"}),r("span",{className:J,children:"Send a secure sign-in link to your email"})]}),d&&e("button",{type:"button",className:$,onClick:i,children:[r("span",{className:H,children:"Email Code"}),r("span",{className:J,children:"Receive a one-time code by email"})]}),_&&e("button",{type:"button",className:$,onClick:t,children:[r("span",{className:H,children:"Text Message Code"}),r("span",{className:J,children:"Receive a one-time code via SMS"})]})]}),m&&r("button",{type:"button",className:Z,onClick:s,children:"Try passkey anyway"})]}):null},re="seamless:oauth:provider",ae=()=>{const{listOAuthProviders:a,startOAuthLogin:i,finishOAuthLogin:t,ports:s}=d(),n=o("/oauth/callback"),[l,c]=h([]),[_,m]=h("");if(f(()=>{let e=!0;return a().then(({data:r})=>{e&&c(r?.providers??[])}),()=>{e=!1}},[a]),0===l.length)return null;return e("div",{className:Y,children:[l.map(a=>r("button",{type:"button",className:$,onClick:()=>(async e=>{m(""),sessionStorage.setItem(re,e);const r=new URL(n,window.location.origin).toString(),{data:a,error:o}=await i({providerId:e,redirectUri:r});if(o)return void m("Could not start sign-in with this provider.");const l=await s.oauthRedirect.open(a.authorizationUrl,r);"callback"===l.type&&(await t({providerId:e,code:l.code,state:l.state})).error&&m("Could not finish sign-in with this provider.")})(a.id),children:e("span",{className:H,children:["Continue with ",a.name]})},a.id)),_&&r("p",{className:D,children:_})]})},oe=()=>{const o=i(),{hasSignedInBefore:t,login:s,handlePasskeyLogin:n}=d(),l=_(),{passkeySupported:c}=m(),{loginMethods:p}=u(),[v,b]=h(""),[y,k]=h(""),[x,w]=h("register"),[N,P]=h(""),[T,M]=h(""),[O,z]=h(""),[W,U]=h(!1),[K,Y]=h(null);f(()=>{t&&w("login")},[t]);const $=()=>"login"===x?Q(v)||X(v):Q(y);return r("div",{className:A,children:e("div",{className:B,children:[r("h2",{className:q,children:"login"===x?"Sign In":"Create Account"}),e(a,{children:[e("form",{onSubmit:async e=>{e.preventDefault(),P(""),U(!1);try{if("login"===x){const{data:e,error:r}=await s(v,c);if(r)return void P("Failed to start sign-in. Please try again.");const a=e?.loginMethods?.length?e.loginMethods:p??g;if(Y(a),c&&a.includes("passkey")){const{error:e}=await n();return e?(U(!0),void P("Passkey sign-in could not be completed. Choose another sign-in method.")):void o("/")}return void U(!0)}"register"===x&&await(async()=>{P("");const{data:e,error:r}=await l.register({email:y});r?P("Failed to register. Please try again."):"Success"===e.message?o(I):P("An unexpected error occurred. Try again. If the problem persists, contact support.")})()}catch{console.error("Failed to continue sign-in."),P("Failed to continue sign-in. Please try again.")}},children:["login"===x&&e("div",{className:E,children:[r("label",{htmlFor:"identifier",className:L,children:"Email Address / Phone Number"}),r("input",{id:"identifier",type:"text",value:v,onChange:e=>{const r=e.target.value;b(r)},autoComplete:"off",placeholder:"Email or Phone Number",className:F,onBlur:()=>{if(v){const e=Q(v)||X(v);z(e?"":"Please enter a valid email or phone number")}},required:!0}),r("p",{className:j,children:"Phone numbers must include a country code e.g. +1"}),W&&r(ee,{identifier:v,onMagicLink:async()=>{const{error:e}=await l.requestMagicLink();e?P("Failed to send magic link."):o(S,{state:{identifier:v}})},onEmailOtp:async()=>{const{error:e}=await l.requestLoginEmailOtp();e?P("Failed to send email code."):o(I,{state:{flow:"login"}})},onPhoneOtp:async()=>{const{error:e}=await l.requestLoginPhoneOtp();e?P("Failed to send OTP."):o(C,{state:{flow:"login"}})},onPasskeyRetry:c?n:void 0,loginMethods:K}),O&&r("p",{className:D,children:O})]}),"register"===x&&e("div",{className:E,children:[r("label",{htmlFor:"email",className:L,children:"Email Address"}),r("input",{id:"email",type:"email",value:y,onChange:e=>{const r=e.target.value;k(r)},autoComplete:"off",className:F,onBlur:()=>{if(y){const e=Q(y);M(e?"":"Please enter a valid email")}},required:!0}),T&&r("p",{className:D,children:T})]}),r("button",{type:"submit",className:R,disabled:!$(),"aria-describedby":"seamless-submit-hint",children:"login"===x?"Login":"Register"}),r("p",{id:"seamless-submit-hint",role:"status",className:V,children:"login"===x?v?$()?"Ready to continue.":"This does not look like a complete email or phone number yet.":"Enter your email or phone number to continue.":y?$()?"Ready to continue.":"This does not look like a complete email address yet.":"Enter your email address to continue."}),N&&r("p",{className:D,children:N}),r("button",{type:"button",onClick:()=>w("login"===x?"register":"login"),className:G,children:"login"===x?"Don't have an account? Create one":"Already have an account? Sign in"})]}),r(ae,{})]})]})})};var ie={container:"passKeyLogin-module__container___IUKxF",card:"passKeyLogin-module__card___2sKM1",title:"passKeyLogin-module__title___HZxvc",button:"passKeyLogin-module__button___FvR4I"};z(".passKeyLogin-module__container___IUKxF{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.passKeyLogin-module__card___2sKM1{background-color:var(--seamless-surface,#1f2937);border-radius:1rem;box-shadow:0 4px 20px var(--seamless-shadow,rgba(0,0,0,.4));display:flex;flex-direction:column;gap:1.5rem;max-width:400px;padding:2rem;width:100%}.passKeyLogin-module__title___HZxvc{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:600;text-align:center}.passKeyLogin-module__button___FvR4I{background-color:var(--seamless-accent,#2563eb);border:1px solid var(--seamless-accent,#3b82f6);border-radius:.5rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;font-weight:500;padding:.75rem 1rem;text-align:center;transition:background-color .2s ease;width:100%}.passKeyLogin-module__button___FvR4I:hover{background-color:var(--seamless-accent-hover,#1d4ed8)}@media (max-width:480px){.passKeyLogin-module__card___2sKM1{padding:1.25rem}.passKeyLogin-module__button___FvR4I{font-size:1rem}}");const te=()=>{const a=i(),{handlePasskeyLogin:o}=d(),[t,s]=h("");return r("div",{className:ie.container,children:e("div",{className:ie.card,children:[r("h2",{className:ie.title,children:"Login with Passkey"}),r("button",{onClick:async()=>{s("");const{error:e}=await o();e?s("Passkey sign-in could not be completed. Try another sign-in method."):a("/")},className:ie.button,children:"Use Passkey"}),t&&r("p",{className:ie.error,children:t})]})})};var se="registerPasskey-module__container___jqEh8",ne="registerPasskey-module__card___MJAyC",le="registerPasskey-module__loading___Q4i1x",ce="registerPasskey-module__spinner___V1nhd",de="registerPasskey-module__supported___ihTih",_e="registerPasskey-module__title___vn2Qu",me="registerPasskey-module__description___AWmO-",ue="registerPasskey-module__button___D3b4B",ge="registerPasskey-module__message___RiOw-",pe="registerPasskey-module__success___HP5aX",he="registerPasskey-module__error___hGiqE",fe="registerPasskey-module__skip___1hDyU",ve="registerPasskey-module__secondary___bnOB4";z(".registerPasskey-module__container___jqEh8{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.registerPasskey-module__card___MJAyC{background-color:var(--seamless-surface,#1f2937);border-radius:1rem;box-shadow:0 4px 20px var(--seamless-shadow,rgba(0,0,0,.4));max-width:400px;padding:1.5rem;width:100%}.registerPasskey-module__loading___Q4i1x{align-items:center;background-color:var(--seamless-surface,#f9fafb);border-radius:.75rem;box-shadow:0 2px 8px var(--seamless-shadow,rgba(0,0,0,.1));color:var(--seamless-text,#374151);display:flex;font-weight:500;gap:.75rem;justify-content:center;padding:1.5rem}.registerPasskey-module__spinner___V1nhd{animation:registerPasskey-module__spin___oYcsC 1s linear infinite;border-bottom:2px solid var(--seamless-accent,#3b82f6);border-left:2px solid transparent;border-radius:9999px;border-right:2px solid transparent;border-top:2px solid var(--seamless-accent,#3b82f6);height:1.5rem;width:1.5rem}@keyframes registerPasskey-module__spin___oYcsC{to{transform:rotate(1turn)}}.registerPasskey-module__supported___ihTih{background-color:var(--seamless-surface,#ecfdf5);border-radius:.75rem;box-shadow:0 2px 12px var(--seamless-shadow,rgba(0,0,0,.1));color:var(--seamless-text,#065f46);padding:1.25rem}.registerPasskey-module__title___vn2Qu{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.registerPasskey-module__description___AWmO-{margin-bottom:1rem}.registerPasskey-module__button___D3b4B{background-color:var(--seamless-accent,#059669);border:none;border-radius:.5rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;font-weight:500;padding:.75rem 1rem;transition:background-color .2s ease;width:100%}.registerPasskey-module__button___D3b4B:hover{background-color:var(--seamless-accent-hover,#047857)}.registerPasskey-module__message___RiOw-{font-size:.875rem;margin-top:1rem}.registerPasskey-module__success___HP5aX{color:var(--seamless-success,#6ee7b7)}.registerPasskey-module__error___hGiqE{color:var(--seamless-danger,#f87171)}.registerPasskey-module__skip___1hDyU{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}.registerPasskey-module__skip___1hDyU:disabled{cursor:default;opacity:.6}.registerPasskey-module__secondary___bnOB4{background:none;border:1px solid var(--seamless-accent,#059669);border-radius:.5rem;color:var(--seamless-accent,#059669);cursor:pointer;font-weight:500;margin-top:.75rem;padding:.75rem 1rem;transition:background-color .2s ease;width:100%}.registerPasskey-module__secondary___bnOB4:hover:not(:disabled){background-color:var(--seamless-accent-muted,rgba(5,150,105,.1))}.registerPasskey-module__secondary___bnOB4:disabled{cursor:default;opacity:.6}");const be={attachment_not_allowed:"This application does not accept that kind of authenticator. Try the other option.",synced_passkey_not_allowed:"This passkey syncs to a password manager, and this application requires one that stays on a single device, such as a security key.",authenticator_not_allowed:"This application does not accept this authenticator.",prf_required:"This authenticator does not support a feature this application requires."};const ye=()=>{const{refreshSession:a}=d(),o=_(),{passkeySupported:s,loading:n}=m(),{loginMethods:l,loading:c}=u(),g=i(),f=function(e){const r=e?.returnTo;return"string"!=typeof r||!r.startsWith("/")||r.startsWith("//")||r.startsWith("/\\")?"/":r}(t().state),[v,b]=h("idle"),[y,w]=h(""),N=p(l),P=async()=>{await a(),g(f)},C=async e=>{const{platform:r,browser:i,deviceInfo:t}=function(){const e=navigator.userAgent.toLowerCase();let r="unknown",a="unknown";return/iphone|ipad|ipod/.test(e)?r="ios":/android/.test(e)?r="android":/mac os/.test(e)?r="mac":/windows/.test(e)?r="windows":/linux/.test(e)&&(r="linux"),navigator.brave?a="brave":/edg\/|edgios/.test(e)?a="edge":/opr\/|opt\/|opera/.test(e)?a="opera":/vivaldi/.test(e)?a="vivaldi":/samsungbrowser/.test(e)?a="samsung":/firefox|fxios/.test(e)?a="firefox":/chrome|crios/.test(e)?a="chrome":/safari/.test(e)&&(a="safari"),{platform:r,browser:a,deviceInfo:`${r} • ${a}`}}(),s={friendlyName:t,platform:r,browser:i,deviceInfo:t};b("loading");try{const{error:r}=await o.registerPasskey({metadata:s,attachment:e});if(r)throw r;await a(),b("success"),w("Passkey registered successfully."),g(f)}catch(e){console.error("Passkey registration failed."),b("error"),w(function(e){const r=x(e);return r?be[r]:void 0}(e)??(k(e)?"Your session expired before the passkey was saved. Sign in again to add one.":"Error registering passkey."))}};return r("div",{className:se,children:r("div",{className:ne,children:e("div",n||c?{className:le,children:[r("div",{className:ce}),r("span",{children:"Checking for Passkey Support..."})]}:s?{className:de,children:[r("h2",{className:_e,children:"Secure Your Account with a Passkey"}),r("p",{className:me,children:"Your device supports passkeys! Register one to skip passwords forever."}),r("button",{onClick:()=>C(),disabled:"loading"===v,className:ue,children:"loading"===v?"Registering...":"Register Passkey"}),r("button",{type:"button",onClick:()=>C("cross-platform"),disabled:"loading"===v,className:ve,children:"Use a security key instead"}),y&&r("p",{className:`${ge} ${"success"===v?pe:he}`,children:y}),N&&r("button",{type:"button",onClick:P,disabled:"loading"===v,className:fe,children:"Skip for now"})]}:{className:de,children:[r("h2",{className:_e,children:"Passkeys are not available here"}),r("p",{className:me,children:N?"This device does not support passkeys. You can continue without one and add a passkey later from a device that does.":"This device does not support passkeys, and this application requires one to sign in. Try again from a device or browser that supports them."}),N&&r("button",{type:"button",onClick:P,className:ue,children:"Continue"})]})})})};var ke="verifyOTP-module__container___wgoDE",xe="verifyOTP-module__card___3cs2p",we="verifyOTP-module__title___fZ-1d",Ne="verifyOTP-module__subtitle___dGSu3",Pe="verifyOTP-module__error___GEtlG",Ce="verifyOTP-module__success___46TjG",Ie="verifyOTP-module__form___jiGG-",Te="verifyOTP-module__label___Zq5Mi",Me="verifyOTP-module__timer___smq-a",Oe="verifyOTP-module__resend___PlmkG",Se="verifyOTP-module__button___8pIuO",ze="verifyOTP-module__toggle___wbzVa";z(".verifyOTP-module__container___wgoDE{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.verifyOTP-module__card___3cs2p{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 0 10px var(--seamless-shadow,rgba(0,0,0,.3));max-width:28rem;padding:1.5rem;width:100%}.verifyOTP-module__title___fZ-1d{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:700;margin-bottom:1rem;text-align:center}.verifyOTP-module__subtitle___dGSu3{color:var(--seamless-text-muted,#9ca3af);font-size:.875rem;margin-bottom:1.5rem;text-align:center}.verifyOTP-module__error___GEtlG{color:var(--seamless-danger,#f87171);margin-bottom:1rem;text-align:center}.verifyOTP-module__success___46TjG{color:var(--seamless-success,#34d399);margin-bottom:.75rem;text-align:center}.verifyOTP-module__form___jiGG-{display:flex;flex-direction:column;gap:1rem}.verifyOTP-module__label___Zq5Mi{color:var(--seamless-text-muted,#d1d5db);display:block;font-size:.875rem;margin-bottom:.25rem}.verifyOTP-module__timer___smq-a{color:var(--seamless-warning,#facc15);font-size:.875rem}.verifyOTP-module__input___yqIXM{background-color:var(--seamless-surface-raised,#374151);border:1px solid var(--seamless-border,#4b5563);border-radius:.375rem;color:var(--seamless-text,#fff);outline:none;padding:.5rem;width:100%}.verifyOTP-module__input___yqIXM:focus{box-shadow:0 0 0 2px var(--seamless-accent,#3b82f6)}.verifyOTP-module__resend___PlmkG{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.75rem;margin-top:.25rem;text-decoration:underline}.verifyOTP-module__resend___PlmkG:hover{color:var(--seamless-accent,#3b82f6)}.verifyOTP-module__button___8pIuO{background-color:var(--seamless-accent,#2563eb);border:none;border-radius:.375rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;padding:.5rem;transition:background-color .2s;width:100%}.verifyOTP-module__button___8pIuO:hover{background-color:var(--seamless-accent-hover,#1d4ed8)}.verifyOTP-module__toggle___wbzVa{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}");var Ae="otpInput-module__otpContainer___MUjby",Be="otpInput-module__otpInput___3YMVm";z(".otpInput-module__otpContainer___MUjby{display:flex;gap:8px;justify-content:center;margin-top:8px}.otpInput-module__otpInput___3YMVm{background:var(--seamless-surface-raised,#374151);border:1px solid var(--seamless-border,#4b5563);border-radius:8px;color:var(--seamless-text,#fff);font-size:1.2rem;height:48px;text-align:center;transition:border-color .15s ease,box-shadow .15s ease;width:42px}.otpInput-module__otpInput___3YMVm:focus{border-color:var(--seamless-accent,#60a5fa);box-shadow:0 0 0 2px var(--seamless-accent,rgba(96,165,250,.25));outline:none}");const qe=({length:e=6,value:a,inputMode:o="numeric",onChange:i,name:t="otp"})=>{const s=v([]),n=a.split("").concat(Array(e).fill("")).slice(0,e),l=(e,r)=>{var a;if(r.length>1)c(e,r);else if(!r||(a=r,"numeric"===o?/^\d$/.test(a):/^[a-zA-Z]$/.test(a))){const a=[...n];a[e]=r;const o=a.join("");i(o),r&&s.current[e+1]&&s.current[e+1]?.focus()}},c=(r,a)=>{let t=a;t="numeric"===o?a.replace(/\D/g,""):a.replace(/[^a-zA-Z]/g,"");const l=t.slice(0,e).split(""),c=[...n];l.forEach((a,o)=>{r+o<e&&(c[r+o]=a)}),i(c.join("")),s.current[Math.min(r+l.length,e-1)]?.focus()};return r("div",{className:Ae,role:"group","aria-label":"One-time password input",onPaste:e=>{e.preventDefault(),c(0,e.clipboardData.getData("text"))},children:n.map((a,c)=>r("input",{ref:e=>s.current[c]=e,type:"text",inputMode:"numeric"===o?"numeric":"text",autoComplete:"one-time-code",name:`${t}-${c}`,maxLength:1,value:a,className:Be,onChange:e=>l(c,e.target.value),onKeyDown:r=>((r,a)=>{if("Backspace"===a.key){a.preventDefault();const e=[...n];n[r]?(e[r]="",i(e.join(""))):r>0&&(e[r-1]="",i(e.join("")),s.current[r-1]?.focus())}"ArrowLeft"===a.key&&r>0&&s.current[r-1]?.focus(),"ArrowRight"===a.key&&r<e-1&&s.current[r+1]?.focus()})(c,r),"aria-label":`Digit ${c+1}`},c))})},Ee=()=>{const a=i(),o=t(),{refreshSession:s}=d(),n="login"===o.state?.flow,[l,c]=h(""),[m,u]=h(null),[g,p]=h(""),[v,b]=h(!1),[y,k]=h(""),[x,w]=h(300),N=_(),P=async()=>{if(b(!0),!m){const{error:e}=n?await N.verifyLoginPhoneOtp(l):await N.verifyPhoneOtp(l);if(e)p("Verification failed.");else{if(n)return await s(),void a("/");u(!0)}}b(!1)},C=async()=>{k(""),await(async()=>{p("");const{error:e}=n?await N.requestLoginPhoneOtp():await N.requestPhoneOtp();e?p("Failed to send SMS code. If this persists, refresh the page and try again."):k("Verification SMS has been resent.")})(),k("Verification SMS has been resent.")};return f(()=>{const e=setInterval(()=>{w(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),f(()=>{m&&!n&&(async()=>{const{error:e}=await N.requestEmailOtp();e?p("Failed to send Email code. If this persists, refresh the page and try registering again."):a(I)})()},[m,n,a,N]),r("div",{className:ke,children:e("div",{className:xe,children:[r("h2",{className:we,children:"Verify Your Phone Number"}),r("p",{className:Ne,children:"Enter the code sent to your phone number."}),g&&r("p",{className:Pe,children:g}),y&&r("p",{className:Ce,children:y}),e("form",{onSubmit:async e=>{if(e.preventDefault(),p(""),6===l.length){b(!0);try{await P()}catch{p("Unexpected error occurred.")}finally{b(!1)}}else p("Please enter a valid code.")},className:Ie,children:[e("div",{children:[e("label",{htmlFor:"phoneCode",className:Te,children:["Phone Verification Code ",(M=m,!0===M?r("span",{className:"text-green-400 ml-2",children:"✅"}):!1===M?r("span",{className:"text-red-400 ml-2",children:"❌"}):null)," -"," ",e("span",{className:Me,children:["Code expires in: ",(T=x,`${Math.floor(T/60).toString().padStart(2,"0")}:${(T%60).toString().padStart(2,"0")}`)]})]}),r(qe,{length:6,value:l,onChange:c}),r("button",{type:"button",onClick:()=>C(),className:Oe,children:"Resend code to phone"})]}),r("button",{type:"submit",className:Se,children:v?"Verifying...":"Verify & Continue"}),r("button",{type:"button",onClick:()=>a("/login"),className:ze,children:"Back to login"})]})]})});var T,M},Le=()=>{const a=i(),o=t(),{refreshSession:s}=d(),n=_(),{passkeySupported:l}=m(),c="login"===o.state?.flow,[u,g]=h(!1),[p,v]=h(""),[b,y]=h(300),[k,x]=h(""),[w,N]=h("");return f(()=>{const e=setInterval(()=>{y(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),r("div",{className:ke,children:e("div",{className:xe,children:[r("h2",{className:we,children:"Verify Your Email"}),r("p",{className:Ne,children:"We sent you a verification email. Enter the code below."}),k&&r("p",{className:Pe,children:k}),w&&r("p",{className:Ce,children:w}),e("form",{onSubmit:async e=>{if(e.preventDefault(),x(""),6===p.length){g(!0);try{const{error:e}=c?await n.verifyLoginEmailOtp(p):await n.verifyEmailOtp(p);if(e)return void x("Verification failed.");if(c)return await s(),void a("/");l?a(O):(await s(),a("/"))}catch{console.error("Email OTP verification failed."),x("Verification failed.")}finally{g(!1)}}else x("Please enter a valid code.")},className:Ie,children:[e("div",{children:[e("label",{htmlFor:"emailCode",className:Te,children:["Email Verification Code",e("span",{className:Me,children:[" ","— Code expires in ",(P=b,`${Math.floor(P/60).toString().padStart(2,"0")}:${(P%60).toString().padStart(2,"0")}`)]})]}),r(qe,{length:6,value:p,onChange:v,inputMode:"text"}),r("button",{type:"button",onClick:async()=>{x(""),N("");const{error:e}=c?await n.requestLoginEmailOtp():await n.requestEmailOtp();e?x("Failed to send Email code. If this persists, refresh the page and try again."):N("Verification email has been resent.")},className:Oe,children:"Resend code to email"})]}),r("button",{type:"submit",className:Se,disabled:u,children:u?"Verifying...":"Verify & Continue"}),r("button",{type:"button",onClick:()=>a("/login"),className:ze,children:"Back to login"})]})]})});var P};var Fe={container:"verifyMagiclink-module__container___qrSXf",card:"verifyMagiclink-module__card___niKgr",title:"verifyMagiclink-module__title___SumxD",verificationContent:"verifyMagiclink-module__verificationContent___NdsS0",spinner:"verifyMagiclink-module__spinner___lnW1k",successIcon:"verifyMagiclink-module__successIcon___XjFEM",checkIcon:"verifyMagiclink-module__checkIcon___I0JOP",successText:"verifyMagiclink-module__successText___lO5Qq"};z(".verifyMagiclink-module__container___qrSXf{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.verifyMagiclink-module__card___niKgr{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 0 10px var(--seamless-shadow,rgba(0,0,0,.3));max-width:28rem;padding:1.5rem;width:100%}.verifyMagiclink-module__title___SumxD{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:700;margin-bottom:1rem;text-align:center}.verifyMagiclink-module__verificationContent___NdsS0{align-items:center;display:flex;flex-direction:column;gap:14px;margin:20px 0}.verifyMagiclink-module__spinner___lnW1k{animation:verifyMagiclink-module__spin___2lGzj .9s linear infinite;border:3px solid var(--seamless-border,hsla(0,0%,100%,.15));border-radius:50%;border-top-color:var(--seamless-accent,#60a5fa);height:28px;width:28px}.verifyMagiclink-module__successIcon___XjFEM{align-items:center;background:rgba(16,185,129,.15);border-radius:50%;display:flex;height:36px;justify-content:center;width:36px}.verifyMagiclink-module__checkIcon___I0JOP{animation:verifyMagiclink-module__checkPop___-3qJu .25s ease-out;color:var(--seamless-success,#34d399);height:22px;width:22px}.verifyMagiclink-module__successText___lO5Qq{color:var(--seamless-success,#34d399);font-size:.9rem}@keyframes verifyMagiclink-module__checkPop___-3qJu{0%{opacity:0;transform:scale(.6)}80%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes verifyMagiclink-module__spin___2lGzj{to{transform:rotate(1turn)}}");const je=()=>{const[a]=s(),o=i(),t=a.get("token"),[n,l]=h(""),[c,m]=h(""),u=_(),{refreshSession:g}=d();return f(()=>{let e=!0,r=null,a=null;return(async()=>{if(!t)return e&&l("Missing token for verification."),void console.error("No magic-link token found.");const{error:i}=await u.verifyMagicLink(t);if(i)return console.error("Failed to verify token"),void(e&&l("Failed to verify token"));await g(),e&&(r=new BroadcastChannel("seamless-auth"),r.postMessage({type:"MAGIC_LINK_AUTH_SUCCESS"}),m("You have been verified on the device and browser that initiated this request"),a=setTimeout(()=>{e&&o("/")},900))})(),()=>{e=!1,r?.close(),a&&clearTimeout(a)}},[t,u,o,g]),r("div",{className:Fe.container,children:e("div",{className:Fe.card,children:[r("h1",{className:Fe.title,children:"Verifying your login"}),e("div",{className:Fe.verificationContent,children:[!c&&!n&&r("div",{className:Fe.spinner}),c&&r("div",{className:Fe.successIcon,children:r("svg",{viewBox:"0 0 24 24",className:Fe.checkIcon,fill:"none",stroke:"currentColor",strokeWidth:"2",children:r("path",{d:"M5 13l4 4L19 7"})})}),!c&&!n&&r("p",{className:Fe.helperText,children:"Please wait while we securely verify your sign-in link."}),c&&r("p",{className:Fe.successText,children:"Login verified. Redirecting…"}),n&&r("p",{className:Fe.error,children:n})]})]})})};const De={oauth_missing_email:"Your provider account did not share an email address. Add an email to that account and make it visible, then try again.",oauth_email_not_verified:"The email address on your provider account is not verified. Verify it with your provider, then try again.",oauth_missing_subject:"Your provider did not return a usable account identifier. Try again, or sign in with a different method.",oauth_invalid_id_token:"Your provider sent a sign-in response that could not be verified. Try again, or sign in with a different method.",oauth_provider_retired:"Your organization no longer signs in with this provider. Sign in with your passkey or another method instead."},Re=()=>{const{finishOAuthLogin:o}=d(),t=i(),[n]=s(),[l,c]=h(""),_=v(!1);return f(()=>{if(_.current)return;_.current=!0;const e=n.get("code"),r=n.get("state"),a=sessionStorage.getItem(re);e&&r&&a?o({providerId:a,code:e,state:r}).then(({data:e,error:r})=>{if(r){const e=w(r);return void c(e?De[e]:"We could not complete sign-in. Please try again.")}sessionStorage.removeItem(re);const a=function(e){if(!e)return null;try{const r=new URL(e,window.location.origin);return r.origin!==window.location.origin?null:`${r.pathname}${r.search}${r.hash}`}catch{return null}}(e?.returnTo)??"/";"enroll_passkey"!==e?.nextStep?t(a):t(O,{state:{returnTo:a}})}):c("This sign-in link is missing required information.")},[o,t,n]),e("div",{className:Fe.container,children:[r("h2",{className:Fe.title,children:l?"Sign-in failed":"Completing sign-in..."}),l&&e(a,{children:[r("p",{children:l}),r("button",{type:"button",onClick:()=>t("/login"),children:"Back to login"})]})]})};var Ve="magiclink-module__container___45zcA",Ge="magiclink-module__card___Au9oN",We="magiclink-module__iconWrapper___k5ndr",Ue="magiclink-module__mailIcon___Pwb7q",Ke="magiclink-module__iconRing___bdLvf",Ye="magiclink-module__heading___b9cre",$e="magiclink-module__message___kiVFj",He="magiclink-module__identifier___JtcFM",Je="magiclink-module__helperText___7Mlfh",Ze="magiclink-module__actions___64I-3",Qe="magiclink-module__secondaryButton___BntAI",Xe="magiclink-module__cooldown___Ib4rm",er="magiclink-module__linkButton___maJiv";z(".magiclink-module__container___45zcA{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center}.magiclink-module__card___Au9oN{background-color:var(--seamless-surface,#1f2937);border-radius:.75rem;box-shadow:0 10px 25px var(--seamless-shadow,rgba(0,0,0,.25));max-width:420px;padding:2.5rem 2rem;text-align:center;width:100%}.magiclink-module__iconWrapper___k5ndr{display:flex;justify-content:center;margin-bottom:1.25rem;position:relative}.magiclink-module__mailIcon___Pwb7q{color:var(--seamless-accent-soft,#a5b4fc);height:38px;width:38px;z-index:2}.magiclink-module__iconRing___bdLvf{animation:magiclink-module__pulse___YGm-I 2s infinite;background:rgba(99,102,241,.15);border-radius:50%;height:72px;position:absolute;width:72px}@keyframes magiclink-module__pulse___YGm-I{0%{opacity:.8;transform:scale(.6)}70%{opacity:0;transform:scale(1.4)}to{opacity:0}}.magiclink-module__heading___b9cre{font-size:1.55rem;font-weight:600;margin-bottom:.75rem}.magiclink-module__message___kiVFj{color:var(--seamless-text-muted,#d1d5db);font-size:.95rem;line-height:1.4;margin-bottom:1rem}.magiclink-module__identifier___JtcFM{background:var(--seamless-surface-raised,hsla(0,0%,100%,.05));border-radius:6px;display:inline-block;font-size:1rem;font-weight:600;margin-bottom:1rem;padding:.45rem .6rem}.magiclink-module__helperText___7Mlfh{color:var(--seamless-text-muted,#9ca3af);font-size:.85rem;line-height:1.4;margin-bottom:.6rem}.magiclink-module__actions___64I-3{display:flex;flex-direction:column;gap:.6rem;margin-top:1.6rem}.magiclink-module__secondaryButton___BntAI{background:var(--seamless-surface,#111827);border:1px solid var(--seamless-border,#374151);border-radius:8px;color:var(--seamless-text,#fff);cursor:pointer;font-weight:500;padding:.65rem}.magiclink-module__secondaryButton___BntAI:hover:not(:disabled){background:var(--seamless-surface-hover,#1f2937)}.magiclink-module__secondaryButton___BntAI:disabled{cursor:not-allowed;opacity:.5}.magiclink-module__cooldown___Ib4rm{color:var(--seamless-text-muted,#9ca3af);font-size:.8rem}.magiclink-module__linkButton___maJiv{background:none;border:none;color:var(--seamless-accent-soft,#a5b4fc);cursor:pointer;font-size:.85rem;margin-top:.4rem}.magiclink-module__linkButton___maJiv:hover{text-decoration:underline}");const rr=()=>{const{refreshSession:a}=d(),o=i(),s=t(),n=_(),l=s.state?.identifier,[c,m]=h(30);f(()=>{const e=setInterval(()=>{m(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]);const u=b(async()=>{const{data:e,error:r}=await n.checkMagicLink();return!r&&"Success"===e?.message},[n]);return f(()=>{const e=new BroadcastChannel("seamless-auth");return e.onmessage=async e=>{"MAGIC_LINK_AUTH_SUCCESS"===e.data?.type&&await u()&&(await a(),o("/"))},()=>{e.close()}},[u,o,a]),f(()=>{const e=setInterval(async()=>{try{await u()&&(await a(),o("/"))}catch{}},5e3);return()=>clearInterval(e)},[u,a,o]),r("div",{className:Ve,children:e("div",{className:Ge,children:[e("div",{className:We,children:[r("div",{className:Ke}),e("svg",{className:Ue,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[r("path",{d:"M4 6h16v12H4z"}),r("path",{d:"m4 6 8 6 8-6"})]})]}),r("h2",{className:Ye,children:"Check your email"}),r("p",{className:$e,children:"If an account exists for this address, we sent a secure sign-in link."}),l&&r("div",{className:He,children:l}),r("p",{className:Je,children:"Open the email and click the link to finish signing in."}),r("p",{className:Je,children:"Didn’t receive anything? Check your spam folder or try creating a new account."}),e("div",{className:Ze,children:[r("button",{className:Qe,disabled:c>0,onClick:async()=>{c>0||(await n.requestMagicLink(),m(30))},children:"Resend link"}),c>0&&e("div",{className:Xe,children:["Available in ",c,"s"]}),r("button",{className:er,onClick:()=>o("/login"),children:"Change email or phone"})]})]})})},ar=()=>e(n,{children:[r(l,{path:N,element:r(oe,{})}),r(l,{path:P,element:r(te,{})}),r(l,{path:C,element:r(Ee,{})}),r(l,{path:I,element:r(Le,{})}),r(l,{path:T,element:r(je,{})}),r(l,{path:M,element:r(Re,{})}),r(l,{path:O,element:r(ye,{})}),r(l,{path:S,element:r(rr,{})}),r(l,{path:"*",element:r(c,{to:N,replace:!0})})]});export{ar as AuthRoutes};
2
+ import{jsxs as e,jsx as r,Fragment as a}from"react/jsx-runtime";import{useHref as o,useNavigate as i,useLocation as t,useSearchParams as n,Routes as s,Route as l,Navigate as c}from"react-router-dom";import{u as d,a as _,c as m,b as u,F as g,h as p}from"./chunks/shared-BzrBuR0z.js";import{useState as h,useEffect as f,useRef as v,useCallback as b}from"react";import y from"libphonenumber-js";import{isUnauthenticated as k,getPasskeyPolicyErrorCode as x,getOAuthErrorCode as w}from"@seamless-auth/client";const N="/login",P="/passkey-login",C="/verify-phone-otp",T="/verify-email-otp",I="/verify-magiclink",M="/oauth/callback",O="/register-passkey",S="/magic-link-sent";function z(e,r){void 0===r&&(r={});var a=r.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css","top"===a&&o.firstChild?o.insertBefore(i,o.firstChild):o.appendChild(i),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(document.createTextNode(e))}}var A="login-module__container___YggDx",B="login-module__card___Ub-Py",q="login-module__heading___neEqb",L="login-module__inputGroup___P6qgS",E="login-module__label___mx5vu",F="login-module__input___U07lW",j="login-module__helperText___kDQ4-",R="login-module__error___40zxh",D="login-module__button___0kFBs",V="login-module__submitHint___qOS5Z",G="login-module__toggle___1JiG1",W="login-module__fallbackCard___HdIk-",U="login-module__fallbackHeader___-il2v",K="login-module__fallbackDescription___ea5EB",Y="login-module__fallbackActions___AD3ni",$="login-module__fallbackActionButton___lFgWf",H="login-module__actionTitle___ycrMp",J="login-module__actionSubtext___opaIV",Z="login-module__linkButton___5lsoe";z(".login-module__container___YggDx{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center}.login-module__card___Ub-Py{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 4px 6px var(--seamless-shadow,rgba(0,0,0,.1));max-width:28rem;padding:2rem;width:100%}.login-module__heading___neEqb{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:center}.login-module__message___qSejT{color:var(--seamless-success,#68d391);text-align:center}.login-module__inputGroup___P6qgS{margin-bottom:1rem}.login-module__label___mx5vu{color:var(--seamless-text-muted,#d1d5db);display:block}.login-module__input___U07lW{background-color:var(--seamless-surface-raised,#4b5563);border:1px solid var(--seamless-border,#d1d5db);border-radius:.375rem;margin-top:.25rem;padding:.5rem;width:100%}.login-module__input___U07lW:focus{box-shadow:0 0 0 2px var(--seamless-accent,#3b82f6);outline:none}.login-module__helperText___kDQ4-{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:.5rem}.login-module__error___40zxh{color:var(--seamless-danger,#f87171);font-size:.875rem}.login-module__button___0kFBs{background-color:var(--seamless-accent,#2563eb);border-radius:.375rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;margin-top:1rem;padding:.5rem;transition:background-color .3s,opacity .3s;width:100%}.login-module__button___0kFBs:hover:not(:disabled){background-color:var(--seamless-accent-hover,#1d4ed8)}.login-module__button___0kFBs:disabled{cursor:not-allowed;opacity:.6}.login-module__submitHint___qOS5Z{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:.5rem;text-align:center}.login-module__toggle___1JiG1{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}.login-module__underline___gs-RS{text-decoration:underline}.login-module__phoneRow___oeNtq{display:grid;gap:.5rem;grid-template-columns:1fr 3fr;margin-top:.25rem}.login-module__phoneInput___2MPQC,.login-module__select___rRV1O{background-color:var(--seamless-surface-raised,#4b5563);border:1px solid var(--seamless-border,#d1d5db);border-radius:.375rem;padding:.5rem;width:100%}@media (max-width:500px){.login-module__phoneRow___oeNtq{grid-template-columns:1fr}}.login-module__fallbackCard___HdIk-{background:var(--seamless-surface-raised,hsla(0,0%,100%,.04));border:1px solid var(--seamless-border,hsla(0,0%,100%,.08));border-radius:12px;display:flex;flex-direction:column;gap:14px;margin-top:18px;padding:18px}.login-module__fallbackHeader___-il2v{color:var(--seamless-text,#f3f4f6);font-size:.95rem;font-weight:600}.login-module__fallbackDescription___ea5EB{color:var(--seamless-text-muted,#9ca3af);font-size:.85rem;line-height:1.4}.login-module__fallbackActions___AD3ni{display:flex;flex-direction:column;gap:10px}.login-module__fallbackActionButton___lFgWf{background:var(--seamless-surface,rgba(0,0,0,.25));border:1px solid var(--seamless-border,hsla(0,0%,100%,.08));border-radius:8px;cursor:pointer;display:flex;flex-direction:column;padding:12px 14px;text-align:left;transition:all .15s ease}.login-module__fallbackActionButton___lFgWf:hover{background:var(--seamless-surface-hover,hsla(0,0%,100%,.06));border-color:var(--seamless-border,hsla(0,0%,100%,.15))}.login-module__actionTitle___ycrMp{color:var(--seamless-text,#f9fafb);font-size:.9rem;font-weight:500}.login-module__actionSubtext___opaIV{color:var(--seamless-text-muted,#9ca3af);font-size:.75rem;margin-top:2px}.login-module__linkButton___5lsoe{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.8rem;margin-top:6px}.login-module__linkButton___5lsoe:hover{text-decoration:underline}");const Q=e=>{if("string"!=typeof e)return!1;const r=e.trim();if(r.length<3||r.length>320)return!1;const a=r.split("@");if(2!==a.length)return!1;const[o,i]=a;return!(!/^[A-Za-z0-9._%+-]+$/.test(o)||o.startsWith(".")||o.endsWith(".")||o.includes(".."))&&!(!/^[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/.test(i)||i.startsWith("-")||i.endsWith("-")||i.startsWith(".")||i.endsWith(".")||i.includes(".."))},X=e=>{const r=y(e);return r?.isValid()||!1};const ee=({identifier:a,onMagicLink:o,onEmailOtp:i,onPhoneOtp:t,onPasskeyRetry:n,loginMethods:s})=>{const l=new Set(s??["passkey","magic_link","phone_otp"]),c=l.has("magic_link")&&Q(a),d=l.has("email_otp")&&Boolean(i)&&Q(a),_=l.has("phone_otp")&&X(a),m=l.has("passkey")&&Boolean(n);return c||d||_||m?e("div",{className:W,children:[r("div",{className:U,children:"Choose a sign-in method"}),r("p",{className:K,children:"Choose another secure sign-in method."}),e("div",{className:Y,children:[c&&e("button",{type:"button",className:$,onClick:o,children:[r("span",{className:H,children:"Email Magic Link"}),r("span",{className:J,children:"Send a secure sign-in link to your email"})]}),d&&e("button",{type:"button",className:$,onClick:i,children:[r("span",{className:H,children:"Email Code"}),r("span",{className:J,children:"Receive a one-time code by email"})]}),_&&e("button",{type:"button",className:$,onClick:t,children:[r("span",{className:H,children:"Text Message Code"}),r("span",{className:J,children:"Receive a one-time code via SMS"})]})]}),m&&r("button",{type:"button",className:Z,onClick:n,children:"Try passkey anyway"})]}):null},re="seamless:oauth:provider",ae=()=>{const{listOAuthProviders:a,startOAuthLogin:i,finishOAuthLogin:t,ports:n}=d(),s=o("/oauth/callback"),[l,c]=h([]),[_,m]=h("");if(f(()=>{let e=!0;return a().then(({data:r})=>{e&&c(r?.providers??[])}),()=>{e=!1}},[a]),0===l.length)return null;return e("div",{className:Y,children:[l.map(a=>r("button",{type:"button",className:$,onClick:()=>(async e=>{m(""),sessionStorage.setItem(re,e);const r=new URL(s,window.location.origin).toString(),{data:a,error:o}=await i({providerId:e,redirectUri:r});if(o)return void m("Could not start sign-in with this provider.");const l=await n.oauthRedirect.open(a.authorizationUrl,r);"callback"===l.type&&(await t({providerId:e,code:l.code,state:l.state})).error&&m("Could not finish sign-in with this provider.")})(a.id),children:e("span",{className:H,children:["Continue with ",a.name]})},a.id)),_&&r("p",{className:R,children:_})]})},oe=()=>{const o=i(),{hasSignedInBefore:t,login:n,handlePasskeyLogin:s}=d(),l=_(),{passkeySupported:c}=m(),{loginMethods:p}=u(),[v,b]=h(""),[y,k]=h(""),[x,w]=h("register"),[N,P]=h(""),[I,M]=h(""),[O,z]=h(""),[W,U]=h(!1),[K,Y]=h(null);f(()=>{t&&w("login")},[t]);const $=()=>"login"===x?Q(v)||X(v):Q(y);return r("div",{className:A,children:e("div",{className:B,children:[r("h2",{className:q,children:"login"===x?"Sign In":"Create Account"}),e(a,{children:[e("form",{onSubmit:async e=>{e.preventDefault(),P(""),U(!1);try{if("login"===x){const{data:e,error:r}=await n(v,c);if(r)return void P("Failed to start sign-in. Please try again.");const a=e?.loginMethods?.length?e.loginMethods:p??g;if(Y(a),c&&a.includes("passkey")){const{error:e}=await s();return e?(U(!0),void P("Passkey sign-in could not be completed. Choose another sign-in method.")):void o("/")}return void U(!0)}"register"===x&&await(async()=>{P("");const{data:e,error:r}=await l.register({email:y});r?P("Failed to register. Please try again."):"Success"===e.message?o(T):P("An unexpected error occurred. Try again. If the problem persists, contact support.")})()}catch{console.error("Failed to continue sign-in."),P("Failed to continue sign-in. Please try again.")}},children:["login"===x&&e("div",{className:L,children:[r("label",{htmlFor:"identifier",className:E,children:"Email Address / Phone Number"}),r("input",{id:"identifier",type:"text",value:v,onChange:e=>{const r=e.target.value;b(r)},autoComplete:"off",placeholder:"Email or Phone Number",className:F,onBlur:()=>{if(v){const e=Q(v)||X(v);z(e?"":"Please enter a valid email or phone number")}},required:!0}),r("p",{className:j,children:"Phone numbers must include a country code e.g. +1"}),W&&r(ee,{identifier:v,onMagicLink:async()=>{const{error:e}=await l.requestMagicLink();e?P("Failed to send magic link."):o(S,{state:{identifier:v}})},onEmailOtp:async()=>{const{error:e}=await l.requestLoginEmailOtp();e?P("Failed to send email code."):o(T,{state:{flow:"login"}})},onPhoneOtp:async()=>{const{error:e}=await l.requestLoginPhoneOtp();e?P("Failed to send OTP."):o(C,{state:{flow:"login"}})},onPasskeyRetry:c?s:void 0,loginMethods:K}),O&&r("p",{className:R,children:O})]}),"register"===x&&e("div",{className:L,children:[r("label",{htmlFor:"email",className:E,children:"Email Address"}),r("input",{id:"email",type:"email",value:y,onChange:e=>{const r=e.target.value;k(r)},autoComplete:"off",className:F,onBlur:()=>{if(y){const e=Q(y);M(e?"":"Please enter a valid email")}},required:!0}),I&&r("p",{className:R,children:I})]}),r("button",{type:"submit",className:D,disabled:!$(),"aria-describedby":"seamless-submit-hint",children:"login"===x?"Login":"Register"}),r("p",{id:"seamless-submit-hint",role:"status",className:V,children:"login"===x?v?$()?"Ready to continue.":"This does not look like a complete email or phone number yet.":"Enter your email or phone number to continue.":y?$()?"Ready to continue.":"This does not look like a complete email address yet.":"Enter your email address to continue."}),N&&r("p",{className:R,children:N}),r("button",{type:"button",onClick:()=>w("login"===x?"register":"login"),className:G,children:"login"===x?"Don't have an account? Create one":"Already have an account? Sign in"})]}),r(ae,{})]})]})})};var ie={container:"passKeyLogin-module__container___IUKxF",card:"passKeyLogin-module__card___2sKM1",title:"passKeyLogin-module__title___HZxvc",button:"passKeyLogin-module__button___FvR4I"};z(".passKeyLogin-module__container___IUKxF{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.passKeyLogin-module__card___2sKM1{background-color:var(--seamless-surface,#1f2937);border-radius:1rem;box-shadow:0 4px 20px var(--seamless-shadow,rgba(0,0,0,.4));display:flex;flex-direction:column;gap:1.5rem;max-width:400px;padding:2rem;width:100%}.passKeyLogin-module__title___HZxvc{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:600;text-align:center}.passKeyLogin-module__button___FvR4I{background-color:var(--seamless-accent,#2563eb);border:1px solid var(--seamless-accent,#3b82f6);border-radius:.5rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;font-weight:500;padding:.75rem 1rem;text-align:center;transition:background-color .2s ease;width:100%}.passKeyLogin-module__button___FvR4I:hover{background-color:var(--seamless-accent-hover,#1d4ed8)}@media (max-width:480px){.passKeyLogin-module__card___2sKM1{padding:1.25rem}.passKeyLogin-module__button___FvR4I{font-size:1rem}}");const te=()=>{const a=i(),{handlePasskeyLogin:o}=d(),[t,n]=h("");return r("div",{className:ie.container,children:e("div",{className:ie.card,children:[r("h2",{className:ie.title,children:"Login with Passkey"}),r("button",{onClick:async()=>{n("");const{error:e}=await o();e?n("Passkey sign-in could not be completed. Try another sign-in method."):a("/")},className:ie.button,children:"Use Passkey"}),t&&r("p",{className:ie.error,children:t})]})})};var ne="registerPasskey-module__container___jqEh8",se="registerPasskey-module__card___MJAyC",le="registerPasskey-module__loading___Q4i1x",ce="registerPasskey-module__spinner___V1nhd",de="registerPasskey-module__supported___ihTih",_e="registerPasskey-module__title___vn2Qu",me="registerPasskey-module__description___AWmO-",ue="registerPasskey-module__button___D3b4B",ge="registerPasskey-module__message___RiOw-",pe="registerPasskey-module__success___HP5aX",he="registerPasskey-module__error___hGiqE",fe="registerPasskey-module__skip___1hDyU",ve="registerPasskey-module__secondary___bnOB4";z(".registerPasskey-module__container___jqEh8{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.registerPasskey-module__card___MJAyC{background-color:var(--seamless-surface,#1f2937);border-radius:1rem;box-shadow:0 4px 20px var(--seamless-shadow,rgba(0,0,0,.4));max-width:400px;padding:1.5rem;width:100%}.registerPasskey-module__loading___Q4i1x{align-items:center;background-color:var(--seamless-surface,#f9fafb);border-radius:.75rem;box-shadow:0 2px 8px var(--seamless-shadow,rgba(0,0,0,.1));color:var(--seamless-text,#374151);display:flex;font-weight:500;gap:.75rem;justify-content:center;padding:1.5rem}.registerPasskey-module__spinner___V1nhd{animation:registerPasskey-module__spin___oYcsC 1s linear infinite;border-bottom:2px solid var(--seamless-accent,#3b82f6);border-left:2px solid transparent;border-radius:9999px;border-right:2px solid transparent;border-top:2px solid var(--seamless-accent,#3b82f6);height:1.5rem;width:1.5rem}@keyframes registerPasskey-module__spin___oYcsC{to{transform:rotate(1turn)}}.registerPasskey-module__supported___ihTih{background-color:var(--seamless-surface,#ecfdf5);border-radius:.75rem;box-shadow:0 2px 12px var(--seamless-shadow,rgba(0,0,0,.1));color:var(--seamless-text,#065f46);padding:1.25rem}.registerPasskey-module__title___vn2Qu{font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.registerPasskey-module__description___AWmO-{margin-bottom:1rem}.registerPasskey-module__button___D3b4B{background-color:var(--seamless-accent,#059669);border:none;border-radius:.5rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;font-weight:500;padding:.75rem 1rem;transition:background-color .2s ease;width:100%}.registerPasskey-module__button___D3b4B:hover{background-color:var(--seamless-accent-hover,#047857)}.registerPasskey-module__message___RiOw-{font-size:.875rem;margin-top:1rem}.registerPasskey-module__success___HP5aX{color:var(--seamless-success,#6ee7b7)}.registerPasskey-module__error___hGiqE{color:var(--seamless-danger,#f87171)}.registerPasskey-module__skip___1hDyU{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}.registerPasskey-module__skip___1hDyU:disabled{cursor:default;opacity:.6}.registerPasskey-module__secondary___bnOB4{background:none;border:1px solid var(--seamless-accent,#059669);border-radius:.5rem;color:var(--seamless-accent,#059669);cursor:pointer;font-weight:500;margin-top:.75rem;padding:.75rem 1rem;transition:background-color .2s ease;width:100%}.registerPasskey-module__secondary___bnOB4:hover:not(:disabled){background-color:var(--seamless-accent-muted,rgba(5,150,105,.1))}.registerPasskey-module__secondary___bnOB4:disabled{cursor:default;opacity:.6}");const be={attachment_not_allowed:"This application does not accept that kind of authenticator. Try the other option.",synced_passkey_not_allowed:"This passkey syncs to a password manager, and this application requires one that stays on a single device, such as a security key.",authenticator_not_allowed:"This application does not accept this authenticator.",prf_required:"This authenticator does not support a feature this application requires."};const ye=()=>{const{refreshSession:a}=d(),o=_(),{passkeySupported:n,loading:s}=m(),{loginMethods:l,loading:c}=u(),g=i(),f=function(e){const r=e?.returnTo;return"string"!=typeof r||!r.startsWith("/")||r.startsWith("//")||r.startsWith("/\\")?"/":r}(t().state),[v,b]=h("idle"),[y,w]=h(""),N=p(l),P=async()=>{await a(),g(f)},C=async e=>{const{platform:r,browser:i,deviceInfo:t}=function(){const e=navigator.userAgent.toLowerCase();let r="unknown",a="unknown";return/iphone|ipad|ipod/.test(e)?r="ios":/android/.test(e)?r="android":/mac os/.test(e)?r="mac":/windows/.test(e)?r="windows":/linux/.test(e)&&(r="linux"),navigator.brave?a="brave":/edg\/|edgios/.test(e)?a="edge":/opr\/|opt\/|opera/.test(e)?a="opera":/vivaldi/.test(e)?a="vivaldi":/samsungbrowser/.test(e)?a="samsung":/firefox|fxios/.test(e)?a="firefox":/chrome|crios/.test(e)?a="chrome":/safari/.test(e)&&(a="safari"),{platform:r,browser:a,deviceInfo:`${r} • ${a}`}}(),n={friendlyName:t,platform:r,browser:i,deviceInfo:t};b("loading");try{const{error:r}=await o.registerPasskey({metadata:n,attachment:e});if(r)throw r;await a(),b("success"),w("Passkey registered successfully."),g(f)}catch(e){console.error("Passkey registration failed."),b("error"),w(function(e){const r=x(e);return r?be[r]:void 0}(e)??(k(e)?"Your session expired before the passkey was saved. Sign in again to add one.":"Error registering passkey."))}};return r("div",{className:ne,children:r("div",{className:se,children:e("div",s||c?{className:le,children:[r("div",{className:ce}),r("span",{children:"Checking for Passkey Support..."})]}:n?{className:de,children:[r("h2",{className:_e,children:"Secure Your Account with a Passkey"}),r("p",{className:me,children:"Your device supports passkeys! Register one to skip passwords forever."}),r("button",{onClick:()=>C(),disabled:"loading"===v,className:ue,children:"loading"===v?"Registering...":"Register Passkey"}),r("button",{type:"button",onClick:()=>C("cross-platform"),disabled:"loading"===v,className:ve,children:"Use a security key instead"}),y&&r("p",{className:`${ge} ${"success"===v?pe:he}`,children:y}),N&&r("button",{type:"button",onClick:P,disabled:"loading"===v,className:fe,children:"Skip for now"})]}:{className:de,children:[r("h2",{className:_e,children:"Passkeys are not available here"}),r("p",{className:me,children:N?"This device does not support passkeys. You can continue without one and add a passkey later from a device that does.":"This device does not support passkeys, and this application requires one to sign in. Try again from a device or browser that supports them."}),N&&r("button",{type:"button",onClick:P,className:ue,children:"Continue"})]})})})};var ke="verifyOTP-module__container___wgoDE",xe="verifyOTP-module__card___3cs2p",we="verifyOTP-module__title___fZ-1d",Ne="verifyOTP-module__subtitle___dGSu3",Pe="verifyOTP-module__error___GEtlG",Ce="verifyOTP-module__success___46TjG",Te="verifyOTP-module__form___jiGG-",Ie="verifyOTP-module__label___Zq5Mi",Me="verifyOTP-module__timer___smq-a",Oe="verifyOTP-module__resend___PlmkG",Se="verifyOTP-module__button___8pIuO",ze="verifyOTP-module__toggle___wbzVa";z(".verifyOTP-module__container___wgoDE{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.verifyOTP-module__card___3cs2p{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 0 10px var(--seamless-shadow,rgba(0,0,0,.3));max-width:28rem;padding:1.5rem;width:100%}.verifyOTP-module__title___fZ-1d{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:700;margin-bottom:1rem;text-align:center}.verifyOTP-module__subtitle___dGSu3{color:var(--seamless-text-muted,#9ca3af);font-size:.875rem;margin-bottom:1.5rem;text-align:center}.verifyOTP-module__error___GEtlG{color:var(--seamless-danger,#f87171);margin-bottom:1rem;text-align:center}.verifyOTP-module__success___46TjG{color:var(--seamless-success,#34d399);margin-bottom:.75rem;text-align:center}.verifyOTP-module__form___jiGG-{display:flex;flex-direction:column;gap:1rem}.verifyOTP-module__label___Zq5Mi{color:var(--seamless-text-muted,#d1d5db);display:block;font-size:.875rem;margin-bottom:.25rem}.verifyOTP-module__timer___smq-a{color:var(--seamless-warning,#facc15);font-size:.875rem}.verifyOTP-module__input___yqIXM{background-color:var(--seamless-surface-raised,#374151);border:1px solid var(--seamless-border,#4b5563);border-radius:.375rem;color:var(--seamless-text,#fff);outline:none;padding:.5rem;width:100%}.verifyOTP-module__input___yqIXM:focus{box-shadow:0 0 0 2px var(--seamless-accent,#3b82f6)}.verifyOTP-module__resend___PlmkG{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.75rem;margin-top:.25rem;text-decoration:underline}.verifyOTP-module__resend___PlmkG:hover{color:var(--seamless-accent,#3b82f6)}.verifyOTP-module__button___8pIuO{background-color:var(--seamless-accent,#2563eb);border:none;border-radius:.375rem;color:var(--seamless-accent-contrast,#fff);cursor:pointer;padding:.5rem;transition:background-color .2s;width:100%}.verifyOTP-module__button___8pIuO:hover{background-color:var(--seamless-accent-hover,#1d4ed8)}.verifyOTP-module__toggle___wbzVa{background:none;border:none;color:var(--seamless-accent-soft,#60a5fa);cursor:pointer;font-size:.875rem;margin-top:1.5rem;text-align:center;width:100%}");var Ae="otpInput-module__otpContainer___MUjby",Be="otpInput-module__otpInput___3YMVm";z(".otpInput-module__otpContainer___MUjby{display:flex;gap:8px;justify-content:center;margin-top:8px}.otpInput-module__otpInput___3YMVm{background:var(--seamless-surface-raised,#374151);border:1px solid var(--seamless-border,#4b5563);border-radius:8px;color:var(--seamless-text,#fff);font-size:1.2rem;height:48px;text-align:center;transition:border-color .15s ease,box-shadow .15s ease;width:42px}.otpInput-module__otpInput___3YMVm:focus{border-color:var(--seamless-accent,#60a5fa);box-shadow:0 0 0 2px var(--seamless-accent,rgba(96,165,250,.25));outline:none}");const qe=({length:e=6,value:a,inputMode:o="numeric",onChange:i,name:t="otp"})=>{const n=v([]),s=a.split("").concat(Array(e).fill("")).slice(0,e),l=(e,r)=>{var a;if(r.length>1)c(e,r);else if(!r||(a=r,"numeric"===o?/^\d$/.test(a):/^[a-zA-Z]$/.test(a))){const a=[...s];a[e]=r;const o=a.join("");i(o),r&&n.current[e+1]&&n.current[e+1]?.focus()}},c=(r,a)=>{let t=a;t="numeric"===o?a.replace(/\D/g,""):a.replace(/[^a-zA-Z]/g,"");const l=t.slice(0,e).split(""),c=[...s];l.forEach((a,o)=>{r+o<e&&(c[r+o]=a)}),i(c.join("")),n.current[Math.min(r+l.length,e-1)]?.focus()};return r("div",{className:Ae,role:"group","aria-label":"One-time password input",onPaste:e=>{e.preventDefault(),c(0,e.clipboardData.getData("text"))},children:s.map((a,c)=>r("input",{ref:e=>n.current[c]=e,type:"text",inputMode:"numeric"===o?"numeric":"text",autoComplete:"one-time-code",name:`${t}-${c}`,maxLength:1,value:a,className:Be,onChange:e=>l(c,e.target.value),onKeyDown:r=>((r,a)=>{if("Backspace"===a.key){a.preventDefault();const e=[...s];s[r]?(e[r]="",i(e.join(""))):r>0&&(e[r-1]="",i(e.join("")),n.current[r-1]?.focus())}"ArrowLeft"===a.key&&r>0&&n.current[r-1]?.focus(),"ArrowRight"===a.key&&r<e-1&&n.current[r+1]?.focus()})(c,r),"aria-label":`Digit ${c+1}`},c))})},Le=()=>{const a=i(),o=t(),{refreshSession:n}=d(),s="login"===o.state?.flow,[l,c]=h(""),[m,u]=h(null),[g,p]=h(""),[v,b]=h(!1),[y,k]=h(""),[x,w]=h(300),N=_(),P=async()=>{if(b(!0),!m){const{error:e}=s?await N.verifyLoginPhoneOtp(l):await N.verifyPhoneOtp(l);if(e)p("Verification failed.");else{if(s)return await n(),void a("/");u(!0)}}b(!1)},C=async()=>{k(""),await(async()=>{p("");const{error:e}=s?await N.requestLoginPhoneOtp():await N.requestPhoneOtp();e?p("Failed to send SMS code. If this persists, refresh the page and try again."):k("Verification SMS has been resent.")})(),k("Verification SMS has been resent.")};return f(()=>{const e=setInterval(()=>{w(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),f(()=>{m&&!s&&(async()=>{const{error:e}=await N.requestEmailOtp();e?p("Failed to send Email code. If this persists, refresh the page and try registering again."):a(T)})()},[m,s,a,N]),r("div",{className:ke,children:e("div",{className:xe,children:[r("h2",{className:we,children:"Verify Your Phone Number"}),r("p",{className:Ne,children:"Enter the code sent to your phone number."}),g&&r("p",{className:Pe,children:g}),y&&r("p",{className:Ce,children:y}),e("form",{onSubmit:async e=>{if(e.preventDefault(),p(""),6===l.length){b(!0);try{await P()}catch{p("Unexpected error occurred.")}finally{b(!1)}}else p("Please enter a valid code.")},className:Te,children:[e("div",{children:[e("label",{htmlFor:"phoneCode",className:Ie,children:["Phone Verification Code ",(M=m,!0===M?r("span",{className:"text-green-400 ml-2",children:"✅"}):!1===M?r("span",{className:"text-red-400 ml-2",children:"❌"}):null)," -"," ",e("span",{className:Me,children:["Code expires in: ",(I=x,`${Math.floor(I/60).toString().padStart(2,"0")}:${(I%60).toString().padStart(2,"0")}`)]})]}),r(qe,{length:6,value:l,onChange:c}),r("button",{type:"button",onClick:()=>C(),className:Oe,children:"Resend code to phone"})]}),r("button",{type:"submit",className:Se,children:v?"Verifying...":"Verify & Continue"}),r("button",{type:"button",onClick:()=>a("/login"),className:ze,children:"Back to login"})]})]})});var I,M},Ee=()=>{const a=i(),o=t(),{refreshSession:n}=d(),s=_(),{passkeySupported:l}=m(),c="login"===o.state?.flow,[u,g]=h(!1),[p,v]=h(""),[b,y]=h(300),[k,x]=h(""),[w,N]=h("");return f(()=>{const e=setInterval(()=>{y(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]),r("div",{className:ke,children:e("div",{className:xe,children:[r("h2",{className:we,children:"Verify Your Email"}),r("p",{className:Ne,children:"We sent you a verification email. Enter the code below."}),k&&r("p",{className:Pe,children:k}),w&&r("p",{className:Ce,children:w}),e("form",{onSubmit:async e=>{if(e.preventDefault(),x(""),6===p.length){g(!0);try{const{error:e}=c?await s.verifyLoginEmailOtp(p):await s.verifyEmailOtp(p);if(e)return void x("Verification failed.");if(c)return await n(),void a("/");l?a(O):(await n(),a("/"))}catch{console.error("Email OTP verification failed."),x("Verification failed.")}finally{g(!1)}}else x("Please enter a valid code.")},className:Te,children:[e("div",{children:[e("label",{htmlFor:"emailCode",className:Ie,children:["Email Verification Code",e("span",{className:Me,children:[" ","— Code expires in ",(P=b,`${Math.floor(P/60).toString().padStart(2,"0")}:${(P%60).toString().padStart(2,"0")}`)]})]}),r(qe,{length:6,value:p,onChange:v,inputMode:"text"}),r("button",{type:"button",onClick:async()=>{x(""),N("");const{error:e}=c?await s.requestLoginEmailOtp():await s.requestEmailOtp();e?x("Failed to send Email code. If this persists, refresh the page and try again."):N("Verification email has been resent.")},className:Oe,children:"Resend code to email"})]}),r("button",{type:"submit",className:Se,disabled:u,children:u?"Verifying...":"Verify & Continue"}),r("button",{type:"button",onClick:()=>a("/login"),className:ze,children:"Back to login"})]})]})});var P};var Fe={container:"verifyMagiclink-module__container___qrSXf",card:"verifyMagiclink-module__card___niKgr",title:"verifyMagiclink-module__title___SumxD",verificationContent:"verifyMagiclink-module__verificationContent___NdsS0",spinner:"verifyMagiclink-module__spinner___lnW1k",successIcon:"verifyMagiclink-module__successIcon___XjFEM",checkIcon:"verifyMagiclink-module__checkIcon___I0JOP",successText:"verifyMagiclink-module__successText___lO5Qq"};z(".verifyMagiclink-module__container___qrSXf{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center;padding:1rem}.verifyMagiclink-module__card___niKgr{background-color:var(--seamless-surface,#1f2937);border-radius:.5rem;box-shadow:0 0 10px var(--seamless-shadow,rgba(0,0,0,.3));max-width:28rem;padding:1.5rem;width:100%}.verifyMagiclink-module__title___SumxD{color:var(--seamless-text,#fff);font-size:1.5rem;font-weight:700;margin-bottom:1rem;text-align:center}.verifyMagiclink-module__verificationContent___NdsS0{align-items:center;display:flex;flex-direction:column;gap:14px;margin:20px 0}.verifyMagiclink-module__spinner___lnW1k{animation:verifyMagiclink-module__spin___2lGzj .9s linear infinite;border:3px solid var(--seamless-border,hsla(0,0%,100%,.15));border-radius:50%;border-top-color:var(--seamless-accent,#60a5fa);height:28px;width:28px}.verifyMagiclink-module__successIcon___XjFEM{align-items:center;background:rgba(16,185,129,.15);border-radius:50%;display:flex;height:36px;justify-content:center;width:36px}.verifyMagiclink-module__checkIcon___I0JOP{animation:verifyMagiclink-module__checkPop___-3qJu .25s ease-out;color:var(--seamless-success,#34d399);height:22px;width:22px}.verifyMagiclink-module__successText___lO5Qq{color:var(--seamless-success,#34d399);font-size:.9rem}@keyframes verifyMagiclink-module__checkPop___-3qJu{0%{opacity:0;transform:scale(.6)}80%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes verifyMagiclink-module__spin___2lGzj{to{transform:rotate(1turn)}}");const je=()=>{const[a]=n(),o=i(),t=a.get("token"),[s,l]=h(""),[c,m]=h(null),u=_(),{refreshSession:g}=d(),p=v(null);return f(()=>{let e=!0,r=null;return(async()=>{if(!t)return e&&l("Missing token for verification."),void console.error("No magic-link token found.");p.current?.token!==t&&(p.current={token:t,result:u.verifyMagicLink(t)});const{error:a}=await p.current.result;if(!e)return;if(a)return console.error("Failed to verify token"),void l("Failed to verify token");const i=new BroadcastChannel("seamless-auth");i.postMessage({type:"MAGIC_LINK_AUTH_SUCCESS"}),i.close();let n=await g({background:!0});n.error&&(await u.checkMagicLink(),n=await g({background:!0})),e&&(n.error?m("elsewhere"):(m("signed-in"),r=setTimeout(()=>{e&&o("/")},900)))})(),()=>{e=!1,r&&clearTimeout(r)}},[t,u,o,g]),r("div",{className:Fe.container,children:e("div",{className:Fe.card,children:[r("h1",{className:Fe.title,children:"Verifying your login"}),e("div",{className:Fe.verificationContent,children:[!c&&!s&&r("div",{className:Fe.spinner}),c&&r("div",{className:Fe.successIcon,children:r("svg",{viewBox:"0 0 24 24",className:Fe.checkIcon,fill:"none",stroke:"currentColor",strokeWidth:"2",children:r("path",{d:"M5 13l4 4L19 7"})})}),!c&&!s&&r("p",{className:Fe.helperText,children:"Please wait while we securely verify your sign-in link."}),"signed-in"===c&&r("p",{className:Fe.successText,children:"Login verified. Redirecting…"}),"elsewhere"===c&&r("p",{className:Fe.successText,children:"Login verified. Return to the device where you requested this link to continue."}),s&&r("p",{className:Fe.error,children:s})]})]})})};const Re={oauth_missing_email:"Your provider account did not share an email address. Add an email to that account and make it visible, then try again.",oauth_email_not_verified:"The email address on your provider account is not verified. Verify it with your provider, then try again.",oauth_missing_subject:"Your provider did not return a usable account identifier. Try again, or sign in with a different method.",oauth_invalid_id_token:"Your provider sent a sign-in response that could not be verified. Try again, or sign in with a different method.",oauth_provider_retired:"Your organization no longer signs in with this provider. Sign in with your passkey or another method instead."},De=()=>{const{finishOAuthLogin:o}=d(),t=i(),[s]=n(),[l,c]=h(""),_=v(!1);return f(()=>{if(_.current)return;_.current=!0;const e=s.get("code"),r=s.get("state"),a=sessionStorage.getItem(re);e&&r&&a?o({providerId:a,code:e,state:r}).then(({data:e,error:r})=>{if(r){const e=w(r);return void c(e?Re[e]:"We could not complete sign-in. Please try again.")}sessionStorage.removeItem(re);const a=function(e){if(!e)return null;try{const r=new URL(e,window.location.origin);return r.origin!==window.location.origin?null:`${r.pathname}${r.search}${r.hash}`}catch{return null}}(e?.returnTo)??"/";"enroll_passkey"!==e?.nextStep?t(a):t(O,{state:{returnTo:a}})}):c("This sign-in link is missing required information.")},[o,t,s]),e("div",{className:Fe.container,children:[r("h2",{className:Fe.title,children:l?"Sign-in failed":"Completing sign-in..."}),l&&e(a,{children:[r("p",{children:l}),r("button",{type:"button",onClick:()=>t("/login"),children:"Back to login"})]})]})};var Ve="magiclink-module__container___45zcA",Ge="magiclink-module__card___Au9oN",We="magiclink-module__iconWrapper___k5ndr",Ue="magiclink-module__mailIcon___Pwb7q",Ke="magiclink-module__iconRing___bdLvf",Ye="magiclink-module__heading___b9cre",$e="magiclink-module__message___kiVFj",He="magiclink-module__identifier___JtcFM",Je="magiclink-module__helperText___7Mlfh",Ze="magiclink-module__actions___64I-3",Qe="magiclink-module__secondaryButton___BntAI",Xe="magiclink-module__cooldown___Ib4rm",er="magiclink-module__linkButton___maJiv";z(".magiclink-module__container___45zcA{align-items:center;color:var(--seamless-text,#fff);display:flex;justify-content:center}.magiclink-module__card___Au9oN{background-color:var(--seamless-surface,#1f2937);border-radius:.75rem;box-shadow:0 10px 25px var(--seamless-shadow,rgba(0,0,0,.25));max-width:420px;padding:2.5rem 2rem;text-align:center;width:100%}.magiclink-module__iconWrapper___k5ndr{display:flex;justify-content:center;margin-bottom:1.25rem;position:relative}.magiclink-module__mailIcon___Pwb7q{color:var(--seamless-accent-soft,#a5b4fc);height:38px;width:38px;z-index:2}.magiclink-module__iconRing___bdLvf{animation:magiclink-module__pulse___YGm-I 2s infinite;background:rgba(99,102,241,.15);border-radius:50%;height:72px;position:absolute;width:72px}@keyframes magiclink-module__pulse___YGm-I{0%{opacity:.8;transform:scale(.6)}70%{opacity:0;transform:scale(1.4)}to{opacity:0}}.magiclink-module__heading___b9cre{font-size:1.55rem;font-weight:600;margin-bottom:.75rem}.magiclink-module__message___kiVFj{color:var(--seamless-text-muted,#d1d5db);font-size:.95rem;line-height:1.4;margin-bottom:1rem}.magiclink-module__identifier___JtcFM{background:var(--seamless-surface-raised,hsla(0,0%,100%,.05));border-radius:6px;display:inline-block;font-size:1rem;font-weight:600;margin-bottom:1rem;padding:.45rem .6rem}.magiclink-module__helperText___7Mlfh{color:var(--seamless-text-muted,#9ca3af);font-size:.85rem;line-height:1.4;margin-bottom:.6rem}.magiclink-module__actions___64I-3{display:flex;flex-direction:column;gap:.6rem;margin-top:1.6rem}.magiclink-module__secondaryButton___BntAI{background:var(--seamless-surface,#111827);border:1px solid var(--seamless-border,#374151);border-radius:8px;color:var(--seamless-text,#fff);cursor:pointer;font-weight:500;padding:.65rem}.magiclink-module__secondaryButton___BntAI:hover:not(:disabled){background:var(--seamless-surface-hover,#1f2937)}.magiclink-module__secondaryButton___BntAI:disabled{cursor:not-allowed;opacity:.5}.magiclink-module__cooldown___Ib4rm{color:var(--seamless-text-muted,#9ca3af);font-size:.8rem}.magiclink-module__linkButton___maJiv{background:none;border:none;color:var(--seamless-accent-soft,#a5b4fc);cursor:pointer;font-size:.85rem;margin-top:.4rem}.magiclink-module__linkButton___maJiv:hover{text-decoration:underline}");const rr=()=>{const{refreshSession:a}=d(),o=i(),n=t(),s=_(),l=n.state?.identifier,[c,m]=h(30);f(()=>{const e=setInterval(()=>{m(e=>e>0?e-1:0)},1e3);return()=>clearInterval(e)},[]);const u=b(async()=>{const{data:e,error:r}=await s.checkMagicLink();return!r&&"Success"===e?.message},[s]);return f(()=>{const e=new BroadcastChannel("seamless-auth");return e.onmessage=async e=>{"MAGIC_LINK_AUTH_SUCCESS"===e.data?.type&&await u()&&(await a(),o("/"))},()=>{e.close()}},[u,o,a]),f(()=>{const e=setInterval(async()=>{try{await u()&&(await a(),o("/"))}catch{}},5e3);return()=>clearInterval(e)},[u,a,o]),r("div",{className:Ve,children:e("div",{className:Ge,children:[e("div",{className:We,children:[r("div",{className:Ke}),e("svg",{className:Ue,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[r("path",{d:"M4 6h16v12H4z"}),r("path",{d:"m4 6 8 6 8-6"})]})]}),r("h2",{className:Ye,children:"Check your email"}),r("p",{className:$e,children:"If an account exists for this address, we sent a secure sign-in link."}),l&&r("div",{className:He,children:l}),r("p",{className:Je,children:"Open the email and click the link to finish signing in."}),r("p",{className:Je,children:"Didn’t receive anything? Check your spam folder or try creating a new account."}),e("div",{className:Ze,children:[r("button",{className:Qe,disabled:c>0,onClick:async()=>{c>0||(await s.requestMagicLink(),m(30))},children:"Resend link"}),c>0&&e("div",{className:Xe,children:["Available in ",c,"s"]}),r("button",{className:er,onClick:()=>o("/login"),children:"Change email or phone"})]})]})})},ar=()=>e(s,{children:[r(l,{path:N,element:r(oe,{})}),r(l,{path:P,element:r(te,{})}),r(l,{path:C,element:r(Le,{})}),r(l,{path:T,element:r(Ee,{})}),r(l,{path:I,element:r(je,{})}),r(l,{path:M,element:r(De,{})}),r(l,{path:O,element:r(ye,{})}),r(l,{path:S,element:r(rr,{})}),r(l,{path:"*",element:r(c,{to:N,replace:!0})})]});export{ar as AuthRoutes};
3
3
  //# sourceMappingURL=routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sources":["../src/authRoutePaths.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/utils.ts","../src/components/AuthFallbackOptions.tsx","../src/components/OAuthProviderButtons.tsx","../src/views/Login.tsx","../src/views/PassKeyLogin.tsx","../src/views/PassKeyRegistration.tsx","../src/components/OtpInput.tsx","../src/views/PhoneRegistration.tsx","../src/views/EmailRegistration.tsx","../src/views/VerifyMagicLink.tsx","../src/views/OAuthCallback.tsx","../src/components/MagicLinkSent.tsx","../src/AuthRoutes.tsx"],"sourcesContent":[null,"function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["authRoutePaths","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","isValidEmail","email","normalized","trim","length","parts","split","localPart","domainPart","test","startsWith","endsWith","includes","isValidPhoneNumber","phone","phoneNumber","parsePhoneNumberFromString","isValid","AuthFallbackOptions","identifier","onMagicLink","onEmailOtp","onPhoneOtp","onPasskeyRetry","loginMethods","allowedMethods","Set","showMagicLink","has","showEmailOtp","Boolean","showPhoneOtp","showPasskeyRetry","_jsxs","className","styles","children","_jsx","onClick","OAUTH_PROVIDER_STORAGE_KEY","OAuthProviderButtons","listOAuthProviders","startOAuthLogin","finishOAuthLogin","ports","useAuth","callbackHref","useHref","providers","setProviders","useState","error","setError","useEffect","active","then","data","map","provider","async","providerId","sessionStorage","setItem","redirectUri","URL","window","location","origin","toString","outcome","oauthRedirect","open","authorizationUrl","code","state","handleSelect","id","name","Login","navigate","useNavigate","hasSignedInBefore","login","handlePasskeyLogin","authClient","useAuthClient","passkeySupported","usePasskeySupport","configuredMethods","useLoginMethods","setIdentifier","setEmail","mode","setMode","formErrors","setFormErrors","emailError","setEmailError","identifierError","setIdentifierError","showFallbackOptions","setShowFallbackOptions","setLoginMethods","canSubmit","_Fragment","onSubmit","e","preventDefault","loginStart","availableMethods","FALLBACK_LOGIN_METHODS","passkeyError","register","message","console","htmlFor","value","onChange","target","autoComplete","placeholder","onBlur","required","requestMagicLink","requestLoginEmailOtp","flow","requestLoginPhoneOtp","undefined","disabled","role","PassKeyLogin","runPasskeyLogin","container","card","title","button","POLICY_REFUSAL_MESSAGES","attachment_not_allowed","synced_passkey_not_allowed","authenticator_not_allowed","prf_required","PasskeyRegistration","refreshSession","loading","passkeySupportLoading","loginMethodsLoading","destination","returnTo","destinationFrom","useLocation","status","setStatus","setMessage","canSkip","hasNonPasskeyLoginMethod","finishWithoutPasskey","registerPasskey","attachment","platform","browser","deviceInfo","ua","navigator","userAgent","toLowerCase","brave","parseUserAgent","metadata","friendlyName","getPasskeyPolicyErrorCode","policyRefusalMessage","isUnauthenticated","OtpInput","inputMode","inputs","useRef","values","concat","Array","fill","slice","handleChange","index","input","char","handleBulkInput","newValueArr","newValue","join","current","focus","cleaned","replace","chars","forEach","i","Math","min","onPaste","clipboardData","getData","el","maxLength","onKeyDown","key","handleKeyDown","PhoneRegistration","isLoginFlow","phoneOtp","setPhoneOtp","phoneVerified","setPhoneVerified","setLoading","resendMsg","setResendMsg","phoneTimeLeft","setPhoneTimeLeft","verifyPhoneOTP","verifyLoginPhoneOtp","verifyPhoneOtp","handleResend","requestPhoneOtp","onResendPhone","interval","setInterval","prev","clearInterval","requestEmailOtp","nextStep","verified","seconds","floor","padStart","EmailRegistration","emailOtp","setEmailOtp","emailTimeLeft","setEmailTimeLeft","verifyLoginEmailOtp","verifyEmailOtp","VerifyMagicLink","searchParams","useSearchParams","token","get","successMsg","setSuccessMsg","mounted","channel","redirectTimeout","verifyMagicLink","BroadcastChannel","postMessage","setTimeout","verify","close","clearTimeout","verificationContent","spinner","successIcon","viewBox","checkIcon","stroke","strokeWidth","d","helperText","successText","CODE_ERRORS","oauth_missing_email","oauth_email_not_verified","oauth_missing_subject","oauth_invalid_id_token","oauth_provider_retired","OAuthCallback","startedRef","getItem","finishError","getOAuthErrorCode","removeItem","pathname","search","hash","inAppPath","MagicLinkSent","cooldown","setCooldown","timer","c","magicLinkCompleted","useCallback","checkMagicLink","onmessage","event","AuthRoutes","Routes","Route","path","element","Navigate","to"],"mappings":"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","x_google_ignoreList":[1]}
1
+ {"version":3,"file":"routes.js","sources":["../src/authRoutePaths.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/utils.ts","../src/components/AuthFallbackOptions.tsx","../src/components/OAuthProviderButtons.tsx","../src/views/Login.tsx","../src/views/PassKeyLogin.tsx","../src/views/PassKeyRegistration.tsx","../src/components/OtpInput.tsx","../src/views/PhoneRegistration.tsx","../src/views/EmailRegistration.tsx","../src/views/VerifyMagicLink.tsx","../src/views/OAuthCallback.tsx","../src/components/MagicLinkSent.tsx","../src/AuthRoutes.tsx"],"sourcesContent":[null,"function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["authRoutePaths","styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","isValidEmail","email","normalized","trim","length","parts","split","localPart","domainPart","test","startsWith","endsWith","includes","isValidPhoneNumber","phone","phoneNumber","parsePhoneNumberFromString","isValid","AuthFallbackOptions","identifier","onMagicLink","onEmailOtp","onPhoneOtp","onPasskeyRetry","loginMethods","allowedMethods","Set","showMagicLink","has","showEmailOtp","Boolean","showPhoneOtp","showPasskeyRetry","_jsxs","className","styles","children","_jsx","onClick","OAUTH_PROVIDER_STORAGE_KEY","OAuthProviderButtons","listOAuthProviders","startOAuthLogin","finishOAuthLogin","ports","useAuth","callbackHref","useHref","providers","setProviders","useState","error","setError","useEffect","active","then","data","map","provider","async","providerId","sessionStorage","setItem","redirectUri","URL","window","location","origin","toString","outcome","oauthRedirect","open","authorizationUrl","code","state","handleSelect","id","name","Login","navigate","useNavigate","hasSignedInBefore","login","handlePasskeyLogin","authClient","useAuthClient","passkeySupported","usePasskeySupport","configuredMethods","useLoginMethods","setIdentifier","setEmail","mode","setMode","formErrors","setFormErrors","emailError","setEmailError","identifierError","setIdentifierError","showFallbackOptions","setShowFallbackOptions","setLoginMethods","canSubmit","_Fragment","onSubmit","e","preventDefault","loginStart","availableMethods","FALLBACK_LOGIN_METHODS","passkeyError","register","message","console","htmlFor","value","onChange","target","autoComplete","placeholder","onBlur","required","requestMagicLink","requestLoginEmailOtp","flow","requestLoginPhoneOtp","undefined","disabled","role","PassKeyLogin","runPasskeyLogin","container","card","title","button","POLICY_REFUSAL_MESSAGES","attachment_not_allowed","synced_passkey_not_allowed","authenticator_not_allowed","prf_required","PasskeyRegistration","refreshSession","loading","passkeySupportLoading","loginMethodsLoading","destination","returnTo","destinationFrom","useLocation","status","setStatus","setMessage","canSkip","hasNonPasskeyLoginMethod","finishWithoutPasskey","registerPasskey","attachment","platform","browser","deviceInfo","ua","navigator","userAgent","toLowerCase","brave","parseUserAgent","metadata","friendlyName","getPasskeyPolicyErrorCode","policyRefusalMessage","isUnauthenticated","OtpInput","inputMode","inputs","useRef","values","concat","Array","fill","slice","handleChange","index","input","char","handleBulkInput","newValueArr","newValue","join","current","focus","cleaned","replace","chars","forEach","i","Math","min","onPaste","clipboardData","getData","el","maxLength","onKeyDown","key","handleKeyDown","PhoneRegistration","isLoginFlow","phoneOtp","setPhoneOtp","phoneVerified","setPhoneVerified","setLoading","resendMsg","setResendMsg","phoneTimeLeft","setPhoneTimeLeft","verifyPhoneOTP","verifyLoginPhoneOtp","verifyPhoneOtp","handleResend","requestPhoneOtp","onResendPhone","interval","setInterval","prev","clearInterval","requestEmailOtp","nextStep","verified","seconds","floor","padStart","EmailRegistration","emailOtp","setEmailOtp","emailTimeLeft","setEmailTimeLeft","verifyLoginEmailOtp","verifyEmailOtp","VerifyMagicLink","searchParams","useSearchParams","token","get","setOutcome","verification","mounted","redirectTimeout","result","verifyMagicLink","channel","BroadcastChannel","postMessage","close","session","background","checkMagicLink","setTimeout","verify","clearTimeout","verificationContent","spinner","successIcon","viewBox","checkIcon","stroke","strokeWidth","d","helperText","successText","CODE_ERRORS","oauth_missing_email","oauth_email_not_verified","oauth_missing_subject","oauth_invalid_id_token","oauth_provider_retired","OAuthCallback","startedRef","getItem","finishError","getOAuthErrorCode","removeItem","pathname","search","hash","inAppPath","MagicLinkSent","cooldown","setCooldown","timer","c","magicLinkCompleted","useCallback","onmessage","event","AuthRoutes","Routes","Route","path","element","Navigate","to"],"mappings":";wfAiBO,MAAMA,EACJ,SADIA,EAEG,iBAFHA,EAGK,oBAHLA,EAIK,oBAJLA,EAKM,oBALNA,EAMI,kBANJA,EAOM,oBAPNA,EAQI,mBCzBjB,SAASC,EAAYC,EAAKC,YACnBA,IAAiBA,EAAM,CAAA,GAC5B,IAAIC,EAAWD,EAAIC,SAEnB,GAAKF,GAA2B,oBAAbG,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAME,KAAO,WAEI,QAAbN,GACEE,EAAKK,WACPL,EAAKM,aAAaJ,EAAOF,EAAKK,YAKhCL,EAAKO,YAAYL,GAGfA,EAAMM,WACRN,EAAMM,WAAWC,QAAUb,EAE3BM,EAAMK,YAAYR,SAASW,eAAed,GAnBW,CAqBzD,m5ICRO,MAAMe,EAAgBC,IAC3B,GAAqB,iBAAVA,EAAoB,OAAO,EAGtC,MAAMC,EAAaD,EAAME,OAGzB,GAAID,EAAWE,OAAS,GAAKF,EAAWE,OAAS,IAAK,OAAO,EAG7D,MAAMC,EAAQH,EAAWI,MAAM,KAC/B,GAAqB,IAAjBD,EAAMD,OAAc,OAAO,EAE/B,MAAOG,EAAWC,GAAcH,EAGhC,SACG,sBAAsBI,KAAKF,IAC5BA,EAAUG,WAAW,MACrBH,EAAUI,SAAS,MACnBJ,EAAUK,SAAS,WAOlB,iCAAiCH,KAAKD,IACvCA,EAAWE,WAAW,MACtBF,EAAWG,SAAS,MACpBH,EAAWE,WAAW,MACtBF,EAAWG,SAAS,MACpBH,EAAWI,SAAS,QAeXC,EAAsBC,IACjC,MAAMC,EAAcC,EAA2BF,GAC/C,OAAOC,GAAaE,YAAa,GC7CnC,MAAMC,GAA0D,EAC9DC,aACAC,cACAC,aACAC,aACAC,iBACAC,mBAKA,MAAMC,EAAiB,IAAIC,IACzBF,GAAgB,CAAC,UAAW,aAAc,cAEtCG,EAAgBF,EAAeG,IAAI,eAAiB5B,EAAamB,GACjEU,EACJJ,EAAeG,IAAI,cAAgBE,QAAQT,IAAerB,EAAamB,GACnEY,EAAeN,EAAeG,IAAI,cAAgBf,EAAmBM,GACrEa,EAAmBP,EAAeG,IAAI,YAAcE,QAAQP,GAElE,OAAKI,GAAkBE,GAAiBE,GAAiBC,EAKvDC,EAAA,MAAA,CAAKC,UAAWC,EAAmBC,SAAA,CACjCC,EAAA,MAAA,CAAKH,UAAWC,EAAqBC,SAAA,4BAErCC,EAAA,IAAA,CAAGH,UAAWC,EAA0BC,SAAA,0CAExCH,EAAA,MAAA,CAAKC,UAAWC,YACbR,GACCM,EAAA,SAAA,CACExC,KAAK,SACLyC,UAAWC,EACXG,QAASlB,EAAWgB,SAAA,CAEpBC,EAAA,OAAA,CAAMH,UAAWC,EAAkBC,SAAA,qBACnCC,EAAA,OAAA,CAAMH,UAAWC,EAAoBC,SAAA,gDAMxCP,GACCI,EAAA,SAAA,CACExC,KAAK,SACLyC,UAAWC,EACXG,QAASjB,EAAUe,SAAA,CAEnBC,EAAA,OAAA,CAAMH,UAAWC,EAAkBC,SAAA,eACnCC,EAAA,OAAA,CAAMH,UAAWC,EAAoBC,SAAA,wCAIxCL,GACCE,EAAA,SAAA,CACExC,KAAK,SACLyC,UAAWC,EACXG,QAAShB,EAAUc,SAAA,CAEnBC,EAAA,OAAA,CAAMH,UAAWC,EAAkBC,SAAA,sBACnCC,EAAA,OAAA,CAAMH,UAAWC,EAAoBC,SAAA,0CAK1CJ,GACCK,EAAA,SAAA,CAAQ5C,KAAK,SAASyC,UAAWC,EAAmBG,QAASf,qCA/C1D,MC7BEgB,GAA6B,0BAEpCC,GAAiC,KACrC,MAAMC,mBAAEA,EAAkBC,gBAAEA,EAAeC,iBAAEA,EAAgBC,MAAEA,GAAUC,IAGnEC,EAAeC,EAAQ,oBACtBC,EAAWC,GAAgBC,EAA0B,KACrDC,EAAOC,GAAYF,EAAS,IAcnC,GAZAG,EAAU,KACR,IAAIC,GAAS,EAMb,OAJKb,IAAqBc,KAAK,EAAGC,WAC5BF,GAAQL,EAAaO,GAAMR,WAAa,MAGvC,KACLM,GAAS,IAEV,CAACb,IAEqB,IAArBO,EAAU5C,OACZ,OAAO,KAmCT,OACE6B,EAAA,MAAA,CAAKC,UAAWC,EAAsBC,SAAA,CACnCY,EAAUS,IAAIC,GACbrB,EAAA,SAAA,CAEE5C,KAAK,SACLyC,UAAWC,EACXG,QAAS,IAvCIqB,OAAOC,IAC1BR,EAAS,IAGTS,eAAeC,QAAQvB,GAA4BqB,GAEnD,MAAMG,EAAc,IAAIC,IAAIlB,EAAcmB,OAAOC,SAASC,QAAQC,YAC5DZ,KAAEA,EAAIL,MAAEA,SAAgBT,EAAgB,CAAEkB,aAAYG,gBAE5D,GAAIZ,EAEF,YADAC,EAAS,+CAOX,MAAMiB,QAAgBzB,EAAM0B,cAAcC,KAAKf,EAAKgB,iBAAkBT,GAEjD,aAAjBM,EAAQ5E,aACakD,EAAiB,CACtCiB,aACAa,KAAMJ,EAAQI,KACdC,MAAOL,EAAQK,SAGJvB,OACXC,EAAS,iDAYQuB,CAAajB,EAASkB,IAAGxC,SAExCH,EAAA,OAAA,CAAMC,UAAWC,EAAkBC,SAAA,CAAA,iBAAiBsB,EAASmB,SALxDnB,EAASkB,KASjBzB,GAASd,OAAGH,UAAWC,EAAYC,SAAGe,QCjEvC2B,GAAkB,KACtB,MAAMC,EAAWC,KACXC,kBAAEA,EAAiBC,MAAEA,EAAKC,mBAAEA,GAAuBtC,IACnDuC,EAAaC,KACbC,iBAAEA,GAAqBC,KACrB/D,aAAcgE,GAAsBC,KACrCtE,EAAYuE,GAAiBxC,EAAiB,KAC9CjD,EAAO0F,GAAYzC,EAAiB,KACpC0C,EAAMC,GAAW3C,EAA+B,aAChD4C,EAAYC,GAAiB7C,EAAiB,KAC9C8C,EAAYC,GAAiB/C,EAAiB,KAC9CgD,EAAiBC,GAAsBjD,EAAiB,KACxDkD,EAAqBC,GAA0BnD,GAAS,IACxD1B,EAAc8E,GAAmBpD,EAA+B,MAEvEG,EAAU,KACJ4B,GACFY,EAAQ,UAET,CAACZ,IAEJ,MAUMsB,EAAY,IACH,UAATX,EACK5F,EAAamB,IAAeN,EAAmBM,GAIjDnB,EAAaC,GAgItB,OACEoC,SAAKH,UAAWC,WACdF,EAAA,MAAA,CAAKC,UAAWC,EAAWC,SAAA,CACzBC,EAAA,KAAA,CAAIH,UAAWC,EAAcC,SACjB,UAATwD,EAAmB,UAAY,mBAGlC3D,EAAAuE,EAAA,CAAApE,SAAA,CACEH,UAAMwE,SA5DO9C,MAAO+C,IAC1BA,EAAEC,iBACFZ,EAAc,IACdM,GAAuB,GAEvB,IACE,GAAa,UAATT,EAAkB,CACpB,MAAQpC,KAAMoD,EAAUzD,MAAEA,SAAgB+B,EAAM/D,EAAYmE,GAE5D,GAAInC,EAEF,YADA4C,EAAc,8CAOhB,MAAMc,EAAmBD,GAAYpF,cAAcpB,OAC/CwG,EAAWpF,aACVgE,GAAqBsB,EAG1B,GAFAR,EAAgBO,GAEZvB,GAAoBuB,EAAiBjG,SAAS,WAAY,CAC5D,MAAQuC,MAAO4D,SAAuB5B,IAEtC,OAAK4B,GAKLV,GAAuB,QACvBN,EACE,gFANAhB,EAAS,IASb,CAGA,YADAsB,GAAuB,EAEzB,CAEa,aAATT,QAhGSjC,WACfoC,EAAc,IAEd,MAAMvC,KAAEA,EAAIL,MAAEA,SAAgBiC,EAAW4B,SAAS,CAChD/G,UAGEkD,EACF4C,EAAc,yCAIK,YAAjBvC,EAAKyD,QAOTlC,EAAShG,GANPgH,EACE,uFAmFMiB,EAEV,CAAE,MAGAE,QAAQ/D,MAAM,+BACd4C,EAAc,gDAChB,GAWkC3D,SAAA,CAChB,UAATwD,GACC3D,EAAA,MAAA,CAAKC,UAAWC,YACdE,EAAA,QAAA,CAAO8E,QAAQ,aAAajF,UAAWC,EAAYC,SAAA,iCAGnDC,WACEuC,GAAG,aACHnF,KAAK,OACL2H,MAAOjG,EACPkG,SA7JgBX,IAC9B,MAAMU,EAAQV,EAAEY,OAAOF,MACvB1B,EAAc0B,IA4JAG,aAAa,MACbC,YAAY,wBACZtF,UAAWC,EACXsF,OAAQ,KACN,GAAItG,EAAY,CACd,MAAMF,EACJjB,EAAamB,IAAeN,EAAmBM,GACjDgF,EACElF,EAAU,GAAK,6CAEnB,GAEFyG,UAAQ,IAEVrF,EAAA,IAAA,CAAGH,UAAWC,EAAiBC,SAAA,sDAG9BgE,GACC/D,EAACnB,GAAmB,CAClBC,WAAYA,EACZC,YA5HIuC,UACpB,MAAMR,MAAEA,SAAgBiC,EAAWuC,mBAE/BxE,EACF4C,EAAc,8BAIhBhB,EAAShG,EAA8B,CAAE2F,MAAO,CAAEvD,iBAqHlCE,WAvGGsC,UACnB,MAAMR,MAAEA,SAAgBiC,EAAWwC,uBAE/BzE,EACF4C,EAAc,8BAIhBhB,EAAShG,EAA+B,CAAE2F,MAAO,CAAEmD,KAAM,YAgGzCvG,WAnHGqC,UACnB,MAAMR,MAAEA,SAAgBiC,EAAW0C,uBAE/B3E,EACF4C,EAAc,uBAIhBhB,EAAShG,EAA+B,CAAE2F,MAAO,CAAEmD,KAAM,YA4GzCtG,eAAgB+D,EAAmBH,OAAqB4C,EACxDvG,aAAcA,IAIjB0E,GAAmB7D,EAAA,IAAA,CAAGH,UAAWC,WAAe+D,OAG3C,aAATN,GACC3D,EAAA,MAAA,CAAKC,UAAWC,EAAiBC,SAAA,CAC/BC,EAAA,QAAA,CAAO8E,QAAQ,QAAQjF,UAAWC,EAAYC,SAAA,kBAG9CC,EAAA,QAAA,CACEuC,GAAG,QACHnF,KAAK,QACL2H,MAAOnH,EACPoH,SA3MWX,IACzB,MAAMzG,EAAQyG,EAAEY,OAAOF,MACvBzB,EAAS1F,IA0MKsH,aAAa,MACbrF,UAAWC,EACXsF,OAAQ,KACN,GAAIxH,EAAO,CACT,MAAMgB,EAAUjB,EAAaC,GAC7BgG,EAAchF,EAAU,GAAK,6BAC/B,GAEFyG,UAAQ,IAET1B,GAAc3D,EAAA,IAAA,CAAGH,UAAWC,WAAe6D,OAGhD3D,EAAA,SAAA,CACE5C,KAAK,SACLyC,UAAWC,EACX6F,UAAWzB,IAAW,mBACL,uBAAsBnE,SAE7B,UAATwD,EAAmB,QAAU,aAEhCvD,EAAA,IAAA,CAAGuC,GAAG,uBAAuBqD,KAAK,SAAS/F,UAAWC,WA3MjD,UAATyD,EACGzE,EAEEoF,IACH,qBACA,gEAJoB,gDAOrBtG,EAEEsG,IACH,qBACA,wDAJe,0CAsMVT,GAAczD,OAAGH,UAAWC,EAAYC,SAAG0D,IAC5CzD,EAAA,SAAA,CACE5C,KAAK,SACL6C,QAAS,IAAMuD,EAAiB,UAATD,EAAmB,WAAa,SACvD1D,UAAWC,EAAaC,SAEd,UAATwD,EACG,oCACA,wCAIRvD,EAACG,GAAoB,CAAA,suCC5Q/B,MAAM0F,GAAyB,KAC7B,MAAMnD,EAAWC,KACTG,mBAAoBgD,GAAoBtF,KACzCM,EAAOC,GAAYF,EAAS,IAenC,OACEb,SAAKH,UAAWC,GAAOiG,UAAShG,SAC9BH,EAAA,MAAA,CAAKC,UAAWC,GAAOkG,eACrBhG,EAAA,KAAA,CAAIH,UAAWC,GAAOmG,MAAKlG,SAAA,uBAC3BC,EAAA,SAAA,CAAQC,QAjBkBqB,UAC9BP,EAAS,IAET,MAAQD,MAAO4D,SAAuBoB,IAEjCpB,EAKL3D,EAAS,uEAJP2B,EAAS,MAWmC7C,UAAWC,GAAOoG,OAAMnG,SAAA,gBAGjEe,GAASd,OAAGH,UAAWC,GAAOgB,MAAKf,SAAGe,2zGCf/C,MAAMqF,GAAkE,CACtEC,uBACE,qFACFC,2BACE,qIACFC,0BAA2B,uDAC3BC,aACE,4EA0BJ,MAAMC,GAAgC,KACpC,MAAMC,eAAEA,GAAmBjG,IACrBuC,EAAaC,KACbC,iBAAEA,EAAkByD,QAASC,GAA0BzD,KACvD/D,aAAEA,EAAcuH,QAASE,GAAwBxD,IACjDV,EAAWC,IACXkE,EAjBR,SAAyBxE,GACvB,MAAMyE,EAAYzE,GAAyCyE,SAE3D,MAA2B,iBAAbA,IACZA,EAASzI,WAAW,MACnByI,EAASzI,WAAW,OACpByI,EAASzI,WAAW,OAEnB,IADAyI,CAEN,CAQsBC,CAAgBC,IAAc3E,QAE3C4E,EAAQC,GAAarG,EAAmD,SACxE+D,EAASuC,GAActG,EAAS,IASjCuG,EAAUC,EAAyBlI,GAEnCmI,EAAuBhG,gBACrBmF,IACN/D,EAASmE,IAGLU,EAAkBjG,MAAOkG,IAC7B,MAAMC,SAAEA,EAAQC,QAAEA,EAAOC,WAAEA,cLD7B,MAAMC,EAAKC,UAAUC,UAAUC,cAE/B,IAAIN,EAAW,UACXC,EAAU,UAuBd,MArBI,mBAAmBtJ,KAAKwJ,GAAKH,EAAW,MACnC,UAAUrJ,KAAKwJ,GAAKH,EAAW,UAC/B,SAASrJ,KAAKwJ,GAAKH,EAAW,MAC9B,UAAUrJ,KAAKwJ,GAAKH,EAAW,UAC/B,QAAQrJ,KAAKwJ,KAAKH,EAAW,SAMjCI,UAAiCG,MAAON,EAAU,QAC9C,eAAetJ,KAAKwJ,GAAKF,EAAU,OACnC,oBAAoBtJ,KAAKwJ,GAAKF,EAAU,QACxC,UAAUtJ,KAAKwJ,GAAKF,EAAU,UAC9B,iBAAiBtJ,KAAKwJ,GAAKF,EAAU,UACrC,gBAAgBtJ,KAAKwJ,GAAKF,EAAU,UACpC,eAAetJ,KAAKwJ,GAAKF,EAAU,SACnC,SAAStJ,KAAKwJ,KAAKF,EAAU,UAI/B,CAAED,WAAUC,UAASC,WAFT,GAAGF,OAAcC,IAGtC,CK1B8CO,GAEpCC,EAA4B,CAIhCC,aAAcR,EACdF,WACAC,UACAC,cAGFT,EAAU,WAEV,IACE,MAAMpG,MAAEA,SAAgBiC,EAAWwE,gBAAgB,CAAEW,WAAUV,eAE/D,GAAI1G,EACF,MAAMA,QAGF2F,IACNS,EAAU,WACVC,EAAW,oCACXzE,EAASmE,EACX,CAAE,MAAO/F,GACP+D,QAAQ/D,MAAM,gCACdoG,EAAU,SAMVC,EAlFN,SAA8BrG,GAC5B,MAAMsB,EAAOgG,EAA0BtH,GAEvC,OAAOsB,EAAO+D,GAAwB/D,QAAQsD,CAChD,CA+EQ2C,CAAqBvH,KAClBwH,EAAkBxH,GACf,+EACA,8BAEV,GAGF,OACEd,SAAKH,UAAWC,YACdE,EAAA,MAAA,CAAKH,UAAWC,GAAWC,SAEvBH,EAAA,MADD+G,GAAyBC,EACxB,CAAK/G,UAAWC,GAAcC,SAAA,CAC5BC,SAAKH,UAAWC,KAChBE,EAAA,OAAA,CAAAD,SAAA,sCAECkD,EAuBH,CAAKpD,UAAWC,GAAgBC,SAAA,CAC9BC,EAAA,KAAA,CAAIH,UAAWC,GAAYC,SAAA,uCAC3BC,EAAA,IAAA,CAAGH,UAAWC,GAAkBC,SAAA,2EAIhCC,EAAA,SAAA,CACEC,QAAS,IAAMsH,IACf5B,SAAqB,YAAXsB,EACVpH,UAAWC,GAAaC,SAEZ,YAAXkH,EAAuB,iBAAmB,qBAS7CjH,EAAA,SAAA,CACE5C,KAAK,SACL6C,QAAS,IAAMsH,EAAgB,kBAC/B5B,SAAqB,YAAXsB,EACVpH,UAAWC,2CAKZ8E,GACC5E,EAAA,IAAA,CACEH,UAAW,GAAGC,MACD,YAAXmH,EAAuBnH,GAAiBA,cAGzC8E,IAIJwC,GACCpH,YACE5C,KAAK,SACL6C,QAASqH,EACT3B,SAAqB,YAAXsB,EACVpH,UAAWC,+BA/DjB,CAAKD,UAAWC,GAAgBC,SAAA,CAC9BC,EAAA,KAAA,CAAIH,UAAWC,GAAYC,SAAA,oCAC3BC,EAAA,IAAA,CAAGH,UAAWC,GAAkBC,SAC7BqH,EACG,uHACA,gJAGLA,GACCpH,EAAA,SAAA,CACE5C,KAAK,SACL6C,QAASqH,EACTzH,UAAWC,GAAaC,SAAA,0wGClIxC,MAAMwI,GAA4B,EAChCxK,SAAS,EACTgH,QACAyD,YAAY,UACZxD,WACAxC,OAAO,UAEP,MAAMiG,EAASC,EAAuC,IAEhDC,EAAS5D,EAAM9G,MAAM,IAAI2K,OAAOC,MAAM9K,GAAQ+K,KAAK,KAAKC,MAAM,EAAGhL,GAOjEiL,EAAe,CAACC,EAAeC,KALjB,IAACC,EAMnB,GAAID,EAAMnL,OAAS,EACjBqL,EAAgBH,EAAOC,QAIzB,IAAKA,IAXcC,EAWOD,EAVR,YAAdV,EAAgC,OAAOpK,KAAK+K,GACzC,aAAa/K,KAAK+K,IASS,CAChC,MAAME,EAAc,IAAIV,GACxBU,EAAYJ,GAASC,EAErB,MAAMI,EAAWD,EAAYE,KAAK,IAClCvE,EAASsE,GAELJ,GAAST,EAAOe,QAAQP,EAAQ,IAClCR,EAAOe,QAAQP,EAAQ,IAAIQ,OAE/B,GAGIL,EAAkB,CAACH,EAAeC,KACtC,IAAIQ,EAAUR,EAGZQ,EADgB,YAAdlB,EACQU,EAAMS,QAAQ,MAAO,IAErBT,EAAMS,QAAQ,aAAc,IAGxC,MAAMC,EAAQF,EAAQX,MAAM,EAAGhL,GAAQE,MAAM,IAEvCoL,EAAc,IAAIV,GAExBiB,EAAMC,QAAQ,CAACV,EAAMW,KACfb,EAAQa,EAAI/L,IACdsL,EAAYJ,EAAQa,GAAKX,KAI7BnE,EAASqE,EAAYE,KAAK,KAC1Bd,EAAOe,QAAQO,KAAKC,IAAIf,EAAQW,EAAM7L,OAAQA,EAAS,KAAK0L,SAiC9D,OACEzJ,EAAA,MAAA,CACEH,UAAWC,GACX8F,KAAK,QAAO,aACD,0BACXqE,QAViB5F,IACnBA,EAAEC,iBACF8E,EAAgB,EAAG/E,EAAE6F,cAAcC,QAAQ,UAQrBpK,SAEnB4I,EAAOvH,IAAI,CAAC+H,EAAMW,IACjB9J,EAAA,QAAA,CAEEnD,IAAKuN,GAAO3B,EAAOe,QAAQM,GAAKM,EAChChN,KAAK,OACLoL,UAAyB,YAAdA,EAA0B,UAAY,OACjDtD,aAAa,gBACb1C,KAAM,GAAGA,KAAQsH,IACjBO,UAAW,EACXtF,MAAOoE,EACPtJ,UAAWC,GACXkF,SAAUX,GAAK2E,EAAac,EAAGzF,EAAEY,OAAOF,OACxCuF,UAAWjG,GAjDG,EAAC4E,EAAe5E,KACpC,GAAc,cAAVA,EAAEkG,IAAqB,CACzBlG,EAAEC,iBAEF,MAAM+E,EAAc,IAAIV,GAEpBA,EAAOM,IACTI,EAAYJ,GAAS,GACrBjE,EAASqE,EAAYE,KAAK,MACjBN,EAAQ,IACjBI,EAAYJ,EAAQ,GAAK,GACzBjE,EAASqE,EAAYE,KAAK,KAC1Bd,EAAOe,QAAQP,EAAQ,IAAIQ,QAE/B,CAEc,cAAVpF,EAAEkG,KAAuBtB,EAAQ,GACnCR,EAAOe,QAAQP,EAAQ,IAAIQ,QAGf,eAAVpF,EAAEkG,KAAwBtB,EAAQlL,EAAS,GAC7C0K,EAAOe,QAAQP,EAAQ,IAAIQ,SA4BPe,CAAcV,EAAGzF,GAAE,aACvB,SAASyF,EAAI,KAXpBA,OCnGTW,GAA8B,KAClC,MAAM/H,EAAWC,IACXd,EAAWmF,KACXP,eAAEA,GAAmBjG,IACrBkK,EAAqE,UAAtD7I,EAASQ,OAAoCmD,MAE3DmF,EAAUC,GAAe/J,EAAS,KAClCgK,EAAeC,GAAoBjK,EAAyB,OAC5DC,EAAOC,GAAYF,EAAS,KAC5B6F,EAASqE,GAAclK,GAAS,IAChCmK,EAAWC,GAAgBpK,EAAS,KACpCqK,EAAeC,GAAoBtK,EAAS,KAE7CkC,EAAaC,IAuBboI,EAAiB9J,UAGrB,GAFAyJ,GAAW,IAENF,EAAe,CAClB,MAAM/J,MAAEA,GAAU4J,QACR3H,EAAWsI,oBAAoBV,SAC/B5H,EAAWuI,eAAeX,GAEpC,GAAI7J,EACFC,EAAS,4BACJ,CACL,GAAI2J,EAGF,aAFMjE,SACN/D,EAAS,KAIXoI,GAAiB,EACnB,CACF,CAEAC,GAAW,IAmBPQ,EAAejK,UACnB2J,EAAa,SAjBO3J,WACpBP,EAAS,IACT,MAAMD,MAAEA,GAAU4J,QACR3H,EAAW0C,6BACX1C,EAAWyI,kBAEjB1K,EACFC,EACE,8EAIFkK,EAAa,sCAMTQ,GACNR,EAAa,sCA2Cf,OA1BAjK,EAAU,KACR,MAAM0K,EAAWC,YAAY,KAC3BR,EAAiBS,GAASA,EAAO,EAAIA,EAAO,EAAI,IAC/C,KAEH,MAAO,IAAMC,cAAcH,IAC1B,IAEH1K,EAAU,KAaJ6J,IAAkBH,GAZLpJ,WACf,MAAMR,MAAEA,SAAgBiC,EAAW+I,kBAE/BhL,EACFC,EACE,4FAIF2B,EAAShG,IAIXqP,IAED,CAAClB,EAAeH,EAAahI,EAAUK,IAGxC/C,EAAA,MAAA,CAAKH,UAAWC,GAAgBC,SAC9BH,EAAA,MAAA,CAAKC,UAAWC,GAAWC,SAAA,CACzBC,QAAIH,UAAWC,GAAYC,SAAA,6BAC3BC,OAAGH,UAAWC,0DAEbgB,GAASd,EAAA,IAAA,CAAGH,UAAWC,GAAYC,SAAGe,IACtCkK,GAAahL,EAAA,IAAA,CAAGH,UAAWC,GAAcC,SAAGiL,IAE7CpL,UAAMwE,SApHS9C,MAAO+C,IAI1B,GAHAA,EAAEC,iBACFvD,EAAS,IAEe,IAApB4J,EAAS5M,OAAb,CAKAgN,GAAW,GACX,UACQK,GACR,CAAE,MAGArK,EAAS,6BACX,SACEgK,GAAW,EACb,CAXA,MAFEhK,EAAS,+BA+GuBlB,UAAWC,GAAWC,SAAA,CAClDH,EAAA,MAAA,CAAAG,SAAA,CACEH,WAAOkF,QAAQ,YAAYjF,UAAWC,GAAYC,SAAA,CAAA,4BAnDrCiM,EAoD4BnB,GAnDhC,IAAbmB,EAA0BhM,EAAA,OAAA,CAAMH,UAAU,sCAC7B,IAAbmM,EAA2BhM,EAAA,OAAA,CAAMH,UAAU,mCACxC,WAiD4D,IACzDD,UAAMC,UAAWC,GAAYC,SAAA,CAAA,qBA/CrBkM,EAgDuBf,EA3ClC,GAJGnB,KAAKmC,MAAMD,EAAU,IAC5BlK,WACAoK,SAAS,EAAG,SACJF,EAAU,IAAIlK,WAAWoK,SAAS,EAAG,cA+CxCnM,EAACuI,GAAQ,CAACxK,OAAQ,EAAGgH,MAAO4F,EAAU3F,SAAU4F,IAChD5K,EAAA,SAAA,CACE5C,KAAK,SACL6C,QAAS,IAAMsL,IACf1L,UAAWC,GAAaC,SAAA,4BAM5BC,EAAA,SAAA,CAAQ5C,KAAK,SAASyC,UAAWC,YAC9B4G,EAAU,eAAiB,sBAG9B1G,YACE5C,KAAK,SACL6C,QAAS,IAAMyC,EAAS,UACxB7C,UAAWC,GAAaC,SAAA,0BApEf,IAACkM,EANGD,GCjFnBI,GAA8B,KAClC,MAAM1J,EAAWC,IACXd,EAAWmF,KACXP,eAAEA,GAAmBjG,IACrBuC,EAAaC,KACbC,iBAAEA,GAAqBC,IACvBwH,EAAqE,UAAtD7I,EAASQ,OAAoCmD,MAE3DkB,EAASqE,GAAclK,GAAS,IAChCwL,EAAUC,GAAezL,EAAS,KAClC0L,EAAeC,GAAoB3L,EAAS,MAC5CC,EAAOC,GAAYF,EAAS,KAC5BmK,EAAWC,GAAgBpK,EAAS,IA8E3C,OAPAG,EAAU,KACR,MAAM0K,EAAWC,YAAY,KAC3Ba,EAAiBZ,GAASA,EAAO,EAAIA,EAAO,EAAI,IAC/C,KAEH,MAAO,IAAMC,cAAcH,IAC1B,IAED1L,EAAA,MAAA,CAAKH,UAAWC,GAAgBC,SAC9BH,EAAA,MAAA,CAAKC,UAAWC,GAAWC,SAAA,CACzBC,QAAIH,UAAWC,GAAYC,SAAA,sBAE3BC,OAAGH,UAAWC,wEAIbgB,GAASd,EAAA,IAAA,CAAGH,UAAWC,GAAYC,SAAGe,IACtCkK,GAAahL,EAAA,IAAA,CAAGH,UAAWC,GAAcC,SAAGiL,IAE7CpL,UAAMwE,SAtES9C,MAAO+C,IAI1B,GAHAA,EAAEC,iBACFvD,EAAS,IAEe,IAApBsL,EAAStO,OAAb,CAKAgN,GAAW,GAEX,IACE,MAAMjK,MAAEA,GAAU4J,QACR3H,EAAW0J,oBAAoBJ,SAC/BtJ,EAAW2J,eAAeL,GAEpC,GAAIvL,EAEF,YADAC,EAAS,wBAIX,GAAI2J,EAGF,aAFMjE,SACN/D,EAAS,KAIPO,EACFP,EAAShG,UAEH+J,IACN/D,EAAS,KAEb,CAAE,MAGAmC,QAAQ/D,MAAM,kCACdC,EAAS,uBACX,SACEgK,GAAW,EACb,CAjCA,MAFEhK,EAAS,+BAiEuBlB,UAAWC,GAAWC,SAAA,CAClDH,EAAA,MAAA,CAAAG,SAAA,CACEH,WAAOkF,QAAQ,YAAYjF,UAAWC,GAAYC,SAAA,CAAA,0BAEhDH,EAAA,OAAA,CAAMC,UAAWC,GAAYC,SAAA,CAC1B,IAAG,sBAhCEkM,EAiCwBM,EA5BnC,GAJGxC,KAAKmC,MAAMD,EAAU,IAC5BlK,WACAoK,SAAS,EAAG,SACJF,EAAU,IAAIlK,WAAWoK,SAAS,EAAG,cAgCxCnM,EAACuI,IACCxK,OAAQ,EACRgH,MAAOsH,EACPrH,SAAUsH,EACV9D,UAAU,SAGZxI,EAAA,SAAA,CAAQ5C,KAAK,SAAS6C,QAxGVqB,UACpBP,EAAS,IACTkK,EAAa,IAEb,MAAMnK,MAAEA,GAAU4J,QACR3H,EAAWwC,6BACXxC,EAAW+I,kBAEjBhL,EACFC,EACE,gFAKJkK,EAAa,wCAyFyCpL,UAAWC,wCAK3DE,YAAQ5C,KAAK,SAASyC,UAAWC,GAAe6F,SAAUe,WACvDA,EAAU,eAAiB,sBAG9B1G,YACE5C,KAAK,SACL6C,QAAS,IAAMyC,EAAS,UACxB7C,UAAWC,GAAaC,SAAA,0BAvDf,IAACkM,28DClEtB,MAAMU,GAA4B,KAChC,MAAOC,GAAgBC,IACjBnK,EAAWC,IACXmK,EAAQF,EAAaG,IAAI,UAExBjM,EAAOC,GAAYF,EAAS,KAC5BmB,EAASgL,GAAcnM,EAA2C,MAEnEkC,EAAaC,KACbyD,eAAEA,GAAmBjG,IAKrByM,EAAevE,EAAuD,MA4E5E,OA1EA1H,EAAU,KACR,IAAIkM,GAAU,EACVC,EAAwD,KA+D5D,MA7De7L,WACb,IAAKwL,EAKH,OAJII,GACFnM,EAAS,wCAEX8D,QAAQ/D,MAAM,8BAIZmM,EAAazD,SAASsD,QAAUA,IAClCG,EAAazD,QAAU,CAAEsD,QAAOM,OAAQrK,EAAWsK,gBAAgBP,KAGrE,MAAMhM,MAAEA,SAAgBmM,EAAazD,QAAQ4D,OAE7C,IAAKF,EACH,OAGF,GAAIpM,EAGF,OAFA+D,QAAQ/D,MAAM,+BACdC,EAAS,0BAIX,MAAMuM,EAAU,IAAIC,iBAAiB,iBACrCD,EAAQE,YAAY,CAAEpQ,KAAM,4BAC5BkQ,EAAQG,QAMR,IAAIC,QAAgBjH,EAAe,CAAEkH,YAAY,IAE7CD,EAAQ5M,cACJiC,EAAW6K,iBACjBF,QAAgBjH,EAAe,CAAEkH,YAAY,KAG1CT,IAIDQ,EAAQ5M,MACVkM,EAAW,cAIbA,EAAW,aAEXG,EAAkBU,WAAW,KACtBX,GAILxK,EAAS,MACR,QAELoL,GAEO,KACLZ,GAAU,EAENC,GACFY,aAAaZ,KAGhB,CAACL,EAAO/J,EAAYL,EAAU+D,IAG/BzG,EAAA,MAAA,CAAKH,UAAWC,GAAOiG,UAAShG,SAC9BH,EAAA,MAAA,CAAKC,UAAWC,GAAOkG,KAAIjG,SAAA,CACzBC,EAAA,KAAA,CAAIH,UAAWC,GAAOmG,MAAKlG,SAAA,yBAE3BH,EAAA,MAAA,CAAKC,UAAWC,GAAOkO,oBAAmBjO,SAAA,EACtCiC,IAAYlB,GAASd,EAAA,MAAA,CAAKH,UAAWC,GAAOmO,UAE7CjM,GACChC,EAAA,MAAA,CAAKH,UAAWC,GAAOoO,YAAWnO,SAChCC,EAAA,MAAA,CACEmO,QAAQ,YACRtO,UAAWC,GAAOsO,UAClBtF,KAAK,OACLuF,OAAO,eACPC,YAAY,IAAGvO,SAEfC,EAAA,OAAA,CAAMuO,EAAE,wBAKZvM,IAAYlB,GACZd,EAAA,IAAA,CAAGH,UAAWC,GAAO0O,WAAUzO,SAAA,4DAKpB,cAAZiC,GACChC,EAAA,IAAA,CAAGH,UAAWC,GAAO2O,YAAW1O,SAAA,iCAGrB,cAAZiC,GACChC,EAAA,IAAA,CAAGH,UAAWC,GAAO2O,YAAW1O,SAAA,oFAMjCe,GAASd,EAAA,IAAA,CAAGH,UAAWC,GAAOgB,MAAKf,SAAGe,aCjHjD,MAAM4N,GAA8C,CAClDC,oBACE,0HACFC,yBACE,4GACFC,sBACE,2GACFC,uBACE,mHACFC,uBACE,iHAGEC,GAA0B,KAC9B,MAAM1O,iBAAEA,GAAqBE,IACvBkC,EAAWC,KACViK,GAAgBC,KAChB/L,EAAOC,GAAYF,EAAS,IAC7BoO,EAAavG,GAAO,GAoC1B,OAlCA1H,EAAU,KACR,GAAIiO,EAAWzF,QAAS,OACxByF,EAAWzF,SAAU,EAErB,MAAMpH,EAAOwK,EAAaG,IAAI,QACxB1K,EAAQuK,EAAaG,IAAI,SACzBxL,EAAaC,eAAe0N,QAAQhP,IAErCkC,GAASC,GAAUd,EAKnBjB,EAAiB,CAAEiB,aAAYa,OAAMC,UAASnB,KACjD,EAAGC,OAAML,MAAOqO,MACd,GAAIA,EAAa,CACf,MAAM/M,EAAOgN,EAAkBD,GAE/B,YADApO,EAASqB,EAAOsM,GAAYtM,GA/DhB,mDAiEd,CAEAZ,eAAe6N,WAAWnP,IAC1B,MAAM2G,EAxDd,SAAmBC,GACjB,IAAKA,EAAU,OAAO,KAEtB,IACE,MAAM7B,EAAS,IAAItD,IAAImF,EAAUlF,OAAOC,SAASC,QAEjD,OAAImD,EAAOnD,SAAWF,OAAOC,SAASC,OAAe,KAE9C,GAAGmD,EAAOqK,WAAWrK,EAAOsK,SAAStK,EAAOuK,MACrD,CAAE,MACA,OAAO,IACT,CACF,CA4C4BC,CAAUtO,GAAM2F,WAAa,IAE1B,mBAAnB3F,GAAM4K,SAKVrJ,EAASmE,GAJPnE,EAAShG,EAAgC,CAAE2F,MAAO,CAAEyE,SAAUD,OAhBlE9F,EAAS,uDAuBV,CAACT,EAAkBoC,EAAUkK,IAG9BhN,EAAA,MAAA,CAAKC,UAAWC,GAAOiG,UAAShG,SAAA,CAC9BC,EAAA,KAAA,CAAIH,UAAWC,GAAOmG,MAAKlG,SACxBe,EAAQ,iBAAmB,0BAE7BA,GACClB,EAAAuE,EAAA,CAAApE,SAAA,CACEC,EAAA,IAAA,CAAAD,SAAIe,IACJd,EAAA,SAAA,CAAQ5C,KAAK,SAAS6C,QAAS,IAAMyC,EAAS,UAAS3C,SAAA,syFC1FjE,MAAM2P,GAA0B,KAC9B,MAAMjJ,eAAEA,GAAmBjG,IACrBkC,EAAWC,IACXd,EAAWmF,IACXjE,EAAaC,IAEblE,EAAa+C,EAASQ,OAAOvD,YAE5B6Q,EAAUC,GAAe/O,EAAS,IAEzCG,EAAU,KACR,MAAM6O,EAAQlE,YAAY,KACxBiE,EAAYE,GAAMA,EAAI,EAAIA,EAAI,EAAI,IACjC,KAEH,MAAO,IAAMjE,cAAcgE,IAC1B,IAEH,MAWME,EAAqBC,EAAY1O,UACrC,MAAMH,KAAEA,EAAIL,MAAEA,SAAgBiC,EAAW6K,iBAEzC,OAAQ9M,GAA2B,YAAlBK,GAAMyD,SACtB,CAAC7B,IAmCJ,OAjCA/B,EAAU,KACR,MAAMsM,EAAU,IAAIC,iBAAiB,iBAWrC,OATAD,EAAQ2C,UAAY3O,MAAM4O,IACC,4BAArBA,EAAM/O,MAAM/D,YACJ2S,YACFtJ,IACN/D,EAAS,OAKR,KACL4K,EAAQG,UAET,CAACsC,EAAoBrN,EAAU+D,IAElCzF,EAAU,KACR,MAAM0K,EAAWC,YAAYrK,UAC3B,UACYyO,YACFtJ,IACN/D,EAAS,KAEb,CAAE,MAGF,GACC,KAEH,MAAO,IAAMmJ,cAAcH,IAC1B,CAACqE,EAAoBtJ,EAAgB/D,IAGtC1C,EAAA,MAAA,CAAKH,UAAWC,GAAgBC,SAC9BH,EAAA,MAAA,CAAKC,UAAWC,aACdF,EAAA,MAAA,CAAKC,UAAWC,GAAkBC,SAAA,CAChCC,SAAKH,UAAWC,KAEhBF,EAAA,MAAA,CACEC,UAAWC,GACXqO,QAAQ,YACRrF,KAAK,OACLuF,OAAO,eACPC,YAAY,MAAKvO,SAAA,CAEjBC,EAAA,OAAA,CAAMuO,EAAE,kBACRvO,EAAA,OAAA,CAAMuO,EAAE,uBAIZvO,EAAA,KAAA,CAAIH,UAAWC,GAAcC,SAAA,qBAE7BC,EAAA,IAAA,CAAGH,UAAWC,GAAcC,SAAA,0EAI3BjB,GAAckB,EAAA,MAAA,CAAKH,UAAWC,YAAoBhB,IAEnDkB,EAAA,IAAA,CAAGH,UAAWC,GAAiBC,SAAA,4DAI/BC,EAAA,IAAA,CAAGH,UAAWC,GAAiBC,SAAA,mFAI/BH,EAAA,MAAA,CAAKC,UAAWC,GAAcC,SAAA,CAC5BC,EAAA,SAAA,CACEH,UAAWC,GACX6F,SAAUgK,EAAW,EACrB1P,QAxFKqB,UACTqO,EAAW,UAET5M,EAAWuC,mBAEjBsK,EAAY,MAmFW7P,SAAA,gBAKhB4P,EAAW,GACV/P,EAAA,MAAA,CAAKC,UAAWC,GAAeC,SAAA,CAAA,gBAAgB4P,SAGjD3P,EAAA,SAAA,CAAQH,UAAWC,GAAmBG,QAAS,IAAMyC,EAAS,UAAS3C,SAAA,mCC9GpEoQ,GAAa,IACxBvQ,EAACwQ,aACCpQ,EAACqQ,EAAK,CAACC,KAAM5T,EAAsB6T,QAASvQ,EAACyC,GAAK,CAAA,KAClDzC,EAACqQ,EAAK,CAACC,KAAM5T,EAA6B6T,QAASvQ,EAAC6F,GAAY,CAAA,KAChE7F,EAACqQ,EAAK,CAACC,KAAM5T,EAA+B6T,QAASvQ,EAACyK,GAAiB,CAAA,KACvEzK,EAACqQ,EAAK,CAACC,KAAM5T,EAA+B6T,QAASvQ,EAACoM,SACtDpM,EAACqQ,EAAK,CAACC,KAAM5T,EAAgC6T,QAASvQ,EAAC2M,SACvD3M,EAACqQ,GAAMC,KAAM5T,EAA8B6T,QAASvQ,EAACgP,GAAa,CAAA,KAClEhP,EAACqQ,EAAK,CAACC,KAAM5T,EAAgC6T,QAASvQ,EAACwG,GAAmB,CAAA,KAC1ExG,EAACqQ,EAAK,CAACC,KAAM5T,EAA8B6T,QAASvQ,EAAC0P,GAAa,CAAA,KAClE1P,EAACqQ,EAAK,CAACC,KAAK,IAAIC,QAASvQ,EAACwQ,GAASC,GAAI/T,EAAsBiN","x_google_ignoreList":[1]}
@@ -1,3 +1,13 @@
1
1
  import React from 'react';
2
+ /**
3
+ * Where an emailed magic link lands.
4
+ *
5
+ * Verifying the link does not sign in this tab. The session belongs to the
6
+ * browser that asked for the link, which collects it from `/magic-link/check`
7
+ * with its pre-auth cookie. So once the link is verified, this screen tells
8
+ * that tab, then signs in here too when it can: when the link was opened in
9
+ * the same browser, which holds the same pre-auth cookie. Opened on another
10
+ * device there is nothing to collect, and the screen says to go back.
11
+ */
2
12
  declare const VerifyMagicLink: React.FC;
3
13
  export default VerifyMagicLink;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamless-auth/react",
3
- "version": "0.15.0",
3
+ "version": "0.15.1",
4
4
  "description": "A drop-in authentication solution for modern React applications.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -21,7 +21,7 @@
21
21
  "LICENSE"
22
22
  ],
23
23
  "engines": {
24
- "node": ">=24.0.0 <25.0.0",
24
+ "node": ">=22",
25
25
  "npm": ">=9.0.0 <13.0.0"
26
26
  },
27
27
  "scripts": {
@@ -56,7 +56,7 @@
56
56
  }
57
57
  },
58
58
  "dependencies": {
59
- "@seamless-auth/client": "^0.3.0",
59
+ "@seamless-auth/client": "^0.3.1",
60
60
  "@seamless-auth/types": "^0.26.0",
61
61
  "@simplewebauthn/browser": "^13.1.0",
62
62
  "libphonenumber-js": "^1.12.7"