@clerk/shared
Version:
Internal package utils used by the Clerk SDKs
1,394 lines (1,393 loc) • 77.3 kB
text/typescript
import { CamelToSnake, DeepPartial } from "./utils.mjs";
import { FieldId } from "./elementIds.mjs";
//#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: LocalizationVal