@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.
- package/dist/appearance.d.ts +293 -0
- package/dist/appearance.js +206 -0
- package/dist/appearance.js.map +1 -0
- package/dist/client.d.ts +12 -0
- package/dist/client.js +49 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +27 -0
- package/dist/config.js +61 -0
- package/dist/config.js.map +1 -0
- package/dist/element.d.ts +23 -0
- package/dist/element.js +51 -0
- package/dist/element.js.map +1 -0
- package/dist/embed.js +361 -0
- package/dist/icons.d.ts +17 -0
- package/dist/icons.js +53 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/mount.d.ts +7 -0
- package/dist/mount.js +33 -0
- package/dist/mount.js.map +1 -0
- package/dist/redirect.d.ts +17 -0
- package/dist/redirect.js +51 -0
- package/dist/redirect.js.map +1 -0
- package/dist/standalone.d.ts +25 -0
- package/dist/standalone.js +34 -0
- package/dist/standalone.js.map +1 -0
- package/dist/styles.d.ts +17 -0
- package/dist/styles.js +389 -0
- package/dist/styles.js.map +1 -0
- package/dist/widget/captcha.d.ts +21 -0
- package/dist/widget/captcha.js +197 -0
- package/dist/widget/captcha.js.map +1 -0
- package/dist/widget/constants.d.ts +16 -0
- package/dist/widget/constants.js +14 -0
- package/dist/widget/constants.js.map +1 -0
- package/dist/widget/dom.d.ts +18 -0
- package/dist/widget/dom.js +71 -0
- package/dist/widget/dom.js.map +1 -0
- package/dist/widget/flow.d.ts +41 -0
- package/dist/widget/flow.js +424 -0
- package/dist/widget/flow.js.map +1 -0
- package/dist/widget/forms.d.ts +35 -0
- package/dist/widget/forms.js +499 -0
- package/dist/widget/forms.js.map +1 -0
- package/dist/widget/passkey.d.ts +18 -0
- package/dist/widget/passkey.js +88 -0
- package/dist/widget/passkey.js.map +1 -0
- package/dist/widget/render.d.ts +21 -0
- package/dist/widget/render.js +210 -0
- package/dist/widget/render.js.map +1 -0
- package/dist/widget/social.d.ts +44 -0
- package/dist/widget/social.js +331 -0
- package/dist/widget/social.js.map +1 -0
- package/dist/widget.d.ts +124 -0
- package/dist/widget.js +182 -0
- package/dist/widget.js.map +1 -0
- 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();})();
|
package/dist/icons.d.ts
ADDED
|
@@ -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;
|