From: rzzf Date: Mon, 19 Jan 2026 01:03:37 +0000 (+0800) Subject: types(jsx): improve autocomplete type (#14237) X-Git-Tag: v3.5.27~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0596a5f59128ed629910e60c80bfc6fbb9d38ebd;p=thirdparty%2Fvuejs%2Fcore.git types(jsx): improve autocomplete type (#14237) --- diff --git a/packages/runtime-dom/src/jsx.ts b/packages/runtime-dom/src/jsx.ts index e15095b1ec..5d4e7c629a 100644 --- a/packages/runtime-dom/src/jsx.ts +++ b/packages/runtime-dom/src/jsx.ts @@ -561,10 +561,72 @@ export type InputTypeHTMLAttribute = | 'week' | (string & {}) +type AutoFillAddressKind = 'billing' | 'shipping' +type AutoFillBase = '' | 'off' | 'on' +type AutoFillContactField = + | 'email' + | 'tel' + | 'tel-area-code' + | 'tel-country-code' + | 'tel-extension' + | 'tel-local' + | 'tel-local-prefix' + | 'tel-local-suffix' + | 'tel-national' +type AutoFillContactKind = 'home' | 'mobile' | 'work' +type AutoFillCredentialField = 'webauthn' +type AutoFillNormalField = + | 'additional-name' + | 'address-level1' + | 'address-level2' + | 'address-level3' + | 'address-level4' + | 'address-line1' + | 'address-line2' + | 'address-line3' + | 'bday-day' + | 'bday-month' + | 'bday-year' + | 'cc-csc' + | 'cc-exp' + | 'cc-exp-month' + | 'cc-exp-year' + | 'cc-family-name' + | 'cc-given-name' + | 'cc-name' + | 'cc-number' + | 'cc-type' + | 'country' + | 'country-name' + | 'current-password' + | 'family-name' + | 'given-name' + | 'honorific-prefix' + | 'honorific-suffix' + | 'name' + | 'new-password' + | 'one-time-code' + | 'organization' + | 'postal-code' + | 'street-address' + | 'transaction-amount' + | 'transaction-currency' + | 'username' +type OptionalPrefixToken = `${T} ` | '' +type OptionalPostfixToken = ` ${T}` | '' +type AutoFillField = + | AutoFillNormalField + | `${OptionalPrefixToken}${AutoFillContactField}` +type AutoFillSection = `section-${string}` +type AutoFill = + | AutoFillBase + | `${OptionalPrefixToken}${OptionalPrefixToken}${AutoFillField}${OptionalPostfixToken}` +export type InputAutoCompleteAttribute = AutoFill | (string & {}) + export interface InputHTMLAttributes extends HTMLAttributes { accept?: string | undefined alt?: string | undefined - autocomplete?: string | undefined + autocomplete?: InputAutoCompleteAttribute | undefined autofocus?: Booleanish | undefined capture?: boolean | 'user' | 'environment' | undefined // https://www.w3.org/tr/html-media-capture/#the-capture-attribute checked?: Booleanish | any[] | Set | undefined // for IDE v-model multi-checkbox support