@office-iss/react-native-win32 0.73.1 → 0.74.0-preview.1

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 (478) hide show
  1. package/.eslintignore +1 -1
  2. package/.flowconfig +11 -3
  3. package/CHANGELOG.json +422 -44
  4. package/CHANGELOG.md +162 -26
  5. package/IntegrationTests/AccessibilityManagerTest.js +2 -2
  6. package/IntegrationTests/AppEventsTest.js +2 -2
  7. package/IntegrationTests/LayoutEventsTest.js +8 -10
  8. package/IntegrationTests/LoggingTestModule.js +1 -2
  9. package/IntegrationTests/websocket_integration_test_server.js +1 -1
  10. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +6 -0
  11. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +6 -0
  12. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +4 -45
  13. package/Libraries/Alert/NativeAlertManager.js +4 -26
  14. package/Libraries/Animated/Animated.js +2 -2
  15. package/Libraries/Animated/AnimatedPlatformConfig.js +1 -1
  16. package/Libraries/Animated/NativeAnimatedHelper.js +14 -11
  17. package/Libraries/Animated/NativeAnimatedHelper.win32.js +14 -11
  18. package/Libraries/Animated/NativeAnimatedModule.js +4 -68
  19. package/Libraries/Animated/NativeAnimatedTurboModule.js +4 -69
  20. package/Libraries/Animated/animations/Animation.js +6 -22
  21. package/Libraries/Animated/components/AnimatedFlatList.js +1 -16
  22. package/Libraries/Animated/components/AnimatedScrollView.js +36 -31
  23. package/Libraries/Animated/components/AnimatedSectionList.js +1 -20
  24. package/Libraries/Animated/createAnimatedComponent.js +45 -40
  25. package/Libraries/Animated/nodes/AnimatedStyle.js +1 -1
  26. package/Libraries/Animated/shouldUseTurboAnimatedModule.js +1 -1
  27. package/Libraries/Animated/useAnimatedProps.js +21 -1
  28. package/Libraries/AppState/NativeAppState.js +4 -24
  29. package/Libraries/BatchedBridge/NativeModules.js +1 -1
  30. package/Libraries/Blob/Blob.js +1 -4
  31. package/Libraries/Blob/BlobManager.js +6 -8
  32. package/Libraries/Blob/File.js +1 -1
  33. package/Libraries/Blob/NativeBlobModule.js +4 -50
  34. package/Libraries/Blob/NativeFileReaderModule.js +4 -13
  35. package/Libraries/BugReporting/NativeBugReporting.js +4 -12
  36. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +5 -1
  37. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +48 -7
  38. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +3 -23
  39. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js +11 -0
  40. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -57
  41. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.android.js +3 -2
  42. package/Libraries/Components/AccessibilityInfo/legacySendAccessibilityEvent.win32.js +3 -2
  43. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +9 -40
  44. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +3 -43
  45. package/Libraries/Components/Button/ButtonWin32.Props.d.ts +36 -36
  46. package/Libraries/Components/Button/ButtonWin32.Props.js +2 -2
  47. package/Libraries/Components/Button/ButtonWin32.Props.js.map +1 -1
  48. package/Libraries/Components/Button/ButtonWin32.d.ts +19 -19
  49. package/Libraries/Components/Button/ButtonWin32.js +82 -82
  50. package/Libraries/Components/Button/ButtonWin32.js.map +1 -1
  51. package/Libraries/Components/Button.js +103 -107
  52. package/Libraries/Components/Button.win32.js +297 -301
  53. package/Libraries/Components/Clipboard/NativeClipboard.js +3 -11
  54. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +3 -114
  55. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +1 -5
  56. package/Libraries/Components/EnterString.win32.d.ts +12 -12
  57. package/Libraries/Components/EnterString.win32.js +81 -81
  58. package/Libraries/Components/EnterString.win32.js.map +1 -1
  59. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +3 -10
  60. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.android.js +69 -0
  61. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.d.ts +24 -0
  62. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroid.js +33 -0
  63. package/Libraries/Components/PopupMenuAndroid/PopupMenuAndroidNativeComponent.js +13 -0
  64. package/Libraries/Components/Pressable/Pressable.js +1 -1
  65. package/Libraries/Components/Pressable/Pressable.win32.js +1 -1
  66. package/Libraries/Components/Pressable/useAndroidRippleForView.js +5 -4
  67. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +4 -24
  68. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +3 -64
  69. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +3 -61
  70. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -1
  71. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +3 -15
  72. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +3 -16
  73. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +1 -1
  74. package/Libraries/Components/ScrollView/ScrollView.d.ts +5 -6
  75. package/Libraries/Components/ScrollView/ScrollView.js +12 -38
  76. package/Libraries/Components/ScrollView/ScrollView.win32.js +12 -38
  77. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +1 -2
  78. package/Libraries/Components/Sound/NativeSoundManager.js +3 -12
  79. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +3 -58
  80. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +3 -79
  81. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +4 -53
  82. package/Libraries/Components/Switch/Switch.js +0 -2
  83. package/Libraries/Components/Switch/SwitchNativeComponent.js +4 -52
  84. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +8 -0
  85. package/Libraries/Components/TextInput/InputAccessoryView.js +18 -20
  86. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +4 -17
  87. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -6
  88. package/Libraries/Components/TextInput/Tests/TextInputTest.d.ts +8 -8
  89. package/Libraries/Components/TextInput/Tests/TextInputTest.js +127 -127
  90. package/Libraries/Components/TextInput/Tests/TextInputTest.js.map +1 -1
  91. package/Libraries/Components/TextInput/TextInput.d.ts +16 -0
  92. package/Libraries/Components/TextInput/TextInput.flow.js +16 -0
  93. package/Libraries/Components/TextInput/TextInput.js +65 -32
  94. package/Libraries/Components/TextInput/TextInput.win32.js +70 -37
  95. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +3 -28
  96. package/Libraries/Components/Touchable/PooledClass.js +1 -1
  97. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.d.ts +8 -8
  98. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js +343 -344
  99. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  100. package/Libraries/Components/Touchable/Touchable.js +2 -3
  101. package/Libraries/Components/Touchable/Touchable.win32.js +2 -3
  102. package/Libraries/Components/Touchable/TouchableHighlight.js +4 -4
  103. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -1
  104. package/Libraries/Components/Touchable/TouchableOpacity.js +5 -2
  105. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +37 -37
  106. package/Libraries/Components/Touchable/TouchableWin32.Props.js +2 -2
  107. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  108. package/Libraries/Components/Touchable/TouchableWin32.Types.d.ts +114 -114
  109. package/Libraries/Components/Touchable/TouchableWin32.Types.js +2 -2
  110. package/Libraries/Components/Touchable/TouchableWin32.Types.js.map +1 -1
  111. package/Libraries/Components/Touchable/TouchableWin32.d.ts +91 -91
  112. package/Libraries/Components/Touchable/TouchableWin32.js +506 -506
  113. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  114. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +3 -16
  115. package/Libraries/Components/View/ReactNativeStyleAttributes.js +1 -1
  116. package/Libraries/Components/View/View.js +0 -11
  117. package/Libraries/Components/View/View.win32.js +18 -17
  118. package/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  119. package/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  120. package/Libraries/Components/View/ViewPropTypes.js +36 -36
  121. package/Libraries/Components/View/ViewPropTypes.win32.js +36 -36
  122. package/Libraries/Core/InitializeCore.js +1 -1
  123. package/Libraries/Core/NativeExceptionsManager.js +3 -93
  124. package/Libraries/Core/ReactNativeVersion.js +12 -6
  125. package/Libraries/Core/ReactNativeVersionCheck.js +6 -6
  126. package/Libraries/Core/ReactNativeVersionCheck.win32.js +6 -6
  127. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +3 -18
  128. package/Libraries/Core/Timers/NativeTiming.js +3 -16
  129. package/Libraries/Core/registerCallableModule.js +42 -0
  130. package/Libraries/Core/setUpPerformance.js +2 -2
  131. package/Libraries/Core/setUpPerformanceObserver.js +3 -1
  132. package/Libraries/Debugging/DebuggingOverlay.js +111 -0
  133. package/Libraries/Debugging/DebuggingOverlayNativeComponent.js +13 -0
  134. package/Libraries/Debugging/DebuggingOverlayRegistry.js +513 -0
  135. package/Libraries/Debugging/useSubscribeToDebuggingOverlayRegistry.js +32 -0
  136. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +3 -14
  137. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +3 -9
  138. package/Libraries/Image/AssetSourceResolver.js +5 -5
  139. package/Libraries/Image/AssetUtils.js +4 -5
  140. package/Libraries/Image/Image.android.js +146 -174
  141. package/Libraries/Image/Image.d.ts +1 -1
  142. package/Libraries/Image/Image.ios.js +53 -79
  143. package/Libraries/Image/Image.win32.js +52 -74
  144. package/Libraries/Image/ImageBackground.js +2 -2
  145. package/Libraries/Image/ImageInjection.js +76 -18
  146. package/Libraries/Image/ImageTypes.d.ts +25 -25
  147. package/Libraries/Image/ImageTypes.flow.js +71 -0
  148. package/Libraries/Image/ImageTypes.js +7 -7
  149. package/Libraries/Image/ImageTypes.js.map +1 -1
  150. package/Libraries/Image/ImageUtils.js +1 -1
  151. package/Libraries/Image/ImageViewNativeComponent.js +18 -0
  152. package/Libraries/Image/NativeImageEditor.js +3 -42
  153. package/Libraries/Image/NativeImageLoaderAndroid.js +4 -28
  154. package/Libraries/Image/NativeImageLoaderIOS.js +4 -28
  155. package/Libraries/Image/NativeImageLoaderWin32.js +4 -36
  156. package/Libraries/Image/NativeImageStoreAndroid.js +3 -16
  157. package/Libraries/Image/NativeImageStoreIOS.js +3 -23
  158. package/Libraries/Image/Tests/ImageWin32Test.d.ts +8 -8
  159. package/Libraries/Image/Tests/ImageWin32Test.js +21 -21
  160. package/Libraries/Image/Tests/ImageWin32Test.js.map +1 -1
  161. package/Libraries/Image/resolveAssetSource.js +59 -26
  162. package/Libraries/Inspector/ElementProperties.js +26 -52
  163. package/Libraries/Inspector/Inspector.js +122 -186
  164. package/Libraries/Inspector/Inspector.win32.js +118 -185
  165. package/Libraries/Inspector/InspectorOverlay.js +21 -33
  166. package/Libraries/Inspector/InspectorOverlay.win32.js +22 -33
  167. package/Libraries/Inspector/InspectorPanel.js +3 -17
  168. package/Libraries/Inspector/ReactDevToolsOverlay.js +171 -0
  169. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +20 -8
  170. package/Libraries/Interaction/FrameRateLogger.js +8 -18
  171. package/Libraries/Interaction/NativeFrameRateLogger.js +4 -16
  172. package/Libraries/IntersectionObserver/IntersectionObserver.js +1 -1
  173. package/Libraries/IntersectionObserver/IntersectionObserverEntry.js +20 -19
  174. package/Libraries/IntersectionObserver/IntersectionObserverManager.js +84 -6
  175. package/Libraries/IntersectionObserver/NativeIntersectionObserver.js +3 -31
  176. package/Libraries/IntersectionObserver/__mocks__/NativeIntersectionObserver.js +12 -2
  177. package/Libraries/LayoutAnimation/LayoutAnimation.js +1 -2
  178. package/Libraries/Linking/NativeIntentAndroid.js +3 -20
  179. package/Libraries/Linking/NativeLinkingManager.js +3 -17
  180. package/Libraries/Lists/FillRateHelper.js +1 -1
  181. package/Libraries/Lists/FlatList.d.ts +2 -2
  182. package/Libraries/Lists/FlatList.js +6 -1
  183. package/Libraries/Lists/SectionList.d.ts +6 -1
  184. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  185. package/Libraries/Lists/VirtualizeUtils.js +1 -1
  186. package/Libraries/Lists/VirtualizedList.js +1 -1
  187. package/Libraries/Lists/VirtualizedListContext.js +1 -1
  188. package/Libraries/Lists/VirtualizedSectionList.js +1 -1
  189. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  190. package/Libraries/Modal/Modal.js +43 -11
  191. package/Libraries/Modal/NativeModalManager.js +3 -11
  192. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -129
  193. package/Libraries/MutationObserver/MutationObserver.js +1 -1
  194. package/Libraries/MutationObserver/MutationObserverManager.js +2 -2
  195. package/Libraries/MutationObserver/MutationRecord.js +12 -10
  196. package/Libraries/MutationObserver/NativeMutationObserver.js +3 -48
  197. package/Libraries/MutationObserver/__mocks__/NativeMutationObserver.js +1 -1
  198. package/Libraries/NativeComponent/BaseViewConfig.android.js +1 -0
  199. package/Libraries/NativeComponent/NativeComponentRegistry.js +1 -1
  200. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +3 -10
  201. package/Libraries/NativeModules/specs/NativeDevMenu.js +3 -13
  202. package/Libraries/NativeModules/specs/NativeDevSettings.js +3 -23
  203. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +3 -9
  204. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +3 -38
  205. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -10
  206. package/Libraries/NativeModules/specs/NativeRedBox.js +4 -11
  207. package/Libraries/NativeModules/specs/NativeSourceCode.js +2 -25
  208. package/Libraries/Network/FormData.js +3 -1
  209. package/Libraries/Network/NativeNetworkingAndroid.js +4 -28
  210. package/Libraries/Network/NativeNetworkingIOS.js +4 -28
  211. package/Libraries/Performance/NativeJSCSamplingProfiler.js +3 -9
  212. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +4 -68
  213. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +3 -3
  214. package/Libraries/PersonaCoin/PersonaCoin.d.ts +3 -3
  215. package/Libraries/PersonaCoin/PersonaCoin.js +14 -14
  216. package/Libraries/PersonaCoin/PersonaCoin.js.map +1 -1
  217. package/Libraries/PersonaCoin/PersonaCoinPropTypes.d.ts +2 -2
  218. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js +19 -19
  219. package/Libraries/PersonaCoin/PersonaCoinPropTypes.js.map +1 -1
  220. package/Libraries/PersonaCoin/PersonaCoinTypes.d.ts +33 -33
  221. package/Libraries/PersonaCoin/PersonaCoinTypes.js +23 -23
  222. package/Libraries/PersonaCoin/PersonaCoinTypes.js.map +1 -1
  223. package/Libraries/Pressability/Pressability.js +12 -2
  224. package/Libraries/Pressability/Pressability.win32.js +12 -2
  225. package/Libraries/Pressability/usePressability.js +7 -0
  226. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +4 -70
  227. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +45 -39
  228. package/Libraries/ReactNative/AppContainer-dev.js +192 -0
  229. package/Libraries/ReactNative/AppContainer-prod.js +53 -0
  230. package/Libraries/ReactNative/AppContainer.js +6 -149
  231. package/Libraries/ReactNative/AppRegistry.js +3 -1
  232. package/Libraries/ReactNative/BridgelessUIManager.js +375 -128
  233. package/Libraries/ReactNative/FabricUIManager.js +6 -0
  234. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +3 -10
  235. package/Libraries/ReactNative/NativeI18nManager.js +3 -18
  236. package/Libraries/ReactNative/NativeUIManager.js +4 -112
  237. package/Libraries/ReactNative/PaperUIManager.js +8 -7
  238. package/Libraries/ReactNative/PaperUIManager.win32.js +26 -7
  239. package/Libraries/ReactNative/ReactFabricInternals.js +1 -1
  240. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +24 -5
  241. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +0 -45
  242. package/Libraries/ReactNative/RendererImplementation.js +11 -0
  243. package/Libraries/ReactNative/UIManager.d.ts +11 -34
  244. package/Libraries/ReactNative/UIManager.js +2 -23
  245. package/Libraries/ReactNative/UIManagerProperties.js +0 -2
  246. package/Libraries/ReactNative/__mocks__/FabricUIManager.js +23 -1
  247. package/Libraries/ReactNative/getNativeComponentAttributes.js +5 -1
  248. package/Libraries/ReactNative/renderApplication.js +9 -6
  249. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +6 -1
  250. package/Libraries/Renderer/implementations/ReactFabric-dev.js +24771 -21123
  251. package/Libraries/Renderer/implementations/ReactFabric-prod.js +4160 -3109
  252. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4384 -3322
  253. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +25194 -21398
  254. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3763 -2636
  255. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4027 -2867
  256. package/Libraries/Renderer/shims/ReactNativeTypes.js +8 -9
  257. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -12
  258. package/Libraries/Settings/NativeSettingsManager.js +4 -16
  259. package/Libraries/Share/NativeShareModule.js +3 -13
  260. package/Libraries/StyleSheet/PlatformColorValueTypes.win32.js +1 -1
  261. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  262. package/Libraries/StyleSheet/PlatformColorValueTypesWin32.js +1 -1
  263. package/Libraries/StyleSheet/StyleSheet.d.ts +1 -20
  264. package/Libraries/StyleSheet/StyleSheet.js +5 -28
  265. package/Libraries/StyleSheet/StyleSheet.win32.js +5 -28
  266. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +47 -7
  267. package/Libraries/StyleSheet/StyleSheetTypes.js +16 -11
  268. package/Libraries/StyleSheet/flattenStyle.js +2 -2
  269. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  270. package/Libraries/StyleSheet/processAspectRatio.js +1 -1
  271. package/Libraries/StyleSheet/processFontVariant.js +1 -1
  272. package/Libraries/Text/Text.d.ts +85 -0
  273. package/Libraries/Text/Text.js +0 -6
  274. package/Libraries/Text/Text.win32.js +0 -6
  275. package/Libraries/Text/TextAncestor.js +2 -3
  276. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +4 -41
  277. package/Libraries/Types/ReactDevToolsTypes.js +58 -0
  278. package/Libraries/Types/UIManagerJSInterface.js +16 -0
  279. package/Libraries/Utilities/DebugEnvironment.js +1 -4
  280. package/Libraries/Utilities/Dimensions.js +8 -16
  281. package/Libraries/Utilities/Dimensions.win32.js +8 -16
  282. package/Libraries/Utilities/FocusManager.win32.js +2 -0
  283. package/Libraries/Utilities/GlobalPerformanceLogger.js +1 -2
  284. package/Libraries/Utilities/NativeAppearance.js +3 -26
  285. package/Libraries/Utilities/NativeDevLoadingView.js +3 -14
  286. package/Libraries/Utilities/NativeDeviceInfo.js +2 -47
  287. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +3 -34
  288. package/Libraries/Utilities/NativePlatformConstantsIOS.js +3 -26
  289. package/Libraries/Utilities/NativePlatformConstantsWin.js +3 -23
  290. package/Libraries/Utilities/PixelRatio.d.ts +4 -4
  291. package/Libraries/Utilities/Platform.android.js +4 -0
  292. package/Libraries/Utilities/Platform.d.ts +3 -0
  293. package/Libraries/Utilities/Platform.flow.js +7 -0
  294. package/Libraries/Utilities/Platform.flow.win32.js +18 -5
  295. package/Libraries/Utilities/Platform.ios.js +11 -0
  296. package/Libraries/Utilities/Platform.win32.js +9 -1
  297. package/Libraries/Utilities/binaryToBase64.js +1 -1
  298. package/Libraries/Utilities/codegenNativeComponent.js +4 -6
  299. package/Libraries/Utilities/createPerformanceLogger.js +2 -74
  300. package/Libraries/Utilities/useMergeRefs.js +5 -9
  301. package/Libraries/Vibration/NativeVibration.js +3 -14
  302. package/Libraries/WebSocket/NativeWebSocketModule.js +4 -25
  303. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  304. package/Libraries/platform-types.d.ts +2 -3
  305. package/Libraries/vendor/emitter/EventEmitter.js +1 -0
  306. package/babel.config.js +1 -1
  307. package/flow/jest.js +1 -1
  308. package/flow/react.js +15 -0
  309. package/index.js +66 -99
  310. package/index.win32.js +60 -101
  311. package/jest/assetFileTransformer.js +1 -1
  312. package/jest/local-setup.js +0 -5
  313. package/jest/mockModal.js +2 -1
  314. package/jest/mockScrollView.js +1 -2
  315. package/jest/renderer.js +1 -1
  316. package/jest/setup.js +6 -3
  317. package/jest.config.js +2 -1
  318. package/overrides.json +157 -130
  319. package/package.json +26 -26
  320. package/{Libraries/Core → src/private/core}/setUpDOM.js +2 -2
  321. package/src/private/featureflags/NativeReactNativeFeatureFlags.js +42 -0
  322. package/src/private/featureflags/ReactNativeFeatureFlags.js +140 -0
  323. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +84 -0
  324. package/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +92 -0
  325. package/src/private/specs/components/ActivityIndicatorViewNativeComponent.js +53 -0
  326. package/src/private/specs/components/AndroidDrawerLayoutNativeComponent.js +124 -0
  327. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +26 -0
  328. package/src/private/specs/components/AndroidSwipeRefreshLayoutNativeComponent.js +74 -0
  329. package/src/private/specs/components/AndroidSwitchNativeComponent.js +62 -0
  330. package/src/private/specs/components/DebuggingOverlayNativeComponent.js +61 -0
  331. package/src/private/specs/components/PopupMenuAndroidNativeComponent.js +47 -0
  332. package/src/private/specs/components/ProgressBarAndroidNativeComponent.js +36 -0
  333. package/src/private/specs/components/PullToRefreshViewNativeComponent.js +71 -0
  334. package/src/private/specs/components/RCTInputAccessoryViewNativeComponent.js +26 -0
  335. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +139 -0
  336. package/src/private/specs/components/RCTSafeAreaViewNativeComponent.js +25 -0
  337. package/src/private/specs/components/SwitchNativeComponent.js +61 -0
  338. package/src/private/specs/components/UnimplementedNativeViewNativeComponent.js +26 -0
  339. package/src/private/specs/modules/NativeAccessibilityInfo.js +33 -0
  340. package/src/private/specs/modules/NativeAccessibilityInfoWin32.js +39 -0
  341. package/src/private/specs/modules/NativeAccessibilityManager.js +66 -0
  342. package/src/private/specs/modules/NativeActionSheetManager.js +54 -0
  343. package/src/private/specs/modules/NativeAlertManager.js +35 -0
  344. package/src/private/specs/modules/NativeAnimatedModule.js +77 -0
  345. package/src/private/specs/modules/NativeAnimatedTurboModule.js +78 -0
  346. package/src/private/specs/modules/NativeAnimationsDebugModule.js +20 -0
  347. package/src/private/specs/modules/NativeAppState.js +33 -0
  348. package/src/private/specs/modules/NativeAppearance.js +36 -0
  349. package/src/private/specs/modules/NativeBlobModule.js +59 -0
  350. package/src/private/specs/modules/NativeBugReporting.js +20 -0
  351. package/src/private/specs/modules/NativeClipboard.js +21 -0
  352. package/src/private/specs/modules/NativeDevLoadingView.js +24 -0
  353. package/src/private/specs/modules/NativeDevMenu.js +23 -0
  354. package/src/private/specs/modules/NativeDevSettings.js +33 -0
  355. package/src/private/specs/modules/NativeDevToolsSettingsManager.js +24 -0
  356. package/src/private/specs/modules/NativeDeviceEventManager.js +19 -0
  357. package/src/private/specs/modules/NativeDeviceInfo.js +58 -0
  358. package/src/private/specs/modules/NativeDialogManagerAndroid.js +48 -0
  359. package/src/private/specs/modules/NativeExceptionsManager.js +103 -0
  360. package/src/private/specs/modules/NativeFileReaderModule.js +22 -0
  361. package/src/private/specs/modules/NativeFrameRateLogger.js +22 -0
  362. package/src/private/specs/modules/NativeHeadlessJsTaskSupport.js +20 -0
  363. package/src/private/specs/modules/NativeI18nManager.js +28 -0
  364. package/src/private/specs/modules/NativeImageEditor.js +52 -0
  365. package/src/private/specs/modules/NativeImageLoaderAndroid.js +30 -0
  366. package/src/private/specs/modules/NativeImageLoaderIOS.js +37 -0
  367. package/src/private/specs/modules/NativeImageLoaderWin32.js +45 -0
  368. package/src/private/specs/modules/NativeImageStoreAndroid.js +26 -0
  369. package/src/private/specs/modules/NativeImageStoreIOS.js +33 -0
  370. package/src/private/specs/modules/NativeIntentAndroid.js +30 -0
  371. package/src/private/specs/modules/NativeIntersectionObserver.js +41 -0
  372. package/src/private/specs/modules/NativeJSCHeapCapture.js +19 -0
  373. package/src/private/specs/modules/NativeJSCSamplingProfiler.js +19 -0
  374. package/src/private/specs/modules/NativeKeyboardObserver.js +20 -0
  375. package/src/private/specs/modules/NativeLinkingManager.js +27 -0
  376. package/src/private/specs/modules/NativeLogBox.js +20 -0
  377. package/src/private/specs/modules/NativeModalManager.js +21 -0
  378. package/src/private/specs/modules/NativeMutationObserver.js +58 -0
  379. package/src/private/specs/modules/NativeNetworkingAndroid.js +37 -0
  380. package/src/private/specs/modules/NativeNetworkingIOS.js +37 -0
  381. package/src/private/specs/modules/NativePermissionsAndroid.js +77 -0
  382. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +44 -0
  383. package/src/private/specs/modules/NativePlatformConstantsIOS.js +37 -0
  384. package/src/private/specs/modules/NativePlatformConstantsWin.js +37 -0
  385. package/src/private/specs/modules/NativePushNotificationManagerIOS.js +107 -0
  386. package/src/private/specs/modules/NativeRedBox.js +20 -0
  387. package/src/private/specs/modules/NativeSampleTurboModule.js +53 -0
  388. package/src/private/specs/modules/NativeSegmentFetcher.js +28 -0
  389. package/src/private/specs/modules/NativeSettingsManager.js +25 -0
  390. package/src/private/specs/modules/NativeShareModule.js +23 -0
  391. package/src/private/specs/modules/NativeSoundManager.js +22 -0
  392. package/src/private/specs/modules/NativeSourceCode.js +36 -0
  393. package/src/private/specs/modules/NativeStatusBarManagerAndroid.js +68 -0
  394. package/src/private/specs/modules/NativeStatusBarManagerIOS.js +89 -0
  395. package/src/private/specs/modules/NativeTiming.js +26 -0
  396. package/src/private/specs/modules/NativeToastAndroid.js +38 -0
  397. package/src/private/specs/modules/NativeUIManager.js +118 -0
  398. package/src/private/specs/modules/NativeVibration.js +24 -0
  399. package/src/private/specs/modules/NativeWebSocketModule.js +34 -0
  400. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReactNativeElement.js +6 -6
  401. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyCharacterData.js +2 -2
  402. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyElement.js +5 -5
  403. package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyNode.js +19 -10
  404. package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/DOMRectList.js +1 -1
  405. package/src/private/webapis/dom/oldstylecollections/__tests__/DOMRectList-test.js +85 -0
  406. package/src/private/webapis/dom/oldstylecollections/__tests__/HTMLCollection-test.js +80 -0
  407. package/src/private/webapis/dom/oldstylecollections/__tests__/NodeList-test.js +161 -0
  408. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformance.js +2 -2
  409. package/{Libraries/WebPerformance → src/private/webapis/performance}/NativePerformanceObserver.js +3 -2
  410. package/{Libraries/WebPerformance → src/private/webapis/performance}/Performance.js +2 -2
  411. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEventTiming.js +1 -1
  412. package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceObserver.js +21 -2
  413. package/{Libraries/WebPerformance → src/private/webapis/performance}/RawPerformanceEntry.js +1 -1
  414. package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformanceObserver.js +9 -0
  415. package/src/private/webapis/performance/__tests__/EventCounts-test.js +116 -0
  416. package/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +82 -0
  417. package/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +108 -0
  418. package/src/private/webapis/performance/__tests__/Performance-test.js +117 -0
  419. package/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +208 -0
  420. package/src-win/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +161 -0
  421. package/{src → src-win}/Libraries/Components/Button/ButtonWin32.tsx +3 -3
  422. package/{src → src-win}/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +9 -10
  423. package/{src → src-win}/Libraries/Components/View/ViewAccessibility.d.ts +33 -17
  424. package/{src → src-win}/Libraries/Components/View/ViewPropTypes.d.ts +28 -17
  425. package/{src → src-win}/Libraries/StyleSheet/PlatformColorValueTypesWin32.d.ts +1 -1
  426. package/src-win/Libraries/Text/Text.d.ts +304 -0
  427. package/{src → src-win}/Libraries/platform-types.d.ts +2 -3
  428. package/types/modules/globals.d.ts +1 -0
  429. package/Libraries/Components/Button.flow.js +0 -265
  430. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +0 -85
  431. package/Libraries/Components/Text/TextWin32.Props.d.ts +0 -63
  432. package/Libraries/Components/Text/TextWin32.Props.js +0 -3
  433. package/Libraries/Components/Text/TextWin32.Props.js.map +0 -1
  434. package/Libraries/Components/Text/TextWin32.d.ts +0 -6
  435. package/Libraries/Components/Text/TextWin32.js +0 -18
  436. package/Libraries/Components/Text/TextWin32.js.map +0 -1
  437. package/Libraries/Components/Touchable/Touchable.flow.js +0 -284
  438. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +0 -189
  439. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +0 -43
  440. package/Libraries/Image/Image.flow.js +0 -64
  441. package/Libraries/Inspector/DevtoolsOverlay.js +0 -223
  442. package/Libraries/Performance/QuickPerformanceLogger.js +0 -142
  443. package/src/Libraries/Components/Text/TextWin32.Props.ts +0 -82
  444. package/src/Libraries/Components/Text/TextWin32.tsx +0 -25
  445. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRect.js +0 -0
  446. /package/{Libraries/DOM/Geometry → src/private/webapis/dom/geometry}/DOMRectReadOnly.js +0 -0
  447. /package/{Libraries/DOM/Nodes → src/private/webapis/dom/nodes}/ReadOnlyText.js +0 -0
  448. /package/{Libraries/DOM/Nodes/Utilities → src/private/webapis/dom/nodes/utilities}/Traversal.js +0 -0
  449. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/ArrayLikeUtils.js +0 -0
  450. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/HTMLCollection.js +0 -0
  451. /package/{Libraries/DOM/OldStyleCollections → src/private/webapis/dom/oldstylecollections}/NodeList.js +0 -0
  452. /package/{Libraries/WebPerformance → src/private/webapis/performance}/EventCounts.js +0 -0
  453. /package/{Libraries/WebPerformance → src/private/webapis/performance}/MemoryInfo.js +0 -0
  454. /package/{Libraries/WebPerformance → src/private/webapis/performance}/PerformanceEntry.js +0 -0
  455. /package/{Libraries/WebPerformance → src/private/webapis/performance}/ReactNativeStartupTiming.js +0 -0
  456. /package/{Libraries/WebPerformance → src/private/webapis/performance}/__mocks__/NativePerformance.js +0 -0
  457. /package/{src → src-win}/Libraries/Components/Button/ButtonWin32.Props.ts +0 -0
  458. /package/{src → src-win}/Libraries/Components/EnterString.win32.tsx +0 -0
  459. /package/{src → src-win}/Libraries/Components/TextInput/Tests/TextInputTest.tsx +0 -0
  460. /package/{src → src-win}/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +0 -0
  461. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Props.tsx +0 -0
  462. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.Types.tsx +0 -0
  463. /package/{src → src-win}/Libraries/Components/Touchable/TouchableWin32.tsx +0 -0
  464. /package/{src → src-win}/Libraries/Components/View/ViewWin32.d.ts +0 -0
  465. /package/{src → src-win}/Libraries/Image/ImageTypes.ts +0 -0
  466. /package/{src → src-win}/Libraries/Image/Tests/ImageWin32Test.tsx +0 -0
  467. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest.png +0 -0
  468. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@1.5x.png +0 -0
  469. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@2x.png +0 -0
  470. /package/{src → src-win}/Libraries/Image/Tests/img/dpitest@3x.png +0 -0
  471. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest.png +0 -0
  472. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@1.5x.png +0 -0
  473. /package/{src → src-win}/Libraries/Image/Tests/img/en-us/dpitest@3x.png +0 -0
  474. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoin.tsx +0 -0
  475. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinPropTypes.ts +0 -0
  476. /package/{src → src-win}/Libraries/PersonaCoin/PersonaCoinTypes.ts +0 -0
  477. /package/{src → src-win}/Libraries/Utilities/FocusManager.win32.d.ts +0 -0
  478. /package/{src → src-win}/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +0 -0
@@ -137,6 +137,9 @@ type DataDetectorTypesType =
137
137
  | 'link'
138
138
  | 'address'
139
139
  | 'calendarEvent'
140
+ | 'trackingNumber'
141
+ | 'flightNumber'
142
+ | 'lookupSuggestion'
140
143
  | 'none'
141
144
  | 'all';
142
145
 
@@ -808,6 +811,11 @@ export type Props = $ReadOnly<{|
808
811
  */
809
812
  unstable_onKeyPressSync?: ?(e: KeyPressEvent) => mixed,
810
813
 
814
+ /**
815
+ * Called when a single tap gesture is detected.
816
+ */
817
+ onPress?: ?(event: PressEvent) => mixed,
818
+
811
819
  /**
812
820
  * Called when a touch is engaged.
813
821
  */
@@ -909,6 +917,12 @@ export type Props = $ReadOnly<{|
909
917
  */
910
918
  selectionColor?: ?ColorValue,
911
919
 
920
+ /**
921
+ * The text selection handle color.
922
+ * @platform android
923
+ */
924
+ selectionHandleColor?: ?ColorValue,
925
+
912
926
  /**
913
927
  * If `true`, all text will automatically be selected on focus.
914
928
  */
@@ -1035,8 +1049,8 @@ const emptyFunctionThatReturnsTrue = () => true;
1035
1049
  * return (
1036
1050
  * <TextInput
1037
1051
  * {...this.props} // Inherit any props passed to it; e.g., multiline, numberOfLines below
1038
- * editable = {true}
1039
- * maxLength = {40}
1052
+ * editable={true}
1053
+ * maxLength={40}
1040
1054
  * />
1041
1055
  * );
1042
1056
  * }
@@ -1060,8 +1074,8 @@ const emptyFunctionThatReturnsTrue = () => true;
1060
1074
  * borderBottomWidth: 1 }}
1061
1075
  * >
1062
1076
  * <UselessTextInput
1063
- * multiline = {true}
1064
- * numberOfLines = {4}
1077
+ * multiline={true}
1078
+ * numberOfLines={4}
1065
1079
  * onChangeText={(text) => this.setState({text})}
1066
1080
  * value={this.state.text}
1067
1081
  * />
@@ -1103,6 +1117,9 @@ function InternalTextInput(props: Props): React.Node {
1103
1117
  id,
1104
1118
  tabIndex,
1105
1119
  selection: propsSelection,
1120
+ selectionColor,
1121
+ selectionHandleColor,
1122
+ cursorColor,
1106
1123
  ...otherProps
1107
1124
  } = props;
1108
1125
 
@@ -1270,10 +1287,7 @@ function InternalTextInput(props: Props): React.Node {
1270
1287
  [mostRecentEventCount, viewCommands],
1271
1288
  );
1272
1289
 
1273
- const ref = useMergeRefs<TextInputInstance | null>(
1274
- setLocalRef,
1275
- props.forwardedRef,
1276
- );
1290
+ const ref = useMergeRefs<TextInputInstance>(setLocalRef, props.forwardedRef);
1277
1291
 
1278
1292
  const _onChange = (event: ChangeEvent) => {
1279
1293
  const currentText = event.nativeEvent.text;
@@ -1378,27 +1392,37 @@ function InternalTextInput(props: Props): React.Node {
1378
1392
  const accessible = props.accessible !== false;
1379
1393
  const focusable = props.focusable !== false;
1380
1394
 
1395
+ const {
1396
+ editable,
1397
+ hitSlop,
1398
+ onPress,
1399
+ onPressIn,
1400
+ onPressOut,
1401
+ rejectResponderTermination,
1402
+ } = props;
1403
+
1381
1404
  const config = React.useMemo(
1382
1405
  () => ({
1383
- hitSlop: props.hitSlop,
1406
+ hitSlop,
1384
1407
  onPress: (event: PressEvent) => {
1385
- if (props.editable !== false) {
1408
+ onPress?.(event);
1409
+ if (editable !== false) {
1386
1410
  if (inputRef.current != null) {
1387
1411
  inputRef.current.focus();
1388
1412
  }
1389
1413
  }
1390
1414
  },
1391
- onPressIn: props.onPressIn,
1392
- onPressOut: props.onPressOut,
1393
- cancelable:
1394
- Platform.OS === 'ios' ? !props.rejectResponderTermination : null,
1415
+ onPressIn: onPressIn,
1416
+ onPressOut: onPressOut,
1417
+ cancelable: Platform.OS === 'ios' ? !rejectResponderTermination : null,
1395
1418
  }),
1396
1419
  [
1397
- props.editable,
1398
- props.hitSlop,
1399
- props.onPressIn,
1400
- props.onPressOut,
1401
- props.rejectResponderTermination,
1420
+ editable,
1421
+ hitSlop,
1422
+ onPress,
1423
+ onPressIn,
1424
+ onPressOut,
1425
+ rejectResponderTermination,
1402
1426
  ],
1403
1427
  );
1404
1428
 
@@ -1431,8 +1455,7 @@ function InternalTextInput(props: Props): React.Node {
1431
1455
  };
1432
1456
  }
1433
1457
 
1434
- // $FlowFixMe[underconstrained-implicit-instantiation]
1435
- let style = flattenStyle(props.style);
1458
+ const style = flattenStyle<TextStyleProp>(props.style);
1436
1459
 
1437
1460
  if (Platform.OS === 'ios') {
1438
1461
  const RCTTextInputView =
@@ -1440,7 +1463,12 @@ function InternalTextInput(props: Props): React.Node {
1440
1463
  ? RCTMultilineTextInputView
1441
1464
  : RCTSinglelineTextInputView;
1442
1465
 
1443
- style = props.multiline === true ? [styles.multilineInput, style] : style;
1466
+ const useMultilineDefaultStyle =
1467
+ props.multiline === true &&
1468
+ (style == null ||
1469
+ (style.padding == null &&
1470
+ style.paddingVertical == null &&
1471
+ style.paddingTop == null));
1444
1472
 
1445
1473
  const useOnChangeSync =
1446
1474
  (props.unstable_onChangeSync || props.unstable_onChangeTextSync) &&
@@ -1470,7 +1498,10 @@ function InternalTextInput(props: Props): React.Node {
1470
1498
  onSelectionChange={_onSelectionChange}
1471
1499
  onSelectionChangeShouldSetResponder={emptyFunctionThatReturnsTrue}
1472
1500
  selection={selection}
1473
- style={style}
1501
+ style={StyleSheet.compose(
1502
+ useMultilineDefaultStyle ? styles.multilineDefault : null,
1503
+ style,
1504
+ )}
1474
1505
  text={text}
1475
1506
  />
1476
1507
  );
@@ -1488,7 +1519,15 @@ function InternalTextInput(props: Props): React.Node {
1488
1519
  if (childCount > 1) {
1489
1520
  children = <Text>{children}</Text>;
1490
1521
  }
1491
-
1522
+ // For consistency with iOS set cursor/selectionHandle color as selectionColor
1523
+ const colorProps = {
1524
+ selectionColor,
1525
+ selectionHandleColor:
1526
+ selectionHandleColor === undefined
1527
+ ? selectionColor
1528
+ : selectionHandleColor,
1529
+ cursorColor: cursorColor === undefined ? selectionColor : cursorColor,
1530
+ };
1492
1531
  textInput = (
1493
1532
  /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match up
1494
1533
  * exactly with the props for TextInput. This will need to get fixed */
@@ -1502,6 +1541,7 @@ function InternalTextInput(props: Props): React.Node {
1502
1541
  // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
1503
1542
  ref={ref}
1504
1543
  {...otherProps}
1544
+ {...colorProps}
1505
1545
  {...eventHandlers}
1506
1546
  accessibilityState={_accessibilityState}
1507
1547
  accessibilityLabelledBy={_accessibilityLabelledBy}
@@ -1712,13 +1752,6 @@ const ExportedForwardRef: React.AbstractComponent<
1712
1752
 
1713
1753
  ExportedForwardRef.displayName = 'TextInput';
1714
1754
 
1715
- /**
1716
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
1717
- * releases. This is deprecated and will be removed in the future.
1718
- */
1719
- ExportedForwardRef.propTypes =
1720
- require('deprecated-react-native-prop-types').TextInputPropTypes;
1721
-
1722
1755
  // $FlowFixMe[prop-missing]
1723
1756
  ExportedForwardRef.State = {
1724
1757
  currentlyFocusedInput: TextInputState.currentlyFocusedInput,
@@ -1738,7 +1771,7 @@ export type TextInputComponentStatics = $ReadOnly<{|
1738
1771
  |}>;
1739
1772
 
1740
1773
  const styles = StyleSheet.create({
1741
- multilineInput: {
1774
+ multilineDefault: {
1742
1775
  // This default top inset makes RCTMultilineTextInputView seem as close as possible
1743
1776
  // to single-line RCTSinglelineTextInputView defaults, using the system defaults
1744
1777
  // of font size 17 and a height of 31 points.
@@ -148,6 +148,9 @@ type DataDetectorTypesType =
148
148
  | 'link'
149
149
  | 'address'
150
150
  | 'calendarEvent'
151
+ | 'trackingNumber'
152
+ | 'flightNumber'
153
+ | 'lookupSuggestion'
151
154
  | 'none'
152
155
  | 'all';
153
156
 
@@ -851,6 +854,11 @@ export type Props = $ReadOnly<{|
851
854
  */
852
855
  unstable_onKeyPressSync?: ?(e: KeyPressEvent) => mixed,
853
856
 
857
+ /**
858
+ * Called when a single tap gesture is detected.
859
+ */
860
+ onPress?: ?(event: PressEvent) => mixed,
861
+
854
862
  /**
855
863
  * Called when a touch is engaged.
856
864
  */
@@ -952,6 +960,12 @@ export type Props = $ReadOnly<{|
952
960
  */
953
961
  selectionColor?: ?ColorValue,
954
962
 
963
+ /**
964
+ * The text selection handle color.
965
+ * @platform android
966
+ */
967
+ selectionHandleColor?: ?ColorValue,
968
+
955
969
  /**
956
970
  * If `true`, all text will automatically be selected on focus.
957
971
  */
@@ -1078,8 +1092,8 @@ const emptyFunctionThatReturnsTrue = () => true;
1078
1092
  * return (
1079
1093
  * <TextInput
1080
1094
  * {...this.props} // Inherit any props passed to it; e.g., multiline, numberOfLines below
1081
- * editable = {true}
1082
- * maxLength = {40}
1095
+ * editable={true}
1096
+ * maxLength={40}
1083
1097
  * />
1084
1098
  * );
1085
1099
  * }
@@ -1103,8 +1117,8 @@ const emptyFunctionThatReturnsTrue = () => true;
1103
1117
  * borderBottomWidth: 1 }}
1104
1118
  * >
1105
1119
  * <UselessTextInput
1106
- * multiline = {true}
1107
- * numberOfLines = {4}
1120
+ * multiline={true}
1121
+ * numberOfLines={4}
1108
1122
  * onChangeText={(text) => this.setState({text})}
1109
1123
  * value={this.state.text}
1110
1124
  * />
@@ -1148,6 +1162,9 @@ function InternalTextInput(props: Props): React.Node {
1148
1162
  id,
1149
1163
  tabIndex,
1150
1164
  selection: propsSelection,
1165
+ selectionColor,
1166
+ selectionHandleColor,
1167
+ cursorColor,
1151
1168
  ...otherProps
1152
1169
  } = props;
1153
1170
 
@@ -1321,10 +1338,7 @@ function InternalTextInput(props: Props): React.Node {
1321
1338
  [mostRecentEventCount, viewCommands],
1322
1339
  );
1323
1340
 
1324
- const ref = useMergeRefs<TextInputInstance | null>(
1325
- setLocalRef,
1326
- props.forwardedRef,
1327
- );
1341
+ const ref = useMergeRefs<TextInputInstance>(setLocalRef, props.forwardedRef);
1328
1342
 
1329
1343
  const _onChange = (event: ChangeEvent) => {
1330
1344
  const currentText = event.nativeEvent.text;
@@ -1435,27 +1449,37 @@ function InternalTextInput(props: Props): React.Node {
1435
1449
 
1436
1450
  const focusable = props.focusable !== false;
1437
1451
 
1452
+ const {
1453
+ editable,
1454
+ hitSlop,
1455
+ onPress,
1456
+ onPressIn,
1457
+ onPressOut,
1458
+ rejectResponderTermination,
1459
+ } = props;
1460
+
1438
1461
  const config = React.useMemo(
1439
1462
  () => ({
1440
- hitSlop: props.hitSlop,
1463
+ hitSlop,
1441
1464
  onPress: (event: PressEvent) => {
1442
- if (props.editable !== false) {
1465
+ onPress?.(event);
1466
+ if (editable !== false) {
1443
1467
  if (inputRef.current != null) {
1444
1468
  inputRef.current.focus();
1445
1469
  }
1446
1470
  }
1447
1471
  },
1448
- onPressIn: props.onPressIn,
1449
- onPressOut: props.onPressOut,
1450
- cancelable:
1451
- Platform.OS === 'ios' ? !props.rejectResponderTermination : null,
1472
+ onPressIn: onPressIn,
1473
+ onPressOut: onPressOut,
1474
+ cancelable: Platform.OS === 'ios' ? !rejectResponderTermination : null,
1452
1475
  }),
1453
1476
  [
1454
- props.editable,
1455
- props.hitSlop,
1456
- props.onPressIn,
1457
- props.onPressOut,
1458
- props.rejectResponderTermination,
1477
+ editable,
1478
+ hitSlop,
1479
+ onPress,
1480
+ onPressIn,
1481
+ onPressOut,
1482
+ rejectResponderTermination,
1459
1483
  ],
1460
1484
  );
1461
1485
 
@@ -1475,8 +1499,8 @@ function InternalTextInput(props: Props): React.Node {
1475
1499
  // $FlowFixMe - keyDownEvents was already checked to not be undefined
1476
1500
  for (const el of props.keyDownEvents) {
1477
1501
  if (
1478
- event.nativeEvent.code == el.code &&
1479
- el.handledEventPhase == eventPhase.Bubbling
1502
+ event.nativeEvent.code === el.code &&
1503
+ el.handledEventPhase === eventPhase.Bubbling
1480
1504
  ) {
1481
1505
  event.stopPropagation();
1482
1506
  }
@@ -1489,7 +1513,7 @@ function InternalTextInput(props: Props): React.Node {
1489
1513
  if (props.keyUpEvents && event.isPropagationStopped() !== true) {
1490
1514
  // $FlowFixMe - keyDownEvents was already checked to not be undefined
1491
1515
  for (const el of props.keyUpEvents) {
1492
- if (event.nativeEvent.code == el.code && el.handledEventPhase == 3) {
1516
+ if (event.nativeEvent.code === el.code && el.handledEventPhase === 3) {
1493
1517
  event.stopPropagation();
1494
1518
  }
1495
1519
  }
@@ -1501,7 +1525,7 @@ function InternalTextInput(props: Props): React.Node {
1501
1525
  if (props.keyDownEvents && event.isPropagationStopped() !== true) {
1502
1526
  // $FlowFixMe - keyDownEvents was already checked to not be undefined
1503
1527
  for (const el of props.keyDownEvents) {
1504
- if (event.nativeEvent.code == el.code && el.handledEventPhase == 1) {
1528
+ if (event.nativeEvent.code === el.code && el.handledEventPhase === 1) {
1505
1529
  event.stopPropagation();
1506
1530
  }
1507
1531
  }
@@ -1513,7 +1537,7 @@ function InternalTextInput(props: Props): React.Node {
1513
1537
  if (props.keyUpEvents && event.isPropagationStopped() !== true) {
1514
1538
  // $FlowFixMe - keyDownEvents was already checked to not be undefined
1515
1539
  for (const el of props.keyUpEvents) {
1516
- if (event.nativeEvent.code == el.code && el.handledEventPhase == 1) {
1540
+ if (event.nativeEvent.code === el.code && el.handledEventPhase === 1) {
1517
1541
  event.stopPropagation();
1518
1542
  }
1519
1543
  }
@@ -1544,8 +1568,7 @@ function InternalTextInput(props: Props): React.Node {
1544
1568
  };
1545
1569
  }
1546
1570
 
1547
- // $FlowFixMe[underconstrained-implicit-instantiation]
1548
- let style = flattenStyle(props.style);
1571
+ const style = flattenStyle<TextStyleProp>(props.style);
1549
1572
 
1550
1573
  if (Platform.OS === 'ios') {
1551
1574
  const RCTTextInputView =
@@ -1553,7 +1576,12 @@ function InternalTextInput(props: Props): React.Node {
1553
1576
  ? RCTMultilineTextInputView
1554
1577
  : RCTSinglelineTextInputView;
1555
1578
 
1556
- style = props.multiline === true ? [styles.multilineInput, style] : style;
1579
+ const useMultilineDefaultStyle =
1580
+ props.multiline === true &&
1581
+ (style == null ||
1582
+ (style.padding == null &&
1583
+ style.paddingVertical == null &&
1584
+ style.paddingTop == null));
1557
1585
 
1558
1586
  const useOnChangeSync =
1559
1587
  (props.unstable_onChangeSync || props.unstable_onChangeTextSync) &&
@@ -1584,7 +1612,10 @@ function InternalTextInput(props: Props): React.Node {
1584
1612
  onSelectionChange={_onSelectionChange}
1585
1613
  onSelectionChangeShouldSetResponder={emptyFunctionThatReturnsTrue}
1586
1614
  selection={selection}
1587
- style={style}
1615
+ style={StyleSheet.compose(
1616
+ useMultilineDefaultStyle ? styles.multilineDefault : null,
1617
+ style,
1618
+ )}
1588
1619
  text={text}
1589
1620
  />
1590
1621
  );
@@ -1602,7 +1633,15 @@ function InternalTextInput(props: Props): React.Node {
1602
1633
  if (childCount > 1) {
1603
1634
  children = <Text>{children}</Text>;
1604
1635
  }
1605
-
1636
+ // For consistency with iOS set cursor/selectionHandle color as selectionColor
1637
+ const colorProps = {
1638
+ selectionColor,
1639
+ selectionHandleColor:
1640
+ selectionHandleColor === undefined
1641
+ ? selectionColor
1642
+ : selectionHandleColor,
1643
+ cursorColor: cursorColor === undefined ? selectionColor : cursorColor,
1644
+ };
1606
1645
  textInput = (
1607
1646
  /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match up
1608
1647
  * exactly with the props for TextInput. This will need to get fixed */
@@ -1616,6 +1655,7 @@ function InternalTextInput(props: Props): React.Node {
1616
1655
  // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
1617
1656
  ref={ref}
1618
1657
  {...otherProps}
1658
+ {...colorProps}
1619
1659
  {...eventHandlers}
1620
1660
  accessibilityErrorMessage={accessibilityErrorMessage}
1621
1661
  accessibilityState={_accessibilityState}
@@ -1849,13 +1889,6 @@ const ExportedForwardRef: React.AbstractComponent<
1849
1889
 
1850
1890
  ExportedForwardRef.displayName = 'TextInput';
1851
1891
 
1852
- /**
1853
- * Switch to `deprecated-react-native-prop-types` for compatibility with future
1854
- * releases. This is deprecated and will be removed in the future.
1855
- */
1856
- ExportedForwardRef.propTypes =
1857
- require('deprecated-react-native-prop-types').TextInputPropTypes;
1858
-
1859
1892
  // $FlowFixMe[prop-missing]
1860
1893
  ExportedForwardRef.State = {
1861
1894
  currentlyFocusedInput: TextInputState.currentlyFocusedInput,
@@ -1875,7 +1908,7 @@ export type TextInputComponentStatics = $ReadOnly<{|
1875
1908
  |}>;
1876
1909
 
1877
1910
  const styles = StyleSheet.create({
1878
- multilineInput: {
1911
+ multilineDefault: {
1879
1912
  // This default top inset makes RCTMultilineTextInputView seem as close as possible
1880
1913
  // to single-line RCTSinglelineTextInputView defaults, using the system defaults
1881
1914
  // of font size 17 and a height of 31 points.
@@ -8,31 +8,6 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {TurboModule} from '../../TurboModule/RCTExport';
12
-
13
- import * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';
14
-
15
- export interface Spec extends TurboModule {
16
- +getConstants: () => {|
17
- SHORT: number,
18
- LONG: number,
19
- TOP: number,
20
- BOTTOM: number,
21
- CENTER: number,
22
- |};
23
- +show: (message: string, duration: number) => void;
24
- +showWithGravity: (
25
- message: string,
26
- duration: number,
27
- gravity: number,
28
- ) => void;
29
- +showWithGravityAndOffset: (
30
- message: string,
31
- duration: number,
32
- gravity: number,
33
- xOffset: number,
34
- yOffset: number,
35
- ) => void;
36
- }
37
-
38
- export default (TurboModuleRegistry.getEnforcing<Spec>('ToastAndroid'): Spec);
11
+ export * from '../../../src/private/specs/modules/NativeToastAndroid';
12
+ import NativeToastAndroid from '../../../src/private/specs/modules/NativeToastAndroid';
13
+ export default NativeToastAndroid;
@@ -112,7 +112,7 @@ const addPoolingTo = function <T>(
112
112
  } {
113
113
  // Casting as any so that flow ignores the actual implementation and trusts
114
114
  // it to match the type we declared
115
- const NewKlass = (CopyConstructor: any);
115
+ const NewKlass: any = CopyConstructor;
116
116
  NewKlass.instancePool = [];
117
117
  NewKlass.getPooled = pooler || DEFAULT_POOLER;
118
118
  if (!NewKlass.poolSize) {
@@ -1,8 +1,8 @@
1
- export declare const displayName = "TouchableWin32 Examples";
2
- export declare const title = "TouchableWin32";
3
- export declare const description = "Demonstration of touchable + focus + hover behavior all in one component";
4
- export declare const examples: {
5
- title: string;
6
- description: string;
7
- render(): JSX.Element;
8
- }[];
1
+ export declare const displayName = "TouchableWin32 Examples";
2
+ export declare const title = "TouchableWin32";
3
+ export declare const description = "Demonstration of touchable + focus + hover behavior all in one component";
4
+ export declare const examples: {
5
+ title: string;
6
+ description: string;
7
+ render(): JSX.Element;
8
+ }[];