react-native-windows 0.0.0-canary.650 → 0.0.0-canary.652

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/.flowconfig +1 -1
  2. package/Libraries/Animated/NativeAnimatedHelper.js +7 -4
  3. package/Libraries/Animated/nodes/AnimatedProps.js +1 -5
  4. package/Libraries/Animated/nodes/AnimatedStyle.js +5 -5
  5. package/Libraries/Components/Clipboard/Clipboard.d.ts +4 -4
  6. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +3 -2
  7. package/Libraries/Components/TextInput/TextInput.d.ts +121 -86
  8. package/Libraries/Components/TextInput/TextInput.flow.js +121 -135
  9. package/Libraries/Components/TextInput/TextInput.js +121 -135
  10. package/Libraries/Components/TextInput/TextInput.windows.js +121 -135
  11. package/Libraries/Core/ReactNativeVersion.js +1 -1
  12. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +20 -0
  13. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  14. package/Libraries/Performance/QuickPerformanceLogger.js +1 -1
  15. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +0 -2
  16. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +3 -3
  17. package/Libraries/Renderer/shims/ReactFabric.js +2 -3
  18. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -3
  19. package/Libraries/Renderer/shims/ReactNative.js +2 -3
  20. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -3
  21. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +2 -3
  22. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -3
  23. package/Libraries/StyleSheet/StyleSheetTypes.js +7 -5
  24. package/Libraries/StyleSheet/private/_TransformStyle.js +2 -2
  25. package/Libraries/TurboModule/TurboModuleRegistry.js +40 -8
  26. package/Libraries/WebPerformance/NativePerformance.js +1 -1
  27. package/Libraries/WebPerformance/Performance.js +1 -1
  28. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +2 -2
  29. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +2 -2
  30. package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +1 -1
  31. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +6 -1
  32. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +1 -2
  33. package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +6 -1
  34. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +3 -5
  35. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.h +2 -4
  36. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +2 -4
  37. package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +2 -4
  38. package/Microsoft.ReactNative/IReactContext.cpp +4 -0
  39. package/Microsoft.ReactNative/IReactContext.h +1 -0
  40. package/Microsoft.ReactNative/IReactContext.idl +6 -0
  41. package/Microsoft.ReactNative/Modules/AppearanceModule.h +1 -1
  42. package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
  43. package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
  44. package/Microsoft.ReactNative/ReactHost/React.h +2 -0
  45. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +5 -0
  46. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
  47. package/Microsoft.ReactNative/ReactInstanceSettings.h +13 -0
  48. package/Microsoft.ReactNative/ReactInstanceSettings.idl +4 -0
  49. package/Microsoft.ReactNative/ReactNativeHost.cpp +1 -0
  50. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
  51. package/PropertySheets/Generated/PackageVersion.g.props +2 -2
  52. package/PropertySheets/JSEngine.props +1 -1
  53. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +2 -4
  54. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +2 -4
  55. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +2 -4
  56. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +2 -4
  57. package/ReactCommon/Yoga.cpp +70 -77
  58. package/Shared/DevSettings.h +3 -0
  59. package/Shared/JSI/NapiJsiV8RuntimeHolder.cpp +58 -40
  60. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +0 -8
  61. package/Shared/OInstance.cpp +4 -4
  62. package/Shared/Shared.vcxitems.filters +3 -3
  63. package/codegen/NativePerformanceSpec.g.h +3 -3
  64. package/codegen/rnwcoreJSI-generated.cpp +2 -3
  65. package/codegen/rnwcoreJSI.h +5 -5
  66. package/jest/__tests__/setup-test.js +18 -0
  67. package/jest/setup.js +52 -30
  68. package/package.json +15 -15
package/.flowconfig CHANGED
@@ -131,4 +131,4 @@ untyped-import
131
131
  untyped-type-import
132
132
 
133
133
  [version]
134
- ^0.203.0
134
+ ^0.204.1
@@ -425,6 +425,9 @@ const SUPPORTED_TRANSFORMS = {
425
425
  rotateY: true,
426
426
  rotateZ: true,
427
427
  perspective: true,
428
+ skewX: true,
429
+ skewY: true,
430
+ matrix: ReactNativeFeatureFlags.shouldUseAnimatedObjectForTransform(),
428
431
  };
429
432
 
430
433
  const SUPPORTED_INTERPOLATION_PARAMS = {
@@ -451,19 +454,19 @@ function addWhitelistedInterpolationParam(param: string): void {
451
454
  }
452
455
 
453
456
  function isSupportedColorStyleProp(prop: string): boolean {
454
- return SUPPORTED_COLOR_STYLES.hasOwnProperty(prop);
457
+ return SUPPORTED_COLOR_STYLES[prop] === true;
455
458
  }
456
459
 
457
460
  function isSupportedStyleProp(prop: string): boolean {
458
- return SUPPORTED_STYLES.hasOwnProperty(prop);
461
+ return SUPPORTED_STYLES[prop] === true;
459
462
  }
460
463
 
461
464
  function isSupportedTransformProp(prop: string): boolean {
462
- return SUPPORTED_TRANSFORMS.hasOwnProperty(prop);
465
+ return SUPPORTED_TRANSFORMS[prop] === true;
463
466
  }
464
467
 
465
468
  function isSupportedInterpolationParam(param: string): boolean {
466
- return SUPPORTED_INTERPOLATION_PARAMS.hasOwnProperty(param);
469
+ return SUPPORTED_INTERPOLATION_PARAMS[param] === true;
467
470
  }
468
471
 
469
472
  function validateTransform(
@@ -12,7 +12,6 @@
12
12
 
13
13
  import type {PlatformConfig} from '../AnimatedPlatformConfig';
14
14
 
15
- import ReactNativeFeatureFlags from '../../ReactNative/ReactNativeFeatureFlags';
16
15
  import {findNodeHandle} from '../../ReactNative/RendererProxy';
17
16
  import {AnimatedEvent} from '../AnimatedEvent';
18
17
  import NativeAnimatedHelper from '../NativeAnimatedHelper';
@@ -29,10 +28,7 @@ function createAnimatedProps(inputProps: Object): Object {
29
28
  props[key] = new AnimatedStyle(value);
30
29
  } else if (value instanceof AnimatedNode) {
31
30
  props[key] = value;
32
- } else if (
33
- ReactNativeFeatureFlags.isAnimatedObjectEnabled &&
34
- hasAnimatedNode(value)
35
- ) {
31
+ } else if (hasAnimatedNode(value)) {
36
32
  props[key] = new AnimatedObject(value);
37
33
  } else {
38
34
  props[key] = value;
@@ -31,13 +31,13 @@ function createAnimatedStyle(
31
31
  for (const key in style) {
32
32
  const value = style[key];
33
33
  if (key === 'transform') {
34
- animatedStyles[key] = new AnimatedTransform(value);
34
+ animatedStyles[key] =
35
+ ReactNativeFeatureFlags.shouldUseAnimatedObjectForTransform()
36
+ ? new AnimatedObject(value)
37
+ : new AnimatedTransform(value);
35
38
  } else if (value instanceof AnimatedNode) {
36
39
  animatedStyles[key] = value;
37
- } else if (
38
- ReactNativeFeatureFlags.isAnimatedObjectEnabled &&
39
- hasAnimatedNode(value)
40
- ) {
40
+ } else if (hasAnimatedNode(value)) {
41
41
  animatedStyles[key] = new AnimatedObject(value);
42
42
  } else if (keepUnanimatedValues) {
43
43
  animatedStyles[key] = value;
@@ -14,15 +14,15 @@ export interface ClipboardStatic {
14
14
 
15
15
  /**
16
16
  * Clipboard has been extracted from react-native core and will be removed in a future release.
17
- * It can now be installed and imported from `@react-native-community/clipboard` instead of 'react-native'.
18
- * @see https://github.com/react-native-community/clipboard
17
+ * It can now be installed and imported from `@react-native-clipboard/clipboard` instead of 'react-native'.
18
+ * @see https://github.com/react-native-clipboard/clipboard
19
19
  * @deprecated
20
20
  */
21
21
  export const Clipboard: ClipboardStatic;
22
22
  /**
23
23
  * Clipboard has been extracted from react-native core and will be removed in a future release.
24
- * It can now be installed and imported from `@react-native-community/clipboard` instead of 'react-native'.
25
- * @see https://github.com/react-native-community/clipboard
24
+ * It can now be installed and imported from `@react-native-clipboard/clipboard` instead of 'react-native'.
25
+ * @see https://github.com/react-native-clipboard/clipboard
26
26
  * @deprecated
27
27
  */
28
28
  export type Clipboard = ClipboardStatic;
@@ -112,14 +112,15 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
112
112
  };
113
113
 
114
114
  _onLayout = async (event: ViewLayoutEvent) => {
115
- const wasFrameNull = this._frame == null;
115
+ const oldFrame = this._frame;
116
116
  this._frame = event.nativeEvent.layout;
117
117
  if (!this._initialFrameHeight) {
118
118
  // save the initial frame height, before the keyboard is visible
119
119
  this._initialFrameHeight = this._frame.height;
120
120
  }
121
121
 
122
- if (wasFrameNull) {
122
+ // update bottom height for the first time or when the height is changed
123
+ if (!oldFrame || oldFrame.height !== this._frame.height) {
123
124
  await this._updateBottomIfNecessary();
124
125
  }
125
126
 
@@ -289,92 +289,6 @@ export interface TextInputIOSProps {
289
289
  * @see https://reactnative.dev/docs/textinput#props
290
290
  */
291
291
  export interface TextInputAndroidProps {
292
- /**
293
- * Specifies autocomplete hints for the system, so it can provide autofill. On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
294
- * To disable autocomplete, set `autoComplete` to `off`.
295
- *
296
- * *Android Only*
297
- *
298
- * Possible values for `autoComplete` are:
299
- *
300
- * - `birthdate-day`
301
- * - `birthdate-full`
302
- * - `birthdate-month`
303
- * - `birthdate-year`
304
- * - `cc-csc`
305
- * - `cc-exp`
306
- * - `cc-exp-day`
307
- * - `cc-exp-month`
308
- * - `cc-exp-year`
309
- * - `cc-number`
310
- * - `email`
311
- * - `gender`
312
- * - `name`
313
- * - `name-family`
314
- * - `name-given`
315
- * - `name-middle`
316
- * - `name-middle-initial`
317
- * - `name-prefix`
318
- * - `name-suffix`
319
- * - `password`
320
- * - `password-new`
321
- * - `postal-address`
322
- * - `postal-address-country`
323
- * - `postal-address-extended`
324
- * - `postal-address-extended-postal-code`
325
- * - `postal-address-locality`
326
- * - `postal-address-region`
327
- * - `postal-code`
328
- * - `street-address`
329
- * - `sms-otp`
330
- * - `tel`
331
- * - `tel-country-code`
332
- * - `tel-national`
333
- * - `tel-device`
334
- * - `username`
335
- * - `username-new`
336
- * - `off`
337
- */
338
- autoComplete?:
339
- | 'birthdate-day'
340
- | 'birthdate-full'
341
- | 'birthdate-month'
342
- | 'birthdate-year'
343
- | 'cc-csc'
344
- | 'cc-exp'
345
- | 'cc-exp-day'
346
- | 'cc-exp-month'
347
- | 'cc-exp-year'
348
- | 'cc-number'
349
- | 'email'
350
- | 'gender'
351
- | 'name'
352
- | 'name-family'
353
- | 'name-given'
354
- | 'name-middle'
355
- | 'name-middle-initial'
356
- | 'name-prefix'
357
- | 'name-suffix'
358
- | 'password'
359
- | 'password-new'
360
- | 'postal-address'
361
- | 'postal-address-country'
362
- | 'postal-address-extended'
363
- | 'postal-address-extended-postal-code'
364
- | 'postal-address-locality'
365
- | 'postal-address-region'
366
- | 'postal-code'
367
- | 'street-address'
368
- | 'sms-otp'
369
- | 'tel'
370
- | 'tel-country-code'
371
- | 'tel-national'
372
- | 'tel-device'
373
- | 'username'
374
- | 'username-new'
375
- | 'off'
376
- | undefined;
377
-
378
292
  /**
379
293
  * When provided it will set the color of the cursor (or "caret") in the component.
380
294
  * Unlike the behavior of `selectionColor` the cursor color will be set independently
@@ -558,6 +472,127 @@ export interface TextInputProps
558
472
  */
559
473
  autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters' | undefined;
560
474
 
475
+ /**
476
+ * Specifies autocomplete hints for the system, so it can provide autofill.
477
+ * On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
478
+ * To disable autocomplete, set autoComplete to off.
479
+ *
480
+ * The following values work across platforms:
481
+ *
482
+ * - `additional-name`
483
+ * - `address-line1`
484
+ * - `address-line2`
485
+ * - `cc-number`
486
+ * - `country`
487
+ * - `current-password`
488
+ * - `email`
489
+ * - `family-name`
490
+ * - `given-name`
491
+ * - `honorific-prefix`
492
+ * - `honorific-suffix`
493
+ * - `name`
494
+ * - `new-password`
495
+ * - `off`
496
+ * - `one-time-code`
497
+ * - `postal-code`
498
+ * - `street-address`
499
+ * - `tel`
500
+ * - `username`
501
+ *
502
+ * The following values work on iOS only:
503
+ *
504
+ * - `nickname`
505
+ * - `organization`
506
+ * - `organization-title`
507
+ * - `url`
508
+ *
509
+ * The following values work on Android only:
510
+ *
511
+ * - `birthdate-day`
512
+ * - `birthdate-full`
513
+ * - `birthdate-month`
514
+ * - `birthdate-year`
515
+ * - `cc-csc`
516
+ * - `cc-exp`
517
+ * - `cc-exp-day`
518
+ * - `cc-exp-month`
519
+ * - `cc-exp-year`
520
+ * - `gender`
521
+ * - `name-family`
522
+ * - `name-given`
523
+ * - `name-middle`
524
+ * - `name-middle-initial`
525
+ * - `name-prefix`
526
+ * - `name-suffix`
527
+ * - `password`
528
+ * - `password-new`
529
+ * - `postal-address`
530
+ * - `postal-address-country`
531
+ * - `postal-address-extended`
532
+ * - `postal-address-extended-postal-code`
533
+ * - `postal-address-locality`
534
+ * - `postal-address-region`
535
+ * - `sms-otp`
536
+ * - `tel-country-code`
537
+ * - `tel-national`
538
+ * - `tel-device`
539
+ * - `username-new`
540
+ */
541
+ autoComplete?:
542
+ | 'additional-name'
543
+ | 'address-line1'
544
+ | 'address-line2'
545
+ | 'birthdate-day'
546
+ | 'birthdate-full'
547
+ | 'birthdate-month'
548
+ | 'birthdate-year'
549
+ | 'cc-csc'
550
+ | 'cc-exp'
551
+ | 'cc-exp-day'
552
+ | 'cc-exp-month'
553
+ | 'cc-exp-year'
554
+ | 'cc-number'
555
+ | 'country'
556
+ | 'current-password'
557
+ | 'email'
558
+ | 'family-name'
559
+ | 'gender'
560
+ | 'given-name'
561
+ | 'honorific-prefix'
562
+ | 'honorific-suffix'
563
+ | 'name'
564
+ | 'name-family'
565
+ | 'name-given'
566
+ | 'name-middle'
567
+ | 'name-middle-initial'
568
+ | 'name-prefix'
569
+ | 'name-suffix'
570
+ | 'new-password'
571
+ | 'nickname'
572
+ | 'one-time-code'
573
+ | 'organization'
574
+ | 'organization-title'
575
+ | 'password'
576
+ | 'password-new'
577
+ | 'postal-address'
578
+ | 'postal-address-country'
579
+ | 'postal-address-extended'
580
+ | 'postal-address-extended-postal-code'
581
+ | 'postal-address-locality'
582
+ | 'postal-address-region'
583
+ | 'postal-code'
584
+ | 'street-address'
585
+ | 'sms-otp'
586
+ | 'tel'
587
+ | 'tel-country-code'
588
+ | 'tel-national'
589
+ | 'tel-device'
590
+ | 'url'
591
+ | 'username'
592
+ | 'username-new'
593
+ | 'off'
594
+ | undefined;
595
+
561
596
  /**
562
597
  * If false, disables auto-correct.
563
598
  * The default value is true.
@@ -196,36 +196,6 @@ export type enterKeyHintType =
196
196
  type PasswordRules = string;
197
197
 
198
198
  type IOSProps = $ReadOnly<{|
199
- /**
200
- * Give the keyboard and the system information about the
201
- * expected semantic meaning for the content that users enter.
202
- * @platform ios
203
- */
204
- autoComplete?: ?(
205
- | 'address-line1'
206
- | 'address-line2'
207
- | 'cc-number'
208
- | 'current-password'
209
- | 'country'
210
- | 'email'
211
- | 'name'
212
- | 'additional-name'
213
- | 'family-name'
214
- | 'given-name'
215
- | 'nickname'
216
- | 'honorific-prefix'
217
- | 'honorific-suffix'
218
- | 'new-password'
219
- | 'off'
220
- | 'one-time-code'
221
- | 'organization'
222
- | 'organization-title'
223
- | 'postal-code'
224
- | 'street-address'
225
- | 'tel'
226
- | 'url'
227
- | 'username'
228
- ),
229
199
  /**
230
200
  * When the clear button should appear on the right side of the text view.
231
201
  * This property is supported only for single-line TextInput component.
@@ -328,111 +298,6 @@ type IOSProps = $ReadOnly<{|
328
298
  |}>;
329
299
 
330
300
  type AndroidProps = $ReadOnly<{|
331
- /**
332
- * Specifies autocomplete hints for the system, so it can provide autofill. On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
333
- * To disable autocomplete, set `autoComplete` to `off`.
334
- *
335
- * *Android Only*
336
- *
337
- * Possible values for `autoComplete` are:
338
- *
339
- * - `birthdate-day`
340
- * - `birthdate-full`
341
- * - `birthdate-month`
342
- * - `birthdate-year`
343
- * - `cc-csc`
344
- * - `cc-exp`
345
- * - `cc-exp-day`
346
- * - `cc-exp-month`
347
- * - `cc-exp-year`
348
- * - `cc-number`
349
- * - `email`
350
- * - `gender`
351
- * - `name`
352
- * - `name-family`
353
- * - `name-given`
354
- * - `name-middle`
355
- * - `name-middle-initial`
356
- * - `name-prefix`
357
- * - `name-suffix`
358
- * - `password`
359
- * - `password-new`
360
- * - `postal-address`
361
- * - `postal-address-country`
362
- * - `postal-address-extended`
363
- * - `postal-address-extended-postal-code`
364
- * - `postal-address-locality`
365
- * - `postal-address-region`
366
- * - `postal-code`
367
- * - `street-address`
368
- * - `sms-otp`
369
- * - `tel`
370
- * - `tel-country-code`
371
- * - `tel-national`
372
- * - `tel-device`
373
- * - `username`
374
- * - `username-new`
375
- * - `off`
376
- *
377
- * @platform android
378
- */
379
- autoComplete?: ?(
380
- | 'birthdate-day'
381
- | 'birthdate-full'
382
- | 'birthdate-month'
383
- | 'birthdate-year'
384
- | 'cc-csc'
385
- | 'cc-exp'
386
- | 'cc-exp-day'
387
- | 'cc-exp-month'
388
- | 'cc-exp-year'
389
- | 'cc-number'
390
- | 'email'
391
- | 'gender'
392
- | 'name'
393
- | 'name-family'
394
- | 'name-given'
395
- | 'name-middle'
396
- | 'name-middle-initial'
397
- | 'name-prefix'
398
- | 'name-suffix'
399
- | 'password'
400
- | 'password-new'
401
- | 'postal-address'
402
- | 'postal-address-country'
403
- | 'postal-address-extended'
404
- | 'postal-address-extended-postal-code'
405
- | 'postal-address-locality'
406
- | 'postal-address-region'
407
- | 'postal-code'
408
- | 'street-address'
409
- | 'sms-otp'
410
- | 'tel'
411
- | 'tel-country-code'
412
- | 'tel-national'
413
- | 'tel-device'
414
- | 'username'
415
- | 'username-new'
416
- | 'off'
417
- // additional HTML autocomplete values
418
- | 'address-line1'
419
- | 'address-line2'
420
- | 'bday'
421
- | 'bday-day'
422
- | 'bday-month'
423
- | 'bday-year'
424
- | 'country'
425
- | 'current-password'
426
- | 'honorific-prefix'
427
- | 'honorific-suffix'
428
- | 'additional-name'
429
- | 'family-name'
430
- | 'given-name'
431
- | 'new-password'
432
- | 'one-time-code'
433
- | 'sex'
434
- ),
435
-
436
301
  /**
437
302
  * When provided it will set the color of the cursor (or "caret") in the component.
438
303
  * Unlike the behavior of `selectionColor` the cursor color will be set independently
@@ -533,6 +398,127 @@ export type Props = $ReadOnly<{|
533
398
  */
534
399
  autoCapitalize?: ?AutoCapitalize,
535
400
 
401
+ /**
402
+ * Specifies autocomplete hints for the system, so it can provide autofill.
403
+ * On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
404
+ * To disable autocomplete, set autoComplete to off.
405
+ *
406
+ * The following values work across platforms:
407
+ *
408
+ * - `additional-name`
409
+ * - `address-line1`
410
+ * - `address-line2`
411
+ * - `cc-number`
412
+ * - `country`
413
+ * - `current-password`
414
+ * - `email`
415
+ * - `family-name`
416
+ * - `given-name`
417
+ * - `honorific-prefix`
418
+ * - `honorific-suffix`
419
+ * - `name`
420
+ * - `new-password`
421
+ * - `off`
422
+ * - `one-time-code`
423
+ * - `postal-code`
424
+ * - `street-address`
425
+ * - `tel`
426
+ * - `username`
427
+ *
428
+ * The following values work on iOS only:
429
+ *
430
+ * - `nickname`
431
+ * - `organization`
432
+ * - `organization-title`
433
+ * - `url`
434
+ *
435
+ * The following values work on Android only:
436
+ *
437
+ * - `birthdate-day`
438
+ * - `birthdate-full`
439
+ * - `birthdate-month`
440
+ * - `birthdate-year`
441
+ * - `cc-csc`
442
+ * - `cc-exp`
443
+ * - `cc-exp-day`
444
+ * - `cc-exp-month`
445
+ * - `cc-exp-year`
446
+ * - `gender`
447
+ * - `name-family`
448
+ * - `name-given`
449
+ * - `name-middle`
450
+ * - `name-middle-initial`
451
+ * - `name-prefix`
452
+ * - `name-suffix`
453
+ * - `password`
454
+ * - `password-new`
455
+ * - `postal-address`
456
+ * - `postal-address-country`
457
+ * - `postal-address-extended`
458
+ * - `postal-address-extended-postal-code`
459
+ * - `postal-address-locality`
460
+ * - `postal-address-region`
461
+ * - `sms-otp`
462
+ * - `tel-country-code`
463
+ * - `tel-national`
464
+ * - `tel-device`
465
+ * - `username-new`
466
+ */
467
+ autoComplete?: ?(
468
+ | 'additional-name'
469
+ | 'address-line1'
470
+ | 'address-line2'
471
+ | 'birthdate-day'
472
+ | 'birthdate-full'
473
+ | 'birthdate-month'
474
+ | 'birthdate-year'
475
+ | 'cc-csc'
476
+ | 'cc-exp'
477
+ | 'cc-exp-day'
478
+ | 'cc-exp-month'
479
+ | 'cc-exp-year'
480
+ | 'cc-number'
481
+ | 'country'
482
+ | 'current-password'
483
+ | 'email'
484
+ | 'family-name'
485
+ | 'gender'
486
+ | 'given-name'
487
+ | 'honorific-prefix'
488
+ | 'honorific-suffix'
489
+ | 'name'
490
+ | 'name-family'
491
+ | 'name-given'
492
+ | 'name-middle'
493
+ | 'name-middle-initial'
494
+ | 'name-prefix'
495
+ | 'name-suffix'
496
+ | 'new-password'
497
+ | 'nickname'
498
+ | 'one-time-code'
499
+ | 'organization'
500
+ | 'organization-title'
501
+ | 'password'
502
+ | 'password-new'
503
+ | 'postal-address'
504
+ | 'postal-address-country'
505
+ | 'postal-address-extended'
506
+ | 'postal-address-extended-postal-code'
507
+ | 'postal-address-locality'
508
+ | 'postal-address-region'
509
+ | 'postal-code'
510
+ | 'street-address'
511
+ | 'sms-otp'
512
+ | 'tel'
513
+ | 'tel-country-code'
514
+ | 'tel-national'
515
+ | 'tel-device'
516
+ | 'url'
517
+ | 'username'
518
+ | 'username-new'
519
+ | 'off'
520
+ ),
521
+
536
522
  /**
537
523
  * If `false`, disables auto-correct. The default value is `true`.
538
524
  */