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

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