UNPKG

@clerk/shared

Version:

Internal package utils used by the Clerk SDKs

1,394 lines (1,393 loc) 77.3 kB
import { CamelToSnake, DeepPartial } from "./utils.js"; import { FieldId } from "./elementIds.js"; //#region src/types/localization.d.ts /** * @internal * * @example * type PageTitle = LocalizationValue<'name', 'greeting'>; * // ?^ * { * name: string | number | boolean | Date; * greeting: string | number | boolean | Date; * } */ type UnionToRecordWithPrimitives<T extends string> = { [K in T]: string | number | boolean | Date }; type LocalizationValue<T extends string = never, Constraint extends string = string> = [T] extends [never] ? Constraint : Constraint & { __params: UnionToRecordWithPrimitives<T>; }; /** * Recursively transforms a type by replacing all LocalizationValue types with their string representation. * This is useful for creating type-safe localization objects where you want to ensure all values are strings. * * @example * ```typescript * type MyLocalization = { * a: LocalizationValue; // becomes string * b: LocalizationValue<'one'>; // becomes string * c: { * lala: LocalizationValue<'two' | 'three'>; // becomes string * }; * }; * * type StringifiedLocalization = DeepLocalizationWithoutObjects<MyLocalization>; * // Result: * // { * // a: string; * // b: string; * // c: { * // lala: string; * // }; * // } * ``` */ type DeepLocalizationWithoutObjects<T> = { [K in keyof T]: T[K] extends LocalizationValue<any> ? T[K] : T[K] extends object ? DeepLocalizationWithoutObjects<T[K]> : T[K] }; /** * A type containing all the possible localization keys the prebuilt Clerk components support. * Users aiming to customize a few strings can also peak at the `data-localization-key` attribute by inspecting * the DOM and updating the corresponding key. * Users aiming to completely localize the components by providing a complete translation can use * the default english resource object from {@link https://github.com/clerk/javascript Clerk's open source repo} * as a starting point. */ interface LocalizationResource extends DeepPartial<DeepLocalizationWithoutObjects<__internal_LocalizationResource>> {} type __internal_LocalizationResource = { locale: string; maintenanceMode: LocalizationValue; /** * Add Role keys and their localized values, e.g., `roles: { 'org:teacher': 'Teacher'}`. * * @experimental */ roles: { [r: string]: LocalizationValue; }; socialButtonsBlockButton: LocalizationValue<'provider'>; /** * It should be used to provide a shorter variation of `socialButtonsBlockButton`. * It is explicitly typed, in order to avoid contributions that use LLM tools to generate * translations that misinterpret the correct usage of this property. */ socialButtonsBlockButtonManyInView: LocalizationValue<'provider', `${string}{{provider|titleize}}${string}`>; /** Label for the “Last used” badge on authentication strategies. */ lastAuthenticationStrategy: LocalizationValue; dividerText: LocalizationValue; /** Shared strings for search inputs across the components. */ searchInput: { action__clear: LocalizationValue; }; formFieldLabel__emailAddress: LocalizationValue; formFieldLabel__emailAddresses: LocalizationValue; formFieldLabel__phoneNumber: LocalizationValue; formFieldLabel__username: LocalizationValue; formFieldLabel__emailAddress_username: LocalizationValue; formFieldLabel__password: LocalizationValue; formFieldLabel__currentPassword: LocalizationValue; formFieldLabel__newPassword: LocalizationValue; formFieldLabel__confirmPassword: LocalizationValue; formFieldLabel__signOutOfOtherSessions: LocalizationValue; formFieldLabel__automaticInvitations: LocalizationValue; formFieldLabel__firstName: LocalizationValue; formFieldLabel__lastName: LocalizationValue; formFieldLabel__backupCode: LocalizationValue; formFieldLabel__organizationName: LocalizationValue; formFieldLabel__organizationSlug: LocalizationValue; formFieldLabel__organizationDomain: LocalizationValue; formFieldLabel__organizationDomainEmailAddress: LocalizationValue; formFieldLabel__organizationDomainEmailAddressDescription: LocalizationValue; formFieldLabel__organizationDomainDeletePending: LocalizationValue; formFieldLabel__confirmDeletion: LocalizationValue; formFieldLabel__role: LocalizationValue; formFieldLabel__passkeyName: LocalizationValue; formFieldLabel__apiKey: LocalizationValue; formFieldLabel__apiKeyName: LocalizationValue; formFieldLabel__apiKeyDescription: LocalizationValue; formFieldLabel__apiKeyExpiration: LocalizationValue; formFieldInputPlaceholder__emailAddress: LocalizationValue; formFieldInputPlaceholder__emailAddresses: LocalizationValue; formFieldInputPlaceholder__phoneNumber: LocalizationValue; formFieldInputPlaceholder__username: LocalizationValue; formFieldInputPlaceholder__emailAddress_username: LocalizationValue; formFieldInputPlaceholder__password: LocalizationValue; formFieldInputPlaceholder__signUpPassword: LocalizationValue; formFieldInputPlaceholder__firstName: LocalizationValue; formFieldInputPlaceholder__lastName: LocalizationValue; formFieldInputPlaceholder__backupCode: LocalizationValue; formFieldInputPlaceholder__organizationName: LocalizationValue; formFieldInputPlaceholder__organizationSlug: LocalizationValue; formFieldInputPlaceholder__organizationDomain: LocalizationValue; formFieldInputPlaceholder__organizationDomainEmailAddress: LocalizationValue; formFieldInputPlaceholder__confirmDeletionUserAccount: LocalizationValue; formFieldInputPlaceholder__apiKeyName: LocalizationValue; formFieldInputPlaceholder__apiKeyDescription: LocalizationValue; formFieldInputPlaceholder__apiKeyExpirationDate: LocalizationValue; formFieldInput__emailAddress_format: LocalizationValue; formFieldError__notMatchingPasswords: LocalizationValue; formFieldError__matchingPasswords: LocalizationValue; formFieldError__verificationLinkExpired: LocalizationValue; formFieldAction__forgotPassword: LocalizationValue; formFieldHintText__optional: LocalizationValue; formFieldHintText__slug: LocalizationValue; formButtonPrimary: LocalizationValue; formButtonPrimary__verify: LocalizationValue; signInEnterPasswordTitle: LocalizationValue; backButton: LocalizationValue; footerActionLink__useAnotherMethod: LocalizationValue; footerActionLink__alternativePhoneCodeProvider: LocalizationValue; badge__primary: LocalizationValue; badge__thisDevice: LocalizationValue; badge__userDevice: LocalizationValue; badge__otherImpersonatorDevice: LocalizationValue; badge__default: LocalizationValue; badge__unverified: LocalizationValue; badge__requiresAction: LocalizationValue; badge__you: LocalizationValue; badge__banned: LocalizationValue; badge__freeTrial: LocalizationValue; badge__currentPlan: LocalizationValue; badge__upcomingPlan: LocalizationValue; badge__activePlan: LocalizationValue; badge__pastDuePlan: LocalizationValue; badge__startsAt: LocalizationValue<'date'>; badge__pastDueAt: LocalizationValue<'date'>; badge__trialEndsAt: LocalizationValue<'date'>; badge__endsAt: LocalizationValue; badge__expired: LocalizationValue; badge__canceledEndsAt: LocalizationValue<'date'>; badge__renewsAt: LocalizationValue<'date'>; footerPageLink__help: LocalizationValue; footerPageLink__privacy: LocalizationValue; footerPageLink__terms: LocalizationValue; paginationButton__previous: LocalizationValue; paginationButton__next: LocalizationValue; identityPreviewEditButton__emailAddress: LocalizationValue; identityPreviewEditButton__phoneNumber: LocalizationValue; identityPreviewEditButton__identifier: LocalizationValue; paginationRowText__displaying: LocalizationValue; paginationRowText__of: LocalizationValue; membershipRole__admin: LocalizationValue; membershipRole__basicMember: LocalizationValue; membershipRole__guestMember: LocalizationValue; billing: { month: LocalizationValue; monthAbbreviation: LocalizationValue; monthPerUnit: LocalizationValue<'unitName'>; year: LocalizationValue; yearAbbreviation: LocalizationValue; yearPerUnit: LocalizationValue<'unitName'>; free: LocalizationValue; getStarted: LocalizationValue; manage: LocalizationValue; manageSubscription: LocalizationValue; cancelSubscription: LocalizationValue; keepSubscription: LocalizationValue; reSubscribe: LocalizationValue; seats: LocalizationValue; seatsWithLimit: LocalizationValue<'limit'>; seatBreakdownSingular: LocalizationValue<'rate'>; seatBreakdownPlural: LocalizationValue<'chargeable' | 'rate'>; seatBreakdownIncludedSingular: LocalizationValue<'totalSeats' | 'included' | 'rate'>; seatBreakdownIncludedPlural: LocalizationValue<'totalSeats' | 'included' | 'chargeable' | 'rate'>; subscribe: LocalizationValue; startFreeTrial: LocalizationValue; startFreeTrial__days: LocalizationValue<'days'>; switchPlan: LocalizationValue; switchToMonthly: LocalizationValue; switchToAnnual: LocalizationValue; switchToMonthlyWithPrice: LocalizationValue<'price'>; switchToAnnualWithAnnualPrice: LocalizationValue<'price'>; billedAnnually: LocalizationValue; billedMonthly: LocalizationValue; billedMonthlyOnly: LocalizationValue; billedAnnuallyOnly: LocalizationValue; cancelFreeTrial: LocalizationValue<'plan'>; cancelFreeTrialTitle: LocalizationValue<'plan'>; cancelFreeTrialAccessUntil: LocalizationValue<'plan' | 'date'>; keepFreeTrial: LocalizationValue; alwaysFree: LocalizationValue; accountFunds: LocalizationValue; defaultFreePlanActive: LocalizationValue; viewFeatures: LocalizationValue; seeAllFeatures: LocalizationValue; viewPayment: LocalizationValue; availableFeatures: LocalizationValue; subtotal: LocalizationValue; subtotalRenewal: LocalizationValue; credit: LocalizationValue; prorationCredit: LocalizationValue; accountCredit: LocalizationValue; creditRemainder: LocalizationValue; payerCreditRemainder: LocalizationValue; proratedDiscount: LocalizationValue; totalDue: LocalizationValue; totalDueToday: LocalizationValue; totalDuePerPeriod: LocalizationValue; pastDue: LocalizationValue; pay: LocalizationValue<'amount'>; cancelSubscriptionTitle: LocalizationValue<'plan'>; cancelSubscriptionNoCharge: LocalizationValue; cancelSubscriptionAccessUntil: LocalizationValue<'plan' | 'date'>; cancelSubscriptionPastDue: LocalizationValue; highlightedPlanBadge: LocalizationValue; paymentMethods__label: LocalizationValue; addPaymentMethod__label: LocalizationValue; paymentMethod: { dev: { testCardInfo: LocalizationValue; developmentMode: LocalizationValue; cardNumber: LocalizationValue; expirationDate: LocalizationValue; cvcZip: LocalizationValue; anyNumbers: LocalizationValue; }; applePayDescription: { monthly: LocalizationValue; annual: LocalizationValue; }; }; subscriptionDetails: { title: LocalizationValue; currentBillingCycle: LocalizationValue; nextPaymentOn: LocalizationValue; nextPaymentAmount: LocalizationValue; firstPaymentOn: LocalizationValue; firstPaymentAmount: LocalizationValue; subscribedOn: LocalizationValue; trialStartedOn: LocalizationValue; trialEndsOn: LocalizationValue; endsOn: LocalizationValue; renewsAt: LocalizationValue; beginsOn: LocalizationValue; pastDueAt: LocalizationValue; }; monthly: LocalizationValue; annually: LocalizationValue; cannotSubscribeMonthly: LocalizationValue; cannotSubscribeUnrecoverable: LocalizationValue; pricingTable: { billingCycle: LocalizationValue; included: LocalizationValue; seatCost: { freeUpToSeats: LocalizationValue<'endsAfterBlock'>; upToSeats: LocalizationValue<'endsAfterBlock'>; perSeat: LocalizationValue<'feePerBlockAmount' | 'periodAbbreviation'>; includedSeats: LocalizationValue<'includedSeats'>; additionalSeats: LocalizationValue<'additionalTierFeePerBlockAmount' | 'periodAbbreviation'>; unlimitedSeats: LocalizationValue; tooltip: { freeForUpToSeats: LocalizationValue<'endsAfterBlock'>; additionalSeatsEach: LocalizationValue<'feePerBlockAmount' | 'period'>; firstSeatsIncludedInPlan: LocalizationValue<'endsAfterBlock'>; }; }; }; checkout: { title: LocalizationValue; title__paymentSuccessful: LocalizationValue; title__subscriptionSuccessful: LocalizationValue; title__trialSuccess: LocalizationValue; description__paymentSuccessful: LocalizationValue; description__subscriptionSuccessful: LocalizationValue; lineItems: { title__totalPaid: LocalizationValue; title__freeTrialEndsAt: LocalizationValue; title__paymentMethod: LocalizationValue; title__statementId: LocalizationValue; title__subscriptionBegins: LocalizationValue; }; emailForm: { title: LocalizationValue; subtitle: LocalizationValue; }; downgradeNotice: LocalizationValue; pastDueNotice: LocalizationValue; totalDueAfterTrial: LocalizationValue<'days'>; totalDuePerPeriod: LocalizationValue; perMonth: LocalizationValue; }; }; signUp: { start: { title: LocalizationValue; titleCombined: LocalizationValue; subtitle: LocalizationValue; subtitleCombined: LocalizationValue; actionText: LocalizationValue; actionLink: LocalizationValue; actionLink__use_phone: LocalizationValue; actionLink__use_email: LocalizationValue; alternativePhoneCodeProvider: { actionLink: LocalizationValue; label: LocalizationValue<'provider'>; subtitle: LocalizationValue<'provider'>; title: LocalizationValue<'provider'>; }; }; emailLink: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; formSubtitle: LocalizationValue; resendButton: LocalizationValue; verified: { title: LocalizationValue; }; loading: { title: LocalizationValue; }; verifiedSwitchTab: { title: LocalizationValue; subtitle: LocalizationValue; subtitleNewTab: LocalizationValue; }; clientMismatch: { title: LocalizationValue; subtitle: LocalizationValue; }; }; emailCode: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; formSubtitle: LocalizationValue; resendButton: LocalizationValue; }; phoneCode: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; formSubtitle: LocalizationValue; resendButton: LocalizationValue; }; alternativePhoneCodeProvider: { formSubtitle: LocalizationValue; formTitle: LocalizationValue; resendButton: LocalizationValue; subtitle: LocalizationValue<'provider'>; title: LocalizationValue<'provider'>; }; continue: { title: LocalizationValue; subtitle: LocalizationValue; actionText: LocalizationValue; actionLink: LocalizationValue; }; restrictedAccess: { title: LocalizationValue; subtitle: LocalizationValue; subtitleWaitlist: LocalizationValue; actionLink: LocalizationValue; actionText: LocalizationValue; blockButton__emailSupport: LocalizationValue; blockButton__joinWaitlist: LocalizationValue; }; legalConsent: { continue: { title: LocalizationValue; subtitle: LocalizationValue; }; checkbox: { label__termsOfServiceAndPrivacyPolicy: LocalizationValue<'termsOfServiceLink' | 'privacyPolicyLink'>; label__onlyPrivacyPolicy: LocalizationValue<'privacyPolicyLink'>; label__onlyTermsOfService: LocalizationValue<'termsOfServiceLink'>; }; }; enterpriseConnections: { title: LocalizationValue; subtitle: LocalizationValue; }; web3Solana: { title: LocalizationValue; subtitle: LocalizationValue; noAvailableWallets: LocalizationValue; }; protectCheck: { title: LocalizationValue; subtitle: LocalizationValue; loading: LocalizationValue; retryButton: LocalizationValue; }; }; signIn: { start: { title: LocalizationValue; titleCombined: LocalizationValue; subtitle: LocalizationValue; subtitleCombined: LocalizationValue; actionText: LocalizationValue; actionLink: LocalizationValue; actionLink__use_email: LocalizationValue; actionLink__use_phone: LocalizationValue; actionLink__use_username: LocalizationValue; actionLink__use_email_username: LocalizationValue; actionLink__use_passkey: LocalizationValue; actionText__join_waitlist: LocalizationValue; actionLink__join_waitlist: LocalizationValue; alternativePhoneCodeProvider: { actionLink: LocalizationValue; label: LocalizationValue<'provider'>; subtitle: LocalizationValue<'provider'>; title: LocalizationValue<'provider'>; }; }; password: { title: LocalizationValue; subtitle: LocalizationValue; actionLink: LocalizationValue; }; passwordPwned: { title: LocalizationValue; }; /** @deprecated Use `passwordCompromised` instead */ passwordUntrusted: { title: LocalizationValue; }; passwordCompromised: { title: LocalizationValue; }; passkey: { title: LocalizationValue; subtitle: LocalizationValue; }; forgotPasswordAlternativeMethods: { title: LocalizationValue; label__alternativeMethods: LocalizationValue; blockButton__resetPassword: LocalizationValue; }; forgotPassword: { title: LocalizationValue; subtitle: LocalizationValue; subtitle_email: LocalizationValue; subtitle_phone: LocalizationValue; formTitle: LocalizationValue; resendButton: LocalizationValue; }; resetPassword: { title: LocalizationValue; formButtonPrimary: LocalizationValue; successMessage: LocalizationValue; requiredMessage: LocalizationValue; }; resetPasswordMfa: { detailsLabel: LocalizationValue; }; emailCode: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; resendButton: LocalizationValue; }; emailLink: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; formSubtitle: LocalizationValue; resendButton: LocalizationValue; unusedTab: { title: LocalizationValue; }; verified: { title: LocalizationValue; subtitle: LocalizationValue; }; verifiedSwitchTab: { subtitle: LocalizationValue; titleNewTab: LocalizationValue; subtitleNewTab: LocalizationValue; }; loading: { title: LocalizationValue; subtitle: LocalizationValue; }; failed: { title: LocalizationValue; subtitle: LocalizationValue; }; expired: { title: LocalizationValue; subtitle: LocalizationValue; }; clientMismatch: { title: LocalizationValue; subtitle: LocalizationValue; }; }; phoneCode: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; resendButton: LocalizationValue; }; alternativePhoneCodeProvider: { formTitle: LocalizationValue; resendButton: LocalizationValue; subtitle: LocalizationValue; title: LocalizationValue<'provider'>; }; emailCodeMfa: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; resendButton: LocalizationValue; }; emailLinkMfa: { title: LocalizationValue; subtitle: LocalizationValue; formSubtitle: LocalizationValue; resendButton: LocalizationValue; }; newDeviceVerificationNotice: LocalizationValue; phoneCodeMfa: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; resendButton: LocalizationValue; }; totpMfa: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; }; backupCodeMfa: { title: LocalizationValue; subtitle: LocalizationValue; }; alternativeMethods: { title: LocalizationValue; subtitle: LocalizationValue; actionLink: LocalizationValue; actionText: LocalizationValue; blockButton__emailLink: LocalizationValue<'identifier'>; blockButton__emailCode: LocalizationValue<'identifier'>; blockButton__phoneCode: LocalizationValue<'identifier'>; blockButton__password: LocalizationValue; blockButton__passkey: LocalizationValue; blockButton__totp: LocalizationValue; blockButton__backupCode: LocalizationValue; getHelp: { title: LocalizationValue; content: LocalizationValue; blockButton__emailSupport: LocalizationValue; }; }; noAvailableMethods: { title: LocalizationValue; subtitle: LocalizationValue; message: LocalizationValue; }; accountSwitcher: { title: LocalizationValue; subtitle: LocalizationValue; action__addAccount: LocalizationValue; action__signOutAll: LocalizationValue; }; enterpriseConnections: { title: LocalizationValue; subtitle: LocalizationValue; }; web3Solana: { title: LocalizationValue; subtitle: LocalizationValue; }; protectCheck: { title: LocalizationValue; subtitle: LocalizationValue; loading: LocalizationValue; retryButton: LocalizationValue; }; }; reverification: { password: { title: LocalizationValue; subtitle: LocalizationValue; actionLink: LocalizationValue; }; emailCode: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; resendButton: LocalizationValue; }; phoneCode: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; resendButton: LocalizationValue; }; phoneCodeMfa: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; resendButton: LocalizationValue; }; totpMfa: { title: LocalizationValue; subtitle: LocalizationValue; formTitle: LocalizationValue; }; backupCodeMfa: { title: LocalizationValue; subtitle: LocalizationValue; }; passkey: { title: LocalizationValue; subtitle: LocalizationValue; blockButton__passkey: LocalizationValue; }; alternativeMethods: { title: LocalizationValue; subtitle: LocalizationValue; actionLink: LocalizationValue; actionText: LocalizationValue; blockButton__emailCode: LocalizationValue<'identifier'>; blockButton__phoneCode: LocalizationValue<'identifier'>; blockButton__password: LocalizationValue; blockButton__totp: LocalizationValue; blockButton__passkey: LocalizationValue; blockButton__backupCode: LocalizationValue; getHelp: { title: LocalizationValue; content: LocalizationValue; blockButton__emailSupport: LocalizationValue; }; }; noAvailableMethods: { title: LocalizationValue; subtitle: LocalizationValue; message: LocalizationValue; }; }; userProfile: { mobileButton__menu: LocalizationValue; formButtonPrimary__continue: LocalizationValue; formButtonPrimary__save: LocalizationValue; formButtonPrimary__finish: LocalizationValue; formButtonPrimary__remove: LocalizationValue; formButtonPrimary__add: LocalizationValue; formButtonReset: LocalizationValue; navbar: { title: LocalizationValue; description: LocalizationValue; account: LocalizationValue; security: LocalizationValue; billing: LocalizationValue; apiKeys: LocalizationValue; }; start: { headerTitle__account: LocalizationValue; headerTitle__security: LocalizationValue; profileSection: { title: LocalizationValue; primaryButton: LocalizationValue; }; usernameSection: { title: LocalizationValue; primaryButton__updateUsername: LocalizationValue; primaryButton__setUsername: LocalizationValue; }; emailAddressesSection: { title: LocalizationValue; primaryButton: LocalizationValue; detailsAction__primary: LocalizationValue; detailsAction__nonPrimary: LocalizationValue; detailsAction__unverified: LocalizationValue; destructiveAction: LocalizationValue; }; phoneNumbersSection: { title: LocalizationValue; primaryButton: LocalizationValue; detailsAction__primary: LocalizationValue; detailsAction__nonPrimary: LocalizationValue; detailsAction__unverified: LocalizationValue; destructiveAction: LocalizationValue; }; connectedAccountsSection: { title: LocalizationValue; primaryButton: LocalizationValue; actionLabel__connectionFailed: LocalizationValue; /** * @deprecated Use `actionLabel__connectionFailed` instead. */ actionLabel__reauthorize: LocalizationValue; /** * @deprecated Use `subtitle__disconnected` instead. */ subtitle__reauthorize: LocalizationValue; subtitle__disconnected: LocalizationValue; destructiveActionTitle: LocalizationValue; }; enterpriseAccountsSection: { title: LocalizationValue; primaryButton: LocalizationValue; }; passwordSection: { title: LocalizationValue; primaryButton__updatePassword: LocalizationValue; primaryButton__setPassword: LocalizationValue; }; passkeysSection: { title: LocalizationValue; primaryButton: LocalizationValue; menuAction__rename: LocalizationValue; menuAction__destructive: LocalizationValue; }; mfaSection: { title: LocalizationValue; primaryButton: LocalizationValue; phoneCode: { destructiveActionLabel: LocalizationValue; actionLabel__setDefault: LocalizationValue; }; backupCodes: { headerTitle: LocalizationValue; title__regenerate: LocalizationValue; subtitle__regenerate: LocalizationValue; actionLabel__regenerate: LocalizationValue; }; totp: { headerTitle: LocalizationValue; destructiveActionTitle: LocalizationValue; }; }; activeDevicesSection: { title: LocalizationValue; destructiveAction: LocalizationValue; }; web3WalletsSection: { title: LocalizationValue; primaryButton: LocalizationValue; destructiveAction: LocalizationValue; detailsAction__nonPrimary: LocalizationValue; web3SelectSolanaWalletScreen: { title: LocalizationValue; subtitle: LocalizationValue; }; }; dangerSection: { title: LocalizationValue; deleteAccountButton: LocalizationValue; }; }; profilePage: { title: LocalizationValue; imageFormTitle: LocalizationValue; imageFormSubtitle: LocalizationValue; imageFormDestructiveActionSubtitle: LocalizationValue; fileDropAreaHint: LocalizationValue; readonly: LocalizationValue; successMessage: LocalizationValue; }; usernamePage: { successMessage: LocalizationValue; title__set: LocalizationValue; title__update: LocalizationValue; }; emailAddressPage: { title: LocalizationValue; verifyTitle: LocalizationValue; formHint: LocalizationValue; emailCode: { /** * @deprecated Use `emailAddressPage.formHint` instead. */ formHint: LocalizationValue; formTitle: LocalizationValue; formSubtitle: LocalizationValue<'identifier'>; resendButton: LocalizationValue; successMessage: LocalizationValue; }; emailLink: { /** * @deprecated Use `emailAddressPage.formHint` instead. */ formHint: LocalizationValue; formTitle: LocalizationValue; formSubtitle: LocalizationValue<'identifier'>; resendButton: LocalizationValue; successMessage: LocalizationValue; }; enterpriseSSOLink: { formSubtitle: LocalizationValue<'identifier'>; formButton: LocalizationValue; }; removeResource: { title: LocalizationValue; messageLine1: LocalizationValue<'identifier'>; messageLine2: LocalizationValue; successMessage: LocalizationValue<'emailAddress'>; }; }; apiKeysPage: { title: LocalizationValue; detailsTitle__emptyRow: LocalizationValue; }; passkeyScreen: { title__rename: LocalizationValue; subtitle__rename: LocalizationValue; removeResource: { title: LocalizationValue; messageLine1: LocalizationValue<'name'>; }; }; phoneNumberPage: { title: LocalizationValue; verifyTitle: LocalizationValue; verifySubtitle: LocalizationValue<'identifier'>; successMessage: LocalizationValue; infoText: LocalizationValue; removeResource: { title: LocalizationValue; messageLine1: LocalizationValue<'identifier'>; messageLine2: LocalizationValue; successMessage: LocalizationValue<'phoneNumber'>; }; }; connectedAccountPage: { title: LocalizationValue; formHint: LocalizationValue; formHint__noAccounts: LocalizationValue; socialButtonsBlockButton: LocalizationValue<'provider'>; successMessage: LocalizationValue; removeResource: { title: LocalizationValue; messageLine1: LocalizationValue<'identifier'>; messageLine2: LocalizationValue; successMessage: LocalizationValue<'connectedAccount'>; }; }; web3WalletPage: { title: LocalizationValue; subtitle__availableWallets: LocalizationValue; subtitle__unavailableWallets: LocalizationValue; web3WalletButtonsBlockButton: LocalizationValue<'provider'>; successMessage: LocalizationValue<'web3Wallet'>; removeResource: { title: LocalizationValue; messageLine1: LocalizationValue<'identifier'>; messageLine2: LocalizationValue; successMessage: LocalizationValue<'web3Wallet'>; }; }; passwordPage: { successMessage__set: LocalizationValue; successMessage__update: LocalizationValue; successMessage__signOutOfOtherSessions: LocalizationValue; checkboxInfoText__signOutOfOtherSessions: LocalizationValue; readonly: LocalizationValue; title__set: LocalizationValue; title__update: LocalizationValue; }; mfaPage: { title: LocalizationValue; formHint: LocalizationValue; }; mfaTOTPPage: { title: LocalizationValue; verifyTitle: LocalizationValue; verifySubtitle: LocalizationValue; successMessage: LocalizationValue; authenticatorApp: { infoText__ableToScan: LocalizationValue; infoText__unableToScan: LocalizationValue; inputLabel__unableToScan1: LocalizationValue; inputLabel__unableToScan2: LocalizationValue; buttonAbleToScan__nonPrimary: LocalizationValue; buttonUnableToScan__nonPrimary: LocalizationValue; }; removeResource: { title: LocalizationValue; messageLine1: LocalizationValue; messageLine2: LocalizationValue; successMessage: LocalizationValue; }; }; mfaPhoneCodePage: { title: LocalizationValue; primaryButton__addPhoneNumber: LocalizationValue; backButton: LocalizationValue; subtitle__availablePhoneNumbers: LocalizationValue; subtitle__unavailablePhoneNumbers: LocalizationValue; successTitle: LocalizationValue; successMessage1: LocalizationValue; successMessage2: LocalizationValue; removeResource: { title: LocalizationValue; messageLine1: LocalizationValue<'identifier'>; messageLine2: LocalizationValue; successMessage: LocalizationValue<'mfaPhoneCode'>; }; }; backupCodePage: { title: LocalizationValue; title__codelist: LocalizationValue; subtitle__codelist: LocalizationValue; infoText1: LocalizationValue; infoText2: LocalizationValue; successSubtitle: LocalizationValue; successMessage: LocalizationValue; actionLabel__copy: LocalizationValue; actionLabel__copied: LocalizationValue; actionLabel__download: LocalizationValue; actionLabel__print: LocalizationValue; }; deletePage: { title: LocalizationValue; messageLine1: LocalizationValue; messageLine2: LocalizationValue; actionDescription: LocalizationValue; confirm: LocalizationValue; }; billingPage: { title: LocalizationValue; accountCreditsSection: { title: LocalizationValue; viewHistory: LocalizationValue; }; creditHistoryPage: { title: LocalizationValue; tableHeader__amount: LocalizationValue; tableHeader__date: LocalizationValue; }; start: { headerTitle__payments: LocalizationValue; headerTitle__plans: LocalizationValue; headerTitle__subscriptions: LocalizationValue; headerTitle__statements: LocalizationValue; }; statementsSection: { empty: LocalizationValue; itemCaption__paidForPlan: LocalizationValue; itemCaption__proratedCredit: LocalizationValue; itemCaption__payerCredit: LocalizationValue; itemCaption__subscribedAndPaidForPlan: LocalizationValue; notFound: LocalizationValue; tableHeader__date: LocalizationValue; tableHeader__amount: LocalizationValue; title: LocalizationValue; totalPaid: LocalizationValue; }; switchPlansSection: { title: LocalizationValue; }; subscriptionsListSection: { tableHeader__plan: LocalizationValue; tableHeader__startDate: LocalizationValue; tableHeader__edit: LocalizationValue; title: LocalizationValue; actionLabel__newSubscription: LocalizationValue; actionLabel__manageSubscription: LocalizationValue; actionLabel__switchPlan: LocalizationValue; overview: LocalizationValue; }; paymentHistorySection: { empty: LocalizationValue; notFound: LocalizationValue; tableHeader__date: LocalizationValue; tableHeader__amount: LocalizationValue; tableHeader__status: LocalizationValue; }; paymentMethodsSection: { title: LocalizationValue; add: LocalizationValue; addSubtitle: LocalizationValue; cancelButton: LocalizationValue; actionLabel__default: LocalizationValue; actionLabel__remove: LocalizationValue; formButtonPrimary__add: LocalizationValue; formButtonPrimary__pay: LocalizationValue; removeMethod: { title: LocalizationValue; messageLine1: LocalizationValue<'identifier'>; messageLine2: LocalizationValue; successMessage: LocalizationValue<'paymentMethod'>; }; payWithTestCardButton: LocalizationValue; }; subscriptionsSection: { actionLabel__default: LocalizationValue; }; }; plansPage: { title: LocalizationValue; alerts: { noPermissionsToManageBilling: LocalizationValue; }; }; }; userButton: { action__manageAccount: LocalizationValue; action__signOut: LocalizationValue; action__signOutAll: LocalizationValue; action__addAccount: LocalizationValue; action__openUserMenu: LocalizationValue; action__closeUserMenu: LocalizationValue; label__userButtonPopover?: LocalizationValue; label__accountActions?: LocalizationValue; label__activeSessions?: LocalizationValue; }; organizationSwitcher: { personalWorkspace: LocalizationValue; notSelected: LocalizationValue; action__createOrganization: LocalizationValue; action__manageOrganization: LocalizationValue; action__invitationAccept: LocalizationValue; action__suggestionsAccept: LocalizationValue; action__openOrganizationSwitcher: LocalizationValue; action__closeOrganizationSwitcher: LocalizationValue; suggestionsAcceptedLabel: LocalizationValue; }; impersonationFab: { title: LocalizationValue<'identifier'>; action__signOut: LocalizationValue; }; organizationProfile: { navbar: { title: LocalizationValue; description: LocalizationValue; general: LocalizationValue; members: LocalizationValue; billing: LocalizationValue; apiKeys: LocalizationValue; security: LocalizationValue; }; badge__unverified: LocalizationValue; badge__automaticInvitation: LocalizationValue; badge__automaticSuggestion: LocalizationValue; badge__manualInvitation: LocalizationValue; badge__enterpriseSso: LocalizationValue; start: { headerTitle__members: LocalizationValue; membershipSeatUsageLabel: LocalizationValue<'count' | 'limit'>; headerTitle__general: LocalizationValue; profileSection: { title: LocalizationValue; primaryButton: LocalizationValue; uploadAction__title: LocalizationValue; }; }; profilePage: { title: LocalizationValue; successMessage: LocalizationValue; dangerSection: { title: LocalizationValue; leaveOrganization: { title: LocalizationValue; messageLine1: LocalizationValue; messageLine2: LocalizationValue; successMessage: LocalizationValue; actionDescription: LocalizationValue<'organizationName'>; }; deleteOrganization: { title: LocalizationValue; messageLine1: LocalizationValue; messageLine2: LocalizationValue; actionDescription: LocalizationValue<'organizationName'>; successMessage: LocalizationValue; }; }; domainSection: { title: LocalizationValue; subtitle: LocalizationValue; primaryButton: LocalizationValue; menuAction__verify: LocalizationValue; menuAction__remove: LocalizationValue; menuAction__manage: LocalizationValue; }; }; createDomainPage: { title: LocalizationValue; subtitle: LocalizationValue; }; verifyDomainPage: { title: LocalizationValue; subtitle: LocalizationValue<'domainName'>; subtitleVerificationCodeScreen: LocalizationValue<'emailAddress'>; formTitle: LocalizationValue; formSubtitle: LocalizationValue; resendButton: LocalizationValue; }; verifiedDomainPage: { title: LocalizationValue<'domain'>; subtitle: LocalizationValue<'domain'>; start: { headerTitle__enrollment: LocalizationValue; headerTitle__danger: LocalizationValue; }; enrollmentTab: { subtitle: LocalizationValue; manualInvitationOption__label: LocalizationValue; manualInvitationOption__description: LocalizationValue; automaticInvitationOption__label: LocalizationValue; automaticInvitationOption__description: LocalizationValue; automaticSuggestionOption__label: LocalizationValue; automaticSuggestionOption__description: LocalizationValue; calloutInfoLabel: LocalizationValue; calloutInvitationCountLabel: LocalizationValue<'count'>; calloutSuggestionCountLabel: LocalizationValue<'count'>; }; dangerTab: { removeDomainTitle: LocalizationValue; removeDomainSubtitle: LocalizationValue; removeDomainActionLabel__remove: LocalizationValue; calloutInfoLabel: LocalizationValue; }; }; invitePage: { title: LocalizationValue; subtitle: LocalizationValue; successMessage: LocalizationValue; detailsTitle__inviteFailed: LocalizationValue<'email_addresses'>; formButtonPrimary__continue: LocalizationValue; formButtonPrimary__purchaseSeats: LocalizationValue; selectDropdown__role: LocalizationValue; }; removeDomainPage: { title: LocalizationValue; messageLine1: LocalizationValue<'domain'>; messageLine2: LocalizationValue; successMessage: LocalizationValue; }; securityPage: { title: LocalizationValue; removeDialog: { title: LocalizationValue; subtitle: LocalizationValue; confirmButton: LocalizationValue; }; ssoSection: { title: LocalizationValue; badge__unconfigured: LocalizationValue; badge__inProgress: LocalizationValue; badge__active: LocalizationValue; badge__inactive: LocalizationValue; descriptionLine1: LocalizationValue; primaryButton__startConfiguration: LocalizationValue; primaryButton__continueConfiguration: LocalizationValue; domainLabel: LocalizationValue; menuAction__edit: LocalizationValue; menuAction__activate: LocalizationValue; menuAction__deactivate: LocalizationValue; menuAction__remove: LocalizationValue; tooltip: LocalizationValue<'role'>; tooltip__noRole: LocalizationValue; tooltipLabel: LocalizationValue; }; }; membersPage: { detailsTitle__emptyRow: LocalizationValue; action__invite: LocalizationValue; action__search: LocalizationValue; start: { headerTitle__members: LocalizationValue; headerTitle__invitations: LocalizationValue; headerTitle__requests: LocalizationValue; }; activeMembersTab: { tableHeader__user: LocalizationValue; tableHeader__joined: LocalizationValue; tableHeader__role: LocalizationValue; tableHeader__actions: LocalizationValue; menuAction__remove: LocalizationValue; }; invitedMembersTab: { tableHeader__invited: LocalizationValue; menuAction__revoke: LocalizationValue; }; invitationsTab: { table__emptyRow: LocalizationValue; autoInvitations: { headerTitle: LocalizationValue; headerSubtitle: LocalizationValue; primaryButton: LocalizationValue; }; }; requestsTab: { tableHeader__requested: LocalizationValue; menuAction__approve: LocalizationValue; menuAction__reject: LocalizationValue; table__emptyRow: LocalizationValue; autoSuggestions: { headerTitle: LocalizationValue; headerSubtitle: LocalizationValue; primaryButton: LocalizationValue; }; }; alerts: { roleSetMigrationInProgress: { title: LocalizationValue; subtitle: LocalizationValue; }; }; }; billingPage: { title: LocalizationValue; accountCreditsSection: { title: LocalizationValue; viewHistory: LocalizationValue; }; creditHistoryPage: { title: LocalizationValue; tableHeader__amount: LocalizationValue; tableHeader__date: LocalizationValue; }; start: { headerTitle__payments: LocalizationValue; headerTitle__plans: LocalizationValue; headerTitle__subscriptions: LocalizationValue; headerTitle__statements: LocalizationValue; }; statementsSection: { empty: LocalizationValue; itemCaption__paidForPlan: LocalizationValue<'plan' | 'period'>; itemCaption__proratedCredit: LocalizationValue; itemCaption__payerCredit: LocalizationValue; itemCaption__subscribedAndPaidForPlan: LocalizationValue<'plan' | 'period'>; notFound: LocalizationValue; tableHeader__date: LocalizationValue; tableHeader__amount: LocalizationValue; title: LocalizationValue; totalPaid: LocalizationValue; }; switchPlansSection: { title: LocalizationValue; }; subscriptionsListSection: { tableHeader__plan: LocalizationValue; tableHeader__startDate: LocalizationValue; tableHeader__edit: LocalizationValue; title: LocalizationValue; actionLabel__newSubscription: LocalizationValue; actionLabel__manageSubscription: LocalizationValue; actionLabel__switchPlan: LocalizationValue; includedSeatsUsage: LocalizationValue<'includedSeats'>; overview: LocalizationValue; paidSeatsUsage: LocalizationValue<'seatsQuantity' | 'amount'>; seatLimit: LocalizationValue<'seatLimit'>; seatLimitAndIncludedSeats: LocalizationValue<'seatLimit' | 'includedSeats'>; }; paymentHistorySection: { empty: LocalizationValue; notFound: LocalizationValue; tableHeader__date: LocalizationValue; tableHeader__amount: LocalizationValue; tableHeader__status: LocalizationValue; }; paymentMethodsSection: { title: LocalizationValue; add: LocalizationValue; addSubtitle: LocalizationValue; cancelButton: LocalizationValue; actionLabel__default: LocalizationValue; actionLabel__remove: LocalizationValue; formButtonPrimary__add: LocalizationValue; formButtonPrimary__pay: LocalizationValue; removeMethod: { title: LocalizationValue; messageLine1: LocalizationValue<'identifier'>; messageLine2: LocalizationValue; successMessage: LocalizationValue<'paymentMethod'>; }; payWithTestCardButton: LocalizationValue; }; subscriptionsSection: { actionLabel__default: LocalizationValue; }; }; plansPage: { title: LocalizationValue; alerts: { noPermissionsToManageBilling: LocalizationValue; planMembershipLimitExceeded: LocalizationValue<'count' | 'limit'>; }; }; apiKeysPage: { title: LocalizationValue; detailsTitle__emptyRow: LocalizationValue; }; }; createOrganization: { title: LocalizationValue; formButtonSubmit: LocalizationValue; invitePage: { formButtonReset: LocalizationValue; }; }; organizationList: { createOrganization: LocalizationValue; title: LocalizationValue<'applicationName'>; titleWithoutPersonal: LocalizationValue; subtitle: LocalizationValue<'applicationName'>; action__invitationAccept: LocalizationValue; invitationAcceptedLabel: LocalizationValue; action__suggestionsAccept: LocalizationValue; suggestionsAcceptedLabel: LocalizationValue; action__createOrganization: LocalizationValue; }; oauthConsent: { subtitle: LocalizationValue<'applicationName' | 'identifier'>; scopeList: { title: LocalizationValue<'applicationName'>; }; action__deny: LocalizationValue; action__allow: LocalizationValue; warning: LocalizationValue<'applicationName' | 'domainAction'>; redirectNotice: LocalizationValue<'domainAction'>; offlineAccessNotice: LocalizationValue; viewFullUrl: LocalizationValue; redirectUriModal: { title: LocalizationValue; subtitle: LocalizationValue<'applicationName'>; }; }; unstable__errors: UnstableErrors; dates: { previous6Days: LocalizationValue<'date'>; lastDay: LocalizationValue<'date'>; sameDay: LocalizationValue<'date'>; nextDay: LocalizationValue<'date'>; next6Days: LocalizationValue<'date'>; numeric: LocalizationValue<'date'>; }; waitlist: { start: { title: LocalizationValue; subtitle: LocalizationValue; formButton: LocalizationValue; actionText: LocalizationValue; actionLink: LocalizationValue; }; success: { title: LocalizationValue; subtitle: LocalizationValue; message: LocalizationValue; }; }; configureSSO: { missingManageEnterpriseConnectionsPermission: { title: LocalizationValue; subtitle: LocalizationValue; }; navbar: { title: LocalizationValue; }; resetConnectionDialog: { cancelButton: LocalizationValue; confirmationFieldLabel: LocalizationValue<'name'>; confirmationFieldPlaceholder: LocalizationValue<'name'>; resetButton: LocalizationValue; subtitle: LocalizationValue; title: LocalizationValue; }; selectProviderStep: { title: LocalizationValue; subtitle: LocalizationValue; saml: { groupLabel: LocalizationValue; okta: LocalizationValue; customSaml: LocalizationValue; google: LocalizationValue; microsoft: LocalizationValue; }; warning: LocalizationValue; }; changeProviderDialog: { title: LocalizationValue<'provider'>; subtitle: LocalizationValue<'provider' | 'currentProvider'>; cancelButton: LocalizationValue