@office-iss/react-native-win32 0.0.0-canary.29 → 0.0.0-canary.290

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