{"version":3,"file":"firebase-oss-ui-angular.mjs","sources":["../../src/lib/components/button.ts","../../src/lib/components/form.ts","../../src/lib/provider.ts","../../src/lib/components/policies.ts","../../src/lib/auth/forms/email-link-auth-form.ts","../../src/lib/auth/forms/forgot-password-auth-form.ts","../../src/lib/auth/forms/mfa/sms-multi-factor-assertion-form.ts","../../src/lib/auth/forms/mfa/totp-multi-factor-assertion-form.ts","../../src/lib/auth/forms/multi-factor-auth-assertion-form.ts","../../src/lib/components/country-selector.ts","../../src/lib/auth/forms/mfa/sms-multi-factor-enrollment-form.ts","../../src/lib/auth/forms/mfa/totp-multi-factor-enrollment-form.ts","../../src/lib/auth/forms/multi-factor-auth-enrollment-form.ts","../../src/lib/auth/forms/phone-auth-form.ts","../../src/lib/auth/forms/sign-in-auth-form.ts","../../src/lib/auth/forms/sign-up-auth-form.ts","../../src/lib/auth/oauth/oauth-button.ts","../../src/lib/components/logos/apple.ts","../../src/lib/auth/oauth/apple-sign-in-button.ts","../../src/lib/components/logos/facebook.ts","../../src/lib/auth/oauth/facebook-sign-in-button.ts","../../src/lib/components/logos/github.ts","../../src/lib/auth/oauth/github-sign-in-button.ts","../../src/lib/components/logos/google.ts","../../src/lib/auth/oauth/google-sign-in-button.ts","../../src/lib/components/logos/microsoft.ts","../../src/lib/auth/oauth/microsoft-sign-in-button.ts","../../src/lib/components/logos/twitter.ts","../../src/lib/auth/oauth/twitter-sign-in-button.ts","../../src/lib/components/logos/yahoo.ts","../../src/lib/auth/oauth/yahoo-sign-in-button.ts","../../src/lib/components/card.ts","../../src/lib/auth/screens/multi-factor-auth-assertion-screen.ts","../../src/lib/components/redirect-error.ts","../../src/lib/auth/screens/email-link-auth-screen.ts","../../src/lib/auth/screens/forgot-password-auth-screen.ts","../../src/lib/auth/screens/multi-factor-auth-enrollment-screen.ts","../../src/lib/components/legacy-sign-in-recovery.ts","../../src/lib/auth/screens/oauth-screen.ts","../../src/lib/auth/screens/phone-auth-screen.ts","../../src/lib/auth/screens/sign-in-auth-screen.ts","../../src/lib/auth/screens/sign-up-auth-screen.ts","../../src/lib/components/divider.ts","../../src/lib/components/content.ts","../../src/version.ts","../../src/public-api.ts","../../src/firebase-oss-ui-angular.ts"],"sourcesContent":["/**\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 { Component, HostBinding, input } from \"@angular/core\";\nimport { buttonVariant, type ButtonVariant } from \"@firebase-oss/ui-styles\";\n\n@Component({\n  selector: \"button[fui-button]\",\n  template: `<ng-content></ng-content>`,\n  standalone: true,\n})\n/**\n * A customizable button component with multiple variants.\n */\nexport class ButtonComponent {\n  /** The visual variant of the button. */\n  variant = input<ButtonVariant>();\n\n  @HostBinding(\"class\")\n  get getButtonClasses(): string {\n    return buttonVariant({ variant: this.variant() });\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 { ChangeDetectorRef, Component, computed, inject, input, OnChanges, SimpleChanges } from \"@angular/core\";\nimport { AnyFormState, injectField } from \"@tanstack/angular-form\";\nimport { ButtonComponent } from \"./button\";\n\n@Component({\n  selector: \"fui-form-metadata\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    @if (isTouched() && errors().length > 0) {\n      <div>\n        <div role=\"alert\" aria-live=\"polite\" class=\"fui-error\">\n          {{ errorMessage() }}\n        </div>\n      </div>\n    }\n  `,\n})\n/**\n * A component that displays form field metadata, such as validation errors.\n */\nexport class FormMetadataComponent {\n  isTouched = input.required<boolean>();\n  errors = input.required<Array<{ message: string }>>();\n\n  errorMessage(): string {\n    return this.errors()\n      .map((error) => error.message)\n      .join(\", \");\n  }\n}\n\n@Component({\n  selector: \"fui-form-input\",\n  standalone: true,\n  imports: [FormMetadataComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <label [for]=\"field.api.name\">\n      <div data-input-label>\n        <div>{{ label() }}</div>\n        <div><ng-content select=\"input-action\" /></div>\n      </div>\n      @if (description()) {\n        <div data-input-description>{{ description() }}</div>\n      }\n      <div data-input-group>\n        <ng-content select=\"input-before\" />\n        <input\n          [attr.aria-invalid]=\"field.api.state.meta.isTouched && field.api.state.meta.errors.length > 0\"\n          [id]=\"field.api.name\"\n          [name]=\"field.api.name\"\n          [value]=\"field.api.state.value\"\n          (input)=\"handleInput($event)\"\n          [type]=\"type()\"\n        />\n      </div>\n      <ng-content></ng-content>\n      <fui-form-metadata\n        [isTouched]=\"field.api.state.meta.isTouched\"\n        [errors]=\"field.api.state.meta.errors\"\n      ></fui-form-metadata>\n    </label>\n  `,\n})\n/**\n * A form input component with label, description, and validation support.\n */\nexport class FormInputComponent implements OnChanges {\n  field = injectField<string>();\n  private cdr = inject(ChangeDetectorRef);\n  /** The label text for the input field. */\n  label = input.required<string>();\n  /** The input type (e.g., \"text\", \"email\", \"password\"). */\n  type = input<string>(\"text\");\n  /** Optional description text displayed below the label. */\n  description = input<string>();\n\n  handleInput(event: Event) {\n    const value = (event.target as HTMLInputElement | null)?.value ?? \"\";\n    this.field.api.handleChange(value);\n\n    // Clear form-level submission errors when user starts typing\n    const form = (this.field.api as any)?.form;\n    const errorMap = form?.state?.errorMap;\n    if (errorMap?.onSubmit) {\n      form?.setErrorMap?.({});\n    }\n  }\n\n  ngOnChanges(_changes: SimpleChanges): void {\n    // Trigger change detection when any input changes\n    this.cdr.markForCheck();\n  }\n}\n\n@Component({\n  selector: \"button[fui-form-action]\",\n  standalone: true,\n  host: {\n    class: \"fui-form__action\",\n    type: \"button\",\n  },\n  template: `<ng-content></ng-content> `,\n})\n/**\n * A button component for form actions (e.g., \"Forgot Password?\" link).\n */\nexport class FormActionComponent {}\n\n@Component({\n  selector: \"fui-form-submit\",\n  standalone: true,\n  imports: [ButtonComponent],\n  host: {\n    type: \"submit\",\n    style: \"display: block;\",\n  },\n  template: `\n    <button fui-button class=\"fui-form__action\" [class]=\"class()\" [disabled]=\"isDisabled()\">\n      <ng-content></ng-content>\n    </button>\n  `,\n})\n/**\n * A submit button component for forms.\n *\n * Automatically disables when the form is submitting.\n */\nexport class FormSubmitComponent {\n  /** Optional additional CSS classes. */\n  class = input<string>();\n  /** The form state for tracking submission status. */\n  state = input.required<AnyFormState>();\n  /** Optional additional disabled condition. */\n  disabled = input<boolean>(false);\n\n  isSubmitting = computed(() => this.state().isSubmitting);\n  isDisabled = computed(() => this.isSubmitting() || this.disabled());\n}\n\n@Component({\n  selector: \"fui-form-error-message\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    @if (errorMessage()) {\n      <div class=\"fui-error\">\n        {{ errorMessage() }}\n      </div>\n    }\n  `,\n})\n/**\n * A component that displays form-level error messages.\n *\n * Shows errors from form submission, not validation errors.\n */\nexport class FormErrorMessageComponent {\n  /** The form state containing error information. */\n  state = input.required<AnyFormState>();\n\n  errorMessage = computed(() => {\n    const error = this.state().errorMap?.onSubmit;\n\n    // We only care about errors thrown from the form submission, rather than validation errors\n    if (error && typeof error === \"string\") {\n      return error;\n    }\n\n    return undefined;\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  Provider,\n  EnvironmentProviders,\n  makeEnvironmentProviders,\n  InjectionToken,\n  inject,\n  signal,\n  computed,\n  effect,\n  afterNextRender,\n  Signal,\n  ElementRef,\n  Injector,\n  Optional,\n  PLATFORM_ID,\n  NgZone,\n  untracked,\n} from \"@angular/core\";\nimport { isPlatformBrowser } from \"@angular/common\";\nimport { FirebaseApps } from \"@angular/fire/app\";\nimport { Auth, authState, RecaptchaVerifier, User } from \"@angular/fire/auth\";\nimport {\n  createEmailLinkAuthFormSchema,\n  createForgotPasswordAuthFormSchema,\n  createPhoneAuthNumberFormSchema,\n  createPhoneAuthVerifyFormSchema,\n  createSignInAuthFormSchema,\n  createSignUpAuthFormSchema,\n  createMultiFactorPhoneAuthNumberFormSchema,\n  createMultiFactorPhoneAuthAssertionFormSchema,\n  createMultiFactorPhoneAuthVerifyFormSchema,\n  createMultiFactorTotpAuthNumberFormSchema,\n  createMultiFactorTotpAuthVerifyFormSchema,\n  FirebaseUIStore,\n  type FirebaseUI as FirebaseUIType,\n  type LegacySignInRecovery,\n  getTranslation,\n  getBehavior,\n  type CountryData,\n  type TranslationCategory,\n  type TranslationKey,\n} from \"@firebase-oss/ui-core\";\n\nconst FIREBASE_UI_STORE = new InjectionToken<FirebaseUIStore>(\"firebaseui.store\");\nconst FIREBASE_UI_POLICIES = new InjectionToken<PolicyConfig>(\"firebaseui.policies\");\n\n/** Configuration for terms of service and privacy policy links. */\ntype PolicyConfig = {\n  /** The URL to the terms of service page. */\n  termsOfServiceUrl: string;\n  /** The URL to the privacy policy page. */\n  privacyPolicyUrl: string;\n};\n\n/**\n * Provides FirebaseUI configuration for the Angular application.\n *\n * This function must be called in your application's providers array to enable FirebaseUI functionality.\n *\n * @param uiFactory - Factory function that creates a FirebaseUIStore from Firebase apps.\n * @returns Environment providers for FirebaseUI.\n */\nexport function provideFirebaseUI(uiFactory: (apps: FirebaseApps) => FirebaseUIStore): EnvironmentProviders {\n  const providers: Provider[] = [\n    // TODO: This should depend on the FirebaseAuth provider via deps,\n    // see https://github.com/angular/angularfire/blob/35e0a9859299010488852b1826e4083abe56528f/src/firestore/firestore.module.ts#L76\n    {\n      provide: FIREBASE_UI_STORE,\n      deps: [FirebaseApps, [new Optional(), Auth]],\n      useFactory: (apps: FirebaseApps) => {\n        if (!apps || apps.length === 0) {\n          throw new Error(\"No Firebase apps found\");\n        }\n        return uiFactory(apps);\n      },\n    },\n  ];\n\n  return makeEnvironmentProviders(providers);\n}\n\n/**\n * Provides policy configuration (terms of service and privacy policy URLs) for FirebaseUI components.\n *\n * @param factory - Factory function that returns the policy configuration.\n * @returns Environment providers for FirebaseUI policies.\n */\nexport function provideFirebaseUIPolicies(factory: () => PolicyConfig) {\n  const providers: Provider[] = [{ provide: FIREBASE_UI_POLICIES, useFactory: factory }];\n\n  return makeEnvironmentProviders(providers);\n}\n\n/**\n * Injects the FirebaseUI store as a reactive signal.\n *\n * Returns a readonly signal that updates when the UI state changes.\n *\n * @returns A readonly signal containing the current FirebaseUI state.\n */\nexport function injectUI() {\n  const store = inject(FIREBASE_UI_STORE);\n  const ui = signal<FirebaseUIType>(store.get());\n\n  effect(() => {\n    return store.subscribe(ui.set);\n  });\n\n  return ui.asReadonly();\n}\n\n/**\n * Injects a callback that is called when a user is authenticated.\n *\n * The callback is only triggered for non-anonymous users.\n *\n * @param onAuthenticated - Callback function called when a user is authenticated.\n */\nexport function injectUserAuthenticated(onAuthenticated: (user: User) => void) {\n  const auth = inject(Auth);\n  const state = authState(auth);\n\n  effect((onCleanup) => {\n    const subscription = state.subscribe((user) => {\n      if (user && !user.isAnonymous) {\n        onAuthenticated(user);\n      }\n    });\n\n    onCleanup(() => {\n      subscription.unsubscribe();\n    });\n  });\n}\n\n/**\n * Injects a reCAPTCHA verifier for phone authentication.\n *\n * Automatically renders the reCAPTCHA widget in the provided element when available.\n *\n * @param element - Function that returns the element reference where reCAPTCHA should be rendered.\n * @returns A computed signal containing the reCAPTCHA verifier instance, or null if not available.\n */\n/**\n * Type for the return value of injectRecaptchaVerifier that doesn't expose SIGNAL types\n */\ntype RecaptchaVerifierSignal = {\n  (): RecaptchaVerifier | null;\n  renderCompleted: () => boolean;\n  renderPromise: () => Promise<unknown> | null;\n};\n\nexport function injectRecaptchaVerifier(element: () => ElementRef<HTMLDivElement>): RecaptchaVerifierSignal {\n  const ui = injectUI();\n  const platformId = inject(PLATFORM_ID);\n  const ngZone = inject(NgZone);\n  const injector = inject(Injector);\n  const renderPromise = signal<Promise<unknown> | null>(null);\n  const renderCompleted = signal<boolean>(false);\n  // Track which element we've rendered to prevent duplicate renders\n  let renderedElement: HTMLElement | null = null;\n  // Cache the rendered verifier instance to ensure we always return the same one\n  let renderedVerifierInstance: RecaptchaVerifier | null = null;\n  // Track in-flight render target to prevent duplicate render() calls\n  let renderingElement: HTMLElement | null = null;\n\n  const verifier = computed(() => {\n    if (!isPlatformBrowser(platformId)) {\n      return null;\n    }\n    const elementRef = element();\n    if (!elementRef) {\n      return null;\n    }\n    // If we have a cached rendered verifier for this element, return it\n    if (renderedVerifierInstance && renderedElement === elementRef.nativeElement) {\n      return renderedVerifierInstance;\n    }\n    // Avoid subscribing this computed to transient ui state updates (e.g. pending/idle)\n    // which would otherwise retrigger cleanup while a phone verification is in-flight.\n    const uiValue = untracked(ui);\n    return getBehavior(uiValue, \"recaptchaVerification\")(uiValue, elementRef.nativeElement);\n  });\n\n  effect((onCleanup) => {\n    // Early return for SSR - don't run any reCAPTCHA logic on the server\n    if (!isPlatformBrowser(platformId)) {\n      return;\n    }\n\n    const verifierInstance = verifier();\n    const elementRef = element();\n    const domElement = elementRef?.nativeElement;\n    if (verifierInstance && domElement) {\n      if (renderingElement === domElement) {\n        return;\n      }\n\n      // If we've already started or completed rendering for this element, do nothing.\n      // don't mark renderCompleted true here. That has to happen when render() resolves.\n      // Shouldn't replace renderPromise as it should always reflect the real render() promise.\n      if (renderedElement === domElement && renderedVerifierInstance) {\n        return;\n      }\n\n      // Not rendered yet, proceed with render after the next Angular render pass.\n      renderCompleted.set(false);\n      const afterRenderRef = afterNextRender(\n        () => {\n          ngZone.runOutsideAngular(() => {\n            try {\n              // Check if element has already been rendered to, or is currently rendering.\n              if (renderedElement === domElement || renderingElement === domElement) {\n                return;\n              }\n\n              renderedElement = domElement; // Mark as rendered before calling render()\n              renderedVerifierInstance = verifierInstance; // Cache the instance before rendering\n              renderingElement = domElement;\n              const promise = verifierInstance.render();\n              renderPromise.set(promise);\n              promise\n                .then(() => {\n                  // Update signal inside zone so change detection works\n                  ngZone.run(() => {\n                    renderCompleted.set(true);\n                  });\n                })\n                .catch(() => {\n                  // If render failed, reset renderedElement and cached instance so we can try again\n                  if (renderedElement === domElement) {\n                    renderedElement = null;\n                    renderedVerifierInstance = null;\n                  }\n                  ngZone.run(() => {\n                    renderCompleted.set(false);\n                  });\n                  renderPromise.set(null);\n                })\n                .finally(() => {\n                  if (renderingElement === domElement) {\n                    renderingElement = null;\n                  }\n                });\n            } catch {\n              // If render failed, reset renderedElement and cached instance so we can try again\n              if (renderedElement === domElement) {\n                renderedElement = null;\n                renderedVerifierInstance = null;\n              }\n              if (renderingElement === domElement) {\n                renderingElement = null;\n              }\n              ngZone.run(() => {\n                renderCompleted.set(false);\n              });\n              renderPromise.set(null);\n            }\n          });\n        },\n        { injector, manualCleanup: true }\n      );\n\n      onCleanup(() => {\n        afterRenderRef.destroy();\n      });\n    } else {\n      // Element or verifier is null, reset tracking and cache\n      if (!domElement) {\n        renderedElement = null;\n        renderedVerifierInstance = null;\n        renderingElement = null;\n      }\n      renderPromise.set(null);\n      renderCompleted.set(false);\n    }\n  });\n\n  // Return an object that acts like the computed signal but also exposes renderCompleted and renderPromise\n  return Object.assign(\n    computed(() => verifier()),\n    {\n      renderCompleted: () => renderCompleted(),\n      renderPromise: () => renderPromise(),\n    }\n  ) as RecaptchaVerifierSignal;\n}\n\n/**\n * Injects a translation string as a reactive signal.\n *\n * The signal updates when the UI locale changes.\n *\n * @param category - The translation category (e.g., \"labels\", \"errors\", \"prompts\").\n * @param key - The translation key within the category.\n * @returns A computed signal containing the translated string.\n */\nexport function injectTranslation<T extends TranslationCategory>(category: T, key: TranslationKey<T>) {\n  const ui = injectUI();\n  return computed(() => getTranslation(ui(), category, key));\n}\n\n/**\n * Injects the sign-in authentication form schema as a reactive signal.\n *\n * @returns A computed signal containing the sign-in form schema.\n */\nexport function injectSignInAuthFormSchema(): Signal<ReturnType<typeof createSignInAuthFormSchema>> {\n  const ui = injectUI();\n  return computed(() => createSignInAuthFormSchema(ui()));\n}\n\n/**\n * Injects the sign-up authentication form schema as a reactive signal.\n *\n * @returns A computed signal containing the sign-up form schema.\n */\nexport function injectSignUpAuthFormSchema(): Signal<ReturnType<typeof createSignUpAuthFormSchema>> {\n  const ui = injectUI();\n  return computed(() => createSignUpAuthFormSchema(ui()));\n}\n\n/**\n * Injects the forgot password authentication form schema as a reactive signal.\n *\n * @returns A computed signal containing the forgot password form schema.\n */\nexport function injectForgotPasswordAuthFormSchema(): Signal<ReturnType<typeof createForgotPasswordAuthFormSchema>> {\n  const ui = injectUI();\n  return computed(() => createForgotPasswordAuthFormSchema(ui()));\n}\n\n/**\n * Injects the email link authentication form schema as a reactive signal.\n *\n * @returns A computed signal containing the email link auth form schema.\n */\nexport function injectEmailLinkAuthFormSchema(): Signal<ReturnType<typeof createEmailLinkAuthFormSchema>> {\n  const ui = injectUI();\n  return computed(() => createEmailLinkAuthFormSchema(ui()));\n}\n\n/**\n * Injects the phone authentication number form schema as a reactive signal.\n *\n * @returns A computed signal containing the phone auth number form schema.\n */\nexport function injectPhoneAuthFormSchema(): Signal<ReturnType<typeof createPhoneAuthNumberFormSchema>> {\n  const ui = injectUI();\n  return computed(() => createPhoneAuthNumberFormSchema(ui()));\n}\n\n/**\n * Injects the phone authentication verification form schema as a reactive signal.\n *\n * @returns A computed signal containing the phone auth verification form schema.\n */\nexport function injectPhoneAuthVerifyFormSchema(): Signal<ReturnType<typeof createPhoneAuthVerifyFormSchema>> {\n  const ui = injectUI();\n  return computed(() => createPhoneAuthVerifyFormSchema(ui()));\n}\n\n/**\n * Injects the multi-factor phone authentication number form schema as a reactive signal.\n *\n * @returns A computed signal containing the MFA phone auth number form schema.\n */\nexport function injectMultiFactorPhoneAuthNumberFormSchema(): Signal<\n  ReturnType<typeof createMultiFactorPhoneAuthNumberFormSchema>\n> {\n  const ui = injectUI();\n  return computed(() => createMultiFactorPhoneAuthNumberFormSchema(ui()));\n}\n\n/**\n * Injects the multi-factor phone authentication assertion form schema as a reactive signal.\n *\n * @returns A computed signal containing the MFA phone auth assertion form schema.\n */\nexport function injectMultiFactorPhoneAuthAssertionFormSchema(): Signal<\n  ReturnType<typeof createMultiFactorPhoneAuthAssertionFormSchema>\n> {\n  const ui = injectUI();\n  return computed(() => createMultiFactorPhoneAuthAssertionFormSchema(ui()));\n}\n\n/**\n * Injects the multi-factor phone authentication verification form schema as a reactive signal.\n *\n * @returns A computed signal containing the MFA phone auth verification form schema.\n */\nexport function injectMultiFactorPhoneAuthVerifyFormSchema(): Signal<\n  ReturnType<typeof createMultiFactorPhoneAuthVerifyFormSchema>\n> {\n  const ui = injectUI();\n  return computed(() => createMultiFactorPhoneAuthVerifyFormSchema(ui()));\n}\n\n/**\n * Injects the multi-factor TOTP authentication number form schema as a reactive signal.\n *\n * @returns A computed signal containing the MFA TOTP auth number form schema.\n */\nexport function injectMultiFactorTotpAuthNumberFormSchema(): Signal<\n  ReturnType<typeof createMultiFactorTotpAuthNumberFormSchema>\n> {\n  const ui = injectUI();\n  return computed(() => createMultiFactorTotpAuthNumberFormSchema(ui()));\n}\n\n/**\n * Injects the multi-factor TOTP authentication verification form schema as a reactive signal.\n *\n * @returns A computed signal containing the MFA TOTP auth verification form schema.\n */\nexport function injectMultiFactorTotpAuthVerifyFormSchema(): Signal<\n  ReturnType<typeof createMultiFactorTotpAuthVerifyFormSchema>\n> {\n  const ui = injectUI();\n  return computed(() => createMultiFactorTotpAuthVerifyFormSchema(ui()));\n}\n\n/**\n * Injects the policy configuration (terms of service and privacy policy URLs).\n *\n * @returns The policy configuration, or null if not provided.\n */\nexport function injectPolicies(): PolicyConfig | null {\n  return inject<PolicyConfig | null>(FIREBASE_UI_POLICIES, { optional: true });\n}\n\n/**\n * Injects the list of allowed countries for phone authentication as a reactive signal.\n *\n * @returns A computed signal containing the array of allowed country data.\n */\nexport function injectCountries(): Signal<CountryData[]> {\n  const ui = injectUI();\n  return computed(() => getBehavior(ui(), \"countryCodes\")().allowedCountries);\n}\n\n/**\n * Injects the default country for phone authentication as a reactive signal.\n *\n * @returns A computed signal containing the default country data.\n */\nexport function injectDefaultCountry(): Signal<CountryData> {\n  const ui = injectUI();\n  return computed(() => getBehavior(ui(), \"countryCodes\")().defaultCountry);\n}\n\n/**\n * Injects the redirect error message as a reactive signal.\n *\n * Returns the error message if a redirect error occurred, undefined otherwise.\n *\n * @returns A computed signal containing the redirect error message, or undefined if no error.\n */\nexport function injectRedirectError(): Signal<string | undefined> {\n  const ui = injectUI();\n  return computed(() => {\n    const redirectError = ui().redirectError;\n    if (!redirectError) {\n      return undefined;\n    }\n    return redirectError instanceof Error ? redirectError.message : String(redirectError);\n  });\n}\n\n/**\n * Injects legacy sign-in recovery data populated by the legacyFetchSignInWithEmail behavior.\n *\n * @returns A computed signal containing the recovery data, or undefined when no recovery is active.\n */\nexport function injectLegacySignInRecovery(): Signal<LegacySignInRecovery | undefined> {\n  const ui = injectUI();\n  return computed(() => ui().legacySignInRecovery);\n}\n\n/**\n * Injects a callback for clearing legacy sign-in recovery data.\n *\n * @returns A function that clears the current recovery state.\n */\nexport function injectClearLegacySignInRecovery(): () => void {\n  const ui = injectUI();\n  return () => ui().clearLegacySignInRecovery();\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 { Component, computed, HostBinding, Signal } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { injectPolicies, injectTranslation } from \"../provider\";\n\ntype PolicyPart =\n  | { type: \"tos\"; url: string; text: string }\n  | { type: \"privacy\"; url: string; text: string }\n  | { type: \"text\"; content: string };\n\n@Component({\n  selector: \"fui-policies\",\n  host: {\n    class: \"fui-policies\",\n  },\n  standalone: true,\n  imports: [CommonModule],\n  template: `\n    @if (shouldShow()) {\n      @for (part of policyParts(); track $index) {\n        @if (part.type === \"tos\") {\n          <a [attr.href]=\"part.url\" target=\"_blank\" rel=\"noopener noreferrer\">\n            {{ part.text }}\n          </a>\n        } @else if (part.type === \"privacy\") {\n          <a [attr.href]=\"part.url\" target=\"_blank\" rel=\"noopener noreferrer\">\n            {{ part.text }}\n          </a>\n        } @else {\n          <span>{{ part.content }}</span>\n        }\n      }\n    }\n  `,\n})\n/**\n * A component that displays terms of service and privacy policy links.\n *\n * Parses the terms and privacy policy template and renders clickable links.\n */\nexport class PoliciesComponent {\n  private readonly policies = injectPolicies();\n\n  private readonly termsText = injectTranslation(\"labels\", \"termsOfService\");\n  private readonly privacyText = injectTranslation(\"labels\", \"privacyPolicy\");\n  private readonly templateText = injectTranslation(\"messages\", \"termsAndPrivacy\");\n\n  private readonly tosUrl = this.policies?.termsOfServiceUrl;\n  private readonly privacyPolicyUrl = this.policies?.privacyPolicyUrl;\n\n  readonly shouldShow = computed(() => this.policies !== null);\n\n  @HostBinding(\"style.display\")\n  get displayStyle(): string {\n    return this.shouldShow() ? \"block\" : \"none\";\n  }\n\n  readonly policyParts: Signal<PolicyPart[]> = computed(() => {\n    if (!this.shouldShow()) {\n      return [];\n    }\n\n    const template = this.templateText();\n    const parts = template.split(/({tos}|{privacy})/);\n\n    return parts\n      .filter((part) => part.length > 0)\n      .map((part) => {\n        if (part === \"{tos}\" && this.tosUrl) {\n          return {\n            type: \"tos\" as const,\n            url: this.tosUrl,\n            text: this.termsText(),\n          };\n        }\n        if (part === \"{privacy}\" && this.privacyPolicyUrl) {\n          return {\n            type: \"privacy\" as const,\n            url: this.privacyPolicyUrl,\n            text: this.privacyText(),\n          };\n        }\n        return {\n          type: \"text\" as const,\n          content: part,\n        };\n      });\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 { Component, effect, Output, EventEmitter, signal } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { injectForm, injectStore, TanStackAppField, TanStackField } from \"@tanstack/angular-form\";\nimport { UserCredential } from \"@angular/fire/auth\";\nimport { FirebaseUIError, completeEmailLinkSignIn, sendSignInLinkToEmail } from \"@firebase-oss/ui-core\";\n\nimport { FormInputComponent, FormSubmitComponent, FormErrorMessageComponent } from \"../../components/form\";\nimport { PoliciesComponent } from \"../../components/policies\";\nimport { injectEmailLinkAuthFormSchema, injectTranslation, injectUI } from \"../../provider\";\n\n@Component({\n  selector: \"fui-email-link-auth-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    TanStackField,\n    TanStackAppField,\n    PoliciesComponent,\n    FormInputComponent,\n    FormSubmitComponent,\n    FormErrorMessageComponent,\n  ],\n  template: `\n    @if (emailSentState()) {\n      <div class=\"fui-success\">\n        {{ emailSentMessage() }}\n      </div>\n    }\n\n    @if (!emailSentState()) {\n      <form (submit)=\"handleSubmit($event)\" class=\"fui-form\">\n        <fieldset>\n          <fui-form-input name=\"email\" tanstack-app-field [tanstackField]=\"form\" label=\"{{ emailLabel() }}\" />\n        </fieldset>\n\n        <fui-policies />\n\n        <fieldset>\n          <fui-form-submit [state]=\"state()\">\n            {{ sendSignInLinkLabel() }}\n          </fui-form-submit>\n          <fui-form-error-message [state]=\"state()\" />\n        </fieldset>\n      </form>\n    }\n  `,\n})\n/**\n * A form component for email link authentication.\n *\n * Sends a sign-in link to the user's email address and automatically completes sign-in\n * if the user arrives via an email link.\n */\nexport class EmailLinkAuthFormComponent {\n  private ui = injectUI();\n  private formSchema = injectEmailLinkAuthFormSchema();\n\n  emailSentState = signal<boolean>(false);\n\n  emailLabel = injectTranslation(\"labels\", \"emailAddress\");\n  sendSignInLinkLabel = injectTranslation(\"labels\", \"sendSignInLink\");\n  emailSentMessage = injectTranslation(\"messages\", \"signInLinkSent\");\n  unknownErrorLabel = injectTranslation(\"errors\", \"unknownError\");\n\n  /** Event emitter fired when sign-in link email is sent. */\n  @Output() emailSent = new EventEmitter<void>();\n  /** Event emitter for successful sign-in. */\n  @Output() signIn = new EventEmitter<UserCredential>();\n\n  form = injectForm({\n    defaultValues: {\n      email: \"\",\n    },\n  });\n\n  state = injectStore(this.form, (state) => state);\n\n  async handleSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.form.handleSubmit();\n  }\n\n  constructor() {\n    this.completeSignIn();\n\n    effect(() => {\n      this.form.update({\n        validators: {\n          onChange: this.formSchema(),\n          onSubmitAsync: async ({ value }) => {\n            try {\n              await sendSignInLinkToEmail(this.ui(), value.email);\n              this.emailSentState.set(true);\n              this.emailSent.emit();\n              return;\n            } catch (error) {\n              if (error instanceof FirebaseUIError) {\n                return error.message;\n              }\n\n              console.error(error);\n              return this.unknownErrorLabel();\n            }\n          },\n        },\n      });\n    });\n  }\n\n  private async completeSignIn() {\n    const credential = await completeEmailLinkSignIn(this.ui(), window.location.href);\n\n    if (credential) {\n      this.signIn.emit(credential);\n    }\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 { Component, effect, Output, EventEmitter, input, signal } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { injectForm, injectStore, TanStackAppField, TanStackField } from \"@tanstack/angular-form\";\nimport { FirebaseUIError, sendPasswordResetEmail } from \"@firebase-oss/ui-core\";\n\nimport {\n  FormInputComponent,\n  FormSubmitComponent,\n  FormErrorMessageComponent,\n  FormActionComponent,\n} from \"../../components/form\";\nimport { PoliciesComponent } from \"../../components/policies\";\nimport { injectForgotPasswordAuthFormSchema, injectTranslation, injectUI } from \"../../provider\";\n\n@Component({\n  selector: \"fui-forgot-password-auth-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    TanStackField,\n    TanStackAppField,\n    PoliciesComponent,\n    FormInputComponent,\n    FormSubmitComponent,\n    FormErrorMessageComponent,\n    FormActionComponent,\n  ],\n  template: `\n    @if (emailSent()) {\n      <div class=\"fui-success\">\n        {{ checkEmailForResetMessage() }}\n      </div>\n    }\n\n    @if (!emailSent()) {\n      <form (submit)=\"handleSubmit($event)\" class=\"fui-form\">\n        <fieldset>\n          <fui-form-input name=\"email\" tanstack-app-field [tanstackField]=\"form\" label=\"{{ emailLabel() }}\" />\n        </fieldset>\n\n        <fui-policies />\n\n        <fieldset>\n          <fui-form-submit [state]=\"state()\">\n            {{ resetPasswordLabel() }}\n          </fui-form-submit>\n          <fui-form-error-message [state]=\"state()\" />\n        </fieldset>\n\n        @if (backToSignIn()?.observed) {\n          <button fui-form-action (click)=\"backToSignIn()?.emit()\">{{ backToSignInLabel() }} &rarr;</button>\n        }\n      </form>\n    }\n  `,\n})\n/**\n * A form component for requesting a password reset email.\n *\n * Displays a success message after the email is sent.\n */\nexport class ForgotPasswordAuthFormComponent {\n  private ui = injectUI();\n  private formSchema = injectForgotPasswordAuthFormSchema();\n\n  emailSent = signal<boolean>(false);\n\n  emailLabel = injectTranslation(\"labels\", \"emailAddress\");\n  resetPasswordLabel = injectTranslation(\"labels\", \"resetPassword\");\n  backToSignInLabel = injectTranslation(\"labels\", \"backToSignIn\");\n  checkEmailForResetMessage = injectTranslation(\"messages\", \"checkEmailForReset\");\n  unknownErrorLabel = injectTranslation(\"errors\", \"unknownError\");\n\n  /** Event emitter for back to sign in action. */\n  backToSignIn = input<EventEmitter<void>>();\n\n  /** Event emitter fired when password reset email is sent. */\n  @Output() passwordSent = new EventEmitter<void>();\n\n  form = injectForm({\n    defaultValues: {\n      email: \"\",\n    },\n  });\n\n  state = injectStore(this.form, (state) => state);\n\n  async handleSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.form.handleSubmit();\n  }\n\n  constructor() {\n    effect(() => {\n      this.form.update({\n        validators: {\n          onChange: this.formSchema(),\n          onSubmitAsync: async ({ value }) => {\n            try {\n              await sendPasswordResetEmail(this.ui(), value.email);\n              this.emailSent.set(true);\n              this.passwordSent.emit();\n              return;\n            } catch (error) {\n              if (error instanceof FirebaseUIError) {\n                return error.message;\n              }\n\n              console.error(error);\n              return this.unknownErrorLabel();\n            }\n          },\n        },\n      });\n    });\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 *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to 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 { Component, ElementRef, effect, input, signal, Output, EventEmitter, computed, viewChild } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { injectForm, injectStore, TanStackAppField, TanStackField } from \"@tanstack/angular-form\";\nimport {\n  injectMultiFactorPhoneAuthVerifyFormSchema,\n  injectRecaptchaVerifier,\n  injectTranslation,\n  injectUI,\n} from \"../../../provider\";\nimport { FormInputComponent, FormSubmitComponent, FormErrorMessageComponent } from \"../../../components/form\";\nimport {\n  FirebaseUIError,\n  verifyPhoneNumber,\n  signInWithMultiFactorAssertion,\n  getTranslation,\n} from \"@firebase-oss/ui-core\";\nimport { PhoneAuthProvider, PhoneMultiFactorGenerator, type MultiFactorInfo, type UserCredential } from \"firebase/auth\";\n\ntype PhoneMultiFactorInfo = MultiFactorInfo & {\n  phoneNumber?: string;\n};\n\n@Component({\n  selector: \"fui-sms-multi-factor-assertion-phone-form\",\n  standalone: true,\n  imports: [CommonModule, FormSubmitComponent, FormErrorMessageComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <form (submit)=\"handleSubmit($event)\" class=\"fui-form\">\n      <fieldset>\n        <label>\n          <div data-input-description>\n            {{ mfaSmsAssertionPrompt() }}\n          </div>\n        </label>\n      </fieldset>\n      <fieldset>\n        <div class=\"fui-recaptcha-container\" #recaptchaContainer></div>\n      </fieldset>\n      <fieldset>\n        <fui-form-submit [state]=\"state()\" [disabled]=\"!recaptchaVerifier()\">\n          {{ sendCodeLabel() }}\n        </fui-form-submit>\n        <fui-form-error-message [state]=\"state()\" />\n      </fieldset>\n    </form>\n  `,\n})\n/**\n * A form component for requesting SMS verification code during MFA assertion.\n */\nexport class SmsMultiFactorAssertionPhoneFormComponent {\n  private ui = injectUI();\n\n  /** The multi-factor info hint containing phone number details. */\n  hint = input.required<MultiFactorInfo>();\n  /** Event emitter fired when verification ID is received. */\n  @Output() onSubmit = new EventEmitter<string>();\n\n  sendCodeLabel = injectTranslation(\"labels\", \"sendCode\");\n\n  recaptchaContainer = viewChild.required<ElementRef<HTMLDivElement>>(\"recaptchaContainer\");\n\n  phoneNumber = computed(() => {\n    const hint = this.hint() as PhoneMultiFactorInfo;\n    return hint.phoneNumber || \"\";\n  });\n\n  mfaSmsAssertionPrompt = computed(() => {\n    return getTranslation(this.ui(), \"messages\", \"mfaSmsAssertionPrompt\", { phoneNumber: this.phoneNumber() });\n  });\n\n  recaptchaVerifier = injectRecaptchaVerifier(() => this.recaptchaContainer());\n\n  form = injectForm({\n    defaultValues: {},\n  });\n\n  state = injectStore(this.form, (state) => state);\n\n  constructor() {\n    effect(() => {\n      this.form.update({\n        validators: {\n          onSubmitAsync: async () => {\n            try {\n              const verifier = this.recaptchaVerifier();\n              if (!verifier) {\n                return \"Recaptcha verifier not available\";\n              }\n\n              const renderPromise = this.recaptchaVerifier.renderPromise?.();\n              if (renderPromise) {\n                await renderPromise;\n              }\n\n              const verificationId = await verifyPhoneNumber(this.ui(), \"\", verifier, undefined, this.hint());\n              this.onSubmit.emit(verificationId);\n              return;\n            } catch (error) {\n              return error instanceof FirebaseUIError ? error.message : String(error);\n            }\n          },\n        },\n      });\n    });\n\n    effect((onCleanup) => {\n      const verifier = this.recaptchaVerifier();\n      onCleanup(() => {\n        if (verifier) {\n          verifier.clear();\n        }\n      });\n    });\n  }\n\n  async handleSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    const verifier = this.recaptchaVerifier();\n    if (!verifier) {\n      return;\n    }\n    await this.form.handleSubmit();\n  }\n}\n\n@Component({\n  selector: \"fui-sms-multi-factor-assertion-verify-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    TanStackField,\n    TanStackAppField,\n    FormInputComponent,\n    FormSubmitComponent,\n    FormErrorMessageComponent,\n  ],\n  template: `\n    <form (submit)=\"handleSubmit($event)\" class=\"fui-form\">\n      <fieldset>\n        <fui-form-input\n          name=\"verificationCode\"\n          tanstack-app-field\n          [tanstackField]=\"form\"\n          [label]=\"verificationCodeLabel()\"\n          [description]=\"smsVerificationPrompt()\"\n          type=\"text\"\n        ></fui-form-input>\n      </fieldset>\n      <fieldset>\n        <fui-form-submit [state]=\"state()\">\n          {{ verifyCodeLabel() }}\n        </fui-form-submit>\n        <fui-form-error-message [state]=\"state()\" />\n      </fieldset>\n    </form>\n  `,\n})\n/**\n * A form component for verifying SMS code during MFA assertion.\n */\nexport class SmsMultiFactorAssertionVerifyFormComponent {\n  private ui = injectUI();\n  private formSchema = injectMultiFactorPhoneAuthVerifyFormSchema();\n\n  /** The verification ID received from the phone form. */\n  verificationId = input.required<string>();\n  /** Event emitter for successful MFA assertion. */\n  @Output() onSuccess = new EventEmitter<UserCredential>();\n\n  verificationCodeLabel = injectTranslation(\"labels\", \"verificationCode\");\n  verifyCodeLabel = injectTranslation(\"labels\", \"verifyCode\");\n  smsVerificationPrompt = injectTranslation(\"prompts\", \"smsVerificationPrompt\");\n  unknownErrorLabel = injectTranslation(\"errors\", \"unknownError\");\n\n  form = injectForm({\n    defaultValues: {\n      verificationId: \"\",\n      verificationCode: \"\",\n    },\n  });\n\n  state = injectStore(this.form, (state) => state);\n\n  constructor() {\n    effect(() => {\n      this.form.setFieldValue(\"verificationId\", this.verificationId());\n    });\n\n    effect(() => {\n      this.form.update({\n        validators: {\n          onChange: this.formSchema(),\n          onSubmit: this.formSchema(),\n          onSubmitAsync: async ({ value }) => {\n            try {\n              const credential = PhoneAuthProvider.credential(value.verificationId, value.verificationCode);\n              const assertion = PhoneMultiFactorGenerator.assertion(credential);\n              const result = await signInWithMultiFactorAssertion(this.ui(), assertion);\n              this.onSuccess.emit(result);\n              return;\n            } catch (error) {\n              return error instanceof FirebaseUIError ? error.message : String(error);\n            }\n          },\n        },\n      });\n    });\n  }\n\n  async handleSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.form.handleSubmit();\n  }\n}\n\n@Component({\n  selector: \"fui-sms-multi-factor-assertion-form\",\n  standalone: true,\n  imports: [CommonModule, SmsMultiFactorAssertionPhoneFormComponent, SmsMultiFactorAssertionVerifyFormComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <div class=\"fui-content\">\n      @if (verification()) {\n        <fui-sms-multi-factor-assertion-verify-form\n          [verificationId]=\"verification()!.verificationId\"\n          (onSuccess)=\"onSuccess.emit($event)\"\n        />\n      } @else {\n        <fui-sms-multi-factor-assertion-phone-form [hint]=\"hint()\" (onSubmit)=\"handlePhoneSubmit($event)\" />\n      }\n    </div>\n  `,\n})\n/**\n * A form component for SMS multi-factor authentication assertion.\n *\n * Manages the flow between requesting and verifying SMS codes for MFA.\n */\nexport class SmsMultiFactorAssertionFormComponent {\n  /** The multi-factor info hint containing phone number details. */\n  hint = input.required<MultiFactorInfo>();\n  /** Event emitter for successful MFA assertion. */\n  @Output() onSuccess = new EventEmitter<UserCredential>();\n\n  verification = signal<{ verificationId: string } | null>(null);\n\n  handlePhoneSubmit(verificationId: string) {\n    this.verification.set({ verificationId });\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 *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to 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 { Component, effect, input, Output, EventEmitter } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { injectForm, injectStore, TanStackAppField, TanStackField } from \"@tanstack/angular-form\";\nimport { injectMultiFactorTotpAuthVerifyFormSchema, injectTranslation, injectUI } from \"../../../provider\";\nimport { FormInputComponent, FormSubmitComponent, FormErrorMessageComponent } from \"../../../components/form\";\nimport { FirebaseUIError, signInWithMultiFactorAssertion } from \"@firebase-oss/ui-core\";\nimport { TotpMultiFactorGenerator, type MultiFactorInfo, type UserCredential } from \"firebase/auth\";\n\n@Component({\n  selector: \"fui-totp-multi-factor-assertion-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    TanStackField,\n    TanStackAppField,\n    FormInputComponent,\n    FormSubmitComponent,\n    FormErrorMessageComponent,\n  ],\n  template: `\n    <form (submit)=\"handleSubmit($event)\" class=\"fui-form\">\n      <fieldset>\n        <fui-form-input\n          name=\"verificationCode\"\n          tanstack-app-field\n          [tanstackField]=\"form\"\n          [label]=\"verificationCodeLabel()\"\n          [description]=\"enterVerificationCodePrompt()\"\n          type=\"text\"\n          placeholder=\"123456\"\n          maxlength=\"6\"\n        ></fui-form-input>\n      </fieldset>\n      <fieldset>\n        <fui-form-submit [state]=\"state()\">\n          {{ verifyCodeLabel() }}\n        </fui-form-submit>\n        <fui-form-error-message [state]=\"state()\" />\n      </fieldset>\n    </form>\n  `,\n})\n/**\n * A form component for TOTP multi-factor authentication assertion.\n *\n * Allows users to enter a TOTP code from their authenticator app.\n */\nexport class TotpMultiFactorAssertionFormComponent {\n  private ui = injectUI();\n  private formSchema = injectMultiFactorTotpAuthVerifyFormSchema();\n\n  /** The multi-factor info hint containing TOTP details. */\n  hint = input.required<MultiFactorInfo>();\n  /** Event emitter for successful MFA assertion. */\n  @Output() onSuccess = new EventEmitter<UserCredential>();\n\n  verificationCodeLabel = injectTranslation(\"labels\", \"verificationCode\");\n  verifyCodeLabel = injectTranslation(\"labels\", \"verifyCode\");\n  enterVerificationCodePrompt = injectTranslation(\"prompts\", \"enterVerificationCode\");\n\n  form = injectForm({\n    defaultValues: {\n      verificationCode: \"\",\n    },\n  });\n\n  state = injectStore(this.form, (state) => state);\n\n  constructor() {\n    effect(() => {\n      this.form.update({\n        validators: {\n          onChange: this.formSchema(),\n          onSubmitAsync: async ({ value }) => {\n            try {\n              const assertion = TotpMultiFactorGenerator.assertionForSignIn(this.hint().uid, value.verificationCode);\n              const result = await signInWithMultiFactorAssertion(this.ui(), assertion);\n              this.onSuccess.emit(result);\n              return;\n            } catch (error) {\n              return error instanceof FirebaseUIError ? error.message : String(error);\n            }\n          },\n        },\n      });\n    });\n  }\n\n  async handleSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.form.handleSubmit();\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 { Component, computed, effect, Output, EventEmitter, signal } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { injectUI, injectTranslation } from \"../../provider\";\nimport {\n  PhoneMultiFactorGenerator,\n  TotpMultiFactorGenerator,\n  type UserCredential,\n  type MultiFactorInfo,\n} from \"firebase/auth\";\nimport { SmsMultiFactorAssertionFormComponent } from \"./mfa/sms-multi-factor-assertion-form\";\nimport { TotpMultiFactorAssertionFormComponent } from \"./mfa/totp-multi-factor-assertion-form\";\nimport { ButtonComponent } from \"../../components/button\";\n\n@Component({\n  selector: \"fui-multi-factor-auth-assertion-form\",\n  standalone: true,\n  imports: [CommonModule, SmsMultiFactorAssertionFormComponent, TotpMultiFactorAssertionFormComponent, ButtonComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <div class=\"fui-content\">\n      @if (selectedHint()) {\n        @if (selectedHint()!.factorId === phoneFactorId) {\n          <fui-sms-multi-factor-assertion-form [hint]=\"selectedHint()!\" (onSuccess)=\"onSuccess.emit($event)\" />\n        } @else if (selectedHint()!.factorId === totpFactorId) {\n          <fui-totp-multi-factor-assertion-form [hint]=\"selectedHint()!\" (onSuccess)=\"onSuccess.emit($event)\" />\n        }\n      } @else {\n        <p>{{ mfaAssertionFactorPrompt() }}</p>\n        @for (hint of resolver().hints; track hint.factorId) {\n          @if (hint.factorId === totpFactorId) {\n            <button fui-button (click)=\"selectHint(hint)\">\n              {{ totpVerificationLabel() }}\n            </button>\n          } @else if (hint.factorId === phoneFactorId) {\n            <button fui-button (click)=\"selectHint(hint)\">\n              {{ smsVerificationLabel() }}\n            </button>\n          }\n        }\n      }\n    </div>\n  `,\n})\n/**\n * A form component for multi-factor authentication assertion.\n *\n * Allows users to select and complete MFA verification using SMS or TOTP.\n */\nexport class MultiFactorAuthAssertionFormComponent {\n  private ui = injectUI();\n\n  constructor() {\n    effect((onCleanup) => {\n      // Cleanup the multi-factor resolver when the component unmounts.\n      onCleanup(() => {\n        this.ui().setMultiFactorResolver();\n      });\n    });\n  }\n\n  /** Event emitter for successful MFA assertion. */\n  @Output() onSuccess = new EventEmitter<UserCredential>();\n\n  resolver = computed(() => {\n    const resolver = this.ui().multiFactorResolver;\n    if (!resolver) {\n      throw new Error(\"MultiFactorAuthAssertionForm requires a multi-factor resolver\");\n    }\n    return resolver;\n  });\n\n  selectedHint = signal<MultiFactorInfo | undefined>(\n    this.resolver().hints.length === 1 ? this.resolver().hints[0] : undefined\n  );\n\n  phoneFactorId = PhoneMultiFactorGenerator.FACTOR_ID;\n  totpFactorId = TotpMultiFactorGenerator.FACTOR_ID;\n\n  smsVerificationLabel = injectTranslation(\"labels\", \"mfaSmsVerification\");\n  totpVerificationLabel = injectTranslation(\"labels\", \"mfaTotpVerification\");\n  mfaAssertionFactorPrompt = injectTranslation(\"prompts\", \"mfaAssertionFactorPrompt\");\n\n  selectHint(hint: MultiFactorInfo) {\n    this.selectedHint.set(hint);\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 { Component, computed, model } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { type CountryCode } from \"@firebase-oss/ui-core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { injectCountries, injectDefaultCountry } from \"../provider\";\n\n@Component({\n  selector: \"fui-country-selector\",\n  standalone: true,\n  imports: [CommonModule, FormsModule],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <div class=\"fui-country-selector\">\n      <div class=\"fui-country-selector__wrapper\">\n        <span class=\"fui-country-selector__flag\">{{ selected().emoji }}</span>\n        <div class=\"fui-country-selector__select-wrapper\">\n          <span class=\"fui-country-selector__dial-code\">{{ selected().dialCode }}</span>\n          <select\n            class=\"fui-country-selector__select\"\n            [ngModel]=\"selected().code\"\n            (ngModelChange)=\"handleCountryChange($event)\"\n          >\n            @for (country of countries(); track $index) {\n              <option [value]=\"country.code\">{{ country.dialCode }} ({{ country.name }})</option>\n            }\n          </select>\n        </div>\n      </div>\n    </div>\n  `,\n})\n/**\n * A country selector component for phone number input.\n *\n * Displays a dropdown with country flags, dial codes, and names for selecting a country.\n */\nexport class CountrySelectorComponent {\n  countries = injectCountries();\n  defaultCountry = injectDefaultCountry();\n  /** The selected country code (two-way binding). */\n  value = model<CountryCode>();\n\n  selected = computed(() => {\n    if (!this.value()) {\n      return this.defaultCountry();\n    }\n\n    return this.countries().find((c) => c.code === this.value()) || this.defaultCountry();\n  });\n\n  handleCountryChange(code: string) {\n    const country = this.countries().find((c) => c.code === code);\n\n    if (country) {\n      this.value.update(() => country.code as CountryCode);\n    }\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 { Component, signal, effect, viewChild, computed, Output, EventEmitter } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TanStackField, TanStackAppField, injectForm, injectStore } from \"@tanstack/angular-form\";\nimport { ElementRef } from \"@angular/core\";\nimport { RecaptchaVerifier } from \"firebase/auth\";\nimport { PhoneAuthProvider, PhoneMultiFactorGenerator } from \"firebase/auth\";\nimport {\n  verifyPhoneNumber,\n  enrollWithMultiFactorAssertion,\n  formatPhoneNumber,\n  FirebaseUIError,\n} from \"@firebase-oss/ui-core\";\nimport { multiFactor } from \"firebase/auth\";\nimport { FormInputComponent, FormSubmitComponent, FormErrorMessageComponent } from \"../../../components/form\";\nimport { CountrySelectorComponent } from \"../../../components/country-selector\";\nimport { PoliciesComponent } from \"../../../components/policies\";\nimport {\n  injectUI,\n  injectTranslation,\n  injectMultiFactorPhoneAuthNumberFormSchema,\n  injectMultiFactorPhoneAuthVerifyFormSchema,\n  injectDefaultCountry,\n  injectRecaptchaVerifier,\n} from \"../../../provider\";\n\n@Component({\n  selector: \"fui-sms-multi-factor-enrollment-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    TanStackField,\n    TanStackAppField,\n    FormInputComponent,\n    FormSubmitComponent,\n    FormErrorMessageComponent,\n    CountrySelectorComponent,\n  ],\n  template: `\n    <div class=\"fui-form-container\">\n      @if (!verificationId()) {\n        <form (submit)=\"handlePhoneSubmit($event)\" class=\"fui-form\">\n          <fieldset>\n            <fui-form-input\n              name=\"displayName\"\n              tanstack-app-field\n              [tanstackField]=\"phoneForm\"\n              [label]=\"displayNameLabel()\"\n              type=\"text\"\n            />\n          </fieldset>\n          <fieldset>\n            <fui-form-input\n              name=\"phoneNumber\"\n              tanstack-app-field\n              [tanstackField]=\"phoneForm\"\n              [label]=\"phoneNumberLabel()\"\n              type=\"tel\"\n            >\n              <fui-country-selector [(value)]=\"country\" ngProjectAs=\"input-before\" />\n            </fui-form-input>\n          </fieldset>\n          <fieldset>\n            <div class=\"fui-recaptcha-container\" #recaptchaContainer></div>\n          </fieldset>\n          <fieldset>\n            <fui-form-submit [state]=\"phoneState()\" [disabled]=\"!recaptchaVerifier()\">\n              {{ sendCodeLabel() }}\n            </fui-form-submit>\n            <fui-form-error-message [state]=\"phoneState()\" />\n          </fieldset>\n        </form>\n      } @else {\n        <form (submit)=\"handleVerificationSubmit($event)\" class=\"fui-form\">\n          <fieldset>\n            <fui-form-input\n              name=\"verificationCode\"\n              tanstack-app-field\n              [tanstackField]=\"verificationForm\"\n              [label]=\"verificationCodeLabel()\"\n              [description]=\"smsVerificationPrompt()\"\n              type=\"text\"\n            ></fui-form-input>\n          </fieldset>\n          <fieldset>\n            <fui-form-submit [state]=\"verificationState()\">\n              {{ verifyCodeLabel() }}\n            </fui-form-submit>\n            <fui-form-error-message [state]=\"verificationState()\" />\n          </fieldset>\n        </form>\n      }\n    </div>\n  `,\n})\n/**\n * A form component for SMS multi-factor authentication enrollment.\n *\n * Manages the flow between phone number entry and verification code entry for MFA enrollment.\n */\nexport class SmsMultiFactorEnrollmentFormComponent {\n  private ui = injectUI();\n  private phoneFormSchema = injectMultiFactorPhoneAuthNumberFormSchema();\n  private verificationFormSchema = injectMultiFactorPhoneAuthVerifyFormSchema();\n  private defaultCountry = injectDefaultCountry();\n\n  verificationId = signal<string | null>(null);\n  country = signal(this.defaultCountry().code);\n  displayName = signal<string>(\"\");\n\n  displayNameLabel = injectTranslation(\"labels\", \"displayName\");\n  phoneNumberLabel = injectTranslation(\"labels\", \"phoneNumber\");\n  sendCodeLabel = injectTranslation(\"labels\", \"sendCode\");\n  verificationCodeLabel = injectTranslation(\"labels\", \"verificationCode\");\n  verifyCodeLabel = injectTranslation(\"labels\", \"verifyCode\");\n  smsVerificationPrompt = injectTranslation(\"prompts\", \"smsVerificationPrompt\");\n\n  /** Event emitter fired when MFA enrollment is completed. */\n  @Output() onEnrollment = new EventEmitter<void>();\n\n  recaptchaContainer = viewChild.required<ElementRef<HTMLDivElement>>(\"recaptchaContainer\");\n\n  recaptchaVerifier = injectRecaptchaVerifier(() => this.recaptchaContainer());\n\n  phoneForm = injectForm({\n    defaultValues: {\n      displayName: \"\",\n      phoneNumber: \"\",\n    },\n  });\n\n  verificationForm = injectForm({\n    defaultValues: {\n      verificationCode: \"\",\n    },\n  });\n\n  phoneState = injectStore(this.phoneForm, (state) => state);\n  verificationState = injectStore(this.verificationForm, (state) => state);\n\n  constructor() {\n    if (!this.ui().auth.currentUser) {\n      throw new Error(\"User must be authenticated to enroll with multi-factor authentication\");\n    }\n\n    effect(() => {\n      this.phoneForm.update({\n        validators: {\n          onChange: this.phoneFormSchema(),\n          onSubmit: this.phoneFormSchema(),\n          onSubmitAsync: async ({ value }) => {\n            try {\n              const verifier = this.recaptchaVerifier();\n              if (!verifier) {\n                return \"Recaptcha verifier not available\";\n              }\n\n              const renderPromise = this.recaptchaVerifier.renderPromise?.();\n              if (renderPromise) {\n                await renderPromise;\n              }\n\n              const currentUser = this.ui().auth.currentUser!;\n              const mfaUser = multiFactor(currentUser);\n              const formattedPhoneNumber = formatPhoneNumber(value.phoneNumber, this.defaultCountry());\n              const verificationId = await verifyPhoneNumber(this.ui(), formattedPhoneNumber, verifier, mfaUser);\n\n              this.displayName.set(value.displayName);\n              this.verificationId.set(verificationId);\n              return;\n            } catch (error) {\n              return error instanceof FirebaseUIError ? error.message : String(error);\n            }\n          },\n        },\n      });\n    });\n\n    effect(() => {\n      this.verificationForm.update({\n        validators: {\n          onChange: this.verificationFormSchema(),\n          onSubmit: this.verificationFormSchema(),\n          onSubmitAsync: async ({ value }) => {\n            try {\n              const credential = PhoneAuthProvider.credential(this.verificationId()!, value.verificationCode);\n              const assertion = PhoneMultiFactorGenerator.assertion(credential);\n              await enrollWithMultiFactorAssertion(this.ui(), assertion, this.displayName());\n              this.onEnrollment.emit();\n              return;\n            } catch (error) {\n              return error instanceof FirebaseUIError ? error.message : String(error);\n            }\n          },\n        },\n      });\n    });\n  }\n\n  async handlePhoneSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    const verifier = this.recaptchaVerifier();\n    if (!verifier) {\n      return;\n    }\n    await this.phoneForm.handleSubmit();\n  }\n\n  async handleVerificationSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.verificationForm.handleSubmit();\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 { Component, signal, effect, Output, EventEmitter, computed, input } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { TanStackField, TanStackAppField, injectForm, injectStore } from \"@tanstack/angular-form\";\nimport { TotpMultiFactorGenerator, type TotpSecret } from \"firebase/auth\";\nimport {\n  enrollWithMultiFactorAssertion,\n  generateTotpSecret,\n  generateTotpQrCode,\n  FirebaseUIError,\n} from \"@firebase-oss/ui-core\";\nimport { FormInputComponent, FormSubmitComponent, FormErrorMessageComponent } from \"../../../components/form\";\nimport {\n  injectUI,\n  injectTranslation,\n  injectMultiFactorTotpAuthNumberFormSchema,\n  injectMultiFactorTotpAuthVerifyFormSchema,\n} from \"../../../provider\";\n\n@Component({\n  selector: \"fui-totp-multi-factor-secret-generation-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    TanStackField,\n    TanStackAppField,\n    FormInputComponent,\n    FormSubmitComponent,\n    FormErrorMessageComponent,\n  ],\n  template: `\n    <form (submit)=\"handleSubmit($event)\" class=\"fui-form\">\n      <fieldset>\n        <fui-form-input\n          name=\"displayName\"\n          tanstack-app-field\n          [tanstackField]=\"form\"\n          [label]=\"displayNameLabel()\"\n          type=\"text\"\n        ></fui-form-input>\n      </fieldset>\n      <fieldset>\n        <fui-form-submit [state]=\"state()\">\n          {{ generateQrCodeLabel() }}\n        </fui-form-submit>\n        <fui-form-error-message [state]=\"state()\" />\n      </fieldset>\n    </form>\n  `,\n})\n/**\n * A form component for generating a TOTP secret and display name during MFA enrollment.\n */\nexport class TotpMultiFactorSecretGenerationFormComponent {\n  private ui = injectUI();\n  private formSchema = injectMultiFactorTotpAuthNumberFormSchema();\n\n  /** Event emitter fired when TOTP secret is generated. */\n  @Output() onSubmit = new EventEmitter<{ secret: TotpSecret; displayName: string }>();\n\n  displayNameLabel = injectTranslation(\"labels\", \"displayName\");\n  generateQrCodeLabel = injectTranslation(\"labels\", \"generateQrCode\");\n\n  form = injectForm({\n    defaultValues: {\n      displayName: \"\",\n    },\n  });\n\n  state = injectStore(this.form, (state) => state);\n\n  constructor() {\n    effect(() => {\n      this.form.update({\n        validators: {\n          onChange: this.formSchema(),\n          onSubmit: this.formSchema(),\n          onSubmitAsync: async ({ value }) => {\n            try {\n              const secret = await generateTotpSecret(this.ui());\n              this.onSubmit.emit({ secret, displayName: value.displayName });\n              return;\n            } catch (error) {\n              return error instanceof FirebaseUIError ? error.message : String(error);\n            }\n          },\n        },\n      });\n    });\n  }\n\n  async handleSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.form.handleSubmit();\n  }\n}\n\n@Component({\n  selector: \"fui-totp-multi-factor-verification-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    TanStackField,\n    TanStackAppField,\n    FormInputComponent,\n    FormSubmitComponent,\n    FormErrorMessageComponent,\n  ],\n  template: `\n    <div class=\"fui-qr-code-container\">\n      <img [src]=\"qrCodeDataUrl()\" alt=\"TOTP QR Code\" />\n      <code>{{ secret().secretKey.toString() }}</code>\n      <p>{{ mfaTotpQrCodePrompt() }}</p>\n    </div>\n    <form (submit)=\"handleSubmit($event)\" class=\"fui-form\">\n      <fieldset>\n        <fui-form-input\n          name=\"verificationCode\"\n          tanstack-app-field\n          [tanstackField]=\"form\"\n          [label]=\"verificationCodeLabel()\"\n          [description]=\"mfaTotpEnrollmentVerificationPrompt()\"\n          type=\"text\"\n        ></fui-form-input>\n      </fieldset>\n      <fieldset>\n        <fui-form-submit [state]=\"state()\">\n          {{ verifyCodeLabel() }}\n        </fui-form-submit>\n        <fui-form-error-message [state]=\"state()\" />\n      </fieldset>\n    </form>\n  `,\n})\n/**\n * A form component for verifying TOTP code during MFA enrollment.\n *\n * Displays a QR code and allows users to verify their authenticator app setup.\n */\nexport class TotpMultiFactorVerificationFormComponent {\n  private ui = injectUI();\n  private formSchema = injectMultiFactorTotpAuthVerifyFormSchema();\n\n  /** The TOTP secret generated in the previous step. */\n  secret = input.required<TotpSecret>();\n  /** The display name for the TOTP factor. */\n  displayName = input.required<string>();\n  /** Event emitter fired when MFA enrollment is completed. */\n  @Output() onEnrollment = new EventEmitter<void>();\n\n  verificationCodeLabel = injectTranslation(\"labels\", \"verificationCode\");\n  verifyCodeLabel = injectTranslation(\"labels\", \"verifyCode\");\n  mfaTotpQrCodePrompt = injectTranslation(\"prompts\", \"mfaTotpQrCodePrompt\");\n  mfaTotpEnrollmentVerificationPrompt = injectTranslation(\"prompts\", \"mfaTotpEnrollmentVerificationPrompt\");\n\n  form = injectForm({\n    defaultValues: {\n      verificationCode: \"\",\n    },\n  });\n\n  state = injectStore(this.form, (state) => state);\n\n  qrCodeDataUrl = computed(() => {\n    return generateTotpQrCode(this.ui(), this.secret(), this.displayName());\n  });\n\n  constructor() {\n    effect(() => {\n      this.form.update({\n        validators: {\n          onChange: this.formSchema(),\n          onSubmit: this.formSchema(),\n          onSubmitAsync: async ({ value }) => {\n            try {\n              const assertion = TotpMultiFactorGenerator.assertionForEnrollment(this.secret(), value.verificationCode);\n              await enrollWithMultiFactorAssertion(this.ui(), assertion, this.displayName());\n              this.onEnrollment.emit();\n              return;\n            } catch (error) {\n              return error instanceof FirebaseUIError ? error.message : String(error);\n            }\n          },\n        },\n      });\n    });\n  }\n\n  async handleSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.form.handleSubmit();\n  }\n}\n\n@Component({\n  selector: \"fui-totp-multi-factor-enrollment-form\",\n  standalone: true,\n  imports: [CommonModule, TotpMultiFactorSecretGenerationFormComponent, TotpMultiFactorVerificationFormComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <div class=\"fui-form-container\">\n      @if (!enrollment()) {\n        <fui-totp-multi-factor-secret-generation-form (onSubmit)=\"handleSecretGeneration($event)\" />\n      } @else {\n        <fui-totp-multi-factor-verification-form\n          [secret]=\"enrollment()!.secret\"\n          [displayName]=\"enrollment()!.displayName\"\n          (onEnrollment)=\"onEnrollment.emit()\"\n        />\n      }\n    </div>\n  `,\n})\n/**\n * A form component for TOTP multi-factor authentication enrollment.\n *\n * Manages the flow between secret generation and verification for TOTP MFA enrollment.\n */\nexport class TotpMultiFactorEnrollmentFormComponent {\n  private ui = injectUI();\n\n  enrollment = signal<{ secret: TotpSecret; displayName: string } | null>(null);\n  /** Event emitter fired when MFA enrollment is completed. */\n  @Output() onEnrollment = new EventEmitter<void>();\n\n  constructor() {\n    if (!this.ui().auth.currentUser) {\n      throw new Error(\"User must be authenticated to enroll with multi-factor authentication\");\n    }\n  }\n\n  handleSecretGeneration(data: { secret: TotpSecret; displayName: string }) {\n    this.enrollment.set(data);\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 { Component, signal, input, Output, EventEmitter, OnInit, computed } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FactorId } from \"firebase/auth\";\nimport { injectTranslation } from \"../../provider\";\nimport { SmsMultiFactorEnrollmentFormComponent } from \"./mfa/sms-multi-factor-enrollment-form\";\nimport { TotpMultiFactorEnrollmentFormComponent } from \"./mfa/totp-multi-factor-enrollment-form\";\nimport { ButtonComponent } from \"../../components/button\";\n\ntype Hint = (typeof FactorId)[keyof typeof FactorId];\n\n@Component({\n  selector: \"fui-multi-factor-auth-enrollment-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    SmsMultiFactorEnrollmentFormComponent,\n    TotpMultiFactorEnrollmentFormComponent,\n    ButtonComponent,\n  ],\n  template: `\n    <div class=\"fui-content\">\n      @if (validatedHint()) {\n        @if (validatedHint() === phoneFactorId) {\n          <fui-sms-multi-factor-enrollment-form (onEnrollment)=\"onEnrollment.emit()\" />\n        } @else if (validatedHint() === totpFactorId) {\n          <fui-totp-multi-factor-enrollment-form (onEnrollment)=\"onEnrollment.emit()\" />\n        }\n      } @else {\n        @for (hint of hints(); track hint) {\n          @if (hint === totpFactorId) {\n            <button fui-button [variant]=\"'secondary'\" (click)=\"selectHint(hint)\">\n              {{ totpVerificationLabel() }}\n            </button>\n          } @else if (hint === phoneFactorId) {\n            <button fui-button [variant]=\"'secondary'\" (click)=\"selectHint(hint)\">\n              {{ smsVerificationLabel() }}\n            </button>\n          }\n        }\n      }\n    </div>\n  `,\n})\n/**\n * A form component for multi-factor authentication enrollment.\n *\n * Allows users to enroll in MFA using SMS or TOTP methods.\n */\nexport class MultiFactorAuthEnrollmentFormComponent implements OnInit {\n  /** The available MFA factor types for enrollment. */\n  hints = input<Hint[]>([FactorId.TOTP, FactorId.PHONE]);\n  /** Event emitter fired when MFA enrollment is completed. */\n  @Output() onEnrollment = new EventEmitter<void>();\n\n  selectedHint = signal<Hint | undefined>(undefined);\n\n  phoneFactorId = FactorId.PHONE;\n  totpFactorId = FactorId.TOTP;\n\n  smsVerificationLabel = injectTranslation(\"labels\", \"mfaSmsVerification\");\n  totpVerificationLabel = injectTranslation(\"labels\", \"mfaTotpVerification\");\n\n  validatedHint = computed(() => {\n    const hint = this.selectedHint();\n    if (hint && hint !== this.phoneFactorId && hint !== this.totpFactorId) {\n      throw new Error(`Unknown multi-factor enrollment type: ${hint}`);\n    }\n    return hint;\n  });\n\n  ngOnInit() {\n    const hints = this.hints();\n    if (hints.length === 0) {\n      throw new Error(\"MultiFactorAuthEnrollmentForm must have at least one hint\");\n    }\n    // Auto-select single hint after component initialization\n    if (hints.length === 1) {\n      this.selectedHint.set(hints[0]);\n    }\n  }\n\n  selectHint(hint: Hint) {\n    this.selectedHint.set(hint);\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 { Component, ElementRef, effect, input, signal, Output, EventEmitter, computed, viewChild } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { injectForm, injectStore, TanStackAppField, TanStackField } from \"@tanstack/angular-form\";\nimport {\n  injectPhoneAuthFormSchema,\n  injectPhoneAuthVerifyFormSchema,\n  injectRecaptchaVerifier,\n  injectTranslation,\n  injectUI,\n} from \"../../provider\";\nimport { RecaptchaVerifier, UserCredential } from \"@angular/fire/auth\";\nimport { PoliciesComponent } from \"../../components/policies\";\nimport { CountrySelectorComponent } from \"../../components/country-selector\";\nimport { FormInputComponent, FormSubmitComponent, FormErrorMessageComponent } from \"../../components/form\";\nimport {\n  countryData,\n  FirebaseUIError,\n  formatPhoneNumber,\n  confirmPhoneNumber,\n  verifyPhoneNumber,\n  CountryCode,\n} from \"@firebase-oss/ui-core\";\n\n@Component({\n  selector: \"fui-phone-number-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    TanStackField,\n    TanStackAppField,\n    PoliciesComponent,\n    FormInputComponent,\n    FormSubmitComponent,\n    FormErrorMessageComponent,\n    CountrySelectorComponent,\n  ],\n  template: `\n    <form (submit)=\"handleSubmit($event)\" class=\"fui-form\">\n      <fieldset>\n        <fui-form-input\n          name=\"phoneNumber\"\n          tanstack-app-field\n          [tanstackField]=\"form\"\n          [label]=\"phoneNumberLabel()\"\n          type=\"tel\"\n        >\n          <fui-country-selector [(value)]=\"country\" ngProjectAs=\"input-before\" />\n        </fui-form-input>\n      </fieldset>\n      <fieldset>\n        <div class=\"fui-recaptcha-container\" #recaptchaContainer></div>\n      </fieldset>\n      <fui-policies />\n      <fieldset>\n        <fui-form-submit [state]=\"state()\" [disabled]=\"!recaptchaVerifier()\">\n          {{ sendCodeLabel() }}\n        </fui-form-submit>\n        <fui-form-error-message [state]=\"state()\" />\n      </fieldset>\n    </form>\n  `,\n})\n/**\n * A form component for entering a phone number and requesting a verification code.\n */\nexport class PhoneNumberFormComponent {\n  private ui = injectUI();\n  private formSchema = injectPhoneAuthFormSchema();\n\n  /** Event emitter fired when phone number is verified and verification ID is received. */\n  @Output() onSubmit = new EventEmitter<{ verificationId: string; phoneNumber: string }>();\n  /** The selected country code for phone number formatting. */\n  country = signal<CountryCode>(countryData[0].code);\n\n  phoneNumberLabel = injectTranslation(\"labels\", \"phoneNumber\");\n  sendCodeLabel = injectTranslation(\"labels\", \"sendCode\");\n  unknownErrorLabel = injectTranslation(\"errors\", \"unknownError\");\n\n  recaptchaContainer = viewChild.required<ElementRef<HTMLDivElement>>(\"recaptchaContainer\");\n  private recaptchaVerifierWithRender = injectRecaptchaVerifier(() => this.recaptchaContainer());\n  recaptchaVerifier = computed(() => this.recaptchaVerifierWithRender());\n\n  form = injectForm({\n    defaultValues: {\n      phoneNumber: \"\",\n    },\n  });\n\n  state = injectStore(this.form, (state) => state);\n\n  constructor() {\n    effect(() => {\n      this.form.update({\n        validators: {\n          onChange: this.formSchema(),\n          onSubmitAsync: async ({ value }) => {\n            const selectedCountry = countryData.find((c) => c.code === this.country());\n            const formattedNumber = formatPhoneNumber(value.phoneNumber, selectedCountry!);\n\n            try {\n              const verifier = this.recaptchaVerifier();\n              if (!verifier) {\n                return this.unknownErrorLabel();\n              }\n\n              // Wait for render() to complete - get the promise from the provider's effect\n              // This ensures render() has completed before we use the verifier\n              const renderPromise = this.recaptchaVerifierWithRender.renderPromise?.();\n\n              if (renderPromise) {\n                await renderPromise;\n              }\n\n              const verificationId = await verifyPhoneNumber(this.ui(), formattedNumber, verifier);\n              this.onSubmit.emit({ verificationId, phoneNumber: formattedNumber });\n              return;\n            } catch (error) {\n              if (error instanceof FirebaseUIError) {\n                return error.message;\n              }\n\n              return this.unknownErrorLabel();\n            }\n          },\n        },\n      });\n    });\n\n    effect((onCleanup) => {\n      const verifier = this.recaptchaVerifier();\n\n      onCleanup(() => {\n        if (verifier) {\n          verifier.clear();\n        }\n      });\n    });\n  }\n\n  async handleSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    const verifier = this.recaptchaVerifier();\n    // Check if verifier exists before submitting (like React does)\n    if (!verifier) {\n      return;\n    }\n    await this.form.handleSubmit();\n  }\n}\n\n@Component({\n  selector: \"fui-verification-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    TanStackField,\n    TanStackAppField,\n    PoliciesComponent,\n    FormInputComponent,\n    FormSubmitComponent,\n    FormErrorMessageComponent,\n  ],\n  template: `\n    <form (submit)=\"handleSubmit($event)\" class=\"fui-form\">\n      <fieldset>\n        <fui-form-input\n          name=\"verificationCode\"\n          tanstack-app-field\n          [tanstackField]=\"form\"\n          [label]=\"verificationCodeLabel()\"\n          [description]=\"smsVerificationPrompt()\"\n          type=\"text\"\n        ></fui-form-input>\n      </fieldset>\n\n      <fui-policies />\n\n      <fieldset>\n        <fui-form-submit [state]=\"state()\">\n          {{ verifyCodeLabel() }}\n        </fui-form-submit>\n        <fui-form-error-message [state]=\"state()\" />\n      </fieldset>\n    </form>\n  `,\n})\n/**\n * A form component for entering and verifying the SMS verification code.\n */\nexport class VerificationFormComponent {\n  private ui = injectUI();\n  private formSchema = injectPhoneAuthVerifyFormSchema();\n\n  /** The verification ID received from the phone number form. */\n  verificationId = input.required<string>();\n  /** Event emitter for successful sign-in. */\n  @Output() signIn = new EventEmitter<UserCredential>();\n\n  verificationCodeLabel = injectTranslation(\"labels\", \"verificationCode\");\n  verifyCodeLabel = injectTranslation(\"labels\", \"verifyCode\");\n  smsVerificationPrompt = injectTranslation(\"prompts\", \"smsVerificationPrompt\");\n  unknownErrorLabel = injectTranslation(\"errors\", \"unknownError\");\n\n  form = injectForm({\n    defaultValues: {\n      verificationId: \"\",\n      verificationCode: \"\",\n    },\n  });\n\n  state = injectStore(this.form, (state) => state);\n\n  constructor() {\n    effect(() => {\n      this.form.setFieldValue(\"verificationId\", this.verificationId());\n    });\n\n    effect(() => {\n      this.form.update({\n        validators: {\n          onChange: this.formSchema(),\n          onSubmitAsync: async ({ value }) => {\n            try {\n              const credential = await confirmPhoneNumber(this.ui(), this.verificationId(), value.verificationCode);\n              if (credential) {\n                this.signIn.emit(credential);\n              }\n              return;\n            } catch (error) {\n              if (error instanceof FirebaseUIError) {\n                return error.message;\n              }\n\n              return this.unknownErrorLabel();\n            }\n          },\n        },\n      });\n    });\n  }\n\n  async handleSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.form.handleSubmit();\n  }\n}\n\n@Component({\n  selector: \"fui-phone-auth-form\",\n  standalone: true,\n  imports: [CommonModule, PhoneNumberFormComponent, VerificationFormComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <div class=\"fui-form-container\">\n      @if (verificationId()) {\n        <fui-verification-form [verificationId]=\"verificationId()!\" (signIn)=\"signIn.emit($event)\" />\n      } @else {\n        <fui-phone-number-form (onSubmit)=\"handlePhoneSubmit($event)\" />\n      }\n    </div>\n  `,\n})\n/**\n * A form component for phone number authentication.\n *\n * Manages the flow between phone number entry and verification code entry.\n */\nexport class PhoneAuthFormComponent {\n  verificationId = signal<string | null>(null);\n  /** Event emitter for successful sign-in. */\n  @Output() signIn = new EventEmitter<UserCredential>();\n\n  handlePhoneSubmit(data: { verificationId: string; phoneNumber: string }) {\n    this.verificationId.set(data.verificationId);\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 { Component, Output, EventEmitter, input, effect } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { UserCredential } from \"@angular/fire/auth\";\nimport { injectForm, TanStackField, TanStackAppField, injectStore } from \"@tanstack/angular-form\";\nimport { FirebaseUIError, signInWithEmailAndPassword } from \"@firebase-oss/ui-core\";\n\nimport { injectSignInAuthFormSchema, injectTranslation, injectUI } from \"../../provider\";\nimport { PoliciesComponent } from \"../../components/policies\";\nimport {\n  FormInputComponent,\n  FormSubmitComponent,\n  FormErrorMessageComponent,\n  FormActionComponent,\n} from \"../../components/form\";\n\n@Component({\n  selector: \"fui-sign-in-auth-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    TanStackField,\n    TanStackAppField,\n    PoliciesComponent,\n    FormInputComponent,\n    FormSubmitComponent,\n    FormErrorMessageComponent,\n    FormActionComponent,\n  ],\n  template: `\n    <form (submit)=\"handleSubmit($event)\" class=\"fui-form\">\n      <fieldset>\n        <fui-form-input\n          name=\"email\"\n          tanstack-app-field\n          [tanstackField]=\"form\"\n          [label]=\"emailLabel()\"\n          type=\"email\"\n        ></fui-form-input>\n      </fieldset>\n      <fieldset>\n        <fui-form-input\n          name=\"password\"\n          tanstack-app-field\n          [tanstackField]=\"form\"\n          [label]=\"passwordLabel()\"\n          type=\"password\"\n        >\n          @if (forgotPassword()?.observed) {\n            <button ngProjectAs=\"input-action\" fui-form-action (click)=\"forgotPassword()?.emit()\">\n              {{ forgotPasswordLabel() }}\n            </button>\n          }\n        </fui-form-input>\n      </fieldset>\n\n      <fui-policies />\n\n      <fieldset>\n        <fui-form-submit [state]=\"state()\">\n          {{ signInLabel() }}\n        </fui-form-submit>\n        <fui-form-error-message [state]=\"state()\" />\n      </fieldset>\n\n      @if (signUp()?.observed) {\n        <button fui-form-action (click)=\"signUp()?.emit()\">{{ noAccountLabel() }} {{ signUpLabel() }}</button>\n      }\n    </form>\n  `,\n})\n/**\n * A form component for signing in with email and password.\n */\nexport class SignInAuthFormComponent {\n  private ui = injectUI();\n  private formSchema = injectSignInAuthFormSchema();\n\n  emailLabel = injectTranslation(\"labels\", \"emailAddress\");\n  passwordLabel = injectTranslation(\"labels\", \"password\");\n  forgotPasswordLabel = injectTranslation(\"labels\", \"forgotPassword\");\n  signInLabel = injectTranslation(\"labels\", \"signIn\");\n  noAccountLabel = injectTranslation(\"prompts\", \"noAccount\");\n  signUpLabel = injectTranslation(\"labels\", \"signUp\");\n  unknownErrorLabel = injectTranslation(\"errors\", \"unknownError\");\n\n  /** Event emitter for forgot password action. */\n  forgotPassword = input<EventEmitter<void>>();\n  /** Event emitter for sign up action. */\n  signUp = input<EventEmitter<void>>();\n\n  /** Event emitter for successful sign-in. */\n  @Output() signIn = new EventEmitter<UserCredential>();\n\n  form = injectForm({\n    defaultValues: {\n      email: \"\",\n      password: \"\",\n    },\n  });\n\n  state = injectStore(this.form, (state) => state);\n\n  handleSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.form.handleSubmit();\n  }\n\n  constructor() {\n    effect(() => {\n      this.form.update({\n        validators: {\n          onChange: this.formSchema(),\n          onSubmitAsync: async ({ value }) => {\n            try {\n              const credential = await signInWithEmailAndPassword(this.ui(), value.email, value.password);\n              if (credential) {\n                this.signIn.emit(credential);\n              }\n              return;\n            } catch (error) {\n              if (error instanceof FirebaseUIError) {\n                return error.message;\n              }\n\n              console.error(error);\n              return this.unknownErrorLabel();\n            }\n          },\n        },\n      });\n    });\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 { Component, Output, EventEmitter, input, effect, computed } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { injectForm, injectStore, TanStackAppField, TanStackField } from \"@tanstack/angular-form\";\nimport { FirebaseUIError, createUserWithEmailAndPassword, hasBehavior } from \"@firebase-oss/ui-core\";\nimport { UserCredential } from \"@angular/fire/auth\";\n\nimport { PoliciesComponent } from \"../../components/policies\";\nimport { injectSignUpAuthFormSchema, injectTranslation, injectUI } from \"../../provider\";\nimport {\n  FormInputComponent,\n  FormSubmitComponent,\n  FormErrorMessageComponent,\n  FormActionComponent,\n} from \"../../components/form\";\n\n@Component({\n  selector: \"fui-sign-up-auth-form\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    TanStackField,\n    TanStackAppField,\n    PoliciesComponent,\n    FormInputComponent,\n    FormSubmitComponent,\n    FormErrorMessageComponent,\n    FormActionComponent,\n  ],\n  template: `\n    <form (submit)=\"handleSubmit($event)\" class=\"fui-form\">\n      @if (requireDisplayNameField()) {\n        <fieldset>\n          <fui-form-input name=\"displayName\" tanstack-app-field [tanstackField]=\"form\" [label]=\"displayNameLabel()\" />\n        </fieldset>\n      }\n      <fieldset>\n        <fui-form-input name=\"email\" tanstack-app-field [tanstackField]=\"form\" [label]=\"emailLabel()\" type=\"email\" />\n      </fieldset>\n      <fieldset>\n        <fui-form-input\n          name=\"password\"\n          tanstack-app-field\n          [tanstackField]=\"form\"\n          [label]=\"passwordLabel()\"\n          type=\"password\"\n        />\n      </fieldset>\n      <fui-policies />\n      <fieldset>\n        <fui-form-submit [state]=\"state()\">\n          {{ createAccountLabel() }}\n        </fui-form-submit>\n        <fui-form-error-message [state]=\"state()\" />\n      </fieldset>\n\n      @if (signIn()?.observed) {\n        <button fui-form-action (click)=\"signIn()?.emit()\">{{ haveAccountLabel() }} {{ signInLabel() }}</button>\n      }\n    </form>\n  `,\n})\n/**\n * A form component for signing up with email and password.\n *\n * Optionally includes a display name field if the requireDisplayName behavior is enabled.\n */\nexport class SignUpAuthFormComponent {\n  private ui = injectUI();\n  private formSchema = injectSignUpAuthFormSchema();\n\n  requireDisplayNameField = computed(() => {\n    return hasBehavior(this.ui(), \"requireDisplayName\");\n  });\n\n  emailLabel = injectTranslation(\"labels\", \"emailAddress\");\n  displayNameLabel = injectTranslation(\"labels\", \"displayName\");\n  passwordLabel = injectTranslation(\"labels\", \"password\");\n  createAccountLabel = injectTranslation(\"labels\", \"createAccount\");\n  haveAccountLabel = injectTranslation(\"prompts\", \"haveAccount\");\n  signInLabel = injectTranslation(\"labels\", \"signIn\");\n  unknownErrorLabel = injectTranslation(\"errors\", \"unknownError\");\n\n  /** Event emitter for sign in action. */\n  signIn = input<EventEmitter<void>>();\n\n  /** Event emitter for successful sign-up. */\n  @Output() signUp = new EventEmitter<UserCredential>();\n\n  form = injectForm({\n    defaultValues: {\n      email: \"\",\n      password: \"\",\n      displayName: this.requireDisplayNameField() ? \"\" : undefined,\n    },\n  });\n\n  state = injectStore(this.form, (state) => state);\n\n  handleSubmit(event: SubmitEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.form.handleSubmit();\n  }\n\n  constructor() {\n    effect(() => {\n      this.form.update({\n        validators: {\n          onChange: this.formSchema(),\n          onSubmitAsync: async ({ value }) => {\n            try {\n              const credential = await createUserWithEmailAndPassword(\n                this.ui(),\n                value.email,\n                value.password,\n                value.displayName\n              );\n              if (credential) {\n                this.signUp.emit(credential);\n              }\n              return;\n            } catch (error) {\n              if (error instanceof FirebaseUIError) {\n                return error.message;\n              }\n\n              console.error(error);\n              return this.unknownErrorLabel();\n            }\n          },\n        },\n      });\n    });\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 { Component, input, signal, computed, output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { ButtonComponent } from \"../../components/button\";\nimport { injectUI } from \"../../provider\";\nimport { AuthProvider, UserCredential } from \"@angular/fire/auth\";\nimport { FirebaseUIError, signInWithProvider, getTranslation } from \"@firebase-oss/ui-core\";\n\n@Component({\n  selector: \"fui-oauth-button\",\n  standalone: true,\n  imports: [CommonModule, ButtonComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <div>\n      <button\n        fui-button\n        type=\"button\"\n        (click)=\"handleOAuthSignIn()\"\n        [variant]=\"buttonVariant()\"\n        [attr.data-themed]=\"themed()\"\n        [disabled]=\"ui().state !== 'idle'\"\n        [attr.data-provider]=\"provider().providerId\"\n        class=\"fui-provider__button\"\n      >\n        <ng-content></ng-content>\n      </button>\n\n      @if (error()) {\n        <div class=\"fui-error\">{{ error() }}</div>\n      }\n    </div>\n  `,\n})\n/**\n * A generic OAuth button component for signing in with any OAuth provider.\n */\nexport class OAuthButtonComponent {\n  ui = injectUI();\n  /** The OAuth provider to use for sign-in. */\n  provider = input.required<AuthProvider>();\n  /** Whether to use themed styling. */\n  themed = input<boolean | string>();\n  error = signal<string | null>(null);\n  /** Event emitter for successful sign-in. */\n  signIn = output<UserCredential>();\n\n  buttonVariant = computed(() => {\n    return this.themed() ? \"primary\" : \"secondary\";\n  });\n\n  async handleOAuthSignIn() {\n    this.error.set(null);\n    try {\n      const credential = await signInWithProvider(this.ui(), this.provider());\n      if (credential) {\n        this.signIn.emit(credential);\n      }\n    } catch (error) {\n      if (error instanceof FirebaseUIError) {\n        this.error.set(error.message);\n        return;\n      }\n      console.error(error);\n      this.error.set(getTranslation(this.ui(), \"errors\", \"unknownError\"));\n    }\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\n// GENERATED BY generate-logos.ts\n\nimport { Component, input } from \"@angular/core\";\n\n@Component({\n  selector: \"fui-apple-logo\",\n  standalone: true,\n  template: `\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" class=\"fui-provider__icon\">\n      <path\n        fill=\"currentColor\"\n        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\"\n      />\n    </svg>\n  `,\n})\n/**\n * The Apple logo SVG component.\n */\nexport class AppleLogoComponent {\n  /** The width of the logo. */\n  width = input<string | number>(\"1em\");\n  /** The height of the logo. */\n  height = input<string | number>(\"1em\");\n  /** Optional additional CSS class names. */\n  className = input<string>(\"\");\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 { Component, input, output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OAuthButtonComponent } from \"./oauth-button\";\nimport { injectTranslation, injectUI } from \"../../provider\";\nimport { OAuthProvider, UserCredential } from \"@angular/fire/auth\";\nimport { AppleLogoComponent } from \"../../components/logos/apple\";\n\n@Component({\n  selector: \"fui-apple-sign-in-button\",\n  standalone: true,\n  imports: [CommonModule, OAuthButtonComponent, AppleLogoComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <fui-oauth-button [provider]=\"appleProvider\" [themed]=\"themed()\" (signIn)=\"signIn.emit($event)\">\n      <fui-apple-logo />\n      <span>{{ signInWithAppleLabel() }}</span>\n    </fui-oauth-button>\n  `,\n})\n/**\n * A button component for signing in with Apple.\n */\nexport class AppleSignInButtonComponent {\n  ui = injectUI();\n  signInWithAppleLabel = injectTranslation(\"labels\", \"signInWithApple\");\n  /** Whether to use themed styling. */\n  themed = input<boolean>(false);\n  /** Event emitter for successful sign-in. */\n  signIn = output<UserCredential>();\n\n  private defaultProvider = new OAuthProvider(\"apple.com\");\n\n  /** Optional custom OAuth provider configuration. */\n  provider = input<OAuthProvider>();\n\n  get appleProvider() {\n    return this.provider() || this.defaultProvider;\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\n// GENERATED BY generate-logos.ts\n\nimport { Component, input } from \"@angular/core\";\n\n@Component({\n  selector: \"fui-facebook-logo\",\n  standalone: true,\n  template: `\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\" class=\"fui-provider__icon\">\n      <path\n        fill=\"currentColor\"\n        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\"\n      />\n    </svg>\n  `,\n})\n/**\n * The Facebook logo SVG component.\n */\nexport class FacebookLogoComponent {\n  /** The width of the logo. */\n  width = input<string | number>(\"1em\");\n  /** The height of the logo. */\n  height = input<string | number>(\"1em\");\n  /** Optional additional CSS class names. */\n  className = input<string>(\"\");\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 { Component, input, output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FacebookAuthProvider, UserCredential } from \"@angular/fire/auth\";\nimport { OAuthButtonComponent } from \"./oauth-button\";\nimport { injectTranslation, injectUI } from \"../../provider\";\nimport { FacebookLogoComponent } from \"../../components/logos/facebook\";\n\n@Component({\n  selector: \"fui-facebook-sign-in-button\",\n  standalone: true,\n  imports: [CommonModule, OAuthButtonComponent, FacebookLogoComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <fui-oauth-button [provider]=\"facebookProvider\" [themed]=\"themed()\" (signIn)=\"signIn.emit($event)\">\n      <fui-facebook-logo />\n      <span>{{ signInWithFacebookLabel() }}</span>\n    </fui-oauth-button>\n  `,\n})\n/**\n * A button component for signing in with Facebook.\n */\nexport class FacebookSignInButtonComponent {\n  ui = injectUI();\n  signInWithFacebookLabel = injectTranslation(\"labels\", \"signInWithFacebook\");\n  /** Whether to use themed styling. */\n  themed = input<boolean>(false);\n  /** Event emitter for successful sign-in. */\n  signIn = output<UserCredential>();\n\n  private defaultProvider = new FacebookAuthProvider();\n\n  /** Optional custom OAuth provider configuration. */\n  provider = input<FacebookAuthProvider>();\n\n  get facebookProvider() {\n    return this.provider() || this.defaultProvider;\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\n// GENERATED BY generate-logos.ts\n\nimport { Component, input } from \"@angular/core\";\n\n@Component({\n  selector: \"fui-github-logo\",\n  standalone: true,\n  template: `\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\" fill=\"currentColor\" class=\"fui-provider__icon\">\n      <path\n        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\"\n      />\n    </svg>\n  `,\n})\n/**\n * The Github logo SVG component.\n */\nexport class GithubLogoComponent {\n  /** The width of the logo. */\n  width = input<string | number>(\"1em\");\n  /** The height of the logo. */\n  height = input<string | number>(\"1em\");\n  /** Optional additional CSS class names. */\n  className = input<string>(\"\");\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 { Component, input, output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OAuthButtonComponent } from \"./oauth-button\";\nimport { injectTranslation } from \"../../provider\";\nimport { GithubAuthProvider, UserCredential } from \"@angular/fire/auth\";\nimport { GithubLogoComponent } from \"../../components/logos/github\";\n\n@Component({\n  selector: \"fui-github-sign-in-button\",\n  standalone: true,\n  imports: [CommonModule, OAuthButtonComponent, GithubLogoComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <fui-oauth-button [provider]=\"githubProvider\" [themed]=\"themed()\" (signIn)=\"signIn.emit($event)\">\n      <fui-github-logo />\n      <span>{{ signInWithGitHubLabel() }}</span>\n    </fui-oauth-button>\n  `,\n})\n/**\n * A button component for signing in with GitHub.\n */\nexport class GitHubSignInButtonComponent {\n  signInWithGitHubLabel = injectTranslation(\"labels\", \"signInWithGitHub\");\n  /** Whether to use themed styling. */\n  themed = input<boolean>(false);\n  /** Event emitter for successful sign-in. */\n  signIn = output<UserCredential>();\n\n  private defaultProvider = new GithubAuthProvider();\n\n  /** Optional custom OAuth provider configuration. */\n  provider = input<GithubAuthProvider>();\n\n  get githubProvider() {\n    return this.provider() || this.defaultProvider;\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\n// GENERATED BY generate-logos.ts\n\nimport { Component, input } from \"@angular/core\";\n\n@Component({\n  selector: \"fui-google-logo\",\n  standalone: true,\n  template: `\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" class=\"fui-provider__icon\">\n      <path\n        fill=\"#FFC107\"\n        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\"\n      />\n      <path\n        fill=\"#FF3D00\"\n        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\"\n      />\n      <path\n        fill=\"#4CAF50\"\n        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\"\n      />\n      <path\n        fill=\"#1976D2\"\n        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\"\n      />\n    </svg>\n  `,\n})\n/**\n * The Google logo SVG component.\n */\nexport class GoogleLogoComponent {\n  /** The width of the logo. */\n  width = input<string | number>(\"1em\");\n  /** The height of the logo. */\n  height = input<string | number>(\"1em\");\n  /** Optional additional CSS class names. */\n  className = input<string>(\"\");\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 { Component, input, output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { GoogleAuthProvider, UserCredential } from \"@angular/fire/auth\";\nimport { injectTranslation, injectUI } from \"../../provider\";\nimport { OAuthButtonComponent } from \"./oauth-button\";\nimport { GoogleLogoComponent } from \"../../components/logos/google\";\n\n@Component({\n  selector: \"fui-google-sign-in-button\",\n  standalone: true,\n  imports: [CommonModule, OAuthButtonComponent, GoogleLogoComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <fui-oauth-button [provider]=\"googleProvider\" [themed]=\"themed()\" (signIn)=\"signIn.emit($event)\">\n      <fui-google-logo />\n      <span>{{ signInWithGoogleLabel() }}</span>\n    </fui-oauth-button>\n  `,\n})\n/**\n * A button component for signing in with Google.\n */\nexport class GoogleSignInButtonComponent {\n  ui = injectUI();\n  signInWithGoogleLabel = injectTranslation(\"labels\", \"signInWithGoogle\");\n  /** Whether to use themed styling. */\n  themed = input<boolean | \"neutral\">(false);\n  /** Event emitter for successful sign-in. */\n  signIn = output<UserCredential>();\n\n  private defaultProvider = new GoogleAuthProvider();\n\n  /** Optional custom OAuth provider configuration. */\n  provider = input<GoogleAuthProvider>();\n\n  get googleProvider() {\n    return this.provider() || this.defaultProvider;\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\n// GENERATED BY generate-logos.ts\n\nimport { Component, input } from \"@angular/core\";\n\n@Component({\n  selector: \"fui-microsoft-logo\",\n  standalone: true,\n  template: `\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\" class=\"fui-provider__icon\">\n      <path fill=\"#ff5722\" d=\"M6 6H22V22H6z\" transform=\"rotate(-180 14 14)\" />\n      <path fill=\"#4caf50\" d=\"M26 6H42V22H26z\" transform=\"rotate(-180 34 14)\" />\n      <path fill=\"#ffc107\" d=\"M26 26H42V42H26z\" transform=\"rotate(-180 34 34)\" />\n      <path fill=\"#03a9f4\" d=\"M6 26H22V42H6z\" transform=\"rotate(-180 14 34)\" />\n    </svg>\n  `,\n})\n/**\n * The Microsoft logo SVG component.\n */\nexport class MicrosoftLogoComponent {\n  /** The width of the logo. */\n  width = input<string | number>(\"1em\");\n  /** The height of the logo. */\n  height = input<string | number>(\"1em\");\n  /** Optional additional CSS class names. */\n  className = input<string>(\"\");\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 { Component, input, output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OAuthButtonComponent } from \"./oauth-button\";\nimport { injectTranslation } from \"../../provider\";\nimport { OAuthProvider, UserCredential } from \"@angular/fire/auth\";\nimport { MicrosoftLogoComponent } from \"../../components/logos/microsoft\";\n\n@Component({\n  selector: \"fui-microsoft-sign-in-button\",\n  standalone: true,\n  imports: [CommonModule, OAuthButtonComponent, MicrosoftLogoComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <fui-oauth-button [provider]=\"microsoftProvider\" [themed]=\"themed()\" (signIn)=\"signIn.emit($event)\">\n      <fui-microsoft-logo />\n      <span>{{ signInWithMicrosoftLabel() }}</span>\n    </fui-oauth-button>\n  `,\n})\n/**\n * A button component for signing in with Microsoft.\n */\nexport class MicrosoftSignInButtonComponent {\n  signInWithMicrosoftLabel = injectTranslation(\"labels\", \"signInWithMicrosoft\");\n  /** Whether to use themed styling. */\n  themed = input<boolean>(false);\n  /** Event emitter for successful sign-in. */\n  signIn = output<UserCredential>();\n\n  private defaultProvider = new OAuthProvider(\"microsoft.com\");\n\n  /** Optional custom OAuth provider configuration. */\n  provider = input<OAuthProvider>();\n\n  get microsoftProvider() {\n    return this.provider() || this.defaultProvider;\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\n// GENERATED BY generate-logos.ts\n\nimport { Component, input } from \"@angular/core\";\n\n@Component({\n  selector: \"fui-twitter-logo\",\n  standalone: true,\n  template: `\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 30\" fill=\"currentColor\" class=\"fui-provider__icon\">\n      <path\n        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\"\n      />\n    </svg>\n  `,\n})\n/**\n * The Twitter logo SVG component.\n */\nexport class TwitterLogoComponent {\n  /** The width of the logo. */\n  width = input<string | number>(\"1em\");\n  /** The height of the logo. */\n  height = input<string | number>(\"1em\");\n  /** Optional additional CSS class names. */\n  className = input<string>(\"\");\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 { Component, input, output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OAuthButtonComponent } from \"./oauth-button\";\nimport { injectTranslation } from \"../../provider\";\nimport { TwitterAuthProvider, UserCredential } from \"@angular/fire/auth\";\nimport { TwitterLogoComponent } from \"../../components/logos/twitter\";\n\n@Component({\n  selector: \"fui-twitter-sign-in-button\",\n  standalone: true,\n  imports: [CommonModule, OAuthButtonComponent, TwitterLogoComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <fui-oauth-button [provider]=\"twitterProvider\" [themed]=\"themed()\" (signIn)=\"signIn.emit($event)\">\n      <fui-twitter-logo />\n      <span>{{ signInWithTwitterLabel() }}</span>\n    </fui-oauth-button>\n  `,\n})\n/**\n * A button component for signing in with Twitter/X.\n */\nexport class TwitterSignInButtonComponent {\n  signInWithTwitterLabel = injectTranslation(\"labels\", \"signInWithTwitter\");\n  /** Whether to use themed styling. */\n  themed = input<boolean>(false);\n  /** Event emitter for successful sign-in. */\n  signIn = output<UserCredential>();\n\n  private defaultProvider = new TwitterAuthProvider();\n\n  /** Optional custom OAuth provider configuration. */\n  provider = input<TwitterAuthProvider>();\n\n  get twitterProvider() {\n    return this.provider() || this.defaultProvider;\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\n// GENERATED BY generate-logos.ts\n\nimport { Component, input } from \"@angular/core\";\n\n@Component({\n  selector: \"fui-yahoo-logo\",\n  standalone: true,\n  template: `\n    <svg\n      fill=\"currentColor\"\n      version=\"1.1\"\n      id=\"Layer_1\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n      viewBox=\"-271 324 256 153\"\n      xml:space=\"preserve\"\n      class=\"fui-provider__icon\"\n    >\n      <g>\n        <path\n          d=\"M-37.5,356.3c0.1,0,0.2,0,0.2,0l7.1-10.3c-0.1,0-0.3,0-0.4,0l0.7-1.1h-99.9l3.9,15.7h27.3l-46,41.5\n\t\tc-9.4-13-31.4-39.9-46.7-62.3h34.4v-12l0.4-2.6c-0.1,0-0.3-0.1-0.4-0.1V324H-271v15.8h33.8c13.1,10.3,63.4,73,65.4,79.2\n\t\tc0.8,5.9,1.6,40.4-0.9,43c-4.9,5.2-27.5,3.8-32.9,4.2l-1.9,10.7c9.9,0.3,42.2-0.8,52.2-0.8c19.8,0,54.4-0.1,59.3,0.3l0.6-11.2\n\t\tc-5-0.8-32.3-0.1-36-1c-0.8-5.4-1.7-41.8-0.9-45.6c3.9-10.9,61.2-55.1,67.5-56.8c1.4-0.3,3.5-0.8,5.9-1.3h18.5L-37.5,356.3z\"\n        />\n        <path d=\"M-48.2,447.8l15.3,1.2l17.9-69c-3-0.1-30.1-2.7-33.6-3.3L-48.2,447.8z\" />\n        <polygon points=\"-50.8,458.9 -50.7,475.7 -43,476.4 -34.6,477 -32.1,460.5 -41,460.1 \t\" />\n      </g>\n    </svg>\n  `,\n})\n/**\n * The Yahoo logo SVG component.\n */\nexport class YahooLogoComponent {\n  /** The width of the logo. */\n  width = input<string | number>(\"1em\");\n  /** The height of the logo. */\n  height = input<string | number>(\"1em\");\n  /** Optional additional CSS class names. */\n  className = input<string>(\"\");\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 { Component, input, output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { OAuthButtonComponent } from \"./oauth-button\";\nimport { injectTranslation } from \"../../provider\";\nimport { OAuthProvider, UserCredential } from \"@angular/fire/auth\";\nimport { YahooLogoComponent } from \"../../components/logos/yahoo\";\n\n@Component({\n  selector: \"fui-yahoo-sign-in-button\",\n  standalone: true,\n  imports: [CommonModule, OAuthButtonComponent, YahooLogoComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <fui-oauth-button [provider]=\"yahooProvider\" [themed]=\"themed()\" (signIn)=\"signIn.emit($event)\">\n      <fui-yahoo-logo />\n      <span>{{ signInWithYahooLabel() }}</span>\n    </fui-oauth-button>\n  `,\n})\n/**\n * A button component for signing in with Yahoo.\n */\nexport class YahooSignInButtonComponent {\n  signInWithYahooLabel = injectTranslation(\"labels\", \"signInWithYahoo\");\n  /** Whether to use themed styling. */\n  themed = input<boolean>(false);\n  /** Event emitter for successful sign-in. */\n  signIn = output<UserCredential>();\n\n  private defaultProvider = new OAuthProvider(\"yahoo.com\");\n\n  /** Optional custom OAuth provider configuration. */\n  provider = input<OAuthProvider>();\n\n  get yahooProvider() {\n    return this.provider() || this.defaultProvider;\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 { Component } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n  selector: \"fui-card\",\n  standalone: true,\n  imports: [],\n  host: {\n    class: \"fui-card\",\n    style: \"display: block;\",\n  },\n  template: `\n    <ng-content select=\"fui-card-header\"></ng-content>\n    <ng-content select=\"fui-card-content\"></ng-content>\n  `,\n})\n/**\n * A card container component for grouping related content.\n */\nexport class CardComponent {}\n\n@Component({\n  selector: \"fui-card-header\",\n  standalone: true,\n  imports: [CommonModule],\n  host: {\n    class: \"fui-card__header\",\n    style: \"display: block;\",\n  },\n  template: `\n    <ng-content select=\"fui-card-title\"></ng-content>\n    <ng-content select=\"fui-card-subtitle\"></ng-content>\n  `,\n})\n/**\n * The header section of a card.\n */\nexport class CardHeaderComponent {}\n\n@Component({\n  selector: \"fui-card-title\",\n  standalone: true,\n  imports: [CommonModule],\n  host: {\n    class: \"fui-card__title\",\n    style: \"display: block;\",\n  },\n  template: `\n    <h2>\n      <ng-content></ng-content>\n    </h2>\n  `,\n})\n/**\n * The title of a card.\n */\nexport class CardTitleComponent {}\n\n@Component({\n  selector: \"fui-card-subtitle\",\n  standalone: true,\n  imports: [CommonModule],\n  host: {\n    class: \"fui-card__subtitle\",\n    style: \"display: block;\",\n  },\n  template: `\n    <p>\n      <ng-content></ng-content>\n    </p>\n  `,\n})\n/**\n * The subtitle of a card.\n */\nexport class CardSubtitleComponent {}\n\n@Component({\n  selector: \"fui-card-content\",\n  standalone: true,\n  imports: [CommonModule],\n  host: {\n    class: \"fui-card__content\",\n    style: \"display: block;\",\n  },\n  template: ` <ng-content></ng-content> `,\n})\n/**\n * The content section of a card.\n */\nexport class CardContentComponent {}\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 { Component, Output, EventEmitter } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { UserCredential } from \"@angular/fire/auth\";\nimport { injectTranslation } from \"../../provider\";\nimport { MultiFactorAuthAssertionFormComponent } from \"../forms/multi-factor-auth-assertion-form\";\nimport {\n  CardComponent,\n  CardHeaderComponent,\n  CardTitleComponent,\n  CardSubtitleComponent,\n  CardContentComponent,\n} from \"../../components/card\";\n\n@Component({\n  selector: \"fui-multi-factor-auth-assertion-screen\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    CardComponent,\n    CardHeaderComponent,\n    CardTitleComponent,\n    CardSubtitleComponent,\n    CardContentComponent,\n    MultiFactorAuthAssertionFormComponent,\n  ],\n  template: `\n    <div class=\"fui-screen\">\n      <fui-card>\n        <fui-card-header>\n          <fui-card-title>{{ titleText() }}</fui-card-title>\n          <fui-card-subtitle>{{ subtitleText() }}</fui-card-subtitle>\n        </fui-card-header>\n        <fui-card-content>\n          <fui-multi-factor-auth-assertion-form (onSuccess)=\"onSuccess.emit($event)\" />\n        </fui-card-content>\n      </fui-card>\n    </div>\n  `,\n})\n/**\n * A screen component for multi-factor authentication assertion.\n *\n * Displays the MFA assertion form for completing multi-factor verification.\n */\nexport class MultiFactorAuthAssertionScreenComponent {\n  /** Event emitter for successful MFA assertion. */\n  @Output() onSuccess = new EventEmitter<UserCredential>();\n\n  titleText = injectTranslation(\"labels\", \"multiFactorAssertion\");\n  subtitleText = injectTranslation(\"prompts\", \"mfaAssertionPrompt\");\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 *     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 { Component } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { injectRedirectError } from \"../provider\";\n\n@Component({\n  selector: \"fui-redirect-error\",\n  standalone: true,\n  imports: [CommonModule],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    @if (error()) {\n      <div class=\"fui-error\">{{ error() }}</div>\n    }\n  `,\n})\n/**\n * A component that displays redirect error messages.\n *\n * Shows errors that occurred during OAuth redirect flows.\n */\nexport class RedirectErrorComponent {\n  error = injectRedirectError();\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 { Component, Output, EventEmitter, computed } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport {\n  CardComponent,\n  CardHeaderComponent,\n  CardTitleComponent,\n  CardSubtitleComponent,\n  CardContentComponent,\n} from \"../../components/card\";\nimport { injectTranslation, injectUI, injectUserAuthenticated } from \"../../provider\";\nimport { EmailLinkAuthFormComponent } from \"../forms/email-link-auth-form\";\nimport { MultiFactorAuthAssertionScreenComponent } from \"../screens/multi-factor-auth-assertion-screen\";\nimport { RedirectErrorComponent } from \"../../components/redirect-error\";\nimport { User } from \"@angular/fire/auth\";\n\n@Component({\n  selector: \"fui-email-link-auth-screen\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    CardComponent,\n    CardHeaderComponent,\n    CardTitleComponent,\n    CardSubtitleComponent,\n    CardContentComponent,\n    EmailLinkAuthFormComponent,\n    MultiFactorAuthAssertionScreenComponent,\n    RedirectErrorComponent,\n  ],\n  template: `\n    @if (mfaResolver()) {\n      <fui-multi-factor-auth-assertion-screen />\n    } @else {\n      <div class=\"fui-screen\">\n        <fui-card>\n          <fui-card-header>\n            <fui-card-title>{{ titleText() }}</fui-card-title>\n            <fui-card-subtitle>{{ subtitleText() }}</fui-card-subtitle>\n          </fui-card-header>\n          <fui-card-content>\n            <fui-email-link-auth-form (emailSent)=\"emailSent.emit()\" (signIn)=\"signIn.emit($event.user)\" />\n            <ng-content></ng-content>\n            <fui-redirect-error />\n          </fui-card-content>\n        </fui-card>\n      </div>\n    }\n  `,\n})\n/**\n * A screen component for email link authentication.\n *\n * Automatically displays the MFA assertion screen if a multi-factor resolver is present.\n */\nexport class EmailLinkAuthScreenComponent {\n  private ui = injectUI();\n\n  mfaResolver = computed(() => this.ui().multiFactorResolver);\n\n  titleText = injectTranslation(\"labels\", \"signIn\");\n  subtitleText = injectTranslation(\"prompts\", \"signInToAccount\");\n\n  constructor() {\n    injectUserAuthenticated((user) => {\n      this.signIn.emit(user);\n    });\n  }\n\n  /** Event emitter fired when sign-in link email is sent. */\n  @Output() emailSent = new EventEmitter<void>();\n  /** Event emitter for successful sign-in. */\n  @Output() signIn = new EventEmitter<User>();\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 { Component, Output, EventEmitter } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport {\n  CardComponent,\n  CardHeaderComponent,\n  CardTitleComponent,\n  CardSubtitleComponent,\n  CardContentComponent,\n} from \"../../components/card\";\nimport { injectTranslation } from \"../../provider\";\nimport { ForgotPasswordAuthFormComponent } from \"../forms/forgot-password-auth-form\";\n\n@Component({\n  selector: \"fui-forgot-password-auth-screen\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    CardComponent,\n    CardHeaderComponent,\n    CardTitleComponent,\n    CardSubtitleComponent,\n    CardContentComponent,\n    ForgotPasswordAuthFormComponent,\n  ],\n  template: `\n    <div class=\"fui-screen\">\n      <fui-card>\n        <fui-card-header>\n          <fui-card-title>{{ titleText() }}</fui-card-title>\n          <fui-card-subtitle>{{ subtitleText() }}</fui-card-subtitle>\n        </fui-card-header>\n        <fui-card-content>\n          <fui-forgot-password-auth-form [backToSignIn]=\"backToSignIn\" (passwordSent)=\"passwordSent.emit()\" />\n        </fui-card-content>\n      </fui-card>\n    </div>\n  `,\n})\n/**\n * A screen component for requesting a password reset.\n */\nexport class ForgotPasswordAuthScreenComponent {\n  titleText = injectTranslation(\"labels\", \"resetPassword\");\n  subtitleText = injectTranslation(\"prompts\", \"enterEmailToReset\");\n\n  /** Event emitter fired when password reset email is sent. */\n  @Output() passwordSent = new EventEmitter<void>();\n  /** Event emitter for back to sign in action. */\n  @Output() backToSignIn = new EventEmitter<void>();\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 { Component, Output, EventEmitter, input } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FactorId } from \"firebase/auth\";\nimport { injectTranslation } from \"../../provider\";\nimport { MultiFactorAuthEnrollmentFormComponent } from \"../forms/multi-factor-auth-enrollment-form\";\nimport {\n  CardComponent,\n  CardHeaderComponent,\n  CardTitleComponent,\n  CardSubtitleComponent,\n  CardContentComponent,\n} from \"../../components/card\";\n\ntype Hint = (typeof FactorId)[keyof typeof FactorId];\n\n@Component({\n  selector: \"fui-multi-factor-auth-enrollment-screen\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    CardComponent,\n    CardHeaderComponent,\n    CardTitleComponent,\n    CardSubtitleComponent,\n    CardContentComponent,\n    MultiFactorAuthEnrollmentFormComponent,\n  ],\n  template: `\n    <div class=\"fui-screen\">\n      <fui-card>\n        <fui-card-header>\n          <fui-card-title>{{ titleText() }}</fui-card-title>\n          <fui-card-subtitle>{{ subtitleText() }}</fui-card-subtitle>\n        </fui-card-header>\n        <fui-card-content>\n          <fui-multi-factor-auth-enrollment-form [hints]=\"hints()\" (onEnrollment)=\"onEnrollment.emit()\" />\n        </fui-card-content>\n      </fui-card>\n    </div>\n  `,\n})\n/**\n * A screen component for multi-factor authentication enrollment.\n *\n * Displays the MFA enrollment form for setting up multi-factor authentication.\n */\nexport class MultiFactorAuthEnrollmentScreenComponent {\n  /** The available MFA factor types for enrollment. */\n  hints = input<Hint[]>([FactorId.TOTP, FactorId.PHONE]);\n  /** Event emitter fired when MFA enrollment is completed. */\n  @Output() onEnrollment = new EventEmitter<void>();\n\n  titleText = injectTranslation(\"labels\", \"multiFactorEnrollment\");\n  subtitleText = injectTranslation(\"prompts\", \"mfaEnrollmentPrompt\");\n}\n","/**\n * Copyright 2026 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 { CommonModule } from \"@angular/common\";\nimport { Component, HostListener } from \"@angular/core\";\nimport { ButtonComponent } from \"./button\";\nimport { injectClearLegacySignInRecovery, injectLegacySignInRecovery, injectTranslation } from \"../provider\";\nimport { AppleSignInButtonComponent } from \"../auth/oauth/apple-sign-in-button\";\nimport { FacebookSignInButtonComponent } from \"../auth/oauth/facebook-sign-in-button\";\nimport { GitHubSignInButtonComponent } from \"../auth/oauth/github-sign-in-button\";\nimport { GoogleSignInButtonComponent } from \"../auth/oauth/google-sign-in-button\";\nimport { MicrosoftSignInButtonComponent } from \"../auth/oauth/microsoft-sign-in-button\";\nimport { TwitterSignInButtonComponent } from \"../auth/oauth/twitter-sign-in-button\";\nimport { YahooSignInButtonComponent } from \"../auth/oauth/yahoo-sign-in-button\";\n\n@Component({\n  selector: \"fui-legacy-sign-in-recovery\",\n  standalone: true,\n  imports: [\n    CommonModule,\n    ButtonComponent,\n    AppleSignInButtonComponent,\n    FacebookSignInButtonComponent,\n    GitHubSignInButtonComponent,\n    GoogleSignInButtonComponent,\n    MicrosoftSignInButtonComponent,\n    TwitterSignInButtonComponent,\n    YahooSignInButtonComponent,\n  ],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    @if (recovery()) {\n      <div class=\"fui-legacy-sign-in-recovery-modal\" (click)=\"handleBackdropClick($event)\">\n        <div\n          [attr.aria-label]=\"selectMethodLabel()\"\n          aria-modal=\"true\"\n          class=\"fui-legacy-sign-in-recovery-modal__card fui-card\"\n          role=\"dialog\"\n        >\n          <div class=\"fui-legacy-sign-in-recovery-modal__eyebrow\">{{ accountFoundLabel() }}</div>\n          <div class=\"fui-legacy-sign-in-recovery-modal__content\">\n            <p class=\"fui-legacy-sign-in-recovery-modal__prompt\">{{ recoveryPromptLabel() }}</p>\n            <p class=\"fui-card__subtitle\">{{ selectMethodLabel() }}</p>\n          </div>\n          <div class=\"fui-screen__children\">\n            @if (canOfferMethod(\"google.com\")) {\n              <fui-google-sign-in-button (signIn)=\"clearRecovery()\" />\n            }\n            @if (canOfferMethod(\"github.com\")) {\n              <fui-github-sign-in-button (signIn)=\"clearRecovery()\" />\n            }\n            @if (canOfferMethod(\"facebook.com\")) {\n              <fui-facebook-sign-in-button (signIn)=\"clearRecovery()\" />\n            }\n            @if (canOfferMethod(\"apple.com\")) {\n              <fui-apple-sign-in-button (signIn)=\"clearRecovery()\" />\n            }\n            @if (canOfferMethod(\"microsoft.com\")) {\n              <fui-microsoft-sign-in-button (signIn)=\"clearRecovery()\" />\n            }\n            @if (canOfferMethod(\"twitter.com\")) {\n              <fui-twitter-sign-in-button (signIn)=\"clearRecovery()\" />\n            }\n            @if (canOfferMethod(\"yahoo.com\")) {\n              <fui-yahoo-sign-in-button (signIn)=\"clearRecovery()\" />\n            }\n          </div>\n          <div class=\"fui-legacy-sign-in-recovery-modal__notes\">\n            @if (hasMethod(\"password\")) {\n              <p>{{ emailPasswordLabel() }}</p>\n            }\n            @if (hasMethod(\"emailLink\")) {\n              <p>{{ emailLinkLabel() }}</p>\n            }\n          </div>\n          <button fui-button type=\"button\" variant=\"secondary\" (click)=\"clearRecovery()\">\n            {{ dismissLabel() }}\n          </button>\n        </div>\n      </div>\n    }\n  `,\n})\n/**\n * Displays default recovery UI for legacy sign-in method suggestions.\n */\nexport class LegacySignInRecoveryComponent {\n  recovery = injectLegacySignInRecovery();\n  private clearLegacyRecovery = injectClearLegacySignInRecovery();\n  accountFoundText = injectTranslation(\"messages\", \"legacySignInRecoveryAccountFound\" as never);\n  recoveryPromptTemplate = injectTranslation(\"messages\", \"legacySignInRecoveryPrompt\" as never);\n  selectMethodText = injectTranslation(\"messages\", \"legacySignInRecoverySelectMethod\" as never);\n  emailPasswordText = injectTranslation(\"messages\", \"legacySignInRecoveryEmailPassword\" as never);\n  emailLinkText = injectTranslation(\"messages\", \"legacySignInRecoveryEmailLink\" as never);\n  dismissText = injectTranslation(\"labels\", \"dismiss\" as never);\n\n  accountFoundLabel() {\n    return this.accountFoundText();\n  }\n\n  recoveryPromptLabel() {\n    const recovery = this.recovery();\n    if (!recovery) {\n      return \"\";\n    }\n\n    return this.recoveryPromptTemplate().replace(\"{email}\", recovery.email);\n  }\n\n  selectMethodLabel() {\n    return this.selectMethodText();\n  }\n\n  emailPasswordLabel() {\n    return this.emailPasswordText();\n  }\n\n  emailLinkLabel() {\n    return this.emailLinkText();\n  }\n\n  dismissLabel() {\n    return this.dismissText();\n  }\n\n  hasMethod(method: string) {\n    return this.recovery()?.signInMethods.includes(method) ?? false;\n  }\n\n  /**\n   * Whether an OAuth sign-in button should be offered for `method`.\n   *\n   * Excludes `attemptedProviderId` defensively so the recovery UI never re-offers the exact\n   * provider the user just failed with, even if Firebase's API were to include it in\n   * `signInMethods` under some edge case.\n   */\n  canOfferMethod(method: string) {\n    const recovery = this.recovery();\n    return (recovery?.signInMethods.includes(method) ?? false) && method !== recovery?.attemptedProviderId;\n  }\n\n  clearRecovery() {\n    this.clearLegacyRecovery();\n  }\n\n  handleBackdropClick(event: MouseEvent) {\n    if (event.target === event.currentTarget) {\n      this.clearRecovery();\n    }\n  }\n\n  @HostListener(\"document:keydown.escape\")\n  onEscapeKey() {\n    if (this.recovery()) {\n      this.clearRecovery();\n    }\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 { Component, computed, Output, EventEmitter, input } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport {\n  CardComponent,\n  CardHeaderComponent,\n  CardTitleComponent,\n  CardSubtitleComponent,\n  CardContentComponent,\n} from \"../../components/card\";\nimport { injectTranslation, injectUI, injectUserAuthenticated } from \"../../provider\";\nimport { PoliciesComponent } from \"../../components/policies\";\nimport { MultiFactorAuthAssertionScreenComponent } from \"../screens/multi-factor-auth-assertion-screen\";\nimport { RedirectErrorComponent } from \"../../components/redirect-error\";\nimport { LegacySignInRecoveryComponent } from \"../../components/legacy-sign-in-recovery\";\nimport { type User } from \"@angular/fire/auth\";\n\n@Component({\n  selector: \"fui-oauth-screen\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    CardComponent,\n    CardHeaderComponent,\n    CardTitleComponent,\n    CardSubtitleComponent,\n    CardContentComponent,\n    PoliciesComponent,\n    MultiFactorAuthAssertionScreenComponent,\n    RedirectErrorComponent,\n    LegacySignInRecoveryComponent,\n  ],\n  template: `\n    @if (mfaResolver()) {\n      <fui-multi-factor-auth-assertion-screen />\n    } @else {\n      <div class=\"fui-screen\">\n        <fui-card>\n          <fui-card-header>\n            <fui-card-title>{{ titleText() }}</fui-card-title>\n            <fui-card-subtitle>{{ subtitleText() }}</fui-card-subtitle>\n          </fui-card-header>\n          <fui-card-content>\n            <div class=\"fui-screen__children\">\n              <ng-content></ng-content>\n              @if (showLegacySignInRecovery()) {\n                <fui-legacy-sign-in-recovery />\n              }\n              <fui-redirect-error />\n              <fui-policies />\n            </div>\n          </fui-card-content>\n        </fui-card>\n      </div>\n    }\n  `,\n})\n/**\n * A screen component for OAuth authentication.\n *\n * Automatically displays the MFA assertion screen if a multi-factor resolver is present.\n * Use this screen to display OAuth sign-in buttons.\n */\nexport class OAuthScreenComponent {\n  private ui = injectUI();\n  /** Whether to show the built-in legacy sign-in recovery UI. Defaults to `false`; opt in explicitly. */\n  showLegacySignInRecovery = input(false);\n\n  mfaResolver = computed(() => this.ui().multiFactorResolver);\n\n  titleText = injectTranslation(\"labels\", \"signIn\");\n  subtitleText = injectTranslation(\"prompts\", \"signInToAccount\");\n\n  constructor() {\n    injectUserAuthenticated((user) => {\n      this.onSignIn.emit(user);\n    });\n  }\n\n  /** Event emitter for successful sign-in. */\n  @Output() onSignIn = new EventEmitter<User>();\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 { Component, input, Output, EventEmitter, computed } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport {\n  CardComponent,\n  CardHeaderComponent,\n  CardTitleComponent,\n  CardSubtitleComponent,\n  CardContentComponent,\n} from \"../../components/card\";\nimport { injectTranslation, injectUI, injectUserAuthenticated } from \"../../provider\";\nimport { PhoneAuthFormComponent } from \"../forms/phone-auth-form\";\nimport { MultiFactorAuthAssertionScreenComponent } from \"../screens/multi-factor-auth-assertion-screen\";\nimport { RedirectErrorComponent } from \"../../components/redirect-error\";\nimport { User } from \"@angular/fire/auth\";\n\n@Component({\n  selector: \"fui-phone-auth-screen\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    CardComponent,\n    CardHeaderComponent,\n    CardTitleComponent,\n    CardSubtitleComponent,\n    CardContentComponent,\n    PhoneAuthFormComponent,\n    MultiFactorAuthAssertionScreenComponent,\n    RedirectErrorComponent,\n  ],\n  template: `\n    @if (mfaResolver()) {\n      <fui-multi-factor-auth-assertion-screen />\n    } @else {\n      <div class=\"fui-screen\">\n        <fui-card>\n          <fui-card-header>\n            <fui-card-title>{{ titleText() }}</fui-card-title>\n            <fui-card-subtitle>{{ subtitleText() }}</fui-card-subtitle>\n          </fui-card-header>\n          <fui-card-content>\n            <fui-phone-auth-form (signIn)=\"signIn.emit($event.user)\" />\n            <ng-content />\n            <fui-redirect-error />\n          </fui-card-content>\n        </fui-card>\n      </div>\n    }\n  `,\n})\n/**\n * A screen component for phone number authentication.\n *\n * Automatically displays the MFA assertion screen if a multi-factor resolver is present.\n */\nexport class PhoneAuthScreenComponent {\n  private ui = injectUI();\n\n  mfaResolver = computed(() => this.ui().multiFactorResolver);\n\n  titleText = injectTranslation(\"labels\", \"signIn\");\n  subtitleText = injectTranslation(\"prompts\", \"signInToAccount\");\n\n  constructor() {\n    injectUserAuthenticated((user) => {\n      this.signIn.emit(user);\n    });\n  }\n\n  /** Event emitter for successful sign-in. */\n  @Output() signIn = new EventEmitter<User>();\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 { Component, Output, EventEmitter, computed, input } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { injectTranslation, injectUI, injectUserAuthenticated } from \"../../provider\";\nimport { SignInAuthFormComponent } from \"../forms/sign-in-auth-form\";\nimport { MultiFactorAuthAssertionScreenComponent } from \"../screens/multi-factor-auth-assertion-screen\";\nimport { RedirectErrorComponent } from \"../../components/redirect-error\";\nimport { LegacySignInRecoveryComponent } from \"../../components/legacy-sign-in-recovery\";\nimport {\n  CardComponent,\n  CardHeaderComponent,\n  CardTitleComponent,\n  CardSubtitleComponent,\n  CardContentComponent,\n} from \"../../components/card\";\nimport { Auth, authState, User, UserCredential } from \"@angular/fire/auth\";\n@Component({\n  selector: \"fui-sign-in-auth-screen\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    CardComponent,\n    CardHeaderComponent,\n    CardTitleComponent,\n    CardSubtitleComponent,\n    CardContentComponent,\n    SignInAuthFormComponent,\n    MultiFactorAuthAssertionScreenComponent,\n    RedirectErrorComponent,\n    LegacySignInRecoveryComponent,\n  ],\n  template: `\n    @if (mfaResolver()) {\n      <fui-multi-factor-auth-assertion-screen />\n    } @else {\n      <div class=\"fui-screen\">\n        <fui-card>\n          <fui-card-header>\n            <fui-card-title>{{ titleText() }}</fui-card-title>\n            <fui-card-subtitle>{{ subtitleText() }}</fui-card-subtitle>\n          </fui-card-header>\n          <fui-card-content>\n            <fui-sign-in-auth-form [forgotPassword]=\"forgotPassword\" [signUp]=\"signUp\" />\n            @if (showLegacySignInRecovery()) {\n              <fui-legacy-sign-in-recovery />\n            }\n            <ng-content />\n            <fui-redirect-error />\n          </fui-card-content>\n        </fui-card>\n      </div>\n    }\n  `,\n})\n/**\n * A screen component for email/password sign-in.\n *\n * Automatically displays the MFA assertion screen if a multi-factor resolver is present.\n */\nexport class SignInAuthScreenComponent {\n  private ui = injectUI();\n  /** Whether to show the built-in legacy sign-in recovery UI. Defaults to `false`; opt in explicitly. */\n  showLegacySignInRecovery = input(false);\n\n  mfaResolver = computed(() => this.ui().multiFactorResolver);\n  titleText = injectTranslation(\"labels\", \"signIn\");\n  subtitleText = injectTranslation(\"prompts\", \"signInToAccount\");\n\n  constructor() {\n    injectUserAuthenticated((user) => {\n      this.signIn.emit(user);\n    });\n  }\n\n  /** Event emitter for forgot password action. */\n  @Output() forgotPassword = new EventEmitter<void>();\n  /** Event emitter for sign up action. */\n  @Output() signUp = new EventEmitter<void>();\n  /** Event emitter for successful sign-in. */\n  @Output() signIn = new EventEmitter<User>();\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 { Component, Output, EventEmitter, computed } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { User } from \"@angular/fire/auth\";\n\nimport { injectTranslation, injectUI, injectUserAuthenticated } from \"../../provider\";\nimport { SignUpAuthFormComponent } from \"../forms/sign-up-auth-form\";\nimport { MultiFactorAuthAssertionScreenComponent } from \"../screens/multi-factor-auth-assertion-screen\";\nimport { RedirectErrorComponent } from \"../../components/redirect-error\";\nimport {\n  CardComponent,\n  CardHeaderComponent,\n  CardTitleComponent,\n  CardSubtitleComponent,\n  CardContentComponent,\n} from \"../../components/card\";\n\n@Component({\n  selector: \"fui-sign-up-auth-screen\",\n  standalone: true,\n  host: {\n    style: \"display: block;\",\n  },\n  imports: [\n    CommonModule,\n    CardComponent,\n    CardHeaderComponent,\n    CardTitleComponent,\n    CardSubtitleComponent,\n    CardContentComponent,\n    SignUpAuthFormComponent,\n    MultiFactorAuthAssertionScreenComponent,\n    RedirectErrorComponent,\n  ],\n  template: `\n    @if (mfaResolver()) {\n      <fui-multi-factor-auth-assertion-screen />\n    } @else {\n      <div class=\"fui-screen\">\n        <fui-card>\n          <fui-card-header>\n            <fui-card-title>{{ titleText() }}</fui-card-title>\n            <fui-card-subtitle>{{ subtitleText() }}</fui-card-subtitle>\n          </fui-card-header>\n          <fui-card-content>\n            <fui-sign-up-auth-form [signIn]=\"signIn\" (signUp)=\"signUp.emit($event.user)\" />\n            <ng-content />\n            <fui-redirect-error />\n          </fui-card-content>\n        </fui-card>\n      </div>\n    }\n  `,\n})\n/**\n * A screen component for email/password sign-up.\n *\n * Automatically displays the MFA assertion screen if a multi-factor resolver is present.\n */\nexport class SignUpAuthScreenComponent {\n  private ui = injectUI();\n\n  mfaResolver = computed(() => this.ui().multiFactorResolver);\n\n  titleText = injectTranslation(\"labels\", \"signUp\");\n  subtitleText = injectTranslation(\"prompts\", \"enterDetailsToCreate\");\n\n  constructor() {\n    injectUserAuthenticated((user) => {\n      this.signUp.emit(user);\n    });\n  }\n\n  /** Event emitter for successful sign-up. */\n  @Output() signUp = new EventEmitter<User>();\n  /** Event emitter for sign in action. */\n  @Output() signIn = new EventEmitter<void>();\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 { Component, input } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n@Component({\n  selector: \"fui-divider\",\n  standalone: true,\n  imports: [CommonModule],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <div class=\"fui-divider my-6\">\n      <div class=\"fui-divider__line\"></div>\n      @if (label()) {\n        <div class=\"fui-divider__text\">{{ label() }}</div>\n        <div class=\"fui-divider__line\"></div>\n      }\n    </div>\n  `,\n})\n/**\n * A divider component that can display a line or a line with text in the middle.\n */\nexport class DividerComponent {\n  /** Optional label text to display in the center of the divider. */\n  label = input<string>();\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 { Component } from \"@angular/core\";\nimport { DividerComponent } from \"./divider\";\nimport { injectTranslation } from \"../provider\";\n\n@Component({\n  selector: \"fui-content\",\n  standalone: true,\n  imports: [DividerComponent],\n  host: {\n    style: \"display: block;\",\n  },\n  template: `\n    <fui-divider [label]=\"dividerOrLabel()\" />\n    <div class=\"fui-screen__children\">\n      <ng-content></ng-content>\n    </div>\n  `,\n})\n/**\n * A content wrapper component that displays a divider and children content.\n */\nexport class ContentComponent {\n  dividerOrLabel = injectTranslation(\"messages\", \"dividerOr\");\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\n/**\n * Package version - this file is auto-generated during build\n * DO NOT EDIT MANUALLY\n */\nexport const VERSION = \"7.1.0\";\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 \"@firebase-oss/ui-core\";\n\nexport { EmailLinkAuthFormComponent } from \"./lib/auth/forms/email-link-auth-form\";\nexport { ForgotPasswordAuthFormComponent } from \"./lib/auth/forms/forgot-password-auth-form\";\nexport { MultiFactorAuthAssertionFormComponent } from \"./lib/auth/forms/multi-factor-auth-assertion-form\";\nexport { MultiFactorAuthEnrollmentFormComponent } from \"./lib/auth/forms/multi-factor-auth-enrollment-form\";\nexport { PhoneAuthFormComponent } from \"./lib/auth/forms/phone-auth-form\";\nexport { SignInAuthFormComponent } from \"./lib/auth/forms/sign-in-auth-form\";\nexport { SignUpAuthFormComponent } from \"./lib/auth/forms/sign-up-auth-form\";\n\nexport {\n  SmsMultiFactorAssertionFormComponent,\n  SmsMultiFactorAssertionPhoneFormComponent,\n  SmsMultiFactorAssertionVerifyFormComponent,\n} from \"./lib/auth/forms/mfa/sms-multi-factor-assertion-form\";\nexport { SmsMultiFactorEnrollmentFormComponent } from \"./lib/auth/forms/mfa/sms-multi-factor-enrollment-form\";\nexport { TotpMultiFactorAssertionFormComponent } from \"./lib/auth/forms/mfa/totp-multi-factor-assertion-form\";\nexport { TotpMultiFactorEnrollmentFormComponent } from \"./lib/auth/forms/mfa/totp-multi-factor-enrollment-form\";\n\nexport { AppleSignInButtonComponent } from \"./lib/auth/oauth/apple-sign-in-button\";\nexport { FacebookSignInButtonComponent } from \"./lib/auth/oauth/facebook-sign-in-button\";\nexport { GitHubSignInButtonComponent } from \"./lib/auth/oauth/github-sign-in-button\";\nexport { GoogleSignInButtonComponent } from \"./lib/auth/oauth/google-sign-in-button\";\nexport { MicrosoftSignInButtonComponent } from \"./lib/auth/oauth/microsoft-sign-in-button\";\nexport { OAuthButtonComponent } from \"./lib/auth/oauth/oauth-button\";\nexport { TwitterSignInButtonComponent } from \"./lib/auth/oauth/twitter-sign-in-button\";\nexport { YahooSignInButtonComponent } from \"./lib/auth/oauth/yahoo-sign-in-button\";\n\nexport { EmailLinkAuthScreenComponent } from \"./lib/auth/screens/email-link-auth-screen\";\nexport { ForgotPasswordAuthScreenComponent } from \"./lib/auth/screens/forgot-password-auth-screen\";\nexport { MultiFactorAuthAssertionScreenComponent } from \"./lib/auth/screens/multi-factor-auth-assertion-screen\";\nexport { MultiFactorAuthEnrollmentScreenComponent } from \"./lib/auth/screens/multi-factor-auth-enrollment-screen\";\nexport { OAuthScreenComponent } from \"./lib/auth/screens/oauth-screen\";\nexport { PhoneAuthScreenComponent } from \"./lib/auth/screens/phone-auth-screen\";\nexport { SignInAuthScreenComponent } from \"./lib/auth/screens/sign-in-auth-screen\";\nexport { SignUpAuthScreenComponent } from \"./lib/auth/screens/sign-up-auth-screen\";\n\nexport { ButtonComponent } from \"./lib/components/button\";\nexport {\n  CardComponent,\n  CardContentComponent,\n  CardHeaderComponent,\n  CardSubtitleComponent,\n  CardTitleComponent,\n} from \"./lib/components/card\";\nexport { ContentComponent } from \"./lib/components/content\";\nexport { CountrySelectorComponent } from \"./lib/components/country-selector\";\nexport { DividerComponent } from \"./lib/components/divider\";\nexport { LegacySignInRecoveryComponent } from \"./lib/components/legacy-sign-in-recovery\";\nexport { PoliciesComponent } from \"./lib/components/policies\";\nexport { RedirectErrorComponent } from \"./lib/components/redirect-error\";\n\n// Provider\nexport * from \"./lib/provider\";\n\n// Register framework version\nimport { VERSION } from \"./version\";\nregisterFramework(\"angular\", VERSION);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}