@office-iss/react-native-win32 0.0.0-canary.28 → 0.0.0-canary.281

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 (1425) hide show
  1. package/.eslintignore +5 -2
  2. package/.eslintrc.js +27 -2
  3. package/.flowconfig +76 -37
  4. package/CHANGELOG.json +5763 -1
  5. package/CHANGELOG.md +2301 -4
  6. package/IntegrationTests/AccessibilityManagerTest.js +8 -11
  7. package/IntegrationTests/AppEventsTest.js +3 -3
  8. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +12 -5
  9. package/IntegrationTests/ImageCachePolicyTest.js +5 -5
  10. package/IntegrationTests/ImageSnapshotTest.js +2 -2
  11. package/IntegrationTests/IntegrationTestHarnessTest.js +9 -6
  12. package/IntegrationTests/IntegrationTestsApp.js +16 -21
  13. package/IntegrationTests/LayoutEventsTest.js +14 -12
  14. package/IntegrationTests/LoggingTestModule.js +10 -12
  15. package/IntegrationTests/PromiseTest.js +2 -1
  16. package/IntegrationTests/SimpleSnapshotTest.js +2 -4
  17. package/IntegrationTests/SyncMethodTest.js +2 -2
  18. package/IntegrationTests/TimersTest.js +20 -5
  19. package/IntegrationTests/WebSocketTest.js +5 -5
  20. package/IntegrationTests/launchWebSocketServer.sh +12 -0
  21. package/IntegrationTests/websocket_integration_test_server.js +3 -3
  22. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +87 -0
  23. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +51 -11
  24. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +5 -43
  25. package/Libraries/Alert/Alert.d.ts +91 -0
  26. package/Libraries/Alert/Alert.js +31 -10
  27. package/Libraries/Alert/Alert.win32.js +6 -4
  28. package/Libraries/Alert/NativeAlertManager.js +5 -26
  29. package/Libraries/Alert/RCTAlertManager.android.js +2 -4
  30. package/Libraries/Alert/RCTAlertManager.ios.js +2 -3
  31. package/Libraries/Animated/Animated.d.ts +626 -0
  32. package/Libraries/Animated/Animated.js +48 -0
  33. package/Libraries/Animated/AnimatedEvent.js +256 -0
  34. package/Libraries/Animated/AnimatedImplementation.js +754 -0
  35. package/Libraries/Animated/AnimatedMock.js +195 -0
  36. package/Libraries/Animated/AnimatedPlatformConfig.js +13 -0
  37. package/Libraries/Animated/AnimatedWeb.js +26 -0
  38. package/Libraries/Animated/Easing.d.ts +37 -0
  39. package/Libraries/Animated/Easing.js +250 -0
  40. package/Libraries/Animated/NativeAnimatedAllowlist.js +122 -0
  41. package/Libraries/Animated/NativeAnimatedModule.js +13 -0
  42. package/Libraries/Animated/NativeAnimatedTurboModule.js +13 -0
  43. package/Libraries/Animated/SpringConfig.js +98 -0
  44. package/Libraries/Animated/animations/Animation.js +192 -0
  45. package/Libraries/Animated/animations/DecayAnimation.js +122 -0
  46. package/Libraries/Animated/animations/SpringAnimation.js +373 -0
  47. package/Libraries/Animated/animations/TimingAnimation.js +174 -0
  48. package/Libraries/Animated/bezier.js +164 -0
  49. package/Libraries/Animated/components/AnimatedFlatList.js +20 -0
  50. package/Libraries/Animated/components/AnimatedImage.js +22 -0
  51. package/Libraries/Animated/components/AnimatedScrollView.js +137 -0
  52. package/Libraries/Animated/components/AnimatedSectionList.js +22 -0
  53. package/Libraries/Animated/components/AnimatedText.js +22 -0
  54. package/Libraries/Animated/components/AnimatedView.js +20 -0
  55. package/Libraries/Animated/createAnimatedComponent.js +101 -0
  56. package/Libraries/Animated/nodes/AnimatedAddition.js +71 -0
  57. package/Libraries/Animated/nodes/AnimatedColor.js +323 -0
  58. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +80 -0
  59. package/Libraries/Animated/nodes/AnimatedDivision.js +87 -0
  60. package/Libraries/Animated/nodes/AnimatedInterpolation.js +420 -0
  61. package/Libraries/Animated/nodes/AnimatedModulo.js +66 -0
  62. package/Libraries/Animated/nodes/AnimatedMultiplication.js +70 -0
  63. package/Libraries/Animated/nodes/AnimatedNode.js +179 -0
  64. package/Libraries/Animated/nodes/AnimatedObject.js +169 -0
  65. package/Libraries/Animated/nodes/AnimatedProps.js +285 -0
  66. package/Libraries/Animated/nodes/AnimatedStyle.js +255 -0
  67. package/Libraries/Animated/nodes/AnimatedSubtraction.js +71 -0
  68. package/Libraries/Animated/nodes/AnimatedTracking.js +104 -0
  69. package/Libraries/Animated/nodes/AnimatedTransform.js +202 -0
  70. package/Libraries/Animated/nodes/AnimatedValue.js +348 -0
  71. package/Libraries/Animated/nodes/AnimatedValueXY.js +238 -0
  72. package/Libraries/Animated/nodes/AnimatedWithChildren.js +85 -0
  73. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +17 -0
  74. package/Libraries/Animated/useAnimatedProps.js +346 -0
  75. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  76. package/Libraries/Animated/useAnimatedValue.js +25 -0
  77. package/Libraries/AppState/AppState.d.ts +58 -0
  78. package/Libraries/AppState/AppState.js +91 -144
  79. package/Libraries/AppState/NativeAppState.js +5 -22
  80. package/Libraries/BatchedBridge/BatchedBridge.js +2 -2
  81. package/Libraries/BatchedBridge/MessageQueue.js +136 -114
  82. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  83. package/Libraries/BatchedBridge/NativeModules.js +36 -21
  84. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestConfig.js +1 -1
  85. package/Libraries/BatchedBridge/__mocks__/MessageQueueTestModule.js +3 -3
  86. package/Libraries/Blob/Blob.js +20 -3
  87. package/Libraries/Blob/BlobManager.js +7 -10
  88. package/Libraries/Blob/BlobRegistry.js +15 -10
  89. package/Libraries/Blob/BlobTypes.js +1 -1
  90. package/Libraries/Blob/File.js +3 -4
  91. package/Libraries/Blob/FileReader.js +36 -16
  92. package/Libraries/Blob/NativeBlobModule.js +5 -18
  93. package/Libraries/Blob/NativeFileReaderModule.js +5 -15
  94. package/Libraries/Blob/URL.js +38 -87
  95. package/Libraries/Blob/URLSearchParams.js +71 -0
  96. package/Libraries/Blob/__mocks__/BlobModule.js +1 -1
  97. package/Libraries/Blob/__mocks__/FileReaderModule.js +1 -1
  98. package/Libraries/BugReporting/BugReporting.js +8 -9
  99. package/Libraries/BugReporting/NativeBugReporting.js +5 -12
  100. package/Libraries/BugReporting/dumpReactTree.js +1 -1
  101. package/Libraries/BugReporting/getReactData.js +17 -8
  102. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +177 -0
  103. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +493 -0
  104. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +466 -96
  105. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +5 -19
  106. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
  107. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -51
  108. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +36 -0
  109. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.ios.js +26 -0
  110. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +36 -0
  111. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  112. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +77 -52
  113. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +4 -47
  114. package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
  115. package/Libraries/Components/Button/ButtonWin32.Props.js +3 -3
  116. package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -0
  117. package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
  118. package/Libraries/Components/Button/ButtonWin32.js +83 -103
  119. package/Libraries/Components/Button/ButtonWin32.js.map +1 -0
  120. package/Libraries/Components/Button.d.ts +42 -0
  121. package/Libraries/Components/Button.js +328 -125
  122. package/Libraries/Components/Button.win32.js +463 -0
  123. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  124. package/Libraries/Components/Clipboard/Clipboard.js +3 -5
  125. package/Libraries/Components/Clipboard/NativeClipboard.js +5 -14
  126. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +4 -116
  127. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +44 -35
  128. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  129. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +7 -2
  130. package/Libraries/Components/EnterString.win32.d.ts +12 -12
  131. package/Libraries/Components/EnterString.win32.js +82 -114
  132. package/Libraries/Components/EnterString.win32.js.map +1 -0
  133. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  134. package/Libraries/Components/Keyboard/Keyboard.js +81 -71
  135. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  136. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +123 -56
  137. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +5 -13
  138. package/Libraries/Components/LayoutConformance/LayoutConformance.d.ts +21 -0
  139. package/Libraries/Components/LayoutConformance/LayoutConformance.js +59 -0
  140. package/Libraries/Components/LayoutConformance/LayoutConformanceNativeComponent.js +29 -0
  141. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  142. package/Libraries/Components/Pressable/Pressable.js +179 -46
  143. package/Libraries/Components/Pressable/Pressable.win32.js +437 -0
  144. package/Libraries/Components/Pressable/useAndroidRippleForView.js +38 -23
  145. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +36 -27
  146. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  147. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.js +1 -1
  148. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +5 -27
  149. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +4 -77
  150. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -56
  151. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  152. package/Libraries/Components/RefreshControl/RefreshControl.js +16 -38
  153. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +6 -8
  154. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +4 -20
  155. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  156. package/Libraries/Components/SafeAreaView/SafeAreaView.js +12 -39
  157. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +12 -41
  158. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +5 -32
  159. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +38 -21
  160. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +13 -20
  161. package/Libraries/Components/ScrollView/ScrollView.d.ts +910 -0
  162. package/Libraries/Components/ScrollView/ScrollView.js +1119 -439
  163. package/Libraries/Components/ScrollView/ScrollViewCommands.js +5 -5
  164. package/Libraries/Components/ScrollView/ScrollViewContext.js +24 -0
  165. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +168 -18
  166. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +11 -17
  167. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +206 -62
  168. package/Libraries/Components/ScrollView/processDecelerationRate.js +2 -4
  169. package/Libraries/Components/Sound/NativeSoundManager.js +5 -15
  170. package/Libraries/Components/Sound/SoundManager.js +3 -4
  171. package/Libraries/Components/StaticRenderer.js +1 -1
  172. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +5 -27
  173. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +5 -35
  174. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  175. package/Libraries/Components/StatusBar/StatusBar.js +40 -60
  176. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +5 -56
  177. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  178. package/Libraries/Components/Switch/Switch.js +162 -133
  179. package/Libraries/Components/Switch/SwitchNativeComponent.js +5 -50
  180. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +237 -67
  181. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  182. package/Libraries/Components/TextInput/InputAccessoryView.js +28 -23
  183. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +5 -18
  184. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +29 -34
  185. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +24 -42
  186. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +169 -0
  187. package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
  188. package/Libraries/Components/TextInput/Tests/TextInputTest.js +128 -126
  189. package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -0
  190. package/Libraries/Components/TextInput/TextInput.d.ts +1012 -0
  191. package/Libraries/Components/TextInput/TextInput.flow.js +1115 -0
  192. package/Libraries/Components/TextInput/TextInput.js +1145 -444
  193. package/Libraries/Components/TextInput/TextInput.win32.js +2043 -179
  194. package/Libraries/Components/TextInput/TextInputNativeCommands.js +29 -0
  195. package/Libraries/Components/TextInput/TextInputState.js +42 -21
  196. package/Libraries/Components/TextInput/TextInputState.win32.js +55 -30
  197. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +26 -0
  198. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +5 -31
  199. package/Libraries/Components/ToastAndroid/ToastAndroid.android.js +11 -10
  200. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  201. package/Libraries/Components/ToastAndroid/ToastAndroid.js +45 -0
  202. package/Libraries/Components/ToastAndroid/ToastAndroid.win32.js +16 -10
  203. package/Libraries/Components/Touchable/BoundingDimensions.js +13 -6
  204. package/Libraries/Components/Touchable/PooledClass.js +26 -15
  205. package/Libraries/Components/Touchable/Position.js +9 -5
  206. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
  207. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +344 -381
  208. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -0
  209. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  210. package/Libraries/Components/Touchable/Touchable.js +122 -133
  211. package/Libraries/Components/Touchable/Touchable.win32.js +978 -0
  212. package/Libraries/Components/Touchable/TouchableBounce.js +60 -55
  213. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +62 -0
  214. package/Libraries/Components/Touchable/TouchableHighlight.js +66 -56
  215. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +119 -0
  216. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +86 -67
  217. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.js +99 -51
  218. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +81 -0
  219. package/Libraries/Components/Touchable/TouchableOpacity.js +95 -58
  220. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -34
  221. package/Libraries/Components/Touchable/TouchableWin32.Props.js +3 -3
  222. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -0
  223. package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
  224. package/Libraries/Components/Touchable/TouchableWin32.Types.js +3 -3
  225. package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -0
  226. package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
  227. package/Libraries/Components/Touchable/TouchableWin32.js +507 -529
  228. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -0
  229. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +151 -0
  230. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +148 -107
  231. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +4 -19
  232. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +3 -4
  233. package/Libraries/Components/View/ReactNativeStyleAttributes.js +200 -69
  234. package/Libraries/Components/View/ReactNativeViewAttributes.js +7 -3
  235. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +37 -13
  236. package/Libraries/Components/View/View.d.ts +29 -0
  237. package/Libraries/Components/View/View.js +108 -16
  238. package/Libraries/Components/View/View.win32.js +276 -0
  239. package/Libraries/Components/View/ViewAccessibility.d.ts +566 -0
  240. package/Libraries/Components/View/ViewAccessibility.js +88 -7
  241. package/Libraries/Components/View/ViewAccessibility.win32.js +180 -0
  242. package/Libraries/Components/View/ViewNativeComponent.js +17 -71
  243. package/Libraries/Components/View/ViewPropTypes.d.ts +354 -0
  244. package/Libraries/Components/View/ViewPropTypes.js +218 -66
  245. package/Libraries/Components/View/ViewPropTypes.win32.js +731 -0
  246. package/Libraries/Components/View/ViewWin32.d.ts +30 -12
  247. package/Libraries/Components/View/ViewWin32.js +130 -80
  248. package/Libraries/Core/Devtools/getDevServer.js +9 -8
  249. package/Libraries/Core/Devtools/loadBundleFromServer.js +152 -0
  250. package/Libraries/Core/Devtools/loadBundleFromServer.win32.js +153 -0
  251. package/Libraries/Core/Devtools/openFileInEditor.js +6 -2
  252. package/Libraries/Core/Devtools/openURLInBrowser.js +3 -2
  253. package/Libraries/Core/Devtools/parseErrorStack.js +14 -23
  254. package/Libraries/Core/Devtools/parseHermesStack.js +71 -44
  255. package/Libraries/Core/Devtools/symbolicateStackTrace.js +13 -58
  256. package/Libraries/Core/ExceptionsManager.js +130 -114
  257. package/Libraries/Core/ExtendedError.js +33 -0
  258. package/Libraries/Core/InitializeCore.js +7 -3
  259. package/Libraries/Core/NativeExceptionsManager.js +5 -100
  260. package/Libraries/Core/RawEventEmitter.js +39 -0
  261. package/Libraries/Core/ReactFiberErrorDialog.js +47 -38
  262. package/Libraries/Core/ReactNativeVersion.js +13 -7
  263. package/Libraries/Core/ReactNativeVersionCheck.js +11 -8
  264. package/Libraries/Core/ReactNativeVersionCheck.win32.js +11 -8
  265. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +5 -21
  266. package/Libraries/Core/Timers/JSTimers.js +94 -120
  267. package/Libraries/Core/Timers/NativeTiming.js +5 -19
  268. package/Libraries/Core/Timers/immediateShim.js +68 -0
  269. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  270. package/Libraries/Core/__mocks__/ErrorUtils.js +1 -1
  271. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +19 -0
  272. package/Libraries/Core/checkNativeVersion.js +1 -1
  273. package/Libraries/Core/polyfillPromise.js +19 -3
  274. package/Libraries/Core/registerCallableModule.d.ts +16 -0
  275. package/Libraries/Core/registerCallableModule.js +42 -0
  276. package/Libraries/Core/setUpAlert.js +2 -2
  277. package/Libraries/Core/setUpBatchedBridge.js +9 -20
  278. package/Libraries/Core/setUpDeveloperTools.js +59 -60
  279. package/Libraries/Core/setUpErrorHandling.js +21 -19
  280. package/Libraries/Core/setUpGlobals.js +8 -6
  281. package/Libraries/Core/setUpNavigator.js +8 -7
  282. package/Libraries/Core/setUpPerformance.js +31 -0
  283. package/Libraries/Core/setUpReactDevTools.js +194 -12
  284. package/Libraries/Core/setUpReactRefresh.js +4 -6
  285. package/Libraries/Core/setUpRegeneratorRuntime.js +28 -9
  286. package/Libraries/Core/setUpSegmentFetcher.js +9 -47
  287. package/Libraries/Core/setUpTimers.js +99 -8
  288. package/Libraries/Core/setUpXHR.js +5 -5
  289. package/Libraries/Debugging/DebuggingOverlay.js +110 -0
  290. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  291. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  292. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  293. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +63 -0
  294. package/Libraries/EventEmitter/NativeEventEmitter.js +92 -40
  295. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +29 -0
  296. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +27 -68
  297. package/Libraries/EventEmitter/RCTEventEmitter.js +3 -3
  298. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  299. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.js +2 -4
  300. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +34 -11
  301. package/Libraries/Events/CustomEvent.js +32 -0
  302. package/Libraries/Events/EventPolyfill.js +239 -0
  303. package/Libraries/Image/AssetRegistry.js +2 -27
  304. package/Libraries/Image/AssetSourceResolver.js +76 -39
  305. package/Libraries/Image/AssetUtils.js +47 -0
  306. package/Libraries/Image/Image.android.js +204 -271
  307. package/Libraries/Image/Image.d.ts +373 -0
  308. package/Libraries/Image/Image.ios.js +145 -104
  309. package/Libraries/Image/Image.win32.js +150 -93
  310. package/Libraries/Image/ImageAnalyticsTagContext.js +22 -0
  311. package/Libraries/Image/ImageBackground.js +29 -13
  312. package/Libraries/Image/ImageInjection.js +87 -0
  313. package/Libraries/Image/ImageProps.js +158 -32
  314. package/Libraries/Image/ImageResizeMode.d.ts +56 -0
  315. package/Libraries/Image/ImageResizeMode.js +5 -2
  316. package/Libraries/Image/ImageSource.d.ts +74 -0
  317. package/Libraries/Image/ImageSource.js +73 -23
  318. package/Libraries/Image/ImageSourceUtils.js +80 -0
  319. package/Libraries/Image/ImageTypes.d.ts +25 -25
  320. package/Libraries/Image/ImageTypes.flow.js +78 -0
  321. package/Libraries/Image/ImageTypes.js +8 -8
  322. package/Libraries/Image/ImageTypes.js.map +1 -0
  323. package/Libraries/Image/ImageUtils.js +25 -0
  324. package/Libraries/Image/ImageViewNativeComponent.js +147 -29
  325. package/Libraries/Image/NativeImageEditor.js +13 -0
  326. package/Libraries/Image/NativeImageLoaderAndroid.js +5 -32
  327. package/Libraries/Image/NativeImageLoaderIOS.js +5 -24
  328. package/Libraries/Image/NativeImageLoaderWin32.js +5 -32
  329. package/Libraries/Image/NativeImageStoreAndroid.js +13 -0
  330. package/Libraries/Image/NativeImageStoreIOS.js +13 -0
  331. package/Libraries/Image/RelativeImageStub.js +2 -2
  332. package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
  333. package/Libraries/Image/Tests/ImageWin32Test.js +22 -19
  334. package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -0
  335. package/Libraries/Image/TextInlineImageNativeComponent.js +38 -7
  336. package/Libraries/Image/assetPaths.js +36 -0
  337. package/Libraries/Image/nativeImageSource.js +4 -6
  338. package/Libraries/Image/resolveAssetSource.js +65 -31
  339. package/Libraries/Image/resolveAssetSource.win32.js +18 -6
  340. package/Libraries/Inspector/BorderBox.js +27 -15
  341. package/Libraries/Inspector/BoxInspector.js +62 -45
  342. package/Libraries/Inspector/ElementBox.js +65 -53
  343. package/Libraries/Inspector/ElementProperties.js +35 -62
  344. package/Libraries/Inspector/Inspector.js +153 -259
  345. package/Libraries/Inspector/Inspector.win32.js +157 -263
  346. package/Libraries/Inspector/InspectorOverlay.js +28 -53
  347. package/Libraries/Inspector/InspectorOverlay.win32.js +31 -54
  348. package/Libraries/Inspector/InspectorPanel.js +31 -37
  349. package/Libraries/Inspector/NetworkOverlay.js +28 -18
  350. package/Libraries/Inspector/PerformanceOverlay.js +5 -5
  351. package/Libraries/Inspector/ReactDevToolsOverlay.js +165 -0
  352. package/Libraries/Inspector/StyleInspector.js +38 -32
  353. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +81 -0
  354. package/Libraries/Inspector/resolveBoxStyle.js +1 -1
  355. package/Libraries/Interaction/FrameRateLogger.js +10 -22
  356. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  357. package/Libraries/Interaction/InteractionManager.js +35 -41
  358. package/Libraries/Interaction/InteractionManagerStub.js +176 -0
  359. package/Libraries/Interaction/JSEventLoopWatchdog.js +10 -15
  360. package/Libraries/Interaction/NativeFrameRateLogger.js +5 -16
  361. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  362. package/Libraries/Interaction/PanResponder.js +26 -28
  363. package/Libraries/Interaction/TaskQueue.js +15 -16
  364. package/Libraries/Interaction/TouchHistoryMath.js +32 -29
  365. package/Libraries/JSInspector/InspectorAgent.js +4 -4
  366. package/Libraries/JSInspector/JSInspector.js +2 -5
  367. package/Libraries/JSInspector/NetworkAgent.js +12 -17
  368. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  369. package/Libraries/LayoutAnimation/LayoutAnimation.js +88 -39
  370. package/Libraries/Linking/Linking.d.ts +61 -0
  371. package/Libraries/Linking/Linking.js +50 -41
  372. package/Libraries/Linking/NativeIntentAndroid.js +13 -0
  373. package/Libraries/Linking/NativeLinkingManager.js +13 -0
  374. package/Libraries/Lists/FillRateHelper.js +6 -232
  375. package/Libraries/Lists/FlatList.d.ts +244 -0
  376. package/Libraries/Lists/FlatList.js +195 -128
  377. package/Libraries/Lists/SectionList.d.ts +267 -0
  378. package/Libraries/Lists/SectionList.js +38 -33
  379. package/Libraries/Lists/SectionListModern.js +249 -0
  380. package/Libraries/Lists/ViewabilityHelper.js +10 -327
  381. package/Libraries/Lists/VirtualizeUtils.js +6 -235
  382. package/Libraries/Lists/VirtualizedList.js +10 -2224
  383. package/Libraries/Lists/VirtualizedListContext.js +18 -0
  384. package/Libraries/Lists/VirtualizedSectionList.js +9 -565
  385. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +4 -3
  386. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +9 -9
  387. package/Libraries/LogBox/Data/LogBoxData.js +106 -75
  388. package/Libraries/LogBox/Data/LogBoxLog.js +125 -12
  389. package/Libraries/LogBox/Data/LogBoxSymbolication.js +10 -9
  390. package/Libraries/LogBox/Data/parseLogBoxLog.js +289 -76
  391. package/Libraries/LogBox/LogBox.d.ts +28 -0
  392. package/Libraries/LogBox/LogBox.js +175 -90
  393. package/Libraries/LogBox/LogBoxInspectorContainer.js +7 -7
  394. package/Libraries/LogBox/LogBoxNotificationContainer.js +11 -8
  395. package/Libraries/LogBox/UI/AnsiHighlight.js +42 -24
  396. package/Libraries/LogBox/UI/LogBoxButton.js +6 -7
  397. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  398. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  399. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  400. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  401. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  402. package/Libraries/LogBox/UI/LogBoxInspector.js +13 -77
  403. package/Libraries/LogBox/UI/LogBoxInspectorBody.js +87 -0
  404. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +18 -11
  405. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +173 -0
  406. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +9 -53
  407. package/Libraries/LogBox/UI/LogBoxInspectorFooterButton.js +58 -0
  408. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +19 -79
  409. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +113 -0
  410. package/Libraries/LogBox/UI/LogBoxInspectorHeaderButton.js +76 -0
  411. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -7
  412. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +16 -14
  413. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +196 -0
  414. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +3 -5
  415. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +6 -10
  416. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +8 -10
  417. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +118 -0
  418. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +19 -11
  419. package/Libraries/LogBox/UI/LogBoxMessage.js +100 -19
  420. package/Libraries/LogBox/UI/LogBoxNotification.js +20 -158
  421. package/Libraries/LogBox/UI/LogBoxNotificationCountBadge.js +63 -0
  422. package/Libraries/LogBox/UI/LogBoxNotificationDismissButton.js +67 -0
  423. package/Libraries/LogBox/UI/LogBoxNotificationMessage.js +57 -0
  424. package/Libraries/LogBox/UI/LogBoxStyle.js +1 -3
  425. package/Libraries/LogBox/UI/LogBoxStyle.win32.js +65 -0
  426. package/Libraries/Modal/Modal.d.ts +116 -0
  427. package/Libraries/Modal/Modal.js +168 -72
  428. package/Libraries/Modal/ModalInjection.js +15 -0
  429. package/Libraries/Modal/NativeModalManager.js +5 -14
  430. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +4 -117
  431. package/Libraries/NativeComponent/BaseViewConfig.android.js +421 -0
  432. package/Libraries/NativeComponent/BaseViewConfig.ios.js +421 -0
  433. package/Libraries/NativeComponent/BaseViewConfig.win32.js +413 -0
  434. package/Libraries/NativeComponent/NativeComponentRegistry.js +164 -0
  435. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +30 -0
  436. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +25 -0
  437. package/Libraries/NativeComponent/StaticViewConfigValidator.js +144 -0
  438. package/Libraries/NativeComponent/ViewConfig.js +52 -0
  439. package/Libraries/NativeComponent/ViewConfigIgnore.js +51 -0
  440. package/Libraries/NativeModules/specs/NativeDevMenu.js +5 -16
  441. package/Libraries/NativeModules/specs/NativeDevSettings.js +5 -26
  442. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +5 -12
  443. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +5 -41
  444. package/Libraries/NativeModules/specs/NativeLogBox.js +5 -13
  445. package/Libraries/NativeModules/specs/NativeRedBox.js +5 -13
  446. package/Libraries/NativeModules/specs/NativeSourceCode.js +5 -14
  447. package/Libraries/Network/FormData.js +21 -5
  448. package/Libraries/Network/NativeNetworkingAndroid.js +5 -30
  449. package/Libraries/Network/NativeNetworkingIOS.js +5 -30
  450. package/Libraries/Network/RCTNetworking.android.js +32 -20
  451. package/Libraries/Network/RCTNetworking.ios.js +22 -18
  452. package/Libraries/Network/RCTNetworking.win32.js +40 -69
  453. package/Libraries/Network/RCTNetworkingEventDefinitions.flow.js +57 -0
  454. package/Libraries/Network/XHRInterceptor.js +66 -18
  455. package/Libraries/Network/XMLHttpRequest.js +107 -31
  456. package/Libraries/Network/convertRequestBody.js +4 -4
  457. package/Libraries/Network/fetch.js +2 -1
  458. package/Libraries/NewAppScreen/components/Colors.js +2 -3
  459. package/Libraries/NewAppScreen/components/DebugInstructions.js +9 -6
  460. package/Libraries/NewAppScreen/components/Header.js +38 -16
  461. package/Libraries/NewAppScreen/components/HermesBadge.js +53 -0
  462. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +52 -27
  463. package/Libraries/NewAppScreen/components/ReloadInstructions.js +5 -2
  464. package/Libraries/NewAppScreen/components/logo.png +0 -0
  465. package/Libraries/NewAppScreen/index.js +12 -6
  466. package/Libraries/Performance/Systrace.d.ts +66 -0
  467. package/Libraries/Performance/Systrace.js +116 -171
  468. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +5 -52
  469. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +163 -0
  470. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +64 -27
  471. package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
  472. package/Libraries/PersonaCoin/PersonaCoin.js +16 -22
  473. package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -0
  474. package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
  475. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +20 -20
  476. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -0
  477. package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
  478. package/Libraries/PersonaCoin/PersonaCoinTypes.js +24 -24
  479. package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -0
  480. package/Libraries/Pressability/HoverState.js +4 -4
  481. package/Libraries/Pressability/HoverState.win32.js +62 -0
  482. package/Libraries/Pressability/Pressability.js +244 -150
  483. package/Libraries/Pressability/Pressability.win32.js +1093 -0
  484. package/Libraries/Pressability/PressabilityDebug.js +31 -27
  485. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +49 -0
  486. package/Libraries/Pressability/PressabilityTypes.js +18 -0
  487. package/Libraries/Pressability/usePressability.js +28 -11
  488. package/Libraries/Promise.js +5 -35
  489. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +5 -66
  490. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +295 -0
  491. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +134 -83
  492. package/Libraries/QuirkSettings/CachingNativeQuirkSettings.js +30 -0
  493. package/Libraries/QuirkSettings/NativeQuirkSettings.js +17 -0
  494. package/Libraries/QuirkSettings/QuirkSettings.js +34 -0
  495. package/Libraries/QuirkSettings/Quirks.js +17 -0
  496. package/Libraries/ReactNative/AppContainer-dev.js +208 -0
  497. package/Libraries/ReactNative/AppContainer-prod.js +50 -0
  498. package/Libraries/ReactNative/AppContainer.js +13 -138
  499. package/Libraries/ReactNative/AppRegistry.d.ts +121 -0
  500. package/Libraries/ReactNative/AppRegistry.js +127 -78
  501. package/Libraries/ReactNative/BridgelessUIManager.js +419 -0
  502. package/Libraries/ReactNative/DisplayMode.js +32 -0
  503. package/Libraries/ReactNative/FabricUIManager.js +116 -27
  504. package/Libraries/ReactNative/HeadlessJsTaskError.js +1 -3
  505. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  506. package/Libraries/ReactNative/I18nManager.js +17 -12
  507. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +5 -13
  508. package/Libraries/ReactNative/NativeI18nManager.js +5 -18
  509. package/Libraries/ReactNative/NativeUIManager.js +5 -114
  510. package/Libraries/ReactNative/PaperUIManager.js +79 -52
  511. package/Libraries/ReactNative/PaperUIManager.win32.js +210 -0
  512. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +150 -0
  513. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +100 -0
  514. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstanceUtils.js +38 -0
  515. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload.js +492 -0
  516. package/Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps.js +33 -0
  517. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +31 -0
  518. package/Libraries/ReactNative/ReactNativeRuntimeDiagnostics.js +68 -0
  519. package/Libraries/ReactNative/RendererImplementation.js +164 -0
  520. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  521. package/Libraries/ReactNative/RendererProxy.js +26 -0
  522. package/Libraries/ReactNative/RootTag.d.ts +13 -0
  523. package/Libraries/ReactNative/RootTag.js +27 -0
  524. package/Libraries/ReactNative/UIManager.d.ts +113 -0
  525. package/Libraries/ReactNative/UIManager.js +178 -24
  526. package/Libraries/ReactNative/UIManagerProperties.js +6 -9
  527. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +33 -0
  528. package/Libraries/ReactNative/getNativeComponentAttributes.js +51 -25
  529. package/Libraries/ReactNative/renderApplication.js +72 -23
  530. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  531. package/Libraries/ReactNative/requireNativeComponent.js +9 -6
  532. package/Libraries/ReactPrivate/ReactNativePrivateInitializeCore.js +1 -1
  533. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +66 -11
  534. package/Libraries/Renderer/implementations/ReactFabric-dev.js +16297 -19948
  535. package/Libraries/Renderer/implementations/ReactFabric-prod.js +8563 -5501
  536. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +9018 -5570
  537. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +16537 -20505
  538. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +8466 -5422
  539. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +9225 -5791
  540. package/Libraries/Renderer/shims/ReactFabric.js +10 -9
  541. package/Libraries/Renderer/shims/ReactFeatureFlags.js +5 -3
  542. package/Libraries/Renderer/shims/ReactNative.js +6 -5
  543. package/Libraries/Renderer/shims/ReactNativeTypes.js +231 -85
  544. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +27 -37
  545. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +8 -7
  546. package/Libraries/Settings/NativeSettingsManager.js +5 -18
  547. package/Libraries/Settings/Settings.d.ts +18 -0
  548. package/Libraries/Settings/Settings.ios.js +7 -7
  549. package/Libraries/Settings/Settings.js +33 -0
  550. package/Libraries/Share/NativeShareModule.js +5 -16
  551. package/Libraries/Share/Share.d.ts +80 -0
  552. package/Libraries/Share/Share.js +33 -25
  553. package/Libraries/StyleSheet/EdgeInsetsPropType.js +5 -2
  554. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +10 -11
  555. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  556. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +52 -16
  557. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +15 -5
  558. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  559. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +11 -5
  560. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.js +4 -4
  561. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +2 -4
  562. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +2 -2
  563. package/Libraries/StyleSheet/PointPropType.js +1 -1
  564. package/Libraries/StyleSheet/Rect.js +1 -3
  565. package/Libraries/StyleSheet/StyleSheet.d.ts +150 -0
  566. package/Libraries/StyleSheet/StyleSheet.js +49 -57
  567. package/Libraries/StyleSheet/StyleSheet.win32.js +50 -58
  568. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +573 -0
  569. package/Libraries/StyleSheet/StyleSheetTypes.js +460 -132
  570. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +11 -35
  571. package/Libraries/StyleSheet/flattenStyle.js +14 -9
  572. package/Libraries/StyleSheet/normalizeColor.js +11 -370
  573. package/Libraries/StyleSheet/private/_StyleSheetTypesOverrides.js +15 -0
  574. package/Libraries/StyleSheet/private/_TransformStyle.js +69 -0
  575. package/Libraries/StyleSheet/processAspectRatio.js +63 -0
  576. package/Libraries/StyleSheet/processBackgroundImage.js +361 -0
  577. package/Libraries/StyleSheet/processBoxShadow.js +209 -0
  578. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  579. package/Libraries/StyleSheet/processColor.js +6 -8
  580. package/Libraries/StyleSheet/processColorArray.js +18 -7
  581. package/Libraries/StyleSheet/processFilter.js +321 -0
  582. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  583. package/Libraries/StyleSheet/processTransform.js +131 -111
  584. package/Libraries/StyleSheet/processTransformOrigin.js +136 -0
  585. package/Libraries/StyleSheet/setNormalizedColorAlpha.js +1 -1
  586. package/Libraries/StyleSheet/splitLayoutProps.js +57 -49
  587. package/Libraries/Text/Text.d.ts +309 -0
  588. package/Libraries/Text/Text.js +505 -270
  589. package/Libraries/Text/Text.win32.js +577 -0
  590. package/Libraries/Text/TextAncestor.js +7 -2
  591. package/Libraries/Text/TextNativeComponent.js +82 -0
  592. package/Libraries/Text/TextNativeComponent.win32.js +117 -0
  593. package/Libraries/Text/TextProps.js +108 -30
  594. package/Libraries/Text/TextProps.win32.js +281 -0
  595. package/Libraries/TurboModule/RCTExport.d.ts +12 -0
  596. package/Libraries/TurboModule/RCTExport.js +3 -1
  597. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +13 -0
  598. package/Libraries/TurboModule/TurboModuleRegistry.js +24 -16
  599. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +5 -28
  600. package/Libraries/Types/CodegenTypes.js +9 -2
  601. package/Libraries/Types/CoreEventTypes.d.ts +259 -0
  602. package/Libraries/Types/CoreEventTypes.js +145 -10
  603. package/Libraries/Types/CoreEventTypes.win32.js +340 -0
  604. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  605. package/Libraries/Types/RootTagTypes.js +11 -0
  606. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  607. package/Libraries/UTFSequence.js +6 -4
  608. package/Libraries/Utilities/Appearance.d.ts +53 -0
  609. package/Libraries/Utilities/Appearance.js +118 -63
  610. package/Libraries/Utilities/BackHandler.android.js +17 -37
  611. package/Libraries/Utilities/BackHandler.d.ts +34 -0
  612. package/Libraries/Utilities/BackHandler.ios.js +12 -102
  613. package/Libraries/Utilities/BackHandler.win32.js +96 -7
  614. package/Libraries/Utilities/DebugEnvironment.js +16 -0
  615. package/Libraries/Utilities/DevLoadingView.js +64 -0
  616. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  617. package/Libraries/Utilities/DevSettings.js +55 -48
  618. package/Libraries/Utilities/DeviceInfo.js +1 -3
  619. package/Libraries/Utilities/DeviceInfo.win32.js +0 -2
  620. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  621. package/Libraries/Utilities/Dimensions.js +30 -49
  622. package/Libraries/Utilities/Dimensions.win32.js +106 -18
  623. package/Libraries/Utilities/FeatureDetection.js +31 -0
  624. package/Libraries/Utilities/FocusManager.win32.d.ts +12 -0
  625. package/Libraries/Utilities/FocusManager.win32.js +42 -0
  626. package/Libraries/Utilities/GlobalPerformanceLogger.js +4 -5
  627. package/Libraries/Utilities/HMRClient.js +102 -39
  628. package/Libraries/Utilities/HMRClientProdShim.js +2 -1
  629. package/Libraries/Utilities/IPerformanceLogger.d.ts +48 -0
  630. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  631. package/Libraries/Utilities/NativeAppearance.js +5 -28
  632. package/Libraries/Utilities/NativeDevLoadingView.js +5 -17
  633. package/Libraries/Utilities/NativeDeviceInfo.js +4 -40
  634. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +5 -30
  635. package/Libraries/Utilities/NativePlatformConstantsIOS.js +5 -26
  636. package/Libraries/Utilities/NativePlatformConstantsWin.js +4 -21
  637. package/Libraries/Utilities/PerformanceLoggerContext.js +17 -10
  638. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  639. package/Libraries/Utilities/PixelRatio.js +6 -6
  640. package/Libraries/Utilities/Platform.android.js +37 -16
  641. package/Libraries/Utilities/Platform.d.ts +106 -0
  642. package/Libraries/Utilities/Platform.flow.js +91 -0
  643. package/Libraries/Utilities/Platform.flow.win32.js +125 -0
  644. package/Libraries/Utilities/Platform.ios.js +39 -19
  645. package/Libraries/Utilities/Platform.win32.js +42 -15
  646. package/Libraries/Utilities/PolyfillFunctions.js +6 -6
  647. package/Libraries/Utilities/RCTLog.js +6 -5
  648. package/Libraries/Utilities/ReactNativeTestTools.js +36 -58
  649. package/Libraries/Utilities/SceneTracker.js +6 -5
  650. package/Libraries/Utilities/__mocks__/BackHandler.js +7 -12
  651. package/Libraries/Utilities/__mocks__/GlobalPerformanceLogger.js +1 -1
  652. package/Libraries/Utilities/__mocks__/PixelRatio.js +2 -2
  653. package/Libraries/Utilities/binaryToBase64.js +6 -4
  654. package/Libraries/Utilities/codegenNativeCommands.js +6 -6
  655. package/Libraries/Utilities/codegenNativeComponent.js +25 -15
  656. package/Libraries/Utilities/createPerformanceLogger.js +259 -244
  657. package/Libraries/Utilities/deepFreezeAndThrowOnMutationInDev.js +12 -6
  658. package/Libraries/Utilities/defineLazyObjectProperty.js +3 -3
  659. package/Libraries/Utilities/differ/deepDiffer.js +3 -3
  660. package/Libraries/Utilities/differ/insetsDiffer.js +2 -2
  661. package/Libraries/Utilities/differ/matricesDiffer.js +6 -2
  662. package/Libraries/Utilities/differ/pointsDiffer.js +2 -2
  663. package/Libraries/Utilities/differ/sizesDiffer.js +11 -5
  664. package/Libraries/Utilities/dismissKeyboard.js +1 -1
  665. package/Libraries/Utilities/infoLog.js +3 -2
  666. package/Libraries/Utilities/logError.js +2 -2
  667. package/Libraries/Utilities/mapWithSeparator.js +1 -1
  668. package/Libraries/Utilities/stringifySafe.js +8 -8
  669. package/Libraries/Utilities/stringifyViewConfig.js +22 -0
  670. package/Libraries/Utilities/useColorScheme.js +10 -16
  671. package/Libraries/Utilities/useMergeRefs.js +59 -0
  672. package/Libraries/Utilities/useRefEffect.js +45 -0
  673. package/Libraries/Utilities/useWindowDimensions.js +15 -8
  674. package/Libraries/Utilities/warnOnce.js +3 -5
  675. package/Libraries/Vibration/NativeVibration.js +5 -17
  676. package/Libraries/Vibration/Vibration.d.ts +43 -0
  677. package/Libraries/Vibration/Vibration.js +16 -14
  678. package/Libraries/WebSocket/NativeWebSocketModule.js +5 -27
  679. package/Libraries/WebSocket/WebSocket.js +47 -27
  680. package/Libraries/WebSocket/WebSocketEvent.js +5 -2
  681. package/Libraries/WebSocket/WebSocketInterceptor.js +46 -27
  682. package/Libraries/WebSocket/__mocks__/event-target-shim.js +1 -1
  683. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  684. package/Libraries/YellowBox/YellowBoxDeprecated.js +6 -6
  685. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +7 -7
  686. package/Libraries/__tests__/ButtonWin32-test.js +17 -0
  687. package/Libraries/platform-types.d.ts +25 -0
  688. package/Libraries/promiseRejectionTrackingOptions.js +72 -0
  689. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  690. package/Libraries/vendor/core/ErrorUtils.js +2 -2
  691. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  692. package/Libraries/vendor/emitter/EventEmitter.js +123 -193
  693. package/Libraries/vendor/emitter/__flowtests__/EventEmitter-flowtest.js +81 -0
  694. package/babel.config.js +3 -0
  695. package/flow/HermesInternalType.js +114 -0
  696. package/flow/Position.js +1 -1
  697. package/flow/Stringish.js +1 -1
  698. package/flow/console.js +1 -1
  699. package/flow/global.js +87 -0
  700. package/flow/jest.js +266 -168
  701. package/flow/react.js +15 -0
  702. package/index.js +365 -255
  703. package/index.win32.js +773 -42
  704. package/interface.js +9 -9
  705. package/jest/MockNativeMethods.js +1 -1
  706. package/jest/__tests__/setup-test.js +18 -0
  707. package/jest/assetFileTransformer.js +7 -5
  708. package/jest/local-setup.js +28 -0
  709. package/jest/mockComponent.js +28 -16
  710. package/jest/mockModal.js +32 -0
  711. package/jest/mockNativeComponent.js +40 -0
  712. package/jest/mockScrollView.js +35 -0
  713. package/jest/react-native-env.js +16 -0
  714. package/jest/renderer.js +29 -22
  715. package/jest/setup.js +194 -89
  716. package/jest-snapshot-resolver.js +2 -0
  717. package/jest.config.js +38 -0
  718. package/just-task.js +11 -53
  719. package/metro.config.js +5 -20
  720. package/metroShortPathAssetDataPlugin.js +15 -0
  721. package/overrides.json +323 -251
  722. package/package.json +88 -46
  723. package/react-native.config.js +2 -0
  724. package/rn-get-polyfills.js +3 -6
  725. package/saveAssetPlugin.js +45 -0
  726. package/src/private/animated/NativeAnimatedHelper.js +440 -0
  727. package/src/private/animated/NativeAnimatedHelper.win32.js +443 -0
  728. package/src/private/animated/NativeAnimatedValidation.js +64 -0
  729. package/src/private/animated/useAnimatedPropsMemo.js +356 -0
  730. package/src/private/components/HScrollViewNativeComponents.js +30 -0
  731. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +32 -0
  732. package/src/private/components/VScrollViewNativeComponents.js +25 -0
  733. package/src/private/debugging/FuseboxSessionObserver.js +42 -0
  734. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  735. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  736. package/src/private/debugging/ReactDevToolsSettingsManager.win32.js +20 -0
  737. package/src/private/debugging/setUpFuseboxReactDevToolsDispatcher.js +114 -0
  738. package/src/private/devmenu/DevMenu.d.ts +20 -0
  739. package/src/private/devmenu/DevMenu.js +31 -0
  740. package/src/private/featureflags/ReactNativeFeatureFlags.js +375 -0
  741. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +109 -0
  742. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +78 -0
  743. package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
  744. package/src/private/renderer/errorhandling/ErrorHandlers.js +83 -0
  745. package/src/private/setup/setUpDOM.js +36 -0
  746. package/src/private/setup/setUpIntersectionObserver.js +27 -0
  747. package/src/private/setup/setUpMutationObserver.js +31 -0
  748. package/src/private/setup/setUpPerformanceObserver.js +64 -0
  749. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  750. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  751. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +27 -0
  752. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  753. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  754. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  755. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  756. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  757. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  758. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +147 -0
  759. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  760. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  761. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  762. package/src/private/specs/modules/NativeAccessibilityInfo.js +42 -0
  763. package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +48 -0
  764. package/src/private/specs/modules/NativeAccessibilityManager.js +70 -0
  765. package/src/private/specs/modules/NativeActionSheetManager.js +56 -0
  766. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  767. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  768. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  769. package/src/private/specs/modules/NativeAppState.js +33 -0
  770. package/src/private/specs/modules/NativeAppearance.js +30 -0
  771. package/src/private/specs/modules/NativeBlobModule.js +61 -0
  772. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  773. package/src/private/specs/modules/NativeCPUTime.js +24 -0
  774. package/src/private/specs/modules/NativeClipboard.js +21 -0
  775. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  776. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  777. package/src/private/specs/modules/NativeDevSettings.js +34 -0
  778. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  779. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  780. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  781. package/src/private/specs/modules/NativeExceptionsManager.js +91 -0
  782. package/src/private/specs/modules/NativeFantom.js +37 -0
  783. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  784. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  785. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  786. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  787. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  788. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  789. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  790. package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
  791. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  792. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  793. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  794. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  795. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  796. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  797. package/src/private/specs/modules/NativeLogBox.js +20 -0
  798. package/src/private/specs/modules/NativeModalManager.js +21 -0
  799. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  800. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  801. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  802. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  803. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  804. package/src/private/specs/modules/NativePlatformConstantsWin.js +44 -0
  805. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +103 -0
  806. package/src/private/specs/modules/NativeReactDevToolsSettingsManager.js +22 -0
  807. package/src/private/specs/modules/NativeRedBox.js +20 -0
  808. package/src/private/specs/modules/NativeSampleTurboModule.js +66 -0
  809. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  810. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  811. package/src/private/specs/modules/NativeShareModule.js +23 -0
  812. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  813. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  814. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  815. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  816. package/src/private/specs/modules/NativeTiming.js +26 -0
  817. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  818. package/src/private/specs/modules/NativeUIManager.js +111 -0
  819. package/src/private/specs/modules/NativeVibration.js +24 -0
  820. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  821. package/src/private/styles/composeStyles.js +27 -0
  822. package/src/private/utilities/ensureInstance.js +21 -0
  823. package/src/private/webapis/dom/geometry/DOMRect.js +82 -0
  824. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +188 -0
  825. package/src/private/webapis/dom/nodes/ReactNativeElement.js +231 -0
  826. package/src/private/webapis/dom/nodes/ReadOnlyCharacterData.js +71 -0
  827. package/src/private/webapis/dom/nodes/ReadOnlyElement.js +247 -0
  828. package/src/private/webapis/dom/nodes/ReadOnlyNode.js +367 -0
  829. package/src/private/webapis/dom/nodes/ReadOnlyText.js +30 -0
  830. package/src/private/webapis/dom/nodes/specs/NativeDOM.js +468 -0
  831. package/src/private/webapis/dom/nodes/utilities/Traversal.js +54 -0
  832. package/src/private/webapis/dom/oldstylecollections/ArrayLikeUtils.js +46 -0
  833. package/src/private/webapis/dom/oldstylecollections/DOMRectList.js +76 -0
  834. package/src/private/webapis/dom/oldstylecollections/HTMLCollection.js +82 -0
  835. package/src/private/webapis/dom/oldstylecollections/NodeList.js +104 -0
  836. package/src/private/webapis/idlecallbacks/specs/NativeIdleCallbacks.js +34 -0
  837. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +345 -0
  838. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +167 -0
  839. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +277 -0
  840. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +43 -0
  841. package/src/private/webapis/microtasks/specs/NativeMicrotasks.js +21 -0
  842. package/src/private/webapis/mutationobserver/MutationObserver.js +186 -0
  843. package/src/private/webapis/mutationobserver/MutationObserverManager.js +227 -0
  844. package/src/private/webapis/mutationobserver/MutationRecord.js +82 -0
  845. package/src/private/webapis/mutationobserver/specs/NativeMutationObserver.js +58 -0
  846. package/src/private/webapis/performance/EventTiming.js +145 -0
  847. package/src/private/webapis/performance/LongTasks.js +39 -0
  848. package/src/private/webapis/performance/MemoryInfo.js +54 -0
  849. package/src/private/webapis/performance/Performance.js +287 -0
  850. package/src/private/webapis/performance/PerformanceEntry.js +68 -0
  851. package/src/private/webapis/performance/PerformanceObserver.js +232 -0
  852. package/src/private/webapis/performance/RawPerformanceEntry.js +105 -0
  853. package/src/private/webapis/performance/ReactNativeStartupTiming.js +91 -0
  854. package/src/private/webapis/performance/UserTiming.js +72 -0
  855. package/src/private/webapis/performance/Utilities.js +18 -0
  856. package/src/private/webapis/performance/specs/NativePerformance.js +92 -0
  857. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
  858. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +177 -0
  859. package/src-win/Libraries/Components/Button/ButtonWin32.Props.ts +45 -0
  860. package/src-win/Libraries/Components/Button/ButtonWin32.tsx +94 -0
  861. package/src-win/Libraries/Components/EnterString.win32.tsx +110 -0
  862. package/src-win/Libraries/Components/TextInput/Tests/TextInputTest.tsx +185 -0
  863. package/src-win/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +502 -0
  864. package/src-win/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +119 -0
  865. package/src-win/Libraries/Components/Touchable/TouchableWin32.Props.tsx +46 -0
  866. package/src-win/Libraries/Components/Touchable/TouchableWin32.Types.tsx +137 -0
  867. package/src-win/Libraries/Components/Touchable/TouchableWin32.tsx +624 -0
  868. package/src-win/Libraries/Components/View/ViewAccessibility.d.ts +566 -0
  869. package/src-win/Libraries/Components/View/ViewPropTypes.d.ts +354 -0
  870. package/src-win/Libraries/Components/View/ViewWin32.d.ts +30 -0
  871. package/src-win/Libraries/Image/ImageTypes.ts +27 -0
  872. package/src-win/Libraries/Image/Tests/ImageWin32Test.tsx +22 -0
  873. package/src-win/Libraries/Image/Tests/img/dpitest.png +0 -0
  874. package/src-win/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
  875. package/src-win/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
  876. package/src-win/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
  877. package/src-win/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
  878. package/src-win/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
  879. package/src-win/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
  880. package/src-win/Libraries/PersonaCoin/PersonaCoin.tsx +13 -0
  881. package/src-win/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +17 -0
  882. package/src-win/Libraries/PersonaCoin/PersonaCoinTypes.ts +36 -0
  883. package/src-win/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +38 -0
  884. package/src-win/Libraries/Text/Text.d.ts +309 -0
  885. package/src-win/Libraries/Utilities/FocusManager.win32.d.ts +12 -0
  886. package/src-win/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
  887. package/src-win/Libraries/platform-types.d.ts +25 -0
  888. package/types/index.d.ts +219 -0
  889. package/types/modules/BatchedBridge.d.ts +32 -0
  890. package/types/modules/Codegen.d.ts +80 -0
  891. package/types/modules/Devtools.d.ts +32 -0
  892. package/types/modules/LaunchScreen.d.ts +18 -0
  893. package/types/modules/globals.d.ts +599 -0
  894. package/types/private/TimerMixin.d.ts +19 -0
  895. package/types/private/Utilities.d.ts +10 -0
  896. package/types/public/DeprecatedPropertiesAlias.d.ts +185 -0
  897. package/types/public/Insets.d.ts +15 -0
  898. package/types/public/ReactNativeRenderer.d.ts +144 -0
  899. package/types/public/ReactNativeTypes.d.ts +139 -0
  900. package/IntegrationTests/AsyncStorageTest.js +0 -217
  901. package/IntegrationTests/PropertiesUpdateTest.js +0 -29
  902. package/IntegrationTests/RCTRootViewIntegrationTestApp.js +0 -92
  903. package/IntegrationTests/ReactContentSizeUpdateTest.js +0 -91
  904. package/IntegrationTests/SizeFlexibilityUpdateTest.js +0 -108
  905. package/IntegrationTests/launchWebSocketServer.command +0 -18
  906. package/Libraries/Animated/examples/demo.html +0 -712
  907. package/Libraries/Animated/examples/pic1.jpg +0 -0
  908. package/Libraries/Animated/examples/pic2.jpg +0 -0
  909. package/Libraries/Animated/examples/pic3.jpg +0 -0
  910. package/Libraries/Animated/release/gulpfile.js +0 -155
  911. package/Libraries/Animated/src/Animated.js +0 -49
  912. package/Libraries/Animated/src/AnimatedEvent.js +0 -233
  913. package/Libraries/Animated/src/AnimatedImplementation.js +0 -712
  914. package/Libraries/Animated/src/AnimatedMock.js +0 -156
  915. package/Libraries/Animated/src/AnimatedWeb.js +0 -23
  916. package/Libraries/Animated/src/Easing.js +0 -252
  917. package/Libraries/Animated/src/NativeAnimatedHelper.js +0 -342
  918. package/Libraries/Animated/src/NativeAnimatedModule.js +0 -66
  919. package/Libraries/Animated/src/SpringConfig.js +0 -103
  920. package/Libraries/Animated/src/animations/Animation.js +0 -73
  921. package/Libraries/Animated/src/animations/DecayAnimation.js +0 -120
  922. package/Libraries/Animated/src/animations/SpringAnimation.js +0 -359
  923. package/Libraries/Animated/src/animations/TimingAnimation.js +0 -165
  924. package/Libraries/Animated/src/bezier.js +0 -153
  925. package/Libraries/Animated/src/components/AnimatedFlatList.js +0 -32
  926. package/Libraries/Animated/src/components/AnimatedImage.js +0 -25
  927. package/Libraries/Animated/src/components/AnimatedScrollView.js +0 -32
  928. package/Libraries/Animated/src/components/AnimatedSectionList.js +0 -32
  929. package/Libraries/Animated/src/components/AnimatedText.js +0 -25
  930. package/Libraries/Animated/src/components/AnimatedView.js +0 -23
  931. package/Libraries/Animated/src/createAnimatedComponent.js +0 -223
  932. package/Libraries/Animated/src/nodes/AnimatedAddition.js +0 -63
  933. package/Libraries/Animated/src/nodes/AnimatedDiffClamp.js +0 -71
  934. package/Libraries/Animated/src/nodes/AnimatedDivision.js +0 -68
  935. package/Libraries/Animated/src/nodes/AnimatedInterpolation.js +0 -373
  936. package/Libraries/Animated/src/nodes/AnimatedModulo.js +0 -62
  937. package/Libraries/Animated/src/nodes/AnimatedMultiplication.js +0 -63
  938. package/Libraries/Animated/src/nodes/AnimatedNode.js +0 -184
  939. package/Libraries/Animated/src/nodes/AnimatedProps.js +0 -176
  940. package/Libraries/Animated/src/nodes/AnimatedStyle.js +0 -127
  941. package/Libraries/Animated/src/nodes/AnimatedSubtraction.js +0 -63
  942. package/Libraries/Animated/src/nodes/AnimatedTracking.js +0 -102
  943. package/Libraries/Animated/src/nodes/AnimatedTransform.js +0 -121
  944. package/Libraries/Animated/src/nodes/AnimatedValue.js +0 -265
  945. package/Libraries/Animated/src/nodes/AnimatedValueXY.js +0 -226
  946. package/Libraries/Animated/src/nodes/AnimatedWithChildren.js +0 -87
  947. package/Libraries/Animated/src/polyfills/InteractionManager.js +0 -15
  948. package/Libraries/Animated/src/polyfills/Set.js +0 -26
  949. package/Libraries/Animated/src/polyfills/flattenStyle.js +0 -13
  950. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.android.js +0 -162
  951. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.ios.js +0 -271
  952. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.win32.js +0 -33
  953. package/Libraries/Components/AppleTV/NativeTVNavigationEventEmitter.js +0 -23
  954. package/Libraries/Components/AppleTV/TVEventHandler.js +0 -52
  955. package/Libraries/Components/CheckBox/AndroidCheckBoxNativeComponent.js +0 -74
  956. package/Libraries/Components/CheckBox/CheckBox.android.js +0 -228
  957. package/Libraries/Components/CheckBox/CheckBox.ios.js +0 -13
  958. package/Libraries/Components/CheckBox/CheckBox.win32.js +0 -12
  959. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -46
  960. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -189
  961. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -46
  962. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  963. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -89
  964. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  965. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.win32.js +0 -30
  966. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  967. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -22
  968. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.ios.js +0 -12
  969. package/Libraries/Components/MaskedView/MaskedViewIOS.android.js +0 -13
  970. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  971. package/Libraries/Components/MaskedView/MaskedViewIOS.win32.js +0 -13
  972. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  973. package/Libraries/Components/Picker/AndroidDialogPickerNativeComponent.js +0 -68
  974. package/Libraries/Components/Picker/AndroidDropdownPickerNativeComponent.js +0 -68
  975. package/Libraries/Components/Picker/Picker.js +0 -159
  976. package/Libraries/Components/Picker/Picker.win32.d.ts +0 -1
  977. package/Libraries/Components/Picker/Picker.win32.js +0 -80
  978. package/Libraries/Components/Picker/PickerAndroid.android.js +0 -146
  979. package/Libraries/Components/Picker/PickerAndroid.ios.js +0 -12
  980. package/Libraries/Components/Picker/PickerAndroid.js +0 -12
  981. package/Libraries/Components/Picker/PickerIOS.android.js +0 -14
  982. package/Libraries/Components/Picker/PickerIOS.ios.js +0 -164
  983. package/Libraries/Components/Picker/PickerIOS.js +0 -14
  984. package/Libraries/Components/Picker/RCTPickerNativeComponent.js +0 -63
  985. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.ios.js +0 -12
  986. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -46
  987. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -77
  988. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -8
  989. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -35
  990. package/Libraries/Components/ScrollResponder.js +0 -773
  991. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -77
  992. package/Libraries/Components/ScrollView/__mocks__/ScrollViewMock.js +0 -39
  993. package/Libraries/Components/SegmentedControlIOS/RCTSegmentedControlNativeComponent.js +0 -46
  994. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.android.js +0 -46
  995. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.ios.js +0 -123
  996. package/Libraries/Components/SegmentedControlIOS/SegmentedControlIOS.js +0 -46
  997. package/Libraries/Components/Slider/Slider.js +0 -276
  998. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -60
  999. package/Libraries/Components/StaticContainer.react.js +0 -51
  1000. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -22
  1001. package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -26
  1002. package/Libraries/Components/Text/TextWin32.Props.js +0 -3
  1003. package/Libraries/Components/Text/TextWin32.d.ts +0 -6
  1004. package/Libraries/Components/Text/TextWin32.js +0 -41
  1005. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +0 -84
  1006. package/Libraries/Components/TextInput/RCTSinglelineTextInputViewConfig.js +0 -134
  1007. package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +0 -51
  1008. package/Libraries/Components/TextInput/TextInput.Types.win32.js +0 -3
  1009. package/Libraries/Components/TextInput/TextInput.win32.d.ts +0 -68
  1010. package/Libraries/Components/ToastAndroid/ToastAndroid.ios.js +0 -39
  1011. package/Libraries/Components/Touchable/TVTouchable.js +0 -55
  1012. package/Libraries/Components/Touchable/TouchableNativeFeedback.Props.d.ts +0 -7
  1013. package/Libraries/Components/Touchable/TouchableNativeFeedback.Props.js +0 -3
  1014. package/Libraries/Components/Touchable/TouchableNativeFeedback.win32.d.ts +0 -16
  1015. package/Libraries/Components/Touchable/__mocks__/ensureComponentIsNative.js +0 -12
  1016. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -26
  1017. package/Libraries/Components/View/ReactNativeViewViewConfig.js +0 -347
  1018. package/Libraries/Components/View/ReactNativeViewViewConfig.win32.js +0 -384
  1019. package/Libraries/Components/View/ReactNativeViewViewConfigAndroid.js +0 -74
  1020. package/Libraries/Components/View/Tests/ViewWin32Test.d.ts +0 -8
  1021. package/Libraries/Components/View/Tests/ViewWin32Test.js +0 -235
  1022. package/Libraries/Components/View/ViewWin32.Props.d.ts +0 -149
  1023. package/Libraries/Components/View/ViewWin32.Props.js +0 -11
  1024. package/Libraries/Core/setUpSystrace.js +0 -21
  1025. package/Libraries/DeprecatedPropTypes/DeprecatedColorPropType.js +0 -76
  1026. package/Libraries/DeprecatedPropTypes/DeprecatedEdgeInsetsPropType.js +0 -28
  1027. package/Libraries/DeprecatedPropTypes/DeprecatedImagePropType.js +0 -82
  1028. package/Libraries/DeprecatedPropTypes/DeprecatedImageSourcePropType.js +0 -40
  1029. package/Libraries/DeprecatedPropTypes/DeprecatedImageStylePropTypes.js +0 -76
  1030. package/Libraries/DeprecatedPropTypes/DeprecatedLayoutPropTypes.js +0 -233
  1031. package/Libraries/DeprecatedPropTypes/DeprecatedPointPropType.js +0 -24
  1032. package/Libraries/DeprecatedPropTypes/DeprecatedShadowPropTypesIOS.js +0 -30
  1033. package/Libraries/DeprecatedPropTypes/DeprecatedStyleSheetPropType.js +0 -32
  1034. package/Libraries/DeprecatedPropTypes/DeprecatedTVViewPropTypes.js +0 -23
  1035. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +0 -622
  1036. package/Libraries/DeprecatedPropTypes/DeprecatedTextPropTypes.js +0 -158
  1037. package/Libraries/DeprecatedPropTypes/DeprecatedTextStylePropTypes.js +0 -157
  1038. package/Libraries/DeprecatedPropTypes/DeprecatedTransformPropTypes.js +0 -99
  1039. package/Libraries/DeprecatedPropTypes/DeprecatedViewAccessibility.js +0 -44
  1040. package/Libraries/DeprecatedPropTypes/DeprecatedViewPropTypes.js +0 -408
  1041. package/Libraries/DeprecatedPropTypes/DeprecatedViewStylePropTypes.js +0 -68
  1042. package/Libraries/DeprecatedPropTypes/deprecatedCreateStrictShapeTypeChecker.js +0 -86
  1043. package/Libraries/HeapCapture/HeapCapture.js +0 -31
  1044. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +0 -20
  1045. package/Libraries/Image/ImagePickerIOS.js +0 -105
  1046. package/Libraries/Image/ImageViewViewConfig.js +0 -68
  1047. package/Libraries/Image/NativeImagePickerIOS.js +0 -40
  1048. package/Libraries/Image/assetPathUtils.js +0 -91
  1049. package/Libraries/Interaction/Batchinator.js +0 -76
  1050. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -62
  1051. package/Libraries/Interaction/InteractionMixin.js +0 -55
  1052. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  1053. package/Libraries/Linking/NativeLinking.js +0 -41
  1054. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +0 -21
  1055. package/Libraries/Performance/NativeJSCSamplingProfiler.js +0 -20
  1056. package/Libraries/Performance/PureComponentDebug.js +0 -73
  1057. package/Libraries/Performance/QuickPerformanceLogger.js +0 -101
  1058. package/Libraries/Performance/SamplingProfiler.js +0 -39
  1059. package/Libraries/ReactNative/DummyUIManager.js +0 -123
  1060. package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
  1061. package/Libraries/ReactNative/RootTagContext.js +0 -15
  1062. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  1063. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +0 -20493
  1064. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +0 -7440
  1065. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +0 -7718
  1066. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +0 -21091
  1067. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +0 -7677
  1068. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +0 -7955
  1069. package/Libraries/Renderer/shims/ReactTypes.js +0 -192
  1070. package/Libraries/Settings/Settings.android.js +0 -33
  1071. package/Libraries/Storage/AsyncStorage.js +0 -360
  1072. package/Libraries/Storage/NativeAsyncStorage.js +0 -44
  1073. package/Libraries/StyleSheet/PlatformColorValueTypesAndroid.android.js +0 -18
  1074. package/Libraries/StyleSheet/PlatformColorValueTypesAndroid.js +0 -17
  1075. package/Libraries/StyleSheet/StyleSheetValidation.js +0 -97
  1076. package/Libraries/StyleSheet/StyleSheetValidation.win32.js +0 -102
  1077. package/Libraries/Utilities/BackHandler.win32.d.ts +0 -2
  1078. package/Libraries/Utilities/JSDevSupportModule.js +0 -40
  1079. package/Libraries/Utilities/LoadingView.android.js +0 -29
  1080. package/Libraries/Utilities/LoadingView.ios.js +0 -40
  1081. package/Libraries/Utilities/LoadingView.js +0 -16
  1082. package/Libraries/Utilities/MatrixMath.js +0 -752
  1083. package/Libraries/Utilities/NativeJSDevSupport.js +0 -25
  1084. package/Libraries/Utilities/buildStyleInterpolator.js +0 -211
  1085. package/Libraries/Utilities/clamp.js +0 -23
  1086. package/Libraries/Utilities/deprecatedPropType.js +0 -38
  1087. package/Libraries/Utilities/groupByEveryN.js +0 -51
  1088. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  1089. package/Libraries/Utilities/registerGeneratedViewConfig.js +0 -83
  1090. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  1091. package/Libraries/Utilities/truncate.js +0 -51
  1092. package/Libraries/Utilities/verifyComponentAttributeEquivalence.js +0 -134
  1093. package/Libraries/polyfills/Object.es7.js +0 -58
  1094. package/Libraries/polyfills/console.js +0 -641
  1095. package/Libraries/polyfills/error-guard.js +0 -115
  1096. package/Libraries/promiseRejectionIsError.js +0 -24
  1097. package/Libraries/vendor/emitter/EmitterSubscription.js +0 -59
  1098. package/Libraries/vendor/emitter/EventSubscription.js +0 -40
  1099. package/Libraries/vendor/emitter/EventSubscriptionVendor.js +0 -101
  1100. package/RNTester/APIExamples/AccessibilityExampleWin32.d.ts +0 -8
  1101. package/RNTester/APIExamples/AccessibilityExampleWin32.js +0 -262
  1102. package/RNTester/APIExamples/ThemingModuleAPI.d.ts +0 -8
  1103. package/RNTester/APIExamples/ThemingModuleAPI.js +0 -80
  1104. package/RNTester/js/RNTesterApp.android.js +0 -363
  1105. package/RNTester/js/RNTesterApp.ios.js +0 -272
  1106. package/RNTester/js/RNTesterApp.win32.js +0 -285
  1107. package/RNTester/js/assets/bandaged.png +0 -0
  1108. package/RNTester/js/assets/bunny.png +0 -0
  1109. package/RNTester/js/assets/call.png +0 -0
  1110. package/RNTester/js/assets/dislike.png +0 -0
  1111. package/RNTester/js/assets/fist.png +0 -0
  1112. package/RNTester/js/assets/flowers.png +0 -0
  1113. package/RNTester/js/assets/flux@3x.png +0 -0
  1114. package/RNTester/js/assets/hawk.png +0 -0
  1115. package/RNTester/js/assets/heart.png +0 -0
  1116. package/RNTester/js/assets/helloworld.html +0 -25
  1117. package/RNTester/js/assets/imageMask.png +0 -0
  1118. package/RNTester/js/assets/like.png +0 -0
  1119. package/RNTester/js/assets/liking.png +0 -0
  1120. package/RNTester/js/assets/messagingtest.html +0 -28
  1121. package/RNTester/js/assets/party.png +0 -0
  1122. package/RNTester/js/assets/poke.png +0 -0
  1123. package/RNTester/js/assets/relay@3x.png +0 -0
  1124. package/RNTester/js/assets/slider-left.png +0 -0
  1125. package/RNTester/js/assets/slider-left@2x.png +0 -0
  1126. package/RNTester/js/assets/slider-right.png +0 -0
  1127. package/RNTester/js/assets/slider-right@2x.png +0 -0
  1128. package/RNTester/js/assets/slider.png +0 -0
  1129. package/RNTester/js/assets/slider@2x.png +0 -0
  1130. package/RNTester/js/assets/superlike.png +0 -0
  1131. package/RNTester/js/assets/trees.jpg +0 -0
  1132. package/RNTester/js/assets/tumblr_mfqekpMktw1rn90umo1_500.gif +0 -0
  1133. package/RNTester/js/assets/uie_comment_highlighted@2x.png +0 -0
  1134. package/RNTester/js/assets/uie_comment_normal@2x.png +0 -0
  1135. package/RNTester/js/assets/uie_thumb_big.png +0 -0
  1136. package/RNTester/js/assets/uie_thumb_normal@2x.png +0 -0
  1137. package/RNTester/js/assets/uie_thumb_selected@2x.png +0 -0
  1138. package/RNTester/js/assets/victory.png +0 -0
  1139. package/RNTester/js/components/ListExampleShared.js +0 -377
  1140. package/RNTester/js/components/ListExampleShared.win32.js +0 -384
  1141. package/RNTester/js/components/RNTesterBlock.js +0 -105
  1142. package/RNTester/js/components/RNTesterButton.js +0 -50
  1143. package/RNTester/js/components/RNTesterExampleContainer.js +0 -80
  1144. package/RNTester/js/components/RNTesterExampleFilter.js +0 -120
  1145. package/RNTester/js/components/RNTesterExampleFilter.win32.js +0 -120
  1146. package/RNTester/js/components/RNTesterExampleList.js +0 -254
  1147. package/RNTester/js/components/RNTesterPage.js +0 -76
  1148. package/RNTester/js/components/RNTesterSettingSwitchRow.js +0 -60
  1149. package/RNTester/js/components/RNTesterTheme.js +0 -90
  1150. package/RNTester/js/components/RNTesterTitle.js +0 -58
  1151. package/RNTester/js/components/TextInlineView.js +0 -207
  1152. package/RNTester/js/components/TextLegend.js +0 -248
  1153. package/RNTester/js/components/createExamplePage.js +0 -31
  1154. package/RNTester/js/examples/Accessibility/AccessibilityAndroidExample.android.js +0 -177
  1155. package/RNTester/js/examples/Accessibility/AccessibilityExample.js +0 -792
  1156. package/RNTester/js/examples/Accessibility/AccessibilityIOSExample.js +0 -72
  1157. package/RNTester/js/examples/Accessibility/check.png +0 -0
  1158. package/RNTester/js/examples/Accessibility/mixed.png +0 -0
  1159. package/RNTester/js/examples/Accessibility/uncheck.png +0 -0
  1160. package/RNTester/js/examples/ActionSheetIOS/ActionSheetIOSExample.js +0 -342
  1161. package/RNTester/js/examples/ActivityIndicator/ActivityIndicatorExample.js +0 -162
  1162. package/RNTester/js/examples/Alert/AlertExample.js +0 -158
  1163. package/RNTester/js/examples/Alert/AlertIOSExample.js +0 -204
  1164. package/RNTester/js/examples/Animated/AnimatedExample.js +0 -347
  1165. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExApp.js +0 -407
  1166. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExBobble.js +0 -171
  1167. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExChained.js +0 -120
  1168. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExScroll.js +0 -124
  1169. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExSet.js +0 -149
  1170. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExSlides.md +0 -107
  1171. package/RNTester/js/examples/Animated/AnimatedGratuitousApp/AnExTilt.js +0 -154
  1172. package/RNTester/js/examples/AppState/AppStateExample.js +0 -106
  1173. package/RNTester/js/examples/Appearance/AppearanceExample.js +0 -219
  1174. package/RNTester/js/examples/AsyncStorage/AsyncStorageExample.js +0 -103
  1175. package/RNTester/js/examples/Border/BorderExample.js +0 -301
  1176. package/RNTester/js/examples/BoxShadow/BoxShadowExample.js +0 -100
  1177. package/RNTester/js/examples/Button/ButtonExample.js +0 -127
  1178. package/RNTester/js/examples/CheckBox/CheckBoxExample.js +0 -148
  1179. package/RNTester/js/examples/Clipboard/ClipboardExample.js +0 -68
  1180. package/RNTester/js/examples/ColorGradientWin32Example.js +0 -109
  1181. package/RNTester/js/examples/Crash/CrashExample.js +0 -52
  1182. package/RNTester/js/examples/DatePicker/DatePickerAndroidExample.js +0 -170
  1183. package/RNTester/js/examples/DatePicker/DatePickerIOSExample.js +0 -150
  1184. package/RNTester/js/examples/DevSettings/DevSettingsExample.js +0 -47
  1185. package/RNTester/js/examples/Dimensions/DimensionsExample.js +0 -68
  1186. package/RNTester/js/examples/FlatList/FlatListExample.js +0 -287
  1187. package/RNTester/js/examples/Image/ImageCapInsetsExample.js +0 -68
  1188. package/RNTester/js/examples/Image/ImageExample.js +0 -955
  1189. package/RNTester/js/examples/InputAccessoryView/InputAccessoryViewExample.js +0 -121
  1190. package/RNTester/js/examples/JSResponderHandlerExample/JSResponderHandlerExample.js +0 -77
  1191. package/RNTester/js/examples/KeyboardAvoidingView/KeyboardAvoidingViewExample.js +0 -120
  1192. package/RNTester/js/examples/Layout/LayoutAnimationExample.js +0 -221
  1193. package/RNTester/js/examples/Layout/LayoutEventsExample.js +0 -165
  1194. package/RNTester/js/examples/Layout/LayoutExample.js +0 -206
  1195. package/RNTester/js/examples/Linking/LinkingExample.js +0 -128
  1196. package/RNTester/js/examples/MaskedView/MaskedViewExample.js +0 -236
  1197. package/RNTester/js/examples/Modal/ModalExample.js +0 -283
  1198. package/RNTester/js/examples/MultiColumn/MultiColumnExample.js +0 -189
  1199. package/RNTester/js/examples/NativeAnimation/NativeAnimationsExample.js +0 -702
  1200. package/RNTester/js/examples/NewAppScreen/NewAppScreenExample.js +0 -77
  1201. package/RNTester/js/examples/OrientationChange/OrientationChangeExample.js +0 -66
  1202. package/RNTester/js/examples/PanResponder/PanResponderExample.js +0 -154
  1203. package/RNTester/js/examples/PermissionsAndroid/PermissionsExample.js +0 -130
  1204. package/RNTester/js/examples/Picker/PickerExample.js +0 -220
  1205. package/RNTester/js/examples/Picker/PickerIOSExample.js +0 -190
  1206. package/RNTester/js/examples/PlatformColor/PlatformColorExample.js +0 -355
  1207. package/RNTester/js/examples/PointerEvents/PointerEventsExample.js +0 -240
  1208. package/RNTester/js/examples/Pressable/PressableExample.js +0 -426
  1209. package/RNTester/js/examples/ProgressBarAndroid/ProgressBarAndroidExample.android.js +0 -94
  1210. package/RNTester/js/examples/ProgressViewIOS/ProgressViewIOSExample.js +0 -103
  1211. package/RNTester/js/examples/PushNotificationIOS/PushNotificationIOSExample.js +0 -267
  1212. package/RNTester/js/examples/RCTRootView/RCTRootViewIOSExample.js +0 -95
  1213. package/RNTester/js/examples/RTL/RTLExample.js +0 -747
  1214. package/RNTester/js/examples/RefreshControl/RefreshControlExample.js +0 -127
  1215. package/RNTester/js/examples/RootViewSizeFlexibilityExample/RootViewSizeFlexibilityExampleApp.js +0 -68
  1216. package/RNTester/js/examples/SafeAreaView/SafeAreaViewExample.js +0 -137
  1217. package/RNTester/js/examples/ScrollView/ScrollViewAnimatedExample.js +0 -107
  1218. package/RNTester/js/examples/ScrollView/ScrollViewExample.js +0 -346
  1219. package/RNTester/js/examples/ScrollView/ScrollViewSimpleExample.js +0 -105
  1220. package/RNTester/js/examples/SectionList/SectionListExample.js +0 -301
  1221. package/RNTester/js/examples/SegmentedControlIOS/SegmentedControlIOSExample.js +0 -183
  1222. package/RNTester/js/examples/SetPropertiesExample/SetPropertiesExampleApp.js +0 -34
  1223. package/RNTester/js/examples/Share/ShareExample.js +0 -124
  1224. package/RNTester/js/examples/Slider/SliderExample.js +0 -136
  1225. package/RNTester/js/examples/Snapshot/SnapshotExample.js +0 -69
  1226. package/RNTester/js/examples/Snapshot/SnapshotViewIOS.android.js +0 -12
  1227. package/RNTester/js/examples/Snapshot/SnapshotViewIOS.ios.js +0 -67
  1228. package/RNTester/js/examples/StatusBar/StatusBarExample.js +0 -522
  1229. package/RNTester/js/examples/Switch/SwitchExample.js +0 -239
  1230. package/RNTester/js/examples/TVEventHandler/TVEventHandlerExample.js +0 -88
  1231. package/RNTester/js/examples/Text/TextExample.android.js +0 -864
  1232. package/RNTester/js/examples/Text/TextExample.ios.js +0 -1153
  1233. package/RNTester/js/examples/TextInput/TextInputExample.android.js +0 -424
  1234. package/RNTester/js/examples/TextInput/TextInputExample.ios.js +0 -710
  1235. package/RNTester/js/examples/TextInput/TextInputSharedExamples.js +0 -618
  1236. package/RNTester/js/examples/Timer/TimerExample.js +0 -373
  1237. package/RNTester/js/examples/ToastAndroid/ToastAndroidExample.android.js +0 -136
  1238. package/RNTester/js/examples/Touchable/TouchableExample.js +0 -664
  1239. package/RNTester/js/examples/Transform/TransformExample.js +0 -336
  1240. package/RNTester/js/examples/TransparentHitTest/TransparentHitTestExample.js +0 -50
  1241. package/RNTester/js/examples/TurboModule/SampleTurboModuleExample.js +0 -190
  1242. package/RNTester/js/examples/TurboModule/TurboModuleExample.js +0 -26
  1243. package/RNTester/js/examples/Vibration/VibrationExample.js +0 -127
  1244. package/RNTester/js/examples/View/ViewExample.js +0 -471
  1245. package/RNTester/js/examples/WebSocket/WebSocketExample.js +0 -356
  1246. package/RNTester/js/examples/WebSocket/http_test_server.js +0 -33
  1247. package/RNTester/js/examples/WebSocket/websocket_test_server.js +0 -46
  1248. package/RNTester/js/examples/XHR/XHRExample.js +0 -62
  1249. package/RNTester/js/examples/XHR/XHRExampleAbortController.js +0 -58
  1250. package/RNTester/js/examples/XHR/XHRExampleBinaryUpload.js +0 -149
  1251. package/RNTester/js/examples/XHR/XHRExampleDownload.js +0 -242
  1252. package/RNTester/js/examples/XHR/XHRExampleFetch.js +0 -133
  1253. package/RNTester/js/examples/XHR/XHRExampleHeaders.js +0 -114
  1254. package/RNTester/js/examples/XHR/XHRExampleOnTimeOut.js +0 -99
  1255. package/RNTester/js/types/RNTesterTypes.js +0 -47
  1256. package/RNTester/js/utils/RNTesterActions.js +0 -53
  1257. package/RNTester/js/utils/RNTesterList.android.js +0 -257
  1258. package/RNTester/js/utils/RNTesterList.ios.js +0 -366
  1259. package/RNTester/js/utils/RNTesterList.win32.js +0 -240
  1260. package/RNTester/js/utils/RNTesterNavigationReducer.js +0 -49
  1261. package/RNTester/js/utils/RNTesterStatePersister.js +0 -86
  1262. package/RNTester/js/utils/URIActionMap.js +0 -48
  1263. package/api-extractor.json +0 -25
  1264. package/demo/DocPagePropsList.d.ts +0 -18
  1265. package/demo/DocPagePropsList.js +0 -7
  1266. package/demo/DocPagePropsList.js.map +0 -1
  1267. package/docs/api/index.md +0 -12
  1268. package/docs/api/react-native-win32.accessibilityactionevent.md +0 -13
  1269. package/docs/api/react-native-win32.accessibilityactioninfo.md +0 -14
  1270. package/docs/api/react-native-win32.accessibilityactionname.md +0 -11
  1271. package/docs/api/react-native-win32.accessibilityannotationinfo.md +0 -16
  1272. package/docs/api/react-native-win32.accessibilitystate.md +0 -14
  1273. package/docs/api/react-native-win32.annotationtype.md +0 -11
  1274. package/docs/api/react-native-win32.ariarole.md +0 -11
  1275. package/docs/api/react-native-win32.basepropswin32.md +0 -17
  1276. package/docs/api/react-native-win32.buttonwin32._constructor_.md +0 -20
  1277. package/docs/api/react-native-win32.buttonwin32.md +0 -27
  1278. package/docs/api/react-native-win32.buttonwin32.render.md +0 -15
  1279. package/docs/api/react-native-win32.buttonwin32omitstyles.md +0 -11
  1280. package/docs/api/react-native-win32.colorgradientwin32.md +0 -15
  1281. package/docs/api/react-native-win32.cursor.md +0 -11
  1282. package/docs/api/react-native-win32.eventphase.md +0 -21
  1283. package/docs/api/react-native-win32.gradientcolorstop.md +0 -16
  1284. package/docs/api/react-native-win32.gradientcolorvaluewin32.md +0 -16
  1285. package/docs/api/react-native-win32.ibuttonwin32props.md +0 -25
  1286. package/docs/api/react-native-win32.ibuttonwin32props.onblur.md +0 -13
  1287. package/docs/api/react-native-win32.ibuttonwin32props.onfocus.md +0 -13
  1288. package/docs/api/react-native-win32.ibuttonwin32props.onmouseenter.md +0 -13
  1289. package/docs/api/react-native-win32.ibuttonwin32props.onmouseleave.md +0 -13
  1290. package/docs/api/react-native-win32.ibuttonwin32props.ontouchend.md +0 -13
  1291. package/docs/api/react-native-win32.ibuttonwin32props.ontouchstart.md +0 -13
  1292. package/docs/api/react-native-win32.ibuttonwin32props.style.md +0 -13
  1293. package/docs/api/react-native-win32.ibuttonwin32style.md +0 -13
  1294. package/docs/api/react-native-win32.ichildasfunction.md +0 -13
  1295. package/docs/api/react-native-win32.idimensions.height.md +0 -11
  1296. package/docs/api/react-native-win32.idimensions.md +0 -21
  1297. package/docs/api/react-native-win32.idimensions.width.md +0 -11
  1298. package/docs/api/react-native-win32.ihandledkeyboardevent.md +0 -11
  1299. package/docs/api/react-native-win32.ikeyboardevent.md +0 -11
  1300. package/docs/api/react-native-win32.inativekeyboardevent.altkey.md +0 -11
  1301. package/docs/api/react-native-win32.inativekeyboardevent.ctrlkey.md +0 -11
  1302. package/docs/api/react-native-win32.inativekeyboardevent.eventphase.md +0 -11
  1303. package/docs/api/react-native-win32.inativekeyboardevent.key.md +0 -11
  1304. package/docs/api/react-native-win32.inativekeyboardevent.md +0 -23
  1305. package/docs/api/react-native-win32.inativekeyboardevent.metakey.md +0 -11
  1306. package/docs/api/react-native-win32.inativekeyboardevent.shiftkey.md +0 -11
  1307. package/docs/api/react-native-win32.ipersonacoinprops.brandiconsource.md +0 -11
  1308. package/docs/api/react-native-win32.ipersonacoinprops.color.md +0 -11
  1309. package/docs/api/react-native-win32.ipersonacoinprops.disabled.md +0 -11
  1310. package/docs/api/react-native-win32.ipersonacoinprops.displayname.md +0 -11
  1311. package/docs/api/react-native-win32.ipersonacoinprops.emailaddress.md +0 -11
  1312. package/docs/api/react-native-win32.ipersonacoinprops.initials.md +0 -11
  1313. package/docs/api/react-native-win32.ipersonacoinprops.md +0 -29
  1314. package/docs/api/react-native-win32.ipersonacoinprops.onerror.md +0 -11
  1315. package/docs/api/react-native-win32.ipersonacoinprops.onload.md +0 -11
  1316. package/docs/api/react-native-win32.ipersonacoinprops.presence.md +0 -11
  1317. package/docs/api/react-native-win32.ipersonacoinprops.size.md +0 -11
  1318. package/docs/api/react-native-win32.ipersonacoinprops.source.md +0 -11
  1319. package/docs/api/react-native-win32.iposition.left.md +0 -11
  1320. package/docs/api/react-native-win32.iposition.md +0 -21
  1321. package/docs/api/react-native-win32.iposition.top.md +0 -11
  1322. package/docs/api/react-native-win32.ipressevent.md +0 -24
  1323. package/docs/api/react-native-win32.ipressinlocation.locationx.md +0 -11
  1324. package/docs/api/react-native-win32.ipressinlocation.locationy.md +0 -11
  1325. package/docs/api/react-native-win32.ipressinlocation.md +0 -23
  1326. package/docs/api/react-native-win32.ipressinlocation.pagex.md +0 -11
  1327. package/docs/api/react-native-win32.ipressinlocation.pagey.md +0 -11
  1328. package/docs/api/react-native-win32.irenderchild.md +0 -13
  1329. package/docs/api/react-native-win32.irenderstyle.md +0 -13
  1330. package/docs/api/react-native-win32.irespondersyntheticevent.md +0 -21
  1331. package/docs/api/react-native-win32.irespondersyntheticevent.touchhistory.md +0 -16
  1332. package/docs/api/react-native-win32.isignal.md +0 -13
  1333. package/docs/api/react-native-win32.istate.md +0 -13
  1334. package/docs/api/react-native-win32.istateconditions.md +0 -15
  1335. package/docs/api/react-native-win32.itextwin32props.md +0 -20
  1336. package/docs/api/react-native-win32.itextwin32props.textstyle.md +0 -25
  1337. package/docs/api/react-native-win32.itextwin32props.tooltip.md +0 -13
  1338. package/docs/api/react-native-win32.itouchablewin32props.children.md +0 -11
  1339. package/docs/api/react-native-win32.itouchablewin32props.disabled.md +0 -11
  1340. package/docs/api/react-native-win32.itouchablewin32props.filterkeys.md +0 -13
  1341. package/docs/api/react-native-win32.itouchablewin32props.md +0 -36
  1342. package/docs/api/react-native-win32.itouchablewin32props.onlongpress.md +0 -11
  1343. package/docs/api/react-native-win32.itouchablewin32props.rejectrespondertermination.md +0 -11
  1344. package/docs/api/react-native-win32.itouchablewin32props.renderstyle.md +0 -11
  1345. package/docs/api/react-native-win32.itouchablewin32props.touchablegethighlightdelayms.md +0 -11
  1346. package/docs/api/react-native-win32.itouchablewin32props.touchablegethitslop.md +0 -11
  1347. package/docs/api/react-native-win32.itouchablewin32props.touchablegetlongpressdelayms.md +0 -11
  1348. package/docs/api/react-native-win32.itouchablewin32props.touchablegetpressoutdelayms.md +0 -11
  1349. package/docs/api/react-native-win32.itouchablewin32props.touchablegetpressrectoffset.md +0 -11
  1350. package/docs/api/react-native-win32.itouchablewin32props.touchablehandleactivepressin.md +0 -11
  1351. package/docs/api/react-native-win32.itouchablewin32props.touchablehandleactivepressout.md +0 -11
  1352. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlekeypress.md +0 -11
  1353. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlekeypressdown.md +0 -11
  1354. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlelongpress.md +0 -11
  1355. package/docs/api/react-native-win32.itouchablewin32props.touchablehandlepress.md +0 -11
  1356. package/docs/api/react-native-win32.itouchablewin32props.touchsounddisabled.md +0 -11
  1357. package/docs/api/react-native-win32.itouchablewin32state.isfocused.md +0 -11
  1358. package/docs/api/react-native-win32.itouchablewin32state.ishovered.md +0 -11
  1359. package/docs/api/react-native-win32.itouchablewin32state.ispressed.md +0 -11
  1360. package/docs/api/react-native-win32.itouchablewin32state.md +0 -20
  1361. package/docs/api/react-native-win32.itouchinfo.currentpagex.md +0 -11
  1362. package/docs/api/react-native-win32.itouchinfo.currentpagey.md +0 -11
  1363. package/docs/api/react-native-win32.itouchinfo.currenttimestamp.md +0 -11
  1364. package/docs/api/react-native-win32.itouchinfo.md +0 -29
  1365. package/docs/api/react-native-win32.itouchinfo.previouspagex.md +0 -11
  1366. package/docs/api/react-native-win32.itouchinfo.previouspagey.md +0 -11
  1367. package/docs/api/react-native-win32.itouchinfo.previoustimestamp.md +0 -11
  1368. package/docs/api/react-native-win32.itouchinfo.startpagex.md +0 -11
  1369. package/docs/api/react-native-win32.itouchinfo.startpagey.md +0 -11
  1370. package/docs/api/react-native-win32.itouchinfo.starttimestamp.md +0 -11
  1371. package/docs/api/react-native-win32.itouchinfo.touchactive.md +0 -11
  1372. package/docs/api/react-native-win32.itransitions.md +0 -15
  1373. package/docs/api/react-native-win32.iviewwin32.focus.md +0 -11
  1374. package/docs/api/react-native-win32.iviewwin32.md +0 -18
  1375. package/docs/api/react-native-win32.iviewwin32props.acceptskeyboardfocus.md +0 -16
  1376. package/docs/api/react-native-win32.iviewwin32props.accessibilityactions.md +0 -11
  1377. package/docs/api/react-native-win32.iviewwin32props.accessibilityannotation.md +0 -15
  1378. package/docs/api/react-native-win32.iviewwin32props.accessibilitylevel.md +0 -11
  1379. package/docs/api/react-native-win32.iviewwin32props.accessibilitypositioninset.md +0 -11
  1380. package/docs/api/react-native-win32.iviewwin32props.accessibilitysetsize.md +0 -11
  1381. package/docs/api/react-native-win32.iviewwin32props.animationclass.md +0 -11
  1382. package/docs/api/react-native-win32.iviewwin32props.children.md +0 -11
  1383. package/docs/api/react-native-win32.iviewwin32props.cursor.md +0 -11
  1384. package/docs/api/react-native-win32.iviewwin32props.focusable.md +0 -11
  1385. package/docs/api/react-native-win32.iviewwin32props.keydownevents.md +0 -11
  1386. package/docs/api/react-native-win32.iviewwin32props.keyupevents.md +0 -11
  1387. package/docs/api/react-native-win32.iviewwin32props.md +0 -44
  1388. package/docs/api/react-native-win32.iviewwin32props.onblur.md +0 -15
  1389. package/docs/api/react-native-win32.iviewwin32props.onblurcapture.md +0 -15
  1390. package/docs/api/react-native-win32.iviewwin32props.onfocus.md +0 -15
  1391. package/docs/api/react-native-win32.iviewwin32props.onfocuscapture.md +0 -15
  1392. package/docs/api/react-native-win32.iviewwin32props.onkeydown.md +0 -11
  1393. package/docs/api/react-native-win32.iviewwin32props.onkeydowncapture.md +0 -11
  1394. package/docs/api/react-native-win32.iviewwin32props.onkeyup.md +0 -11
  1395. package/docs/api/react-native-win32.iviewwin32props.onkeyupcapture.md +0 -11
  1396. package/docs/api/react-native-win32.iviewwin32props.onmouseenter.md +0 -11
  1397. package/docs/api/react-native-win32.iviewwin32props.onmouseleave.md +0 -11
  1398. package/docs/api/react-native-win32.iviewwin32props.tooltip.md +0 -13
  1399. package/docs/api/react-native-win32.iviewwin32props.type.md +0 -11
  1400. package/docs/api/react-native-win32.md +0 -85
  1401. package/docs/api/react-native-win32.omittedaccessibilitypropswin32.md +0 -15
  1402. package/docs/api/react-native-win32.personacoin.md +0 -11
  1403. package/docs/api/react-native-win32.personacoinpresence.md +0 -25
  1404. package/docs/api/react-native-win32.personacoinsize.md +0 -23
  1405. package/docs/api/react-native-win32.sharedaccessibilitypropsiosandwin32.md +0 -13
  1406. package/docs/api/react-native-win32.textstyle.md +0 -13
  1407. package/docs/api/react-native-win32.textwin32._constructor_.md +0 -20
  1408. package/docs/api/react-native-win32.textwin32.md +0 -25
  1409. package/docs/api/react-native-win32.textwin32.render.md +0 -15
  1410. package/docs/api/react-native-win32.textwin32omittypes.md +0 -11
  1411. package/docs/api/react-native-win32.touchablewin32._constructor_.md +0 -20
  1412. package/docs/api/react-native-win32.touchablewin32.componentwillunmount.md +0 -15
  1413. package/docs/api/react-native-win32.touchablewin32.focus.md +0 -11
  1414. package/docs/api/react-native-win32.touchablewin32.md +0 -34
  1415. package/docs/api/react-native-win32.touchablewin32.render.md +0 -15
  1416. package/docs/api/react-native-win32.usefrom.md +0 -13
  1417. package/docs/api/react-native-win32.viewwin32.md +0 -11
  1418. package/docs/api/react-native-win32.viewwin32omittypes.md +0 -11
  1419. package/etc/react-native-win32.api.md +0 -481
  1420. package/flow/Promise.js +0 -47
  1421. package/flow/fbjs.js +0 -258
  1422. package/flow/use-subscription.js +0 -19
  1423. package/jest/preprocessor.js +0 -120
  1424. package/typings-index.d.ts +0 -20
  1425. package/typings-index.js +0 -40
@@ -1,54 +1,69 @@
1
1
  /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
3
  *
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @flow
7
+ * @flow strict-local
8
8
  * @format
9
9
  */
10
10
 
11
- 'use strict';
12
-
13
- const DeprecatedTextInputPropTypes = require('../../DeprecatedPropTypes/DeprecatedTextInputPropTypes');
14
- const Platform = require('../../Utilities/Platform');
15
- const React = require('react');
16
- const ReactNative = require('../../Renderer/shims/ReactNative');
17
- const StyleSheet = require('../../StyleSheet/StyleSheet');
18
- const Text = require('../../Text/Text');
19
- const TextAncestor = require('../../Text/TextAncestor');
20
- const TextInputState = require('./TextInputState');
21
- const TouchableWithoutFeedback = require('../Touchable/TouchableWithoutFeedback');
22
-
23
- const invariant = require('invariant');
24
- const nullthrows = require('nullthrows');
25
- const setAndForwardRef = require('../../Utilities/setAndForwardRef');
26
-
27
- import type {TextStyleProp, ViewStyleProp} from '../../StyleSheet/StyleSheet';
28
- import type {ColorValue} from '../../StyleSheet/StyleSheetTypes';
11
+ import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
12
+ import type {____TextStyle_Internal as TextStyleInternal} from '../../StyleSheet/StyleSheetTypes';
13
+ import type {
14
+ PressEvent,
15
+ ScrollEvent,
16
+ SyntheticEvent,
17
+ } from '../../Types/CoreEventTypes';
29
18
  import type {ViewProps} from '../View/ViewPropTypes';
30
- import type {SyntheticEvent, ScrollEvent} from '../../Types/CoreEventTypes';
31
- import type {PressEvent} from '../../Types/CoreEventTypes';
32
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
33
-
34
- const {useEffect, useRef, useState} = React;
19
+ import type {TextInputType} from './TextInput.flow';
20
+
21
+ import * as ReactNativeFeatureFlags from '../../../src/private/featureflags/ReactNativeFeatureFlags';
22
+ import usePressability from '../../Pressability/usePressability';
23
+ import flattenStyle from '../../StyleSheet/flattenStyle';
24
+ import StyleSheet, {
25
+ type ColorValue,
26
+ type TextStyleProp,
27
+ type ViewStyleProp,
28
+ } from '../../StyleSheet/StyleSheet';
29
+ import Text from '../../Text/Text';
30
+ import TextAncestor from '../../Text/TextAncestor';
31
+ import Platform from '../../Utilities/Platform';
32
+ import useMergeRefs from '../../Utilities/useMergeRefs';
33
+ import TextInputState from './TextInputState';
34
+ import invariant from 'invariant';
35
+ import nullthrows from 'nullthrows';
36
+ import * as React from 'react';
37
+ import {useCallback, useLayoutEffect, useRef, useState} from 'react';
35
38
 
36
39
  type ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);
40
+ type TextInputInstance = HostInstance & {
41
+ +clear: () => void,
42
+ +isFocused: () => boolean,
43
+ +getNativeRef: () => ?HostInstance,
44
+ +setSelection: (start: number, end: number) => void,
45
+ };
37
46
 
38
47
  let AndroidTextInput;
39
48
  let AndroidTextInputCommands;
40
- let RCTMultilineTextInputView;
41
49
  let RCTSinglelineTextInputView;
50
+ let RCTSinglelineTextInputNativeCommands;
51
+ let RCTMultilineTextInputView;
52
+ let RCTMultilineTextInputNativeCommands;
42
53
 
43
54
  if (Platform.OS === 'android') {
44
55
  AndroidTextInput = require('./AndroidTextInputNativeComponent').default;
45
- AndroidTextInputCommands = require('./AndroidTextInputNativeComponent')
46
- .Commands;
56
+ AndroidTextInputCommands =
57
+ require('./AndroidTextInputNativeComponent').Commands;
47
58
  } else if (Platform.OS === 'ios') {
48
- RCTMultilineTextInputView = require('./RCTMultilineTextInputNativeComponent')
49
- .default;
50
- RCTSinglelineTextInputView = require('./RCTSingelineTextInputNativeComponent')
51
- .default;
59
+ RCTSinglelineTextInputView =
60
+ require('./RCTSingelineTextInputNativeComponent').default;
61
+ RCTSinglelineTextInputNativeCommands =
62
+ require('./RCTSingelineTextInputNativeComponent').Commands;
63
+ RCTMultilineTextInputView =
64
+ require('./RCTMultilineTextInputNativeComponent').default;
65
+ RCTMultilineTextInputNativeCommands =
66
+ require('./RCTMultilineTextInputNativeComponent').Commands;
52
67
  }
53
68
 
54
69
  export type ChangeEvent = SyntheticEvent<
@@ -124,6 +139,9 @@ type DataDetectorTypesType =
124
139
  | 'link'
125
140
  | 'address'
126
141
  | 'calendarEvent'
142
+ | 'trackingNumber'
143
+ | 'flightNumber'
144
+ | 'lookupSuggestion'
127
145
  | 'none'
128
146
  | 'all';
129
147
 
@@ -135,10 +153,10 @@ export type KeyboardType =
135
153
  | 'phone-pad'
136
154
  | 'number-pad'
137
155
  | 'decimal-pad'
156
+ | 'url'
138
157
  // iOS-only
139
158
  | 'ascii-capable'
140
159
  | 'numbers-and-punctuation'
141
- | 'url'
142
160
  | 'name-phone-pad'
143
161
  | 'twitter'
144
162
  | 'web-search'
@@ -147,6 +165,16 @@ export type KeyboardType =
147
165
  // Android-only
148
166
  | 'visible-password';
149
167
 
168
+ export type InputMode =
169
+ | 'none'
170
+ | 'text'
171
+ | 'decimal'
172
+ | 'numeric'
173
+ | 'tel'
174
+ | 'search'
175
+ | 'email'
176
+ | 'url';
177
+
150
178
  export type ReturnKeyType =
151
179
  // Cross Platform
152
180
  | 'done'
@@ -165,6 +193,8 @@ export type ReturnKeyType =
165
193
  | 'route'
166
194
  | 'yahoo';
167
195
 
196
+ export type SubmitBehavior = 'submit' | 'blurAndSubmit' | 'newline';
197
+
168
198
  export type AutoCapitalize = 'none' | 'sentences' | 'words' | 'characters';
169
199
 
170
200
  export type TextContentType =
@@ -175,6 +205,15 @@ export type TextContentType =
175
205
  | 'addressState'
176
206
  | 'countryName'
177
207
  | 'creditCardNumber'
208
+ | 'creditCardExpiration'
209
+ | 'creditCardExpirationMonth'
210
+ | 'creditCardExpirationYear'
211
+ | 'creditCardSecurityCode'
212
+ | 'creditCardType'
213
+ | 'creditCardName'
214
+ | 'creditCardGivenName'
215
+ | 'creditCardMiddleName'
216
+ | 'creditCardFamilyName'
178
217
  | 'emailAddress'
179
218
  | 'familyName'
180
219
  | 'fullStreetAddress'
@@ -195,30 +234,37 @@ export type TextContentType =
195
234
  | 'username'
196
235
  | 'password'
197
236
  | 'newPassword'
198
- | 'oneTimeCode';
237
+ | 'oneTimeCode'
238
+ | 'birthdate'
239
+ | 'birthdateDay'
240
+ | 'birthdateMonth'
241
+ | 'birthdateYear'
242
+ | 'cellularEID'
243
+ | 'cellularIMEI'
244
+ | 'dateTime'
245
+ | 'flightNumber'
246
+ | 'shipmentTrackingNumber';
247
+
248
+ export type enterKeyHintType =
249
+ // Cross Platform
250
+ | 'done'
251
+ | 'go'
252
+ | 'next'
253
+ | 'search'
254
+ | 'send'
255
+ // Android-only
256
+ | 'previous'
257
+ // iOS-only
258
+ | 'enter';
199
259
 
200
260
  type PasswordRules = string;
201
261
 
202
262
  type IOSProps = $ReadOnly<{|
203
263
  /**
204
- * If `false`, disables spell-check style (i.e. red underlines).
205
- * The default value is inherited from `autoCorrect`.
206
- * @platform ios
207
- */
208
- spellCheck?: ?boolean,
209
-
210
- /**
211
- * Determines the color of the keyboard.
212
- * @platform ios
213
- */
214
- keyboardAppearance?: ?('default' | 'light' | 'dark'),
215
-
216
- /**
217
- * If `true`, the keyboard disables the return key when there is no text and
218
- * automatically enables it when there is text. The default value is `false`.
264
+ * If true, the keyboard shortcuts (undo/redo and copy buttons) are disabled. The default value is false.
219
265
  * @platform ios
220
266
  */
221
- enablesReturnKeyAutomatically?: ?boolean,
267
+ disableKeyboardShortcuts?: ?boolean,
222
268
 
223
269
  /**
224
270
  * When the clear button should appear on the right side of the text view.
@@ -255,6 +301,13 @@ type IOSProps = $ReadOnly<{|
255
301
  | ?DataDetectorTypesType
256
302
  | $ReadOnlyArray<DataDetectorTypesType>,
257
303
 
304
+ /**
305
+ * If `true`, the keyboard disables the return key when there is no text and
306
+ * automatically enables it when there is text. The default value is `false`.
307
+ * @platform ios
308
+ */
309
+ enablesReturnKeyAutomatically?: ?boolean,
310
+
258
311
  /**
259
312
  * An optional identifier which links a custom InputAccessoryView to
260
313
  * this text input. The InputAccessoryView is rendered above the
@@ -264,11 +317,16 @@ type IOSProps = $ReadOnly<{|
264
317
  inputAccessoryViewID?: ?string,
265
318
 
266
319
  /**
267
- * Give the keyboard and the system information about the
268
- * expected semantic meaning for the content that users enter.
320
+ * An optional label that overrides the default input accessory view button label.
269
321
  * @platform ios
270
322
  */
271
- textContentType?: ?TextContentType,
323
+ inputAccessoryViewButtonLabel?: ?string,
324
+
325
+ /**
326
+ * Determines the color of the keyboard.
327
+ * @platform ios
328
+ */
329
+ keyboardAppearance?: ?('default' | 'light' | 'dark'),
272
330
 
273
331
  /**
274
332
  * Provide rules for your password.
@@ -293,61 +351,62 @@ type IOSProps = $ReadOnly<{|
293
351
  * @platform ios
294
352
  */
295
353
  scrollEnabled?: ?boolean,
296
- |}>;
297
354
 
298
- type AndroidProps = $ReadOnly<{|
299
355
  /**
300
- * Determines which content to suggest on auto complete, e.g.`username`.
301
- * To disable auto complete, use `off`.
302
- *
303
- * *Android Only*
304
- *
305
- * The following values work on Android only:
306
- *
307
- * - `username`
308
- * - `password`
309
- * - `email`
310
- * - `name`
311
- * - `tel`
312
- * - `street-address`
313
- * - `postal-code`
314
- * - `cc-number`
315
- * - `cc-csc`
316
- * - `cc-exp`
317
- * - `cc-exp-month`
318
- * - `cc-exp-year`
319
- * - `off`
320
- *
321
- * @platform android
356
+ * If `false`, disables spell-check style (i.e. red underlines).
357
+ * The default value is inherited from `autoCorrect`.
358
+ * @platform ios
322
359
  */
323
- autoCompleteType?: ?(
324
- | 'cc-csc'
325
- | 'cc-exp'
326
- | 'cc-exp-month'
327
- | 'cc-exp-year'
328
- | 'cc-number'
329
- | 'email'
330
- | 'name'
331
- | 'password'
332
- | 'postal-code'
333
- | 'street-address'
334
- | 'tel'
335
- | 'username'
336
- | 'off'
360
+ spellCheck?: ?boolean,
361
+
362
+ /**
363
+ * Give the keyboard and the system information about the
364
+ * expected semantic meaning for the content that users enter.
365
+ * `autoComplete` property accomplishes same behavior and is recommended as its supported by both platforms.
366
+ * Avoid using both `autoComplete` and `textContentType`, you can use `Platform.select` for differing platform behaviors.
367
+ * For backwards compatibility, when both set, `textContentType` takes precedence on iOS.
368
+ * @platform ios
369
+ */
370
+ textContentType?: ?TextContentType,
371
+
372
+ /**
373
+ * Set line break strategy on iOS.
374
+ * @platform ios
375
+ */
376
+ lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
377
+
378
+ /**
379
+ * Set line break mode on iOS.
380
+ * @platform ios
381
+ */
382
+ lineBreakModeIOS?: ?(
383
+ | 'wordWrapping'
384
+ | 'char'
385
+ | 'clip'
386
+ | 'head'
387
+ | 'middle'
388
+ | 'tail'
337
389
  ),
338
390
 
339
391
  /**
340
- * Sets the return key to the label. Use it instead of `returnKeyType`.
341
- * @platform android
392
+ * If `false`, the iOS system will not insert an extra space after a paste operation
393
+ * neither delete one or two spaces after a cut or delete operation.
394
+ *
395
+ * The default value is `true`.
396
+ *
397
+ * @platform ios
342
398
  */
343
- returnKeyLabel?: ?string,
399
+ smartInsertDelete?: ?boolean,
400
+ |}>;
344
401
 
402
+ type AndroidProps = $ReadOnly<{|
345
403
  /**
346
- * Sets the number of lines for a `TextInput`. Use it with multiline set to
347
- * `true` to be able to fill the lines.
404
+ * When provided it will set the color of the cursor (or "caret") in the component.
405
+ * Unlike the behavior of `selectionColor` the cursor color will be set independently
406
+ * from the color of the text selection box.
348
407
  * @platform android
349
408
  */
350
- numberOfLines?: ?number,
409
+ cursorColor?: ?ColorValue,
351
410
 
352
411
  /**
353
412
  * When `false`, if there is a small amount of space available around a text input
@@ -359,18 +418,13 @@ type AndroidProps = $ReadOnly<{|
359
418
  */
360
419
  disableFullscreenUI?: ?boolean,
361
420
 
362
- /**
363
- * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`
364
- * The default value is `simple`.
365
- * @platform android
366
- */
367
- textBreakStrategy?: ?('simple' | 'highQuality' | 'balanced'),
368
-
369
- /**
370
- * The color of the `TextInput` underline.
371
- * @platform android
372
- */
373
- underlineColorAndroid?: ?ColorValue,
421
+ importantForAutofill?: ?(
422
+ | 'auto'
423
+ | 'no'
424
+ | 'noExcludeDescendants'
425
+ | 'yes'
426
+ | 'yesExcludeDescendants'
427
+ ),
374
428
 
375
429
  /**
376
430
  * If defined, the provided image resource will be rendered on the left.
@@ -391,20 +445,44 @@ type AndroidProps = $ReadOnly<{|
391
445
  */
392
446
  inlineImagePadding?: ?number,
393
447
 
394
- importantForAutofill?: ?(
395
- | 'auto'
396
- | 'no'
397
- | 'noExcludeDescendants'
398
- | 'yes'
399
- | 'yesExcludeDescendants'
400
- ),
448
+ /**
449
+ * Sets the number of lines for a `TextInput`. Use it with multiline set to
450
+ * `true` to be able to fill the lines.
451
+ * @platform android
452
+ */
453
+ numberOfLines?: ?number,
454
+
455
+ /**
456
+ * Sets the return key to the label. Use it instead of `returnKeyType`.
457
+ * @platform android
458
+ */
459
+ returnKeyLabel?: ?string,
460
+
461
+ /**
462
+ * Sets the number of rows for a `TextInput`. Use it with multiline set to
463
+ * `true` to be able to fill the lines.
464
+ * @platform android
465
+ */
466
+ rows?: ?number,
401
467
 
402
468
  /**
403
469
  * When `false`, it will prevent the soft keyboard from showing when the field is focused.
404
470
  * Defaults to `true`.
405
- * @platform android
406
471
  */
407
472
  showSoftInputOnFocus?: ?boolean,
473
+
474
+ /**
475
+ * Set text break strategy on Android API Level 23+, possible values are `simple`, `highQuality`, `balanced`
476
+ * The default value is `simple`.
477
+ * @platform android
478
+ */
479
+ textBreakStrategy?: ?('simple' | 'highQuality' | 'balanced'),
480
+
481
+ /**
482
+ * The color of the `TextInput` underline.
483
+ * @platform android
484
+ */
485
+ underlineColorAndroid?: ?ColorValue,
408
486
  |}>;
409
487
 
410
488
  export type Props = $ReadOnly<{|
@@ -422,6 +500,137 @@ export type Props = $ReadOnly<{|
422
500
  */
423
501
  autoCapitalize?: ?AutoCapitalize,
424
502
 
503
+ /**
504
+ * Specifies autocomplete hints for the system, so it can provide autofill.
505
+ * On Android, the system will always attempt to offer autofill by using heuristics to identify the type of content.
506
+ * To disable autocomplete, set autoComplete to off.
507
+ *
508
+ * The following values work across platforms:
509
+ *
510
+ * - `additional-name`
511
+ * - `address-line1`
512
+ * - `address-line2`
513
+ * - `birthdate-day` (iOS 17+)
514
+ * - `birthdate-full` (iOS 17+)
515
+ * - `birthdate-month` (iOS 17+)
516
+ * - `birthdate-year` (iOS 17+)
517
+ * - `cc-number`
518
+ * - `cc-csc` (iOS 17+)
519
+ * - `cc-exp` (iOS 17+)
520
+ * - `cc-exp-day` (iOS 17+)
521
+ * - `cc-exp-month` (iOS 17+)
522
+ * - `cc-exp-year` (iOS 17+)
523
+ * - `country`
524
+ * - `current-password`
525
+ * - `email`
526
+ * - `family-name`
527
+ * - `given-name`
528
+ * - `honorific-prefix`
529
+ * - `honorific-suffix`
530
+ * - `name`
531
+ * - `new-password`
532
+ * - `off`
533
+ * - `one-time-code`
534
+ * - `postal-code`
535
+ * - `street-address`
536
+ * - `tel`
537
+ * - `username`
538
+ *
539
+ * The following values work on iOS only:
540
+ *
541
+ * - `cc-name` (iOS 17+)
542
+ * - `cc-given-name` (iOS 17+)
543
+ * - `cc-middle-name` (iOS 17+)
544
+ * - `cc-family-name` (iOS 17+)
545
+ * - `cc-type` (iOS 17+)
546
+ * - `nickname`
547
+ * - `organization`
548
+ * - `organization-title`
549
+ * - `url`
550
+ *
551
+ * The following values work on Android only:
552
+ *
553
+ * - `gender`
554
+ * - `name-family`
555
+ * - `name-given`
556
+ * - `name-middle`
557
+ * - `name-middle-initial`
558
+ * - `name-prefix`
559
+ * - `name-suffix`
560
+ * - `password`
561
+ * - `password-new`
562
+ * - `postal-address`
563
+ * - `postal-address-country`
564
+ * - `postal-address-extended`
565
+ * - `postal-address-extended-postal-code`
566
+ * - `postal-address-locality`
567
+ * - `postal-address-region`
568
+ * - `sms-otp`
569
+ * - `tel-country-code`
570
+ * - `tel-national`
571
+ * - `tel-device`
572
+ * - `username-new`
573
+ */
574
+ autoComplete?: ?(
575
+ | 'additional-name'
576
+ | 'address-line1'
577
+ | 'address-line2'
578
+ | 'birthdate-day'
579
+ | 'birthdate-full'
580
+ | 'birthdate-month'
581
+ | 'birthdate-year'
582
+ | 'cc-csc'
583
+ | 'cc-exp'
584
+ | 'cc-exp-day'
585
+ | 'cc-exp-month'
586
+ | 'cc-exp-year'
587
+ | 'cc-number'
588
+ | 'cc-name'
589
+ | 'cc-given-name'
590
+ | 'cc-middle-name'
591
+ | 'cc-family-name'
592
+ | 'cc-type'
593
+ | 'country'
594
+ | 'current-password'
595
+ | 'email'
596
+ | 'family-name'
597
+ | 'gender'
598
+ | 'given-name'
599
+ | 'honorific-prefix'
600
+ | 'honorific-suffix'
601
+ | 'name'
602
+ | 'name-family'
603
+ | 'name-given'
604
+ | 'name-middle'
605
+ | 'name-middle-initial'
606
+ | 'name-prefix'
607
+ | 'name-suffix'
608
+ | 'new-password'
609
+ | 'nickname'
610
+ | 'one-time-code'
611
+ | 'organization'
612
+ | 'organization-title'
613
+ | 'password'
614
+ | 'password-new'
615
+ | 'postal-address'
616
+ | 'postal-address-country'
617
+ | 'postal-address-extended'
618
+ | 'postal-address-extended-postal-code'
619
+ | 'postal-address-locality'
620
+ | 'postal-address-region'
621
+ | 'postal-code'
622
+ | 'street-address'
623
+ | 'sms-otp'
624
+ | 'tel'
625
+ | 'tel-country-code'
626
+ | 'tel-national'
627
+ | 'tel-device'
628
+ | 'url'
629
+ | 'username'
630
+ | 'username-new'
631
+ | 'off'
632
+ ),
633
+
425
634
  /**
426
635
  * If `false`, disables auto-correct. The default value is `true`.
427
636
  */
@@ -440,19 +649,67 @@ export type Props = $ReadOnly<{|
440
649
  allowFontScaling?: ?boolean,
441
650
 
442
651
  /**
443
- * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.
444
- * Possible values:
445
- * `null/undefined` (default): inherit from the parent node or the global default (0)
446
- * `0`: no max, ignore parent/global default
447
- * `>= 1`: sets the maxFontSizeMultiplier of this node to this value
652
+ * If `true`, caret is hidden. The default value is `false`.
653
+ *
654
+ * On Android devices manufactured by Xiaomi with Android Q,
655
+ * when keyboardType equals 'email-address'this will be set
656
+ * in native to 'true' to prevent a system related crash. This
657
+ * will cause cursor to be disabled as a side-effect.
658
+ *
448
659
  */
449
- maxFontSizeMultiplier?: ?number,
660
+ caretHidden?: ?boolean,
661
+
662
+ /*
663
+ * If `true`, contextMenuHidden is hidden. The default value is `false`.
664
+ */
665
+ contextMenuHidden?: ?boolean,
666
+
667
+ /**
668
+ * Provides an initial value that will change when the user starts typing.
669
+ * Useful for simple use-cases where you do not want to deal with listening
670
+ * to events and updating the value prop to keep the controlled state in sync.
671
+ */
672
+ defaultValue?: ?Stringish,
450
673
 
451
674
  /**
452
675
  * If `false`, text is not editable. The default value is `true`.
453
676
  */
454
677
  editable?: ?boolean,
455
678
 
679
+ forwardedRef?: ?ReactRefSetter<TextInputInstance>,
680
+
681
+ /**
682
+ * `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.
683
+ *
684
+ * The following values is supported:
685
+ *
686
+ * - `enter`
687
+ * - `done`
688
+ * - `go`
689
+ * - `next`
690
+ * - `previous`
691
+ * - `search`
692
+ * - `send`
693
+ */
694
+ enterKeyHint?: ?enterKeyHintType,
695
+
696
+ /**
697
+ * `inputMode` works like the `inputmode` attribute in HTML, it determines which
698
+ * keyboard to open, e.g.`numeric` and has precedence over keyboardType
699
+ *
700
+ * Support the following values:
701
+ *
702
+ * - `none`
703
+ * - `text`
704
+ * - `decimal`
705
+ * - `numeric`
706
+ * - `tel`
707
+ * - `search`
708
+ * - `email`
709
+ * - `url`
710
+ */
711
+ inputMode?: ?InputMode,
712
+
456
713
  /**
457
714
  * Determines which keyboard to open, e.g.`numeric`.
458
715
  *
@@ -464,6 +721,7 @@ export type Props = $ReadOnly<{|
464
721
  * - `decimal-pad`
465
722
  * - `email-address`
466
723
  * - `phone-pad`
724
+ * - `url`
467
725
  *
468
726
  * *iOS Only*
469
727
  *
@@ -471,7 +729,6 @@ export type Props = $ReadOnly<{|
471
729
  *
472
730
  * - `ascii-capable`
473
731
  * - `numbers-and-punctuation`
474
- * - `url`
475
732
  * - `name-phone-pad`
476
733
  * - `twitter`
477
734
  * - `web-search`
@@ -481,42 +738,18 @@ export type Props = $ReadOnly<{|
481
738
  * The following values work on Android only:
482
739
  *
483
740
  * - `visible-password`
741
+ *
484
742
  */
485
743
  keyboardType?: ?KeyboardType,
486
744
 
487
745
  /**
488
- * Determines how the return key should look. On Android you can also use
489
- * `returnKeyLabel`.
490
- *
491
- * *Cross platform*
492
- *
493
- * The following values work across platforms:
494
- *
495
- * - `done`
496
- * - `go`
497
- * - `next`
498
- * - `search`
499
- * - `send`
500
- *
501
- * *Android Only*
502
- *
503
- * The following values work on Android only:
504
- *
505
- * - `none`
506
- * - `previous`
507
- *
508
- * *iOS Only*
509
- *
510
- * The following values work on iOS only:
511
- *
512
- * - `default`
513
- * - `emergency-call`
514
- * - `google`
515
- * - `join`
516
- * - `route`
517
- * - `yahoo`
746
+ * Specifies largest possible scale a font can reach when `allowFontScaling` is enabled.
747
+ * Possible values:
748
+ * `null/undefined` (default): inherit from the parent node or the global default (0)
749
+ * `0`: no max, ignore parent/global default
750
+ * `>= 1`: sets the maxFontSizeMultiplier of this node to this value
518
751
  */
519
- returnKeyType?: ?ReturnKeyType,
752
+ maxFontSizeMultiplier?: ?number,
520
753
 
521
754
  /**
522
755
  * Limits the maximum number of characters that can be entered. Use this
@@ -535,11 +768,6 @@ export type Props = $ReadOnly<{|
535
768
  */
536
769
  onBlur?: ?(e: BlurEvent) => mixed,
537
770
 
538
- /**
539
- * Callback that is called when the text input is focused.
540
- */
541
- onFocus?: ?(e: FocusEvent) => mixed,
542
-
543
771
  /**
544
772
  * Callback that is called when the text input's text changes.
545
773
  */
@@ -565,6 +793,35 @@ export type Props = $ReadOnly<{|
565
793
  */
566
794
  onEndEditing?: ?(e: EditingEvent) => mixed,
567
795
 
796
+ /**
797
+ * Callback that is called when the text input is focused.
798
+ */
799
+ onFocus?: ?(e: FocusEvent) => mixed,
800
+
801
+ /**
802
+ * Callback that is called when a key is pressed.
803
+ * This will be called with `{ nativeEvent: { key: keyValue } }`
804
+ * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and
805
+ * the typed-in character otherwise including `' '` for space.
806
+ * Fires before `onChange` callbacks.
807
+ */
808
+ onKeyPress?: ?(e: KeyPressEvent) => mixed,
809
+
810
+ /**
811
+ * Called when a single tap gesture is detected.
812
+ */
813
+ onPress?: ?(event: PressEvent) => mixed,
814
+
815
+ /**
816
+ * Called when a touch is engaged.
817
+ */
818
+ onPressIn?: ?(event: PressEvent) => mixed,
819
+
820
+ /**
821
+ * Called when a touch is released.
822
+ */
823
+ onPressOut?: ?(event: PressEvent) => mixed,
824
+
568
825
  /**
569
826
  * Callback that is called when the text input selection is changed.
570
827
  * This will be called with
@@ -578,15 +835,6 @@ export type Props = $ReadOnly<{|
578
835
  */
579
836
  onSubmitEditing?: ?(e: EditingEvent) => mixed,
580
837
 
581
- /**
582
- * Callback that is called when a key is pressed.
583
- * This will be called with `{ nativeEvent: { key: keyValue } }`
584
- * where `keyValue` is `'Enter'` or `'Backspace'` for respective keys and
585
- * the typed-in character otherwise including `' '` for space.
586
- * Fires before `onChange` callbacks.
587
- */
588
- onKeyPress?: ?(e: KeyPressEvent) => mixed,
589
-
590
838
  /**
591
839
  * Invoked on content scroll with `{ nativeEvent: { contentOffset: { x, y } } }`.
592
840
  * May also contain other properties from ScrollEvent but on Android contentSize
@@ -604,16 +852,52 @@ export type Props = $ReadOnly<{|
604
852
  */
605
853
  placeholderTextColor?: ?ColorValue,
606
854
 
855
+ /** `readOnly` works like the `readonly` attribute in HTML.
856
+ * If `true`, text is not editable. The default value is `false`.
857
+ * See https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/readonly
858
+ * for more details.
859
+ */
860
+ readOnly?: ?boolean,
861
+
607
862
  /**
608
- * If `true`, the text input obscures the text entered so that sensitive text
609
- * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.
863
+ * Determines how the return key should look. On Android you can also use
864
+ * `returnKeyLabel`.
865
+ *
866
+ * *Cross platform*
867
+ *
868
+ * The following values work across platforms:
869
+ *
870
+ * - `done`
871
+ * - `go`
872
+ * - `next`
873
+ * - `search`
874
+ * - `send`
875
+ *
876
+ * *Android Only*
877
+ *
878
+ * The following values work on Android only:
879
+ *
880
+ * - `none`
881
+ * - `previous`
882
+ *
883
+ * *iOS Only*
884
+ *
885
+ * The following values work on iOS only:
886
+ *
887
+ * - `default`
888
+ * - `emergency-call`
889
+ * - `google`
890
+ * - `join`
891
+ * - `route`
892
+ * - `yahoo`
610
893
  */
611
- secureTextEntry?: ?boolean,
894
+ returnKeyType?: ?ReturnKeyType,
612
895
 
613
896
  /**
614
- * The highlight and cursor color of the text input.
897
+ * If `true`, the text input obscures the text entered so that sensitive text
898
+ * like passwords stay secure. The default value is `false`. Does not work with 'multiline={true}'.
615
899
  */
616
- selectionColor?: ?ColorValue,
900
+ secureTextEntry?: ?boolean,
617
901
 
618
902
  /**
619
903
  * The start and end of the text input's selection. Set start and end to
@@ -625,22 +909,15 @@ export type Props = $ReadOnly<{|
625
909
  |}>,
626
910
 
627
911
  /**
628
- * The value to show for the text input. `TextInput` is a controlled
629
- * component, which means the native value will be forced to match this
630
- * value prop if provided. For most uses, this works great, but in some
631
- * cases this may cause flickering - one common cause is preventing edits
632
- * by keeping value the same. In addition to simply setting the same value,
633
- * either set `editable={false}`, or set/update `maxLength` to prevent
634
- * unwanted edits without flicker.
912
+ * The highlight and cursor color of the text input.
635
913
  */
636
- value?: ?Stringish,
914
+ selectionColor?: ?ColorValue,
637
915
 
638
916
  /**
639
- * Provides an initial value that will change when the user starts typing.
640
- * Useful for simple use-cases where you do not want to deal with listening
641
- * to events and updating the value prop to keep the controlled state in sync.
917
+ * The text selection handle color.
918
+ * @platform android
642
919
  */
643
- defaultValue?: ?Stringish,
920
+ selectionHandleColor?: ?ColorValue,
644
921
 
645
922
  /**
646
923
  * If `true`, all text will automatically be selected on focus.
@@ -653,9 +930,34 @@ export type Props = $ReadOnly<{|
653
930
  * multiline fields. Note that for multiline fields, setting `blurOnSubmit`
654
931
  * to `true` means that pressing return will blur the field and trigger the
655
932
  * `onSubmitEditing` event instead of inserting a newline into the field.
933
+ *
934
+ * @deprecated
935
+ * Note that `submitBehavior` now takes the place of `blurOnSubmit` and will
936
+ * override any behavior defined by `blurOnSubmit`.
937
+ * @see submitBehavior
656
938
  */
657
939
  blurOnSubmit?: ?boolean,
658
940
 
941
+ /**
942
+ * When the return key is pressed,
943
+ *
944
+ * For single line inputs:
945
+ *
946
+ * - `'newline`' defaults to `'blurAndSubmit'`
947
+ * - `undefined` defaults to `'blurAndSubmit'`
948
+ *
949
+ * For multiline inputs:
950
+ *
951
+ * - `'newline'` adds a newline
952
+ * - `undefined` defaults to `'newline'`
953
+ *
954
+ * For both single line and multiline inputs:
955
+ *
956
+ * - `'submit'` will only send a submit event and not blur the input
957
+ * - `'blurAndSubmit`' will both blur the input and send a submit event
958
+ */
959
+ submitBehavior?: ?SubmitBehavior,
960
+
659
961
  /**
660
962
  * Note that not all Text styles are supported, an incomplete list of what is not supported includes:
661
963
  *
@@ -676,29 +978,199 @@ export type Props = $ReadOnly<{|
676
978
  style?: ?TextStyleProp,
677
979
 
678
980
  /**
679
- * If `true`, caret is hidden. The default value is `false`.
680
- * This property is supported only for single-line TextInput component on iOS.
681
- */
682
- caretHidden?: ?boolean,
683
-
684
- /*
685
- * If `true`, contextMenuHidden is hidden. The default value is `false`.
981
+ * The value to show for the text input. `TextInput` is a controlled
982
+ * component, which means the native value will be forced to match this
983
+ * value prop if provided. For most uses, this works great, but in some
984
+ * cases this may cause flickering - one common cause is preventing edits
985
+ * by keeping value the same. In addition to simply setting the same value,
986
+ * either set `editable={false}`, or set/update `maxLength` to prevent
987
+ * unwanted edits without flicker.
686
988
  */
687
- contextMenuHidden?: ?boolean,
688
-
689
- forwardedRef?: ?ReactRefSetter<
690
- React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
691
- >,
989
+ value?: ?Stringish,
692
990
  |}>;
693
991
 
694
- type ImperativeMethods = $ReadOnly<{|
695
- clear: () => void,
696
- isFocused: () => boolean,
697
- getNativeRef: () => ?React.ElementRef<HostComponent<mixed>>,
698
- |}>;
992
+ type ViewCommands = $NonMaybeType<
993
+ | typeof AndroidTextInputCommands
994
+ | typeof RCTMultilineTextInputNativeCommands
995
+ | typeof RCTSinglelineTextInputNativeCommands,
996
+ >;
997
+
998
+ type LastNativeSelection = {|
999
+ selection: Selection,
1000
+ mostRecentEventCount: number,
1001
+ |};
699
1002
 
700
1003
  const emptyFunctionThatReturnsTrue = () => true;
701
1004
 
1005
+ /**
1006
+ * This hook handles the synchronization between the state of the text input
1007
+ * in native and in JavaScript. This is necessary due to the asynchronous nature
1008
+ * of text input events.
1009
+ */
1010
+ function useTextInputStateSynchronization_STATE({
1011
+ props,
1012
+ mostRecentEventCount,
1013
+ selection,
1014
+ inputRef,
1015
+ text,
1016
+ viewCommands,
1017
+ }: {
1018
+ props: Props,
1019
+ mostRecentEventCount: number,
1020
+ selection: ?Selection,
1021
+ inputRef: React.RefObject<null | HostInstance>,
1022
+ text: string,
1023
+ viewCommands: ViewCommands,
1024
+ }): {
1025
+ setLastNativeText: string => void,
1026
+ setLastNativeSelection: LastNativeSelection => void,
1027
+ } {
1028
+ const [lastNativeText, setLastNativeText] = useState<?Stringish>(props.value);
1029
+ const [lastNativeSelectionState, setLastNativeSelection] =
1030
+ useState<LastNativeSelection>({
1031
+ selection: {start: -1, end: -1},
1032
+ mostRecentEventCount: mostRecentEventCount,
1033
+ });
1034
+
1035
+ const lastNativeSelection = lastNativeSelectionState.selection;
1036
+
1037
+ // This is necessary in case native updates the text and JS decides
1038
+ // that the update should be ignored and we should stick with the value
1039
+ // that we have in JS.
1040
+ useLayoutEffect(() => {
1041
+ const nativeUpdate: {text?: string, selection?: Selection} = {};
1042
+
1043
+ if (lastNativeText !== props.value && typeof props.value === 'string') {
1044
+ nativeUpdate.text = props.value;
1045
+ setLastNativeText(props.value);
1046
+ }
1047
+
1048
+ if (
1049
+ selection &&
1050
+ lastNativeSelection &&
1051
+ (lastNativeSelection.start !== selection.start ||
1052
+ lastNativeSelection.end !== selection.end)
1053
+ ) {
1054
+ nativeUpdate.selection = selection;
1055
+ setLastNativeSelection({selection, mostRecentEventCount});
1056
+ }
1057
+
1058
+ if (Object.keys(nativeUpdate).length === 0) {
1059
+ return;
1060
+ }
1061
+
1062
+ if (inputRef.current != null) {
1063
+ viewCommands.setTextAndSelection(
1064
+ inputRef.current,
1065
+ mostRecentEventCount,
1066
+ text,
1067
+ selection?.start ?? -1,
1068
+ selection?.end ?? -1,
1069
+ );
1070
+ }
1071
+ }, [
1072
+ mostRecentEventCount,
1073
+ inputRef,
1074
+ props.value,
1075
+ props.defaultValue,
1076
+ lastNativeText,
1077
+ selection,
1078
+ lastNativeSelection,
1079
+ text,
1080
+ viewCommands,
1081
+ ]);
1082
+
1083
+ return {setLastNativeText, setLastNativeSelection};
1084
+ }
1085
+
1086
+ /**
1087
+ * This hook handles the synchronization between the state of the text input
1088
+ * in native and in JavaScript. This is necessary due to the asynchronous nature
1089
+ * of text input events.
1090
+ */
1091
+ function useTextInputStateSynchronization_REFS({
1092
+ props,
1093
+ mostRecentEventCount,
1094
+ selection,
1095
+ inputRef,
1096
+ text,
1097
+ viewCommands,
1098
+ }: {
1099
+ props: Props,
1100
+ mostRecentEventCount: number,
1101
+ selection: ?Selection,
1102
+ inputRef: React.RefObject<null | HostInstance>,
1103
+ text: string,
1104
+ viewCommands: ViewCommands,
1105
+ }): {
1106
+ setLastNativeText: string => void,
1107
+ setLastNativeSelection: LastNativeSelection => void,
1108
+ } {
1109
+ const lastNativeTextRef = useRef<?Stringish>(props.value);
1110
+ const lastNativeSelectionRef = useRef<LastNativeSelection>({
1111
+ selection: {start: -1, end: -1},
1112
+ mostRecentEventCount: mostRecentEventCount,
1113
+ });
1114
+
1115
+ // This is necessary in case native updates the text and JS decides
1116
+ // that the update should be ignored and we should stick with the value
1117
+ // that we have in JS.
1118
+ useLayoutEffect(() => {
1119
+ const nativeUpdate: {text?: string, selection?: Selection} = {};
1120
+
1121
+ const lastNativeSelection = lastNativeSelectionRef.current.selection;
1122
+
1123
+ if (
1124
+ lastNativeTextRef.current !== props.value &&
1125
+ typeof props.value === 'string'
1126
+ ) {
1127
+ nativeUpdate.text = props.value;
1128
+ lastNativeTextRef.current = props.value;
1129
+ }
1130
+
1131
+ if (
1132
+ selection &&
1133
+ lastNativeSelection &&
1134
+ (lastNativeSelection.start !== selection.start ||
1135
+ lastNativeSelection.end !== selection.end)
1136
+ ) {
1137
+ nativeUpdate.selection = selection;
1138
+ lastNativeSelectionRef.current = {selection, mostRecentEventCount};
1139
+ }
1140
+
1141
+ if (Object.keys(nativeUpdate).length === 0) {
1142
+ return;
1143
+ }
1144
+
1145
+ if (inputRef.current != null) {
1146
+ viewCommands.setTextAndSelection(
1147
+ inputRef.current,
1148
+ mostRecentEventCount,
1149
+ text,
1150
+ selection?.start ?? -1,
1151
+ selection?.end ?? -1,
1152
+ );
1153
+ }
1154
+ }, [
1155
+ mostRecentEventCount,
1156
+ inputRef,
1157
+ props.value,
1158
+ props.defaultValue,
1159
+ selection,
1160
+ text,
1161
+ viewCommands,
1162
+ ]);
1163
+
1164
+ return {
1165
+ setLastNativeText: lastNativeText => {
1166
+ lastNativeTextRef.current = lastNativeText;
1167
+ },
1168
+ setLastNativeSelection: lastNativeSelection => {
1169
+ lastNativeSelectionRef.current = lastNativeSelection;
1170
+ },
1171
+ };
1172
+ }
1173
+
702
1174
  /**
703
1175
  * A foundational component for inputting text into the app via a
704
1176
  * keyboard. Props provide configurability for several features, such as
@@ -753,8 +1225,8 @@ const emptyFunctionThatReturnsTrue = () => true;
753
1225
  * return (
754
1226
  * <TextInput
755
1227
  * {...this.props} // Inherit any props passed to it; e.g., multiline, numberOfLines below
756
- * editable = {true}
757
- * maxLength = {40}
1228
+ * editable={true}
1229
+ * maxLength={40}
758
1230
  * />
759
1231
  * );
760
1232
  * }
@@ -778,8 +1250,8 @@ const emptyFunctionThatReturnsTrue = () => true;
778
1250
  * borderBottomWidth: 1 }}
779
1251
  * >
780
1252
  * <UselessTextInput
781
- * multiline = {true}
782
- * numberOfLines = {4}
1253
+ * multiline={true}
1254
+ * numberOfLines={4}
783
1255
  * onChangeText={(text) => this.setState({text})}
784
1256
  * value={this.state.text}
785
1257
  * />
@@ -811,95 +1283,61 @@ const emptyFunctionThatReturnsTrue = () => true;
811
1283
  *
812
1284
  */
813
1285
  function InternalTextInput(props: Props): React.Node {
814
- const inputRef = useRef<null | React.ElementRef<HostComponent<mixed>>>(null);
815
-
816
- // Android sends a "onTextChanged" event followed by a "onSelectionChanged" event, for
817
- // the same "most recent event count".
818
- // For controlled selection, that means that immediately after text is updated,
819
- // a controlled component will pass in the *previous* selection, even if the controlled
820
- // component didn't mean to modify the selection at all.
821
- // Therefore, we ignore selections and pass them through until the selection event has
822
- // been sent.
823
- // Note that this mitigation is NOT needed for Fabric.
824
- let selection: ?Selection =
825
- props.selection == null
1286
+ const {
1287
+ 'aria-busy': ariaBusy,
1288
+ 'aria-checked': ariaChecked,
1289
+ 'aria-disabled': ariaDisabled,
1290
+ 'aria-expanded': ariaExpanded,
1291
+ 'aria-selected': ariaSelected,
1292
+ accessibilityState,
1293
+ id,
1294
+ tabIndex,
1295
+ selection: propsSelection,
1296
+ selectionColor,
1297
+ selectionHandleColor,
1298
+ cursorColor,
1299
+ ...otherProps
1300
+ } = props;
1301
+
1302
+ const inputRef = useRef<null | HostInstance>(null);
1303
+
1304
+ const selection: ?Selection =
1305
+ propsSelection == null
826
1306
  ? null
827
1307
  : {
828
- start: props.selection.start,
829
- end: props.selection.end ?? props.selection.start,
1308
+ start: propsSelection.start,
1309
+ end: propsSelection.end ?? propsSelection.start,
830
1310
  };
831
1311
 
832
- const [mostRecentEventCount, setMostRecentEventCount] = useState<number>(0);
833
-
834
- const [lastNativeText, setLastNativeText] = useState<?Stringish>(props.value);
835
- const [lastNativeSelectionState, setLastNativeSelection] = useState<{|
836
- selection: ?Selection,
837
- mostRecentEventCount: number,
838
- |}>({selection, mostRecentEventCount});
839
-
840
- const lastNativeSelection = lastNativeSelectionState.selection;
841
- const lastNativeSelectionEventCount =
842
- lastNativeSelectionState.mostRecentEventCount;
843
-
844
- if (lastNativeSelectionEventCount < mostRecentEventCount) {
845
- selection = null;
846
- }
847
-
848
1312
  const text =
849
1313
  typeof props.value === 'string'
850
1314
  ? props.value
851
1315
  : typeof props.defaultValue === 'string'
852
- ? props.defaultValue
853
- : '';
854
-
855
- // This is necessary in case native updates the text and JS decides
856
- // that the update should be ignored and we should stick with the value
857
- // that we have in JS.
858
- useEffect(() => {
859
- const nativeUpdate = {};
860
-
861
- if (lastNativeText !== props.value && typeof props.value === 'string') {
862
- nativeUpdate.text = props.value;
863
- setLastNativeText(props.value);
864
- }
865
-
866
- if (
867
- selection &&
868
- lastNativeSelection &&
869
- (lastNativeSelection.start !== selection.start ||
870
- lastNativeSelection.end !== selection.end)
871
- ) {
872
- nativeUpdate.selection = selection;
873
- setLastNativeSelection({selection, mostRecentEventCount});
874
- }
1316
+ ? props.defaultValue
1317
+ : '';
875
1318
 
876
- if (Object.keys(nativeUpdate).length === 0) {
877
- return;
878
- }
1319
+ const viewCommands =
1320
+ AndroidTextInputCommands ||
1321
+ (props.multiline === true
1322
+ ? RCTMultilineTextInputNativeCommands
1323
+ : RCTSinglelineTextInputNativeCommands);
879
1324
 
880
- if (AndroidTextInputCommands && inputRef.current != null) {
881
- AndroidTextInputCommands.setTextAndSelection(
882
- inputRef.current,
883
- mostRecentEventCount,
884
- text,
885
- selection?.start ?? -1,
886
- selection?.end ?? -1,
887
- );
888
- } else if (inputRef.current != null) {
889
- inputRef.current.setNativeProps(nativeUpdate);
890
- }
891
- }, [
892
- mostRecentEventCount,
893
- inputRef,
894
- props.value,
895
- props.defaultValue,
896
- lastNativeText,
897
- selection,
898
- lastNativeSelection,
899
- text,
900
- ]);
1325
+ const [mostRecentEventCount, setMostRecentEventCount] = useState<number>(0);
1326
+ const useTextInputStateSynchronization =
1327
+ ReactNativeFeatureFlags.useRefsForTextInputState()
1328
+ ? useTextInputStateSynchronization_REFS
1329
+ : useTextInputStateSynchronization_STATE;
1330
+ const {setLastNativeText, setLastNativeSelection} =
1331
+ useTextInputStateSynchronization({
1332
+ props,
1333
+ inputRef,
1334
+ mostRecentEventCount,
1335
+ selection,
1336
+ text,
1337
+ viewCommands,
1338
+ });
901
1339
 
902
- useEffect(() => {
1340
+ useLayoutEffect(() => {
903
1341
  const inputRefValue = inputRef.current;
904
1342
 
905
1343
  if (inputRefValue != null) {
@@ -907,98 +1345,84 @@ function InternalTextInput(props: Props): React.Node {
907
1345
 
908
1346
  return () => {
909
1347
  TextInputState.unregisterInput(inputRefValue);
1348
+
1349
+ if (TextInputState.currentlyFocusedInput() === inputRefValue) {
1350
+ nullthrows(inputRefValue).blur();
1351
+ }
910
1352
  };
911
1353
  }
912
- }, [inputRef]);
913
-
914
- useEffect(() => {
915
- // When unmounting we need to blur the input
916
- return () => {
917
- if (isFocused()) {
918
- nullthrows(inputRef.current).blur();
919
- }
920
- };
921
- }, [inputRef]);
1354
+ }, []);
922
1355
 
923
- function clear(): void {
924
- if (AndroidTextInputCommands && inputRef.current != null) {
925
- AndroidTextInputCommands.setTextAndSelection(
926
- inputRef.current,
927
- mostRecentEventCount,
928
- '',
929
- 0,
930
- 0,
931
- );
932
- } else if (inputRef.current != null) {
933
- inputRef.current.setNativeProps({text: ''});
934
- }
935
- }
936
-
937
- // TODO: Fix this returning true on null === null, when no input is focused
938
- function isFocused(): boolean {
939
- return TextInputState.currentlyFocusedInput() === inputRef.current;
940
- }
941
-
942
- function getNativeRef(): ?React.ElementRef<HostComponent<mixed>> {
943
- return inputRef.current;
944
- }
945
-
946
- const _setNativeRef = setAndForwardRef({
947
- getForwardedRef: () => props.forwardedRef,
948
- setLocalRef: ref => {
949
- inputRef.current = ref;
1356
+ const setLocalRef = useCallback(
1357
+ (instance: TextInputInstance | null) => {
1358
+ inputRef.current = instance;
950
1359
 
951
1360
  /*
952
- Hi reader from the future. I'm sorry for this.
953
-
954
- This is a hack. Ideally we would forwardRef to the underlying
955
- host component. However, since TextInput has it's own methods that can be
956
- called as well, if we used the standard forwardRef then these
957
- methods wouldn't be accessible and thus be a breaking change.
958
-
959
- We have a couple of options of how to handle this:
960
- - Return a new ref with everything we methods from both. This is problematic
961
- because we need React to also know it is a host component which requires
962
- internals of the class implementation of the ref.
963
- - Break the API and have some other way to call one set of the methods or
964
- the other. This is our long term approach as we want to eventually
965
- get the methods on host components off the ref. So instead of calling
966
- ref.measure() you might call ReactNative.measure(ref). This would hopefully
967
- let the ref for TextInput then have the methods like `.clear`. Or we do it
968
- the other way and make it TextInput.clear(textInputRef) which would be fine
969
- too. Either way though is a breaking change that is longer term.
970
- - Mutate this ref. :( Gross, but accomplishes what we need in the meantime
971
- before we can get to the long term breaking change.
972
- */
973
- if (ref) {
974
- ref.clear = clear;
975
- ref.isFocused = isFocused;
976
- ref.getNativeRef = getNativeRef;
1361
+ Hi reader from the future. I'm sorry for this.
1362
+
1363
+ This is a hack. Ideally we would forwardRef to the underlying
1364
+ host component. However, since TextInput has it's own methods that can be
1365
+ called as well, if we used the standard forwardRef then these
1366
+ methods wouldn't be accessible and thus be a breaking change.
1367
+
1368
+ We have a couple of options of how to handle this:
1369
+ - Return a new ref with everything we methods from both. This is problematic
1370
+ because we need React to also know it is a host component which requires
1371
+ internals of the class implementation of the ref.
1372
+ - Break the API and have some other way to call one set of the methods or
1373
+ the other. This is our long term approach as we want to eventually
1374
+ get the methods on host components off the ref. So instead of calling
1375
+ ref.measure() you might call ReactNative.measure(ref). This would hopefully
1376
+ let the ref for TextInput then have the methods like `.clear`. Or we do it
1377
+ the other way and make it TextInput.clear(textInputRef) which would be fine
1378
+ too. Either way though is a breaking change that is longer term.
1379
+ - Mutate this ref. :( Gross, but accomplishes what we need in the meantime
1380
+ before we can get to the long term breaking change.
1381
+ */
1382
+ if (instance != null) {
1383
+ // $FlowFixMe[incompatible-use] - See the explanation above.
1384
+ Object.assign(instance, {
1385
+ clear(): void {
1386
+ if (inputRef.current != null) {
1387
+ viewCommands.setTextAndSelection(
1388
+ inputRef.current,
1389
+ mostRecentEventCount,
1390
+ '',
1391
+ 0,
1392
+ 0,
1393
+ );
1394
+ }
1395
+ },
1396
+ // TODO: Fix this returning true on null === null, when no input is focused
1397
+ isFocused(): boolean {
1398
+ return TextInputState.currentlyFocusedInput() === inputRef.current;
1399
+ },
1400
+ getNativeRef(): ?HostInstance {
1401
+ return inputRef.current;
1402
+ },
1403
+ setSelection(start: number, end: number): void {
1404
+ if (inputRef.current != null) {
1405
+ viewCommands.setTextAndSelection(
1406
+ inputRef.current,
1407
+ mostRecentEventCount,
1408
+ null,
1409
+ start,
1410
+ end,
1411
+ );
1412
+ }
1413
+ },
1414
+ });
977
1415
  }
978
1416
  },
979
- });
1417
+ [mostRecentEventCount, viewCommands],
1418
+ );
980
1419
 
981
- const _onPress = (event: PressEvent) => {
982
- if (props.editable || props.editable === undefined) {
983
- nullthrows(inputRef.current).focus();
984
- }
985
- };
1420
+ const ref = useMergeRefs<TextInputInstance>(setLocalRef, props.forwardedRef);
986
1421
 
987
1422
  const _onChange = (event: ChangeEvent) => {
988
- if (AndroidTextInputCommands && inputRef.current != null) {
989
- // Do nothing
990
- } else if (inputRef.current != null) {
991
- // Make sure to fire the mostRecentEventCount first so it is already set on
992
- // native when the text value is set.
993
- // This is now only relevant on iOS until we migrate to ViewCommands everywhere
994
- inputRef.current.setNativeProps({
995
- mostRecentEventCount: event.nativeEvent.eventCount,
996
- });
997
- }
998
-
999
- const text = event.nativeEvent.text;
1423
+ const currentText = event.nativeEvent.text;
1000
1424
  props.onChange && props.onChange(event);
1001
- props.onChangeText && props.onChangeText(text);
1425
+ props.onChangeText && props.onChangeText(currentText);
1002
1426
 
1003
1427
  if (inputRef.current == null) {
1004
1428
  // calling `props.onChange` or `props.onChangeText`
@@ -1006,7 +1430,7 @@ function InternalTextInput(props: Props): React.Node {
1006
1430
  return;
1007
1431
  }
1008
1432
 
1009
- setLastNativeText(text);
1433
+ setLastNativeText(currentText);
1010
1434
  // This must happen last, after we call setLastNativeText.
1011
1435
  // Different ordering can cause bugs when editing AndroidTextInputs
1012
1436
  // with multiple Fragments.
@@ -1048,31 +1472,151 @@ function InternalTextInput(props: Props): React.Node {
1048
1472
  };
1049
1473
 
1050
1474
  let textInput = null;
1051
- let additionalTouchableProps: {|
1052
- rejectResponderTermination?: $PropertyType<
1053
- Props,
1054
- 'rejectResponderTermination',
1055
- >,
1056
- // This is a hack to let Flow know we want an exact object
1057
- |} = {...null};
1058
1475
 
1059
- if (Platform.OS === 'ios') {
1060
- const RCTTextInputView = props.multiline
1061
- ? RCTMultilineTextInputView
1062
- : RCTSinglelineTextInputView;
1476
+ const multiline = props.multiline ?? false;
1477
+
1478
+ let submitBehavior: SubmitBehavior;
1479
+ if (props.submitBehavior != null) {
1480
+ // `submitBehavior` is set explicitly
1481
+ if (!multiline && props.submitBehavior === 'newline') {
1482
+ // For single line text inputs, `'newline'` is not a valid option
1483
+ submitBehavior = 'blurAndSubmit';
1484
+ } else {
1485
+ submitBehavior = props.submitBehavior;
1486
+ }
1487
+ } else if (multiline) {
1488
+ if (props.blurOnSubmit === true) {
1489
+ submitBehavior = 'blurAndSubmit';
1490
+ } else {
1491
+ submitBehavior = 'newline';
1492
+ }
1493
+ } else {
1494
+ // Single line
1495
+ if (props.blurOnSubmit !== false) {
1496
+ submitBehavior = 'blurAndSubmit';
1497
+ } else {
1498
+ submitBehavior = 'submit';
1499
+ }
1500
+ }
1501
+
1502
+ const accessible = props.accessible !== false;
1503
+ const focusable = props.focusable !== false;
1504
+
1505
+ const {
1506
+ editable,
1507
+ hitSlop,
1508
+ onPress,
1509
+ onPressIn,
1510
+ onPressOut,
1511
+ rejectResponderTermination,
1512
+ } = props;
1513
+
1514
+ const config = React.useMemo(
1515
+ () => ({
1516
+ hitSlop,
1517
+ onPress: (event: PressEvent) => {
1518
+ onPress?.(event);
1519
+ if (editable !== false) {
1520
+ if (inputRef.current != null) {
1521
+ inputRef.current.focus();
1522
+ }
1523
+ }
1524
+ },
1525
+ onPressIn: onPressIn,
1526
+ onPressOut: onPressOut,
1527
+ cancelable: Platform.OS === 'ios' ? !rejectResponderTermination : null,
1528
+ }),
1529
+ [
1530
+ editable,
1531
+ hitSlop,
1532
+ onPress,
1533
+ onPressIn,
1534
+ onPressOut,
1535
+ rejectResponderTermination,
1536
+ ],
1537
+ );
1538
+
1539
+ // Hide caret during test runs due to a flashing caret
1540
+ // makes screenshot tests flakey
1541
+ let caretHidden = props.caretHidden;
1542
+ if (Platform.isTesting) {
1543
+ caretHidden = true;
1544
+ }
1545
+
1546
+ // TextInput handles onBlur and onFocus events
1547
+ // so omitting onBlur and onFocus pressability handlers here.
1548
+ const {onBlur, onFocus, ...eventHandlers} = usePressability(config);
1549
+
1550
+ let _accessibilityState;
1551
+ if (
1552
+ accessibilityState != null ||
1553
+ ariaBusy != null ||
1554
+ ariaChecked != null ||
1555
+ ariaDisabled != null ||
1556
+ ariaExpanded != null ||
1557
+ ariaSelected != null
1558
+ ) {
1559
+ _accessibilityState = {
1560
+ busy: ariaBusy ?? accessibilityState?.busy,
1561
+ checked: ariaChecked ?? accessibilityState?.checked,
1562
+ disabled: ariaDisabled ?? accessibilityState?.disabled,
1563
+ expanded: ariaExpanded ?? accessibilityState?.expanded,
1564
+ selected: ariaSelected ?? accessibilityState?.selected,
1565
+ };
1566
+ }
1567
+
1568
+ // Keep the original (potentially nested) style when possible, as React can diff these more efficiently
1569
+ let _style = props.style;
1570
+ const flattenedStyle = flattenStyle<TextStyleProp>(props.style);
1571
+ if (flattenedStyle != null) {
1572
+ let overrides: ?{...TextStyleInternal} = null;
1573
+ if (typeof flattenedStyle?.fontWeight === 'number') {
1574
+ overrides = overrides || ({}: {...TextStyleInternal});
1575
+ overrides.fontWeight =
1576
+ // $FlowFixMe[incompatible-cast]
1577
+ (flattenedStyle.fontWeight.toString(): TextStyleInternal['fontWeight']);
1578
+ }
1063
1579
 
1064
- const style = props.multiline
1065
- ? [styles.multilineInput, props.style]
1066
- : props.style;
1580
+ if (flattenedStyle.verticalAlign != null) {
1581
+ overrides = overrides || ({}: {...TextStyleInternal});
1582
+ overrides.textAlignVertical =
1583
+ verticalAlignToTextAlignVerticalMap[flattenedStyle.verticalAlign];
1584
+ overrides.verticalAlign = undefined;
1585
+ }
1586
+
1587
+ if (overrides != null) {
1588
+ // $FlowFixMe[incompatible-type]
1589
+ _style = [_style, overrides];
1590
+ }
1591
+ }
1067
1592
 
1068
- additionalTouchableProps.rejectResponderTermination =
1069
- props.rejectResponderTermination;
1593
+ if (Platform.OS === 'ios') {
1594
+ const RCTTextInputView =
1595
+ props.multiline === true
1596
+ ? RCTMultilineTextInputView
1597
+ : RCTSinglelineTextInputView;
1598
+
1599
+ const useMultilineDefaultStyle =
1600
+ props.multiline === true &&
1601
+ (flattenedStyle == null ||
1602
+ (flattenedStyle.padding == null &&
1603
+ flattenedStyle.paddingVertical == null &&
1604
+ flattenedStyle.paddingTop == null));
1070
1605
 
1071
1606
  textInput = (
1072
1607
  <RCTTextInputView
1073
- ref={_setNativeRef}
1074
- {...props}
1608
+ // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
1609
+ ref={ref}
1610
+ {...otherProps}
1611
+ {...eventHandlers}
1612
+ accessibilityState={_accessibilityState}
1613
+ accessible={accessible}
1614
+ submitBehavior={submitBehavior}
1615
+ caretHidden={caretHidden}
1075
1616
  dataDetectorTypes={props.dataDetectorTypes}
1617
+ focusable={tabIndex !== undefined ? !tabIndex : focusable}
1618
+ mostRecentEventCount={mostRecentEventCount}
1619
+ nativeID={id ?? props.nativeID}
1076
1620
  onBlur={_onBlur}
1077
1621
  onChange={_onChange}
1078
1622
  onContentSizeChange={props.onContentSizeChange}
@@ -1081,90 +1625,247 @@ function InternalTextInput(props: Props): React.Node {
1081
1625
  onSelectionChange={_onSelectionChange}
1082
1626
  onSelectionChangeShouldSetResponder={emptyFunctionThatReturnsTrue}
1083
1627
  selection={selection}
1084
- style={style}
1628
+ selectionColor={selectionColor}
1629
+ style={StyleSheet.compose(
1630
+ useMultilineDefaultStyle ? styles.multilineDefault : null,
1631
+ _style,
1632
+ )}
1085
1633
  text={text}
1086
1634
  />
1087
1635
  );
1088
1636
  } else if (Platform.OS === 'android') {
1089
- const style = [props.style];
1090
1637
  const autoCapitalize = props.autoCapitalize || 'sentences';
1638
+ const _accessibilityLabelledBy =
1639
+ props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy;
1640
+ const placeholder = props.placeholder ?? '';
1091
1641
  let children = props.children;
1092
- let childCount = 0;
1093
- React.Children.forEach(children, () => ++childCount);
1642
+ const childCount = React.Children.count(children);
1094
1643
  invariant(
1095
- !(props.value && childCount),
1644
+ !(props.value != null && childCount),
1096
1645
  'Cannot specify both value and children.',
1097
1646
  );
1098
1647
  if (childCount > 1) {
1099
1648
  children = <Text>{children}</Text>;
1100
1649
  }
1101
-
1650
+ // For consistency with iOS set cursor/selectionHandle color as selectionColor
1651
+ const colorProps = {
1652
+ selectionColor,
1653
+ selectionHandleColor:
1654
+ selectionHandleColor === undefined
1655
+ ? selectionColor
1656
+ : selectionHandleColor,
1657
+ cursorColor: cursorColor === undefined ? selectionColor : cursorColor,
1658
+ };
1102
1659
  textInput = (
1103
- /* $FlowFixMe the types for AndroidTextInput don't match up exactly with
1104
- the props for TextInput. This will need to get fixed */
1660
+ /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match up
1661
+ * exactly with the props for TextInput. This will need to get fixed */
1662
+ /* $FlowFixMe[incompatible-type] the types for AndroidTextInput don't
1663
+ * match up exactly with the props for TextInput. This will need to get
1664
+ * fixed */
1665
+ /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput don't
1666
+ * match up exactly with the props for TextInput. This will need to get
1667
+ * fixed */
1105
1668
  <AndroidTextInput
1106
- ref={_setNativeRef}
1107
- {...props}
1669
+ // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
1670
+ ref={ref}
1671
+ {...otherProps}
1672
+ {...colorProps}
1673
+ {...eventHandlers}
1674
+ accessibilityState={_accessibilityState}
1675
+ accessibilityLabelledBy={_accessibilityLabelledBy}
1676
+ accessible={accessible}
1108
1677
  autoCapitalize={autoCapitalize}
1678
+ submitBehavior={submitBehavior}
1679
+ caretHidden={caretHidden}
1109
1680
  children={children}
1110
1681
  disableFullscreenUI={props.disableFullscreenUI}
1682
+ focusable={tabIndex !== undefined ? !tabIndex : focusable}
1111
1683
  mostRecentEventCount={mostRecentEventCount}
1684
+ nativeID={id ?? props.nativeID}
1685
+ numberOfLines={props.rows ?? props.numberOfLines}
1112
1686
  onBlur={_onBlur}
1113
1687
  onChange={_onChange}
1114
1688
  onFocus={_onFocus}
1115
- /* $FlowFixMe the types for AndroidTextInput don't match up exactly
1116
- * with the props for TextInput. This will need to get fixed */
1689
+ /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match
1690
+ * up exactly with the props for TextInput. This will need to get fixed
1691
+ */
1692
+ /* $FlowFixMe[incompatible-type-arg] the types for AndroidTextInput
1693
+ * don't match up exactly with the props for TextInput. This will need
1694
+ * to get fixed */
1117
1695
  onScroll={_onScroll}
1118
1696
  onSelectionChange={_onSelectionChange}
1119
- selection={selection}
1120
- style={style}
1697
+ placeholder={placeholder}
1698
+ style={_style}
1121
1699
  text={text}
1122
1700
  textBreakStrategy={props.textBreakStrategy}
1123
1701
  />
1124
1702
  );
1125
1703
  }
1126
1704
  return (
1127
- <TextAncestor.Provider value={true}>
1128
- <TouchableWithoutFeedback
1129
- onLayout={props.onLayout}
1130
- onPress={_onPress}
1131
- accessible={props.accessible}
1132
- accessibilityLabel={props.accessibilityLabel}
1133
- accessibilityRole={props.accessibilityRole}
1134
- accessibilityState={props.accessibilityState}
1135
- nativeID={props.nativeID}
1136
- testID={props.testID}
1137
- {...additionalTouchableProps}>
1138
- {textInput}
1139
- </TouchableWithoutFeedback>
1140
- </TextAncestor.Provider>
1705
+ <TextAncestor.Provider value={true}>{textInput}</TextAncestor.Provider>
1141
1706
  );
1142
1707
  }
1143
1708
 
1144
- const ExportedForwardRef: React.AbstractComponent<
1145
- React.ElementConfig<typeof InternalTextInput>,
1146
- React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
1147
- > = React.forwardRef(function TextInput(
1148
- props,
1149
- forwardedRef: ReactRefSetter<
1150
- React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
1151
- >,
1152
- ) {
1153
- return <InternalTextInput {...props} forwardedRef={forwardedRef} />;
1154
- });
1709
+ const enterKeyHintToReturnTypeMap = {
1710
+ enter: 'default',
1711
+ done: 'done',
1712
+ go: 'go',
1713
+ next: 'next',
1714
+ previous: 'previous',
1715
+ search: 'search',
1716
+ send: 'send',
1717
+ };
1718
+
1719
+ const inputModeToKeyboardTypeMap = {
1720
+ none: 'default',
1721
+ text: 'default',
1722
+ decimal: 'decimal-pad',
1723
+ numeric: 'number-pad',
1724
+ tel: 'phone-pad',
1725
+ search: Platform.OS === 'ios' ? 'web-search' : 'default',
1726
+ email: 'email-address',
1727
+ url: 'url',
1728
+ };
1155
1729
 
1156
- // $FlowFixMe
1157
- ExportedForwardRef.defaultProps = {
1158
- allowFontScaling: true,
1159
- rejectResponderTermination: true,
1160
- underlineColorAndroid: 'transparent',
1730
+ // Map HTML autocomplete values to Android autoComplete values
1731
+ const autoCompleteWebToAutoCompleteAndroidMap = {
1732
+ 'address-line1': 'postal-address-region',
1733
+ 'address-line2': 'postal-address-locality',
1734
+ bday: 'birthdate-full',
1735
+ 'bday-day': 'birthdate-day',
1736
+ 'bday-month': 'birthdate-month',
1737
+ 'bday-year': 'birthdate-year',
1738
+ 'cc-csc': 'cc-csc',
1739
+ 'cc-exp': 'cc-exp',
1740
+ 'cc-exp-month': 'cc-exp-month',
1741
+ 'cc-exp-year': 'cc-exp-year',
1742
+ 'cc-number': 'cc-number',
1743
+ country: 'postal-address-country',
1744
+ 'current-password': 'password',
1745
+ email: 'email',
1746
+ 'honorific-prefix': 'name-prefix',
1747
+ 'honorific-suffix': 'name-suffix',
1748
+ name: 'name',
1749
+ 'additional-name': 'name-middle',
1750
+ 'family-name': 'name-family',
1751
+ 'given-name': 'name-given',
1752
+ 'new-password': 'password-new',
1753
+ off: 'off',
1754
+ 'one-time-code': 'sms-otp',
1755
+ 'postal-code': 'postal-code',
1756
+ sex: 'gender',
1757
+ 'street-address': 'street-address',
1758
+ tel: 'tel',
1759
+ 'tel-country-code': 'tel-country-code',
1760
+ 'tel-national': 'tel-national',
1761
+ username: 'username',
1161
1762
  };
1162
1763
 
1163
- // TODO: Deprecate this
1164
- // $FlowFixMe
1165
- ExportedForwardRef.propTypes = DeprecatedTextInputPropTypes;
1764
+ // Map HTML autocomplete values to iOS textContentType values
1765
+ const autoCompleteWebToTextContentTypeMap = {
1766
+ 'address-line1': 'streetAddressLine1',
1767
+ 'address-line2': 'streetAddressLine2',
1768
+ bday: 'birthdate',
1769
+ 'bday-day': 'birthdateDay',
1770
+ 'bday-month': 'birthdateMonth',
1771
+ 'bday-year': 'birthdateYear',
1772
+ 'cc-csc': 'creditCardSecurityCode',
1773
+ 'cc-exp-month': 'creditCardExpirationMonth',
1774
+ 'cc-exp-year': 'creditCardExpirationYear',
1775
+ 'cc-exp': 'creditCardExpiration',
1776
+ 'cc-given-name': 'creditCardGivenName',
1777
+ 'cc-additional-name': 'creditCardMiddleName',
1778
+ 'cc-family-name': 'creditCardFamilyName',
1779
+ 'cc-name': 'creditCardName',
1780
+ 'cc-number': 'creditCardNumber',
1781
+ 'cc-type': 'creditCardType',
1782
+ 'current-password': 'password',
1783
+ country: 'countryName',
1784
+ email: 'emailAddress',
1785
+ name: 'name',
1786
+ 'additional-name': 'middleName',
1787
+ 'family-name': 'familyName',
1788
+ 'given-name': 'givenName',
1789
+ nickname: 'nickname',
1790
+ 'honorific-prefix': 'namePrefix',
1791
+ 'honorific-suffix': 'nameSuffix',
1792
+ 'new-password': 'newPassword',
1793
+ off: 'none',
1794
+ 'one-time-code': 'oneTimeCode',
1795
+ organization: 'organizationName',
1796
+ 'organization-title': 'jobTitle',
1797
+ 'postal-code': 'postalCode',
1798
+ 'street-address': 'fullStreetAddress',
1799
+ tel: 'telephoneNumber',
1800
+ url: 'URL',
1801
+ username: 'username',
1802
+ };
1166
1803
 
1167
- // $FlowFixMe
1804
+ const ExportedForwardRef: component(
1805
+ ref: React.RefSetter<TextInputInstance>,
1806
+ ...props: React.ElementConfig<typeof InternalTextInput>
1807
+ // $FlowFixMe[incompatible-call]
1808
+ ) = React.forwardRef(function TextInput(
1809
+ {
1810
+ allowFontScaling = true,
1811
+ rejectResponderTermination = true,
1812
+ underlineColorAndroid = 'transparent',
1813
+ autoComplete,
1814
+ textContentType,
1815
+ readOnly,
1816
+ editable,
1817
+ enterKeyHint,
1818
+ returnKeyType,
1819
+ inputMode,
1820
+ showSoftInputOnFocus,
1821
+ keyboardType,
1822
+ ...restProps
1823
+ },
1824
+ forwardedRef: ReactRefSetter<TextInputInstance>,
1825
+ ) {
1826
+ return (
1827
+ <InternalTextInput
1828
+ allowFontScaling={allowFontScaling}
1829
+ rejectResponderTermination={rejectResponderTermination}
1830
+ underlineColorAndroid={underlineColorAndroid}
1831
+ editable={readOnly !== undefined ? !readOnly : editable}
1832
+ returnKeyType={
1833
+ enterKeyHint ? enterKeyHintToReturnTypeMap[enterKeyHint] : returnKeyType
1834
+ }
1835
+ keyboardType={
1836
+ inputMode ? inputModeToKeyboardTypeMap[inputMode] : keyboardType
1837
+ }
1838
+ showSoftInputOnFocus={
1839
+ inputMode == null ? showSoftInputOnFocus : inputMode !== 'none'
1840
+ }
1841
+ autoComplete={
1842
+ Platform.OS === 'android'
1843
+ ? // $FlowFixMe[invalid-computed-prop]
1844
+ // $FlowFixMe[prop-missing]
1845
+ autoCompleteWebToAutoCompleteAndroidMap[autoComplete] ??
1846
+ autoComplete
1847
+ : undefined
1848
+ }
1849
+ textContentType={
1850
+ textContentType != null
1851
+ ? textContentType
1852
+ : Platform.OS === 'ios' &&
1853
+ autoComplete &&
1854
+ autoComplete in autoCompleteWebToTextContentTypeMap
1855
+ ? // $FlowFixMe[invalid-computed-prop]
1856
+ // $FlowFixMe[prop-missing]
1857
+ autoCompleteWebToTextContentTypeMap[autoComplete]
1858
+ : textContentType
1859
+ }
1860
+ {...restProps}
1861
+ forwardedRef={forwardedRef}
1862
+ />
1863
+ );
1864
+ });
1865
+
1866
+ ExportedForwardRef.displayName = 'TextInput';
1867
+
1868
+ // $FlowFixMe[prop-missing]
1168
1869
  ExportedForwardRef.State = {
1169
1870
  currentlyFocusedInput: TextInputState.currentlyFocusedInput,
1170
1871
 
@@ -1173,18 +1874,17 @@ ExportedForwardRef.State = {
1173
1874
  blurTextInput: TextInputState.blurTextInput,
1174
1875
  };
1175
1876
 
1176
- type TextInputComponentStatics = $ReadOnly<{|
1877
+ export type TextInputComponentStatics = $ReadOnly<{|
1177
1878
  State: $ReadOnly<{|
1178
1879
  currentlyFocusedInput: typeof TextInputState.currentlyFocusedInput,
1179
1880
  currentlyFocusedField: typeof TextInputState.currentlyFocusedField,
1180
1881
  focusTextInput: typeof TextInputState.focusTextInput,
1181
1882
  blurTextInput: typeof TextInputState.blurTextInput,
1182
1883
  |}>,
1183
- propTypes: typeof DeprecatedTextInputPropTypes,
1184
1884
  |}>;
1185
1885
 
1186
1886
  const styles = StyleSheet.create({
1187
- multilineInput: {
1887
+ multilineDefault: {
1188
1888
  // This default top inset makes RCTMultilineTextInputView seem as close as possible
1189
1889
  // to single-line RCTSinglelineTextInputView defaults, using the system defaults
1190
1890
  // of font size 17 and a height of 31 points.
@@ -1192,11 +1892,12 @@ const styles = StyleSheet.create({
1192
1892
  },
1193
1893
  });
1194
1894
 
1195
- module.exports = ((ExportedForwardRef: any): React.AbstractComponent<
1196
- React.ElementConfig<typeof InternalTextInput>,
1197
- $ReadOnly<{|
1198
- ...React.ElementRef<HostComponent<mixed>>,
1199
- ...ImperativeMethods,
1200
- |}>,
1201
- > &
1202
- TextInputComponentStatics);
1895
+ const verticalAlignToTextAlignVerticalMap = {
1896
+ auto: 'auto',
1897
+ top: 'top',
1898
+ bottom: 'bottom',
1899
+ middle: 'center',
1900
+ };
1901
+
1902
+ // $FlowFixMe[unclear-type] Unclear type. Using `any` type is not safe.
1903
+ module.exports = ((ExportedForwardRef: any): TextInputType);