@firebase-oss/ui-angular 0.0.2-exp.102954a → 0.0.2-exp.3d01948
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/dist/fesm2022/firebase-oss-ui-angular.mjs +226 -172
- package/dist/fesm2022/firebase-oss-ui-angular.mjs.map +1 -1
- package/dist/index.d.ts +48 -48
- package/package.json +35 -35
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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/google.ts","../../src/lib/auth/oauth/google-sign-in-button.ts","../../src/lib/components/logos/facebook.ts","../../src/lib/auth/oauth/facebook-sign-in-button.ts","../../src/lib/components/logos/apple.ts","../../src/lib/auth/oauth/apple-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/github.ts","../../src/lib/auth/oauth/github-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/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/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 { Component, computed, input } from \"@angular/core\";\nimport { AnyFieldApi, 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 (field().state.meta.isTouched && errors().length > 0) {\n <div>\n <div role=\"alert\" aria-live=\"polite\" class=\"fui-error\">\n {{ errors() }}\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 /** The form field API instance. */\n field = input.required<AnyFieldApi>();\n errors = computed(() =>\n this.field()\n .state.meta.errors.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 (blur)=\"field.api.handleBlur()\"\n (input)=\"field.api.handleChange($any($event).target.value)\"\n [type]=\"type()\"\n />\n </div>\n <ng-content></ng-content>\n <fui-form-metadata [field]=\"field.api\"></fui-form-metadata>\n </label>\n `,\n})\n/**\n * A form input component with label, description, and validation support.\n */\nexport class FormInputComponent {\n field = injectField<string>();\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\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]=\"isSubmitting()\">\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\n isSubmitting = computed(() => this.state().isSubmitting);\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 Signal,\n ElementRef,\n Optional,\n PLATFORM_ID,\n} from \"@angular/core\";\nimport { isPlatformBrowser } from \"@angular/common\";\nimport { FirebaseApps } from \"@angular/fire/app\";\nimport { Auth, authState, 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 getTranslation,\n getBehavior,\n type CountryData,\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: () => {\n const apps = inject(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 */\nexport function injectRecaptchaVerifier(element: () => ElementRef<HTMLDivElement>) {\n const ui = injectUI();\n const platformId = inject(PLATFORM_ID);\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 return getBehavior(ui(), \"recaptchaVerification\")(ui(), elementRef.nativeElement);\n });\n\n effect(() => {\n const verifierInstance = verifier();\n if (verifierInstance) {\n verifierInstance.render();\n }\n });\n\n return verifier;\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(category: string, key: string) {\n const ui = injectUI();\n return computed(() => getTranslation(ui(), category as any, key as any));\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 * 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 onBlur: 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() }} →</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 onBlur: 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()\">\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 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 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 onBlur: 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 onBlur: 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()\">\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 onBlur: 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 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 onBlur: 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 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 onBlur: 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 onBlur: 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()\">\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 recaptchaVerifier = injectRecaptchaVerifier(() => this.recaptchaContainer());\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 onBlur: 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 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 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 onBlur: this.formSchema(),\n onSubmitAsync: async ({ value }) => {\n try {\n const credential = await confirmPhoneNumber(this.ui(), this.verificationId(), value.verificationCode);\n this.signIn.emit(credential);\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 onBlur: this.formSchema(),\n onSubmitAsync: async ({ value }) => {\n try {\n const credential = await signInWithEmailAndPassword(this.ui(), value.email, value.password);\n this.signIn.emit(credential);\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 onBlur: 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 this.signUp.emit(credential);\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 this.signIn.emit(credential);\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-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})\nexport class GoogleLogoComponent {\n width = input<string | number>(\"1em\");\n height = input<string | number>(\"1em\");\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-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})\nexport class FacebookLogoComponent {\n width = input<string | number>(\"1em\");\n height = input<string | number>(\"1em\");\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-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})\nexport class AppleLogoComponent {\n width = input<string | number>(\"1em\");\n height = input<string | number>(\"1em\");\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-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})\nexport class MicrosoftLogoComponent {\n width = input<string | number>(\"1em\");\n height = input<string | number>(\"1em\");\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})\nexport class TwitterLogoComponent {\n width = input<string | number>(\"1em\");\n height = input<string | number>(\"1em\");\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-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})\nexport class GithubLogoComponent {\n width = input<string | number>(\"1em\");\n height = input<string | number>(\"1em\");\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\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 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 } 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 { 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 ],\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 <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\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, inject, effect } 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 {\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 ],\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 <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\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\nimport { isDevMode } from \"@angular/core\";\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 { GoogleSignInButtonComponent } from \"./lib/auth/oauth/google-sign-in-button\";\nexport { FacebookSignInButtonComponent } from \"./lib/auth/oauth/facebook-sign-in-button\";\nexport { AppleSignInButtonComponent } from \"./lib/auth/oauth/apple-sign-in-button\";\nexport { MicrosoftSignInButtonComponent } from \"./lib/auth/oauth/microsoft-sign-in-button\";\nexport { TwitterSignInButtonComponent } from \"./lib/auth/oauth/twitter-sign-in-button\";\nexport { GitHubSignInButtonComponent } from \"./lib/auth/oauth/github-sign-in-button\";\nexport { OAuthButtonComponent } from \"./lib/auth/oauth/oauth-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 CardHeaderComponent,\n CardTitleComponent,\n CardSubtitleComponent,\n CardContentComponent,\n} from \"./lib/components/card\";\nexport { CountrySelectorComponent } from \"./lib/components/country-selector\";\nexport { DividerComponent } from \"./lib/components/divider\";\nexport { PoliciesComponent } from \"./lib/components/policies\";\nexport { ContentComponent } from \"./lib/components/content\";\nexport { RedirectErrorComponent } from \"./lib/components/redirect-error\";\n\n// Provider\nexport * from \"./lib/provider\";\n\nif (!isDevMode()) {\n const pkgJson = require(\"../package.json\");\n registerFramework(\"angular\", pkgJson.version);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"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/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/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 { Component, computed, input } from \"@angular/core\";\nimport { AnyFieldApi, 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 (field().state.meta.isTouched && errors().length > 0) {\n <div>\n <div role=\"alert\" aria-live=\"polite\" class=\"fui-error\">\n {{ errors() }}\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 /** The form field API instance. */\n field = input.required<AnyFieldApi>();\n errors = computed(() =>\n this.field()\n .state.meta.errors.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 (blur)=\"field.api.handleBlur()\"\n (input)=\"field.api.handleChange($any($event).target.value)\"\n [type]=\"type()\"\n />\n </div>\n <ng-content></ng-content>\n <fui-form-metadata [field]=\"field.api\"></fui-form-metadata>\n </label>\n `,\n})\n/**\n * A form input component with label, description, and validation support.\n */\nexport class FormInputComponent {\n field = injectField<string>();\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\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]=\"isSubmitting()\">\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\n isSubmitting = computed(() => this.state().isSubmitting);\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 Signal,\n ElementRef,\n Optional,\n PLATFORM_ID,\n} from \"@angular/core\";\nimport { isPlatformBrowser } from \"@angular/common\";\nimport { FirebaseApps } from \"@angular/fire/app\";\nimport { Auth, authState, 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 getTranslation,\n getBehavior,\n type CountryData,\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: () => {\n const apps = inject(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 */\nexport function injectRecaptchaVerifier(element: () => ElementRef<HTMLDivElement>) {\n const ui = injectUI();\n const platformId = inject(PLATFORM_ID);\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 return getBehavior(ui(), \"recaptchaVerification\")(ui(), elementRef.nativeElement);\n });\n\n effect(() => {\n const verifierInstance = verifier();\n if (verifierInstance) {\n verifierInstance.render();\n }\n });\n\n return verifier;\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(category: string, key: string) {\n const ui = injectUI();\n return computed(() => getTranslation(ui(), category as any, key as any));\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 * 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 onBlur: 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() }} →</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 onBlur: 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()\">\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 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 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 onBlur: 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 onBlur: 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()\">\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 onBlur: 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 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 onBlur: 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 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 onBlur: 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 onBlur: 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()\">\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 recaptchaVerifier = injectRecaptchaVerifier(() => this.recaptchaContainer());\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 onBlur: 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 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 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 onBlur: this.formSchema(),\n onSubmitAsync: async ({ value }) => {\n try {\n const credential = await confirmPhoneNumber(this.ui(), this.verificationId(), value.verificationCode);\n this.signIn.emit(credential);\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 onBlur: this.formSchema(),\n onSubmitAsync: async ({ value }) => {\n try {\n const credential = await signInWithEmailAndPassword(this.ui(), value.email, value.password);\n this.signIn.emit(credential);\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 onBlur: 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 this.signUp.emit(credential);\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 this.signIn.emit(credential);\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\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 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 } 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 { 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 ],\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 <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\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, inject, effect } 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 {\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 ],\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 <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\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 = \"0.0.2-exp.3d01948\";\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\";\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 { 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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"}
|