{"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","createMultiFactorPhoneAuthAssertionFormSchema","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\": \"@invertase/firebaseui-core\",\n  \"version\": \"0.0.8\",\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    \"version:bump\": \"pnpm version patch\",\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    \"@invertase/firebaseui-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 \"@invertase/firebaseui-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 \"@invertase/firebaseui-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    // signInWithEmailLink handles behavior checks, credential creation, and error handling\n    const result = await signInWithEmailLink(ui, email, currentUrl);\n    return handlePendingCredential(ui, result);\n  } finally {\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 \"@invertase/firebaseui-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 createMultiFactorPhoneAuthAssertionFormSchema(ui: FirebaseUI) {\n  return createPhoneAuthNumberFormSchema(ui);\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"]}