@firebase-oss/ui-core 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="48px" height="48px"><path fill="currentColor" d="M 44.527344 34.75 C 43.449219 37.144531 42.929688 38.214844 41.542969 40.328125 C 39.601563 43.28125 36.863281 46.96875 33.480469 46.992188 C 30.46875 47.019531 29.691406 45.027344 25.601563 45.0625 C 21.515625 45.082031 20.664063 47.03125 17.648438 47 C 14.261719 46.96875 11.671875 43.648438 9.730469 40.699219 C 4.300781 32.429688 3.726563 22.734375 7.082031 17.578125 C 9.457031 13.921875 13.210938 11.773438 16.738281 11.773438 C 20.332031 11.773438 22.589844 13.746094 25.558594 13.746094 C 28.441406 13.746094 30.195313 11.769531 34.351563 11.769531 C 37.492188 11.769531 40.8125 13.480469 43.1875 16.433594 C 35.421875 20.691406 36.683594 31.78125 44.527344 34.75 Z M 31.195313 8.46875 C 32.707031 6.527344 33.855469 3.789063 33.4375 1 C 30.972656 1.167969 28.089844 2.742188 26.40625 4.78125 C 24.878906 6.640625 23.613281 9.398438 24.105469 12.066406 C 26.796875 12.152344 29.582031 10.546875 31.195313 8.46875 Z"/></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0"?><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="48px" height="48px"><path fill="currentColor" d="M25,3C12.85,3,3,12.85,3,25c0,11.03,8.125,20.137,18.712,21.728V30.831h-5.443v-5.783h5.443v-3.848 c0-6.371,3.104-9.168,8.399-9.168c2.536,0,3.877,0.188,4.512,0.274v5.048h-3.612c-2.248,0-3.033,2.131-3.033,4.533v3.161h6.588 l-0.894,5.783h-5.694v15.944C38.716,45.318,47,36.137,47,25C47,12.85,37.15,3,25,3z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" width="48px" height="48px" fill="currentColor"><path d="M15,3C8.373,3,3,8.373,3,15c0,5.623,3.872,10.328,9.092,11.63C12.036,26.468,12,26.28,12,26.047v-2.051 c-0.487,0-1.303,0-1.508,0c-0.821,0-1.551-0.353-1.905-1.009c-0.393-0.729-0.461-1.844-1.435-2.526 c-0.289-0.227-0.069-0.486,0.264-0.451c0.615,0.174,1.125,0.596,1.605,1.222c0.478,0.627,0.703,0.769,1.596,0.769 c0.433,0,1.081-0.025,1.691-0.121c0.328-0.833,0.895-1.6,1.588-1.962c-3.996-0.411-5.903-2.399-5.903-5.098 c0-1.162,0.495-2.286,1.336-3.233C9.053,10.647,8.706,8.73,9.435,8c1.798,0,2.885,1.166,3.146,1.481C13.477,9.174,14.461,9,15.495,9 c1.036,0,2.024,0.174,2.922,0.483C18.675,9.17,19.763,8,21.565,8c0.732,0.731,0.381,2.656,0.102,3.594 c0.836,0.945,1.328,2.066,1.328,3.226c0,2.697-1.904,4.684-5.894,5.097C18.199,20.49,19,22.1,19,23.313v2.734 c0,0.104-0.023,0.179-0.035,0.268C23.641,24.676,27,20.236,27,15C27,8.373,21.627,3,15,3z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><path fill="#FFC107" d="M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12c0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24c0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z"/><path fill="#FF3D00" d="M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z"/><path fill="#4CAF50" d="M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z"/><path fill="#1976D2" d="M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><path fill="#00c300" d="M12.5,42h23c3.59,0,6.5-2.91,6.5-6.5v-23C42,8.91,39.09,6,35.5,6h-23C8.91,6,6,8.91,6,12.5v23C6,39.09,8.91,42,12.5,42z"/><path fill="#fff" d="M37.113,22.417c0-5.865-5.88-10.637-13.107-10.637s-13.108,4.772-13.108,10.637c0,5.258,4.663,9.662,10.962,10.495c0.427,0.092,1.008,0.282,1.155,0.646c0.132,0.331,0.086,0.85,0.042,1.185c0,0-0.153,0.925-0.187,1.122c-0.057,0.331-0.263,1.296,1.135,0.707c1.399-0.589,7.548-4.445,10.298-7.611h-0.001C36.203,26.879,37.113,24.764,37.113,22.417z M18.875,25.907h-2.604c-0.379,0-0.687-0.308-0.687-0.688V20.01c0-0.379,0.308-0.687,0.687-0.687c0.379,0,0.687,0.308,0.687,0.687v4.521h1.917c0.379,0,0.687,0.308,0.687,0.687C19.562,25.598,19.254,25.907,18.875,25.907z M21.568,25.219c0,0.379-0.308,0.688-0.687,0.688s-0.687-0.308-0.687-0.688V20.01c0-0.379,0.308-0.687,0.687-0.687s0.687,0.308,0.687,0.687V25.219z M27.838,25.219c0,0.297-0.188,0.559-0.47,0.652c-0.071,0.024-0.145,0.036-0.218,0.036c-0.215,0-0.42-0.103-0.549-0.275l-2.669-3.635v3.222c0,0.379-0.308,0.688-0.688,0.688c-0.379,0-0.688-0.308-0.688-0.688V20.01c0-0.296,0.189-0.558,0.47-0.652c0.071-0.024,0.144-0.035,0.218-0.035c0.214,0,0.42,0.103,0.549,0.275l2.67,3.635V20.01c0-0.379,0.309-0.687,0.688-0.687c0.379,0,0.687,0.308,0.687,0.687V25.219z M32.052,21.927c0.379,0,0.688,0.308,0.688,0.688c0,0.379-0.308,0.687-0.688,0.687h-1.917v1.23h1.917c0.379,0,0.688,0.308,0.688,0.687c0,0.379-0.309,0.688-0.688,0.688h-2.604c-0.378,0-0.687-0.308-0.687-0.688v-2.603c0-0.001,0-0.001,0-0.001c0,0,0-0.001,0-0.001v-2.601c0-0.001,0-0.001,0-0.002c0-0.379,0.308-0.687,0.687-0.687h2.604c0.379,0,0.688,0.308,0.688,0.687s-0.308,0.687-0.688,0.687h-1.917v1.23H32.052z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><path fill="#ff5722" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"/><path fill="#4caf50" d="M26 6H42V22H26z" transform="rotate(-180 34 14)"/><path fill="#ffc107" d="M26 26H42V42H26z" transform="rotate(-180 34 34)"/><path fill="#03a9f4" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="48px" height="48px"><path fill="currentColor" d="M 46.773438 35.078125 C 40.96875 34.121094 38.316406 28.109375 38.230469 27.914063 C 38.21875 27.878906 38.191406 27.816406 38.175781 27.78125 C 38 27.429688 37.824219 26.933594 37.972656 26.582031 C 38.226563 25.980469 39.433594 25.597656 40.15625 25.367188 C 40.410156 25.285156 40.652344 25.210938 40.839844 25.136719 C 42.59375 24.441406 43.46875 23.535156 43.449219 22.433594 C 43.433594 21.546875 42.753906 20.734375 41.753906 20.382813 C 41.40625 20.234375 41.007813 20.160156 40.605469 20.160156 C 40.332031 20.160156 39.917969 20.199219 39.519531 20.382813 C 38.851563 20.695313 38.265625 20.863281 37.847656 20.882813 C 37.757813 20.878906 37.679688 20.871094 37.613281 20.859375 L 37.65625 20.171875 C 37.851563 17.0625 38.097656 13.1875 37.046875 10.832031 C 33.945313 3.890625 27.375 3.351563 25.433594 3.351563 L 24.550781 3.359375 C 22.613281 3.359375 16.054688 3.898438 12.960938 10.835938 C 11.910156 13.191406 12.152344 17.0625 12.351563 20.175781 L 12.359375 20.292969 C 12.371094 20.484375 12.382813 20.675781 12.394531 20.859375 C 11.960938 20.9375 11.113281 20.792969 10.234375 20.382813 C 9.039063 19.824219 6.886719 20.5625 6.589844 22.125 C 6.457031 22.816406 6.617188 24.128906 9.164063 25.132813 C 9.355469 25.210938 9.59375 25.285156 9.851563 25.367188 C 10.570313 25.597656 11.777344 25.976563 12.03125 26.582031 C 12.179688 26.933594 12.003906 27.429688 11.796875 27.855469 C 11.6875 28.109375 9.050781 34.121094 3.234375 35.078125 C 2.492188 35.199219 1.964844 35.855469 2.003906 36.613281 C 2.015625 36.8125 2.066406 37.011719 2.148438 37.207031 C 2.675781 38.445313 4.59375 39.296875 8.171875 39.878906 C 8.234375 40.089844 8.304688 40.402344 8.34375 40.574219 C 8.417969 40.929688 8.5 41.289063 8.609375 41.664063 C 8.714844 42.019531 9.078125 42.84375 10.210938 42.84375 C 10.554688 42.84375 10.929688 42.769531 11.332031 42.691406 C 11.925781 42.574219 12.667969 42.429688 13.621094 42.429688 C 14.152344 42.429688 14.699219 42.476563 15.25 42.566406 C 16.265625 42.734375 17.183594 43.386719 18.25 44.136719 C 19.914063 45.316406 21.800781 46.648438 24.726563 46.648438 C 24.804688 46.648438 24.882813 46.644531 24.957031 46.640625 C 25.0625 46.644531 25.171875 46.648438 25.28125 46.648438 C 28.207031 46.648438 30.09375 45.3125 31.761719 44.136719 C 32.777344 43.414063 33.738281 42.738281 34.757813 42.566406 C 35.308594 42.476563 35.855469 42.429688 36.386719 42.429688 C 37.304688 42.429688 38.03125 42.546875 38.679688 42.675781 C 39.140625 42.765625 39.507813 42.808594 39.847656 42.808594 C 40.605469 42.808594 41.1875 42.375 41.398438 41.648438 C 41.507813 41.28125 41.585938 40.925781 41.664063 40.566406 C 41.695313 40.433594 41.769531 40.097656 41.835938 39.875 C 45.414063 39.292969 47.332031 38.441406 47.855469 37.214844 C 47.941406 37.019531 47.988281 36.816406 48.003906 36.605469 C 48.042969 35.859375 47.515625 35.203125 46.773438 35.078125 Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" width="48px" height="48px" fill="currentColor"><path d="M26.37,26l-8.795-12.822l0.015,0.012L25.52,4h-2.65l-6.46,7.48L11.28,4H4.33l8.211,11.971L12.54,15.97L3.88,26h2.65 l7.182-8.322L19.42,26H26.37z M10.23,6l12.34,18h-2.1L8.12,6H10.23z"/></svg>
package/dist/index.cjs ADDED
@@ -0,0 +1,3 @@
1
+ 'use strict';var app=require('firebase/app'),auth=require('firebase/auth'),Fe=require('qrcode-generator'),uiTranslations=require('@firebase-oss/ui-translations'),libphonenumberJs=require('libphonenumber-js'),nanostores=require('nanostores'),n=require('zod');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var Fe__default=/*#__PURE__*/_interopDefault(Fe);var n__namespace=/*#__PURE__*/_interopNamespace(n);function F(e,o){app.registerVersion("firebase-ui-web",o,e);}var A={version:"0.0.1"};function s(e,o,a){return uiTranslations.getTranslation(e.locale,o,a)}var j=class e extends app.FirebaseError{constructor(o,a){let r=s(o,"errors",uiTranslations.ERROR_CODE_MAP[a.code]);super(a.code,r||a.message),Object.setPrototypeOf(this,e.prototype);}};function l(e,o){if(!J(o))throw o;if(o.code==="auth/account-exists-with-different-credential"&&Z(o)&&window.sessionStorage.setItem("pendingCred",JSON.stringify(o.credential.toJSON())),o.code==="auth/multi-factor-auth-required"){let a=auth.getMultiFactorResolver(e.auth,o);e.setMultiFactorResolver(a);}throw new j(e,o)}function J(e){return !!e&&typeof e=="object"&&"code"in e&&"message"in e}function Z(e){return "credential"in e}var T=async(e,o,a)=>{let r=e.auth.currentUser;if(!r?.isAnonymous)return;let t=r.uid,i=await auth.linkWithCredential(r,o);return a&&await a(e,t,i),i},x=async(e,o,a)=>{let r=e.auth.currentUser;if(!r?.isAnonymous)return;let t=r.uid;window.localStorage.setItem("fbui:upgrade:oldUserId",t);let i=await p(e,"providerLinkStrategy")(e,r,o);return window.localStorage.removeItem("fbui:upgrade:oldUserId"),a&&await a(e,t,i),i},P=async(e,o,a)=>{let r=window.localStorage.getItem("fbui:upgrade:oldUserId");r&&window.localStorage.removeItem("fbui:upgrade:oldUserId"),!(!a||!r||!o)&&await a(e,r,o);};var R=async e=>{let o=e.auth;o.currentUser||await auth.signInAnonymously(o);};var w=(e,o,a)=>new auth.RecaptchaVerifier(e.auth,o,{size:a?.size??"invisible",theme:a?.theme??"light",tabindex:a?.tabindex??0});var H=async(e,o)=>auth.signInWithRedirect(e.auth,o),M=async(e,o)=>auth.signInWithPopup(e.auth,o),B=async(e,o,a)=>auth.linkWithRedirect(o,a),E=async(e,o,a)=>auth.linkWithPopup(o,a);var N=async(e,o)=>{if(e.auth.currentUser&&!e.auth.currentUser.isAnonymous||document.querySelector("script[data-one-tap-sign-in]"))return;let a=document.createElement("script");a.setAttribute("data-one-tap-sign-in","true"),a.src="https://accounts.google.com/gsi/client",a.async=true,a.onload=()=>{window.google.accounts.id.initialize({client_id:o.clientId,auto_select:o.autoSelect,cancel_on_tap_outside:o.cancelOnTapOutside,context:o.context,ux_mode:o.uxMode,log_level:o.logLevel,callback:async r=>{let t=auth.GoogleAuthProvider.credential(r.credential);await I(e,t);}}),window.google.accounts.id.prompt();},document.body.appendChild(a);};var L=async(e,o,a)=>{await auth.updateProfile(o,{displayName:a});};var g=[{name:"Afghanistan",dialCode:"+93",code:"AF",emoji:"\u{1F1E6}\u{1F1EB}"},{name:"Albania",dialCode:"+355",code:"AL",emoji:"\u{1F1E6}\u{1F1F1}"},{name:"Algeria",dialCode:"+213",code:"DZ",emoji:"\u{1F1E9}\u{1F1FF}"},{name:"American Samoa",dialCode:"+1",code:"AS",emoji:"\u{1F1E6}\u{1F1F8}"},{name:"Andorra",dialCode:"+376",code:"AD",emoji:"\u{1F1E6}\u{1F1E9}"},{name:"Angola",dialCode:"+244",code:"AO",emoji:"\u{1F1E6}\u{1F1F4}"},{name:"Anguilla",dialCode:"+1",code:"AI",emoji:"\u{1F1E6}\u{1F1EE}"},{name:"Antigua and Barbuda",dialCode:"+1",code:"AG",emoji:"\u{1F1E6}\u{1F1EC}"},{name:"Argentina",dialCode:"+54",code:"AR",emoji:"\u{1F1E6}\u{1F1F7}"},{name:"Armenia",dialCode:"+374",code:"AM",emoji:"\u{1F1E6}\u{1F1F2}"},{name:"Aruba",dialCode:"+297",code:"AW",emoji:"\u{1F1E6}\u{1F1FC}"},{name:"Ascension Island",dialCode:"+247",code:"AC",emoji:"\u{1F1E6}\u{1F1E8}"},{name:"Australia",dialCode:"+61",code:"AU",emoji:"\u{1F1E6}\u{1F1FA}"},{name:"Austria",dialCode:"+43",code:"AT",emoji:"\u{1F1E6}\u{1F1F9}"},{name:"Azerbaijan",dialCode:"+994",code:"AZ",emoji:"\u{1F1E6}\u{1F1FF}"},{name:"Bahamas",dialCode:"+1",code:"BS",emoji:"\u{1F1E7}\u{1F1F8}"},{name:"Bahrain",dialCode:"+973",code:"BH",emoji:"\u{1F1E7}\u{1F1ED}"},{name:"Bangladesh",dialCode:"+880",code:"BD",emoji:"\u{1F1E7}\u{1F1E9}"},{name:"Barbados",dialCode:"+1",code:"BB",emoji:"\u{1F1E7}\u{1F1E7}"},{name:"Belarus",dialCode:"+375",code:"BY",emoji:"\u{1F1E7}\u{1F1FE}"},{name:"Belgium",dialCode:"+32",code:"BE",emoji:"\u{1F1E7}\u{1F1EA}"},{name:"Belize",dialCode:"+501",code:"BZ",emoji:"\u{1F1E7}\u{1F1FF}"},{name:"Benin",dialCode:"+229",code:"BJ",emoji:"\u{1F1E7}\u{1F1EF}"},{name:"Bermuda",dialCode:"+1",code:"BM",emoji:"\u{1F1E7}\u{1F1F2}"},{name:"Bhutan",dialCode:"+975",code:"BT",emoji:"\u{1F1E7}\u{1F1F9}"},{name:"Bolivia",dialCode:"+591",code:"BO",emoji:"\u{1F1E7}\u{1F1F4}"},{name:"Bosnia and Herzegovina",dialCode:"+387",code:"BA",emoji:"\u{1F1E7}\u{1F1E6}"},{name:"Botswana",dialCode:"+267",code:"BW",emoji:"\u{1F1E7}\u{1F1FC}"},{name:"Brazil",dialCode:"+55",code:"BR",emoji:"\u{1F1E7}\u{1F1F7}"},{name:"British Indian Ocean Territory",dialCode:"+246",code:"IO",emoji:"\u{1F1EE}\u{1F1F4}"},{name:"British Virgin Islands",dialCode:"+1",code:"VG",emoji:"\u{1F1FB}\u{1F1EC}"},{name:"Brunei",dialCode:"+673",code:"BN",emoji:"\u{1F1E7}\u{1F1F3}"},{name:"Bulgaria",dialCode:"+359",code:"BG",emoji:"\u{1F1E7}\u{1F1EC}"},{name:"Burkina Faso",dialCode:"+226",code:"BF",emoji:"\u{1F1E7}\u{1F1EB}"},{name:"Burundi",dialCode:"+257",code:"BI",emoji:"\u{1F1E7}\u{1F1EE}"},{name:"Cambodia",dialCode:"+855",code:"KH",emoji:"\u{1F1F0}\u{1F1ED}"},{name:"Cameroon",dialCode:"+237",code:"CM",emoji:"\u{1F1E8}\u{1F1F2}"},{name:"Canada",dialCode:"+1",code:"CA",emoji:"\u{1F1E8}\u{1F1E6}"},{name:"Cape Verde",dialCode:"+238",code:"CV",emoji:"\u{1F1E8}\u{1F1FB}"},{name:"Caribbean Netherlands",dialCode:"+599",code:"BQ",emoji:"\u{1F1E7}\u{1F1F6}"},{name:"Cayman Islands",dialCode:"+1",code:"KY",emoji:"\u{1F1F0}\u{1F1FE}"},{name:"Central African Republic",dialCode:"+236",code:"CF",emoji:"\u{1F1E8}\u{1F1EB}"},{name:"Chad",dialCode:"+235",code:"TD",emoji:"\u{1F1F9}\u{1F1E9}"},{name:"Chile",dialCode:"+56",code:"CL",emoji:"\u{1F1E8}\u{1F1F1}"},{name:"China",dialCode:"+86",code:"CN",emoji:"\u{1F1E8}\u{1F1F3}"},{name:"Christmas Island",dialCode:"+61",code:"CX",emoji:"\u{1F1E8}\u{1F1FD}"},{name:"Cocos [Keeling] Islands",dialCode:"+61",code:"CC",emoji:"\u{1F1E8}\u{1F1E8}"},{name:"Colombia",dialCode:"+57",code:"CO",emoji:"\u{1F1E8}\u{1F1F4}"},{name:"Comoros",dialCode:"+269",code:"KM",emoji:"\u{1F1F0}\u{1F1F2}"},{name:"Democratic Republic Congo",dialCode:"+243",code:"CD",emoji:"\u{1F1E8}\u{1F1E9}"},{name:"Republic of Congo",dialCode:"+242",code:"CG",emoji:"\u{1F1E8}\u{1F1EC}"},{name:"Cook Islands",dialCode:"+682",code:"CK",emoji:"\u{1F1E8}\u{1F1F0}"},{name:"Costa Rica",dialCode:"+506",code:"CR",emoji:"\u{1F1E8}\u{1F1F7}"},{name:"C\xF4te d'Ivoire",dialCode:"+225",code:"CI",emoji:"\u{1F1E8}\u{1F1EE}"},{name:"Croatia",dialCode:"+385",code:"HR",emoji:"\u{1F1ED}\u{1F1F7}"},{name:"Cuba",dialCode:"+53",code:"CU",emoji:"\u{1F1E8}\u{1F1FA}"},{name:"Cura\xE7ao",dialCode:"+599",code:"CW",emoji:"\u{1F1E8}\u{1F1FC}"},{name:"Cyprus",dialCode:"+357",code:"CY",emoji:"\u{1F1E8}\u{1F1FE}"},{name:"Czech Republic",dialCode:"+420",code:"CZ",emoji:"\u{1F1E8}\u{1F1FF}"},{name:"Denmark",dialCode:"+45",code:"DK",emoji:"\u{1F1E9}\u{1F1F0}"},{name:"Djibouti",dialCode:"+253",code:"DJ",emoji:"\u{1F1E9}\u{1F1EF}"},{name:"Dominica",dialCode:"+1",code:"DM",emoji:"\u{1F1E9}\u{1F1F2}"},{name:"Dominican Republic",dialCode:"+1",code:"DO",emoji:"\u{1F1E9}\u{1F1F4}"},{name:"East Timor",dialCode:"+670",code:"TL",emoji:"\u{1F1F9}\u{1F1F1}"},{name:"Ecuador",dialCode:"+593",code:"EC",emoji:"\u{1F1EA}\u{1F1E8}"},{name:"Egypt",dialCode:"+20",code:"EG",emoji:"\u{1F1EA}\u{1F1EC}"},{name:"El Salvador",dialCode:"+503",code:"SV",emoji:"\u{1F1F8}\u{1F1FB}"},{name:"Equatorial Guinea",dialCode:"+240",code:"GQ",emoji:"\u{1F1EC}\u{1F1F6}"},{name:"Eritrea",dialCode:"+291",code:"ER",emoji:"\u{1F1EA}\u{1F1F7}"},{name:"Estonia",dialCode:"+372",code:"EE",emoji:"\u{1F1EA}\u{1F1EA}"},{name:"Ethiopia",dialCode:"+251",code:"ET",emoji:"\u{1F1EA}\u{1F1F9}"},{name:"Falkland Islands [Islas Malvinas]",dialCode:"+500",code:"FK",emoji:"\u{1F1EB}\u{1F1F0}"},{name:"Faroe Islands",dialCode:"+298",code:"FO",emoji:"\u{1F1EB}\u{1F1F4}"},{name:"Fiji",dialCode:"+679",code:"FJ",emoji:"\u{1F1EB}\u{1F1EF}"},{name:"Finland",dialCode:"+358",code:"FI",emoji:"\u{1F1EB}\u{1F1EE}"},{name:"France",dialCode:"+33",code:"FR",emoji:"\u{1F1EB}\u{1F1F7}"},{name:"French Guiana",dialCode:"+594",code:"GF",emoji:"\u{1F1EC}\u{1F1EB}"},{name:"French Polynesia",dialCode:"+689",code:"PF",emoji:"\u{1F1F5}\u{1F1EB}"},{name:"Gabon",dialCode:"+241",code:"GA",emoji:"\u{1F1EC}\u{1F1E6}"},{name:"Gambia",dialCode:"+220",code:"GM",emoji:"\u{1F1EC}\u{1F1F2}"},{name:"Georgia",dialCode:"+995",code:"GE",emoji:"\u{1F1EC}\u{1F1EA}"},{name:"Germany",dialCode:"+49",code:"DE",emoji:"\u{1F1E9}\u{1F1EA}"},{name:"Ghana",dialCode:"+233",code:"GH",emoji:"\u{1F1EC}\u{1F1ED}"},{name:"Gibraltar",dialCode:"+350",code:"GI",emoji:"\u{1F1EC}\u{1F1EE}"},{name:"Greece",dialCode:"+30",code:"GR",emoji:"\u{1F1EC}\u{1F1F7}"},{name:"Greenland",dialCode:"+299",code:"GL",emoji:"\u{1F1EC}\u{1F1F1}"},{name:"Grenada",dialCode:"+1",code:"GD",emoji:"\u{1F1EC}\u{1F1E9}"},{name:"Guadeloupe",dialCode:"+590",code:"GP",emoji:"\u{1F1EC}\u{1F1F5}"},{name:"Guam",dialCode:"+1",code:"GU",emoji:"\u{1F1EC}\u{1F1FA}"},{name:"Guatemala",dialCode:"+502",code:"GT",emoji:"\u{1F1EC}\u{1F1F9}"},{name:"Guernsey",dialCode:"+44",code:"GG",emoji:"\u{1F1EC}\u{1F1EC}"},{name:"Guinea Conakry",dialCode:"+224",code:"GN",emoji:"\u{1F1EC}\u{1F1F3}"},{name:"Guinea-Bissau",dialCode:"+245",code:"GW",emoji:"\u{1F1EC}\u{1F1FC}"},{name:"Guyana",dialCode:"+592",code:"GY",emoji:"\u{1F1EC}\u{1F1FE}"},{name:"Haiti",dialCode:"+509",code:"HT",emoji:"\u{1F1ED}\u{1F1F9}"},{name:"Honduras",dialCode:"+504",code:"HN",emoji:"\u{1F1ED}\u{1F1F3}"},{name:"Hong Kong",dialCode:"+852",code:"HK",emoji:"\u{1F1ED}\u{1F1F0}"},{name:"Hungary",dialCode:"+36",code:"HU",emoji:"\u{1F1ED}\u{1F1FA}"},{name:"Iceland",dialCode:"+354",code:"IS",emoji:"\u{1F1EE}\u{1F1F8}"},{name:"India",dialCode:"+91",code:"IN",emoji:"\u{1F1EE}\u{1F1F3}"},{name:"Indonesia",dialCode:"+62",code:"ID",emoji:"\u{1F1EE}\u{1F1E9}"},{name:"Iran",dialCode:"+98",code:"IR",emoji:"\u{1F1EE}\u{1F1F7}"},{name:"Iraq",dialCode:"+964",code:"IQ",emoji:"\u{1F1EE}\u{1F1F6}"},{name:"Ireland",dialCode:"+353",code:"IE",emoji:"\u{1F1EE}\u{1F1EA}"},{name:"Isle of Man",dialCode:"+44",code:"IM",emoji:"\u{1F1EE}\u{1F1F2}"},{name:"Israel",dialCode:"+972",code:"IL",emoji:"\u{1F1EE}\u{1F1F1}"},{name:"Italy",dialCode:"+39",code:"IT",emoji:"\u{1F1EE}\u{1F1F9}"},{name:"Jamaica",dialCode:"+1",code:"JM",emoji:"\u{1F1EF}\u{1F1F2}"},{name:"Japan",dialCode:"+81",code:"JP",emoji:"\u{1F1EF}\u{1F1F5}"},{name:"Jersey",dialCode:"+44",code:"JE",emoji:"\u{1F1EF}\u{1F1EA}"},{name:"Jordan",dialCode:"+962",code:"JO",emoji:"\u{1F1EF}\u{1F1F4}"},{name:"Kazakhstan",dialCode:"+7",code:"KZ",emoji:"\u{1F1F0}\u{1F1FF}"},{name:"Kenya",dialCode:"+254",code:"KE",emoji:"\u{1F1F0}\u{1F1EA}"},{name:"Kiribati",dialCode:"+686",code:"KI",emoji:"\u{1F1F0}\u{1F1EE}"},{name:"Kosovo",dialCode:"+377",code:"XK",emoji:"\u{1F1FD}\u{1F1F0}"},{name:"Kosovo",dialCode:"+381",code:"XK",emoji:"\u{1F1FD}\u{1F1F0}"},{name:"Kosovo",dialCode:"+386",code:"XK",emoji:"\u{1F1FD}\u{1F1F0}"},{name:"Kuwait",dialCode:"+965",code:"KW",emoji:"\u{1F1F0}\u{1F1FC}"},{name:"Kyrgyzstan",dialCode:"+996",code:"KG",emoji:"\u{1F1F0}\u{1F1EC}"},{name:"Laos",dialCode:"+856",code:"LA",emoji:"\u{1F1F1}\u{1F1E6}"},{name:"Latvia",dialCode:"+371",code:"LV",emoji:"\u{1F1F1}\u{1F1FB}"},{name:"Lebanon",dialCode:"+961",code:"LB",emoji:"\u{1F1F1}\u{1F1E7}"},{name:"Lesotho",dialCode:"+266",code:"LS",emoji:"\u{1F1F1}\u{1F1F8}"},{name:"Liberia",dialCode:"+231",code:"LR",emoji:"\u{1F1F1}\u{1F1F7}"},{name:"Libya",dialCode:"+218",code:"LY",emoji:"\u{1F1F1}\u{1F1FE}"},{name:"Liechtenstein",dialCode:"+423",code:"LI",emoji:"\u{1F1F1}\u{1F1EE}"},{name:"Lithuania",dialCode:"+370",code:"LT",emoji:"\u{1F1F1}\u{1F1F9}"},{name:"Luxembourg",dialCode:"+352",code:"LU",emoji:"\u{1F1F1}\u{1F1FA}"},{name:"Macau",dialCode:"+853",code:"MO",emoji:"\u{1F1F2}\u{1F1F4}"},{name:"Macedonia",dialCode:"+389",code:"MK",emoji:"\u{1F1F2}\u{1F1F0}"},{name:"Madagascar",dialCode:"+261",code:"MG",emoji:"\u{1F1F2}\u{1F1EC}"},{name:"Malawi",dialCode:"+265",code:"MW",emoji:"\u{1F1F2}\u{1F1FC}"},{name:"Malaysia",dialCode:"+60",code:"MY",emoji:"\u{1F1F2}\u{1F1FE}"},{name:"Maldives",dialCode:"+960",code:"MV",emoji:"\u{1F1F2}\u{1F1FB}"},{name:"Mali",dialCode:"+223",code:"ML",emoji:"\u{1F1F2}\u{1F1F1}"},{name:"Malta",dialCode:"+356",code:"MT",emoji:"\u{1F1F2}\u{1F1F9}"},{name:"Marshall Islands",dialCode:"+692",code:"MH",emoji:"\u{1F1F2}\u{1F1ED}"},{name:"Martinique",dialCode:"+596",code:"MQ",emoji:"\u{1F1F2}\u{1F1F6}"},{name:"Mauritania",dialCode:"+222",code:"MR",emoji:"\u{1F1F2}\u{1F1F7}"},{name:"Mauritius",dialCode:"+230",code:"MU",emoji:"\u{1F1F2}\u{1F1FA}"},{name:"Mayotte",dialCode:"+262",code:"YT",emoji:"\u{1F1FE}\u{1F1F9}"},{name:"Mexico",dialCode:"+52",code:"MX",emoji:"\u{1F1F2}\u{1F1FD}"},{name:"Micronesia",dialCode:"+691",code:"FM",emoji:"\u{1F1EB}\u{1F1F2}"},{name:"Moldova",dialCode:"+373",code:"MD",emoji:"\u{1F1F2}\u{1F1E9}"},{name:"Monaco",dialCode:"+377",code:"MC",emoji:"\u{1F1F2}\u{1F1E8}"},{name:"Mongolia",dialCode:"+976",code:"MN",emoji:"\u{1F1F2}\u{1F1F3}"},{name:"Montenegro",dialCode:"+382",code:"ME",emoji:"\u{1F1F2}\u{1F1EA}"},{name:"Montserrat",dialCode:"+1",code:"MS",emoji:"\u{1F1F2}\u{1F1F8}"},{name:"Morocco",dialCode:"+212",code:"MA",emoji:"\u{1F1F2}\u{1F1E6}"},{name:"Mozambique",dialCode:"+258",code:"MZ",emoji:"\u{1F1F2}\u{1F1FF}"},{name:"Myanmar [Burma]",dialCode:"+95",code:"MM",emoji:"\u{1F1F2}\u{1F1F2}"},{name:"Namibia",dialCode:"+264",code:"NA",emoji:"\u{1F1F3}\u{1F1E6}"},{name:"Nauru",dialCode:"+674",code:"NR",emoji:"\u{1F1F3}\u{1F1F7}"},{name:"Nepal",dialCode:"+977",code:"NP",emoji:"\u{1F1F3}\u{1F1F5}"},{name:"Netherlands",dialCode:"+31",code:"NL",emoji:"\u{1F1F3}\u{1F1F1}"},{name:"New Caledonia",dialCode:"+687",code:"NC",emoji:"\u{1F1F3}\u{1F1E8}"},{name:"New Zealand",dialCode:"+64",code:"NZ",emoji:"\u{1F1F3}\u{1F1FF}"},{name:"Nicaragua",dialCode:"+505",code:"NI",emoji:"\u{1F1F3}\u{1F1EE}"},{name:"Niger",dialCode:"+227",code:"NE",emoji:"\u{1F1F3}\u{1F1EA}"},{name:"Nigeria",dialCode:"+234",code:"NG",emoji:"\u{1F1F3}\u{1F1EC}"},{name:"Niue",dialCode:"+683",code:"NU",emoji:"\u{1F1F3}\u{1F1FA}"},{name:"Norfolk Island",dialCode:"+672",code:"NF",emoji:"\u{1F1F3}\u{1F1EB}"},{name:"North Korea",dialCode:"+850",code:"KP",emoji:"\u{1F1F0}\u{1F1F5}"},{name:"Northern Mariana Islands",dialCode:"+1",code:"MP",emoji:"\u{1F1F2}\u{1F1F5}"},{name:"Norway",dialCode:"+47",code:"NO",emoji:"\u{1F1F3}\u{1F1F4}"},{name:"Oman",dialCode:"+968",code:"OM",emoji:"\u{1F1F4}\u{1F1F2}"},{name:"Pakistan",dialCode:"+92",code:"PK",emoji:"\u{1F1F5}\u{1F1F0}"},{name:"Palau",dialCode:"+680",code:"PW",emoji:"\u{1F1F5}\u{1F1FC}"},{name:"Palestinian Territories",dialCode:"+970",code:"PS",emoji:"\u{1F1F5}\u{1F1F8}"},{name:"Panama",dialCode:"+507",code:"PA",emoji:"\u{1F1F5}\u{1F1E6}"},{name:"Papua New Guinea",dialCode:"+675",code:"PG",emoji:"\u{1F1F5}\u{1F1EC}"},{name:"Paraguay",dialCode:"+595",code:"PY",emoji:"\u{1F1F5}\u{1F1FE}"},{name:"Peru",dialCode:"+51",code:"PE",emoji:"\u{1F1F5}\u{1F1EA}"},{name:"Philippines",dialCode:"+63",code:"PH",emoji:"\u{1F1F5}\u{1F1ED}"},{name:"Poland",dialCode:"+48",code:"PL",emoji:"\u{1F1F5}\u{1F1F1}"},{name:"Portugal",dialCode:"+351",code:"PT",emoji:"\u{1F1F5}\u{1F1F9}"},{name:"Puerto Rico",dialCode:"+1",code:"PR",emoji:"\u{1F1F5}\u{1F1F7}"},{name:"Qatar",dialCode:"+974",code:"QA",emoji:"\u{1F1F6}\u{1F1E6}"},{name:"R\xE9union",dialCode:"+262",code:"RE",emoji:"\u{1F1F7}\u{1F1EA}"},{name:"Romania",dialCode:"+40",code:"RO",emoji:"\u{1F1F7}\u{1F1F4}"},{name:"Russia",dialCode:"+7",code:"RU",emoji:"\u{1F1F7}\u{1F1FA}"},{name:"Rwanda",dialCode:"+250",code:"RW",emoji:"\u{1F1F7}\u{1F1FC}"},{name:"Saint Barth\xE9lemy",dialCode:"+590",code:"BL",emoji:"\u{1F1E7}\u{1F1F1}"},{name:"Saint Helena",dialCode:"+290",code:"SH",emoji:"\u{1F1F8}\u{1F1ED}"},{name:"St. Kitts",dialCode:"+1",code:"KN",emoji:"\u{1F1F0}\u{1F1F3}"},{name:"St. Lucia",dialCode:"+1",code:"LC",emoji:"\u{1F1F1}\u{1F1E8}"},{name:"Saint Martin",dialCode:"+590",code:"MF",emoji:"\u{1F1F2}\u{1F1EB}"},{name:"Saint Pierre and Miquelon",dialCode:"+508",code:"PM",emoji:"\u{1F1F5}\u{1F1F2}"},{name:"St. Vincent",dialCode:"+1",code:"VC",emoji:"\u{1F1FB}\u{1F1E8}"},{name:"Samoa",dialCode:"+685",code:"WS",emoji:"\u{1F1FC}\u{1F1F8}"},{name:"San Marino",dialCode:"+378",code:"SM",emoji:"\u{1F1F8}\u{1F1F2}"},{name:"S\xE3o Tom\xE9 and Pr\xEDncipe",dialCode:"+239",code:"ST",emoji:"\u{1F1F8}\u{1F1F9}"},{name:"Saudi Arabia",dialCode:"+966",code:"SA",emoji:"\u{1F1F8}\u{1F1E6}"},{name:"Senegal",dialCode:"+221",code:"SN",emoji:"\u{1F1F8}\u{1F1F3}"},{name:"Serbia",dialCode:"+381",code:"RS",emoji:"\u{1F1F7}\u{1F1F8}"},{name:"Seychelles",dialCode:"+248",code:"SC",emoji:"\u{1F1F8}\u{1F1E8}"},{name:"Sierra Leone",dialCode:"+232",code:"SL",emoji:"\u{1F1F8}\u{1F1F1}"},{name:"Singapore",dialCode:"+65",code:"SG",emoji:"\u{1F1F8}\u{1F1EC}"},{name:"Sint Maarten",dialCode:"+1",code:"SX",emoji:"\u{1F1F8}\u{1F1FD}"},{name:"Slovakia",dialCode:"+421",code:"SK",emoji:"\u{1F1F8}\u{1F1F0}"},{name:"Slovenia",dialCode:"+386",code:"SI",emoji:"\u{1F1F8}\u{1F1EE}"},{name:"Solomon Islands",dialCode:"+677",code:"SB",emoji:"\u{1F1F8}\u{1F1E7}"},{name:"Somalia",dialCode:"+252",code:"SO",emoji:"\u{1F1F8}\u{1F1F4}"},{name:"South Africa",dialCode:"+27",code:"ZA",emoji:"\u{1F1FF}\u{1F1E6}"},{name:"South Korea",dialCode:"+82",code:"KR",emoji:"\u{1F1F0}\u{1F1F7}"},{name:"South Sudan",dialCode:"+211",code:"SS",emoji:"\u{1F1F8}\u{1F1F8}"},{name:"Spain",dialCode:"+34",code:"ES",emoji:"\u{1F1EA}\u{1F1F8}"},{name:"Sri Lanka",dialCode:"+94",code:"LK",emoji:"\u{1F1F1}\u{1F1F0}"},{name:"Sudan",dialCode:"+249",code:"SD",emoji:"\u{1F1F8}\u{1F1E9}"},{name:"Suriname",dialCode:"+597",code:"SR",emoji:"\u{1F1F8}\u{1F1F7}"},{name:"Svalbard and Jan Mayen",dialCode:"+47",code:"SJ",emoji:"\u{1F1F8}\u{1F1EF}"},{name:"Swaziland",dialCode:"+268",code:"SZ",emoji:"\u{1F1F8}\u{1F1FF}"},{name:"Sweden",dialCode:"+46",code:"SE",emoji:"\u{1F1F8}\u{1F1EA}"},{name:"Switzerland",dialCode:"+41",code:"CH",emoji:"\u{1F1E8}\u{1F1ED}"},{name:"Syria",dialCode:"+963",code:"SY",emoji:"\u{1F1F8}\u{1F1FE}"},{name:"Taiwan",dialCode:"+886",code:"TW",emoji:"\u{1F1F9}\u{1F1FC}"},{name:"Tajikistan",dialCode:"+992",code:"TJ",emoji:"\u{1F1F9}\u{1F1EF}"},{name:"Tanzania",dialCode:"+255",code:"TZ",emoji:"\u{1F1F9}\u{1F1FF}"},{name:"Thailand",dialCode:"+66",code:"TH",emoji:"\u{1F1F9}\u{1F1ED}"},{name:"Togo",dialCode:"+228",code:"TG",emoji:"\u{1F1F9}\u{1F1EC}"},{name:"Tokelau",dialCode:"+690",code:"TK",emoji:"\u{1F1F9}\u{1F1F0}"},{name:"Tonga",dialCode:"+676",code:"TO",emoji:"\u{1F1F9}\u{1F1F4}"},{name:"Trinidad/Tobago",dialCode:"+1",code:"TT",emoji:"\u{1F1F9}\u{1F1F9}"},{name:"Tunisia",dialCode:"+216",code:"TN",emoji:"\u{1F1F9}\u{1F1F3}"},{name:"Turkey",dialCode:"+90",code:"TR",emoji:"\u{1F1F9}\u{1F1F7}"},{name:"Turkmenistan",dialCode:"+993",code:"TM",emoji:"\u{1F1F9}\u{1F1F2}"},{name:"Turks and Caicos Islands",dialCode:"+1",code:"TC",emoji:"\u{1F1F9}\u{1F1E8}"},{name:"Tuvalu",dialCode:"+688",code:"TV",emoji:"\u{1F1F9}\u{1F1FB}"},{name:"U.S. Virgin Islands",dialCode:"+1",code:"VI",emoji:"\u{1F1FB}\u{1F1EE}"},{name:"Uganda",dialCode:"+256",code:"UG",emoji:"\u{1F1FA}\u{1F1EC}"},{name:"Ukraine",dialCode:"+380",code:"UA",emoji:"\u{1F1FA}\u{1F1E6}"},{name:"United Arab Emirates",dialCode:"+971",code:"AE",emoji:"\u{1F1E6}\u{1F1EA}"},{name:"United Kingdom",dialCode:"+44",code:"GB",emoji:"\u{1F1EC}\u{1F1E7}"},{name:"United States",dialCode:"+1",code:"US",emoji:"\u{1F1FA}\u{1F1F8}"},{name:"Uruguay",dialCode:"+598",code:"UY",emoji:"\u{1F1FA}\u{1F1FE}"},{name:"Uzbekistan",dialCode:"+998",code:"UZ",emoji:"\u{1F1FA}\u{1F1FF}"},{name:"Vanuatu",dialCode:"+678",code:"VU",emoji:"\u{1F1FB}\u{1F1FA}"},{name:"Vatican City",dialCode:"+379",code:"VA",emoji:"\u{1F1FB}\u{1F1E6}"},{name:"Venezuela",dialCode:"+58",code:"VE",emoji:"\u{1F1FB}\u{1F1EA}"},{name:"Vietnam",dialCode:"+84",code:"VN",emoji:"\u{1F1FB}\u{1F1F3}"},{name:"Wallis and Futuna",dialCode:"+681",code:"WF",emoji:"\u{1F1FC}\u{1F1EB}"},{name:"Western Sahara",dialCode:"+212",code:"EH",emoji:"\u{1F1EA}\u{1F1ED}"},{name:"Yemen",dialCode:"+967",code:"YE",emoji:"\u{1F1FE}\u{1F1EA}"},{name:"Zambia",dialCode:"+260",code:"ZM",emoji:"\u{1F1FF}\u{1F1F2}"},{name:"Zimbabwe",dialCode:"+263",code:"ZW",emoji:"\u{1F1FF}\u{1F1FC}"},{name:"\xC5land Islands",dialCode:"+358",code:"AX",emoji:"\u{1F1E6}\u{1F1FD}"}];function eo(e,o){try{let a=libphonenumberJs.parsePhoneNumberWithError(e,o.code);if(a&&a.isValid())return a.number}catch{}try{return libphonenumberJs.formatIncompletePhoneNumber(e,o.code).replace(/\s/g,"")}catch{let a=e.replace(/[^\d+]/g,"").trim();return a.startsWith("+")?a:`${o.dialCode}${a}`}}var k=e=>{let o=e?.allowedCountries?.length?g.filter(r=>e.allowedCountries.includes(r.code)):g;e?.allowedCountries?.length&&o.length===0&&(console.warn('No countries matched the "allowedCountries" list, falling back to all countries'),o=g);let a=e?.defaultCountry?g.find(r=>r.code===e.defaultCountry):g.find(r=>r.code==="US");return o.some(r=>r.code===a.code)||(a=o[0],console.warn(`The "defaultCountry" option is not in the "allowedCountries" list, the default country has been set to ${a.code}`)),{allowedCountries:o,defaultCountry:a}};function y(e){return {type:"callable",handler:e}}function O(e){return {type:"redirect",handler:e}}function S(e){return {type:"init",handler:e}}function to(){return {autoAnonymousLogin:S(R)}}function no(e){return {autoUpgradeAnonymousCredential:y((o,a)=>T(o,a,e?.onUpgrade)),autoUpgradeAnonymousProvider:y((o,a)=>x(o,a,e?.onUpgrade)),autoUpgradeAnonymousUserRedirectHandler:O((o,a)=>P(o,a,e?.onUpgrade))}}function Ce(e){return {recaptchaVerification:y((o,a)=>w(o,a,e))}}function ye(){return {providerSignInStrategy:y(H),providerLinkStrategy:y(B)}}function so(){return {providerSignInStrategy:y(M),providerLinkStrategy:y(E)}}function lo(e){return {oneTapSignIn:S(o=>N(o,e))}}function mo(){return {requireDisplayName:y(L)}}function ge(e){return {countryCodes:y(()=>k(e))}}function u(e,o){return !!e.behaviors[o]}function p(e,o){if(!u(e,o))throw new Error(`Behavior ${o} not found`);return e.behaviors[o].handler}var b={...Ce(),...ye(),...ge()};async function c(e,o){let a=window.sessionStorage.getItem("pendingCred");if(!a)return o;try{let r=JSON.parse(a),t=await auth.linkWithCredential(o.user,r);return window.sessionStorage.removeItem("pendingCred"),t}catch{return window.sessionStorage.removeItem("pendingCred"),o}}function m(e){e.setRedirectError(void 0),e.setState("pending");}async function fo(e,o,a){try{m(e);let r=auth.EmailAuthProvider.credential(o,a);if(u(e,"autoUpgradeAnonymousCredential")){let i=await p(e,"autoUpgradeAnonymousCredential")(e,r);if(i)return c(e,i)}let t=await auth.signInWithCredential(e.auth,r);return c(e,t)}catch(r){l(e,r);}finally{e.setState("idle");}}async function jo(e,o,a,r){try{m(e);let t=auth.EmailAuthProvider.credential(o,a);if(u(e,"requireDisplayName")&&!r)throw new app.FirebaseError("auth/display-name-required",s(e,"errors","displayNameRequired"));if(u(e,"autoUpgradeAnonymousCredential")){let d=await p(e,"autoUpgradeAnonymousCredential")(e,t);if(d)return u(e,"requireDisplayName")&&await p(e,"requireDisplayName")(e,d.user,r),c(e,d)}let i=await auth.createUserWithEmailAndPassword(e.auth,o,a);return u(e,"requireDisplayName")&&await p(e,"requireDisplayName")(e,i.user,r),c(e,i)}catch(t){l(e,t);}finally{e.setState("idle");}}async function Io(e,o,a,r,t){try{m(e);let i=new auth.PhoneAuthProvider(e.auth);if(t&&e.multiFactorResolver)return await i.verifyPhoneNumber({multiFactorHint:t,session:e.multiFactorResolver.session},a);if(r){let d=await r.getSession();return await i.verifyPhoneNumber({phoneNumber:o,session:d},a)}else return await i.verifyPhoneNumber(o,a)}catch(i){l(e,i);}finally{e.setState("idle");}}async function So(e,o,a){try{m(e);let r=e.auth.currentUser,t=auth.PhoneAuthProvider.credential(o,a);if(r?.isAnonymous&&u(e,"autoUpgradeAnonymousCredential")){let d=await p(e,"autoUpgradeAnonymousCredential")(e,t);if(d)return c(e,d)}let i=await auth.signInWithCredential(e.auth,t);return c(e,i)}catch(r){l(e,r);}finally{e.setState("idle");}}async function bo(e,o){try{m(e),await auth.sendPasswordResetEmail(e.auth,o);}catch(a){l(e,a);}finally{e.setState("idle");}}async function Uo(e,o){try{m(e);let a={url:window.location.href,handleCodeInApp:!0};await auth.sendSignInLinkToEmail(e.auth,o,a),window.localStorage.setItem("emailForSignIn",o);}catch(a){l(e,a);}finally{e.setState("idle");}}async function Te(e,o,a){let r=auth.EmailAuthProvider.credentialWithLink(o,a);return I(e,r)}async function I(e,o){try{if(m(e),u(e,"autoUpgradeAnonymousCredential")){let r=await p(e,"autoUpgradeAnonymousCredential")(e,o);if(r)return c(e,r)}let a=await auth.signInWithCredential(e.auth,o);return c(e,a)}catch(a){l(e,a);}finally{e.setState("idle");}}async function vo(e,o){try{m(e);let a=await auth.signInWithCustomToken(e.auth,o);return c(e,a)}catch(a){l(e,a);}finally{e.setState("idle");}}async function Fo(e){try{m(e);let o=await auth.signInAnonymously(e.auth);return c(e,o)}catch(o){l(e,o);}finally{e.setState("idle");}}async function Ao(e,o){try{if(m(e),u(e,"autoUpgradeAnonymousProvider")){let t=await p(e,"autoUpgradeAnonymousProvider")(e,o);if(t)return c(e,t)}let r=await p(e,"providerSignInStrategy")(e,o);return c(e,r)}catch(a){l(e,a);}finally{e.setState("idle");}}async function To(e,o){try{if(!auth.isSignInWithEmailLink(e.auth,o))return null;let a=window.localStorage.getItem("emailForSignIn");if(!a)return null;m(e);let r=await Te(e,a,o);return c(e,r)}catch(a){l(e,a);}finally{e.setState("idle"),window.localStorage.removeItem("emailForSignIn");}}function xo(e,o,a,r){let t=e.auth.currentUser;if(!t)throw new Error("User must be authenticated to generate a TOTP QR code");let i=o.generateQrCodeUrl(a||t.email||"",r),d=Fe__default.default(0,"L");return d.addData(i),d.make(),d.createDataURL()}async function Po(e,o){try{m(e);let a=await e.multiFactorResolver?.resolveSignIn(o);return e.setMultiFactorResolver(void 0),a}catch(a){l(e,a);}finally{e.setState("idle");}}async function Ro(e,o,a){try{m(e),await auth.multiFactor(e.auth.currentUser).enroll(o,a);}catch(r){l(e,r);}finally{e.setState("idle");}}async function wo(e){try{m(e);let a=await auth.multiFactor(e.auth.currentUser).getSession();return await auth.TotpMultiFactorGenerator.generateSecret(a)}catch(o){l(e,o);}finally{e.setState("idle");}}var h=nanostores.map({});function ko(e,o="[DEFAULT]"){let a=e.behaviors?.reduce((i,d)=>({...i,...d}),b);h.setKey(o,nanostores.deepMap({app:e.app,auth:e.auth||auth.getAuth(e.app),locale:e.locale??uiTranslations.enUs,setLocale:i=>{h.get()[o].setKey("locale",i);},state:"idle",setState:i=>{h.get()[o].setKey("state",i);},behaviors:a??b,multiFactorResolver:void 0,setMultiFactorResolver:i=>{h.get()[o].setKey("multiFactorResolver",i);},redirectError:void 0,setRedirectError:i=>{h.get()[o].setKey("redirectError",i);}}));let r=h.get()[o],t=r.get();if(typeof window<"u"){let i=[],d=[];for(let C of Object.values(t.behaviors))C.type==="redirect"?d.push(C):C.type==="init"&&i.push(C);i.length>0&&(r.setKey("state","loading"),t.auth.authStateReady().then(()=>{Promise.all(i.map(C=>C.handler(t))).then(()=>{r.setKey("state","idle");});})),auth.getRedirectResult(t.auth).then(C=>Promise.all(d.map(f=>f.handler(t,C)))).catch(C=>{try{l(t,C);}catch(f){t.setRedirectError(f instanceof Error?f:new Error(String(f)));}});}return r}var Do=["email","phone","anonymous","emailLink","google"];function Wo(e){return n__namespace.object({email:n__namespace.email(s(e,"errors","invalidEmail")),password:n__namespace.string().min(6,s(e,"errors","weakPassword"))})}function Vo(e){let o=u(e,"requireDisplayName"),a=s(e,"errors","displayNameRequired");return n__namespace.object({email:n__namespace.email(s(e,"errors","invalidEmail")),password:n__namespace.string().min(6,s(e,"errors","weakPassword")),displayName:o?n__namespace.string().min(1,a):n__namespace.string().min(1,a).optional()})}function Ko(e){return n__namespace.object({email:n__namespace.email(s(e,"errors","invalidEmail"))})}function qo(e){return n__namespace.object({email:n__namespace.email(s(e,"errors","invalidEmail"))})}function Me(e){return n__namespace.object({phoneNumber:n__namespace.string().min(1,s(e,"errors","missingPhoneNumber")).max(10,s(e,"errors","invalidPhoneNumber"))})}function Be(e){return n__namespace.object({verificationId:n__namespace.string().min(1,s(e,"errors","missingVerificationId")),verificationCode:n__namespace.string().refine(o=>!o||o.length>=6,{error:s(e,"errors","invalidVerificationCode")})})}function _o(e){return Me(e).extend({displayName:n__namespace.string().min(1,s(e,"errors","displayNameRequired"))})}function Jo(e){return Be(e)}function Zo(e){return n__namespace.object({displayName:n__namespace.string().min(1,s(e,"errors","displayNameRequired"))})}function Yo(e){return n__namespace.object({verificationCode:n__namespace.string().refine(o=>o.length===6,{error:s(e,"errors","invalidVerificationCode")})})}undefined.PROD&&F("core",A.version);
2
+ exports.$config=h;exports.FirebaseUIError=j;exports.LoginTypes=Do;exports.autoAnonymousLogin=to;exports.autoUpgradeAnonymousUsers=no;exports.completeEmailLinkSignIn=To;exports.confirmPhoneNumber=So;exports.countryCodes=ge;exports.countryData=g;exports.createEmailLinkAuthFormSchema=qo;exports.createForgotPasswordAuthFormSchema=Ko;exports.createMultiFactorPhoneAuthNumberFormSchema=_o;exports.createMultiFactorPhoneAuthVerifyFormSchema=Jo;exports.createMultiFactorTotpAuthNumberFormSchema=Zo;exports.createMultiFactorTotpAuthVerifyFormSchema=Yo;exports.createPhoneAuthNumberFormSchema=Me;exports.createPhoneAuthVerifyFormSchema=Be;exports.createSignInAuthFormSchema=Wo;exports.createSignUpAuthFormSchema=Vo;exports.createUserWithEmailAndPassword=jo;exports.defaultBehaviors=b;exports.enrollWithMultiFactorAssertion=Ro;exports.formatPhoneNumber=eo;exports.generateTotpQrCode=xo;exports.generateTotpSecret=wo;exports.getBehavior=p;exports.getTranslation=s;exports.handleFirebaseError=l;exports.hasBehavior=u;exports.initializeUI=ko;exports.oneTapSignIn=lo;exports.providerPopupStrategy=so;exports.providerRedirectStrategy=ye;exports.recaptchaVerification=Ce;exports.registerFramework=F;exports.requireDisplayName=mo;exports.sendPasswordResetEmail=bo;exports.sendSignInLinkToEmail=Uo;exports.signInAnonymously=Fo;exports.signInWithCredential=I;exports.signInWithCustomToken=vo;exports.signInWithEmailAndPassword=fo;exports.signInWithEmailLink=Te;exports.signInWithMultiFactorAssertion=Po;exports.signInWithProvider=Ao;exports.verifyPhoneNumber=Io;//# sourceMappingURL=index.cjs.map
3
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/register-framework.ts","../package.json","../src/translations.ts","../src/errors.ts","../src/behaviors/anonymous-upgrade.ts","../src/behaviors/auto-anonymous-login.ts","../src/behaviors/recaptcha.ts","../src/behaviors/provider-strategy.ts","../src/behaviors/one-tap.ts","../src/behaviors/require-display-name.ts","../src/country-data.ts","../src/behaviors/country-codes.ts","../src/behaviors/utils.ts","../src/behaviors/index.ts","../src/auth.ts","../src/config.ts","../src/schemas.ts","../src/index.ts"],"names":["registerFramework","framework","version","registerVersion","package_default","getTranslation","ui","category","key","_getTranslation","FirebaseUIError","_FirebaseUIError","FirebaseError","error","message","ERROR_CODE_MAP","handleFirebaseError","isFirebaseError","errorContainsCredential","resolver","getMultiFactorResolver","autoUpgradeAnonymousCredentialHandler","credential","onUpgrade","currentUser","oldUserId","result","linkWithCredential","autoUpgradeAnonymousProviderHandler","provider","getBehavior","autoUpgradeAnonymousUserRedirectHandler","autoAnonymousLoginHandler","auth","signInAnonymously","recaptchaVerificationHandler","element","options","RecaptchaVerifier","signInWithRediectHandler","signInWithRedirect","signInWithPopupHandler","signInWithPopup","linkWithRedirectHandler","_ui","user","linkWithRedirect","linkWithPopupHandler","linkWithPopup","oneTapSignInHandler","script","response","GoogleAuthProvider","signInWithCredential","requireDisplayNameHandler","_","displayName","updateProfile","countryData","formatPhoneNumber","phoneNumber","parsedNumber","parsePhoneNumberWithError","formatIncompletePhoneNumber","cleaned","countryCodesHandler","allowedCountries","country","defaultCountry","callableBehavior","handler","redirectBehavior","initBehavior","autoAnonymousLogin","autoUpgradeAnonymousUsers","recaptchaVerification","providerRedirectStrategy","providerPopupStrategy","oneTapSignIn","requireDisplayName","countryCodes","hasBehavior","defaultBehaviors","handlePendingCredential","pendingCredString","pendingCred","setPendingState","signInWithEmailAndPassword","email","password","EmailAuthProvider","_signInWithCredential","createUserWithEmailAndPassword","_createUserWithEmailAndPassword","verifyPhoneNumber","appVerifier","mfaUser","mfaHint","PhoneAuthProvider","session","confirmPhoneNumber","verificationId","verificationCode","sendPasswordResetEmail","_sendPasswordResetEmail","sendSignInLinkToEmail","actionCodeSettings","_sendSignInLinkToEmail","signInWithEmailLink","link","userCredential","signInWithCustomToken","customToken","_signInWithCustomToken","_signInAnonymously","signInWithProvider","completeEmailLinkSignIn","currentUrl","_isSignInWithEmailLink","generateTotpQrCode","secret","accountName","issuer","uri","qr","QRCode","signInWithMultiFactorAssertion","assertion","enrollWithMultiFactorAssertion","multiFactor","generateTotpSecret","TotpMultiFactorGenerator","$config","map","initializeUI","config","name","behaviors","acc","behavior","deepMap","getAuth","enUs","locale","state","store","initBehaviors","redirectBehaviors","getRedirectResult","LoginTypes","createSignInAuthFormSchema","n","createSignUpAuthFormSchema","displayNameRequiredMessage","createForgotPasswordAuthFormSchema","createEmailLinkAuthFormSchema","createPhoneAuthNumberFormSchema","createPhoneAuthVerifyFormSchema","val","createMultiFactorPhoneAuthNumberFormSchema","createMultiFactorPhoneAuthVerifyFormSchema","createMultiFactorTotpAuthNumberFormSchema","createMultiFactorTotpAuthVerifyFormSchema"],"mappings":"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","file":"index.cjs","sourcesContent":["import { registerVersion } from \"firebase/app\";\n\n/**\n * Register a framework with the FirebaseUI configuration.\n * @internal\n * @param framework The type of framework being registered.\n * @param version The version of the framework being registered.\n */\nexport function registerFramework(framework: string, version: string) {\n registerVersion(\"firebase-ui-web\", version, framework);\n}\n","{\n \"name\": \"@firebase-oss/ui-core\",\n \"version\": \"0.0.1\",\n \"description\": \"Core authentication service for Firebase UI\",\n \"type\": \"module\",\n \"main\": \"./dist/index.cjs\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"types\": \"./dist/index.d.ts\",\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\"\n },\n \"./brands/*\": \"./brands/*\"\n },\n \"files\": [\n \"dist\",\n \"brands\"\n ],\n \"scripts\": {\n \"prepare\": \"pnpm run build\",\n \"emulators:start\": \"firebase emulators:start -P demo-firebaseui\",\n \"build\": \"tsup\",\n \"build:local\": \"pnpm run build && pnpm pack\",\n \"dev\": \"tsup --watch\",\n \"lint\": \"eslint . --ext .ts\",\n \"lint:fix\": \"eslint . --ext .ts --fix\",\n \"format\": \"prettier --write \\\"src/**/*.ts\\\" \\\"tests/**/*.ts\\\"\",\n \"format:check\": \"prettier --check \\\"src/**/*.ts\\\" \\\"tests/**/*.ts\\\"\",\n \"clean\": \"rimraf dist\",\n \"test:unit\": \"vitest run src\",\n \"test:unit:watch\": \"vitest tests\",\n \"test:integration\": \"vitest run tests\",\n \"test:integration:watch\": \"vitest integration\",\n \"test\": \"vitest run\",\n \"publish:tags\": \"sh -c 'TAG=\\\"${npm_package_name}@${npm_package_version}\\\"; git tag --list \\\"$TAG\\\" | grep . || git tag \\\"$TAG\\\"; git push origin \\\"$TAG\\\"'\",\n \"release\": \"pnpm run build && pnpm pack --pack-destination --pack-destination ../../releases/\"\n },\n \"keywords\": [\n \"firebase\",\n \"auth\",\n \"authentication\",\n \"firebaseui\"\n ],\n \"author\": \"TODO\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"firebase\": \"catalog:peerDependencies\"\n },\n \"dependencies\": {\n \"@firebase-oss/ui-translations\": \"workspace:*\",\n \"libphonenumber-js\": \"^1.12.23\",\n \"nanostores\": \"catalog:\",\n \"qrcode-generator\": \"^2.0.4\",\n \"zod\": \"catalog:\"\n },\n \"devDependencies\": {\n \"@types/google-one-tap\": \"^1.2.6\",\n \"@types/jsdom\": \"catalog:\",\n \"firebase\": \"catalog:\",\n \"jsdom\": \"catalog:\",\n \"rimraf\": \"catalog:\",\n \"tsup\": \"catalog:\",\n \"typescript\": \"catalog:\",\n \"vite\": \"catalog:\",\n \"vitest\": \"catalog:\"\n }\n}\n","/**\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n getTranslation as _getTranslation,\n type TranslationCategory,\n type TranslationKey,\n} from \"@firebase-oss/ui-translations\";\nimport { type FirebaseUI } from \"./config\";\n\nexport function getTranslation<T extends TranslationCategory>(ui: FirebaseUI, category: T, key: TranslationKey<T>) {\n return _getTranslation(ui.locale, category, key);\n}\n","/**\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ERROR_CODE_MAP, type ErrorCode } from \"@firebase-oss/ui-translations\";\nimport { FirebaseError } from \"firebase/app\";\nimport { type AuthCredential, getMultiFactorResolver, type MultiFactorError } from \"firebase/auth\";\nimport { type FirebaseUI } from \"./config\";\nimport { getTranslation } from \"./translations\";\nexport class FirebaseUIError extends FirebaseError {\n constructor(ui: FirebaseUI, error: FirebaseError) {\n const message = getTranslation(ui, \"errors\", ERROR_CODE_MAP[error.code as ErrorCode]);\n super(error.code, message || error.message);\n\n // Ensures that `instanceof FirebaseUIError` works, alongside `instanceof FirebaseError`\n Object.setPrototypeOf(this, FirebaseUIError.prototype);\n }\n}\n\nexport function handleFirebaseError(ui: FirebaseUI, error: unknown): never {\n // If it's not a Firebase error, then we just throw it and preserve the original error.\n if (!isFirebaseError(error)) {\n throw error;\n }\n\n // TODO(ehesp): Type error as unknown, check instance of FirebaseError\n // TODO(ehesp): Support via behavior\n if (error.code === \"auth/account-exists-with-different-credential\" && errorContainsCredential(error)) {\n window.sessionStorage.setItem(\"pendingCred\", JSON.stringify(error.credential.toJSON()));\n }\n\n // Update the UI with the multi-factor resolver if the error is thrown.\n if (error.code === \"auth/multi-factor-auth-required\") {\n const resolver = getMultiFactorResolver(ui.auth, error as MultiFactorError);\n ui.setMultiFactorResolver(resolver);\n }\n\n throw new FirebaseUIError(ui, error);\n}\n\n// Utility to obtain whether something is a FirebaseError\nfunction isFirebaseError(error: unknown): error is FirebaseError {\n // Calling instanceof FirebaseError is not working - not sure why yet.\n return !!error && typeof error === \"object\" && \"code\" in error && \"message\" in error;\n}\n\n// Utility to obtain whether something is a FirebaseError that contains a credential - doesn't seemed to be typed?\nfunction errorContainsCredential(error: FirebaseError): error is FirebaseError & { credential: AuthCredential } {\n return \"credential\" in error;\n}\n","import { type AuthCredential, type AuthProvider, linkWithCredential, type UserCredential } from \"firebase/auth\";\nimport { type FirebaseUI } from \"~/config\";\nimport { getBehavior } from \"~/behaviors\";\n\nexport type OnUpgradeCallback = (ui: FirebaseUI, oldUserId: string, credential: UserCredential) => Promise<void> | void;\n\nexport const autoUpgradeAnonymousCredentialHandler = async (\n ui: FirebaseUI,\n credential: AuthCredential,\n onUpgrade?: OnUpgradeCallback\n) => {\n const currentUser = ui.auth.currentUser;\n\n if (!currentUser?.isAnonymous) {\n return;\n }\n\n const oldUserId = currentUser.uid;\n\n const result = await linkWithCredential(currentUser, credential);\n\n if (onUpgrade) {\n await onUpgrade(ui, oldUserId, result);\n }\n\n return result;\n};\n\nexport const autoUpgradeAnonymousProviderHandler = async (\n ui: FirebaseUI,\n provider: AuthProvider,\n onUpgrade?: OnUpgradeCallback\n) => {\n const currentUser = ui.auth.currentUser;\n\n if (!currentUser?.isAnonymous) {\n return;\n }\n\n const oldUserId = currentUser.uid;\n\n window.localStorage.setItem(\"fbui:upgrade:oldUserId\", oldUserId);\n\n const result = await getBehavior(ui, \"providerLinkStrategy\")(ui, currentUser, provider);\n\n // If we got here, the user has been linked via a popup, so we need to call the onUpgrade callback\n // and delete the oldUserId from localStorage.\n // If we didn't get here, they'll be redirected and we'll handle the result inside of the autoUpgradeAnonymousUserRedirectHandler.\n\n window.localStorage.removeItem(\"fbui:upgrade:oldUserId\");\n\n if (onUpgrade) {\n await onUpgrade(ui, oldUserId, result);\n }\n\n return result;\n};\n\nexport const autoUpgradeAnonymousUserRedirectHandler = async (\n ui: FirebaseUI,\n credential: UserCredential | null,\n onUpgrade?: OnUpgradeCallback\n) => {\n const oldUserId = window.localStorage.getItem(\"fbui:upgrade:oldUserId\");\n\n // Always clean up localStorage once we've retrieved the oldUserId\n if (oldUserId) {\n window.localStorage.removeItem(\"fbui:upgrade:oldUserId\");\n }\n\n if (!onUpgrade || !oldUserId || !credential) {\n return;\n }\n\n await onUpgrade(ui, oldUserId, credential);\n};\n","import { signInAnonymously } from \"firebase/auth\";\nimport { type InitHandler } from \"./utils\";\n\nexport const autoAnonymousLoginHandler: InitHandler = async (ui) => {\n const auth = ui.auth;\n\n if (!auth.currentUser) {\n await signInAnonymously(auth);\n }\n};\n","import { RecaptchaVerifier } from \"firebase/auth\";\nimport { type FirebaseUI } from \"~/config\";\n\nexport type RecaptchaVerificationOptions = {\n size?: \"normal\" | \"invisible\" | \"compact\";\n theme?: \"light\" | \"dark\";\n tabindex?: number;\n};\n\nexport const recaptchaVerificationHandler = (\n ui: FirebaseUI,\n element: HTMLElement,\n options?: RecaptchaVerificationOptions\n) => {\n return new RecaptchaVerifier(ui.auth, element, {\n size: options?.size ?? \"invisible\",\n theme: options?.theme ?? \"light\",\n tabindex: options?.tabindex ?? 0,\n });\n};\n","import {\n type AuthProvider,\n linkWithPopup,\n linkWithRedirect,\n signInWithPopup,\n signInWithRedirect,\n type User,\n type UserCredential,\n} from \"firebase/auth\";\nimport { type FirebaseUI } from \"~/config\";\n\nexport type ProviderSignInStrategyHandler = (ui: FirebaseUI, provider: AuthProvider) => Promise<never | UserCredential>;\nexport type ProviderLinkStrategyHandler = (\n ui: FirebaseUI,\n user: User,\n provider: AuthProvider\n) => Promise<never | UserCredential>;\n\nexport const signInWithRediectHandler: ProviderSignInStrategyHandler = async (ui, provider) => {\n return signInWithRedirect(ui.auth, provider);\n};\n\nexport const signInWithPopupHandler: ProviderSignInStrategyHandler = async (ui, provider) => {\n return signInWithPopup(ui.auth, provider);\n};\n\nexport const linkWithRedirectHandler: ProviderLinkStrategyHandler = async (_ui, user, provider) => {\n return linkWithRedirect(user, provider);\n};\n\nexport const linkWithPopupHandler: ProviderLinkStrategyHandler = async (_ui, user, provider) => {\n return linkWithPopup(user, provider);\n};\n","import { GoogleAuthProvider } from \"firebase/auth\";\nimport type { IdConfiguration } from \"google-one-tap\";\nimport type { FirebaseUI } from \"~/config\";\nimport { signInWithCredential } from \"~/auth\";\n\nexport type OneTapSignInOptions = {\n clientId: IdConfiguration[\"client_id\"];\n autoSelect?: IdConfiguration[\"auto_select\"];\n cancelOnTapOutside?: IdConfiguration[\"cancel_on_tap_outside\"];\n context?: IdConfiguration[\"context\"];\n uxMode?: IdConfiguration[\"ux_mode\"];\n logLevel?: IdConfiguration[\"log_level\"];\n};\n\nexport const oneTapSignInHandler = async (ui: FirebaseUI, options: OneTapSignInOptions) => {\n // Only show one-tap if user is not signed in OR if they are anonymous.\n // Don't show if user is already signed in with a real account.\n if (ui.auth.currentUser && !ui.auth.currentUser.isAnonymous) {\n return;\n }\n\n // Prevent multiple instances of the script from being loaded, e.g. hot reload.\n if (document.querySelector(\"script[data-one-tap-sign-in]\")) {\n return;\n }\n\n const script = document.createElement(\"script\");\n script.setAttribute(\"data-one-tap-sign-in\", \"true\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n\n script.onload = () => {\n window.google.accounts.id.initialize({\n client_id: options.clientId,\n auto_select: options.autoSelect,\n cancel_on_tap_outside: options.cancelOnTapOutside,\n context: options.context,\n ux_mode: options.uxMode,\n log_level: options.logLevel,\n callback: async (response) => {\n const credential = GoogleAuthProvider.credential(response.credential);\n await signInWithCredential(ui, credential);\n },\n });\n\n window.google.accounts.id.prompt();\n };\n\n document.body.appendChild(script);\n};\n","import { updateProfile, type User } from \"firebase/auth\";\nimport { type FirebaseUI } from \"~/config\";\n\nexport const requireDisplayNameHandler = async (_: FirebaseUI, user: User, displayName: string) => {\n await updateProfile(user, { displayName });\n};\n","/**\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { formatIncompletePhoneNumber, parsePhoneNumberWithError, type CountryCode } from \"libphonenumber-js\";\n\nexport const countryData = [\n { name: \"Afghanistan\", dialCode: \"+93\", code: \"AF\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ซ\" },\n { name: \"Albania\", dialCode: \"+355\", code: \"AL\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ฑ\" },\n { name: \"Algeria\", dialCode: \"+213\", code: \"DZ\", emoji: \"๐Ÿ‡ฉ๐Ÿ‡ฟ\" },\n { name: \"American Samoa\", dialCode: \"+1\", code: \"AS\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ธ\" },\n { name: \"Andorra\", dialCode: \"+376\", code: \"AD\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ฉ\" },\n { name: \"Angola\", dialCode: \"+244\", code: \"AO\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ด\" },\n { name: \"Anguilla\", dialCode: \"+1\", code: \"AI\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ฎ\" },\n { name: \"Antigua and Barbuda\", dialCode: \"+1\", code: \"AG\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ฌ\" },\n { name: \"Argentina\", dialCode: \"+54\", code: \"AR\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ท\" },\n { name: \"Armenia\", dialCode: \"+374\", code: \"AM\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ฒ\" },\n { name: \"Aruba\", dialCode: \"+297\", code: \"AW\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ผ\" },\n { name: \"Ascension Island\", dialCode: \"+247\", code: \"AC\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡จ\" },\n { name: \"Australia\", dialCode: \"+61\", code: \"AU\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡บ\" },\n { name: \"Austria\", dialCode: \"+43\", code: \"AT\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡น\" },\n { name: \"Azerbaijan\", dialCode: \"+994\", code: \"AZ\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ฟ\" },\n { name: \"Bahamas\", dialCode: \"+1\", code: \"BS\", emoji: \"๐Ÿ‡ง๐Ÿ‡ธ\" },\n { name: \"Bahrain\", dialCode: \"+973\", code: \"BH\", emoji: \"๐Ÿ‡ง๐Ÿ‡ญ\" },\n { name: \"Bangladesh\", dialCode: \"+880\", code: \"BD\", emoji: \"๐Ÿ‡ง๐Ÿ‡ฉ\" },\n { name: \"Barbados\", dialCode: \"+1\", code: \"BB\", emoji: \"๐Ÿ‡ง๐Ÿ‡ง\" },\n { name: \"Belarus\", dialCode: \"+375\", code: \"BY\", emoji: \"๐Ÿ‡ง๐Ÿ‡พ\" },\n { name: \"Belgium\", dialCode: \"+32\", code: \"BE\", emoji: \"๐Ÿ‡ง๐Ÿ‡ช\" },\n { name: \"Belize\", dialCode: \"+501\", code: \"BZ\", emoji: \"๐Ÿ‡ง๐Ÿ‡ฟ\" },\n { name: \"Benin\", dialCode: \"+229\", code: \"BJ\", emoji: \"๐Ÿ‡ง๐Ÿ‡ฏ\" },\n { name: \"Bermuda\", dialCode: \"+1\", code: \"BM\", emoji: \"๐Ÿ‡ง๐Ÿ‡ฒ\" },\n { name: \"Bhutan\", dialCode: \"+975\", code: \"BT\", emoji: \"๐Ÿ‡ง๐Ÿ‡น\" },\n { name: \"Bolivia\", dialCode: \"+591\", code: \"BO\", emoji: \"๐Ÿ‡ง๐Ÿ‡ด\" },\n { name: \"Bosnia and Herzegovina\", dialCode: \"+387\", code: \"BA\", emoji: \"๐Ÿ‡ง๐Ÿ‡ฆ\" },\n { name: \"Botswana\", dialCode: \"+267\", code: \"BW\", emoji: \"๐Ÿ‡ง๐Ÿ‡ผ\" },\n { name: \"Brazil\", dialCode: \"+55\", code: \"BR\", emoji: \"๐Ÿ‡ง๐Ÿ‡ท\" },\n { name: \"British Indian Ocean Territory\", dialCode: \"+246\", code: \"IO\", emoji: \"๐Ÿ‡ฎ๐Ÿ‡ด\" },\n { name: \"British Virgin Islands\", dialCode: \"+1\", code: \"VG\", emoji: \"๐Ÿ‡ป๐Ÿ‡ฌ\" },\n { name: \"Brunei\", dialCode: \"+673\", code: \"BN\", emoji: \"๐Ÿ‡ง๐Ÿ‡ณ\" },\n { name: \"Bulgaria\", dialCode: \"+359\", code: \"BG\", emoji: \"๐Ÿ‡ง๐Ÿ‡ฌ\" },\n { name: \"Burkina Faso\", dialCode: \"+226\", code: \"BF\", emoji: \"๐Ÿ‡ง๐Ÿ‡ซ\" },\n { name: \"Burundi\", dialCode: \"+257\", code: \"BI\", emoji: \"๐Ÿ‡ง๐Ÿ‡ฎ\" },\n { name: \"Cambodia\", dialCode: \"+855\", code: \"KH\", emoji: \"๐Ÿ‡ฐ๐Ÿ‡ญ\" },\n { name: \"Cameroon\", dialCode: \"+237\", code: \"CM\", emoji: \"๐Ÿ‡จ๐Ÿ‡ฒ\" },\n { name: \"Canada\", dialCode: \"+1\", code: \"CA\", emoji: \"๐Ÿ‡จ๐Ÿ‡ฆ\" },\n { name: \"Cape Verde\", dialCode: \"+238\", code: \"CV\", emoji: \"๐Ÿ‡จ๐Ÿ‡ป\" },\n { name: \"Caribbean Netherlands\", dialCode: \"+599\", code: \"BQ\", emoji: \"๐Ÿ‡ง๐Ÿ‡ถ\" },\n { name: \"Cayman Islands\", dialCode: \"+1\", code: \"KY\", emoji: \"๐Ÿ‡ฐ๐Ÿ‡พ\" },\n { name: \"Central African Republic\", dialCode: \"+236\", code: \"CF\", emoji: \"๐Ÿ‡จ๐Ÿ‡ซ\" },\n { name: \"Chad\", dialCode: \"+235\", code: \"TD\", emoji: \"๐Ÿ‡น๐Ÿ‡ฉ\" },\n { name: \"Chile\", dialCode: \"+56\", code: \"CL\", emoji: \"๐Ÿ‡จ๐Ÿ‡ฑ\" },\n { name: \"China\", dialCode: \"+86\", code: \"CN\", emoji: \"๐Ÿ‡จ๐Ÿ‡ณ\" },\n { name: \"Christmas Island\", dialCode: \"+61\", code: \"CX\", emoji: \"๐Ÿ‡จ๐Ÿ‡ฝ\" },\n { name: \"Cocos [Keeling] Islands\", dialCode: \"+61\", code: \"CC\", emoji: \"๐Ÿ‡จ๐Ÿ‡จ\" },\n { name: \"Colombia\", dialCode: \"+57\", code: \"CO\", emoji: \"๐Ÿ‡จ๐Ÿ‡ด\" },\n { name: \"Comoros\", dialCode: \"+269\", code: \"KM\", emoji: \"๐Ÿ‡ฐ๐Ÿ‡ฒ\" },\n { name: \"Democratic Republic Congo\", dialCode: \"+243\", code: \"CD\", emoji: \"๐Ÿ‡จ๐Ÿ‡ฉ\" },\n { name: \"Republic of Congo\", dialCode: \"+242\", code: \"CG\", emoji: \"๐Ÿ‡จ๐Ÿ‡ฌ\" },\n { name: \"Cook Islands\", dialCode: \"+682\", code: \"CK\", emoji: \"๐Ÿ‡จ๐Ÿ‡ฐ\" },\n { name: \"Costa Rica\", dialCode: \"+506\", code: \"CR\", emoji: \"๐Ÿ‡จ๐Ÿ‡ท\" },\n { name: \"Cรดte d'Ivoire\", dialCode: \"+225\", code: \"CI\", emoji: \"๐Ÿ‡จ๐Ÿ‡ฎ\" },\n { name: \"Croatia\", dialCode: \"+385\", code: \"HR\", emoji: \"๐Ÿ‡ญ๐Ÿ‡ท\" },\n { name: \"Cuba\", dialCode: \"+53\", code: \"CU\", emoji: \"๐Ÿ‡จ๐Ÿ‡บ\" },\n { name: \"Curaรงao\", dialCode: \"+599\", code: \"CW\", emoji: \"๐Ÿ‡จ๐Ÿ‡ผ\" },\n { name: \"Cyprus\", dialCode: \"+357\", code: \"CY\", emoji: \"๐Ÿ‡จ๐Ÿ‡พ\" },\n { name: \"Czech Republic\", dialCode: \"+420\", code: \"CZ\", emoji: \"๐Ÿ‡จ๐Ÿ‡ฟ\" },\n { name: \"Denmark\", dialCode: \"+45\", code: \"DK\", emoji: \"๐Ÿ‡ฉ๐Ÿ‡ฐ\" },\n { name: \"Djibouti\", dialCode: \"+253\", code: \"DJ\", emoji: \"๐Ÿ‡ฉ๐Ÿ‡ฏ\" },\n { name: \"Dominica\", dialCode: \"+1\", code: \"DM\", emoji: \"๐Ÿ‡ฉ๐Ÿ‡ฒ\" },\n { name: \"Dominican Republic\", dialCode: \"+1\", code: \"DO\", emoji: \"๐Ÿ‡ฉ๐Ÿ‡ด\" },\n { name: \"East Timor\", dialCode: \"+670\", code: \"TL\", emoji: \"๐Ÿ‡น๐Ÿ‡ฑ\" },\n { name: \"Ecuador\", dialCode: \"+593\", code: \"EC\", emoji: \"๐Ÿ‡ช๐Ÿ‡จ\" },\n { name: \"Egypt\", dialCode: \"+20\", code: \"EG\", emoji: \"๐Ÿ‡ช๐Ÿ‡ฌ\" },\n { name: \"El Salvador\", dialCode: \"+503\", code: \"SV\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ป\" },\n { name: \"Equatorial Guinea\", dialCode: \"+240\", code: \"GQ\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ถ\" },\n { name: \"Eritrea\", dialCode: \"+291\", code: \"ER\", emoji: \"๐Ÿ‡ช๐Ÿ‡ท\" },\n { name: \"Estonia\", dialCode: \"+372\", code: \"EE\", emoji: \"๐Ÿ‡ช๐Ÿ‡ช\" },\n { name: \"Ethiopia\", dialCode: \"+251\", code: \"ET\", emoji: \"๐Ÿ‡ช๐Ÿ‡น\" },\n { name: \"Falkland Islands [Islas Malvinas]\", dialCode: \"+500\", code: \"FK\", emoji: \"๐Ÿ‡ซ๐Ÿ‡ฐ\" },\n { name: \"Faroe Islands\", dialCode: \"+298\", code: \"FO\", emoji: \"๐Ÿ‡ซ๐Ÿ‡ด\" },\n { name: \"Fiji\", dialCode: \"+679\", code: \"FJ\", emoji: \"๐Ÿ‡ซ๐Ÿ‡ฏ\" },\n { name: \"Finland\", dialCode: \"+358\", code: \"FI\", emoji: \"๐Ÿ‡ซ๐Ÿ‡ฎ\" },\n { name: \"France\", dialCode: \"+33\", code: \"FR\", emoji: \"๐Ÿ‡ซ๐Ÿ‡ท\" },\n { name: \"French Guiana\", dialCode: \"+594\", code: \"GF\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ซ\" },\n { name: \"French Polynesia\", dialCode: \"+689\", code: \"PF\", emoji: \"๐Ÿ‡ต๐Ÿ‡ซ\" },\n { name: \"Gabon\", dialCode: \"+241\", code: \"GA\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ฆ\" },\n { name: \"Gambia\", dialCode: \"+220\", code: \"GM\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ฒ\" },\n { name: \"Georgia\", dialCode: \"+995\", code: \"GE\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ช\" },\n { name: \"Germany\", dialCode: \"+49\", code: \"DE\", emoji: \"๐Ÿ‡ฉ๐Ÿ‡ช\" },\n { name: \"Ghana\", dialCode: \"+233\", code: \"GH\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ญ\" },\n { name: \"Gibraltar\", dialCode: \"+350\", code: \"GI\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ฎ\" },\n { name: \"Greece\", dialCode: \"+30\", code: \"GR\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ท\" },\n { name: \"Greenland\", dialCode: \"+299\", code: \"GL\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ฑ\" },\n { name: \"Grenada\", dialCode: \"+1\", code: \"GD\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ฉ\" },\n { name: \"Guadeloupe\", dialCode: \"+590\", code: \"GP\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ต\" },\n { name: \"Guam\", dialCode: \"+1\", code: \"GU\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡บ\" },\n { name: \"Guatemala\", dialCode: \"+502\", code: \"GT\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡น\" },\n { name: \"Guernsey\", dialCode: \"+44\", code: \"GG\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ฌ\" },\n { name: \"Guinea Conakry\", dialCode: \"+224\", code: \"GN\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ณ\" },\n { name: \"Guinea-Bissau\", dialCode: \"+245\", code: \"GW\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ผ\" },\n { name: \"Guyana\", dialCode: \"+592\", code: \"GY\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡พ\" },\n { name: \"Haiti\", dialCode: \"+509\", code: \"HT\", emoji: \"๐Ÿ‡ญ๐Ÿ‡น\" },\n { name: \"Honduras\", dialCode: \"+504\", code: \"HN\", emoji: \"๐Ÿ‡ญ๐Ÿ‡ณ\" },\n { name: \"Hong Kong\", dialCode: \"+852\", code: \"HK\", emoji: \"๐Ÿ‡ญ๐Ÿ‡ฐ\" },\n { name: \"Hungary\", dialCode: \"+36\", code: \"HU\", emoji: \"๐Ÿ‡ญ๐Ÿ‡บ\" },\n { name: \"Iceland\", dialCode: \"+354\", code: \"IS\", emoji: \"๐Ÿ‡ฎ๐Ÿ‡ธ\" },\n { name: \"India\", dialCode: \"+91\", code: \"IN\", emoji: \"๐Ÿ‡ฎ๐Ÿ‡ณ\" },\n { name: \"Indonesia\", dialCode: \"+62\", code: \"ID\", emoji: \"๐Ÿ‡ฎ๐Ÿ‡ฉ\" },\n { name: \"Iran\", dialCode: \"+98\", code: \"IR\", emoji: \"๐Ÿ‡ฎ๐Ÿ‡ท\" },\n { name: \"Iraq\", dialCode: \"+964\", code: \"IQ\", emoji: \"๐Ÿ‡ฎ๐Ÿ‡ถ\" },\n { name: \"Ireland\", dialCode: \"+353\", code: \"IE\", emoji: \"๐Ÿ‡ฎ๐Ÿ‡ช\" },\n { name: \"Isle of Man\", dialCode: \"+44\", code: \"IM\", emoji: \"๐Ÿ‡ฎ๐Ÿ‡ฒ\" },\n { name: \"Israel\", dialCode: \"+972\", code: \"IL\", emoji: \"๐Ÿ‡ฎ๐Ÿ‡ฑ\" },\n { name: \"Italy\", dialCode: \"+39\", code: \"IT\", emoji: \"๐Ÿ‡ฎ๐Ÿ‡น\" },\n { name: \"Jamaica\", dialCode: \"+1\", code: \"JM\", emoji: \"๐Ÿ‡ฏ๐Ÿ‡ฒ\" },\n { name: \"Japan\", dialCode: \"+81\", code: \"JP\", emoji: \"๐Ÿ‡ฏ๐Ÿ‡ต\" },\n { name: \"Jersey\", dialCode: \"+44\", code: \"JE\", emoji: \"๐Ÿ‡ฏ๐Ÿ‡ช\" },\n { name: \"Jordan\", dialCode: \"+962\", code: \"JO\", emoji: \"๐Ÿ‡ฏ๐Ÿ‡ด\" },\n { name: \"Kazakhstan\", dialCode: \"+7\", code: \"KZ\", emoji: \"๐Ÿ‡ฐ๐Ÿ‡ฟ\" },\n { name: \"Kenya\", dialCode: \"+254\", code: \"KE\", emoji: \"๐Ÿ‡ฐ๐Ÿ‡ช\" },\n { name: \"Kiribati\", dialCode: \"+686\", code: \"KI\", emoji: \"๐Ÿ‡ฐ๐Ÿ‡ฎ\" },\n { name: \"Kosovo\", dialCode: \"+377\", code: \"XK\", emoji: \"๐Ÿ‡ฝ๐Ÿ‡ฐ\" },\n { name: \"Kosovo\", dialCode: \"+381\", code: \"XK\", emoji: \"๐Ÿ‡ฝ๐Ÿ‡ฐ\" },\n { name: \"Kosovo\", dialCode: \"+386\", code: \"XK\", emoji: \"๐Ÿ‡ฝ๐Ÿ‡ฐ\" },\n { name: \"Kuwait\", dialCode: \"+965\", code: \"KW\", emoji: \"๐Ÿ‡ฐ๐Ÿ‡ผ\" },\n { name: \"Kyrgyzstan\", dialCode: \"+996\", code: \"KG\", emoji: \"๐Ÿ‡ฐ๐Ÿ‡ฌ\" },\n { name: \"Laos\", dialCode: \"+856\", code: \"LA\", emoji: \"๐Ÿ‡ฑ๐Ÿ‡ฆ\" },\n { name: \"Latvia\", dialCode: \"+371\", code: \"LV\", emoji: \"๐Ÿ‡ฑ๐Ÿ‡ป\" },\n { name: \"Lebanon\", dialCode: \"+961\", code: \"LB\", emoji: \"๐Ÿ‡ฑ๐Ÿ‡ง\" },\n { name: \"Lesotho\", dialCode: \"+266\", code: \"LS\", emoji: \"๐Ÿ‡ฑ๐Ÿ‡ธ\" },\n { name: \"Liberia\", dialCode: \"+231\", code: \"LR\", emoji: \"๐Ÿ‡ฑ๐Ÿ‡ท\" },\n { name: \"Libya\", dialCode: \"+218\", code: \"LY\", emoji: \"๐Ÿ‡ฑ๐Ÿ‡พ\" },\n { name: \"Liechtenstein\", dialCode: \"+423\", code: \"LI\", emoji: \"๐Ÿ‡ฑ๐Ÿ‡ฎ\" },\n { name: \"Lithuania\", dialCode: \"+370\", code: \"LT\", emoji: \"๐Ÿ‡ฑ๐Ÿ‡น\" },\n { name: \"Luxembourg\", dialCode: \"+352\", code: \"LU\", emoji: \"๐Ÿ‡ฑ๐Ÿ‡บ\" },\n { name: \"Macau\", dialCode: \"+853\", code: \"MO\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ด\" },\n { name: \"Macedonia\", dialCode: \"+389\", code: \"MK\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ฐ\" },\n { name: \"Madagascar\", dialCode: \"+261\", code: \"MG\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ฌ\" },\n { name: \"Malawi\", dialCode: \"+265\", code: \"MW\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ผ\" },\n { name: \"Malaysia\", dialCode: \"+60\", code: \"MY\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡พ\" },\n { name: \"Maldives\", dialCode: \"+960\", code: \"MV\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ป\" },\n { name: \"Mali\", dialCode: \"+223\", code: \"ML\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ฑ\" },\n { name: \"Malta\", dialCode: \"+356\", code: \"MT\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡น\" },\n { name: \"Marshall Islands\", dialCode: \"+692\", code: \"MH\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ญ\" },\n { name: \"Martinique\", dialCode: \"+596\", code: \"MQ\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ถ\" },\n { name: \"Mauritania\", dialCode: \"+222\", code: \"MR\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ท\" },\n { name: \"Mauritius\", dialCode: \"+230\", code: \"MU\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡บ\" },\n { name: \"Mayotte\", dialCode: \"+262\", code: \"YT\", emoji: \"๐Ÿ‡พ๐Ÿ‡น\" },\n { name: \"Mexico\", dialCode: \"+52\", code: \"MX\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ฝ\" },\n { name: \"Micronesia\", dialCode: \"+691\", code: \"FM\", emoji: \"๐Ÿ‡ซ๐Ÿ‡ฒ\" },\n { name: \"Moldova\", dialCode: \"+373\", code: \"MD\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ฉ\" },\n { name: \"Monaco\", dialCode: \"+377\", code: \"MC\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡จ\" },\n { name: \"Mongolia\", dialCode: \"+976\", code: \"MN\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ณ\" },\n { name: \"Montenegro\", dialCode: \"+382\", code: \"ME\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ช\" },\n { name: \"Montserrat\", dialCode: \"+1\", code: \"MS\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ธ\" },\n { name: \"Morocco\", dialCode: \"+212\", code: \"MA\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ฆ\" },\n { name: \"Mozambique\", dialCode: \"+258\", code: \"MZ\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ฟ\" },\n { name: \"Myanmar [Burma]\", dialCode: \"+95\", code: \"MM\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ฒ\" },\n { name: \"Namibia\", dialCode: \"+264\", code: \"NA\", emoji: \"๐Ÿ‡ณ๐Ÿ‡ฆ\" },\n { name: \"Nauru\", dialCode: \"+674\", code: \"NR\", emoji: \"๐Ÿ‡ณ๐Ÿ‡ท\" },\n { name: \"Nepal\", dialCode: \"+977\", code: \"NP\", emoji: \"๐Ÿ‡ณ๐Ÿ‡ต\" },\n { name: \"Netherlands\", dialCode: \"+31\", code: \"NL\", emoji: \"๐Ÿ‡ณ๐Ÿ‡ฑ\" },\n { name: \"New Caledonia\", dialCode: \"+687\", code: \"NC\", emoji: \"๐Ÿ‡ณ๐Ÿ‡จ\" },\n { name: \"New Zealand\", dialCode: \"+64\", code: \"NZ\", emoji: \"๐Ÿ‡ณ๐Ÿ‡ฟ\" },\n { name: \"Nicaragua\", dialCode: \"+505\", code: \"NI\", emoji: \"๐Ÿ‡ณ๐Ÿ‡ฎ\" },\n { name: \"Niger\", dialCode: \"+227\", code: \"NE\", emoji: \"๐Ÿ‡ณ๐Ÿ‡ช\" },\n { name: \"Nigeria\", dialCode: \"+234\", code: \"NG\", emoji: \"๐Ÿ‡ณ๐Ÿ‡ฌ\" },\n { name: \"Niue\", dialCode: \"+683\", code: \"NU\", emoji: \"๐Ÿ‡ณ๐Ÿ‡บ\" },\n { name: \"Norfolk Island\", dialCode: \"+672\", code: \"NF\", emoji: \"๐Ÿ‡ณ๐Ÿ‡ซ\" },\n { name: \"North Korea\", dialCode: \"+850\", code: \"KP\", emoji: \"๐Ÿ‡ฐ๐Ÿ‡ต\" },\n { name: \"Northern Mariana Islands\", dialCode: \"+1\", code: \"MP\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ต\" },\n { name: \"Norway\", dialCode: \"+47\", code: \"NO\", emoji: \"๐Ÿ‡ณ๐Ÿ‡ด\" },\n { name: \"Oman\", dialCode: \"+968\", code: \"OM\", emoji: \"๐Ÿ‡ด๐Ÿ‡ฒ\" },\n { name: \"Pakistan\", dialCode: \"+92\", code: \"PK\", emoji: \"๐Ÿ‡ต๐Ÿ‡ฐ\" },\n { name: \"Palau\", dialCode: \"+680\", code: \"PW\", emoji: \"๐Ÿ‡ต๐Ÿ‡ผ\" },\n { name: \"Palestinian Territories\", dialCode: \"+970\", code: \"PS\", emoji: \"๐Ÿ‡ต๐Ÿ‡ธ\" },\n { name: \"Panama\", dialCode: \"+507\", code: \"PA\", emoji: \"๐Ÿ‡ต๐Ÿ‡ฆ\" },\n { name: \"Papua New Guinea\", dialCode: \"+675\", code: \"PG\", emoji: \"๐Ÿ‡ต๐Ÿ‡ฌ\" },\n { name: \"Paraguay\", dialCode: \"+595\", code: \"PY\", emoji: \"๐Ÿ‡ต๐Ÿ‡พ\" },\n { name: \"Peru\", dialCode: \"+51\", code: \"PE\", emoji: \"๐Ÿ‡ต๐Ÿ‡ช\" },\n { name: \"Philippines\", dialCode: \"+63\", code: \"PH\", emoji: \"๐Ÿ‡ต๐Ÿ‡ญ\" },\n { name: \"Poland\", dialCode: \"+48\", code: \"PL\", emoji: \"๐Ÿ‡ต๐Ÿ‡ฑ\" },\n { name: \"Portugal\", dialCode: \"+351\", code: \"PT\", emoji: \"๐Ÿ‡ต๐Ÿ‡น\" },\n { name: \"Puerto Rico\", dialCode: \"+1\", code: \"PR\", emoji: \"๐Ÿ‡ต๐Ÿ‡ท\" },\n { name: \"Qatar\", dialCode: \"+974\", code: \"QA\", emoji: \"๐Ÿ‡ถ๐Ÿ‡ฆ\" },\n { name: \"Rรฉunion\", dialCode: \"+262\", code: \"RE\", emoji: \"๐Ÿ‡ท๐Ÿ‡ช\" },\n { name: \"Romania\", dialCode: \"+40\", code: \"RO\", emoji: \"๐Ÿ‡ท๐Ÿ‡ด\" },\n { name: \"Russia\", dialCode: \"+7\", code: \"RU\", emoji: \"๐Ÿ‡ท๐Ÿ‡บ\" },\n { name: \"Rwanda\", dialCode: \"+250\", code: \"RW\", emoji: \"๐Ÿ‡ท๐Ÿ‡ผ\" },\n { name: \"Saint Barthรฉlemy\", dialCode: \"+590\", code: \"BL\", emoji: \"๐Ÿ‡ง๐Ÿ‡ฑ\" },\n { name: \"Saint Helena\", dialCode: \"+290\", code: \"SH\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ญ\" },\n { name: \"St. Kitts\", dialCode: \"+1\", code: \"KN\", emoji: \"๐Ÿ‡ฐ๐Ÿ‡ณ\" },\n { name: \"St. Lucia\", dialCode: \"+1\", code: \"LC\", emoji: \"๐Ÿ‡ฑ๐Ÿ‡จ\" },\n { name: \"Saint Martin\", dialCode: \"+590\", code: \"MF\", emoji: \"๐Ÿ‡ฒ๐Ÿ‡ซ\" },\n { name: \"Saint Pierre and Miquelon\", dialCode: \"+508\", code: \"PM\", emoji: \"๐Ÿ‡ต๐Ÿ‡ฒ\" },\n { name: \"St. Vincent\", dialCode: \"+1\", code: \"VC\", emoji: \"๐Ÿ‡ป๐Ÿ‡จ\" },\n { name: \"Samoa\", dialCode: \"+685\", code: \"WS\", emoji: \"๐Ÿ‡ผ๐Ÿ‡ธ\" },\n { name: \"San Marino\", dialCode: \"+378\", code: \"SM\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ฒ\" },\n { name: \"Sรฃo Tomรฉ and Prรญncipe\", dialCode: \"+239\", code: \"ST\", emoji: \"๐Ÿ‡ธ๐Ÿ‡น\" },\n { name: \"Saudi Arabia\", dialCode: \"+966\", code: \"SA\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ฆ\" },\n { name: \"Senegal\", dialCode: \"+221\", code: \"SN\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ณ\" },\n { name: \"Serbia\", dialCode: \"+381\", code: \"RS\", emoji: \"๐Ÿ‡ท๐Ÿ‡ธ\" },\n { name: \"Seychelles\", dialCode: \"+248\", code: \"SC\", emoji: \"๐Ÿ‡ธ๐Ÿ‡จ\" },\n { name: \"Sierra Leone\", dialCode: \"+232\", code: \"SL\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ฑ\" },\n { name: \"Singapore\", dialCode: \"+65\", code: \"SG\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ฌ\" },\n { name: \"Sint Maarten\", dialCode: \"+1\", code: \"SX\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ฝ\" },\n { name: \"Slovakia\", dialCode: \"+421\", code: \"SK\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ฐ\" },\n { name: \"Slovenia\", dialCode: \"+386\", code: \"SI\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ฎ\" },\n { name: \"Solomon Islands\", dialCode: \"+677\", code: \"SB\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ง\" },\n { name: \"Somalia\", dialCode: \"+252\", code: \"SO\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ด\" },\n { name: \"South Africa\", dialCode: \"+27\", code: \"ZA\", emoji: \"๐Ÿ‡ฟ๐Ÿ‡ฆ\" },\n { name: \"South Korea\", dialCode: \"+82\", code: \"KR\", emoji: \"๐Ÿ‡ฐ๐Ÿ‡ท\" },\n { name: \"South Sudan\", dialCode: \"+211\", code: \"SS\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ธ\" },\n { name: \"Spain\", dialCode: \"+34\", code: \"ES\", emoji: \"๐Ÿ‡ช๐Ÿ‡ธ\" },\n { name: \"Sri Lanka\", dialCode: \"+94\", code: \"LK\", emoji: \"๐Ÿ‡ฑ๐Ÿ‡ฐ\" },\n { name: \"Sudan\", dialCode: \"+249\", code: \"SD\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ฉ\" },\n { name: \"Suriname\", dialCode: \"+597\", code: \"SR\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ท\" },\n { name: \"Svalbard and Jan Mayen\", dialCode: \"+47\", code: \"SJ\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ฏ\" },\n { name: \"Swaziland\", dialCode: \"+268\", code: \"SZ\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ฟ\" },\n { name: \"Sweden\", dialCode: \"+46\", code: \"SE\", emoji: \"๐Ÿ‡ธ๐Ÿ‡ช\" },\n { name: \"Switzerland\", dialCode: \"+41\", code: \"CH\", emoji: \"๐Ÿ‡จ๐Ÿ‡ญ\" },\n { name: \"Syria\", dialCode: \"+963\", code: \"SY\", emoji: \"๐Ÿ‡ธ๐Ÿ‡พ\" },\n { name: \"Taiwan\", dialCode: \"+886\", code: \"TW\", emoji: \"๐Ÿ‡น๐Ÿ‡ผ\" },\n { name: \"Tajikistan\", dialCode: \"+992\", code: \"TJ\", emoji: \"๐Ÿ‡น๐Ÿ‡ฏ\" },\n { name: \"Tanzania\", dialCode: \"+255\", code: \"TZ\", emoji: \"๐Ÿ‡น๐Ÿ‡ฟ\" },\n { name: \"Thailand\", dialCode: \"+66\", code: \"TH\", emoji: \"๐Ÿ‡น๐Ÿ‡ญ\" },\n { name: \"Togo\", dialCode: \"+228\", code: \"TG\", emoji: \"๐Ÿ‡น๐Ÿ‡ฌ\" },\n { name: \"Tokelau\", dialCode: \"+690\", code: \"TK\", emoji: \"๐Ÿ‡น๐Ÿ‡ฐ\" },\n { name: \"Tonga\", dialCode: \"+676\", code: \"TO\", emoji: \"๐Ÿ‡น๐Ÿ‡ด\" },\n { name: \"Trinidad/Tobago\", dialCode: \"+1\", code: \"TT\", emoji: \"๐Ÿ‡น๐Ÿ‡น\" },\n { name: \"Tunisia\", dialCode: \"+216\", code: \"TN\", emoji: \"๐Ÿ‡น๐Ÿ‡ณ\" },\n { name: \"Turkey\", dialCode: \"+90\", code: \"TR\", emoji: \"๐Ÿ‡น๐Ÿ‡ท\" },\n { name: \"Turkmenistan\", dialCode: \"+993\", code: \"TM\", emoji: \"๐Ÿ‡น๐Ÿ‡ฒ\" },\n { name: \"Turks and Caicos Islands\", dialCode: \"+1\", code: \"TC\", emoji: \"๐Ÿ‡น๐Ÿ‡จ\" },\n { name: \"Tuvalu\", dialCode: \"+688\", code: \"TV\", emoji: \"๐Ÿ‡น๐Ÿ‡ป\" },\n { name: \"U.S. Virgin Islands\", dialCode: \"+1\", code: \"VI\", emoji: \"๐Ÿ‡ป๐Ÿ‡ฎ\" },\n { name: \"Uganda\", dialCode: \"+256\", code: \"UG\", emoji: \"๐Ÿ‡บ๐Ÿ‡ฌ\" },\n { name: \"Ukraine\", dialCode: \"+380\", code: \"UA\", emoji: \"๐Ÿ‡บ๐Ÿ‡ฆ\" },\n { name: \"United Arab Emirates\", dialCode: \"+971\", code: \"AE\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ช\" },\n { name: \"United Kingdom\", dialCode: \"+44\", code: \"GB\", emoji: \"๐Ÿ‡ฌ๐Ÿ‡ง\" },\n { name: \"United States\", dialCode: \"+1\", code: \"US\", emoji: \"๐Ÿ‡บ๐Ÿ‡ธ\" },\n { name: \"Uruguay\", dialCode: \"+598\", code: \"UY\", emoji: \"๐Ÿ‡บ๐Ÿ‡พ\" },\n { name: \"Uzbekistan\", dialCode: \"+998\", code: \"UZ\", emoji: \"๐Ÿ‡บ๐Ÿ‡ฟ\" },\n { name: \"Vanuatu\", dialCode: \"+678\", code: \"VU\", emoji: \"๐Ÿ‡ป๐Ÿ‡บ\" },\n { name: \"Vatican City\", dialCode: \"+379\", code: \"VA\", emoji: \"๐Ÿ‡ป๐Ÿ‡ฆ\" },\n { name: \"Venezuela\", dialCode: \"+58\", code: \"VE\", emoji: \"๐Ÿ‡ป๐Ÿ‡ช\" },\n { name: \"Vietnam\", dialCode: \"+84\", code: \"VN\", emoji: \"๐Ÿ‡ป๐Ÿ‡ณ\" },\n { name: \"Wallis and Futuna\", dialCode: \"+681\", code: \"WF\", emoji: \"๐Ÿ‡ผ๐Ÿ‡ซ\" },\n { name: \"Western Sahara\", dialCode: \"+212\", code: \"EH\", emoji: \"๐Ÿ‡ช๐Ÿ‡ญ\" },\n { name: \"Yemen\", dialCode: \"+967\", code: \"YE\", emoji: \"๐Ÿ‡พ๐Ÿ‡ช\" },\n { name: \"Zambia\", dialCode: \"+260\", code: \"ZM\", emoji: \"๐Ÿ‡ฟ๐Ÿ‡ฒ\" },\n { name: \"Zimbabwe\", dialCode: \"+263\", code: \"ZW\", emoji: \"๐Ÿ‡ฟ๐Ÿ‡ผ\" },\n { name: \"ร…land Islands\", dialCode: \"+358\", code: \"AX\", emoji: \"๐Ÿ‡ฆ๐Ÿ‡ฝ\" },\n] as const satisfies CountryData[];\n\nexport type CountryData = {\n name: string;\n dialCode: string;\n code: CountryCode;\n emoji: string;\n};\n\nexport type { CountryCode };\n\nexport function formatPhoneNumber(phoneNumber: string, countryData: CountryData): string {\n try {\n const parsedNumber = parsePhoneNumberWithError(phoneNumber, countryData.code);\n\n if (parsedNumber && parsedNumber.isValid()) {\n // Return the E164 format.\n return parsedNumber.number;\n }\n } catch {\n // If parsing fails, try to format as incomplete number\n }\n\n try {\n // Try to format as incomplete number with country\n const formatted = formatIncompletePhoneNumber(phoneNumber, countryData.code);\n // Remove spaces from the formatted result.\n return formatted.replace(/\\s/g, \"\");\n } catch {\n // If all else fails, just clean the number and prepend country code\n const cleaned = phoneNumber.replace(/[^\\d+]/g, \"\").trim();\n if (cleaned.startsWith(\"+\")) {\n return cleaned;\n }\n\n return `${countryData.dialCode}${cleaned}`;\n }\n}\n","import { type CountryCode, countryData } from \"../country-data\";\n\nexport type CountryCodesOptions = {\n // The allowed countries are the countries that will be shown in the country selector\n // or `getCountries` is called.\n allowedCountries?: CountryCode[];\n // The default country is the country that will be selected by default when\n // the country selector is rendered, or `getDefaultCountry` is called.\n defaultCountry?: CountryCode;\n};\n\nexport const countryCodesHandler = (options?: CountryCodesOptions) => {\n // Determine allowed countries\n let allowedCountries = options?.allowedCountries?.length\n ? countryData.filter((country) => options.allowedCountries!.includes(country.code))\n : countryData;\n\n // If no countries match, fall back to all countries\n if (options?.allowedCountries?.length && allowedCountries.length === 0) {\n console.warn(`No countries matched the \"allowedCountries\" list, falling back to all countries`);\n allowedCountries = countryData;\n }\n\n // Determine default country\n let defaultCountry = options?.defaultCountry\n ? countryData.find((country) => country.code === options.defaultCountry)!\n : countryData.find((country) => country.code === \"US\")!;\n\n // If default country is not in allowed countries, use first allowed country\n if (!allowedCountries.some((country) => country.code === defaultCountry.code)) {\n defaultCountry = allowedCountries[0]!;\n console.warn(\n `The \"defaultCountry\" option is not in the \"allowedCountries\" list, the default country has been set to ${defaultCountry.code}`\n );\n }\n\n return {\n allowedCountries,\n defaultCountry,\n };\n};\n","import type { UserCredential } from \"firebase/auth\";\nimport type { FirebaseUI } from \"~/config\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type CallableHandler<T extends (...args: any[]) => any = (...args: any[]) => any> = T;\nexport type InitHandler = (ui: FirebaseUI) => Promise<void> | void;\nexport type RedirectHandler = (ui: FirebaseUI, result: UserCredential | null) => Promise<void> | void;\n\nexport type CallableBehavior<T extends CallableHandler = CallableHandler> = {\n type: \"callable\";\n handler: T;\n};\n\nexport type RedirectBehavior<T extends RedirectHandler = RedirectHandler> = {\n type: \"redirect\";\n handler: T;\n};\n\nexport type InitBehavior<T extends InitHandler = InitHandler> = {\n type: \"init\";\n handler: T;\n};\n\nexport function callableBehavior<T extends CallableHandler>(handler: T): CallableBehavior<T> {\n return { type: \"callable\" as const, handler };\n}\n\nexport function redirectBehavior<T extends RedirectHandler = RedirectHandler>(handler: T): RedirectBehavior<T> {\n return { type: \"redirect\" as const, handler };\n}\n\nexport function initBehavior<T extends InitHandler = InitHandler>(handler: T): InitBehavior<T> {\n return { type: \"init\" as const, handler };\n}\n","import type { FirebaseUI } from \"~/config\";\nimport type { RecaptchaVerifier, UserCredential } from \"firebase/auth\";\nimport * as anonymousUpgradeHandlers from \"./anonymous-upgrade\";\nimport * as autoAnonymousLoginHandlers from \"./auto-anonymous-login\";\nimport * as recaptchaHandlers from \"./recaptcha\";\nimport * as providerStrategyHandlers from \"./provider-strategy\";\nimport * as oneTapSignInHandlers from \"./one-tap\";\nimport * as requireDisplayNameHandlers from \"./require-display-name\";\nimport * as countryCodesHandlers from \"./country-codes\";\nimport {\n callableBehavior,\n initBehavior,\n redirectBehavior,\n type CallableBehavior,\n type InitBehavior,\n type RedirectBehavior,\n} from \"./utils\";\n\ntype Registry = {\n autoAnonymousLogin: InitBehavior<typeof autoAnonymousLoginHandlers.autoAnonymousLoginHandler>;\n autoUpgradeAnonymousCredential: CallableBehavior<\n typeof anonymousUpgradeHandlers.autoUpgradeAnonymousCredentialHandler\n >;\n autoUpgradeAnonymousProvider: CallableBehavior<typeof anonymousUpgradeHandlers.autoUpgradeAnonymousProviderHandler>;\n autoUpgradeAnonymousUserRedirectHandler: RedirectBehavior<\n (\n ui: FirebaseUI,\n credential: UserCredential | null,\n onUpgrade?: anonymousUpgradeHandlers.OnUpgradeCallback\n ) => ReturnType<typeof anonymousUpgradeHandlers.autoUpgradeAnonymousUserRedirectHandler>\n >;\n recaptchaVerification: CallableBehavior<(ui: FirebaseUI, element: HTMLElement) => RecaptchaVerifier>;\n providerSignInStrategy: CallableBehavior<providerStrategyHandlers.ProviderSignInStrategyHandler>;\n providerLinkStrategy: CallableBehavior<providerStrategyHandlers.ProviderLinkStrategyHandler>;\n oneTapSignIn: InitBehavior<(ui: FirebaseUI) => ReturnType<typeof oneTapSignInHandlers.oneTapSignInHandler>>;\n requireDisplayName: CallableBehavior<typeof requireDisplayNameHandlers.requireDisplayNameHandler>;\n countryCodes: CallableBehavior<typeof countryCodesHandlers.countryCodesHandler>;\n};\n\nexport type Behavior<T extends keyof Registry = keyof Registry> = Pick<Registry, T>;\nexport type Behaviors = Partial<Registry>;\n\nexport function autoAnonymousLogin(): Behavior<\"autoAnonymousLogin\"> {\n return {\n autoAnonymousLogin: initBehavior(autoAnonymousLoginHandlers.autoAnonymousLoginHandler),\n };\n}\n\nexport type AutoUpgradeAnonymousUsersOptions = {\n onUpgrade?: anonymousUpgradeHandlers.OnUpgradeCallback;\n};\n\nexport function autoUpgradeAnonymousUsers(\n options?: AutoUpgradeAnonymousUsersOptions\n): Behavior<\n \"autoUpgradeAnonymousCredential\" | \"autoUpgradeAnonymousProvider\" | \"autoUpgradeAnonymousUserRedirectHandler\"\n> {\n return {\n autoUpgradeAnonymousCredential: callableBehavior((ui, credential) =>\n anonymousUpgradeHandlers.autoUpgradeAnonymousCredentialHandler(ui, credential, options?.onUpgrade)\n ),\n autoUpgradeAnonymousProvider: callableBehavior((ui, provider) =>\n anonymousUpgradeHandlers.autoUpgradeAnonymousProviderHandler(ui, provider, options?.onUpgrade)\n ),\n autoUpgradeAnonymousUserRedirectHandler: redirectBehavior((ui, credential) =>\n anonymousUpgradeHandlers.autoUpgradeAnonymousUserRedirectHandler(ui, credential, options?.onUpgrade)\n ),\n };\n}\n\nexport type RecaptchaVerificationOptions = recaptchaHandlers.RecaptchaVerificationOptions;\n\nexport function recaptchaVerification(options?: RecaptchaVerificationOptions): Behavior<\"recaptchaVerification\"> {\n return {\n recaptchaVerification: callableBehavior((ui, element) =>\n recaptchaHandlers.recaptchaVerificationHandler(ui, element, options)\n ),\n };\n}\n\nexport function providerRedirectStrategy(): Behavior<\"providerSignInStrategy\" | \"providerLinkStrategy\"> {\n return {\n providerSignInStrategy: callableBehavior(providerStrategyHandlers.signInWithRediectHandler),\n providerLinkStrategy: callableBehavior(providerStrategyHandlers.linkWithRedirectHandler),\n };\n}\n\nexport function providerPopupStrategy(): Behavior<\"providerSignInStrategy\" | \"providerLinkStrategy\"> {\n return {\n providerSignInStrategy: callableBehavior(providerStrategyHandlers.signInWithPopupHandler),\n providerLinkStrategy: callableBehavior(providerStrategyHandlers.linkWithPopupHandler),\n };\n}\n\nexport type OneTapSignInOptions = oneTapSignInHandlers.OneTapSignInOptions;\n\nexport function oneTapSignIn(options: OneTapSignInOptions): Behavior<\"oneTapSignIn\"> {\n return {\n oneTapSignIn: initBehavior((ui) => oneTapSignInHandlers.oneTapSignInHandler(ui, options)),\n };\n}\n\nexport function requireDisplayName(): Behavior<\"requireDisplayName\"> {\n return {\n requireDisplayName: callableBehavior(requireDisplayNameHandlers.requireDisplayNameHandler),\n };\n}\n\nexport function countryCodes(options?: countryCodesHandlers.CountryCodesOptions): Behavior<\"countryCodes\"> {\n return {\n countryCodes: callableBehavior(() => countryCodesHandlers.countryCodesHandler(options)),\n };\n}\n\nexport function hasBehavior<T extends keyof Registry>(ui: FirebaseUI, key: T): boolean {\n return !!ui.behaviors[key];\n}\n\nexport function getBehavior<T extends keyof Registry>(ui: FirebaseUI, key: T): Registry[T][\"handler\"] {\n if (!hasBehavior(ui, key)) {\n throw new Error(`Behavior ${key} not found`);\n }\n\n return (ui.behaviors[key] as Registry[T]).handler;\n}\n\nexport const defaultBehaviors: Behavior<\"recaptchaVerification\"> = {\n ...recaptchaVerification(),\n ...providerRedirectStrategy(),\n ...countryCodes(),\n};\n","/**\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n createUserWithEmailAndPassword as _createUserWithEmailAndPassword,\n isSignInWithEmailLink as _isSignInWithEmailLink,\n sendPasswordResetEmail as _sendPasswordResetEmail,\n sendSignInLinkToEmail as _sendSignInLinkToEmail,\n signInAnonymously as _signInAnonymously,\n signInWithCredential as _signInWithCredential,\n signInWithCustomToken as _signInWithCustomToken,\n EmailAuthProvider,\n linkWithCredential,\n PhoneAuthProvider,\n TotpMultiFactorGenerator,\n multiFactor,\n type ActionCodeSettings,\n type ApplicationVerifier,\n type AuthProvider,\n type UserCredential,\n type AuthCredential,\n type TotpSecret,\n type MultiFactorAssertion,\n type MultiFactorUser,\n type MultiFactorInfo,\n} from \"firebase/auth\";\nimport QRCode from \"qrcode-generator\";\nimport { type FirebaseUI } from \"./config\";\nimport { handleFirebaseError } from \"./errors\";\nimport { hasBehavior, getBehavior } from \"./behaviors/index\";\nimport { FirebaseError } from \"firebase/app\";\nimport { getTranslation } from \"./translations\";\n\nasync function handlePendingCredential(_ui: FirebaseUI, user: UserCredential): Promise<UserCredential> {\n const pendingCredString = window.sessionStorage.getItem(\"pendingCred\");\n if (!pendingCredString) return user;\n\n try {\n const pendingCred = JSON.parse(pendingCredString);\n const result = await linkWithCredential(user.user, pendingCred);\n window.sessionStorage.removeItem(\"pendingCred\");\n return result;\n } catch {\n window.sessionStorage.removeItem(\"pendingCred\");\n return user;\n }\n}\n\nfunction setPendingState(ui: FirebaseUI) {\n ui.setRedirectError(undefined);\n ui.setState(\"pending\");\n}\n\nexport async function signInWithEmailAndPassword(\n ui: FirebaseUI,\n email: string,\n password: string\n): Promise<UserCredential> {\n try {\n setPendingState(ui);\n const credential = EmailAuthProvider.credential(email, password);\n\n if (hasBehavior(ui, \"autoUpgradeAnonymousCredential\")) {\n const result = await getBehavior(ui, \"autoUpgradeAnonymousCredential\")(ui, credential);\n\n if (result) {\n return handlePendingCredential(ui, result);\n }\n }\n\n const result = await _signInWithCredential(ui.auth, credential);\n return handlePendingCredential(ui, result);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function createUserWithEmailAndPassword(\n ui: FirebaseUI,\n email: string,\n password: string,\n displayName?: string\n): Promise<UserCredential> {\n try {\n setPendingState(ui);\n const credential = EmailAuthProvider.credential(email, password);\n\n if (hasBehavior(ui, \"requireDisplayName\") && !displayName) {\n throw new FirebaseError(\"auth/display-name-required\", getTranslation(ui, \"errors\", \"displayNameRequired\"));\n }\n\n if (hasBehavior(ui, \"autoUpgradeAnonymousCredential\")) {\n const result = await getBehavior(ui, \"autoUpgradeAnonymousCredential\")(ui, credential);\n\n if (result) {\n if (hasBehavior(ui, \"requireDisplayName\")) {\n await getBehavior(ui, \"requireDisplayName\")(ui, result.user, displayName!);\n }\n\n return handlePendingCredential(ui, result);\n }\n }\n\n const result = await _createUserWithEmailAndPassword(ui.auth, email, password);\n\n if (hasBehavior(ui, \"requireDisplayName\")) {\n await getBehavior(ui, \"requireDisplayName\")(ui, result.user, displayName!);\n }\n\n return handlePendingCredential(ui, result);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function verifyPhoneNumber(\n ui: FirebaseUI,\n phoneNumber: string,\n appVerifier: ApplicationVerifier,\n mfaUser?: MultiFactorUser,\n mfaHint?: MultiFactorInfo\n): Promise<string> {\n try {\n setPendingState(ui);\n const provider = new PhoneAuthProvider(ui.auth);\n\n if (mfaHint && ui.multiFactorResolver) {\n // MFA assertion flow\n return await provider.verifyPhoneNumber(\n {\n multiFactorHint: mfaHint,\n session: ui.multiFactorResolver.session,\n },\n appVerifier\n );\n } else if (mfaUser) {\n // MFA enrollment flow\n const session = await mfaUser.getSession();\n return await provider.verifyPhoneNumber(\n {\n phoneNumber,\n session,\n },\n appVerifier\n );\n } else {\n // Regular phone auth flow\n return await provider.verifyPhoneNumber(phoneNumber, appVerifier);\n }\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function confirmPhoneNumber(\n ui: FirebaseUI,\n verificationId: string,\n verificationCode: string\n): Promise<UserCredential> {\n try {\n setPendingState(ui);\n const currentUser = ui.auth.currentUser;\n const credential = PhoneAuthProvider.credential(verificationId, verificationCode);\n\n if (currentUser?.isAnonymous && hasBehavior(ui, \"autoUpgradeAnonymousCredential\")) {\n const result = await getBehavior(ui, \"autoUpgradeAnonymousCredential\")(ui, credential);\n\n if (result) {\n return handlePendingCredential(ui, result);\n }\n }\n\n const result = await _signInWithCredential(ui.auth, credential);\n return handlePendingCredential(ui, result);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function sendPasswordResetEmail(ui: FirebaseUI, email: string): Promise<void> {\n try {\n setPendingState(ui);\n await _sendPasswordResetEmail(ui.auth, email);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function sendSignInLinkToEmail(ui: FirebaseUI, email: string): Promise<void> {\n try {\n setPendingState(ui);\n const actionCodeSettings = {\n url: window.location.href,\n // TODO(ehesp): Check this...\n handleCodeInApp: true,\n } satisfies ActionCodeSettings;\n\n await _sendSignInLinkToEmail(ui.auth, email, actionCodeSettings);\n // TODO: Should this be a behavior (\"storageStrategy\")?\n window.localStorage.setItem(\"emailForSignIn\", email);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function signInWithEmailLink(ui: FirebaseUI, email: string, link: string): Promise<UserCredential> {\n const credential = EmailAuthProvider.credentialWithLink(email, link);\n return signInWithCredential(ui, credential);\n}\n\nexport async function signInWithCredential(ui: FirebaseUI, credential: AuthCredential): Promise<UserCredential> {\n try {\n setPendingState(ui);\n if (hasBehavior(ui, \"autoUpgradeAnonymousCredential\")) {\n const userCredential = await getBehavior(ui, \"autoUpgradeAnonymousCredential\")(ui, credential);\n\n // If they got here, they're either not anonymous or they've been linked.\n // If the credential has been linked, we don't need to sign them in, so return early.\n if (userCredential) {\n return handlePendingCredential(ui, userCredential);\n }\n }\n\n const result = await _signInWithCredential(ui.auth, credential);\n return handlePendingCredential(ui, result);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function signInWithCustomToken(ui: FirebaseUI, customToken: string): Promise<UserCredential> {\n try {\n setPendingState(ui);\n const result = await _signInWithCustomToken(ui.auth, customToken);\n return handlePendingCredential(ui, result);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function signInAnonymously(ui: FirebaseUI): Promise<UserCredential> {\n try {\n setPendingState(ui);\n const result = await _signInAnonymously(ui.auth);\n return handlePendingCredential(ui, result);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function signInWithProvider(ui: FirebaseUI, provider: AuthProvider): Promise<UserCredential | never> {\n try {\n setPendingState(ui);\n if (hasBehavior(ui, \"autoUpgradeAnonymousProvider\")) {\n const credential = await getBehavior(ui, \"autoUpgradeAnonymousProvider\")(ui, provider);\n\n // If we got here, the user is either not anonymous, or they have been linked\n // via a popup, and the credential has been created.\n if (credential) {\n return handlePendingCredential(ui, credential);\n }\n }\n\n const strategy = getBehavior(ui, \"providerSignInStrategy\");\n const result = await strategy(ui, provider);\n\n // If we got here, the user has been signed in via a popup.\n // Otherwise, they will have been redirected.\n return handlePendingCredential(ui, result);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function completeEmailLinkSignIn(ui: FirebaseUI, currentUrl: string): Promise<UserCredential | null> {\n try {\n if (!_isSignInWithEmailLink(ui.auth, currentUrl)) {\n return null;\n }\n\n const email = window.localStorage.getItem(\"emailForSignIn\");\n if (!email) return null;\n\n setPendingState(ui);\n const result = await signInWithEmailLink(ui, email, currentUrl);\n return handlePendingCredential(ui, result);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n window.localStorage.removeItem(\"emailForSignIn\");\n }\n}\n\nexport function generateTotpQrCode(ui: FirebaseUI, secret: TotpSecret, accountName?: string, issuer?: string): string {\n const currentUser = ui.auth.currentUser;\n\n if (!currentUser) {\n throw new Error(\"User must be authenticated to generate a TOTP QR code\");\n }\n\n const uri = secret.generateQrCodeUrl(accountName || currentUser.email || \"\", issuer);\n\n const qr = QRCode(0, \"L\");\n qr.addData(uri);\n qr.make();\n return qr.createDataURL();\n}\n\nexport async function signInWithMultiFactorAssertion(ui: FirebaseUI, assertion: MultiFactorAssertion) {\n try {\n setPendingState(ui);\n const result = await ui.multiFactorResolver?.resolveSignIn(assertion);\n ui.setMultiFactorResolver(undefined);\n return result;\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function enrollWithMultiFactorAssertion(\n ui: FirebaseUI,\n assertion: MultiFactorAssertion,\n displayName?: string\n): Promise<void> {\n try {\n setPendingState(ui);\n await multiFactor(ui.auth.currentUser!).enroll(assertion, displayName);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n\nexport async function generateTotpSecret(ui: FirebaseUI): Promise<TotpSecret> {\n try {\n setPendingState(ui);\n const mfaUser = multiFactor(ui.auth.currentUser!);\n const session = await mfaUser.getSession();\n return await TotpMultiFactorGenerator.generateSecret(session);\n } catch (error) {\n handleFirebaseError(ui, error);\n } finally {\n ui.setState(\"idle\");\n }\n}\n","/**\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { enUs, type RegisteredLocale } from \"@firebase-oss/ui-translations\";\nimport type { FirebaseApp } from \"firebase/app\";\nimport { type Auth, getAuth, getRedirectResult, type MultiFactorResolver } from \"firebase/auth\";\nimport { deepMap, type DeepMapStore, map } from \"nanostores\";\nimport { type Behavior, type Behaviors, defaultBehaviors } from \"./behaviors\";\nimport type { InitBehavior, RedirectBehavior } from \"./behaviors/utils\";\nimport { type FirebaseUIState } from \"./state\";\nimport { handleFirebaseError } from \"./errors\";\n\nexport type FirebaseUIOptions = {\n app: FirebaseApp;\n auth?: Auth;\n locale?: RegisteredLocale;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n behaviors?: Behavior<any>[];\n};\n\nexport type FirebaseUI = {\n app: FirebaseApp;\n auth: Auth;\n setLocale: (locale: RegisteredLocale) => void;\n state: FirebaseUIState;\n setState: (state: FirebaseUIState) => void;\n locale: RegisteredLocale;\n behaviors: Behaviors;\n multiFactorResolver?: MultiFactorResolver;\n setMultiFactorResolver: (multiFactorResolver?: MultiFactorResolver) => void;\n redirectError?: Error;\n setRedirectError: (error?: Error) => void;\n};\n\nexport const $config = map<Record<string, DeepMapStore<FirebaseUI>>>({});\n\nexport type FirebaseUIStore = DeepMapStore<FirebaseUI>;\n\nexport function initializeUI(config: FirebaseUIOptions, name: string = \"[DEFAULT]\"): FirebaseUIStore {\n // Reduce the behaviors to a single object.\n const behaviors = config.behaviors?.reduce<Behavior>((acc, behavior) => {\n return {\n ...acc,\n ...behavior,\n };\n }, defaultBehaviors as Behavior);\n\n $config.setKey(\n name,\n deepMap<FirebaseUI>({\n app: config.app,\n auth: config.auth || getAuth(config.app),\n locale: config.locale ?? enUs,\n setLocale: (locale: RegisteredLocale) => {\n const current = $config.get()[name]!;\n current.setKey(`locale`, locale);\n },\n state: \"idle\",\n setState: (state: FirebaseUIState) => {\n const current = $config.get()[name]!;\n current.setKey(`state`, state);\n },\n // Since we've got config.behaviors?.reduce above, we need to default to defaultBehaviors\n // if no behaviors are provided, as they wont be in the reducer.\n behaviors: behaviors ?? (defaultBehaviors as Behavior),\n multiFactorResolver: undefined,\n setMultiFactorResolver: (resolver?: MultiFactorResolver) => {\n const current = $config.get()[name]!;\n current.setKey(`multiFactorResolver`, resolver);\n },\n redirectError: undefined,\n setRedirectError: (error?: Error) => {\n const current = $config.get()[name]!;\n current.setKey(`redirectError`, error);\n },\n })\n );\n\n const store = $config.get()[name]!;\n const ui = store.get();\n\n // If we're client-side, execute the init and redirect behaviors.\n if (typeof window !== \"undefined\") {\n const initBehaviors: InitBehavior[] = [];\n const redirectBehaviors: RedirectBehavior[] = [];\n\n for (const behavior of Object.values(ui.behaviors)) {\n if (behavior.type === \"redirect\") {\n redirectBehaviors.push(behavior);\n } else if (behavior.type === \"init\") {\n initBehaviors.push(behavior);\n }\n }\n\n if (initBehaviors.length > 0) {\n store.setKey(\"state\", \"loading\");\n ui.auth.authStateReady().then(() => {\n Promise.all(initBehaviors.map((behavior) => behavior.handler(ui))).then(() => {\n store.setKey(\"state\", \"idle\");\n });\n });\n }\n\n getRedirectResult(ui.auth)\n .then((result) => {\n return Promise.all(redirectBehaviors.map((behavior) => behavior.handler(ui, result)));\n })\n .catch((error) => {\n try {\n handleFirebaseError(ui, error);\n } catch (error) {\n ui.setRedirectError(error instanceof Error ? error : new Error(String(error)));\n }\n });\n }\n\n return store;\n}\n","/**\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as z from \"zod\";\nimport { getTranslation } from \"./translations\";\nimport { type FirebaseUI } from \"./config\";\nimport { hasBehavior } from \"./behaviors\";\n\nexport const LoginTypes = [\"email\", \"phone\", \"anonymous\", \"emailLink\", \"google\"] as const;\nexport type LoginType = (typeof LoginTypes)[number];\nexport type AuthMode = \"signIn\" | \"signUp\";\n\nexport function createSignInAuthFormSchema(ui: FirebaseUI) {\n return z.object({\n email: z.email(getTranslation(ui, \"errors\", \"invalidEmail\")),\n password: z.string().min(6, getTranslation(ui, \"errors\", \"weakPassword\")),\n });\n}\n\nexport function createSignUpAuthFormSchema(ui: FirebaseUI) {\n const requireDisplayName = hasBehavior(ui, \"requireDisplayName\");\n const displayNameRequiredMessage = getTranslation(ui, \"errors\", \"displayNameRequired\");\n\n return z.object({\n email: z.email(getTranslation(ui, \"errors\", \"invalidEmail\")),\n password: z.string().min(6, getTranslation(ui, \"errors\", \"weakPassword\")),\n displayName: requireDisplayName\n ? z.string().min(1, displayNameRequiredMessage)\n : z.string().min(1, displayNameRequiredMessage).optional(),\n });\n}\n\nexport function createForgotPasswordAuthFormSchema(ui: FirebaseUI) {\n return z.object({\n email: z.email(getTranslation(ui, \"errors\", \"invalidEmail\")),\n });\n}\n\nexport function createEmailLinkAuthFormSchema(ui: FirebaseUI) {\n return z.object({\n email: z.email(getTranslation(ui, \"errors\", \"invalidEmail\")),\n });\n}\n\nexport function createPhoneAuthNumberFormSchema(ui: FirebaseUI) {\n return z.object({\n phoneNumber: z\n .string()\n .min(1, getTranslation(ui, \"errors\", \"missingPhoneNumber\"))\n .max(10, getTranslation(ui, \"errors\", \"invalidPhoneNumber\")),\n });\n}\n\nexport function createPhoneAuthVerifyFormSchema(ui: FirebaseUI) {\n return z.object({\n verificationId: z.string().min(1, getTranslation(ui, \"errors\", \"missingVerificationId\")),\n verificationCode: z.string().refine((val) => !val || val.length >= 6, {\n error: getTranslation(ui, \"errors\", \"invalidVerificationCode\"),\n }),\n });\n}\n\nexport function createMultiFactorPhoneAuthNumberFormSchema(ui: FirebaseUI) {\n const base = createPhoneAuthNumberFormSchema(ui);\n return base.extend({\n displayName: z.string().min(1, getTranslation(ui, \"errors\", \"displayNameRequired\")),\n });\n}\n\nexport function createMultiFactorPhoneAuthVerifyFormSchema(ui: FirebaseUI) {\n return createPhoneAuthVerifyFormSchema(ui);\n}\n\nexport function createMultiFactorTotpAuthNumberFormSchema(ui: FirebaseUI) {\n return z.object({\n displayName: z.string().min(1, getTranslation(ui, \"errors\", \"displayNameRequired\")),\n });\n}\n\nexport function createMultiFactorTotpAuthVerifyFormSchema(ui: FirebaseUI) {\n return z.object({\n verificationCode: z.string().refine((val) => val.length === 6, {\n error: getTranslation(ui, \"errors\", \"invalidVerificationCode\"),\n }),\n });\n}\n\nexport type SignInAuthFormSchema = z.infer<ReturnType<typeof createSignInAuthFormSchema>>;\nexport type SignUpAuthFormSchema = z.infer<ReturnType<typeof createSignUpAuthFormSchema>>;\nexport type ForgotPasswordAuthFormSchema = z.infer<ReturnType<typeof createForgotPasswordAuthFormSchema>>;\nexport type EmailLinkAuthFormSchema = z.infer<ReturnType<typeof createEmailLinkAuthFormSchema>>;\nexport type PhoneAuthNumberFormSchema = z.infer<ReturnType<typeof createPhoneAuthNumberFormSchema>>;\nexport type PhoneAuthVerifyFormSchema = z.infer<ReturnType<typeof createPhoneAuthVerifyFormSchema>>;\nexport type MultiFactorPhoneAuthNumberFormSchema = z.infer<\n ReturnType<typeof createMultiFactorPhoneAuthNumberFormSchema>\n>;\nexport type MultiFactorTotpAuthNumberFormSchema = z.infer<ReturnType<typeof createMultiFactorTotpAuthNumberFormSchema>>;\nexport type MultiFactorTotpAuthVerifyFormSchema = z.infer<ReturnType<typeof createMultiFactorTotpAuthVerifyFormSchema>>;\n","/// <reference types=\"vite/client\" />\n/**\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { registerFramework } from \"./register-framework\";\nimport pkgJson from \"../package.json\";\n\nexport * from \"./auth\";\nexport * from \"./behaviors\";\nexport * from \"./config\";\nexport * from \"./errors\";\nexport * from \"./schemas\";\nexport * from \"./country-data\";\nexport * from \"./translations\";\nexport * from \"./register-framework\";\n\nif (import.meta.env.PROD) {\n registerFramework(\"core\", pkgJson.version);\n}\n"]}