@atlasauth/embed 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/appearance.d.ts +293 -0
  2. package/dist/appearance.js +206 -0
  3. package/dist/appearance.js.map +1 -0
  4. package/dist/client.d.ts +12 -0
  5. package/dist/client.js +49 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/config.d.ts +27 -0
  8. package/dist/config.js +61 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/element.d.ts +23 -0
  11. package/dist/element.js +51 -0
  12. package/dist/element.js.map +1 -0
  13. package/dist/embed.js +361 -0
  14. package/dist/icons.d.ts +17 -0
  15. package/dist/icons.js +53 -0
  16. package/dist/icons.js.map +1 -0
  17. package/dist/index.d.ts +19 -0
  18. package/dist/index.js +39 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/mount.d.ts +7 -0
  21. package/dist/mount.js +33 -0
  22. package/dist/mount.js.map +1 -0
  23. package/dist/redirect.d.ts +17 -0
  24. package/dist/redirect.js +51 -0
  25. package/dist/redirect.js.map +1 -0
  26. package/dist/standalone.d.ts +25 -0
  27. package/dist/standalone.js +34 -0
  28. package/dist/standalone.js.map +1 -0
  29. package/dist/styles.d.ts +17 -0
  30. package/dist/styles.js +389 -0
  31. package/dist/styles.js.map +1 -0
  32. package/dist/widget/captcha.d.ts +21 -0
  33. package/dist/widget/captcha.js +197 -0
  34. package/dist/widget/captcha.js.map +1 -0
  35. package/dist/widget/constants.d.ts +16 -0
  36. package/dist/widget/constants.js +14 -0
  37. package/dist/widget/constants.js.map +1 -0
  38. package/dist/widget/dom.d.ts +18 -0
  39. package/dist/widget/dom.js +71 -0
  40. package/dist/widget/dom.js.map +1 -0
  41. package/dist/widget/flow.d.ts +41 -0
  42. package/dist/widget/flow.js +424 -0
  43. package/dist/widget/flow.js.map +1 -0
  44. package/dist/widget/forms.d.ts +35 -0
  45. package/dist/widget/forms.js +499 -0
  46. package/dist/widget/forms.js.map +1 -0
  47. package/dist/widget/passkey.d.ts +18 -0
  48. package/dist/widget/passkey.js +88 -0
  49. package/dist/widget/passkey.js.map +1 -0
  50. package/dist/widget/render.d.ts +21 -0
  51. package/dist/widget/render.js +210 -0
  52. package/dist/widget/render.js.map +1 -0
  53. package/dist/widget/social.d.ts +44 -0
  54. package/dist/widget/social.js +331 -0
  55. package/dist/widget/social.js.map +1 -0
  56. package/dist/widget.d.ts +124 -0
  57. package/dist/widget.js +182 -0
  58. package/dist/widget.js.map +1 -0
  59. package/package.json +27 -0
package/dist/embed.js ADDED
@@ -0,0 +1,361 @@
1
+ "use strict";(()=>{var Ft=Object.create;var me=Object.defineProperty;var Bt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Ot=Object.getPrototypeOf,Dt=Object.prototype.hasOwnProperty;var zt=(e,t,n)=>t in e?me(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var fe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Wt=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Ht(t))!Dt.call(e,r)&&r!==n&&me(e,r,{get:()=>t[r],enumerable:!(o=Bt(t,r))||o.enumerable});return e};var Nt=(e,t,n)=>(n=e!=null?Ft(Ot(e)):{},Wt(t||!e||!e.__esModule?me(n,"default",{value:e,enumerable:!0}):n,e));var f=(e,t,n)=>zt(e,typeof t!="symbol"?t+"":t,n);var Ue=fe(D=>{"use strict";Object.defineProperty(D,"__esModule",{value:!0});D.ForbiddenError=void 0;D.evaluate=xe;D.hasFromClaims=Qt;D.protectFromClaims=en;function Jt(e){return e.permission!==void 0||e.role!==void 0||e.anyPermission!==void 0||e.allPermissions!==void 0}function xe(e,t={}){var o,r;if(!e)return{allowed:!1,reason:"signed_out"};if(t.plan!==void 0&&e.pla!==t.plan)return{allowed:!1,reason:"missing_entitlement"};if(t.feature!==void 0&&!((o=e.fea)!=null?o:[]).includes(t.feature))return{allowed:!1,reason:"missing_entitlement"};if(!Jt(t))return{allowed:!0};if(!e.org_id)return{allowed:!1,reason:"no_organization"};let n=new Set((r=e.org_permissions)!=null?r:[]);return t.role!==void 0&&e.org_role!==t.role?{allowed:!1,reason:"missing_permission"}:t.permission!==void 0&&!n.has(t.permission)?{allowed:!1,reason:"missing_permission"}:t.anyPermission&&!t.anyPermission.some(a=>n.has(a))?{allowed:!1,reason:"missing_permission"}:t.allPermissions&&!t.allPermissions.every(a=>n.has(a))?{allowed:!1,reason:"missing_permission"}:{allowed:!0}}function Qt(e,t={}){return xe(e,t).allowed}var oe=class extends Error{constructor(n,o){super(n==="signed_out"?"Not signed in.":n==="no_organization"?"No active organization for this authorization check.":n==="missing_entitlement"?"Missing the required plan or feature.":"Missing the required permission or role.");f(this,"reason");f(this,"condition");this.name="ForbiddenError",this.reason=n,this.condition=o}};D.ForbiddenError=oe;function en(e,t={}){let n=xe(e,t);if(!n.allowed)throw new oe(n.reason,t)}});var Ke=fe(L=>{"use strict";Object.defineProperty(L,"__esModule",{value:!0});L.PERMISSION_KEY_PATTERN=L.ROLE_KEY_PATTERN=void 0;L.isRoleKey=tn;L.isPermissionKey=nn;L.ROLE_KEY_PATTERN=/^org:[a-z][a-z0-9_]{1,31}$/;L.PERMISSION_KEY_PATTERN=/^org:[a-z][a-z0-9_]{1,31}:[a-z][a-z0-9_]{1,31}$/;function tn(e){return L.ROLE_KEY_PATTERN.test(e)}function nn(e){return L.PERMISSION_KEY_PATTERN.test(e)}});var je=fe(C=>{"use strict";Object.defineProperty(C,"__esModule",{value:!0});C.isPermissionKey=C.isRoleKey=C.PERMISSION_KEY_PATTERN=C.ROLE_KEY_PATTERN=C.ForbiddenError=C.protectFromClaims=C.hasFromClaims=C.evaluate=void 0;var ae=Ue();Object.defineProperty(C,"evaluate",{enumerable:!0,get:function(){return ae.evaluate}});Object.defineProperty(C,"hasFromClaims",{enumerable:!0,get:function(){return ae.hasFromClaims}});Object.defineProperty(C,"protectFromClaims",{enumerable:!0,get:function(){return ae.protectFromClaims}});Object.defineProperty(C,"ForbiddenError",{enumerable:!0,get:function(){return ae.ForbiddenError}});var re=Ke();Object.defineProperty(C,"ROLE_KEY_PATTERN",{enumerable:!0,get:function(){return re.ROLE_KEY_PATTERN}});Object.defineProperty(C,"PERMISSION_KEY_PATTERN",{enumerable:!0,get:function(){return re.PERMISSION_KEY_PATTERN}});Object.defineProperty(C,"isRoleKey",{enumerable:!0,get:function(){return re.isRoleKey}});Object.defineProperty(C,"isPermissionKey",{enumerable:!0,get:function(){return re.isPermissionKey}})});function H(e){var t,n;switch(e.status){case"needs_identifier":return{kind:"collect_identifier"};case"needs_first_factor":return{kind:"collect_first_factor",strategies:(t=e.supported_first_factors)!=null?t:[]};case"needs_second_factor":return{kind:"collect_second_factor"};case"needs_mfa_enrollment":return{kind:"enroll_second_factor"};case"needs_email_verification":return{kind:"collect_email_code"};case"needs_captcha":return{kind:"collect_captcha"};case"needs_oauth_callback":return{kind:"await_oauth"};case"needs_new_password":return{kind:"collect_new_password"};case"complete":return{kind:"done",sessionId:(n=e.created_session_id)!=null?n:null};case"abandoned":return{kind:"restart",reason:"abandoned"};default:return{kind:"unknown",status:e.status}}}function Re(e){if(!e||typeof e!="object")return[];let t=e.errors;return Array.isArray(t)?t.filter(n=>!!n&&typeof n.message=="string").map(n=>({code:n.code,message:n.message,param:n.param})):[]}var Ut=["__atlas_attempt","__atlas_ticket","__atlas_status"];function Pe(e){let t=new URLSearchParams(e),n=t.get("__atlas_attempt");if(!n)return null;let o=t.get("__atlas_ticket"),r=t.get("__atlas_status");return!o&&!r?null:{attemptId:n,...o?{ticket:o}:{},...r?{status:r}:{}}}function G(e){let t=new URL(e);for(let n of Ut)t.searchParams.delete(n);return t.toString()}var Y=class{constructor(t){this.options=t}async request(t,n={}){var i,l;let o=(i=this.options.fetchImpl)!=null?i:fetch,r;try{r=await o(`${(l=this.options.baseUrl)!=null?l:""}${t}`,{...n,credentials:"include",headers:{"x-publishable-key":this.options.publishableKey,...n.body?{"content-type":"application/json"}:{},...n.headers}})}catch{return{ok:!1,status:0,data:null,errors:[{code:"NETWORK",message:"We could not reach the server."}]}}let a=null;try{a=await r.json()}catch{}return{ok:r.ok,status:r.status,data:r.ok?a:null,errors:r.ok?[]:Re(a)}}post(t,n){return this.request(t,{method:"POST",body:n===void 0?void 0:JSON.stringify(n)})}get(t){return this.request(t,{method:"GET"})}};var M={attempt:null,errors:[],busy:!1,pollSecret:null,ticket:null};function Kt(e,t){var r,a,i,l,s,d,c,p,m,b,h;if(!e)return{path:"/v1/client/sign_ins",body:{identifier:(r=t.identifier)!=null?r:"",...t.captcha_token?{captcha_token:t.captcha_token}:{}}};let n=H(e),o=(a=e.id)!=null?a:"";switch(n.kind){case"collect_identifier":return{path:"/v1/client/sign_ins",body:{identifier:(i=t.identifier)!=null?i:"",...t.captcha_token?{captcha_token:t.captcha_token}:{}}};case"collect_first_factor":return t.code?{path:`/v1/client/sign_ins/${o}/attempt_first_factor`,body:{strategy:"email_code",code:t.code}}:{path:`/v1/client/sign_ins/${o}/attempt_first_factor`,body:{strategy:"password",password:(l=t.password)!=null?l:""}};case"collect_second_factor":return{path:`/v1/client/sign_ins/${o}/attempt_second_factor`,body:{code:(s=t.code)!=null?s:"",...t.remember_device==="true"?{remember_device:!0}:{}}};case"enroll_second_factor":return{path:`/v1/client/sign_ins/${o}/attempt_mfa_enrollment`,body:{factor_id:(d=t.factorId)!=null?d:"",codes:[(c=t.code)!=null?c:"",(p=t.secondCode)!=null?p:""]}};case"collect_email_code":return{path:`/v1/client/sign_ups/${o}/attempt_verification`,body:{code:(m=t.code)!=null?m:""}};case"collect_captcha":return t.captcha_token?{path:"/v1/client/sign_ins",body:{identifier:(b=t.identifier)!=null?b:"",captcha_token:t.captcha_token}}:null;case"collect_new_password":return{path:`/v1/client/password_resets/${o}/set_new_password`,body:{password:(h=t.password)!=null?h:""}};case"await_oauth":case"done":case"restart":case"unknown":return null}}function X(e){return e?{...M,attempt:{id:e.id,status:e.status}}:M}async function Z(e,t,n){var a;let o=Kt(t.attempt,n);if(!o)return t;let r=await e.post(o.path,o.body);return!r.ok||!r.data?{...t,busy:!1,errors:r.errors}:{attempt:r.data,errors:[],busy:!1,pollSecret:t.pollSecret,ticket:(a=r.data.ticket)!=null?a:null}}async function Me(e,t){var r;let n=t.fields&&Object.keys(t.fields).length>0,o=await e.post("/v1/client/sign_ups",{email:t.email,password:t.password,...n?{fields:t.fields}:{},...t.consent?{consent:!0}:{},...t.captchaToken?{captcha_token:t.captchaToken}:{}});return!o.ok||!o.data?{...M,busy:!1,errors:o.errors}:{attempt:o.data,errors:[],busy:!1,pollSecret:M.pollSecret,ticket:(r=o.data.ticket)!=null?r:null}}function Ie(e){return{provider:e.provider,id_token:e.idToken,...e.nonce?{nonce:e.nonce}:{}}}function Fe(e){if(!e||typeof e!="object")return null;let t=e;return typeof t.id!="string"||typeof t.status!="string"?null:{attemptId:t.id,status:t.status,...typeof t.ticket=="string"?{ticket:t.ticket}:{}}}var Le="https://accounts.google.com/gsi/client",J=null;function jt(e){return J||(J=new Promise((t,n)=>{if(e.querySelector(`script[src="${Le}"]`)){t();return}let o=e.createElement("script");o.src=Le,o.async=!0,o.defer=!0,o.addEventListener("load",()=>t()),o.addEventListener("error",()=>n(new Error("Failed to load Google Identity Services."))),e.head.appendChild(o)}),J)}async function Be(e){var d,c,p,m;let t=(d=e.host)!=null?d:window,n=t.document;await jt(n);let o=(p=(c=t.google)==null?void 0:c.accounts)==null?void 0:p.id;if(!o)throw new Error("Google Identity Services unavailable.");o.initialize({client_id:e.clientId,nonce:e.nonce,callback:b=>{var h;b.credential?e.onCredential(b.credential):(h=e.onError)==null||h.call(e,new Error("Google returned no credential."))}});let r=e.wrapper.style.position!=="";r||(e.wrapper.style.position="relative");let a=n.createElement("div");a.setAttribute("aria-hidden","true"),a.style.cssText="position:absolute;inset:0;z-index:2;opacity:0;overflow:hidden;display:flex;align-items:center;justify-content:center;",e.wrapper.appendChild(a);let i=()=>{var y;let b=Math.round(e.wrapper.getBoundingClientRect().width)||320,h=Math.max(200,Math.min(400,b));a.replaceChildren(),o.renderButton(a,{type:"standard",theme:"outline",size:(y=e.size)!=null?y:"large",text:"continue_with",width:h})};i();let l,s=(m=t.ResizeObserver)!=null?m:typeof ResizeObserver!="undefined"?ResizeObserver:void 0;return s&&(l=new s(()=>i()),l.observe(e.wrapper)),{destroy:()=>{l==null||l.disconnect(),a.remove(),r||(e.wrapper.style.position="")}}}var Vt=()=>{let e=globalThis.navigator;if(!e||!e.credentials)throw new Error("WebAuthn is not available in this environment.");return e};function Q(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),n="";for(let o=0;o<t.length;o+=1)n+=String.fromCharCode(t[o]);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function He(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=t.length%4===0?"":"=".repeat(4-t.length%4),o=atob(t+n),r=new Uint8Array(o.length);for(let a=0;a<o.length;a+=1)r[a]=o.charCodeAt(a);return r.buffer}function N(e){return typeof(e!=null?e:globalThis.PublicKeyCredential)!="undefined"}async function Oe(){var t;let e=globalThis.PublicKeyCredential;try{return await((t=e==null?void 0:e.isConditionalMediationAvailable)==null?void 0:t.call(e))===!0}catch{return!1}}async function be(e,t={}){var l,s;let n=(l=t.host)!=null?l:Vt(),o=(s=e.allowCredentials)!=null?s:[],r={challenge:He(e.challenge),rpId:e.rpId,allowCredentials:o.map(d=>({type:d.type,id:He(d.id)})),userVerification:e.userVerification,timeout:e.timeout},a=await n.credentials.get({publicKey:r,...t.mediation?{mediation:t.mediation}:{},...t.signal?{signal:t.signal}:{}});if(!a)throw new Error("Passkey sign-in was cancelled.");let i=a.response;return{handle:e.handle,challenge:e.challenge,credential_id:Q(a.rawId),authenticator_data:Q(i.authenticatorData),client_data_json:Q(i.clientDataJSON),signature:Q(i.signature)}}var De=typeof window!="undefined",ne=()=>typeof navigator!="undefined"?navigator:void 0;function k(e,t){try{return e()}catch{return t}}function $t(){return k(()=>{if(!De||typeof document=="undefined")return{vendor:null,renderer:null};let e=document.createElement("canvas"),t=e.getContext("webgl")||e.getContext("experimental-webgl");if(!t)return{vendor:null,renderer:null};let n=t.getExtension("WEBGL_debug_renderer_info"),o=n?t.getParameter(n.UNMASKED_VENDOR_WEBGL):null,r=n?t.getParameter(n.UNMASKED_RENDERER_WEBGL):null;return{vendor:o!=null?o:null,renderer:r!=null?r:null}},{vendor:null,renderer:null})}function qt(){return k(()=>{if(typeof document=="undefined")return null;let e=document.createElement("canvas");e.width=220,e.height=40;let t=e.getContext("2d");return t?(t.textBaseline="top",t.font="14px 'Arial'",t.fillStyle="#f60",t.fillRect(0,0,60,20),t.fillStyle="#069",t.fillText("Atlas anti-bot \u2708 1.0",2,15),he(e.toDataURL())):null},null)}function Gt(){var l;let e=ne(),t=De?window:{},n=(l=e==null?void 0:e.userAgent)!=null?l:"",o=k(()=>(e==null?void 0:e.webdriver)===!0,!1),r=k(()=>"chrome"in t&&!!t.chrome,!1),a=/headless/i.test(n)||/chrome/i.test(n)&&!r&&k(()=>{var s,d;return((d=(s=e==null?void 0:e.plugins)==null?void 0:s.length)!=null?d:0)===0},!1),i=k(()=>o||"_phantom"in t||"callPhantom"in t||"__nightmare"in t||"domAutomation"in t||"domAutomationController"in t||typeof document!="undefined"&&Object.keys(document).some(s=>s.startsWith("cdc_")||s.startsWith("$cdc_"))||/electron|phantomjs|slimerjs/i.test(n),o);return{webdriver:o,headless:a,hasChrome:r,automationHint:i}}function Yt(){let e=ne(),t=$t(),n=Gt(),o=k(()=>{var a;return Array.from((a=e==null?void 0:e.languages)!=null?a:[])},[]),r=t.renderer;return{screenWidth:k(()=>{var a,i;return(i=(a=window.screen)==null?void 0:a.width)!=null?i:null},null),screenHeight:k(()=>{var a,i;return(i=(a=window.screen)==null?void 0:a.height)!=null?i:null},null),colorDepth:k(()=>{var a,i;return(i=(a=window.screen)==null?void 0:a.colorDepth)!=null?i:null},null),pixelRatio:k(()=>{var a;return(a=window.devicePixelRatio)!=null?a:null},null),timezone:k(()=>{var a;return(a=Intl.DateTimeFormat().resolvedOptions().timeZone)!=null?a:null},null),timezoneOffset:k(()=>new Date().getTimezoneOffset(),null),language:k(()=>{var a;return(a=e==null?void 0:e.language)!=null?a:null},null),languages:o,platform:k(()=>{var a;return(a=e==null?void 0:e.platform)!=null?a:null},null),hardwareConcurrency:k(()=>{var a;return(a=e==null?void 0:e.hardwareConcurrency)!=null?a:null},null),deviceMemory:k(()=>{var a;return(a=e==null?void 0:e.deviceMemory)!=null?a:null},null),maxTouchPoints:k(()=>{var a;return(a=e==null?void 0:e.maxTouchPoints)!=null?a:null},null),touchSupport:k(()=>{var a;return((a=e==null?void 0:e.maxTouchPoints)!=null?a:0)>0||"ontouchstart"in window},!1),cookieEnabled:k(()=>{var a;return(a=e==null?void 0:e.cookieEnabled)!=null?a:null},null),doNotTrack:k(()=>(e==null?void 0:e.doNotTrack)==="1"||(e==null?void 0:e.doNotTrack)==="yes",null),webglVendor:t.vendor,webglRenderer:r,pluginCount:k(()=>{var a,i;return(i=(a=e==null?void 0:e.plugins)==null?void 0:a.length)!=null?i:null},null),pointerType:k(()=>{var a,i;return(i=(a=window.matchMedia)==null?void 0:a.call(window,"(pointer: fine)"))!=null&&i.matches?"fine":"coarse"},null),webdriver:n.webdriver,headless:n.headless,hasChrome:n.hasChrome,webglSoftware:r?/swiftshader|llvmpipe|software|basic render/i.test(r):!1,automationHint:n.automationHint}}function Xt(){return k(()=>{var n,o;if(typeof localStorage=="undefined")return null;let e="__atlas_did",t=localStorage.getItem(e);return t||(t="d_"+he(String(Math.random())+String(Date.now())+((o=(n=ne())==null?void 0:n.userAgent)!=null?o:"")),localStorage.setItem(e,t)),t},null)}function Zt(e){let t=[e.timezone,e.platform,e.languages.join(","),e.webglVendor,e.webglRenderer,e.screenWidth,e.screenHeight,e.colorDepth,e.hardwareConcurrency,qt()];return he(t.map(n=>n==null?"":String(n)).join("|"))}function he(e){let t=5381;for(let n=0;n<e.length;n+=1)t=(t<<5)+t+e.charCodeAt(n)>>>0;return t.toString(16).padStart(8,"0")}var ee=e=>e.length?e.reduce((t,n)=>t+n,0)/e.length:null,ge=e=>{let t=ee(e);return t===null?null:e.reduce((n,o)=>n+(o-t)**2,0)/e.length},te=class{constructor(t){f(this,"start",Date.now());f(this,"firstInteraction",null);f(this,"moves",0);f(this,"distance",0);f(this,"maxSpeed",0);f(this,"speeds",[]);f(this,"lastX",null);f(this,"lastY",null);f(this,"lastMoveT",0);f(this,"netDx",0);f(this,"netDy",0);f(this,"keyCount",0);f(this,"downAt",new Map);f(this,"dwell",[]);f(this,"flight",[]);f(this,"lastUpAt",null);f(this,"pastes",0);f(this,"backspaces",0);f(this,"focusChanges",0);f(this,"scrolls",0);f(this,"target");f(this,"bound",[]);this.target=t!=null?t:typeof document!="undefined"?document:void 0,this.attach()}mark(){this.firstInteraction===null&&(this.firstInteraction=Date.now()-this.start)}attach(){let t=this.target;if(!t)return;let n=(o,r)=>{k(()=>t.addEventListener(o,r,{passive:!0}),void 0),this.bound.push([o,r])};n("pointermove",o=>this.onMove(o)),n("mousemove",o=>this.onMove(o)),n("keydown",o=>this.onKeyDown(o)),n("keyup",o=>this.onKeyUp(o)),n("paste",()=>{this.mark(),this.pastes+=1}),n("focusin",()=>{this.mark(),this.focusChanges+=1}),n("scroll",()=>{this.mark(),this.scrolls+=1})}onMove(t){var a,i;this.mark();let n=(a=t.clientX)!=null?a:0,o=(i=t.clientY)!=null?i:0,r=Date.now();if(this.lastX!==null&&this.lastY!==null){let l=n-this.lastX,s=o-this.lastY,d=Math.hypot(l,s);this.distance+=d,this.netDx+=l,this.netDy+=s;let c=r-this.lastMoveT;if(c>0){let p=d/c;this.speeds.push(p),p>this.maxSpeed&&(this.maxSpeed=p)}}this.moves+=1,this.lastX=n,this.lastY=o,this.lastMoveT=r}onKeyDown(t){this.mark(),this.keyCount+=1,t.key==="Backspace"&&(this.backspaces+=1),this.downAt.set(t.code||t.key||String(this.keyCount),Date.now()),this.lastUpAt!==null&&this.flight.push(Date.now()-this.lastUpAt)}onKeyUp(t){let n=t.code||t.key||"",o=this.downAt.get(n),r=Date.now();o!==void 0&&(this.dwell.push(r-o),this.downAt.delete(n)),this.lastUpAt=r}snapshot(){let t=Math.hypot(this.netDx,this.netDy);return{mouseMoves:this.moves,mouseDistance:Math.round(this.distance),mouseAvgSpeed:ee(this.speeds),mouseMaxSpeed:Math.round(this.maxSpeed*1e3)/1e3,mouseSpeedVariance:ge(this.speeds),mouseStraightLineRatio:this.distance>0?Math.min(1,t/this.distance):null,keyCount:this.keyCount,keyAvgDwellMs:ee(this.dwell),keyAvgFlightMs:ee(this.flight),keyDwellVariance:ge(this.dwell),keyFlightVariance:ge(this.flight),pasteCount:this.pastes,backspaceCount:this.backspaces,timeToFirstInteractionMs:this.firstInteraction,timeToSubmitMs:Date.now()-this.start,focusChanges:this.focusChanges,scrollCount:this.scrolls,hadPointerMove:this.moves>0,hadKeydown:this.keyCount>0,interactionCount:this.moves+this.keyCount+this.scrolls+this.focusChanges}}stop(){let t=this.target;if(t){for(let[n,o]of this.bound)k(()=>t.removeEventListener(n,o),void 0);this.bound=[]}}};async function ze(e){return k(async()=>{var s,d,c;let t=Yt(),n={attempt_id:e.attemptId,kind:(s=e.kind)!=null?s:"telemetry",device_id:Xt(),device_fingerprint:Zt(t),device:t,behavior:(d=e.recorder)==null?void 0:d.snapshot()},o=`${e.api}/v1/client/telemetry?publishable_key=${encodeURIComponent(e.publishableKey)}`,r=JSON.stringify(n),a=ne();if(!e.fetchImpl&&a&&typeof a.sendBeacon=="function"&&typeof Blob!="undefined"&&a.sendBeacon(o,new Blob([r],{type:"application/json"})))return!0;let i=(c=e.fetchImpl)!=null?c:typeof fetch!="undefined"?fetch:void 0;return i?(await i(o,{method:"POST",headers:{"content-type":"application/json","x-publishable-key":e.publishableKey},body:r,keepalive:!0,credentials:"include"})).ok:!1},Promise.resolve(!1))}var ye={attempt:null,errors:[],busy:!1,ticket:null};async function We(e,t,n){let o=await e.post("/v1/client/password_resets",{email_address:t,captcha_token:n});return!o.ok||!o.data?{...ye,errors:o.errors}:{attempt:o.data,errors:[],busy:!1,ticket:null}}async function Ne(e,t,n){var l,s,d,c;let o=t.attempt;if(!o)return t;let r=null,a={};switch(o.status){case"needs_email_verification":r=`/v1/client/password_resets/${o.id}/attempt_verification`,a={code:(l=n.code)!=null?l:""};break;case"needs_second_factor":r=`/v1/client/password_resets/${o.id}/attempt_second_factor`,a={code:(s=n.code)!=null?s:""};break;case"needs_new_password":r=`/v1/client/password_resets/${o.id}/set_new_password`,a={password:(d=n.password)!=null?d:""};break;default:return t}let i=await e.post(r,a);return!i.ok||!i.data?{...t,busy:!1,errors:i.errors}:{attempt:{id:i.data.id,status:i.data.status},errors:[],busy:!1,ticket:(c=i.data.ticket)!=null?c:null}}function U(e){var n;let t=(n=e.attempt)==null?void 0:n.status;if(!t)return"request";switch(t){case"needs_email_verification":return"collect_email_code";case"needs_second_factor":return"collect_second_factor";case"needs_new_password":return"collect_new_password";case"complete":return"done";default:return"unknown"}}var O=Nt(je());var on=["boxes","single"];function $e(e,t){for(let n of[t,e])if(n&&on.includes(n))return n;return"boxes"}var qe=8,an=["solid","outline","soft","ghost"],rn=["none","scale","lift","glow","ripple"],sn=["none","sm","md","lg"],ln=["comfortable","compact"],dn=["outline","filled","underline"],cn=["slow","normal","fast"],pn=["spinner","skeleton","dots","bar"],Ge={slow:280,normal:160,fast:80};function ie(e,t){let n=(o,r,...a)=>{for(let i of a)if(i!==void 0&&o.includes(i))return i;return r};return{buttonStyle:n(an,"solid",t==null?void 0:t.buttonStyle,e==null?void 0:e.buttonStyle),buttonEffect:n(rn,"scale",t==null?void 0:t.buttonEffect,e==null?void 0:e.buttonEffect),shadow:n(sn,"md",t==null?void 0:t.shadow,e==null?void 0:e.shadow),density:n(ln,"comfortable",t==null?void 0:t.density,e==null?void 0:e.density),inputStyle:n(dn,"outline",t==null?void 0:t.inputStyle,e==null?void 0:e.inputStyle),animations:typeof(t==null?void 0:t.animations)=="boolean"?t.animations:typeof(e==null?void 0:e.animations)=="boolean"?e.animations:!0,motionSpeed:n(cn,"normal",t==null?void 0:t.motionSpeed,e==null?void 0:e.motionSpeed),loading:n(pn,"spinner",t==null?void 0:t.loading,e==null?void 0:e.loading)}}var un=["block","compact","icon"],mn=["sm","md","lg"],fn=["list","grid","carousel"],bn=["auto","always","never"];function ve(e,t){var o,r,a;let n=(i,...l)=>{for(let s of l)if(s!==void 0&&i.includes(s))return s;return i[0]};return{variant:n(un,t==null?void 0:t.variant,e==null?void 0:e.variant),size:n(mn,(o=t==null?void 0:t.size)!=null?o:"md",e==null?void 0:e.size,"md"),layout:n(fn,t==null?void 0:t.layout,e==null?void 0:e.layout),labels:{...(r=e==null?void 0:e.labels)!=null?r:{},...(a=t==null?void 0:t.labels)!=null?a:{}},search:n(bn,t==null?void 0:t.search,e==null?void 0:e.search)}}var I={colorPrimary:"#5b5bd6",colorText:"#1c1c1f",colorBackground:"#ffffff",colorAccent:"#5b5bd6",colorCard:"#ffffff",colorBorder:"#e4e4e9",borderRadius:"10px",fontFamily:'ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif'};function gn(e){return e?{colorPrimary:e.colorPrimary||I.colorPrimary,colorText:e.colorText||I.colorText,colorBackground:e.colorBackground||I.colorBackground,colorAccent:e.colorAccent||e.colorPrimary||I.colorAccent,colorCard:e.colorCard||e.colorBackground||I.colorCard,colorBorder:e.colorBorder||I.colorBorder,borderRadius:e.borderRadius||I.borderRadius,fontFamily:e.fontStack||I.fontFamily}:I}function Ye(e,t){var r;let n={...gn(e)},o=(r=t==null?void 0:t.variables)!=null?r:{};for(let[a,i]of Object.entries(o))i!==void 0&&(n[a]=i);return n}function Xe(e){let t={};for(let[n,o]of Object.entries(e))t[`--atlas-embed-${n.replace(/[A-Z]/g,r=>`-${r.toLowerCase()}`)}`]=o;return t}function Ze(e,t,n){var r;let o=(r=n==null?void 0:n.elements)==null?void 0:r[e];return o?`${t} ${o}`:t}function Je(e,t){var i,l;let n=(i=t==null?void 0:t.providerOrder)!=null?i:[],o=new Set((l=t==null?void 0:t.providerHidden)!=null?l:[]),r=new Set(e.filter(s=>!o.has(s))),a=[];for(let s of n)r.has(s)&&!a.includes(s)&&a.push(s);for(let s of e)r.has(s)&&!a.includes(s)&&a.push(s);return a}var Ve={google:"Google",github:"GitHub",gitlab:"GitLab",facebook:"Facebook",apple:"Apple",microsoft:"Microsoft",discord:"Discord",linkedin:"LinkedIn",twitter:"X",twitter_v1:"X",x:"X",slack:"Slack",spotify:"Spotify",twitch:"Twitch",notion:"Notion",linear:"Linear",steam:"Steam"};function se(e){return Ve[e]?Ve[e]:e.split(/[_-]/).map(t=>t&&t[0].toUpperCase()+t.slice(1)).join(" ")}function hn(e,t){return(n,o)=>{let r=typeof n=="string"?n:n.toString(),a;try{a=new URL(r)}catch{return t(n,o)}return a.searchParams.has("publishable_key")||a.searchParams.set("publishable_key",e),t(a.toString(),o)}}function Qe(e){var n;let t=(n=e.fetchImpl)!=null?n:fetch;return new Y({publishableKey:e.publishableKey,baseUrl:e.frontendApi.replace(/\/$/,""),fetchImpl:hn(e.publishableKey,t)})}async function et(e){let t=await e.get("/v1/appearance");return t.ok?t.data:null}var tt="atlas-embed-styles",yn=`
2
+ .atlas-embed-root {
3
+ --_bg: var(--atlas-embed-color-background, #ffffff);
4
+ --_card: var(--atlas-embed-color-card, #ffffff);
5
+ --_text: var(--atlas-embed-color-text, #1c1c1f);
6
+ --_primary: var(--atlas-embed-color-primary, #5b5bd6);
7
+ --_border: var(--atlas-embed-color-border, #e4e4e9);
8
+ --_radius: var(--atlas-embed-border-radius, 10px);
9
+ /* Transition tempo \u2014 the widget sets --atlas-embed-motion from motionSpeed and
10
+ to 0s when animations are off; reduced-motion forces 0s below regardless. */
11
+ --_motion: var(--atlas-embed-motion, 0.16s);
12
+ font-family: var(--atlas-embed-font-family, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
13
+ color: var(--_text);
14
+ box-sizing: border-box;
15
+ display: block;
16
+ }
17
+ .atlas-embed-root *, .atlas-embed-root *::before, .atlas-embed-root *::after { box-sizing: border-box; }
18
+ .atlas-embed-card {
19
+ max-width: 400px;
20
+ margin: 0 auto;
21
+ padding: 28px 26px;
22
+ background: var(--_card);
23
+ border: 1px solid var(--_border);
24
+ border-radius: calc(var(--_radius) + 4px);
25
+ box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 8px 28px rgba(0,0,0,0.06);
26
+ }
27
+ .atlas-embed-logo { display: block; max-height: 40px; margin: 0 auto 16px; }
28
+ .atlas-embed-title { font-size: 20px; font-weight: 650; text-align: center; margin: 0 0 4px; }
29
+ .atlas-embed-subtitle { font-size: 14px; color: #6b7280; text-align: center; margin: 0 0 20px; }
30
+ .atlas-embed-social { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
31
+ .atlas-embed-social-button {
32
+ display: flex; align-items: center; justify-content: center; gap: 8px;
33
+ width: 100%; padding: 10px 12px; font-size: 14px; font-weight: 550; cursor: pointer;
34
+ color: var(--_text); background: var(--_card);
35
+ border: 1px solid var(--_border); border-radius: var(--_radius);
36
+ }
37
+ .atlas-embed-social-button:hover { filter: brightness(0.97); }
38
+ .atlas-embed-social-icon { display: inline-flex; flex: none; line-height: 0; }
39
+ .atlas-embed-social-icon svg { width: 18px; height: 18px; display: block; }
40
+ .atlas-embed-social-label { display: inline-block; }
41
+
42
+ /* Size \u2014 button scale and icon size together. */
43
+ .atlas-embed-social[data-size="sm"] .atlas-embed-social-button { padding: 8px 10px; font-size: 13px; }
44
+ .atlas-embed-social[data-size="sm"] .atlas-embed-social-icon svg { width: 16px; height: 16px; }
45
+ .atlas-embed-social[data-size="lg"] .atlas-embed-social-button { padding: 13px 16px; font-size: 15px; }
46
+ .atlas-embed-social[data-size="lg"] .atlas-embed-social-icon svg { width: 22px; height: 22px; }
47
+
48
+ /* Icon-only variant: a square button, name in the tooltip. Always laid out as a
49
+ centred wrap (or a carousel), never a full-width bar. */
50
+ .atlas-embed-social-button[data-variant="icon"] { width: auto; padding: 10px; aspect-ratio: 1; }
51
+ .atlas-embed-social[data-size="sm"] .atlas-embed-social-button[data-variant="icon"] { padding: 8px; }
52
+ .atlas-embed-social[data-size="lg"] .atlas-embed-social-button[data-variant="icon"] { padding: 13px; }
53
+ .atlas-embed-social[data-variant="icon"]:not([data-layout="carousel"]) {
54
+ flex-direction: row; flex-wrap: wrap; justify-content: center;
55
+ }
56
+
57
+ /* Grid \u2014 bars share a row and wrap. */
58
+ .atlas-embed-social[data-layout="grid"] { flex-direction: row; flex-wrap: wrap; }
59
+ .atlas-embed-social[data-layout="grid"] .atlas-embed-social-button { width: auto; flex: 1 1 auto; }
60
+ .atlas-embed-social[data-layout="grid"] .atlas-embed-social-button[data-variant="icon"] { flex: 0 0 auto; }
61
+
62
+ /* Carousel \u2014 one swipeable, scroll-snapped row. The raw scrollbar is hidden; the
63
+ arrow buttons (below) are the affordance instead. */
64
+ .atlas-embed-social[data-layout="carousel"] {
65
+ flex-direction: row; flex-wrap: nowrap; overflow-x: auto;
66
+ scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scroll-behavior: smooth;
67
+ scrollbar-width: none;
68
+ }
69
+ .atlas-embed-social[data-layout="carousel"]::-webkit-scrollbar { display: none; }
70
+ .atlas-embed-social[data-layout="carousel"] .atlas-embed-social-button { width: auto; flex: 0 0 auto; scroll-snap-align: start; }
71
+ .atlas-embed-social[data-layout="carousel"] .atlas-embed-social-button[data-variant="block"] { min-width: 60%; }
72
+
73
+ /* Carousel shell \u2014 prev/next controls flanking the scroll row. */
74
+ .atlas-embed-carousel { position: relative; display: flex; align-items: center; gap: 4px; margin-bottom: 16px; }
75
+ .atlas-embed-carousel .atlas-embed-social { flex: 1 1 auto; min-width: 0; margin-bottom: 0; }
76
+ .atlas-embed-carousel-nav {
77
+ flex: none; display: inline-flex; align-items: center; justify-content: center;
78
+ width: 30px; height: 30px; padding: 0; cursor: pointer;
79
+ color: var(--_text); background: var(--_card);
80
+ border: 1px solid var(--_border); border-radius: 999px; transition: opacity 0.15s;
81
+ }
82
+ .atlas-embed-carousel-nav svg { width: 16px; height: 16px; display: block; }
83
+ .atlas-embed-carousel-nav:hover:not(:disabled) { filter: brightness(0.97); }
84
+ .atlas-embed-carousel-nav:disabled { opacity: 0.35; cursor: default; }
85
+ /* Nothing overflows \u2192 no controls at all. */
86
+ .atlas-embed-carousel[data-overflow="false"] .atlas-embed-carousel-nav { display: none; }
87
+ /* When the carousel sits inside a search field, the field owns the bottom margin. */
88
+ .atlas-embed-social-field .atlas-embed-carousel { margin-bottom: 0; }
89
+
90
+ /* Search \u2014 a filter box above a long provider list (socialButtons.search). The
91
+ field wraps the button container so its own margin replaces the button block's. */
92
+ .atlas-embed-social-field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
93
+ .atlas-embed-social-field .atlas-embed-social { margin-bottom: 0; }
94
+ .atlas-embed-social-search {
95
+ width: 100%; padding: 9px 12px; font-size: 14px; color: var(--_text);
96
+ background: var(--_bg); border: 1px solid var(--_border); border-radius: var(--_radius);
97
+ }
98
+ .atlas-embed-social-search:focus { outline: 2px solid var(--_primary); outline-offset: -1px; }
99
+ .atlas-embed-social-button[hidden] { display: none; }
100
+ .atlas-embed-social-empty { font-size: 13px; color: #9ca3af; text-align: center; padding: 6px 0; }
101
+ .atlas-embed-social-empty[hidden] { display: none; }
102
+ .atlas-embed-divider {
103
+ display: flex; align-items: center; text-align: center; gap: 10px;
104
+ color: #9ca3af; font-size: 12px; margin: 14px 0;
105
+ }
106
+ .atlas-embed-divider::before, .atlas-embed-divider::after {
107
+ content: ""; flex: 1; height: 1px; background: var(--_border);
108
+ }
109
+ .atlas-embed-field { display: block; margin: 0 0 12px; }
110
+ .atlas-embed-label { display: block; font-size: 13px; margin: 0 0 5px; color: var(--_text); }
111
+ .atlas-embed-input {
112
+ width: 100%; padding: 10px 12px; font-size: 14px; color: var(--_text);
113
+ background: var(--_bg); border: 1px solid var(--_border); border-radius: var(--_radius);
114
+ }
115
+ .atlas-embed-input:focus { outline: 2px solid var(--_primary); outline-offset: -1px; }
116
+ /* Password field with a show/hide toggle. */
117
+ .atlas-embed-password { position: relative; display: flex; align-items: center; }
118
+ .atlas-embed-password .atlas-embed-input { width: 100%; padding-right: 54px; }
119
+ .atlas-embed-password-toggle {
120
+ position: absolute; right: 6px; padding: 4px 7px; font: inherit; font-size: 12px; font-weight: 600;
121
+ cursor: pointer; color: var(--_primary); background: none; border: 0; border-radius: 6px;
122
+ }
123
+ .atlas-embed-password-toggle:hover { text-decoration: underline; }
124
+ select.atlas-embed-input { appearance: auto; }
125
+ .atlas-embed-field-checkbox { display: flex; flex-direction: row-reverse; align-items: center; justify-content: flex-end; gap: 8px; }
126
+ .atlas-embed-field-checkbox .atlas-embed-label { margin: 0; }
127
+ .atlas-embed-checkbox { width: 16px; height: 16px; margin: 0; flex: none; }
128
+ textarea.atlas-embed-input { min-height: 72px; resize: vertical; font-family: inherit; }
129
+ fieldset.atlas-embed-field { border: 0; padding: 0; margin: 0 0 12px; }
130
+ .atlas-embed-choices { display: flex; flex-direction: column; gap: 6px; }
131
+ .atlas-embed-choice { display: flex; flex-direction: row; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }
132
+ .atlas-embed-choice input { width: 16px; height: 16px; margin: 0; flex: none; accent-color: var(--_primary); }
133
+ .atlas-embed-button {
134
+ width: 100%; margin-top: 6px; padding: 11px 12px; font-size: 14px; font-weight: 650;
135
+ cursor: pointer; color: #ffffff; background: var(--_primary);
136
+ border: 0; border-radius: var(--_radius);
137
+ }
138
+ .atlas-embed-button:disabled { opacity: 0.6; cursor: default; }
139
+ .atlas-embed-handle-back {
140
+ width: 100%; margin-top: 8px; padding: 6px; font-size: 13px; font-weight: 550;
141
+ cursor: pointer; color: #6b7280; background: none; border: 0;
142
+ }
143
+ .atlas-embed-handle-back:hover { color: #374151; }
144
+ .atlas-embed-error { display: block; font-size: 13px; color: #d64545; margin: 6px 0 0; }
145
+ .atlas-embed-form-error { font-size: 13px; color: #d64545; margin: 0 0 12px; min-height: 0; }
146
+ /* A success/confirmation banner (e.g. after a force-login password reset). */
147
+ .atlas-embed-flash {
148
+ font-size: 13px; color: #0f7a4d; background: rgba(16,163,101,0.08);
149
+ border: 1px solid rgba(16,163,101,0.25); border-radius: var(--_radius);
150
+ padding: 9px 11px; margin: 0 0 14px; text-align: center;
151
+ }
152
+ .atlas-embed-footer { font-size: 13px; color: #6b7280; text-align: center; margin: 16px 0 0; }
153
+ /* \xA75.1 legal consent row on sign-up. */
154
+ .atlas-embed-consent { display: flex; align-items: flex-start; gap: 8px; margin: 2px 0 14px; font-size: 13px; color: #6b7280; }
155
+ .atlas-embed-consent-check { margin: 2px 0 0; width: 15px; height: 15px; flex: none; accent-color: var(--_primary); cursor: pointer; }
156
+ .atlas-embed-consent-link { color: var(--_primary); text-decoration: underline; }
157
+ /* \xA77.5 Remember-me row. */
158
+ .atlas-embed-remember { display: flex; align-items: center; gap: 8px; margin: -2px 0 14px; font-size: 13px; color: var(--_text); cursor: pointer; }
159
+ .atlas-embed-remember-check { width: 15px; height: 15px; flex: none; accent-color: var(--_primary); cursor: pointer; }
160
+ .atlas-embed-note { font-size: 14px; color: #6b7280; text-align: center; margin: 8px 0; }
161
+
162
+ /* Verification step \u2014 a continuation of the email panel, not a new screen: the
163
+ context line ("Enter the code we sent to \u2026") + a way back, then a segmented
164
+ one-box-per-digit code input that spawns in. */
165
+ .atlas-embed-step-context { text-align: center; margin: 0 0 20px; }
166
+ .atlas-embed-step-context .atlas-embed-subtitle { margin: 0 0 6px; }
167
+ .atlas-embed-step-back {
168
+ display: inline-block; padding: 2px 4px; font: inherit; font-size: 13px; font-weight: 550;
169
+ cursor: pointer; color: var(--_primary); background: none; border: 0;
170
+ }
171
+ .atlas-embed-step-back:hover { text-decoration: underline; }
172
+ /* A standalone action under the submit button (Forgot password?, Back to sign in,
173
+ the 2FA toggle) reads as a centred link, not a left-aligned fragment. */
174
+ form > .atlas-embed-step-back { display: block; width: 100%; text-align: center; margin-top: 10px; }
175
+ .atlas-embed-code { display: flex; gap: 8px; justify-content: space-between; }
176
+ .atlas-embed-code-box {
177
+ flex: 1 1 0; min-width: 0; aspect-ratio: 1 / 1.15; padding: 0; text-align: center;
178
+ font-size: 20px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--_text);
179
+ background: var(--_bg); border: 1px solid var(--_border); border-radius: var(--_radius);
180
+ }
181
+ .atlas-embed-code-box:focus { outline: 2px solid var(--_primary); outline-offset: -1px; }
182
+ /* A real step change eases its content in; error/busy re-renders (same step) do
183
+ not, and a reduced-motion viewer gets no animation at all. */
184
+ @media (prefers-reduced-motion: no-preference) {
185
+ .atlas-embed-card[data-enter] > form,
186
+ .atlas-embed-card[data-enter] > .atlas-embed-step-context {
187
+ animation: atlas-embed-spawn 0.26s cubic-bezier(0.22, 0.61, 0.36, 1) both;
188
+ }
189
+ }
190
+ @keyframes atlas-embed-spawn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
191
+
192
+ /* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
193
+ Interaction / polish layer \u2014 how controls FEEL. Driven by data-attributes on
194
+ the root (data-button-style / -button-effect / -shadow / -density /
195
+ -input-style) that the widget sets from the resolved interaction config, plus
196
+ the --_motion tempo var. Every rule is additive: with no attributes set the
197
+ widget looks exactly as it did before this layer existed.
198
+ \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */
199
+
200
+ /* Smooth every interactive control at the configured tempo. */
201
+ .atlas-embed-button, .atlas-embed-social-button, .atlas-embed-carousel-nav,
202
+ .atlas-embed-handle-back, .atlas-embed-step-back, .atlas-embed-password-toggle,
203
+ .atlas-embed-input, .atlas-embed-code-box {
204
+ transition:
205
+ transform var(--_motion) ease, box-shadow var(--_motion) ease,
206
+ background-color var(--_motion) ease, border-color var(--_motion) ease,
207
+ color var(--_motion) ease, filter var(--_motion) ease, outline-color var(--_motion) ease;
208
+ }
209
+
210
+ /* Primary CTA \u2014 a subtle hover darken by default (was static). */
211
+ .atlas-embed-button:hover:not(:disabled) { filter: brightness(1.06); }
212
+
213
+ /* Button fill style (primary CTA only \u2014 social buttons keep provider styling). */
214
+ .atlas-embed-root[data-button-style="outline"] .atlas-embed-button {
215
+ background: transparent; color: var(--_primary); border: 1px solid var(--_primary);
216
+ }
217
+ .atlas-embed-root[data-button-style="outline"] .atlas-embed-button:hover:not(:disabled) {
218
+ filter: none; background: color-mix(in srgb, var(--_primary) 10%, transparent);
219
+ }
220
+ .atlas-embed-root[data-button-style="soft"] .atlas-embed-button {
221
+ background: color-mix(in srgb, var(--_primary) 14%, transparent); color: var(--_primary);
222
+ }
223
+ .atlas-embed-root[data-button-style="soft"] .atlas-embed-button:hover:not(:disabled) {
224
+ filter: none; background: color-mix(in srgb, var(--_primary) 22%, transparent);
225
+ }
226
+ .atlas-embed-root[data-button-style="ghost"] .atlas-embed-button {
227
+ background: transparent; color: var(--_primary);
228
+ }
229
+ .atlas-embed-root[data-button-style="ghost"] .atlas-embed-button:hover:not(:disabled) {
230
+ filter: none; background: color-mix(in srgb, var(--_primary) 12%, transparent);
231
+ }
232
+
233
+ /* Press/hover effect \u2014 applies to every button. */
234
+ .atlas-embed-root[data-button-effect="scale"] .atlas-embed-button:active:not(:disabled),
235
+ .atlas-embed-root[data-button-effect="scale"] .atlas-embed-social-button:active,
236
+ .atlas-embed-root[data-button-effect="scale"] .atlas-embed-carousel-nav:active:not(:disabled) {
237
+ transform: scale(0.97);
238
+ }
239
+ .atlas-embed-root[data-button-effect="lift"] .atlas-embed-button:hover:not(:disabled),
240
+ .atlas-embed-root[data-button-effect="lift"] .atlas-embed-social-button:hover {
241
+ transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0,0,0,0.14); filter: none;
242
+ }
243
+ .atlas-embed-root[data-button-effect="lift"] .atlas-embed-button:active:not(:disabled),
244
+ .atlas-embed-root[data-button-effect="lift"] .atlas-embed-social-button:active { transform: translateY(0); }
245
+ .atlas-embed-root[data-button-effect="glow"] .atlas-embed-button:hover:not(:disabled),
246
+ .atlas-embed-root[data-button-effect="glow"] .atlas-embed-social-button:hover {
247
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--_primary) 35%, transparent); filter: none;
248
+ }
249
+ /* Ripple \u2014 the widget appends a span on pointer-down; buttons must clip it. */
250
+ .atlas-embed-root[data-button-effect="ripple"] .atlas-embed-button,
251
+ .atlas-embed-root[data-button-effect="ripple"] .atlas-embed-social-button {
252
+ position: relative; overflow: hidden;
253
+ }
254
+ .atlas-embed-ripple {
255
+ position: absolute; border-radius: 50%; transform: scale(0);
256
+ background: currentColor; opacity: 0.28; pointer-events: none;
257
+ animation: atlas-embed-ripple 0.55s ease-out;
258
+ }
259
+ @keyframes atlas-embed-ripple { to { transform: scale(2.6); opacity: 0; } }
260
+
261
+ /* Card + solid-button elevation. */
262
+ .atlas-embed-root[data-shadow="none"] .atlas-embed-card { box-shadow: none; }
263
+ .atlas-embed-root[data-shadow="sm"] .atlas-embed-card { box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
264
+ .atlas-embed-root[data-shadow="lg"] .atlas-embed-card {
265
+ box-shadow: 0 4px 12px rgba(0,0,0,0.08), 0 16px 48px rgba(0,0,0,0.12);
266
+ }
267
+
268
+ /* Density \u2014 compact tightens padding and gaps. */
269
+ .atlas-embed-root[data-density="compact"] .atlas-embed-card { padding: 20px 18px; }
270
+ .atlas-embed-root[data-density="compact"] .atlas-embed-social { gap: 6px; margin-bottom: 12px; }
271
+ .atlas-embed-root[data-density="compact"] .atlas-embed-field { margin-bottom: 9px; }
272
+ .atlas-embed-root[data-density="compact"] .atlas-embed-button { padding: 9px 12px; }
273
+ .atlas-embed-root[data-density="compact"] .atlas-embed-social-button { padding: 8px 10px; }
274
+ .atlas-embed-root[data-density="compact"] .atlas-embed-subtitle { margin-bottom: 14px; }
275
+
276
+ /* Input style \u2014 filled and underline treatments (default is the outlined field). */
277
+ .atlas-embed-root[data-input-style="filled"] .atlas-embed-input,
278
+ .atlas-embed-root[data-input-style="filled"] .atlas-embed-code-box,
279
+ .atlas-embed-root[data-input-style="filled"] .atlas-embed-social-search {
280
+ background: color-mix(in srgb, var(--_border) 24%, transparent); border-color: transparent;
281
+ }
282
+ .atlas-embed-root[data-input-style="filled"] .atlas-embed-input:focus,
283
+ .atlas-embed-root[data-input-style="filled"] .atlas-embed-code-box:focus,
284
+ .atlas-embed-root[data-input-style="filled"] .atlas-embed-social-search:focus {
285
+ background: var(--_bg); border-color: var(--_primary);
286
+ }
287
+ .atlas-embed-root[data-input-style="underline"] .atlas-embed-input,
288
+ .atlas-embed-root[data-input-style="underline"] .atlas-embed-code-box,
289
+ .atlas-embed-root[data-input-style="underline"] .atlas-embed-social-search {
290
+ background: transparent; border: 0; border-bottom: 1.5px solid var(--_border);
291
+ border-radius: 0; padding-left: 2px; padding-right: 2px;
292
+ }
293
+ .atlas-embed-root[data-input-style="underline"] .atlas-embed-input:focus,
294
+ .atlas-embed-root[data-input-style="underline"] .atlas-embed-code-box:focus,
295
+ .atlas-embed-root[data-input-style="underline"] .atlas-embed-social-search:focus {
296
+ outline: none; border-bottom-color: var(--_primary);
297
+ }
298
+
299
+ /* \u2500\u2500 Loading states \u2014 spinner / skeleton / dots / bar (interaction.loading).
300
+ Shown while appearance resolves, while a redirect ticket is exchanged, and the
301
+ button spinner while a form submits \u2014 so the widget never flashes blank. \u2500\u2500 */
302
+ .atlas-embed-button { display: flex; align-items: center; justify-content: center; gap: 8px; }
303
+ .atlas-embed-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 168px; padding: 12px 0; }
304
+ .atlas-embed-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
305
+
306
+ /* Spinner (default) + the in-button spinner. */
307
+ .atlas-embed-spinner, .atlas-embed-btn-spinner {
308
+ border-radius: 50%; border-style: solid; flex: none;
309
+ animation: atlas-embed-spin 0.7s linear infinite;
310
+ }
311
+ .atlas-embed-spinner { width: 30px; height: 30px; border-width: 3px;
312
+ border-color: color-mix(in srgb, var(--_primary) 22%, transparent); border-top-color: var(--_primary); }
313
+ .atlas-embed-btn-spinner { width: 17px; height: 17px; border-width: 2px;
314
+ border-color: color-mix(in srgb, currentColor 35%, transparent); border-top-color: currentColor; }
315
+ @keyframes atlas-embed-spin { to { transform: rotate(360deg); } }
316
+
317
+ /* Dots. */
318
+ .atlas-embed-loading[data-loading="dots"] { flex-direction: row; }
319
+ .atlas-embed-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--_primary);
320
+ animation: atlas-embed-bounce 1.2s ease-in-out infinite; }
321
+ .atlas-embed-dot:nth-child(2) { animation-delay: 0.15s; }
322
+ .atlas-embed-dot:nth-child(3) { animation-delay: 0.30s; }
323
+ @keyframes atlas-embed-bounce { 0%,80%,100% { transform: scale(0.5); opacity: 0.4; } 40% { transform: scale(1); opacity: 1; } }
324
+
325
+ /* Indeterminate bar. */
326
+ .atlas-embed-loading[data-loading="bar"] { min-height: 132px; }
327
+ .atlas-embed-loadbar { position: relative; width: 64%; height: 4px; border-radius: 999px; overflow: hidden;
328
+ background: color-mix(in srgb, var(--_border) 60%, transparent); }
329
+ .atlas-embed-loadbar::before { content: ""; position: absolute; top: 0; bottom: 0; width: 40%; border-radius: 999px;
330
+ background: var(--_primary); animation: atlas-embed-slide 1.1s ease-in-out infinite; }
331
+ @keyframes atlas-embed-slide { 0% { left: -45%; } 100% { left: 105%; } }
332
+
333
+ /* Skeleton \u2014 placeholders shaped like the form. */
334
+ .atlas-embed-loading[data-loading="skeleton"] { align-items: stretch; min-height: 0; gap: 12px; }
335
+ .atlas-embed-skel { border-radius: var(--_radius); position: relative; overflow: hidden;
336
+ background: color-mix(in srgb, var(--_border) 55%, transparent); }
337
+ .atlas-embed-skel::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%);
338
+ background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--_text) 8%, transparent), transparent);
339
+ animation: atlas-embed-shimmer 1.3s infinite; }
340
+ .atlas-embed-skel-title { height: 22px; width: 55%; margin: 2px auto 2px; }
341
+ .atlas-embed-skel-sub { height: 13px; width: 75%; margin: 0 auto 8px; }
342
+ .atlas-embed-skel-input { height: 42px; }
343
+ .atlas-embed-skel-button { height: 44px; margin-top: 6px; }
344
+ @keyframes atlas-embed-shimmer { to { transform: translateX(100%); } }
345
+
346
+ /* Reduced motion always wins \u2014 no transitions, presses, ripples, or spawn; and
347
+ loaders swap their spin/bounce/slide/shimmer for a minimal opacity pulse. */
348
+ @media (prefers-reduced-motion: reduce) {
349
+ .atlas-embed-root { --_motion: 0s; }
350
+ .atlas-embed-root [class^="atlas-embed-"] { transition: none !important; }
351
+ .atlas-embed-root .atlas-embed-button:active,
352
+ .atlas-embed-root .atlas-embed-social-button:active { transform: none !important; }
353
+ .atlas-embed-ripple { display: none; }
354
+ .atlas-embed-spinner, .atlas-embed-btn-spinner, .atlas-embed-dot,
355
+ .atlas-embed-loadbar::before, .atlas-embed-skel::after {
356
+ animation: atlas-embed-pulse 1.4s ease-in-out infinite !important;
357
+ }
358
+ .atlas-embed-loadbar::before { position: static; width: 100%; }
359
+ }
360
+ @keyframes atlas-embed-pulse { 0%,100% { opacity: 0.4; } 50% { opacity: 1; } }
361
+ `;function nt(e=document){var n;if(e.querySelector(`style[data-${tt}]`))return;let t=e.createElement("style");t.setAttribute(`data-${tt}`,""),t.textContent=yn,((n=e.head)!=null?n:e.documentElement).appendChild(t)}var ot=new Set(["bluesky"]),at='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 18l-6-6 6-6"/></svg>',rt='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 18l6-6-6-6"/></svg>',z={"sign-in":{title:"Sign in",submit:"Continue"},"sign-up":{title:"Create your account",submit:"Continue"}};function w(e){var t;return(t=e.root.ownerDocument)!=null?t:document}function u(e,t,n,o){let r=w(e).createElement(t);return n&&(r.className=n),o!=null&&(r.textContent=o),(r.classList.contains("atlas-embed-button")||r.classList.contains("atlas-embed-social-button"))&&xn(e,r),r}function x(e,t,n){return Ze(t,n,e.options.appearance)}function xn(e,t){e.interaction.buttonEffect!=="ripple"||!e.interaction.animations||t.addEventListener("pointerdown",n=>{let o=t.getBoundingClientRect(),r=Math.max(o.width,o.height),a=w(e).createElement("span");a.className="atlas-embed-ripple",a.style.width=a.style.height=`${r}px`,a.style.left=`${n.clientX-o.left-r/2}px`,a.style.top=`${n.clientY-o.top-r/2}px`,a.addEventListener("animationend",()=>a.remove()),t.appendChild(a)})}function K(e,t){let n=u(e,"button",x(e,"buttonPrimary","atlas-embed-button"));if(n.type="submit",n.disabled=e.busy,e.busy){n.setAttribute("data-busy",""),n.setAttribute("aria-label",t);let o=u(e,"span","atlas-embed-btn-spinner");o.setAttribute("aria-hidden","true"),n.appendChild(o)}else n.textContent=t;return n}function it(e,t=typeof window!="undefined"?window.location.origin:""){if(!e||typeof e!="string")return null;if(e.startsWith("/")&&!e.startsWith("//"))try{return t?new URL(e,t).toString():e}catch{return null}let n;try{n=new URL(e)}catch{return null}return t&&n.origin===t||n.protocol==="https:"?n.toString():null}var vn=new Set(["turnstile","hcaptcha","recaptcha","recaptcha_v3","recaptcha_enterprise"]);function ke(e){return!!e&&vn.has(e)}function st(e){return!!e&&e.enabled===!0&&ke(e.provider)}var kn={turnstile:{src:()=>"https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",global:"turnstile"},hcaptcha:{src:()=>"https://js.hcaptcha.com/1/api.js?render=explicit",global:"hcaptcha"},recaptcha:{src:()=>"https://www.google.com/recaptcha/api.js?render=explicit",global:"grecaptcha"},recaptcha_v3:{src:e=>`https://www.google.com/recaptcha/api.js?render=${encodeURIComponent(e)}`,global:"grecaptcha"},recaptcha_enterprise:{src:e=>`https://www.google.com/recaptcha/enterprise.js?render=${encodeURIComponent(e)}`,global:"grecaptcha"}};function _n(e,t,n){let o=kn[e];if(!o)return Promise.reject(new Error(`captcha: ${e} is not renderable`));if(n[o.global])return Promise.resolve(n[o.global]);let r=n.document,a=`__atlasCaptchaLoad_${e}`,i=n[a];if(i)return i;let l=new Promise((s,d)=>{var b,h;let c=()=>{n[o.global]?s(n[o.global]):d(new Error(`captcha: ${e} script loaded but global missing`))},p=o.src(t),m=r.querySelector(`script[src="${p}"]`);if(m){if(n[o.global])return s(n[o.global]);m.addEventListener("load",c,{once:!0}),m.addEventListener("error",()=>d(new Error(`captcha: ${e} script failed`)),{once:!0});return}m=r.createElement("script"),m.src=p,m.async=!0,m.defer=!0,m.addEventListener("load",c,{once:!0}),m.addEventListener("error",()=>d(new Error(`captcha: ${e} script failed`)),{once:!0}),((h=(b=r.head)!=null?b:r.body)!=null?h:r.documentElement).appendChild(m)});return n[a]=l,l}function wn(e,t,n,o){return new Promise((r,a)=>{let i=e.render(t,{sitekey:n,appearance:o==="invisible"?"interaction-only":"always",callback:l=>r(l),"error-callback":()=>a(new Error("captcha: turnstile error")),"timeout-callback":()=>a(new Error("captcha: turnstile timeout"))});o==="invisible"&&e.execute&&e.execute(i)})}function En(e,t,n,o){return new Promise((r,a)=>{let i=e.render(t,{sitekey:n,size:o==="invisible"?"invisible":"normal",callback:l=>r(l),"error-callback":()=>a(new Error("captcha: hcaptcha error"))});if(o==="invisible"){let l=e.execute(i,{async:!0});l&&typeof l.then=="function"&&l.then(s=>r(s.response),a)}})}function Sn(e,t,n,o){return new Promise((r,a)=>{let i=e.render(t,{sitekey:n,size:o==="invisible"?"invisible":"normal",callback:l=>r(l),"error-callback":()=>a(new Error("captcha: recaptcha error"))});if(o==="invisible"&&e.execute){let l=e.execute(void 0,{widgetId:i});l&&typeof l.then=="function"&&l.then(r,a)}})}function Cn(e,t){let n=()=>{let o=e.execute(t,{action:"submit"});return o&&typeof o.then=="function"?o:Promise.reject(new Error("captcha: recaptcha v3 execute returned no promise"))};return new Promise((o,r)=>{e.ready?e.ready(()=>n().then(o,r)):n().then(o,r)})}async function lt(e,t){var l,s,d,c,p;let n=(l=e.provider)!=null?l:"",o=(s=e.siteKey)!=null?s:"",r=(d=e.widget)!=null?d:"managed",a=(p=(c=t.ownerDocument)==null?void 0:c.defaultView)!=null?p:globalThis,i=await _n(n,o,a);switch(n){case"turnstile":return wn(i,t,o,r);case"hcaptcha":return En(i,t,o,r);case"recaptcha":return Sn(i,t,o,r);case"recaptcha_v3":case"recaptcha_enterprise":return Cn(i,o);default:throw new Error(`captcha: ${n} is not renderable`)}}async function _e(e,t,n=!1){var l,s,d;let o=e.captchaFlows[t];if(!(n?!!o&&ke(o.provider):st(o))||!o)return null;let a=(l=e.root.ownerDocument)!=null?l:document,i=a.createElement("div");i.className="atlas-embed-captcha",((d=(s=e.root.parentElement)!=null?s:a.body)!=null?d:a.documentElement).appendChild(i);try{return await lt(o,i)}catch{return null}finally{i.remove()}}async function ct(e){var o,r;let t=(r=(o=e.root.ownerDocument)==null?void 0:o.defaultView)!=null?r:typeof window!="undefined"?window:null;if(!t)return!1;let n=Pe(t.location.search);return n?n.ticket?(await j(e,n.attemptId,n.ticket),dt(e,t),await B(e,n.attemptId),!0):(n.status&&(e.state=X({id:n.attemptId,status:n.status}),dt(e,t)),!1):!1}function dt(e,t){try{t.history.replaceState({},t.document.title,G(t.location.href))}catch{}}async function j(e,t,n){e.options.preview||await e.client.post("/v1/client/tickets/exchange",{attempt_id:t,ticket:n,remember:e.remember})}async function B(e,t){var r,a;let n=(a=(r=e.root.ownerDocument)==null?void 0:r.defaultView)!=null?a:typeof window!="undefined"?window:null,o=it(e.options.redirect,n?n.location.origin:void 0);if(e.root.dispatchEvent(new CustomEvent("atlas:complete",{bubbles:!0,detail:{attemptId:t,redirected:!!o}})),e.options.preview){$(e,"Sign-in works \u2014 this is a preview, so no session was created.");return}if(o&&n){n.location.assign(o);return}$(e,"You are signed in.")}function q(e,t){ze({api:e.options.frontendApi,publishableKey:e.options.publishableKey,attemptId:t!=null?t:void 0,kind:e.mode==="sign-up"?"sign_up":"sign_in",recorder:e.recorder,fetchImpl:e.options.fetchImpl})}async function pt(e,t){var a,i,l,s,d;if(e.busy)return;if((a=e.conditionalAbort)==null||a.abort(),e.flash=null,typeof t.identifier=="string"&&t.identifier.trim()&&(e.enteredIdentifier=t.identifier.trim()),e.busy=!0,q(e,(i=e.state.attempt)==null?void 0:i.id),_(e),e.state=await Z(e.client,e.state,t),e.state.attempt&&H(e.state.attempt).kind==="collect_captcha"){let c=await _e(e,"signIn",!0);c&&(e.state=await Z(e.client,e.state,{identifier:(s=(l=e.enteredIdentifier)!=null?l:t.identifier)!=null?s:"",captcha_token:c}))}let n=e.state.attempt?H(e.state.attempt):null;(n==null?void 0:n.kind)==="collect_first_factor"&&t.password&&e.state.errors.length===0&&(e.state=await Z(e.client,e.state,{password:t.password})),e.busy=!1;let o=e.state.attempt?H(e.state.attempt):null;e.mode==="sign-in"&&e.passwordEnabled&&(o==null?void 0:o.kind)==="collect_first_factor"&&(e.state={...M,errors:e.state.errors});let r=e.state.attempt;if((r==null?void 0:r.status)==="complete"){let c=(d=r.id)!=null?d:null;e.state.ticket&&c&&await j(e,c,e.state.ticket),await B(e,c);return}_(e)}async function le(e,t,n){var l,s,d;q(e);let o=(s=(l=e.root.ownerDocument)==null?void 0:l.defaultView)!=null?s:typeof window!="undefined"?window:null,r=o?G(o.location.href):e.options.frontendApi,a=await e.client.post("/v1/client/sign_ins/oauth",{provider:t,redirect_url:r,...n?{identifier:n}:{}}),i=(d=a.data)==null?void 0:d.authorization_url;i&&o?o.location.assign(i):(e.handlePrompt=null,F(e,a.errors))}async function we(e,t,n={}){var l,s,d;q(e);let o=(s=(l=e.root.ownerDocument)==null?void 0:l.defaultView)!=null?s:typeof window!="undefined"?window:null,r=o?G(o.location.href):e.options.frontendApi;if(n.popup&&o){await Tn(e,t,o,r);return}let a=await e.client.post("/v1/client/sign_ins/sso",{connection_id:t,redirect_url:r}),i=(d=a.data)==null?void 0:d.authorization_url;i&&o?o.location.assign(i):F(e,a.errors)}function An(e){let t=e.options.frontendApi;try{return new URL(/^https?:\/\//.test(t)?t:`https://${t}`).origin}catch{return t}}async function Tn(e,t,n,o){var p;let r=n.open("about:blank","atlas-sso","width=480,height=640,menubar=no,toolbar=no,location=no,status=no");if(!r){await we(e,t);return}let a=o.includes("?")?"&":"?",i=`${o}${a}__atlas_display=popup`,l=An(e),s=m=>{if(m.origin!==l)return;let b=m.data;if(!(!b||b.type!=="atlas-sso")){n.removeEventListener("message",s);try{r.close()}catch{}if(b.error){F(e,[{code:"sso_popup_cancelled",message:"Sign-in was cancelled."}]);return}if(b.status==="complete"&&b.ticket&&b.attempt_id){let h=b.attempt_id,y=b.ticket;(async()=>(await j(e,h,y),await B(e,h)))();return}b.attempt_id&&b.status&&(e.state=X({id:b.attempt_id,status:b.status}),_(e))}};n.addEventListener("message",s);let d=await e.client.post("/v1/client/sign_ins/sso",{connection_id:t,redirect_url:i}),c=(p=d.data)==null?void 0:p.authorization_url;if(c)try{r.location.assign(c)}catch{try{r.close()}catch{}n.removeEventListener("message",s),n.location.assign(c)}else{n.removeEventListener("message",s);try{r.close()}catch{}F(e,d.errors)}}async function ut(e,t,n){let o=await e.client.post("/v1/client/sign_ins/id_token",Ie({provider:t,idToken:n})),r=Fe(o.data);if(!r){F(e,o.errors);return}if(r.status==="complete"&&r.ticket){await j(e,r.attemptId,r.ticket),await B(e,r.attemptId);return}e.state=X({id:r.attemptId,status:r.status}),_(e)}function mt(e){e.resetFlow={...ye},_(e)}async function ft(e,t){var o,r;if(e.busy||!e.resetFlow)return;if(e.busy=!0,q(e),_(e),U(e.resetFlow)==="request"){typeof t.email=="string"&&t.email.trim()&&(e.enteredIdentifier=t.email.trim());let a=await _e(e,"passwordReset");e.resetFlow=await We(e.client,(o=t.email)!=null?o:"",a!=null?a:void 0)}else e.resetFlow=await Ne(e.client,e.resetFlow,{code:t.code,password:t.password});e.busy=!1;let n=e.resetFlow;if(((r=n==null?void 0:n.attempt)==null?void 0:r.status)==="complete"){let a=n.attempt.id;e.resetFlow=null,n.ticket?(await j(e,a,n.ticket),await B(e,a)):(e.flash="Password updated. Sign in with your new password.",e.state=M,_(e));return}_(e)}async function bt(e,t,n=!0){var d;if(e.busy)return;e.busy=!0,q(e),_(e);let{identifier:o,password:r,...a}=t,i={};for(let[c,p]of Object.entries(a))p&&(i[c]=p);let l=await _e(e,"signUp");e.state=await Me(e.client,{email:o!=null?o:"",password:r!=null?r:"",fields:i,consent:n,captchaToken:l!=null?l:void 0}),e.busy=!1;let s=e.state.attempt;if((s==null?void 0:s.status)==="complete"){let c=(d=s.id)!=null?d:null;e.state.ticket&&c&&await j(e,c,e.state.ticket),await B(e,c);return}_(e)}function gt(e){var m;let t=e.resetFlow,n=U(t),o=u(e,"div","atlas-embed-reset");o.appendChild(u(e,"h1",x(e,"title","atlas-embed-title"),"Reset your password"));let r=w(e).createElement("form"),a=t.errors,i=new Map,l=a.find(b=>!b.param);l&&r.appendChild(u(e,"div","atlas-embed-form-error",l.message));let s=null,d="Continue",c=!0;switch(n){case"request":s="Enter your email and we\u2019ll send you a reset code.",d="Send reset code",de(e,r,i,a,"email","Email address","email","username");{let b=i.get("email");b&&(e.enteredIdentifier&&(b.value=e.enteredIdentifier),b.setAttribute("data-atlas-autofocus",""))}break;case"collect_email_code":s=e.enteredIdentifier?`Enter the code we sent to ${e.enteredIdentifier}`:"Enter the code we sent to your email",Ee(e,r,i,a,"code","Reset code",!0);break;case"collect_second_factor":s="Enter the code from your authenticator app",Ee(e,r,i,a,"code","Two-factor code",!0);break;case"collect_new_password":s="Choose a new password",d="Set new password",de(e,r,i,a,"password","New password","password","new-password"),(m=i.get("password"))==null||m.setAttribute("data-atlas-autofocus","");break;default:c=!1,r.appendChild(u(e,"p","atlas-embed-note","You\u2019re all set."))}s&&o.appendChild(u(e,"p",x(e,"subtitle","atlas-embed-subtitle"),s)),o.appendChild(r),c&&r.appendChild(K(e,d));let p=u(e,"button","atlas-embed-step-back","Back to sign in");return p.type="button",p.addEventListener("click",()=>{e.resetFlow=null,_(e)}),r.appendChild(p),r.addEventListener("submit",b=>{b.preventDefault();let h={};for(let[y,v]of i)h[y]=v.value;ft(e,h)}),o}function de(e,t,n,o,r,a,i,l){let s=u(e,"label",x(e,"field","atlas-embed-field"));s.appendChild(u(e,"span",x(e,"label","atlas-embed-label"),a));let d=w(e).createElement("input");if(d.className=x(e,"input","atlas-embed-input"),d.type=i,d.name=r,d.setAttribute("autocomplete",l),i==="password"){let c=u(e,"div","atlas-embed-password");c.appendChild(d);let p=u(e,"button","atlas-embed-password-toggle","Show");p.type="button",p.setAttribute("aria-label","Show password"),p.addEventListener("click",m=>{m.preventDefault();let b=d.type==="password";d.type=b?"text":"password",p.textContent=b?"Hide":"Show",p.setAttribute("aria-label",b?"Hide password":"Show password")}),c.appendChild(p),s.appendChild(c)}else s.appendChild(d);for(let c of o.filter(p=>p.param===r))s.appendChild(u(e,"span",x(e,"error","atlas-embed-error"),c.message));n.set(r,d),t.appendChild(s)}function Ee(e,t,n,o,r,a,i){var h;if(e.codeInputStyle==="single"){de(e,t,n,o,r,a,"text","one-time-code"),i&&((h=n.get(r))==null||h.setAttribute("data-atlas-autofocus",""));return}let s=u(e,"div",x(e,"field","atlas-embed-field"));s.appendChild(u(e,"span",x(e,"label","atlas-embed-label"),a));let d=u(e,"div","atlas-embed-code");d.setAttribute("role","group"),d.setAttribute("aria-label",a);let c=w(e).createElement("input");c.type="hidden",c.name=r,n.set(r,c);let p=[],m=()=>{c.value=p.map(y=>y.value).join("")},b=()=>{c.value.length!==6||e.busy||t.dispatchEvent(new Event("submit",{cancelable:!0,bubbles:!0}))};for(let y=0;y<6;y++){let v=w(e).createElement("input");v.className="atlas-embed-code-box",v.type="text",v.setAttribute("inputmode","numeric"),v.setAttribute("autocomplete",y===0?"one-time-code":"off"),v.setAttribute("aria-label",`${a} digit ${y+1}`),v.maxLength=1,i&&y===0&&v.setAttribute("data-atlas-autofocus",""),v.addEventListener("input",()=>{v.value=v.value.replace(/\D/g,"").slice(0,1),m(),v.value&&y<5&&p[y+1].focus(),b()}),v.addEventListener("keydown",R=>{R.key==="Backspace"&&!v.value&&y>0&&p[y-1].focus()}),v.addEventListener("paste",R=>{var g,E,A;R.preventDefault();let P=((E=(g=R.clipboardData)==null?void 0:g.getData("text"))!=null?E:"").replace(/\D/g,"").slice(0,6);for(let S=0;S<6;S++)p[S].value=(A=P[S])!=null?A:"";m(),p[Math.min(P.length,5)].focus(),b()}),p.push(v),d.appendChild(v)}s.appendChild(d),s.appendChild(c);for(let y of o.filter(v=>v.param===r))s.appendChild(u(e,"span",x(e,"error","atlas-embed-error"),y.message));t.appendChild(s)}function ht(e,t){let n=w(e).createElement("form"),o=e.state.errors.find(c=>!c.param);o&&n.appendChild(u(e,"div","atlas-embed-form-error",o.message));let r=new Map,a=e.state.errors,i=(c,p,m,b)=>de(e,n,r,a,c,p,m,b),l=(c,p,m)=>Ee(e,n,r,a,c,p,m),s=!0;switch(t){case"collect_identifier":if(i("identifier","Email address","email",e.passkeyEnabled&&N()?"username webauthn":"username"),e.enteredIdentifier&&(r.get("identifier").value=e.enteredIdentifier),e.mode==="sign-in"&&e.passwordEnabled&&i("password","Password","password","current-password"),e.mode==="sign-in"&&e.rememberMeEnabled){let c=u(e,"label","atlas-embed-remember"),p=w(e).createElement("input");p.type="checkbox",p.className="atlas-embed-remember-check",p.checked=e.remember,p.addEventListener("change",()=>{e.remember=p.checked}),c.appendChild(p),c.appendChild(u(e,"span","atlas-embed-remember-text","Remember me")),n.appendChild(c)}break;case"collect_first_factor":i("password","Password","password","current-password");break;case"collect_second_factor":if(e.backupCodeMode?i("code","Backup code","text","one-time-code"):l("code","Two-factor code",!0),e.trustedDeviceEnabled){let c=u(e,"label","atlas-embed-remember"),p=w(e).createElement("input");p.type="checkbox",p.className="atlas-embed-remember-check",p.checked=e.rememberDevice,p.addEventListener("change",()=>{e.rememberDevice=p.checked}),c.appendChild(p),c.appendChild(u(e,"span","atlas-embed-remember-text","Remember this device")),n.appendChild(c)}break;case"collect_email_code":l("code","Verification code",!0);break;case"collect_new_password":i("password","New password","password","new-password");break;case"enroll_second_factor":l("code","Authenticator code",!0),l("secondCode","Next code",!1);break;default:s=!1,n.appendChild(u(e,"p","atlas-embed-note","Please continue in your application."))}if(s&&n.appendChild(K(e,z[e.mode].submit)),t==="collect_second_factor"){let c=u(e,"button","atlas-embed-step-back",e.backupCodeMode?"Use your authenticator app":"Use a backup code instead");c.type="button",c.addEventListener("click",()=>{e.backupCodeMode=!e.backupCodeMode,_(e)}),n.appendChild(c)}if(t==="collect_identifier"&&e.mode==="sign-in"&&e.passwordEnabled||t==="collect_first_factor"){let c=u(e,"button","atlas-embed-step-back","Forgot password?");c.type="button",c.addEventListener("click",()=>mt(e)),n.appendChild(c)}return n.addEventListener("submit",c=>{c.preventDefault();let p={};for(let[m,b]of r)p[m]=b.value;t==="collect_second_factor"&&e.trustedDeviceEnabled&&e.rememberDevice&&(p.remember_device="true"),pt(e,p)}),n}function Rn(e){var s;let t=(s=e.appearance)==null?void 0:s.legal;if(!t||!t.termsUrl&&!t.privacyUrl)return null;let n=w(e),o=u(e,"div","atlas-embed-consent"),r=null;t.required&&(r=n.createElement("input"),r.type="checkbox",r.className="atlas-embed-consent-check",r.setAttribute("aria-label","Agree to the terms and privacy policy"),o.appendChild(r));let a=u(e,"span","atlas-embed-consent-text"),i=(d,c)=>{let p=n.createElement("a");return p.href=d,p.textContent=c,p.target="_blank",p.rel="noopener noreferrer",p.className="atlas-embed-consent-link",p};a.appendChild(n.createTextNode(t.required?"I agree to the ":"By continuing you agree to the "));let l=[];return t.termsUrl&&l.push(i(t.termsUrl,"Terms of Service")),t.privacyUrl&&l.push(i(t.privacyUrl,"Privacy Policy")),l.forEach((d,c)=>{c>0&&a.appendChild(n.createTextNode(" and ")),a.appendChild(d)}),a.appendChild(n.createTextNode(".")),o.appendChild(a),{row:o,checkbox:r}}function yt(e){var s;let t=w(e).createElement("form"),n=e.state.errors.find(d=>!d.param);n&&t.appendChild(u(e,"div","atlas-embed-form-error",n.message));let o=new Map,r=(d,c,p)=>{var v,R,P;let m=(v=p.type)!=null?v:"text",b=m==="radio"||m==="multiselect",h=u(e,b?"fieldset":"label",x(e,"field","atlas-embed-field"));h.appendChild(u(e,b?"legend":"span",x(e,"label","atlas-embed-label"),p.required?c:`${c} (optional)`));let y=w(e);if(m==="select"){let g=y.createElement("select");g.className=x(e,"input","atlas-embed-input"),g.name=d;let E=y.createElement("option");E.value="",E.textContent=p.placeholder||"Select\u2026",g.appendChild(E);for(let A of(R=p.options)!=null?R:[]){let S=y.createElement("option");S.value=A,S.textContent=A,g.appendChild(S)}h.appendChild(g),o.set(d,()=>g.value)}else if(m==="textarea"){let g=y.createElement("textarea");g.className=x(e,"input","atlas-embed-input"),g.name=d,g.rows=3,p.placeholder&&g.setAttribute("placeholder",p.placeholder),h.appendChild(g),o.set(d,()=>g.value)}else if(m==="checkbox"){let g=y.createElement("input");g.type="checkbox",g.name=d,g.className="atlas-embed-checkbox",h.classList.add("atlas-embed-field-checkbox"),h.appendChild(g),o.set(d,()=>g.checked?"true":"")}else if(m==="radio"||m==="multiselect"){let g=y.createElement("div");g.className="atlas-embed-choices";let E=[];for(let A of(P=p.options)!=null?P:[]){let S=y.createElement("label");S.className="atlas-embed-choice";let T=y.createElement("input");T.type=m==="radio"?"radio":"checkbox",T.name=d,T.value=A,E.push(T),S.appendChild(T),S.appendChild(u(e,"span",void 0,A)),g.appendChild(S)}h.appendChild(g),o.set(d,()=>{var A,S;return m==="radio"?(S=(A=E.find(T=>T.checked))==null?void 0:A.value)!=null?S:"":E.filter(T=>T.checked).map(T=>T.value).join(", ")})}else{let g=y.createElement("input");g.className=x(e,"input","atlas-embed-input"),g.type=m,g.name=d,p.autocomplete&&g.setAttribute("autocomplete",p.autocomplete),p.placeholder&&g.setAttribute("placeholder",p.placeholder),h.appendChild(g),o.set(d,()=>g.value)}for(let g of e.state.errors.filter(E=>E.param===d))h.appendChild(u(e,"span",x(e,"error","atlas-embed-error"),g.message));t.appendChild(h)};for(let d of e.signUpFields)r(d.key,d.label,{type:d.type,required:d.required,placeholder:d.placeholder,options:d.options});r("identifier","Email address",{type:"email",required:!0,autocomplete:"email"}),r("password","Password",{type:"password",required:!0,autocomplete:"new-password"});let a=Rn(e);a&&t.appendChild(a.row);let i=K(e,z[e.mode].submit),l=()=>!(a!=null&&a.checkbox)||a.checkbox.checked;return i.disabled=e.busy||!l(),(s=a==null?void 0:a.checkbox)==null||s.addEventListener("change",()=>{i.disabled=e.busy||!l()}),t.appendChild(i),t.addEventListener("submit",d=>{d.preventDefault();let c={};for(let[p,m]of o)c[p]=m();bt(e,c,l())}),t}var Pn={google:'<path fill="#4285F4" d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"/><path fill="#34A853" d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"/><path fill="#FBBC05" d="M5.84 14.1c-.22-.66-.35-1.36-.35-2.1s.13-1.44.35-2.1V7.06H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.94l3.66-2.84z"/><path fill="#EA4335" d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.06l3.66 2.84C6.71 7.31 9.14 5.38 12 5.38z"/>',microsoft:'<path fill="#F25022" d="M2 2h9.3v9.3H2z"/><path fill="#7FBA00" d="M12.7 2H22v9.3h-9.3z"/><path fill="#00A4EF" d="M2 12.7h9.3V22H2z"/><path fill="#FFB900" d="M12.7 12.7H22V22h-9.3z"/>'},Mn={github:{fill:"currentColor",path:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"},apple:{fill:"currentColor",path:"M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701"},x:{fill:"currentColor",path:"M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z"},notion:{fill:"currentColor",path:"M4.459 4.208c.746.606 1.026.56 2.428.466l13.215-.793c.28 0 .047-.28-.046-.326L17.86 1.968c-.42-.326-.981-.7-2.055-.607L3.01 2.295c-.466.046-.56.28-.374.466zm.793 3.08v13.904c0 .747.373 1.027 1.214.98l14.523-.84c.841-.046.935-.56.935-1.167V6.354c0-.606-.233-.933-.748-.887l-15.177.887c-.56.047-.747.327-.747.933zm14.337.745c.093.42 0 .84-.42.888l-.7.14v10.264c-.608.327-1.168.514-1.635.514-.748 0-.935-.234-1.495-.933l-4.577-7.186v6.952L12.21 19s0 .84-1.168.84l-3.222.186c-.093-.186 0-.653.327-.746l.84-.233V9.854L7.822 9.76c-.094-.42.14-1.026.793-1.073l3.456-.233 4.764 7.279v-6.44l-1.215-.139c-.093-.514.28-.887.747-.933zM1.936 1.035l13.31-.98c1.634-.14 2.055-.047 3.082.7l4.249 2.986c.7.513.934.653.934 1.213v16.378c0 1.026-.373 1.634-1.68 1.726l-15.458.934c-.98.047-1.448-.093-1.962-.747l-3.129-4.06c-.56-.747-.793-1.306-.793-1.96V2.667c0-.839.374-1.54 1.447-1.632z"},facebook:{fill:"#0866FF",path:"M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z"},discord:{fill:"#5865F2",path:"M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z"},gitlab:{fill:"#FC6D26",path:"m23.6004 9.5927-.0337-.0862L20.3.9814a.851.851 0 0 0-.3362-.405.8748.8748 0 0 0-.9997.0539.8748.8748 0 0 0-.29.4399l-2.2055 6.748H7.5375l-2.2057-6.748a.8573.8573 0 0 0-.29-.4412.8748.8748 0 0 0-.9997-.0537.8585.8585 0 0 0-.3362.4049L.4332 9.5015l-.0325.0862a6.0657 6.0657 0 0 0 2.0119 7.0105l.0113.0087.03.0213 4.976 3.7264 2.462 1.8633 1.4995 1.1321a1.0085 1.0085 0 0 0 1.2197 0l1.4995-1.1321 2.4619-1.8633 5.006-3.7489.0125-.01a6.0682 6.0682 0 0 0 2.0094-7.003z"},spotify:{fill:"#1ED760",path:"M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.66 0 12 0zm5.521 17.34c-.24.359-.66.48-1.021.24-2.82-1.74-6.36-2.101-10.561-1.141-.418.122-.779-.179-.899-.539-.12-.421.18-.78.54-.9 4.56-1.021 8.52-.6 11.64 1.32.42.18.479.659.301 1.02zm1.44-3.3c-.301.42-.841.6-1.262.3-3.239-1.98-8.159-2.58-11.939-1.38-.479.12-1.02-.12-1.14-.6-.12-.48.12-1.021.6-1.141C9.6 9.9 15 10.561 18.72 12.84c.361.181.54.78.241 1.2zm.12-3.36C15.24 8.4 8.82 8.16 5.16 9.301c-.6.179-1.2-.181-1.38-.721-.18-.601.18-1.2.72-1.381 4.26-1.26 11.28-1.02 15.721 1.621.539.3.719 1.02.419 1.56-.299.421-1.02.599-1.559.3z"},twitch:{fill:"#9146FF",path:"M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z"},reddit:{fill:"#FF4500",path:"M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z"},figma:{fill:"#F24E1E",path:"M15.852 8.981h-4.588V0h4.588c2.476 0 4.49 2.014 4.49 4.49s-2.014 4.491-4.49 4.491zM12.735 7.51h3.117c1.665 0 3.019-1.355 3.019-3.019s-1.355-3.019-3.019-3.019h-3.117V7.51zm0 1.471H8.148c-2.476 0-4.49-2.014-4.49-4.49S5.672 0 8.148 0h4.588v8.981zm-4.587-7.51c-1.665 0-3.019 1.355-3.019 3.019s1.354 3.02 3.019 3.02h3.117V1.471H8.148zm4.587 15.019H8.148c-2.476 0-4.49-2.014-4.49-4.49s2.014-4.49 4.49-4.49h4.588v8.98zM8.148 8.981c-1.665 0-3.019 1.355-3.019 3.019s1.355 3.019 3.019 3.019h3.117V8.981H8.148zM8.172 24c-2.489 0-4.515-2.014-4.515-4.49s2.014-4.49 4.49-4.49h4.588v4.441c0 2.503-2.047 4.539-4.563 4.539zm-.024-7.51a3.023 3.023 0 0 0-3.019 3.019c0 1.665 1.365 3.019 3.044 3.019 1.705 0 3.093-1.376 3.093-3.068v-2.97H8.148zm7.704 0h-.098c-2.476 0-4.49-2.014-4.49-4.49s2.014-4.49 4.49-4.49h.098c2.476 0 4.49 2.014 4.49 4.49s-2.014 4.49-4.49 4.49zm-.097-7.509c-1.665 0-3.019 1.355-3.019 3.019s1.355 3.019 3.019 3.019h.098c1.665 0 3.019-1.355 3.019-3.019s-1.355-3.019-3.019-3.019h-.098z"},dropbox:{fill:"#0061FF",path:"M6 1.807L0 5.629l6 3.822 6.001-3.822L6 1.807zM18 1.807l-6 3.822 6 3.822 6-3.822-6-3.822zM0 13.274l6 3.822 6.001-3.822L6 9.452l-6 3.822zM18 9.452l-6 3.822 6 3.822 6-3.822-6-3.822zM6 18.371l6.001 3.822 6-3.822-6-3.822L6 18.371z"},gitee:{fill:"#C71D23",path:"M11.984 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.016 0zm6.09 5.333c.328 0 .593.266.592.593v1.482a.594.594 0 0 1-.593.592H9.777c-.982 0-1.778.796-1.778 1.778v5.63c0 .327.266.592.593.592h5.63c.982 0 1.778-.796 1.778-1.778v-.296a.593.593 0 0 0-.592-.593h-4.15a.592.592 0 0 1-.592-.592v-1.482a.593.593 0 0 1 .593-.592h6.815c.327 0 .593.265.593.592v3.408a4 4 0 0 1-4 4H5.926a.593.593 0 0 1-.593-.593V9.778a4.444 4.444 0 0 1 4.445-4.444h8.296Z"}};function xt(e){let t=Pn[e];if(t)return`<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false">${t}</svg>`;let n=Mn[e];return n?`<svg viewBox="0 0 24 24" fill="${n.fill}" aria-hidden="true" focusable="false"><path d="${n.path}"/></svg>`:null}async function vt(e){var r,a,i;if(e.busy)return;(r=e.conditionalAbort)==null||r.abort(),e.busy=!0,_(e);let t=await e.client.post("/v1/client/sign_ins/passkey/begin",{});if(!t.ok||!t.data){e.busy=!1,F(e,t.errors);return}let n;try{n=await be(t.data)}catch{e.busy=!1,_(e);return}let o=await e.client.post("/v1/client/sign_ins/passkey/finish",n);if(e.busy=!1,o.ok&&((a=o.data)==null?void 0:a.status)==="complete"){await B(e,(i=o.data.created_session_id)!=null?i:null);return}F(e,o.errors)}async function kt(e){var o,r,a;if(e.mode!=="sign-in"||!e.passkeyEnabled||!N())return;let t=!1;try{t=await Oe()}catch{t=!1}if(!t)return;(o=e.conditionalAbort)==null||o.abort();let n=new AbortController;e.conditionalAbort=n;try{let i=await e.client.post("/v1/client/sign_ins/passkey/begin",{});if(!i.ok||!i.data||n.signal.aborted)return;let l=await be(i.data,{mediation:"conditional",signal:n.signal});if(n.signal.aborted)return;let s=await e.client.post("/v1/client/sign_ins/passkey/finish",l);s.ok&&((r=s.data)==null?void 0:r.status)==="complete"&&await B(e,(a=s.data.created_session_id)!=null?a:null)}catch{}}function _t(e){let t=u(e,"button",x(e,"socialButton","atlas-embed-social-button"),"Sign in with a passkey");return t.type="button",t.setAttribute("data-atlas-passkey",""),t.disabled=e.busy,t.addEventListener("click",()=>{vt(e)}),t}function Se(e){let t=[...e.providers];for(let n of e.nativeProviders)t.includes(n.provider)||t.push(n.provider);return t}var Ln='<svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true" fill="none"><path d="M12 2 3 21h4l5-11 5 11h4L12 2z" fill="currentColor"/></svg>';function In(e,t){var l;let{variant:n,labels:o}=e.social,r=(l=o.atlas)!=null?l:n==="block"?"Continue with Atlas":"Atlas",a=u(e,"button",x(e,"socialButton","atlas-embed-social-button"));a.type="button",a.setAttribute("data-atlas-provider","atlas"),a.setAttribute("data-variant",n);let i=w(e).createElement("span");if(i.className="atlas-embed-social-icon",i.innerHTML=Ln,a.appendChild(i),n==="icon")a.setAttribute("aria-label","Continue with Atlas"),a.setAttribute("title","Atlas");else{let s=w(e).createElement("span");s.className="atlas-embed-social-label",s.textContent=r,a.appendChild(s)}return a.addEventListener("click",()=>{we(e,t,{popup:!0})}),a}function wt(e){let t=Se(e),n=u(e,"div","atlas-embed-social");n.setAttribute("data-layout",e.social.layout),n.setAttribute("data-size",e.social.size),n.setAttribute("data-variant",e.social.variant),e.signInWithAtlas.enabled&&e.signInWithAtlas.connection_id&&n.appendChild(In(e,e.signInWithAtlas.connection_id));for(let d of t){let c=e.nativeProviders.find(m=>m.provider===d),p=d==="google"&&(c!=null&&c.client_id)?Hn(e,c.client_id):Bn(e,d);p.getAttribute("data-atlas-provider")||p.setAttribute("data-atlas-provider",d),n.appendChild(p)}let o=e.social.layout==="carousel"?Fn(e,n):n;if(!(e.social.search==="always"||e.social.search==="auto"&&t.length>qe))return o;let a=u(e,"div","atlas-embed-social-field"),i=w(e).createElement("input");i.type="search",i.className="atlas-embed-social-search",i.setAttribute("placeholder","Search sign-in options\u2026"),i.setAttribute("aria-label","Search sign-in options"),i.autocomplete="off";let l=u(e,"div","atlas-embed-social-empty");l.textContent="No matching sign-in options.",l.setAttribute("hidden","");let s=Array.from(n.children);return i.addEventListener("input",()=>{var p;let d=i.value.trim().toLowerCase(),c=0;for(let m of s){let b=(p=m.getAttribute("data-atlas-provider"))!=null?p:"",h=d===""||se(b).toLowerCase().includes(d)||b.toLowerCase().includes(d);m.toggleAttribute("hidden",!h),h&&(c+=1)}l.toggleAttribute("hidden",c!==0),n.dispatchEvent(new Event("scroll"))}),a.appendChild(i),a.appendChild(o),a.appendChild(l),a}function Fn(e,t){var d;let n=(d=w(e).defaultView)!=null?d:typeof window!="undefined"?window:null,o=u(e,"div","atlas-embed-carousel"),r=c=>{let p=u(e,"button","atlas-embed-carousel-nav");return p.type="button",p.setAttribute("data-dir",c),p.setAttribute("aria-label",c==="prev"?"Scroll to previous sign-in options":"Scroll to more sign-in options"),p.innerHTML=c==="prev"?at:rt,p.addEventListener("click",()=>{let m=Math.max(t.clientWidth*.8,140);typeof t.scrollBy=="function"&&t.scrollBy({left:(c==="prev"?-1:1)*m,behavior:"smooth"})}),p},a=r("prev"),i=r("next"),l=()=>{let c=t.scrollWidth-t.clientWidth,p=c>2;o.setAttribute("data-overflow",p?"true":"false"),a.disabled=!p||t.scrollLeft<=1,i.disabled=!p||t.scrollLeft>=c-1};t.addEventListener("scroll",l,{passive:!0});let s=n&&n.ResizeObserver;return s?new s(l).observe(t):n&&n.addEventListener("resize",l),n!=null&&n.requestAnimationFrame&&n.requestAnimationFrame(l),l(),o.appendChild(a),o.appendChild(t),o.appendChild(i),o}function Et(e,t,n="button"){var d;let{variant:o,labels:r}=e.social,a=se(t),i=(d=r[t])!=null?d:o==="block"?`Continue with ${a}`:a,l=u(e,n,x(e,"socialButton","atlas-embed-social-button"));n==="button"&&(l.type="button"),l.setAttribute("data-atlas-provider",t),l.setAttribute("data-variant",o);let s=xt(t);if(s){let c=w(e).createElement("span");c.className="atlas-embed-social-icon",c.innerHTML=s,l.appendChild(c)}if(o==="icon")l.setAttribute("aria-label",`Continue with ${a}`),l.setAttribute("title",a);else{let c=w(e).createElement("span");c.className="atlas-embed-social-label",c.textContent=i,l.appendChild(c)}return l}function Bn(e,t){let n=Et(e,t);return n.addEventListener("click",()=>{ot.has(t)?(e.handlePrompt=t,_(e)):le(e,t)}),n}function St(e,t){let n=se(t),o=w(e).createElement("form");o.className="atlas-embed-form",o.setAttribute("novalidate","true");for(let s of e.state.errors.filter(d=>!d.param))o.appendChild(u(e,"div","atlas-embed-form-error",s.message));let r=u(e,"label",x(e,"field","atlas-embed-field"));r.appendChild(u(e,"span",x(e,"label","atlas-embed-label"),`${n} handle`));let a=w(e).createElement("input");a.className=x(e,"input","atlas-embed-input"),a.type="text",a.name="identifier",a.placeholder="you.bsky.social",a.setAttribute("autocomplete","username"),a.setAttribute("autocapitalize","none"),a.setAttribute("spellcheck","false"),r.appendChild(a),o.appendChild(r);let i=K(e,z[e.mode].submit);o.appendChild(i);let l=u(e,"button","atlas-embed-handle-back","Back");return l.type="button",l.addEventListener("click",()=>{e.handlePrompt=null,e.state={...e.state,errors:[]},_(e)}),o.appendChild(l),o.addEventListener("submit",s=>{s.preventDefault();let d=a.value.trim();if(!d){e.state={...e.state,errors:[{code:"validation_error",message:`Enter your ${n} handle.`}]},_(e);return}le(e,t,d)}),o}function Hn(e,t){let n=Et(e,"google","div");return n.setAttribute("role","button"),n.setAttribute("tabindex","0"),Be({wrapper:n,clientId:t,onCredential:o=>void ut(e,"google",o),onError:()=>$(e,"Google sign-in could not start.")}).catch(()=>{n.addEventListener("click",()=>void le(e,"google"))}),n}function $(e,t){e.root.textContent="";let n=u(e,"div",x(e,"card","atlas-embed-card"));n.appendChild(u(e,"p","atlas-embed-note",t)),e.root.appendChild(n)}function Ct(e){e.root.textContent="";let t=u(e,"div",x(e,"card","atlas-embed-card")),n=e.interaction.loading,o=u(e,"div","atlas-embed-loading");if(o.setAttribute("data-loading",n),o.setAttribute("role","status"),o.setAttribute("aria-label","Loading"),n==="skeleton")for(let a of["title","sub","input","input","button"])o.appendChild(u(e,"div",`atlas-embed-skel atlas-embed-skel-${a}`));else if(n==="dots")for(let a=0;a<3;a+=1)o.appendChild(u(e,"span","atlas-embed-dot"));else n==="bar"?o.appendChild(u(e,"span","atlas-embed-loadbar")):o.appendChild(u(e,"span","atlas-embed-spinner"));let r=u(e,"span","atlas-embed-sr","Loading\u2026");o.appendChild(r),t.appendChild(o),e.root.appendChild(t)}function F(e,t){e.state={...e.state,errors:[...t]},_(e)}function _(e){var d,c,p,m,b,h,y,v,R,P;e.root.textContent="";let t=u(e,"div",x(e,"card","atlas-embed-card")),n=(c=(d=e.appearance)==null?void 0:d.logoUrl)!=null?c:null;if(n){let g=w(e).createElement("img");g.className="atlas-embed-logo",g.src=n,g.alt=(m=(p=e.appearance)==null?void 0:p.applicationName)!=null?m:"",t.appendChild(g)}if(e.resetFlow){let g=`reset_${U(e.resetFlow)}`;if(t.setAttribute("data-step",g),g!==e.lastStepKind&&t.setAttribute("data-enter",""),e.lastStepKind=g,t.appendChild(gt(e)),(b=e.appearance)!=null&&b.footer&&t.appendChild(u(e,"p",x(e,"footer","atlas-embed-footer"),e.appearance.footer)),e.root.appendChild(t),t.hasAttribute("data-enter")){let E=t.querySelector("[data-atlas-autofocus]");E instanceof HTMLElement&&E.focus()}return}let o=e.state.attempt?H(e.state.attempt):{kind:"collect_identifier"},r=e.mode==="sign-up"&&!e.state.attempt,a=r||o.kind==="collect_identifier",i=e.handlePrompt?"handle":o.kind;t.setAttribute("data-step",i),i!==e.lastStepKind&&t.setAttribute("data-enter",""),e.lastStepKind=i;let l=(y=(h=e.appearance)==null?void 0:h.headline)!=null?y:z[e.mode].title;t.appendChild(u(e,"h1",x(e,"title","atlas-embed-title"),l));let s=a?null:On(e,o.kind);if(s?t.appendChild(s):(v=e.appearance)!=null&&v.subheadline&&t.appendChild(u(e,"p",x(e,"subtitle","atlas-embed-subtitle"),e.appearance.subheadline)),e.flash&&t.appendChild(u(e,"div","atlas-embed-flash",e.flash)),e.handlePrompt){t.appendChild(St(e,e.handlePrompt)),(R=e.appearance)!=null&&R.footer&&t.appendChild(u(e,"p",x(e,"footer","atlas-embed-footer"),e.appearance.footer)),e.root.appendChild(t);return}if(a&&(Se(e).length>0||e.signInWithAtlas.enabled)&&(t.appendChild(wt(e)),t.appendChild(u(e,"div",x(e,"divider","atlas-embed-divider"),"or"))),t.appendChild(r?yt(e):ht(e,o.kind)),a&&e.mode==="sign-in"&&e.passkeyEnabled&&N()&&t.appendChild(_t(e)),(P=e.appearance)!=null&&P.footer&&t.appendChild(u(e,"p",x(e,"footer","atlas-embed-footer"),e.appearance.footer)),e.root.appendChild(t),t.hasAttribute("data-enter")){let g=t.querySelector("[data-atlas-autofocus]");g instanceof HTMLElement&&g.focus()}}function On(e,t){let n=e.enteredIdentifier,o=null,r=!1;switch(t){case"collect_email_code":o=n?`Enter the code we sent to ${n}`:"Enter the code we sent to your email",r=!0;break;case"collect_first_factor":o=n?`Enter the password for ${n}`:"Enter your password",r=!0;break;case"collect_second_factor":o=e.backupCodeMode?"Enter one of your backup codes":"Enter the code from your authenticator app";break;case"collect_new_password":o="Choose a new password";break;case"enroll_second_factor":o="Enter two codes from your authenticator app to finish setup";break;default:return null}let a=u(e,"div","atlas-embed-step-context");if(a.appendChild(u(e,"p",x(e,"subtitle","atlas-embed-subtitle"),o)),r){let i=u(e,"button","atlas-embed-step-back","Use a different email");i.type="button",i.addEventListener("click",()=>Dn(e)),a.appendChild(i)}return a}function Dn(e){e.state=M,e.backupCodeMode=!1,e.handlePrompt=null,e.enteredIdentifier=null,_(e)}var V=class{constructor(t,n){this.root=t;this.options=n;f(this,"client");f(this,"mode");f(this,"appearance",null);f(this,"providers",[]);f(this,"nativeProviders",[]);f(this,"signInWithAtlas",{enabled:!1});f(this,"social",ve(void 0,void 0));f(this,"codeInputStyle","boxes");f(this,"interaction",ie(void 0,void 0));f(this,"backupCodeMode",!1);f(this,"enteredIdentifier",null);f(this,"lastStepKind",null);f(this,"signUpFields",[]);f(this,"passwordEnabled",!0);f(this,"passkeyEnabled",!1);f(this,"conditionalAbort");f(this,"rememberMeEnabled",!1);f(this,"remember",!0);f(this,"trustedDeviceEnabled",!1);f(this,"rememberDevice",!1);f(this,"captchaFlows",{});f(this,"captchaHost");f(this,"state",M);f(this,"resetFlow",null);f(this,"flash",null);f(this,"handlePrompt",null);f(this,"busy",!1);f(this,"recorder");var o,r;this.mode=(o=n.mode)!=null?o:"sign-in",this.interaction=ie(void 0,(r=n.appearance)==null?void 0:r.interaction),this.client=Qe({publishableKey:n.publishableKey,frontendApi:n.frontendApi,fetchImpl:n.fetchImpl})}async mount(){var o,r,a,i,l,s,d,c,p,m,b,h,y,v,R,P,g,E,A;if(nt((o=this.root.ownerDocument)!=null?o:document),this.root.classList.add("atlas-embed-root"),this.applyTheme(),this.applyInteraction(),Ct(this),await ct(this))return;let n=await et(this.client);if(n){this.appearance=n.appearance;let S=(r=n.provider_scopes)!=null?r:{},T=pe=>{let ue=S[pe];return ue?this.mode==="sign-up"?ue.sign_up:ue.sign_in:!0};this.providers=Je((a=n.providers)!=null?a:[],n.appearance).filter(T),this.nativeProviders=((i=n.native_providers)!=null?i:[]).filter(pe=>T(pe.provider)),this.passwordEnabled=(s=(l=n.strategies)==null?void 0:l.password)!=null?s:!0,this.passkeyEnabled=(c=(d=n.strategies)==null?void 0:d.passkey)!=null?c:!1,this.signInWithAtlas=(p=n.sign_in_with_atlas)!=null?p:{enabled:!1},this.rememberMeEnabled=n.rememberMe===!0,this.trustedDeviceEnabled=n.rememberDevice===!0,this.captchaFlows=(m=n.captchaFlows)!=null?m:{},this.applyTheme()}this.social=ve((b=this.appearance)==null?void 0:b.socialButtons,(h=this.options.appearance)==null?void 0:h.socialButtons),this.codeInputStyle=$e((y=this.appearance)==null?void 0:y.codeInput,(v=this.options.appearance)==null?void 0:v.codeInput),this.interaction=ie((R=this.appearance)==null?void 0:R.interaction,(P=this.options.appearance)==null?void 0:P.interaction),this.applyInteraction(),this.signUpFields=(E=(g=this.appearance)==null?void 0:g.signUpFields)!=null?E:[];try{this.recorder=new te((A=this.root.ownerDocument)!=null?A:document)}catch{}_(this),kt(this)}applyTheme(){let t=Ye(this.appearance,this.options.appearance),n=Xe(t);for(let[o,r]of Object.entries(n))this.root.style.setProperty(o,r)}applyInteraction(){let t=this.interaction;this.root.setAttribute("data-button-style",t.buttonStyle),this.root.setAttribute("data-button-effect",t.buttonEffect),this.root.setAttribute("data-shadow",t.shadow),this.root.setAttribute("data-density",t.density),this.root.setAttribute("data-input-style",t.inputStyle);let n=t.animations?Ge[t.motionSpeed]:0;this.root.style.setProperty("--atlas-embed-motion",`${n}ms`)}};var W={};function At(e){W=e}function Tt(e){if(!e)return{};let t=e.dataset,n={};return t.atlasKey&&(n.publishableKey=t.atlasKey),t.atlasFapi&&(n.frontendApi=t.atlasFapi),t.atlasRedirect&&(n.redirect=t.atlasRedirect),n}function Rt(e,t){var s,d,c,p,m,b;let n=e.dataset,o=h=>{var y;return(y=e.getAttribute(h))!=null?y:void 0},r=(d=(s=n.atlasKey)!=null?s:o("publishable-key"))!=null?d:W.publishableKey,a=(p=(c=n.atlasFapi)!=null?c:o("frontend-api"))!=null?p:W.frontendApi,i=(b=(m=n.atlasRedirect)!=null?m:o("redirect"))!=null?b:W.redirect;if(!r||!a)return null;let l={publishableKey:r,frontendApi:a,mode:t};return i&&(l.redirect=i),l}function Pt(e,t={}){var r,a,i;let n=(r=t.publishableKey)!=null?r:W.publishableKey,o=(a=t.frontendApi)!=null?a:W.frontendApi;return!n||!o?null:{...t,publishableKey:n,frontendApi:o,redirect:(i=t.redirect)!=null?i:W.redirect,mode:e}}var ce=class extends HTMLElement{constructor(){super(...arguments);f(this,"widget",null)}connectedCallback(){if(this.widget)return;let n=Rt(this,this.mode);if(!n){this.textContent="Atlas: set data-atlas-key (publishable key) and data-atlas-fapi (frontend API origin).";return}this.widget=new V(this,n),this.widget.mount()}},Ce=class extends ce{constructor(){super(...arguments);f(this,"mode","sign-in")}},Ae=class extends ce{constructor(){super(...arguments);f(this,"mode","sign-up")}};function Te(){typeof customElements!="undefined"&&(customElements.get("atlas-sign-in")||customElements.define("atlas-sign-in",Ce),customElements.get("atlas-sign-up")||customElements.define("atlas-sign-up",Ae))}function zn(e){let t=typeof e=="string"?document.querySelector(e):e;return t instanceof HTMLElement?t:null}function Mt(e,t,n){let o=zn(t);if(!o)return null;let r=Pt(e,n);if(!r)return o.textContent="Atlas: a publishable key and a frontend API origin are required to mount the widget.",null;let a=new V(o,r);return a.mount(),a}function Lt(e,t={}){return Mt("sign-in",e,t)}function It(e,t={}){return Mt("sign-up",e,t)}function Wn(){var t;let e=document.currentScript;return e instanceof HTMLScriptElement?e:(t=document.querySelector("script[data-atlas-key]"))!=null?t:document.querySelector('script[src*="embed.js"]')}function Nn(){At(Tt(Wn())),Te(),window.Atlas={mountSignIn:Lt,mountSignUp:It,defineElements:Te}}Nn();})();
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Inline brand marks for the social sign-in buttons.
3
+ *
4
+ * A curated set covering the common providers, inlined as SVG strings so the
5
+ * widget stays dependency-free and the bundle carries only what it draws. Marks
6
+ * whose brand colour is near-black (GitHub, Apple, X, Notion) render in
7
+ * `currentColor` so they stay visible on a dark panel; the rest keep their
8
+ * brand colour, which reads on both light and dark. Google and Microsoft use
9
+ * their multi-colour marks. An unknown provider returns null — the button then
10
+ * shows its label with no icon, never a broken image.
11
+ */
12
+ /**
13
+ * An inline SVG string for a provider's brand mark, or null when we have none.
14
+ * The SVG carries no width/height — the button CSS sizes it — so one mark works
15
+ * at every button size.
16
+ */
17
+ export declare function providerIcon(id: string): string | null;