Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/eighty-coins-punch.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
---
'@clerk/localizations': patch
'@clerk/clerk-js': patch
'@clerk/types': patch
---

Add title attribute to email address field with the recommended format.
9 changes: 8 additions & 1 deletion packages/clerk-js/src/ui/primitives/Input.tsx
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
import React from 'react';

import { localizationKeys, useLocalizations } from '../localization';
import type { PrimitiveProps, RequiredProp, StyleVariants } from '../styledSystem';
import { common, createVariants, mqu } from '../styledSystem';
import { sanitizeInputProps, useFormField } from './hooks/useFormField';
Expand DownExpand Up@@ -63,6 +64,7 @@ export type InputProps = PrimitiveProps<'input'> & StyleVariants<typeof applyVar

export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref) => {
const fieldControl = useFormField() || {};
const { t } = useLocalizations();
// @ts-expect-error Typescript is complaining that `feedbackMessageId` does not exist. We are clearly passing them from above.
const { feedbackMessageId, ignorePasswordManager, feedbackType, ...fieldControlProps } = sanitizeInputProps(
fieldControl,
Expand All@@ -86,7 +88,12 @@ export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref)

const typeProps =
type === 'email'
? { type: 'text' as const, pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$', inputMode: 'email' as const }
? {
type: 'text' as const,
pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$',
inputMode: 'email' as const,
title: t(localizationKeys('formFieldInput__emailAddress_format')),
}
: { type: type || ('text' as const) };

const passwordManagerProps = ignorePasswordManager
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ar-SA.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const arSA: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const arSA: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const arSA: LocalizationResource = {
formFieldInputPlaceholder__password: undefined,
formFieldInputPlaceholder__phoneNumber: undefined,
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -636,6 +637,10 @@ export const arSA: LocalizationResource = {
titleNewTab: 'تم تسجيل الدخول في علامة تبويب أخرى',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'رمز تحقق لإعادة تعيين كلمة المرور',
resendButton: 'لم يصلك أي رمز؟ حاول مرة أخرى.',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const arSA: LocalizationResource = {
title: 'تم التحقق بنجاح من البريد الإلكتروني',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/be-BY.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const beBY: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const beBY: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -221,6 +221,7 @@ export const beBY: LocalizationResource = {
formFieldInputPlaceholder__password: 'Увядзіце ваш пароль',
formFieldInputPlaceholder__phoneNumber: 'Увядзіце ваш нумар тэлефона',
formFieldInputPlaceholder__username: 'Увядзіце імя карыстальніка',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -643,6 +644,10 @@ export const beBY: LocalizationResource = {
titleNewTab: 'Залогіньцеся на іншай укладцы',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код аднаўлення пароля',
resendButton: 'Адправіць код яшчэ раз',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const beBY: LocalizationResource = {
title: 'Пошта верыфікавана',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Я згаджаюся з палітыкай канфідэнцыяльнасці',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bg-BG.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const bgBG: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const bgBG: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const bgBG: LocalizationResource = {
formFieldInputPlaceholder__password: 'Парола',
formFieldInputPlaceholder__phoneNumber: '+359 123 456 789',
formFieldInputPlaceholder__username: 'Име на потребител',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const bgBG: LocalizationResource = {
titleNewTab: 'Влезнали сте в друг таб',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код за нулиране на парола',
resendButton: 'Не сте получили код? Изпрати отново',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const bgBG: LocalizationResource = {
title: 'Успешно потвърден имейл',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Съгласен съм само с политиката за конфиденциалност',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bn-IN.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const bnIN: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const bnIN: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -219,6 +219,7 @@ export const bnIN: LocalizationResource = {
formFieldInputPlaceholder__password: 'আপনার পাসওয়ার্ড লিখুন',
formFieldInputPlaceholder__phoneNumber: 'আপনার ফোন নম্বর লিখুন',
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -641,6 +642,10 @@ export const bnIN: LocalizationResource = {
titleNewTab: 'অন্য ট্যাবে সাইন ইন হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'পাসওয়ার্ড রিসেট কোড',
resendButton: 'কোনো কোড পাননি? পুনরায় পাঠান',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const bnIN: LocalizationResource = {
title: 'সফলভাবে ইমেইল যাচাই করা হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'আমি {{ privacyPolicyLink || link("গোপনীয়তা নীতি") }}-এর সাথে সম্মত',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ca-ES.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const caES: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const caES: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const caES: LocalizationResource = {
formFieldInputPlaceholder__password: 'Contrasenya',
formFieldInputPlaceholder__phoneNumber: 'Número de telèfon',
formFieldInputPlaceholder__username: "Nom d'usuari",
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const caES: LocalizationResource = {
titleNewTab: "S'ha iniciat sessió en una altra pestanya",
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Codi de restabliment de contrasenya',
resendButton: 'No has rebut el codi? Reenvia',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const caES: LocalizationResource = {
title: 'Correu electrònic verificat amb èxit',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/cs-CZ.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -125,7 +125,6 @@ export const csCZ: LocalizationResource = {
monthly: 'Měsíčně',
pastDue: 'Po splatnosti',
pay: 'Zaplatit {{amount}}',
paymentMethods__label: 'Platební metody',
paymentMethod: {
applePayDescription: {
annual: 'Roční platba',
Expand All@@ -140,6 +139,7 @@ export const csCZ: LocalizationResource = {
testCardInfo: 'Informace o testovací kartě',
},
},
paymentMethods__label: 'Platební metody',
popular: 'Populární',
pricingTable: {
billingCycle: 'Fakturační cyklus',
Expand DownExpand Up@@ -224,6 +224,7 @@ export const csCZ: LocalizationResource = {
formFieldInputPlaceholder__password: 'Zadejte své heslo',
formFieldInputPlaceholder__phoneNumber: 'Zadejte své telefonní číslo',
formFieldInputPlaceholder__username: 'Zadejte své uživatelské jméno',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: 'Popis',
formFieldLabel__apiKeyExpiration: 'Platnost',
formFieldLabel__apiKeyName: 'Název tajného klíče',
Expand DownExpand Up@@ -646,6 +647,10 @@ export const csCZ: LocalizationResource = {
titleNewTab: 'Přihlášeno na jiné kartě',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Kód pro resetování hesla',
resendButton: 'Neobdrželi jste kód? Znovu poslat',
Expand DownExpand Up@@ -768,6 +773,10 @@ export const csCZ: LocalizationResource = {
title: 'E-mail úspěšně ověřen',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Souhlasím s {{ privacyPolicyLink || link("Zásadami ochrany osobních údajů") }}',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/da-DK.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const daDK: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const daDK: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const daDK: LocalizationResource = {
formFieldInputPlaceholder__password: 'Indtast adgangskode',
formFieldInputPlaceholder__phoneNumber: 'Indtast telefonnummer',
formFieldInputPlaceholder__username: 'Indtast brugernavn',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -638,6 +639,10 @@ export const daDK: LocalizationResource = {
titleNewTab: 'Logget ind på anden fane',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
Comment on lines +642 to +645

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Unrelated feature addition - consider separate PR.

The enterpriseConnections block addition is unrelated to the PR's stated objective of adding accessibility title attributes to email fields. This appears to be infrastructure for a separate feature.

To maintain clear PR history and simplify reviews, consider:

  • Moving unrelated localization additions to a separate PR
  • Or documenting in the PR description why these changes are bundled together

If these are required dependencies for the email field changes, please clarify the relationship.

🤖 Prompt for AI Agents
In packages/localizations/src/da-DK.ts around lines 642 to 645, the newly added
enterpriseConnections localization block is unrelated to the accessibility title
changes; remove or relocate this block to a separate PR (or revert it here) and,
if it must remain, add a short comment in this PR explaining why the
enterpriseConnections entries are required for the email title work and link to
any dependent tasks. Ensure the current PR only contains changes relevant to the
accessibility title attributes to keep review scope minimal.

forgotPassword: {
formTitle: 'Nulstil adgangskode',
resendButton: 'Modtog du ikke en kode? Send igen',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const daDK: LocalizationResource = {
title: 'E-mail er bekræftet',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/eighty-coins-punch.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
---
'@clerk/localizations': patch
'@clerk/clerk-js': patch
'@clerk/types': patch
---

Add title attribute to email address field with the recommended format.
9 changes: 8 additions & 1 deletion packages/clerk-js/src/ui/primitives/Input.tsx
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
import React from 'react';

import { localizationKeys, useLocalizations } from '../localization';
import type { PrimitiveProps, RequiredProp, StyleVariants } from '../styledSystem';
import { common, createVariants, mqu } from '../styledSystem';
import { sanitizeInputProps, useFormField } from './hooks/useFormField';
Expand DownExpand Up@@ -63,6 +64,7 @@ export type InputProps = PrimitiveProps<'input'> & StyleVariants<typeof applyVar

export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref) => {
const fieldControl = useFormField() || {};
const { t } = useLocalizations();
// @ts-expect-error Typescript is complaining that `feedbackMessageId` does not exist. We are clearly passing them from above.
const { feedbackMessageId, ignorePasswordManager, feedbackType, ...fieldControlProps } = sanitizeInputProps(
fieldControl,
Expand All@@ -86,7 +88,12 @@ export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref)

const typeProps =
type === 'email'
? { type: 'text' as const, pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$', inputMode: 'email' as const }
? {
type: 'text' as const,
pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$',
inputMode: 'email' as const,
title: t(localizationKeys('formFieldInput__emailAddress_format')),
}
: { type: type || ('text' as const) };

const passwordManagerProps = ignorePasswordManager
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ar-SA.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const arSA: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const arSA: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const arSA: LocalizationResource = {
formFieldInputPlaceholder__password: undefined,
formFieldInputPlaceholder__phoneNumber: undefined,
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -636,6 +637,10 @@ export const arSA: LocalizationResource = {
titleNewTab: 'تم تسجيل الدخول في علامة تبويب أخرى',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'رمز تحقق لإعادة تعيين كلمة المرور',
resendButton: 'لم يصلك أي رمز؟ حاول مرة أخرى.',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const arSA: LocalizationResource = {
title: 'تم التحقق بنجاح من البريد الإلكتروني',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/be-BY.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const beBY: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const beBY: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -221,6 +221,7 @@ export const beBY: LocalizationResource = {
formFieldInputPlaceholder__password: 'Увядзіце ваш пароль',
formFieldInputPlaceholder__phoneNumber: 'Увядзіце ваш нумар тэлефона',
formFieldInputPlaceholder__username: 'Увядзіце імя карыстальніка',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -643,6 +644,10 @@ export const beBY: LocalizationResource = {
titleNewTab: 'Залогіньцеся на іншай укладцы',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код аднаўлення пароля',
resendButton: 'Адправіць код яшчэ раз',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const beBY: LocalizationResource = {
title: 'Пошта верыфікавана',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Я згаджаюся з палітыкай канфідэнцыяльнасці',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bg-BG.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const bgBG: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const bgBG: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const bgBG: LocalizationResource = {
formFieldInputPlaceholder__password: 'Парола',
formFieldInputPlaceholder__phoneNumber: '+359 123 456 789',
formFieldInputPlaceholder__username: 'Име на потребител',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const bgBG: LocalizationResource = {
titleNewTab: 'Влезнали сте в друг таб',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код за нулиране на парола',
resendButton: 'Не сте получили код? Изпрати отново',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const bgBG: LocalizationResource = {
title: 'Успешно потвърден имейл',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Съгласен съм само с политиката за конфиденциалност',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bn-IN.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const bnIN: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const bnIN: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -219,6 +219,7 @@ export const bnIN: LocalizationResource = {
formFieldInputPlaceholder__password: 'আপনার পাসওয়ার্ড লিখুন',
formFieldInputPlaceholder__phoneNumber: 'আপনার ফোন নম্বর লিখুন',
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -641,6 +642,10 @@ export const bnIN: LocalizationResource = {
titleNewTab: 'অন্য ট্যাবে সাইন ইন হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'পাসওয়ার্ড রিসেট কোড',
resendButton: 'কোনো কোড পাননি? পুনরায় পাঠান',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const bnIN: LocalizationResource = {
title: 'সফলভাবে ইমেইল যাচাই করা হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'আমি {{ privacyPolicyLink || link("গোপনীয়তা নীতি") }}-এর সাথে সম্মত',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ca-ES.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const caES: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const caES: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const caES: LocalizationResource = {
formFieldInputPlaceholder__password: 'Contrasenya',
formFieldInputPlaceholder__phoneNumber: 'Número de telèfon',
formFieldInputPlaceholder__username: "Nom d'usuari",
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const caES: LocalizationResource = {
titleNewTab: "S'ha iniciat sessió en una altra pestanya",
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Codi de restabliment de contrasenya',
resendButton: 'No has rebut el codi? Reenvia',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const caES: LocalizationResource = {
title: 'Correu electrònic verificat amb èxit',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/cs-CZ.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -125,7 +125,6 @@ export const csCZ: LocalizationResource = {
monthly: 'Měsíčně',
pastDue: 'Po splatnosti',
pay: 'Zaplatit {{amount}}',
paymentMethods__label: 'Platební metody',
paymentMethod: {
applePayDescription: {
annual: 'Roční platba',
Expand All@@ -140,6 +139,7 @@ export const csCZ: LocalizationResource = {
testCardInfo: 'Informace o testovací kartě',
},
},
paymentMethods__label: 'Platební metody',
popular: 'Populární',
pricingTable: {
billingCycle: 'Fakturační cyklus',
Expand DownExpand Up@@ -224,6 +224,7 @@ export const csCZ: LocalizationResource = {
formFieldInputPlaceholder__password: 'Zadejte své heslo',
formFieldInputPlaceholder__phoneNumber: 'Zadejte své telefonní číslo',
formFieldInputPlaceholder__username: 'Zadejte své uživatelské jméno',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: 'Popis',
formFieldLabel__apiKeyExpiration: 'Platnost',
formFieldLabel__apiKeyName: 'Název tajného klíče',
Expand DownExpand Up@@ -646,6 +647,10 @@ export const csCZ: LocalizationResource = {
titleNewTab: 'Přihlášeno na jiné kartě',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Kód pro resetování hesla',
resendButton: 'Neobdrželi jste kód? Znovu poslat',
Expand DownExpand Up@@ -768,6 +773,10 @@ export const csCZ: LocalizationResource = {
title: 'E-mail úspěšně ověřen',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Souhlasím s {{ privacyPolicyLink || link("Zásadami ochrany osobních údajů") }}',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/da-DK.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const daDK: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const daDK: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const daDK: LocalizationResource = {
formFieldInputPlaceholder__password: 'Indtast adgangskode',
formFieldInputPlaceholder__phoneNumber: 'Indtast telefonnummer',
formFieldInputPlaceholder__username: 'Indtast brugernavn',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -638,6 +639,10 @@ export const daDK: LocalizationResource = {
titleNewTab: 'Logget ind på anden fane',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
Comment on lines +642 to +645

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Unrelated feature addition - consider separate PR.

The enterpriseConnections block addition is unrelated to the PR's stated objective of adding accessibility title attributes to email fields. This appears to be infrastructure for a separate feature.

To maintain clear PR history and simplify reviews, consider:

  • Moving unrelated localization additions to a separate PR
  • Or documenting in the PR description why these changes are bundled together

If these are required dependencies for the email field changes, please clarify the relationship.

🤖 Prompt for AI Agents
In packages/localizations/src/da-DK.ts around lines 642 to 645, the newly added
enterpriseConnections localization block is unrelated to the accessibility title
changes; remove or relocate this block to a separate PR (or revert it here) and,
if it must remain, add a short comment in this PR explaining why the
enterpriseConnections entries are required for the email title work and link to
any dependent tasks. Ensure the current PR only contains changes relevant to the
accessibility title attributes to keep review scope minimal.

forgotPassword: {
formTitle: 'Nulstil adgangskode',
resendButton: 'Modtog du ikke en kode? Send igen',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const daDK: LocalizationResource = {
title: 'E-mail er bekræftet',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/eighty-coins-punch.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
---
'@clerk/localizations': patch
'@clerk/clerk-js': patch
'@clerk/types': patch
---

Add title attribute to email address field with the recommended format.
9 changes: 8 additions & 1 deletion packages/clerk-js/src/ui/primitives/Input.tsx
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
import React from 'react';

import { localizationKeys, useLocalizations } from '../localization';
import type { PrimitiveProps, RequiredProp, StyleVariants } from '../styledSystem';
import { common, createVariants, mqu } from '../styledSystem';
import { sanitizeInputProps, useFormField } from './hooks/useFormField';
Expand DownExpand Up@@ -63,6 +64,7 @@ export type InputProps = PrimitiveProps<'input'> & StyleVariants<typeof applyVar

export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref) => {
const fieldControl = useFormField() || {};
const { t } = useLocalizations();
// @ts-expect-error Typescript is complaining that `feedbackMessageId` does not exist. We are clearly passing them from above.
const { feedbackMessageId, ignorePasswordManager, feedbackType, ...fieldControlProps } = sanitizeInputProps(
fieldControl,
Expand All@@ -86,7 +88,12 @@ export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref)

const typeProps =
type === 'email'
? { type: 'text' as const, pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$', inputMode: 'email' as const }
? {
type: 'text' as const,
pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$',
inputMode: 'email' as const,
title: t(localizationKeys('formFieldInput__emailAddress_format')),
}
: { type: type || ('text' as const) };

const passwordManagerProps = ignorePasswordManager
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ar-SA.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const arSA: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const arSA: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const arSA: LocalizationResource = {
formFieldInputPlaceholder__password: undefined,
formFieldInputPlaceholder__phoneNumber: undefined,
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -636,6 +637,10 @@ export const arSA: LocalizationResource = {
titleNewTab: 'تم تسجيل الدخول في علامة تبويب أخرى',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'رمز تحقق لإعادة تعيين كلمة المرور',
resendButton: 'لم يصلك أي رمز؟ حاول مرة أخرى.',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const arSA: LocalizationResource = {
title: 'تم التحقق بنجاح من البريد الإلكتروني',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/be-BY.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const beBY: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const beBY: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -221,6 +221,7 @@ export const beBY: LocalizationResource = {
formFieldInputPlaceholder__password: 'Увядзіце ваш пароль',
formFieldInputPlaceholder__phoneNumber: 'Увядзіце ваш нумар тэлефона',
formFieldInputPlaceholder__username: 'Увядзіце імя карыстальніка',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -643,6 +644,10 @@ export const beBY: LocalizationResource = {
titleNewTab: 'Залогіньцеся на іншай укладцы',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код аднаўлення пароля',
resendButton: 'Адправіць код яшчэ раз',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const beBY: LocalizationResource = {
title: 'Пошта верыфікавана',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Я згаджаюся з палітыкай канфідэнцыяльнасці',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bg-BG.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const bgBG: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const bgBG: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const bgBG: LocalizationResource = {
formFieldInputPlaceholder__password: 'Парола',
formFieldInputPlaceholder__phoneNumber: '+359 123 456 789',
formFieldInputPlaceholder__username: 'Име на потребител',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const bgBG: LocalizationResource = {
titleNewTab: 'Влезнали сте в друг таб',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код за нулиране на парола',
resendButton: 'Не сте получили код? Изпрати отново',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const bgBG: LocalizationResource = {
title: 'Успешно потвърден имейл',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Съгласен съм само с политиката за конфиденциалност',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bn-IN.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const bnIN: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const bnIN: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -219,6 +219,7 @@ export const bnIN: LocalizationResource = {
formFieldInputPlaceholder__password: 'আপনার পাসওয়ার্ড লিখুন',
formFieldInputPlaceholder__phoneNumber: 'আপনার ফোন নম্বর লিখুন',
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -641,6 +642,10 @@ export const bnIN: LocalizationResource = {
titleNewTab: 'অন্য ট্যাবে সাইন ইন হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'পাসওয়ার্ড রিসেট কোড',
resendButton: 'কোনো কোড পাননি? পুনরায় পাঠান',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const bnIN: LocalizationResource = {
title: 'সফলভাবে ইমেইল যাচাই করা হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'আমি {{ privacyPolicyLink || link("গোপনীয়তা নীতি") }}-এর সাথে সম্মত',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ca-ES.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const caES: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const caES: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const caES: LocalizationResource = {
formFieldInputPlaceholder__password: 'Contrasenya',
formFieldInputPlaceholder__phoneNumber: 'Número de telèfon',
formFieldInputPlaceholder__username: "Nom d'usuari",
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const caES: LocalizationResource = {
titleNewTab: "S'ha iniciat sessió en una altra pestanya",
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Codi de restabliment de contrasenya',
resendButton: 'No has rebut el codi? Reenvia',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const caES: LocalizationResource = {
title: 'Correu electrònic verificat amb èxit',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/cs-CZ.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -125,7 +125,6 @@ export const csCZ: LocalizationResource = {
monthly: 'Měsíčně',
pastDue: 'Po splatnosti',
pay: 'Zaplatit {{amount}}',
paymentMethods__label: 'Platební metody',
paymentMethod: {
applePayDescription: {
annual: 'Roční platba',
Expand All@@ -140,6 +139,7 @@ export const csCZ: LocalizationResource = {
testCardInfo: 'Informace o testovací kartě',
},
},
paymentMethods__label: 'Platební metody',
popular: 'Populární',
pricingTable: {
billingCycle: 'Fakturační cyklus',
Expand DownExpand Up@@ -224,6 +224,7 @@ export const csCZ: LocalizationResource = {
formFieldInputPlaceholder__password: 'Zadejte své heslo',
formFieldInputPlaceholder__phoneNumber: 'Zadejte své telefonní číslo',
formFieldInputPlaceholder__username: 'Zadejte své uživatelské jméno',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: 'Popis',
formFieldLabel__apiKeyExpiration: 'Platnost',
formFieldLabel__apiKeyName: 'Název tajného klíče',
Expand DownExpand Up@@ -646,6 +647,10 @@ export const csCZ: LocalizationResource = {
titleNewTab: 'Přihlášeno na jiné kartě',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Kód pro resetování hesla',
resendButton: 'Neobdrželi jste kód? Znovu poslat',
Expand DownExpand Up@@ -768,6 +773,10 @@ export const csCZ: LocalizationResource = {
title: 'E-mail úspěšně ověřen',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Souhlasím s {{ privacyPolicyLink || link("Zásadami ochrany osobních údajů") }}',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/da-DK.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const daDK: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const daDK: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const daDK: LocalizationResource = {
formFieldInputPlaceholder__password: 'Indtast adgangskode',
formFieldInputPlaceholder__phoneNumber: 'Indtast telefonnummer',
formFieldInputPlaceholder__username: 'Indtast brugernavn',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -638,6 +639,10 @@ export const daDK: LocalizationResource = {
titleNewTab: 'Logget ind på anden fane',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
Comment on lines +642 to +645

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Unrelated feature addition - consider separate PR.

The enterpriseConnections block addition is unrelated to the PR's stated objective of adding accessibility title attributes to email fields. This appears to be infrastructure for a separate feature.

To maintain clear PR history and simplify reviews, consider:

  • Moving unrelated localization additions to a separate PR
  • Or documenting in the PR description why these changes are bundled together

If these are required dependencies for the email field changes, please clarify the relationship.

🤖 Prompt for AI Agents
In packages/localizations/src/da-DK.ts around lines 642 to 645, the newly added
enterpriseConnections localization block is unrelated to the accessibility title
changes; remove or relocate this block to a separate PR (or revert it here) and,
if it must remain, add a short comment in this PR explaining why the
enterpriseConnections entries are required for the email title work and link to
any dependent tasks. Ensure the current PR only contains changes relevant to the
accessibility title attributes to keep review scope minimal.

forgotPassword: {
formTitle: 'Nulstil adgangskode',
resendButton: 'Modtog du ikke en kode? Send igen',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const daDK: LocalizationResource = {
title: 'E-mail er bekræftet',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/eighty-coins-punch.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
---
'@clerk/localizations': patch
'@clerk/clerk-js': patch
'@clerk/types': patch
---

Add title attribute to email address field with the recommended format.
9 changes: 8 additions & 1 deletion packages/clerk-js/src/ui/primitives/Input.tsx
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
import React from 'react';

import { localizationKeys, useLocalizations } from '../localization';
import type { PrimitiveProps, RequiredProp, StyleVariants } from '../styledSystem';
import { common, createVariants, mqu } from '../styledSystem';
import { sanitizeInputProps, useFormField } from './hooks/useFormField';
Expand DownExpand Up@@ -63,6 +64,7 @@ export type InputProps = PrimitiveProps<'input'> & StyleVariants<typeof applyVar

export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref) => {
const fieldControl = useFormField() || {};
const { t } = useLocalizations();
// @ts-expect-error Typescript is complaining that `feedbackMessageId` does not exist. We are clearly passing them from above.
const { feedbackMessageId, ignorePasswordManager, feedbackType, ...fieldControlProps } = sanitizeInputProps(
fieldControl,
Expand All@@ -86,7 +88,12 @@ export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref)

const typeProps =
type === 'email'
? { type: 'text' as const, pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$', inputMode: 'email' as const }
? {
type: 'text' as const,
pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$',
inputMode: 'email' as const,
title: t(localizationKeys('formFieldInput__emailAddress_format')),
}
: { type: type || ('text' as const) };

const passwordManagerProps = ignorePasswordManager
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ar-SA.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const arSA: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const arSA: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const arSA: LocalizationResource = {
formFieldInputPlaceholder__password: undefined,
formFieldInputPlaceholder__phoneNumber: undefined,
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -636,6 +637,10 @@ export const arSA: LocalizationResource = {
titleNewTab: 'تم تسجيل الدخول في علامة تبويب أخرى',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'رمز تحقق لإعادة تعيين كلمة المرور',
resendButton: 'لم يصلك أي رمز؟ حاول مرة أخرى.',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const arSA: LocalizationResource = {
title: 'تم التحقق بنجاح من البريد الإلكتروني',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/be-BY.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const beBY: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const beBY: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -221,6 +221,7 @@ export const beBY: LocalizationResource = {
formFieldInputPlaceholder__password: 'Увядзіце ваш пароль',
formFieldInputPlaceholder__phoneNumber: 'Увядзіце ваш нумар тэлефона',
formFieldInputPlaceholder__username: 'Увядзіце імя карыстальніка',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -643,6 +644,10 @@ export const beBY: LocalizationResource = {
titleNewTab: 'Залогіньцеся на іншай укладцы',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код аднаўлення пароля',
resendButton: 'Адправіць код яшчэ раз',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const beBY: LocalizationResource = {
title: 'Пошта верыфікавана',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Я згаджаюся з палітыкай канфідэнцыяльнасці',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bg-BG.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const bgBG: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const bgBG: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const bgBG: LocalizationResource = {
formFieldInputPlaceholder__password: 'Парола',
formFieldInputPlaceholder__phoneNumber: '+359 123 456 789',
formFieldInputPlaceholder__username: 'Име на потребител',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const bgBG: LocalizationResource = {
titleNewTab: 'Влезнали сте в друг таб',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код за нулиране на парола',
resendButton: 'Не сте получили код? Изпрати отново',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const bgBG: LocalizationResource = {
title: 'Успешно потвърден имейл',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Съгласен съм само с политиката за конфиденциалност',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bn-IN.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const bnIN: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const bnIN: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -219,6 +219,7 @@ export const bnIN: LocalizationResource = {
formFieldInputPlaceholder__password: 'আপনার পাসওয়ার্ড লিখুন',
formFieldInputPlaceholder__phoneNumber: 'আপনার ফোন নম্বর লিখুন',
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -641,6 +642,10 @@ export const bnIN: LocalizationResource = {
titleNewTab: 'অন্য ট্যাবে সাইন ইন হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'পাসওয়ার্ড রিসেট কোড',
resendButton: 'কোনো কোড পাননি? পুনরায় পাঠান',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const bnIN: LocalizationResource = {
title: 'সফলভাবে ইমেইল যাচাই করা হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'আমি {{ privacyPolicyLink || link("গোপনীয়তা নীতি") }}-এর সাথে সম্মত',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ca-ES.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const caES: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const caES: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const caES: LocalizationResource = {
formFieldInputPlaceholder__password: 'Contrasenya',
formFieldInputPlaceholder__phoneNumber: 'Número de telèfon',
formFieldInputPlaceholder__username: "Nom d'usuari",
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const caES: LocalizationResource = {
titleNewTab: "S'ha iniciat sessió en una altra pestanya",
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Codi de restabliment de contrasenya',
resendButton: 'No has rebut el codi? Reenvia',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const caES: LocalizationResource = {
title: 'Correu electrònic verificat amb èxit',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/cs-CZ.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -125,7 +125,6 @@ export const csCZ: LocalizationResource = {
monthly: 'Měsíčně',
pastDue: 'Po splatnosti',
pay: 'Zaplatit {{amount}}',
paymentMethods__label: 'Platební metody',
paymentMethod: {
applePayDescription: {
annual: 'Roční platba',
Expand All@@ -140,6 +139,7 @@ export const csCZ: LocalizationResource = {
testCardInfo: 'Informace o testovací kartě',
},
},
paymentMethods__label: 'Platební metody',
popular: 'Populární',
pricingTable: {
billingCycle: 'Fakturační cyklus',
Expand DownExpand Up@@ -224,6 +224,7 @@ export const csCZ: LocalizationResource = {
formFieldInputPlaceholder__password: 'Zadejte své heslo',
formFieldInputPlaceholder__phoneNumber: 'Zadejte své telefonní číslo',
formFieldInputPlaceholder__username: 'Zadejte své uživatelské jméno',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: 'Popis',
formFieldLabel__apiKeyExpiration: 'Platnost',
formFieldLabel__apiKeyName: 'Název tajného klíče',
Expand DownExpand Up@@ -646,6 +647,10 @@ export const csCZ: LocalizationResource = {
titleNewTab: 'Přihlášeno na jiné kartě',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Kód pro resetování hesla',
resendButton: 'Neobdrželi jste kód? Znovu poslat',
Expand DownExpand Up@@ -768,6 +773,10 @@ export const csCZ: LocalizationResource = {
title: 'E-mail úspěšně ověřen',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Souhlasím s {{ privacyPolicyLink || link("Zásadami ochrany osobních údajů") }}',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/da-DK.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const daDK: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const daDK: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const daDK: LocalizationResource = {
formFieldInputPlaceholder__password: 'Indtast adgangskode',
formFieldInputPlaceholder__phoneNumber: 'Indtast telefonnummer',
formFieldInputPlaceholder__username: 'Indtast brugernavn',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -638,6 +639,10 @@ export const daDK: LocalizationResource = {
titleNewTab: 'Logget ind på anden fane',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
Comment on lines +642 to +645

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Unrelated feature addition - consider separate PR.

The enterpriseConnections block addition is unrelated to the PR's stated objective of adding accessibility title attributes to email fields. This appears to be infrastructure for a separate feature.

To maintain clear PR history and simplify reviews, consider:

  • Moving unrelated localization additions to a separate PR
  • Or documenting in the PR description why these changes are bundled together

If these are required dependencies for the email field changes, please clarify the relationship.

🤖 Prompt for AI Agents
In packages/localizations/src/da-DK.ts around lines 642 to 645, the newly added
enterpriseConnections localization block is unrelated to the accessibility title
changes; remove or relocate this block to a separate PR (or revert it here) and,
if it must remain, add a short comment in this PR explaining why the
enterpriseConnections entries are required for the email title work and link to
any dependent tasks. Ensure the current PR only contains changes relevant to the
accessibility title attributes to keep review scope minimal.

forgotPassword: {
formTitle: 'Nulstil adgangskode',
resendButton: 'Modtog du ikke en kode? Send igen',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const daDK: LocalizationResource = {
title: 'E-mail er bekræftet',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/eighty-coins-punch.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
---
'@clerk/localizations': patch
'@clerk/clerk-js': patch
'@clerk/types': patch
---

Add title attribute to email address field with the recommended format.
9 changes: 8 additions & 1 deletion packages/clerk-js/src/ui/primitives/Input.tsx
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
import React from 'react';

import { localizationKeys, useLocalizations } from '../localization';
import type { PrimitiveProps, RequiredProp, StyleVariants } from '../styledSystem';
import { common, createVariants, mqu } from '../styledSystem';
import { sanitizeInputProps, useFormField } from './hooks/useFormField';
Expand DownExpand Up@@ -63,6 +64,7 @@ export type InputProps = PrimitiveProps<'input'> & StyleVariants<typeof applyVar

export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref) => {
const fieldControl = useFormField() || {};
const { t } = useLocalizations();
// @ts-expect-error Typescript is complaining that `feedbackMessageId` does not exist. We are clearly passing them from above.
const { feedbackMessageId, ignorePasswordManager, feedbackType, ...fieldControlProps } = sanitizeInputProps(
fieldControl,
Expand All@@ -86,7 +88,12 @@ export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref)

const typeProps =
type === 'email'
? { type: 'text' as const, pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$', inputMode: 'email' as const }
? {
type: 'text' as const,
pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$',
inputMode: 'email' as const,
title: t(localizationKeys('formFieldInput__emailAddress_format')),
}
: { type: type || ('text' as const) };

const passwordManagerProps = ignorePasswordManager
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ar-SA.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const arSA: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const arSA: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const arSA: LocalizationResource = {
formFieldInputPlaceholder__password: undefined,
formFieldInputPlaceholder__phoneNumber: undefined,
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -636,6 +637,10 @@ export const arSA: LocalizationResource = {
titleNewTab: 'تم تسجيل الدخول في علامة تبويب أخرى',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'رمز تحقق لإعادة تعيين كلمة المرور',
resendButton: 'لم يصلك أي رمز؟ حاول مرة أخرى.',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const arSA: LocalizationResource = {
title: 'تم التحقق بنجاح من البريد الإلكتروني',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/be-BY.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const beBY: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const beBY: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -221,6 +221,7 @@ export const beBY: LocalizationResource = {
formFieldInputPlaceholder__password: 'Увядзіце ваш пароль',
formFieldInputPlaceholder__phoneNumber: 'Увядзіце ваш нумар тэлефона',
formFieldInputPlaceholder__username: 'Увядзіце імя карыстальніка',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -643,6 +644,10 @@ export const beBY: LocalizationResource = {
titleNewTab: 'Залогіньцеся на іншай укладцы',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код аднаўлення пароля',
resendButton: 'Адправіць код яшчэ раз',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const beBY: LocalizationResource = {
title: 'Пошта верыфікавана',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Я згаджаюся з палітыкай канфідэнцыяльнасці',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bg-BG.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const bgBG: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const bgBG: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const bgBG: LocalizationResource = {
formFieldInputPlaceholder__password: 'Парола',
formFieldInputPlaceholder__phoneNumber: '+359 123 456 789',
formFieldInputPlaceholder__username: 'Име на потребител',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const bgBG: LocalizationResource = {
titleNewTab: 'Влезнали сте в друг таб',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код за нулиране на парола',
resendButton: 'Не сте получили код? Изпрати отново',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const bgBG: LocalizationResource = {
title: 'Успешно потвърден имейл',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Съгласен съм само с политиката за конфиденциалност',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bn-IN.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const bnIN: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const bnIN: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -219,6 +219,7 @@ export const bnIN: LocalizationResource = {
formFieldInputPlaceholder__password: 'আপনার পাসওয়ার্ড লিখুন',
formFieldInputPlaceholder__phoneNumber: 'আপনার ফোন নম্বর লিখুন',
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -641,6 +642,10 @@ export const bnIN: LocalizationResource = {
titleNewTab: 'অন্য ট্যাবে সাইন ইন হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'পাসওয়ার্ড রিসেট কোড',
resendButton: 'কোনো কোড পাননি? পুনরায় পাঠান',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const bnIN: LocalizationResource = {
title: 'সফলভাবে ইমেইল যাচাই করা হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'আমি {{ privacyPolicyLink || link("গোপনীয়তা নীতি") }}-এর সাথে সম্মত',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ca-ES.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const caES: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const caES: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const caES: LocalizationResource = {
formFieldInputPlaceholder__password: 'Contrasenya',
formFieldInputPlaceholder__phoneNumber: 'Número de telèfon',
formFieldInputPlaceholder__username: "Nom d'usuari",
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const caES: LocalizationResource = {
titleNewTab: "S'ha iniciat sessió en una altra pestanya",
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Codi de restabliment de contrasenya',
resendButton: 'No has rebut el codi? Reenvia',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const caES: LocalizationResource = {
title: 'Correu electrònic verificat amb èxit',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/cs-CZ.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -125,7 +125,6 @@ export const csCZ: LocalizationResource = {
monthly: 'Měsíčně',
pastDue: 'Po splatnosti',
pay: 'Zaplatit {{amount}}',
paymentMethods__label: 'Platební metody',
paymentMethod: {
applePayDescription: {
annual: 'Roční platba',
Expand All@@ -140,6 +139,7 @@ export const csCZ: LocalizationResource = {
testCardInfo: 'Informace o testovací kartě',
},
},
paymentMethods__label: 'Platební metody',
popular: 'Populární',
pricingTable: {
billingCycle: 'Fakturační cyklus',
Expand DownExpand Up@@ -224,6 +224,7 @@ export const csCZ: LocalizationResource = {
formFieldInputPlaceholder__password: 'Zadejte své heslo',
formFieldInputPlaceholder__phoneNumber: 'Zadejte své telefonní číslo',
formFieldInputPlaceholder__username: 'Zadejte své uživatelské jméno',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: 'Popis',
formFieldLabel__apiKeyExpiration: 'Platnost',
formFieldLabel__apiKeyName: 'Název tajného klíče',
Expand DownExpand Up@@ -646,6 +647,10 @@ export const csCZ: LocalizationResource = {
titleNewTab: 'Přihlášeno na jiné kartě',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Kód pro resetování hesla',
resendButton: 'Neobdrželi jste kód? Znovu poslat',
Expand DownExpand Up@@ -768,6 +773,10 @@ export const csCZ: LocalizationResource = {
title: 'E-mail úspěšně ověřen',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Souhlasím s {{ privacyPolicyLink || link("Zásadami ochrany osobních údajů") }}',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/da-DK.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const daDK: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const daDK: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const daDK: LocalizationResource = {
formFieldInputPlaceholder__password: 'Indtast adgangskode',
formFieldInputPlaceholder__phoneNumber: 'Indtast telefonnummer',
formFieldInputPlaceholder__username: 'Indtast brugernavn',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -638,6 +639,10 @@ export const daDK: LocalizationResource = {
titleNewTab: 'Logget ind på anden fane',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
Comment on lines +642 to +645

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Unrelated feature addition - consider separate PR.

The enterpriseConnections block addition is unrelated to the PR's stated objective of adding accessibility title attributes to email fields. This appears to be infrastructure for a separate feature.

To maintain clear PR history and simplify reviews, consider:

  • Moving unrelated localization additions to a separate PR
  • Or documenting in the PR description why these changes are bundled together

If these are required dependencies for the email field changes, please clarify the relationship.

🤖 Prompt for AI Agents
In packages/localizations/src/da-DK.ts around lines 642 to 645, the newly added
enterpriseConnections localization block is unrelated to the accessibility title
changes; remove or relocate this block to a separate PR (or revert it here) and,
if it must remain, add a short comment in this PR explaining why the
enterpriseConnections entries are required for the email title work and link to
any dependent tasks. Ensure the current PR only contains changes relevant to the
accessibility title attributes to keep review scope minimal.

forgotPassword: {
formTitle: 'Nulstil adgangskode',
resendButton: 'Modtog du ikke en kode? Send igen',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const daDK: LocalizationResource = {
title: 'E-mail er bekræftet',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/eighty-coins-punch.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
---
'@clerk/localizations': patch
'@clerk/clerk-js': patch
'@clerk/types': patch
---

Add title attribute to email address field with the recommended format.
9 changes: 8 additions & 1 deletion packages/clerk-js/src/ui/primitives/Input.tsx
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
import React from 'react';

import { localizationKeys, useLocalizations } from '../localization';
import type { PrimitiveProps, RequiredProp, StyleVariants } from '../styledSystem';
import { common, createVariants, mqu } from '../styledSystem';
import { sanitizeInputProps, useFormField } from './hooks/useFormField';
Expand DownExpand Up@@ -63,6 +64,7 @@ export type InputProps = PrimitiveProps<'input'> & StyleVariants<typeof applyVar

export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref) => {
const fieldControl = useFormField() || {};
const { t } = useLocalizations();
// @ts-expect-error Typescript is complaining that `feedbackMessageId` does not exist. We are clearly passing them from above.
const { feedbackMessageId, ignorePasswordManager, feedbackType, ...fieldControlProps } = sanitizeInputProps(
fieldControl,
Expand All@@ -86,7 +88,12 @@ export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref)

const typeProps =
type === 'email'
? { type: 'text' as const, pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$', inputMode: 'email' as const }
? {
type: 'text' as const,
pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$',
inputMode: 'email' as const,
title: t(localizationKeys('formFieldInput__emailAddress_format')),
}
: { type: type || ('text' as const) };

const passwordManagerProps = ignorePasswordManager
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ar-SA.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const arSA: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const arSA: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const arSA: LocalizationResource = {
formFieldInputPlaceholder__password: undefined,
formFieldInputPlaceholder__phoneNumber: undefined,
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -636,6 +637,10 @@ export const arSA: LocalizationResource = {
titleNewTab: 'تم تسجيل الدخول في علامة تبويب أخرى',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'رمز تحقق لإعادة تعيين كلمة المرور',
resendButton: 'لم يصلك أي رمز؟ حاول مرة أخرى.',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const arSA: LocalizationResource = {
title: 'تم التحقق بنجاح من البريد الإلكتروني',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/be-BY.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const beBY: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const beBY: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -221,6 +221,7 @@ export const beBY: LocalizationResource = {
formFieldInputPlaceholder__password: 'Увядзіце ваш пароль',
formFieldInputPlaceholder__phoneNumber: 'Увядзіце ваш нумар тэлефона',
formFieldInputPlaceholder__username: 'Увядзіце імя карыстальніка',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -643,6 +644,10 @@ export const beBY: LocalizationResource = {
titleNewTab: 'Залогіньцеся на іншай укладцы',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код аднаўлення пароля',
resendButton: 'Адправіць код яшчэ раз',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const beBY: LocalizationResource = {
title: 'Пошта верыфікавана',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Я згаджаюся з палітыкай канфідэнцыяльнасці',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bg-BG.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const bgBG: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const bgBG: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const bgBG: LocalizationResource = {
formFieldInputPlaceholder__password: 'Парола',
formFieldInputPlaceholder__phoneNumber: '+359 123 456 789',
formFieldInputPlaceholder__username: 'Име на потребител',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const bgBG: LocalizationResource = {
titleNewTab: 'Влезнали сте в друг таб',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код за нулиране на парола',
resendButton: 'Не сте получили код? Изпрати отново',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const bgBG: LocalizationResource = {
title: 'Успешно потвърден имейл',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Съгласен съм само с политиката за конфиденциалност',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bn-IN.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const bnIN: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const bnIN: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -219,6 +219,7 @@ export const bnIN: LocalizationResource = {
formFieldInputPlaceholder__password: 'আপনার পাসওয়ার্ড লিখুন',
formFieldInputPlaceholder__phoneNumber: 'আপনার ফোন নম্বর লিখুন',
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -641,6 +642,10 @@ export const bnIN: LocalizationResource = {
titleNewTab: 'অন্য ট্যাবে সাইন ইন হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'পাসওয়ার্ড রিসেট কোড',
resendButton: 'কোনো কোড পাননি? পুনরায় পাঠান',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const bnIN: LocalizationResource = {
title: 'সফলভাবে ইমেইল যাচাই করা হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'আমি {{ privacyPolicyLink || link("গোপনীয়তা নীতি") }}-এর সাথে সম্মত',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ca-ES.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const caES: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const caES: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const caES: LocalizationResource = {
formFieldInputPlaceholder__password: 'Contrasenya',
formFieldInputPlaceholder__phoneNumber: 'Número de telèfon',
formFieldInputPlaceholder__username: "Nom d'usuari",
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const caES: LocalizationResource = {
titleNewTab: "S'ha iniciat sessió en una altra pestanya",
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Codi de restabliment de contrasenya',
resendButton: 'No has rebut el codi? Reenvia',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const caES: LocalizationResource = {
title: 'Correu electrònic verificat amb èxit',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/cs-CZ.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -125,7 +125,6 @@ export const csCZ: LocalizationResource = {
monthly: 'Měsíčně',
pastDue: 'Po splatnosti',
pay: 'Zaplatit {{amount}}',
paymentMethods__label: 'Platební metody',
paymentMethod: {
applePayDescription: {
annual: 'Roční platba',
Expand All@@ -140,6 +139,7 @@ export const csCZ: LocalizationResource = {
testCardInfo: 'Informace o testovací kartě',
},
},
paymentMethods__label: 'Platební metody',
popular: 'Populární',
pricingTable: {
billingCycle: 'Fakturační cyklus',
Expand DownExpand Up@@ -224,6 +224,7 @@ export const csCZ: LocalizationResource = {
formFieldInputPlaceholder__password: 'Zadejte své heslo',
formFieldInputPlaceholder__phoneNumber: 'Zadejte své telefonní číslo',
formFieldInputPlaceholder__username: 'Zadejte své uživatelské jméno',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: 'Popis',
formFieldLabel__apiKeyExpiration: 'Platnost',
formFieldLabel__apiKeyName: 'Název tajného klíče',
Expand DownExpand Up@@ -646,6 +647,10 @@ export const csCZ: LocalizationResource = {
titleNewTab: 'Přihlášeno na jiné kartě',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Kód pro resetování hesla',
resendButton: 'Neobdrželi jste kód? Znovu poslat',
Expand DownExpand Up@@ -768,6 +773,10 @@ export const csCZ: LocalizationResource = {
title: 'E-mail úspěšně ověřen',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Souhlasím s {{ privacyPolicyLink || link("Zásadami ochrany osobních údajů") }}',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/da-DK.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const daDK: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const daDK: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const daDK: LocalizationResource = {
formFieldInputPlaceholder__password: 'Indtast adgangskode',
formFieldInputPlaceholder__phoneNumber: 'Indtast telefonnummer',
formFieldInputPlaceholder__username: 'Indtast brugernavn',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -638,6 +639,10 @@ export const daDK: LocalizationResource = {
titleNewTab: 'Logget ind på anden fane',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
Comment on lines +642 to +645

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Unrelated feature addition - consider separate PR.

The enterpriseConnections block addition is unrelated to the PR's stated objective of adding accessibility title attributes to email fields. This appears to be infrastructure for a separate feature.

To maintain clear PR history and simplify reviews, consider:

  • Moving unrelated localization additions to a separate PR
  • Or documenting in the PR description why these changes are bundled together

If these are required dependencies for the email field changes, please clarify the relationship.

🤖 Prompt for AI Agents
In packages/localizations/src/da-DK.ts around lines 642 to 645, the newly added
enterpriseConnections localization block is unrelated to the accessibility title
changes; remove or relocate this block to a separate PR (or revert it here) and,
if it must remain, add a short comment in this PR explaining why the
enterpriseConnections entries are required for the email title work and link to
any dependent tasks. Ensure the current PR only contains changes relevant to the
accessibility title attributes to keep review scope minimal.

forgotPassword: {
formTitle: 'Nulstil adgangskode',
resendButton: 'Modtog du ikke en kode? Send igen',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const daDK: LocalizationResource = {
title: 'E-mail er bekræftet',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/eighty-coins-punch.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
---
'@clerk/localizations': patch
'@clerk/clerk-js': patch
'@clerk/types': patch
---

Add title attribute to email address field with the recommended format.
9 changes: 8 additions & 1 deletion packages/clerk-js/src/ui/primitives/Input.tsx
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
import React from 'react';

import { localizationKeys, useLocalizations } from '../localization';
import type { PrimitiveProps, RequiredProp, StyleVariants } from '../styledSystem';
import { common, createVariants, mqu } from '../styledSystem';
import { sanitizeInputProps, useFormField } from './hooks/useFormField';
Expand DownExpand Up@@ -63,6 +64,7 @@ export type InputProps = PrimitiveProps<'input'> & StyleVariants<typeof applyVar

export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref) => {
const fieldControl = useFormField() || {};
const { t } = useLocalizations();
// @ts-expect-error Typescript is complaining that `feedbackMessageId` does not exist. We are clearly passing them from above.
const { feedbackMessageId, ignorePasswordManager, feedbackType, ...fieldControlProps } = sanitizeInputProps(
fieldControl,
Expand All@@ -86,7 +88,12 @@ export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref)

const typeProps =
type === 'email'
? { type: 'text' as const, pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$', inputMode: 'email' as const }
? {
type: 'text' as const,
pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$',
inputMode: 'email' as const,
title: t(localizationKeys('formFieldInput__emailAddress_format')),
}
: { type: type || ('text' as const) };

const passwordManagerProps = ignorePasswordManager
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ar-SA.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const arSA: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const arSA: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const arSA: LocalizationResource = {
formFieldInputPlaceholder__password: undefined,
formFieldInputPlaceholder__phoneNumber: undefined,
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -636,6 +637,10 @@ export const arSA: LocalizationResource = {
titleNewTab: 'تم تسجيل الدخول في علامة تبويب أخرى',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'رمز تحقق لإعادة تعيين كلمة المرور',
resendButton: 'لم يصلك أي رمز؟ حاول مرة أخرى.',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const arSA: LocalizationResource = {
title: 'تم التحقق بنجاح من البريد الإلكتروني',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/be-BY.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const beBY: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const beBY: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -221,6 +221,7 @@ export const beBY: LocalizationResource = {
formFieldInputPlaceholder__password: 'Увядзіце ваш пароль',
formFieldInputPlaceholder__phoneNumber: 'Увядзіце ваш нумар тэлефона',
formFieldInputPlaceholder__username: 'Увядзіце імя карыстальніка',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -643,6 +644,10 @@ export const beBY: LocalizationResource = {
titleNewTab: 'Залогіньцеся на іншай укладцы',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код аднаўлення пароля',
resendButton: 'Адправіць код яшчэ раз',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const beBY: LocalizationResource = {
title: 'Пошта верыфікавана',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Я згаджаюся з палітыкай канфідэнцыяльнасці',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bg-BG.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const bgBG: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const bgBG: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const bgBG: LocalizationResource = {
formFieldInputPlaceholder__password: 'Парола',
formFieldInputPlaceholder__phoneNumber: '+359 123 456 789',
formFieldInputPlaceholder__username: 'Име на потребител',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const bgBG: LocalizationResource = {
titleNewTab: 'Влезнали сте в друг таб',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код за нулиране на парола',
resendButton: 'Не сте получили код? Изпрати отново',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const bgBG: LocalizationResource = {
title: 'Успешно потвърден имейл',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Съгласен съм само с политиката за конфиденциалност',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bn-IN.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const bnIN: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const bnIN: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -219,6 +219,7 @@ export const bnIN: LocalizationResource = {
formFieldInputPlaceholder__password: 'আপনার পাসওয়ার্ড লিখুন',
formFieldInputPlaceholder__phoneNumber: 'আপনার ফোন নম্বর লিখুন',
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -641,6 +642,10 @@ export const bnIN: LocalizationResource = {
titleNewTab: 'অন্য ট্যাবে সাইন ইন হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'পাসওয়ার্ড রিসেট কোড',
resendButton: 'কোনো কোড পাননি? পুনরায় পাঠান',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const bnIN: LocalizationResource = {
title: 'সফলভাবে ইমেইল যাচাই করা হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'আমি {{ privacyPolicyLink || link("গোপনীয়তা নীতি") }}-এর সাথে সম্মত',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ca-ES.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const caES: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const caES: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const caES: LocalizationResource = {
formFieldInputPlaceholder__password: 'Contrasenya',
formFieldInputPlaceholder__phoneNumber: 'Número de telèfon',
formFieldInputPlaceholder__username: "Nom d'usuari",
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const caES: LocalizationResource = {
titleNewTab: "S'ha iniciat sessió en una altra pestanya",
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Codi de restabliment de contrasenya',
resendButton: 'No has rebut el codi? Reenvia',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const caES: LocalizationResource = {
title: 'Correu electrònic verificat amb èxit',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/cs-CZ.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -125,7 +125,6 @@ export const csCZ: LocalizationResource = {
monthly: 'Měsíčně',
pastDue: 'Po splatnosti',
pay: 'Zaplatit {{amount}}',
paymentMethods__label: 'Platební metody',
paymentMethod: {
applePayDescription: {
annual: 'Roční platba',
Expand All@@ -140,6 +139,7 @@ export const csCZ: LocalizationResource = {
testCardInfo: 'Informace o testovací kartě',
},
},
paymentMethods__label: 'Platební metody',
popular: 'Populární',
pricingTable: {
billingCycle: 'Fakturační cyklus',
Expand DownExpand Up@@ -224,6 +224,7 @@ export const csCZ: LocalizationResource = {
formFieldInputPlaceholder__password: 'Zadejte své heslo',
formFieldInputPlaceholder__phoneNumber: 'Zadejte své telefonní číslo',
formFieldInputPlaceholder__username: 'Zadejte své uživatelské jméno',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: 'Popis',
formFieldLabel__apiKeyExpiration: 'Platnost',
formFieldLabel__apiKeyName: 'Název tajného klíče',
Expand DownExpand Up@@ -646,6 +647,10 @@ export const csCZ: LocalizationResource = {
titleNewTab: 'Přihlášeno na jiné kartě',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Kód pro resetování hesla',
resendButton: 'Neobdrželi jste kód? Znovu poslat',
Expand DownExpand Up@@ -768,6 +773,10 @@ export const csCZ: LocalizationResource = {
title: 'E-mail úspěšně ověřen',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Souhlasím s {{ privacyPolicyLink || link("Zásadami ochrany osobních údajů") }}',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/da-DK.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const daDK: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const daDK: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const daDK: LocalizationResource = {
formFieldInputPlaceholder__password: 'Indtast adgangskode',
formFieldInputPlaceholder__phoneNumber: 'Indtast telefonnummer',
formFieldInputPlaceholder__username: 'Indtast brugernavn',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -638,6 +639,10 @@ export const daDK: LocalizationResource = {
titleNewTab: 'Logget ind på anden fane',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
Comment on lines +642 to +645

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Unrelated feature addition - consider separate PR.

The enterpriseConnections block addition is unrelated to the PR's stated objective of adding accessibility title attributes to email fields. This appears to be infrastructure for a separate feature.

To maintain clear PR history and simplify reviews, consider:

  • Moving unrelated localization additions to a separate PR
  • Or documenting in the PR description why these changes are bundled together

If these are required dependencies for the email field changes, please clarify the relationship.

🤖 Prompt for AI Agents
In packages/localizations/src/da-DK.ts around lines 642 to 645, the newly added
enterpriseConnections localization block is unrelated to the accessibility title
changes; remove or relocate this block to a separate PR (or revert it here) and,
if it must remain, add a short comment in this PR explaining why the
enterpriseConnections entries are required for the email title work and link to
any dependent tasks. Ensure the current PR only contains changes relevant to the
accessibility title attributes to keep review scope minimal.

forgotPassword: {
formTitle: 'Nulstil adgangskode',
resendButton: 'Modtog du ikke en kode? Send igen',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const daDK: LocalizationResource = {
title: 'E-mail er bekræftet',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/eighty-coins-punch.md
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
---
'@clerk/localizations': patch
'@clerk/clerk-js': patch
'@clerk/types': patch
---

Add title attribute to email address field with the recommended format.
9 changes: 8 additions & 1 deletion packages/clerk-js/src/ui/primitives/Input.tsx
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
import React from 'react';

import { localizationKeys, useLocalizations } from '../localization';
import type { PrimitiveProps, RequiredProp, StyleVariants } from '../styledSystem';
import { common, createVariants, mqu } from '../styledSystem';
import { sanitizeInputProps, useFormField } from './hooks/useFormField';
Expand DownExpand Up@@ -63,6 +64,7 @@ export type InputProps = PrimitiveProps<'input'> & StyleVariants<typeof applyVar

export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref) => {
const fieldControl = useFormField() || {};
const { t } = useLocalizations();
// @ts-expect-error Typescript is complaining that `feedbackMessageId` does not exist. We are clearly passing them from above.
const { feedbackMessageId, ignorePasswordManager, feedbackType, ...fieldControlProps } = sanitizeInputProps(
fieldControl,
Expand All@@ -86,7 +88,12 @@ export const Input = React.forwardRef<HTMLInputElement, InputProps>((props, ref)

const typeProps =
type === 'email'
? { type: 'text' as const, pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$', inputMode: 'email' as const }
? {
type: 'text' as const,
pattern: '^.*@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$',
inputMode: 'email' as const,
title: t(localizationKeys('formFieldInput__emailAddress_format')),
}
: { type: type || ('text' as const) };

const passwordManagerProps = ignorePasswordManager
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ar-SA.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const arSA: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const arSA: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const arSA: LocalizationResource = {
formFieldInputPlaceholder__password: undefined,
formFieldInputPlaceholder__phoneNumber: undefined,
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -636,6 +637,10 @@ export const arSA: LocalizationResource = {
titleNewTab: 'تم تسجيل الدخول في علامة تبويب أخرى',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'رمز تحقق لإعادة تعيين كلمة المرور',
resendButton: 'لم يصلك أي رمز؟ حاول مرة أخرى.',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const arSA: LocalizationResource = {
title: 'تم التحقق بنجاح من البريد الإلكتروني',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/be-BY.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const beBY: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const beBY: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -221,6 +221,7 @@ export const beBY: LocalizationResource = {
formFieldInputPlaceholder__password: 'Увядзіце ваш пароль',
formFieldInputPlaceholder__phoneNumber: 'Увядзіце ваш нумар тэлефона',
formFieldInputPlaceholder__username: 'Увядзіце імя карыстальніка',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -643,6 +644,10 @@ export const beBY: LocalizationResource = {
titleNewTab: 'Залогіньцеся на іншай укладцы',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код аднаўлення пароля',
resendButton: 'Адправіць код яшчэ раз',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const beBY: LocalizationResource = {
title: 'Пошта верыфікавана',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Я згаджаюся з палітыкай канфідэнцыяльнасці',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bg-BG.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const bgBG: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const bgBG: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const bgBG: LocalizationResource = {
formFieldInputPlaceholder__password: 'Парола',
formFieldInputPlaceholder__phoneNumber: '+359 123 456 789',
formFieldInputPlaceholder__username: 'Име на потребител',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const bgBG: LocalizationResource = {
titleNewTab: 'Влезнали сте в друг таб',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Код за нулиране на парола',
resendButton: 'Не сте получили код? Изпрати отново',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const bgBG: LocalizationResource = {
title: 'Успешно потвърден имейл',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Съгласен съм само с политиката за конфиденциалност',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/bn-IN.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const bnIN: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const bnIN: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -219,6 +219,7 @@ export const bnIN: LocalizationResource = {
formFieldInputPlaceholder__password: 'আপনার পাসওয়ার্ড লিখুন',
formFieldInputPlaceholder__phoneNumber: 'আপনার ফোন নম্বর লিখুন',
formFieldInputPlaceholder__username: undefined,
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -641,6 +642,10 @@ export const bnIN: LocalizationResource = {
titleNewTab: 'অন্য ট্যাবে সাইন ইন হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'পাসওয়ার্ড রিসেট কোড',
resendButton: 'কোনো কোড পাননি? পুনরায় পাঠান',
Expand DownExpand Up@@ -763,6 +768,10 @@ export const bnIN: LocalizationResource = {
title: 'সফলভাবে ইমেইল যাচাই করা হয়েছে',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'আমি {{ privacyPolicyLink || link("গোপনীয়তা নীতি") }}-এর সাথে সম্মত',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/ca-ES.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -122,7 +122,6 @@ export const caES: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -137,6 +136,7 @@ export const caES: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const caES: LocalizationResource = {
formFieldInputPlaceholder__password: 'Contrasenya',
formFieldInputPlaceholder__phoneNumber: 'Número de telèfon',
formFieldInputPlaceholder__username: "Nom d'usuari",
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -639,6 +640,10 @@ export const caES: LocalizationResource = {
titleNewTab: "S'ha iniciat sessió en una altra pestanya",
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Codi de restabliment de contrasenya',
resendButton: 'No has rebut el codi? Reenvia',
Expand DownExpand Up@@ -760,6 +765,10 @@ export const caES: LocalizationResource = {
title: 'Correu electrònic verificat amb èxit',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/cs-CZ.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -125,7 +125,6 @@ export const csCZ: LocalizationResource = {
monthly: 'Měsíčně',
pastDue: 'Po splatnosti',
pay: 'Zaplatit {{amount}}',
paymentMethods__label: 'Platební metody',
paymentMethod: {
applePayDescription: {
annual: 'Roční platba',
Expand All@@ -140,6 +139,7 @@ export const csCZ: LocalizationResource = {
testCardInfo: 'Informace o testovací kartě',
},
},
paymentMethods__label: 'Platební metody',
popular: 'Populární',
pricingTable: {
billingCycle: 'Fakturační cyklus',
Expand DownExpand Up@@ -224,6 +224,7 @@ export const csCZ: LocalizationResource = {
formFieldInputPlaceholder__password: 'Zadejte své heslo',
formFieldInputPlaceholder__phoneNumber: 'Zadejte své telefonní číslo',
formFieldInputPlaceholder__username: 'Zadejte své uživatelské jméno',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: 'Popis',
formFieldLabel__apiKeyExpiration: 'Platnost',
formFieldLabel__apiKeyName: 'Název tajného klíče',
Expand DownExpand Up@@ -646,6 +647,10 @@ export const csCZ: LocalizationResource = {
titleNewTab: 'Přihlášeno na jiné kartě',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
forgotPassword: {
formTitle: 'Kód pro resetování hesla',
resendButton: 'Neobdrželi jste kód? Znovu poslat',
Expand DownExpand Up@@ -768,6 +773,10 @@ export const csCZ: LocalizationResource = {
title: 'E-mail úspěšně ověřen',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: 'Souhlasím s {{ privacyPolicyLink || link("Zásadami ochrany osobních údajů") }}',
Expand Down
11 changes: 10 additions & 1 deletion packages/localizations/src/da-DK.ts
Original file line numberDiff line numberDiff line change
Expand Up@@ -121,7 +121,6 @@ export const daDK: LocalizationResource = {
monthly: undefined,
pastDue: undefined,
pay: undefined,
paymentMethods__label: undefined,
paymentMethod: {
applePayDescription: {
annual: undefined,
Expand All@@ -136,6 +135,7 @@ export const daDK: LocalizationResource = {
testCardInfo: undefined,
},
},
paymentMethods__label: undefined,
popular: undefined,
pricingTable: {
billingCycle: undefined,
Expand DownExpand Up@@ -220,6 +220,7 @@ export const daDK: LocalizationResource = {
formFieldInputPlaceholder__password: 'Indtast adgangskode',
formFieldInputPlaceholder__phoneNumber: 'Indtast telefonnummer',
formFieldInputPlaceholder__username: 'Indtast brugernavn',
formFieldInput__emailAddress_format: undefined,
formFieldLabel__apiKeyDescription: undefined,
formFieldLabel__apiKeyExpiration: undefined,
formFieldLabel__apiKeyName: undefined,
Expand DownExpand Up@@ -638,6 +639,10 @@ export const daDK: LocalizationResource = {
titleNewTab: 'Logget ind på anden fane',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
Comment on lines +642 to +645

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Unrelated feature addition - consider separate PR.

The enterpriseConnections block addition is unrelated to the PR's stated objective of adding accessibility title attributes to email fields. This appears to be infrastructure for a separate feature.

To maintain clear PR history and simplify reviews, consider:

  • Moving unrelated localization additions to a separate PR
  • Or documenting in the PR description why these changes are bundled together

If these are required dependencies for the email field changes, please clarify the relationship.

🤖 Prompt for AI Agents
In packages/localizations/src/da-DK.ts around lines 642 to 645, the newly added
enterpriseConnections localization block is unrelated to the accessibility title
changes; remove or relocate this block to a separate PR (or revert it here) and,
if it must remain, add a short comment in this PR explaining why the
enterpriseConnections entries are required for the email title work and link to
any dependent tasks. Ensure the current PR only contains changes relevant to the
accessibility title attributes to keep review scope minimal.

forgotPassword: {
formTitle: 'Nulstil adgangskode',
resendButton: 'Modtog du ikke en kode? Send igen',
Expand DownExpand Up@@ -758,6 +763,10 @@ export const daDK: LocalizationResource = {
title: 'E-mail er bekræftet',
},
},
enterpriseConnections: {
subtitle: undefined,
title: undefined,
},
legalConsent: {
checkbox: {
label__onlyPrivacyPolicy: undefined,
Expand Down
Loading