react-native 0.72.0-rc.2 → 0.72.0-rc.4

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 (67) hide show
  1. package/Libraries/AppDelegate/RCTAppDelegate.h +5 -0
  2. package/Libraries/AppDelegate/RCTAppDelegate.mm +30 -9
  3. package/Libraries/AppDelegate/RCTAppSetupUtils.h +8 -2
  4. package/Libraries/AppDelegate/RCTAppSetupUtils.mm +25 -1
  5. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +16 -0
  6. package/Libraries/Components/TextInput/TextInput.d.ts +121 -86
  7. package/Libraries/Components/TextInput/TextInput.flow.js +121 -135
  8. package/Libraries/Components/TextInput/TextInput.js +121 -135
  9. package/Libraries/Core/ReactNativeVersion.js +1 -1
  10. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +0 -2
  11. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -13
  12. package/React/Base/RCTJavaScriptLoader.mm +11 -1
  13. package/React/Base/RCTRuntimeExecutorFromBridge.h +19 -0
  14. package/React/Base/RCTRuntimeExecutorFromBridge.mm +56 -0
  15. package/React/Base/RCTVersion.m +1 -1
  16. package/React/CxxBridge/RCTCxxBridge.mm +9 -4
  17. package/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +12 -1
  18. package/React/Fabric/RCTSurfacePresenter.mm +4 -0
  19. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +0 -3
  20. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.mm +1 -37
  21. package/React/React-RCTFabric.podspec +14 -1
  22. package/React-Core.podspec +6 -4
  23. package/ReactAndroid/build.gradle +4 -1
  24. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +14 -1
  25. package/ReactAndroid/gradle.properties +1 -1
  26. package/ReactAndroid/hermes-engine/build.gradle +5 -0
  27. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +9 -0
  28. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +7 -0
  29. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  30. package/ReactAndroid/src/main/jni/CMakeLists.txt +0 -1
  31. package/ReactCommon/React-Fabric.podspec +13 -23
  32. package/ReactCommon/ReactCommon.podspec +0 -4
  33. package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -1
  34. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  35. package/ReactCommon/react/debug/React-debug.podspec +36 -0
  36. package/ReactCommon/react/renderer/core/CoreFeatures.cpp +1 -0
  37. package/ReactCommon/react/renderer/core/CoreFeatures.h +4 -0
  38. package/ReactCommon/react/renderer/imagemanager/ImageRequest.h +7 -3
  39. package/ReactCommon/react/renderer/imagemanager/platform/cxx/react/renderer/imagemanager/ImageRequest.cpp +0 -11
  40. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +5 -0
  41. package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/ImageRequest.cpp +4 -14
  42. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +66 -0
  43. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +2 -1
  44. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +2 -1
  45. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +1 -0
  46. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +2 -1
  47. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +3 -15
  48. package/ReactCommon/react/renderer/scheduler/SchedulerToolbox.h +1 -1
  49. package/ReactCommon/react/utils/React-utils.podspec +57 -0
  50. package/package.json +10 -10
  51. package/scripts/cocoapods/__tests__/codegen_utils-test.rb +7 -2
  52. package/scripts/cocoapods/__tests__/flipper-test.rb +9 -1
  53. package/scripts/cocoapods/__tests__/new_architecture-test.rb +9 -3
  54. package/scripts/cocoapods/__tests__/utils-test.rb +0 -68
  55. package/scripts/cocoapods/codegen_utils.rb +6 -0
  56. package/scripts/cocoapods/flipper.rb +2 -2
  57. package/scripts/cocoapods/new_architecture.rb +13 -0
  58. package/scripts/cocoapods/utils.rb +0 -7
  59. package/scripts/react-native-xcode.sh +1 -1
  60. package/scripts/react_native_pods.rb +6 -6
  61. package/sdks/hermesc/linux64-bin/hermesc +0 -0
  62. package/sdks/hermesc/osx-bin/hermesc +0 -0
  63. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  64. package/template/android/app/build.gradle +0 -7
  65. package/template/ios/Podfile +1 -1
  66. package/template/package.json +6 -6
  67. package/types/experimental.d.ts +101 -0
@@ -94,6 +94,11 @@
94
94
  */
95
95
  - (UIViewController *)createRootViewController;
96
96
 
97
+ /// This method controls whether the App will use RuntimeScheduler. Only applicable in the legacy architecture.
98
+ ///
99
+ /// @return: `YES` to use RuntimeScheduler, `NO` to use JavaScript scheduler. The default value is `YES`.
100
+ - (BOOL)runtimeSchedulerEnabled;
101
+
97
102
  #if RCT_NEW_ARCH_ENABLED
98
103
 
99
104
  /// The TurboModule manager
@@ -6,33 +6,41 @@
6
6
  */
7
7
 
8
8
  #import "RCTAppDelegate.h"
9
+ #import <React/RCTCxxBridgeDelegate.h>
9
10
  #import <React/RCTRootView.h>
11
+ #import <React/RCTRuntimeExecutorFromBridge.h>
12
+ #import <react/renderer/runtimescheduler/RuntimeScheduler.h>
13
+
10
14
  #import "RCTAppSetupUtils.h"
11
15
 
12
16
  #if RCT_NEW_ARCH_ENABLED
13
17
  #import <React/CoreModulesPlugins.h>
14
- #import <React/RCTCxxBridgeDelegate.h>
18
+ #import <React/RCTComponentViewFactory.h>
19
+ #import <React/RCTComponentViewProtocol.h>
15
20
  #import <React/RCTFabricSurfaceHostingProxyRootView.h>
16
21
  #import <React/RCTLegacyViewManagerInteropComponentView.h>
17
22
  #import <React/RCTSurfacePresenter.h>
18
23
  #import <React/RCTSurfacePresenterBridgeAdapter.h>
19
24
  #import <ReactCommon/RCTTurboModuleManager.h>
20
25
  #import <react/config/ReactNativeConfig.h>
21
- #import <react/renderer/runtimescheduler/RuntimeScheduler.h>
22
26
  #import <react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h>
23
27
  #import "RCTLegacyInteropComponents.h"
24
28
 
25
29
  static NSString *const kRNConcurrentRoot = @"concurrentRoot";
26
30
 
27
- @interface RCTAppDelegate () <RCTTurboModuleManagerDelegate, RCTCxxBridgeDelegate> {
31
+ @interface RCTAppDelegate () <RCTTurboModuleManagerDelegate> {
28
32
  std::shared_ptr<const facebook::react::ReactNativeConfig> _reactNativeConfig;
29
33
  facebook::react::ContextContainer::Shared _contextContainer;
30
- std::shared_ptr<facebook::react::RuntimeScheduler> _runtimeScheduler;
31
34
  }
32
35
  @end
33
36
 
34
37
  #endif
35
38
 
39
+ @interface RCTAppDelegate () <RCTCxxBridgeDelegate> {
40
+ std::shared_ptr<facebook::react::RuntimeScheduler> _runtimeScheduler;
41
+ }
42
+ @end
43
+
36
44
  @implementation RCTAppDelegate
37
45
 
38
46
  #if RCT_NEW_ARCH_ENABLED
@@ -126,21 +134,34 @@ static NSString *const kRNConcurrentRoot = @"concurrentRoot";
126
134
  return [UIViewController new];
127
135
  }
128
136
 
129
- #if RCT_NEW_ARCH_ENABLED
137
+ - (BOOL)runtimeSchedulerEnabled
138
+ {
139
+ return YES;
140
+ }
141
+
130
142
  #pragma mark - RCTCxxBridgeDelegate
131
143
  - (std::unique_ptr<facebook::react::JSExecutorFactory>)jsExecutorFactoryForBridge:(RCTBridge *)bridge
132
144
  {
133
- _runtimeScheduler = _runtimeScheduler =
134
- std::make_shared<facebook::react::RuntimeScheduler>(RCTRuntimeExecutorFromBridge(bridge));
145
+ #if RCT_NEW_ARCH_ENABLED
146
+ _runtimeScheduler = std::make_shared<facebook::react::RuntimeScheduler>(RCTRuntimeExecutorFromBridge(bridge));
135
147
  std::shared_ptr<facebook::react::CallInvoker> callInvoker =
136
148
  std::make_shared<facebook::react::RuntimeSchedulerCallInvoker>(_runtimeScheduler);
137
149
  self.turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge delegate:self jsInvoker:callInvoker];
138
150
  _contextContainer->erase("RuntimeScheduler");
139
151
  _contextContainer->insert("RuntimeScheduler", _runtimeScheduler);
140
- return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager, _runtimeScheduler);
152
+ return RCTAppSetupDefaultJsExecutorFactory(bridge, self.turboModuleManager, _runtimeScheduler);
153
+ #else
154
+ if (self.runtimeSchedulerEnabled) {
155
+ _runtimeScheduler = std::make_shared<facebook::react::RuntimeScheduler>(RCTRuntimeExecutorFromBridge(bridge));
156
+ }
157
+ return RCTAppSetupJsExecutorFactoryForOldArch(bridge, _runtimeScheduler);
158
+ #endif
141
159
  }
142
160
 
143
- #pragma mark RCTTurboModuleManagerDelegate
161
+
162
+ #if RCT_NEW_ARCH_ENABLED
163
+
164
+ #pragma mark - RCTTurboModuleManagerDelegate
144
165
 
145
166
  - (Class)getModuleClassFromName:(const char *)name
146
167
  {
@@ -11,7 +11,7 @@
11
11
 
12
12
  #ifdef __cplusplus
13
13
 
14
- #if RCT_NEW_ARCH_ENABLED
14
+ #import <memory>
15
15
 
16
16
  #ifndef RCT_USE_HERMES
17
17
  #if __has_include(<reacthermes/HermesExecutorFactory.h>)
@@ -27,21 +27,27 @@
27
27
  #import <React/JSCExecutorFactory.h>
28
28
  #endif
29
29
 
30
+ #if RCT_NEW_ARCH_ENABLED
30
31
  #import <ReactCommon/RCTTurboModuleManager.h>
31
32
  #endif
32
33
 
33
- #if RCT_NEW_ARCH_ENABLED
34
34
  // Forward declaration to decrease compilation coupling
35
35
  namespace facebook::react {
36
36
  class RuntimeScheduler;
37
37
  }
38
38
 
39
+ #if RCT_NEW_ARCH_ENABLED
39
40
  RCT_EXTERN id<RCTTurboModule> RCTAppSetupDefaultModuleFromClass(Class moduleClass);
40
41
 
41
42
  std::unique_ptr<facebook::react::JSExecutorFactory> RCTAppSetupDefaultJsExecutorFactory(
42
43
  RCTBridge *bridge,
43
44
  RCTTurboModuleManager *turboModuleManager,
44
45
  std::shared_ptr<facebook::react::RuntimeScheduler> const &runtimeScheduler);
46
+
47
+ #else
48
+ std::unique_ptr<facebook::react::JSExecutorFactory> RCTAppSetupJsExecutorFactoryForOldArch(
49
+ RCTBridge *bridge,
50
+ std::shared_ptr<facebook::react::RuntimeScheduler> const &runtimeScheduler);
45
51
  #endif
46
52
 
47
53
  #endif // __cplusplus
@@ -7,6 +7,10 @@
7
7
 
8
8
  #import "RCTAppSetupUtils.h"
9
9
 
10
+ #import <React/RCTJSIExecutorRuntimeInstaller.h>
11
+ #import <react/renderer/runtimescheduler/RuntimeScheduler.h>
12
+ #import <react/renderer/runtimescheduler/RuntimeSchedulerBinding.h>
13
+
10
14
  #if RCT_NEW_ARCH_ENABLED
11
15
  // Turbo Module
12
16
  #import <React/CoreModulesPlugins.h>
@@ -15,7 +19,6 @@
15
19
  #import <React/RCTGIFImageDecoder.h>
16
20
  #import <React/RCTHTTPRequestHandler.h>
17
21
  #import <React/RCTImageLoader.h>
18
- #import <React/RCTJSIExecutorRuntimeInstaller.h>
19
22
  #import <React/RCTLocalAssetImageLoader.h>
20
23
  #import <React/RCTNetworking.h>
21
24
 
@@ -135,4 +138,25 @@ std::unique_ptr<facebook::react::JSExecutorFactory> RCTAppSetupDefaultJsExecutor
135
138
  }));
136
139
  }
137
140
 
141
+ #else
142
+
143
+ std::unique_ptr<facebook::react::JSExecutorFactory> RCTAppSetupJsExecutorFactoryForOldArch(
144
+ RCTBridge *bridge,
145
+ std::shared_ptr<facebook::react::RuntimeScheduler> const &runtimeScheduler)
146
+ {
147
+ #if RCT_USE_HERMES
148
+ return std::make_unique<facebook::react::HermesExecutorFactory>(
149
+ #else
150
+ return std::make_unique<facebook::react::JSCExecutorFactory>(
151
+ #endif
152
+ facebook::react::RCTJSIExecutorRuntimeInstaller([bridge, runtimeScheduler](facebook::jsi::Runtime &runtime) {
153
+ if (!bridge) {
154
+ return;
155
+ }
156
+ if (runtimeScheduler) {
157
+ facebook::react::RuntimeSchedulerBinding::createAndInstallIfNeeded(runtime, runtimeScheduler);
158
+ }
159
+ }));
160
+ }
161
+
138
162
  #endif
@@ -47,6 +47,9 @@ header_search_paths = [
47
47
  "$(PODS_CONFIGURATION_BUILD_DIR)/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
48
48
  "$(PODS_CONFIGURATION_BUILD_DIR)/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
49
49
  "$(PODS_CONFIGURATION_BUILD_DIR)/React-RCTFabric/RCTFabric.framework/Headers/",
50
+ "$(PODS_CONFIGURATION_BUILD_DIR)/React-utils/React_utils.framework/Headers/",
51
+ "$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers/",
52
+ "$(PODS_CONFIGURATION_BUILD_DIR)/React-runtimescheduler/React_runtimescheduler.framework/Headers/",
50
53
  ] : []).map{|p| "\"#{p}\""}.join(" ")
51
54
 
52
55
  Pod::Spec.new do |s|
@@ -75,10 +78,23 @@ Pod::Spec.new do |s|
75
78
  s.dependency "RCTRequired"
76
79
  s.dependency "RCTTypeSafety"
77
80
  s.dependency "ReactCommon/turbomodule/core"
81
+ s.dependency "React-RCTNetwork"
82
+ s.dependency "React-RCTImage"
83
+ s.dependency "React-NativeModulesApple"
84
+ s.dependency "React-CoreModules"
85
+ s.dependency "React-runtimescheduler"
86
+
87
+ if ENV['USE_HERMES'] == nil || ENV['USE_HERMES'] == "1"
88
+ s.dependency "React-hermes"
89
+ else
90
+ s.dependency "React-jsc"
91
+ end
78
92
 
79
93
  if is_new_arch_enabled
80
94
  s.dependency "React-RCTFabric"
81
95
  s.dependency "React-graphics"
96
+ s.dependency "React-utils"
97
+ s.dependency "React-debug"
82
98
 
83
99
  s.script_phases = {
84
100
  :name => "Generate Legacy Components Interop",
@@ -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
  */