diff --git a/packages/react-strict-dom/src/native/modules/createStrictDOMTextInputComponent.js b/packages/react-strict-dom/src/native/modules/createStrictDOMTextInputComponent.js index b95de51d..794ff933 100644 --- a/packages/react-strict-dom/src/native/modules/createStrictDOMTextInputComponent.js +++ b/packages/react-strict-dom/src/native/modules/createStrictDOMTextInputComponent.js @@ -52,6 +52,7 @@ export function createStrictDOMTextInputComponent( const elementRef = useStrictDOMElement(ref, { tagName }); const { + autoCapitalize, autoComplete, defaultValue, disabled, @@ -121,6 +122,9 @@ export function createStrictDOMTextInputComponent( // Component-specific props + if (autoCapitalize != null) { + nativeProps.autoCapitalize = autoCapitalize; + } if (autoComplete != null) { nativeProps.autoComplete = autoComplete; } diff --git a/packages/react-strict-dom/src/types/StrictReactDOMProps.js b/packages/react-strict-dom/src/types/StrictReactDOMProps.js index 4428a22f..351cc67f 100644 --- a/packages/react-strict-dom/src/types/StrictReactDOMProps.js +++ b/packages/react-strict-dom/src/types/StrictReactDOMProps.js @@ -280,14 +280,7 @@ export type StrictReactDOMProps = $ReadOnly<{ onTouchMove?: $FlowFixMe, // TEMP // Other - autoCapitalize?: ?( - | 'off' - | 'none' - | 'on' - | 'sentences' - | 'words' - | 'characters' - ), + autoCapitalize?: ?('none' | 'sentences' | 'words' | 'characters'), autoFocus?: ?boolean, children?: React.Node, 'data-layoutconformance'?: ?('classic' | 'strict'), diff --git a/packages/react-strict-dom/src/types/renderer.native.js b/packages/react-strict-dom/src/types/renderer.native.js index 66e6b6a8..8254fc93 100644 --- a/packages/react-strict-dom/src/types/renderer.native.js +++ b/packages/react-strict-dom/src/types/renderer.native.js @@ -55,6 +55,7 @@ type ReactNativeProps = { text?: ?string }, accessibilityViewIsModal?: ?boolean, + autoCapitalize?: ?('none' | 'sentences' | 'words' | 'characters'), autoComplete?: ?string, alt?: ?Stringish, animated?: ?boolean, // non-standard diff --git a/packages/react-strict-dom/tests/html/__snapshots__/html-test.js.snap-native b/packages/react-strict-dom/tests/html/__snapshots__/html-test.js.snap-native index aade6bb4..ee13ed6c 100644 --- a/packages/react-strict-dom/tests/html/__snapshots__/html-test.js.snap-native +++ b/packages/react-strict-dom/tests/html/__snapshots__/html-test.js.snap-native @@ -3204,6 +3204,7 @@ exports[` "input" supports global attributes 1`] = ` } } accessibilityViewIsModal={true} + autoCapitalize="sentences" enterKeyHint="go" focusable={true} importantForAccessibility="no-hide-descendants" @@ -5491,6 +5492,7 @@ exports[` "textarea" supports global attributes 1`] = ` } } accessibilityViewIsModal={true} + autoCapitalize="sentences" enterKeyHint="go" focusable={true} importantForAccessibility="no-hide-descendants" diff --git a/packages/react-strict-dom/tests/html/__snapshots__/html-test.js.snap-web b/packages/react-strict-dom/tests/html/__snapshots__/html-test.js.snap-web index e708843e..8ff66082 100644 --- a/packages/react-strict-dom/tests/html/__snapshots__/html-test.js.snap-web +++ b/packages/react-strict-dom/tests/html/__snapshots__/html-test.js.snap-web @@ -72,7 +72,7 @@ exports[` "a" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-a x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs" data-testid="some-test-id" @@ -206,7 +206,7 @@ exports[` "article" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-article x1ghz6dp x1717udv" data-testid="some-test-id" @@ -340,7 +340,7 @@ exports[` "aside" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-aside x1ghz6dp x1717udv" data-testid="some-test-id" @@ -474,7 +474,7 @@ exports[` "b" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-b x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs" data-testid="some-test-id" @@ -608,7 +608,7 @@ exports[` "bdi" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-bdi x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs" data-testid="some-test-id" @@ -742,7 +742,7 @@ exports[` "bdo" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-bdo x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs" data-testid="some-test-id" @@ -876,7 +876,7 @@ exports[` "blockquote" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-blockquote x1ghz6dp x1717udv" data-testid="some-test-id" @@ -1010,7 +1010,7 @@ exports[` "br" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-br" data-testid="some-test-id" @@ -1154,7 +1154,7 @@ exports[` "button" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-button x1y0btm7 x1ghz6dp x1717udv xmkeg23" data-testid="some-test-id" @@ -1290,7 +1290,7 @@ exports[` "code" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-code x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs x1lxnp44 xrv4cvt xysyzu8" data-testid="some-test-id" @@ -1424,7 +1424,7 @@ exports[` "del" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-del" data-testid="some-test-id" @@ -1558,7 +1558,7 @@ exports[` "div" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-div x1ghz6dp x1717udv" data-testid="some-test-id" @@ -1692,7 +1692,7 @@ exports[` "em" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-em x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs" data-testid="some-test-id" @@ -1826,7 +1826,7 @@ exports[` "fieldset" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-fieldset x1ghz6dp x1717udv" data-testid="some-test-id" @@ -1960,7 +1960,7 @@ exports[` "footer" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-footer x1ghz6dp x1717udv" data-testid="some-test-id" @@ -2094,7 +2094,7 @@ exports[` "form" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-form x1ghz6dp x1717udv" data-testid="some-test-id" @@ -2228,7 +2228,7 @@ exports[` "h1" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-h1 x1ghz6dp x1717udv xngnso2 x1vvkbs" data-testid="some-test-id" @@ -2362,7 +2362,7 @@ exports[` "h2" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-h2 x1ghz6dp x1717udv xngnso2 x1vvkbs" data-testid="some-test-id" @@ -2496,7 +2496,7 @@ exports[` "h3" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-h3 x1ghz6dp x1717udv xngnso2 x1vvkbs" data-testid="some-test-id" @@ -2630,7 +2630,7 @@ exports[` "h4" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-h4 x1ghz6dp x1717udv xngnso2 x1vvkbs" data-testid="some-test-id" @@ -2764,7 +2764,7 @@ exports[` "h5" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-h5 x1ghz6dp x1717udv xngnso2 x1vvkbs" data-testid="some-test-id" @@ -2898,7 +2898,7 @@ exports[` "h6" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-h6 x1ghz6dp x1717udv xngnso2 x1vvkbs" data-testid="some-test-id" @@ -3032,7 +3032,7 @@ exports[` "header" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-header x1ghz6dp x1717udv" data-testid="some-test-id" @@ -3166,7 +3166,7 @@ exports[` "hr" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-hr x1ghz6dp x1717udv x42x0ya xng3xce xc342km x9f619 xjm9jq1" data-testid="some-test-id" @@ -3300,7 +3300,7 @@ exports[` "i" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-i x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs" data-testid="some-test-id" @@ -3452,7 +3452,7 @@ exports[` "img" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-img xuw900x xt7dq6l x193iq5w" data-testid="some-test-id" @@ -3617,7 +3617,7 @@ exports[` "input" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-input x1ghz6dp x1717udv xmkeg23 x1y0btm7" data-testid="some-test-id" @@ -3752,7 +3752,7 @@ exports[` "ins" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-ins" data-testid="some-test-id" @@ -3886,7 +3886,7 @@ exports[` "kbd" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-kbd" data-testid="some-test-id" @@ -4027,7 +4027,7 @@ exports[` "label" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-label x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs" data-testid="some-test-id" @@ -4167,7 +4167,7 @@ exports[` "main" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-main x1ghz6dp x1717udv" data-testid="some-test-id" @@ -4301,7 +4301,7 @@ exports[` "mark" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-mark x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs" data-testid="some-test-id" @@ -4435,7 +4435,7 @@ exports[` "nav" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-nav x1ghz6dp x1717udv" data-testid="some-test-id" @@ -4569,7 +4569,7 @@ exports[` "ol" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-ol xe8uvvx x1ghz6dp x1717udv" data-testid="some-test-id" @@ -4709,7 +4709,7 @@ exports[` "optgroup" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-optgroup" data-testid="some-test-id" @@ -4843,7 +4843,7 @@ exports[` "option" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-option" data-testid="some-test-id" @@ -4986,7 +4986,7 @@ exports[` "p" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-p x1ghz6dp x1717udv" data-testid="some-test-id" @@ -5120,7 +5120,7 @@ exports[` "pre" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-pre x1ghz6dp x1717udv x1lxnp44 xrv4cvt xysyzu8" data-testid="some-test-id" @@ -5254,7 +5254,7 @@ exports[` "s" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-s" data-testid="some-test-id" @@ -5388,7 +5388,7 @@ exports[` "section" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-section x1ghz6dp x1717udv" data-testid="some-test-id" @@ -5540,7 +5540,7 @@ exports[` "select" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-select x1y0btm7 x1ghz6dp x1717udv" data-testid="some-test-id" @@ -5674,7 +5674,7 @@ exports[` "span" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-span x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs" data-testid="some-test-id" @@ -5808,7 +5808,7 @@ exports[` "strong" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-strong x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs x117nqv4" data-testid="some-test-id" @@ -5942,7 +5942,7 @@ exports[` "sub" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-sub x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs" data-testid="some-test-id" @@ -6076,7 +6076,7 @@ exports[` "sup" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-sup x1ghz6dp x1717udv x1hl2dhg x16tdsg8 x1vvkbs" data-testid="some-test-id" @@ -6235,7 +6235,7 @@ exports[` "textarea" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-textarea x1ghz6dp x1717udv xmkeg23 x1y0btm7 x288g5" data-testid="some-test-id" @@ -6370,7 +6370,7 @@ exports[` "u" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-u" data-testid="some-test-id" @@ -6504,7 +6504,7 @@ exports[` "ul" supports global attributes 1`] = ` aria-valuemin={0} aria-valuenow={5} aria-valuetext="Five" - autoCapitalize={true} + autoCapitalize="sentences" autoFocus={true} className="html-ul xe8uvvx x1ghz6dp x1717udv" data-testid="some-test-id" diff --git a/packages/react-strict-dom/tests/html/__snapshots__/html-test.native.js.snap b/packages/react-strict-dom/tests/html/__snapshots__/html-test.native.js.snap index b7d6a17b..d18543b2 100644 --- a/packages/react-strict-dom/tests/html/__snapshots__/html-test.native.js.snap +++ b/packages/react-strict-dom/tests/html/__snapshots__/html-test.native.js.snap @@ -247,6 +247,66 @@ exports[` (native polyfills) polyfills: props "srcSet" prop with l /> `; +exports[` (native polyfills) polyfills: props "autoCapitalize" prop: "characters" 1`] = ` + +`; + +exports[` (native polyfills) polyfills: props "autoCapitalize" prop: "none" 1`] = ` + +`; + +exports[` (native polyfills) polyfills: props "autoCapitalize" prop: "sentences" 1`] = ` + +`; + +exports[` (native polyfills) polyfills: props "autoCapitalize" prop: "words" 1`] = ` + +`; + exports[` (native polyfills) polyfills: props "autoComplete" prop: "additional-name" 1`] = ` (native polyfills)', () => { }); }); + test('"autoCapitalize" prop', () => { + ['none', 'sentences', 'words', 'characters'].forEach( + (autoCapitalize) => { + let root; + act(() => { + root = create(); + }); + expect(root.toJSON()).toMatchSnapshot(`"${autoCapitalize}"`); + } + ); + }); + test('"disabled" prop', () => { let root; act(() => {