@office-iss/react-native-win32 0.70.2 → 0.71.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 (559) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.js +2 -0
  3. package/.flowconfig +3 -6
  4. package/CHANGELOG.json +281 -43
  5. package/CHANGELOG.md +105 -24
  6. package/IntegrationTests/AccessibilityManagerTest.js +1 -1
  7. package/IntegrationTests/AppEventsTest.js +0 -1
  8. package/IntegrationTests/BUCK +0 -1
  9. package/IntegrationTests/GlobalEvalWithSourceUrlTest.js +1 -1
  10. package/IntegrationTests/ImageSnapshotTest.js +1 -1
  11. package/IntegrationTests/IntegrationTestsApp.js +2 -3
  12. package/IntegrationTests/SimpleSnapshotTest.js +1 -1
  13. package/IntegrationTests/SyncMethodTest.js +1 -1
  14. package/IntegrationTests/TimersTest.js +4 -4
  15. package/IntegrationTests/WebSocketTest.js +3 -3
  16. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +80 -0
  17. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -3
  18. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  19. package/Libraries/Alert/Alert.d.ts +90 -0
  20. package/Libraries/Alert/Alert.js +7 -1
  21. package/Libraries/Alert/Alert.win32.js +1 -0
  22. package/Libraries/Alert/NativeAlertManager.js +2 -0
  23. package/Libraries/Alert/RCTAlertManager.ios.js +2 -1
  24. package/Libraries/Animated/Animated.d.ts +587 -0
  25. package/Libraries/Animated/Animated.js +13 -11
  26. package/Libraries/Animated/AnimatedEvent.js +12 -17
  27. package/Libraries/Animated/AnimatedImplementation.js +21 -23
  28. package/Libraries/Animated/AnimatedMock.js +11 -13
  29. package/Libraries/Animated/AnimatedWeb.js +2 -2
  30. package/Libraries/Animated/Easing.d.ts +37 -0
  31. package/Libraries/Animated/Easing.js +2 -2
  32. package/Libraries/Animated/NativeAnimatedHelper.js +32 -22
  33. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  34. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  35. package/Libraries/Animated/SpringConfig.js +2 -7
  36. package/Libraries/Animated/animations/Animation.js +3 -4
  37. package/Libraries/Animated/animations/DecayAnimation.js +5 -8
  38. package/Libraries/Animated/animations/SpringAnimation.js +9 -14
  39. package/Libraries/Animated/animations/TimingAnimation.js +9 -13
  40. package/Libraries/Animated/bezier.js +2 -2
  41. package/Libraries/Animated/components/AnimatedFlatList.js +5 -6
  42. package/Libraries/Animated/components/AnimatedImage.js +5 -6
  43. package/Libraries/Animated/components/AnimatedScrollView.js +110 -14
  44. package/Libraries/Animated/components/AnimatedSectionList.js +4 -5
  45. package/Libraries/Animated/components/AnimatedText.js +5 -6
  46. package/Libraries/Animated/components/AnimatedView.js +5 -6
  47. package/Libraries/Animated/createAnimatedComponent.js +13 -20
  48. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +2 -2
  49. package/Libraries/Animated/nodes/AnimatedAddition.js +6 -8
  50. package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
  51. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +6 -8
  52. package/Libraries/Animated/nodes/AnimatedDivision.js +7 -9
  53. package/Libraries/Animated/nodes/AnimatedInterpolation.js +7 -10
  54. package/Libraries/Animated/nodes/AnimatedModulo.js +6 -8
  55. package/Libraries/Animated/nodes/AnimatedMultiplication.js +7 -9
  56. package/Libraries/Animated/nodes/AnimatedNode.js +10 -8
  57. package/Libraries/Animated/nodes/AnimatedProps.js +12 -30
  58. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -22
  59. package/Libraries/Animated/nodes/AnimatedSubtraction.js +7 -9
  60. package/Libraries/Animated/nodes/AnimatedTracking.js +8 -12
  61. package/Libraries/Animated/nodes/AnimatedTransform.js +38 -31
  62. package/Libraries/Animated/nodes/AnimatedValue.js +9 -10
  63. package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -7
  64. package/Libraries/Animated/nodes/AnimatedWithChildren.js +4 -5
  65. package/Libraries/Animated/useAnimatedProps.js +8 -16
  66. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  67. package/Libraries/Animated/useAnimatedValue.js +25 -0
  68. package/Libraries/AppState/AppState.d.ts +58 -0
  69. package/Libraries/AppState/AppState.js +3 -7
  70. package/Libraries/AppState/NativeAppState.js +1 -0
  71. package/Libraries/BatchedBridge/MessageQueue.js +9 -5
  72. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  73. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  74. package/Libraries/Blob/BlobManager.js +5 -3
  75. package/Libraries/Blob/File.js +2 -3
  76. package/Libraries/Blob/FileReader.js +6 -5
  77. package/Libraries/Blob/NativeBlobModule.js +1 -0
  78. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  79. package/Libraries/Blob/URL.js +11 -9
  80. package/Libraries/BugReporting/NativeBugReporting.js +1 -0
  81. package/Libraries/BugReporting/getReactData.js +1 -1
  82. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +128 -0
  83. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +208 -0
  84. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +40 -8
  85. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +40 -8
  86. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -0
  87. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -0
  88. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  89. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +58 -0
  90. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +7 -8
  91. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  92. package/Libraries/Components/Button.d.ts +42 -0
  93. package/Libraries/Components/Button.flow.js +265 -0
  94. package/Libraries/Components/Button.js +62 -18
  95. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  96. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -0
  97. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -2
  98. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +92 -0
  99. package/Libraries/Components/{MaskedView/MaskedViewIOS.android.js → DatePicker/DatePickerIOS.flow.android.js} +3 -2
  100. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +113 -0
  101. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +8 -7
  102. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +4 -2
  103. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +7 -6
  104. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -0
  105. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +9 -8
  106. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +13 -14
  107. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  108. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  109. package/Libraries/Components/Keyboard/Keyboard.js +35 -8
  110. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  111. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +35 -15
  112. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -0
  113. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  114. package/Libraries/Components/Pressable/Pressable.js +73 -15
  115. package/Libraries/Components/Pressable/Pressable.win32.js +77 -19
  116. package/Libraries/Components/Pressable/useAndroidRippleForView.js +6 -3
  117. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +3 -3
  118. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  119. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  120. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
  121. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +62 -0
  122. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +4 -4
  123. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +1 -1
  124. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +2 -2
  125. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +5 -6
  126. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -4
  127. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  128. package/Libraries/Components/RefreshControl/RefreshControl.js +4 -3
  129. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  130. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  131. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  132. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +19 -0
  133. package/Libraries/Components/SafeAreaView/SafeAreaView.js +5 -4
  134. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +5 -4
  135. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -1
  136. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -1
  137. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -1
  138. package/Libraries/Components/ScrollView/ScrollView.d.ts +911 -0
  139. package/Libraries/Components/ScrollView/ScrollView.js +87 -52
  140. package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
  141. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +2 -1
  142. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +3 -3
  143. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +243 -269
  144. package/Libraries/Components/Slider/Slider.d.ts +132 -0
  145. package/Libraries/Components/Slider/Slider.js +9 -9
  146. package/Libraries/Components/Slider/SliderNativeComponent.js +4 -5
  147. package/Libraries/Components/Sound/NativeSoundManager.js +1 -0
  148. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -0
  149. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -0
  150. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  151. package/Libraries/Components/StatusBar/StatusBar.js +7 -7
  152. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +10 -10
  153. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  154. package/Libraries/Components/Switch/Switch.js +7 -7
  155. package/Libraries/Components/Switch/SwitchNativeComponent.js +9 -4
  156. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +40 -12
  157. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  158. package/Libraries/Components/TextInput/InputAccessoryView.js +3 -4
  159. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  160. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +3 -2
  161. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -2
  162. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
  163. package/Libraries/Components/TextInput/TextInput.d.ts +840 -0
  164. package/Libraries/Components/TextInput/TextInput.flow.js +1057 -0
  165. package/Libraries/Components/TextInput/TextInput.js +344 -38
  166. package/Libraries/Components/TextInput/TextInput.win32.d.ts +1 -1
  167. package/Libraries/Components/TextInput/TextInput.win32.js +1 -1
  168. package/Libraries/Components/TextInput/TextInput.win32.js.map +1 -1
  169. package/Libraries/Components/TextInput/TextInputNativeCommands.js +2 -2
  170. package/Libraries/Components/TextInput/TextInputState.js +22 -5
  171. package/Libraries/Components/TextInput/TextInputState.win32.js +24 -5
  172. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -0
  173. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  174. package/Libraries/Components/Touchable/Tests/TouchableWin32Test.js.map +1 -1
  175. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  176. package/Libraries/Components/Touchable/Touchable.flow.js +258 -0
  177. package/Libraries/Components/Touchable/Touchable.js +12 -12
  178. package/Libraries/Components/Touchable/Touchable.win32.js +12 -12
  179. package/Libraries/Components/Touchable/TouchableBounce.js +44 -10
  180. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +68 -0
  181. package/Libraries/Components/Touchable/TouchableHighlight.js +32 -9
  182. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
  183. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +54 -20
  184. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +109 -0
  185. package/Libraries/Components/Touchable/TouchableOpacity.js +54 -16
  186. package/Libraries/Components/Touchable/TouchableWin32.Props.d.ts +2 -1
  187. package/Libraries/Components/Touchable/TouchableWin32.Props.js.map +1 -1
  188. package/Libraries/Components/Touchable/TouchableWin32.js +0 -1
  189. package/Libraries/Components/Touchable/TouchableWin32.js.map +1 -1
  190. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +143 -0
  191. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +64 -10
  192. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
  193. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  194. package/Libraries/Components/View/ReactNativeStyleAttributes.js +13 -2
  195. package/Libraries/Components/View/ReactNativeViewAttributes.win32.js +1 -0
  196. package/Libraries/Components/View/View.d.ts +29 -0
  197. package/Libraries/Components/View/View.js +91 -8
  198. package/Libraries/Components/View/View.win32.js +176 -89
  199. package/Libraries/Components/View/ViewAccessibility.d.ts +360 -0
  200. package/Libraries/Components/View/ViewAccessibility.js +70 -1
  201. package/Libraries/Components/View/ViewNativeComponent.js +3 -3
  202. package/Libraries/Components/View/ViewPropTypes.d.ts +245 -0
  203. package/Libraries/Components/View/ViewPropTypes.js +105 -13
  204. package/Libraries/Components/View/ViewPropTypes.win32.js +105 -13
  205. package/Libraries/Components/View/ViewWin32.Props.d.ts +6 -1
  206. package/Libraries/Components/View/ViewWin32.Props.js.map +1 -1
  207. package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
  208. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  209. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  210. package/Libraries/Core/ExceptionsManager.js +8 -0
  211. package/Libraries/Core/ExtendedError.js +11 -8
  212. package/Libraries/Core/InitializeCore.js +2 -1
  213. package/Libraries/Core/NativeExceptionsManager.js +3 -4
  214. package/Libraries/Core/RawEventEmitter.js +2 -1
  215. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  216. package/Libraries/Core/ReactNativeVersion.js +2 -2
  217. package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
  218. package/Libraries/Core/ReactNativeVersionCheck.win32.js +1 -0
  219. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  220. package/Libraries/Core/Timers/JSTimers.js +13 -11
  221. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  222. package/Libraries/Core/setUpBatchedBridge.js +1 -5
  223. package/Libraries/Core/setUpDeveloperTools.js +4 -6
  224. package/Libraries/Core/setUpReactDevTools.js +4 -1
  225. package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
  226. package/Libraries/Core/setUpTimers.js +1 -1
  227. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
  228. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
  229. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
  230. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  231. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  232. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
  233. package/Libraries/Events/EventPolyfill.js +1 -1
  234. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
  235. package/Libraries/Image/AssetSourceResolver.js +4 -6
  236. package/Libraries/Image/Image.android.js +63 -45
  237. package/Libraries/Image/Image.d.ts +322 -0
  238. package/Libraries/Image/Image.flow.js +64 -0
  239. package/Libraries/Image/Image.ios.js +55 -28
  240. package/Libraries/Image/Image.win32.js +54 -25
  241. package/Libraries/Image/ImageBackground.js +18 -7
  242. package/Libraries/Image/ImageInjection.js +2 -1
  243. package/Libraries/Image/ImageProps.js +88 -5
  244. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  245. package/Libraries/Image/ImageSource.d.ts +76 -0
  246. package/Libraries/Image/ImageSourceUtils.js +80 -0
  247. package/Libraries/Image/ImageUtils.js +21 -0
  248. package/Libraries/Image/ImageViewNativeComponent.js +8 -5
  249. package/Libraries/Image/NativeImageEditor.js +1 -0
  250. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  251. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  252. package/Libraries/Image/NativeImageLoaderWin32.js +1 -0
  253. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  254. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  255. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
  256. package/Libraries/Image/nativeImageSource.js +2 -2
  257. package/Libraries/Image/resolveAssetSource.js +5 -5
  258. package/Libraries/Inspector/BorderBox.js +1 -1
  259. package/Libraries/Inspector/BoxInspector.js +3 -4
  260. package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
  261. package/Libraries/Inspector/ElementBox.js +4 -5
  262. package/Libraries/Inspector/ElementProperties.js +10 -11
  263. package/Libraries/Inspector/Inspector.js +22 -108
  264. package/Libraries/Inspector/Inspector.win32.js +23 -109
  265. package/Libraries/Inspector/InspectorOverlay.js +5 -5
  266. package/Libraries/Inspector/InspectorOverlay.win32.js +5 -5
  267. package/Libraries/Inspector/InspectorPanel.js +12 -10
  268. package/Libraries/Inspector/NetworkOverlay.js +7 -3
  269. package/Libraries/Inspector/PerformanceOverlay.js +3 -3
  270. package/Libraries/Inspector/StyleInspector.js +2 -2
  271. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
  272. package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
  273. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  274. package/Libraries/Interaction/InteractionManager.js +8 -8
  275. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  276. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  277. package/Libraries/Interaction/PanResponder.flow.js +257 -0
  278. package/Libraries/Interaction/PanResponder.js +4 -3
  279. package/Libraries/JSInspector/JSInspector.js +0 -3
  280. package/Libraries/JSInspector/NetworkAgent.js +3 -3
  281. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  282. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
  283. package/Libraries/Linking/Linking.d.ts +61 -0
  284. package/Libraries/Linking/Linking.js +3 -2
  285. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  286. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  287. package/Libraries/Lists/CellRenderMask.js +13 -3
  288. package/Libraries/Lists/ChildListCollection.js +72 -0
  289. package/Libraries/Lists/FillRateHelper.js +28 -17
  290. package/Libraries/Lists/FlatList.d.ts +292 -0
  291. package/Libraries/Lists/FlatList.js +70 -70
  292. package/Libraries/Lists/SectionList.d.ts +300 -0
  293. package/Libraries/Lists/SectionList.js +5 -5
  294. package/Libraries/Lists/SectionListModern.js +6 -6
  295. package/Libraries/Lists/StateSafePureComponent.js +85 -0
  296. package/Libraries/Lists/ViewabilityHelper.js +33 -12
  297. package/Libraries/Lists/VirtualizeUtils.js +17 -13
  298. package/Libraries/Lists/VirtualizedList.d.ts +317 -0
  299. package/Libraries/Lists/VirtualizedList.js +548 -890
  300. package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
  301. package/Libraries/Lists/VirtualizedListContext.js +7 -48
  302. package/Libraries/Lists/VirtualizedListProps.js +279 -0
  303. package/Libraries/Lists/VirtualizedSectionList.js +6 -3
  304. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  305. package/Libraries/LogBox/Data/LogBoxData.js +9 -8
  306. package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
  307. package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
  308. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
  309. package/Libraries/LogBox/LogBox.d.ts +28 -0
  310. package/Libraries/LogBox/LogBox.js +11 -11
  311. package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
  312. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  313. package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
  314. package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
  315. package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
  316. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
  317. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
  318. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
  319. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +6 -5
  320. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
  321. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
  322. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  323. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
  324. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
  325. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +5 -5
  326. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
  327. package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
  328. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
  329. package/Libraries/Modal/Modal.d.ts +104 -0
  330. package/Libraries/Modal/Modal.js +14 -14
  331. package/Libraries/Modal/NativeModalManager.js +1 -0
  332. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
  333. package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
  334. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
  335. package/Libraries/NativeComponent/BaseViewConfig.win32.js +8 -3
  336. package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
  337. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
  338. package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
  339. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  340. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
  341. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  342. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  343. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  344. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  345. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
  346. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  347. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  348. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  349. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  350. package/Libraries/Network/RCTNetworking.android.js +4 -3
  351. package/Libraries/Network/RCTNetworking.ios.js +3 -2
  352. package/Libraries/Network/RCTNetworking.win32.js +1 -0
  353. package/Libraries/Network/convertRequestBody.js +1 -2
  354. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
  355. package/Libraries/NewAppScreen/components/Header.js +6 -2
  356. package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
  357. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
  358. package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
  359. package/Libraries/NewAppScreen/index.js +1 -1
  360. package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
  361. package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
  362. package/Libraries/Performance/Systrace.d.ts +66 -0
  363. package/Libraries/Performance/Systrace.js +110 -195
  364. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  365. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
  366. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
  367. package/Libraries/Pressability/Pressability.js +12 -10
  368. package/Libraries/Pressability/Pressability.win32.js +9 -7
  369. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  370. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  371. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
  372. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
  373. package/Libraries/ReactNative/AppContainer.js +17 -7
  374. package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
  375. package/Libraries/ReactNative/AppRegistry.js +11 -14
  376. package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
  377. package/Libraries/ReactNative/FabricUIManager.js +3 -3
  378. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  379. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  380. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  381. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  382. package/Libraries/ReactNative/PaperUIManager.js +2 -2
  383. package/Libraries/ReactNative/PaperUIManager.win32.js +1 -1
  384. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
  385. package/Libraries/ReactNative/RendererImplementation.js +112 -0
  386. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  387. package/Libraries/ReactNative/RendererProxy.js +26 -0
  388. package/Libraries/ReactNative/RootTag.js +0 -1
  389. package/Libraries/ReactNative/UIManager.d.ts +157 -0
  390. package/Libraries/ReactNative/UIManager.js +1 -1
  391. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
  392. package/Libraries/ReactNative/renderApplication.js +38 -20
  393. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  394. package/Libraries/ReactNative/requireNativeComponent.js +2 -2
  395. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
  396. package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
  397. package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
  398. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
  399. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
  400. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
  401. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
  402. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
  403. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  404. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  405. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  406. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
  407. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
  408. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
  409. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  410. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  411. package/Libraries/Settings/Settings.d.ts +18 -0
  412. package/Libraries/Share/NativeShareModule.js +1 -0
  413. package/Libraries/Share/Share.d.ts +80 -0
  414. package/Libraries/Share/Share.js +7 -5
  415. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  416. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  417. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  418. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  419. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
  420. package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
  421. package/Libraries/StyleSheet/StyleSheet.js +15 -11
  422. package/Libraries/StyleSheet/StyleSheet.win32.js +16 -12
  423. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
  424. package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
  425. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
  426. package/Libraries/StyleSheet/normalizeColor.js +3 -3
  427. package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
  428. package/Libraries/StyleSheet/processAspectRatio.js +53 -0
  429. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  430. package/Libraries/StyleSheet/processColor.js +3 -4
  431. package/Libraries/StyleSheet/processColorArray.js +1 -0
  432. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  433. package/Libraries/StyleSheet/processTransform.js +114 -105
  434. package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
  435. package/Libraries/Text/Text.d.ts +209 -0
  436. package/Libraries/Text/Text.js +94 -12
  437. package/Libraries/Text/TextNativeComponent.js +49 -41
  438. package/Libraries/Text/TextNativeComponent.win32.js +67 -48
  439. package/Libraries/Text/TextProps.js +64 -7
  440. package/Libraries/{Components/MaskedView/MaskedViewIOS.win32.js → TurboModule/RCTExport.d.ts} +3 -4
  441. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
  442. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
  443. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  444. package/Libraries/Types/CoreEventTypes.d.ts +263 -0
  445. package/Libraries/Types/CoreEventTypes.js +2 -1
  446. package/Libraries/Types/CoreEventTypes.win32.js +2 -1
  447. package/Libraries/Utilities/AcessibilityMapping.js +154 -0
  448. package/Libraries/Utilities/Appearance.d.ts +43 -0
  449. package/Libraries/Utilities/Appearance.js +3 -3
  450. package/Libraries/Utilities/BackHandler.android.js +3 -5
  451. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  452. package/Libraries/Utilities/BackHandler.win32.js +3 -5
  453. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  454. package/Libraries/Utilities/DevSettings.js +4 -2
  455. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  456. package/Libraries/Utilities/Dimensions.js +2 -2
  457. package/Libraries/Utilities/Dimensions.win32.js +2 -2
  458. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
  459. package/Libraries/Utilities/HMRClient.js +23 -8
  460. package/Libraries/Utilities/LoadingView.ios.js +1 -1
  461. package/Libraries/Utilities/NativeAppearance.js +1 -0
  462. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  463. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
  464. package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
  465. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  466. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  467. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  468. package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
  469. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  470. package/Libraries/Utilities/Platform.android.js +11 -5
  471. package/Libraries/Utilities/Platform.d.ts +102 -0
  472. package/Libraries/Utilities/Platform.ios.js +12 -5
  473. package/Libraries/Utilities/Platform.win32.js +11 -5
  474. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  475. package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
  476. package/Libraries/Utilities/codegenNativeCommands.js +1 -10
  477. package/Libraries/Utilities/codegenNativeComponent.js +4 -1
  478. package/Libraries/Utilities/createPerformanceLogger.js +7 -8
  479. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  480. package/Libraries/Utilities/groupByEveryN.js +1 -1
  481. package/Libraries/Utilities/stringifySafe.js +3 -1
  482. package/Libraries/Utilities/useColorScheme.js +3 -2
  483. package/Libraries/Utilities/useRefEffect.js +1 -1
  484. package/Libraries/Vibration/NativeVibration.js +1 -0
  485. package/Libraries/Vibration/Vibration.d.ts +43 -0
  486. package/Libraries/Vibration/Vibration.js +1 -0
  487. package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
  488. package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
  489. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  490. package/Libraries/WebSocket/WebSocket.js +11 -3
  491. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  492. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  493. package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
  494. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
  495. package/Libraries/__tests__/ButtonWin32-test.js +16 -0
  496. package/Libraries/platform-types.d.ts +25 -0
  497. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  498. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  499. package/babel.config.js +3 -0
  500. package/flow/jest.js +2 -2
  501. package/flow-typed/npm/{react-dom_v16.x.x.js → react-dom_v17.x.x.js} +58 -31
  502. package/flow-typed/npm/yargs_v17.x.x.js +341 -0
  503. package/index.js +89 -55
  504. package/index.win32.js +89 -55
  505. package/interface.js +8 -0
  506. package/jest/react-native-env.js +18 -0
  507. package/jest/renderer.js +2 -2
  508. package/jest/setup.js +7 -9
  509. package/jest.config.js +9 -2
  510. package/overrides.json +40 -101
  511. package/package.json +34 -33
  512. package/src/Libraries/Components/TextInput/TextInput.win32.tsx +2 -1
  513. package/src/Libraries/Components/Touchable/Tests/TouchableWin32Test.tsx +2 -2
  514. package/src/Libraries/Components/Touchable/TouchableWin32.Props.tsx +2 -1
  515. package/src/Libraries/Components/Touchable/TouchableWin32.tsx +1 -1
  516. package/src/Libraries/Components/View/ViewWin32.Props.ts +10 -1
  517. package/src/Libraries/__tests__/__snapshots__/ButtonWin32-test.js.snap +22 -0
  518. package/src/Libraries/platform-types.d.ts +25 -0
  519. package/types/index.d.ts +215 -0
  520. package/IntegrationTests/AsyncStorageTest.js +0 -261
  521. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  522. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  523. package/Libraries/Core/setUpSystrace.js +0 -21
  524. package/Libraries/Image/ImagePickerIOS.js +0 -103
  525. package/Libraries/Image/NativeImagePickerIOS.js +0 -38
  526. package/Libraries/Lists/VirtualizedList.win32.js +0 -9
  527. package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
  528. package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
  529. package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
  530. package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
  531. package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
  532. package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
  533. package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
  534. package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
  535. package/Libraries/Storage/AsyncStorage.js +0 -385
  536. package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
  537. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
  538. package/Libraries/Utilities/JSDevSupportModule.js +0 -37
  539. package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
  540. package/rntypes/BatchedBridge.d.ts +0 -23
  541. package/rntypes/Devtools.d.ts +0 -20
  542. package/rntypes/LaunchScreen.d.ts +0 -9
  543. package/rntypes/globals.d.ts +0 -497
  544. package/rntypes/index.d.ts +0 -9754
  545. package/rntypes/legacy-properties.d.ts +0 -238
  546. package/src/Libraries/Lists/__tests__/__snapshots__/FlatList-test.js.snap +0 -427
  547. package/src/Libraries/Lists/__tests__/__snapshots__/SectionList-test.js.snap +0 -391
  548. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedList-test.js.snap +0 -4565
  549. package/src/Libraries/Lists/__tests__/__snapshots__/VirtualizedSectionList-test.js.snap +0 -1153
  550. package/src/rntypes/BatchedBridge.d.ts +0 -23
  551. package/src/rntypes/Devtools.d.ts +0 -20
  552. package/src/rntypes/LaunchScreen.d.ts +0 -9
  553. package/src/rntypes/globals.d.ts +0 -497
  554. package/src/rntypes/index.d.ts +0 -9754
  555. package/src/rntypes/legacy-properties.d.ts +0 -238
  556. package/src/typings-index.ts +0 -37
  557. package/typings-index.d.ts +0 -23
  558. package/typings-index.js +0 -47
  559. package/typings-index.js.map +0 -1
@@ -8,12 +8,13 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
+ import type {EventSubscription} from '../../vendor/emitter/EventEmitter';
12
+
11
13
  import NativeEventEmitter from '../../EventEmitter/NativeEventEmitter';
12
14
  import LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';
13
15
  import dismissKeyboard from '../../Utilities/dismissKeyboard';
14
16
  import Platform from '../../Utilities/Platform';
15
17
  import NativeKeyboardObserver from './NativeKeyboardObserver';
16
- import type {EventSubscription} from '../../vendor/emitter/EventEmitter';
17
18
 
18
19
  export type KeyboardEventName = $Keys<KeyboardEventDefinitions>;
19
20
 
@@ -24,7 +25,7 @@ export type KeyboardEventEasing =
24
25
  | 'linear'
25
26
  | 'keyboard';
26
27
 
27
- export type KeyboardEventCoordinates = $ReadOnly<{|
28
+ export type KeyboardMetrics = $ReadOnly<{|
28
29
  screenX: number,
29
30
  screenY: number,
30
31
  width: number,
@@ -36,7 +37,7 @@ export type KeyboardEvent = AndroidKeyboardEvent | IOSKeyboardEvent;
36
37
  type BaseKeyboardEvent = {|
37
38
  duration: number,
38
39
  easing: KeyboardEventEasing,
39
- endCoordinates: KeyboardEventCoordinates,
40
+ endCoordinates: KeyboardMetrics,
40
41
  |};
41
42
 
42
43
  export type AndroidKeyboardEvent = $ReadOnly<{|
@@ -47,7 +48,7 @@ export type AndroidKeyboardEvent = $ReadOnly<{|
47
48
 
48
49
  export type IOSKeyboardEvent = $ReadOnly<{|
49
50
  ...BaseKeyboardEvent,
50
- startCoordinates: KeyboardEventCoordinates,
51
+ startCoordinates: KeyboardMetrics,
51
52
  isEventFromThisApp: boolean,
52
53
  |}>;
53
54
 
@@ -103,6 +104,8 @@ type KeyboardEventDefinitions = {
103
104
  */
104
105
 
105
106
  class Keyboard {
107
+ _currentlyShowing: ?KeyboardEvent;
108
+
106
109
  _emitter: NativeEventEmitter<KeyboardEventDefinitions> =
107
110
  new NativeEventEmitter(
108
111
  // T88715063: NativeEventEmitter only used this parameter on iOS. Now it uses it on all platforms, so this code was modified automatically to preserve its behavior
@@ -110,6 +113,15 @@ class Keyboard {
110
113
  Platform.OS !== 'ios' ? null : NativeKeyboardObserver,
111
114
  );
112
115
 
116
+ constructor() {
117
+ this.addListener('keyboardDidShow', ev => {
118
+ this._currentlyShowing = ev;
119
+ });
120
+ this.addListener('keyboardDidHide', _ev => {
121
+ this._currentlyShowing = null;
122
+ });
123
+ }
124
+
113
125
  /**
114
126
  * The `addListener` function connects a JavaScript function to an identified native
115
127
  * keyboard notification event.
@@ -126,10 +138,11 @@ class Keyboard {
126
138
  * - `keyboardWillChangeFrame`
127
139
  * - `keyboardDidChangeFrame`
128
140
  *
129
- * Note that if you set `android:windowSoftInputMode` to `adjustResize` or `adjustNothing`,
130
- * only `keyboardDidShow` and `keyboardDidHide` events will be available on Android.
131
- * `keyboardWillShow` as well as `keyboardWillHide` are generally not available on Android
132
- * since there is no native corresponding event.
141
+ * Android versions prior to API 30 rely on observing layout changes when
142
+ * `android:windowSoftInputMode` is set to `adjustResize` or `adjustPan`.
143
+ *
144
+ * `keyboardWillShow` as well as `keyboardWillHide` are not available on Android since there is
145
+ * no native corresponding event.
133
146
  *
134
147
  * @param {function} callback function to be called when the event fires.
135
148
  */
@@ -157,6 +170,20 @@ class Keyboard {
157
170
  dismissKeyboard();
158
171
  }
159
172
 
173
+ /**
174
+ * Whether the keyboard is last known to be visible.
175
+ */
176
+ isVisible(): boolean {
177
+ return !!this._currentlyShowing;
178
+ }
179
+
180
+ /**
181
+ * Return the metrics of the soft-keyboard if visible.
182
+ */
183
+ metrics(): ?KeyboardMetrics {
184
+ return this._currentlyShowing?.endCoordinates;
185
+ }
186
+
160
187
  /**
161
188
  * Useful for syncing TextInput (or other keyboard accessory view) size of
162
189
  * position changes with keyboard movements.
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ */
9
+
10
+ import type * as React from 'react';
11
+ import {Constructor} from '../../../types/private/Utilities';
12
+ import {TimerMixin} from '../../../types/private/TimerMixin';
13
+ import {StyleProp} from '../../StyleSheet/StyleSheet';
14
+ import {ViewStyle} from '../../StyleSheet/StyleSheetTypes';
15
+ import {ViewProps} from '../View/ViewPropTypes';
16
+
17
+ /**
18
+ * It is a component to solve the common problem of views that need to move out of the way of the virtual keyboard.
19
+ * It can automatically adjust either its position or bottom padding based on the position of the keyboard.
20
+ */
21
+ declare class KeyboardAvoidingViewComponent extends React.Component<KeyboardAvoidingViewProps> {}
22
+ declare const KeyboardAvoidingViewBase: Constructor<TimerMixin> &
23
+ typeof KeyboardAvoidingViewComponent;
24
+ export class KeyboardAvoidingView extends KeyboardAvoidingViewBase {}
25
+
26
+ export interface KeyboardAvoidingViewProps extends ViewProps {
27
+ behavior?: 'height' | 'position' | 'padding' | undefined;
28
+
29
+ /**
30
+ * The style of the content container(View) when behavior is 'position'.
31
+ */
32
+ contentContainerStyle?: StyleProp<ViewStyle> | undefined;
33
+
34
+ /**
35
+ * This is the distance between the top of the user screen and the react native view,
36
+ * may be non-zero in some use cases.
37
+ */
38
+ keyboardVerticalOffset?: number | undefined;
39
+
40
+ /**
41
+ * Enables or disables the KeyboardAvoidingView.
42
+ *
43
+ * Default is true
44
+ */
45
+ enabled?: boolean | undefined;
46
+ }
@@ -8,21 +8,22 @@
8
8
  * @flow strict-local
9
9
  */
10
10
 
11
- import Keyboard from './Keyboard';
12
- import LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';
13
- import Platform from '../../Utilities/Platform';
14
- import * as React from 'react';
15
- import StyleSheet from '../../StyleSheet/StyleSheet';
16
- import View from '../View/View';
17
-
18
11
  import type {ViewStyleProp} from '../../StyleSheet/StyleSheet';
19
- import {type EventSubscription} from '../../vendor/emitter/EventEmitter';
20
12
  import type {
21
- ViewProps,
22
13
  ViewLayout,
23
14
  ViewLayoutEvent,
15
+ ViewProps,
24
16
  } from '../View/ViewPropTypes';
25
- import type {KeyboardEvent, KeyboardEventCoordinates} from './Keyboard';
17
+ import type {KeyboardEvent, KeyboardMetrics} from './Keyboard';
18
+
19
+ import LayoutAnimation from '../../LayoutAnimation/LayoutAnimation';
20
+ import StyleSheet from '../../StyleSheet/StyleSheet';
21
+ import Platform from '../../Utilities/Platform';
22
+ import {type EventSubscription} from '../../vendor/emitter/EventEmitter';
23
+ import AccessibilityInfo from '../AccessibilityInfo/AccessibilityInfo';
24
+ import View from '../View/View';
25
+ import Keyboard from './Keyboard';
26
+ import * as React from 'react';
26
27
 
27
28
  type Props = $ReadOnly<{|
28
29
  ...ViewProps,
@@ -71,15 +72,34 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
71
72
  this.viewRef = React.createRef();
72
73
  }
73
74
 
74
- _relativeKeyboardHeight(keyboardFrame: KeyboardEventCoordinates): number {
75
+ async _relativeKeyboardHeight(
76
+ keyboardFrame: KeyboardMetrics,
77
+ ): Promise<number> {
75
78
  const frame = this._frame;
76
79
  if (!frame || !keyboardFrame) {
77
80
  return 0;
78
81
  }
79
82
 
83
+ // On iOS when Prefer Cross-Fade Transitions is enabled, the keyboard position
84
+ // & height is reported differently (0 instead of Y position value matching height of frame)
85
+ if (
86
+ Platform.OS === 'ios' &&
87
+ keyboardFrame.screenY === 0 &&
88
+ (await AccessibilityInfo.prefersCrossFadeTransitions())
89
+ ) {
90
+ return 0;
91
+ }
92
+
80
93
  const keyboardY =
81
94
  keyboardFrame.screenY - (this.props.keyboardVerticalOffset ?? 0);
82
95
 
96
+ if (this.props.behavior === 'height') {
97
+ return Math.max(
98
+ this.state.bottom + frame.y + frame.height - keyboardY,
99
+ 0,
100
+ );
101
+ }
102
+
83
103
  // Calculate the displacement needed for the view such that it
84
104
  // no longer overlaps with the keyboard
85
105
  return Math.max(frame.y + frame.height - keyboardY, 0);
@@ -90,7 +110,7 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
90
110
  this._updateBottomIfNecessary();
91
111
  };
92
112
 
93
- _onLayout = (event: ViewLayoutEvent) => {
113
+ _onLayout = async (event: ViewLayoutEvent) => {
94
114
  const wasFrameNull = this._frame == null;
95
115
  this._frame = event.nativeEvent.layout;
96
116
  if (!this._initialFrameHeight) {
@@ -99,7 +119,7 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
99
119
  }
100
120
 
101
121
  if (wasFrameNull) {
102
- this._updateBottomIfNecessary();
122
+ await this._updateBottomIfNecessary();
103
123
  }
104
124
 
105
125
  if (this.props.onLayout) {
@@ -107,14 +127,14 @@ class KeyboardAvoidingView extends React.Component<Props, State> {
107
127
  }
108
128
  };
109
129
 
110
- _updateBottomIfNecessary = () => {
130
+ _updateBottomIfNecessary = async () => {
111
131
  if (this._keyboardEvent == null) {
112
132
  this.setState({bottom: 0});
113
133
  return;
114
134
  }
115
135
 
116
136
  const {duration, easing, endCoordinates} = this._keyboardEvent;
117
- const height = this._relativeKeyboardHeight(endCoordinates);
137
+ const height = await this._relativeKeyboardHeight(endCoordinates);
118
138
 
119
139
  if (this.state.bottom === height) {
120
140
  return;
@@ -9,6 +9,7 @@
9
9
  */
10
10
 
11
11
  import type {TurboModule} from '../../TurboModule/RCTExport';
12
+
12
13
  import * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';
13
14
 
14
15
  export interface Spec extends TurboModule {
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @format
8
+ */
9
+
10
+ import type * as React from 'react';
11
+ import {Insets} from '../../../types/public/Insets';
12
+ import {ColorValue, StyleProp} from '../../StyleSheet/StyleSheet';
13
+ import {ViewStyle} from '../../StyleSheet/StyleSheetTypes';
14
+ import {
15
+ GestureResponderEvent,
16
+ MouseEvent,
17
+ NativeSyntheticEvent,
18
+ TargetedEvent,
19
+ } from '../../Types/CoreEventTypes';
20
+ import {View} from '../View/View';
21
+ import {AccessibilityProps} from '../View/ViewAccessibility';
22
+ import {ViewProps} from '../View/ViewPropTypes';
23
+
24
+ export interface PressableStateCallbackType {
25
+ readonly pressed: boolean;
26
+ }
27
+
28
+ export interface PressableAndroidRippleConfig {
29
+ color?: null | ColorValue | undefined;
30
+ borderless?: null | boolean | undefined;
31
+ radius?: null | number | undefined;
32
+ foreground?: null | boolean | undefined;
33
+ }
34
+
35
+ export interface PressableProps
36
+ extends AccessibilityProps,
37
+ Omit<ViewProps, 'children' | 'style' | 'hitSlop'> {
38
+ /**
39
+ * Called when the hover is activated to provide visual feedback.
40
+ */
41
+ onHoverIn?: null | ((event: MouseEvent) => void) | undefined;
42
+
43
+ /**
44
+ * Called when the hover is deactivated to undo visual feedback.
45
+ */
46
+ onHoverOut?: null | ((event: MouseEvent) => void) | undefined;
47
+
48
+ /**
49
+ * Called when a single tap gesture is detected.
50
+ */
51
+ onPress?: null | ((event: GestureResponderEvent) => void) | undefined;
52
+
53
+ /**
54
+ * Called when a touch is engaged before `onPress`.
55
+ */
56
+ onPressIn?: null | ((event: GestureResponderEvent) => void) | undefined;
57
+
58
+ /**
59
+ * Called when a touch is released before `onPress`.
60
+ */
61
+ onPressOut?: null | ((event: GestureResponderEvent) => void) | undefined;
62
+
63
+ /**
64
+ * Called when a long-tap gesture is detected.
65
+ */
66
+ onLongPress?: null | ((event: GestureResponderEvent) => void) | undefined;
67
+
68
+ /**
69
+ * Called after the element loses focus.
70
+ * @platform macos windows
71
+ */
72
+ onBlur?:
73
+ | null
74
+ | ((event: NativeSyntheticEvent<TargetedEvent>) => void)
75
+ | undefined;
76
+
77
+ /**
78
+ * Called after the element is focused.
79
+ * @platform macos windows
80
+ */
81
+ onFocus?:
82
+ | null
83
+ | ((event: NativeSyntheticEvent<TargetedEvent>) => void)
84
+ | undefined;
85
+
86
+ /**
87
+ * Either children or a render prop that receives a boolean reflecting whether
88
+ * the component is currently pressed.
89
+ */
90
+ children?:
91
+ | React.ReactNode
92
+ | ((state: PressableStateCallbackType) => React.ReactNode)
93
+ | undefined;
94
+
95
+ /**
96
+ * Whether a press gesture can be interrupted by a parent gesture such as a
97
+ * scroll event. Defaults to true.
98
+ */
99
+ cancelable?: null | boolean | undefined;
100
+
101
+ /**
102
+ * Duration to wait after hover in before calling `onHoverIn`.
103
+ * @platform macos windows
104
+ */
105
+ delayHoverIn?: number | null | undefined;
106
+
107
+ /**
108
+ * Duration to wait after hover out before calling `onHoverOut`.
109
+ * @platform macos windows
110
+ */
111
+ delayHoverOut?: number | null | undefined;
112
+
113
+ /**
114
+ * Duration (in milliseconds) from `onPressIn` before `onLongPress` is called.
115
+ */
116
+ delayLongPress?: null | number | undefined;
117
+
118
+ /**
119
+ * Whether the press behavior is disabled.
120
+ */
121
+ disabled?: null | boolean | undefined;
122
+
123
+ /**
124
+ * Additional distance outside of this view in which a press is detected.
125
+ */
126
+ hitSlop?: null | Insets | number | undefined;
127
+
128
+ /**
129
+ * Additional distance outside of this view in which a touch is considered a
130
+ * press before `onPressOut` is triggered.
131
+ */
132
+ pressRetentionOffset?: null | Insets | number | undefined;
133
+
134
+ /**
135
+ * If true, doesn't play system sound on touch.
136
+ */
137
+ android_disableSound?: null | boolean | undefined;
138
+
139
+ /**
140
+ * Enables the Android ripple effect and configures its color.
141
+ */
142
+ android_ripple?: null | PressableAndroidRippleConfig | undefined;
143
+
144
+ /**
145
+ * Used only for documentation or testing (e.g. snapshot testing).
146
+ */
147
+ testOnly_pressed?: null | boolean | undefined;
148
+
149
+ /**
150
+ * Either view styles or a function that receives a boolean reflecting whether
151
+ * the component is currently pressed and returns view styles.
152
+ */
153
+ style?:
154
+ | StyleProp<ViewStyle>
155
+ | ((state: PressableStateCallbackType) => StyleProp<ViewStyle>)
156
+ | undefined;
157
+
158
+ /**
159
+ * Duration (in milliseconds) to wait after press down before calling onPressIn.
160
+ */
161
+ unstable_pressDelay?: number;
162
+ }
163
+
164
+ // TODO use React.AbstractComponent when available
165
+ export const Pressable: React.ForwardRefExoticComponent<
166
+ PressableProps & React.RefAttributes<View>
167
+ >;
@@ -8,11 +8,11 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import * as React from 'react';
12
- import {useMemo, useState, useRef, useImperativeHandle} from 'react';
13
- import useAndroidRippleForView, {
14
- type RippleConfig,
15
- } from './useAndroidRippleForView';
11
+ import type {
12
+ LayoutEvent,
13
+ MouseEvent,
14
+ PressEvent,
15
+ } from '../../Types/CoreEventTypes';
16
16
  import type {
17
17
  AccessibilityActionEvent,
18
18
  AccessibilityActionInfo,
@@ -20,15 +20,16 @@ import type {
20
20
  AccessibilityState,
21
21
  AccessibilityValue,
22
22
  } from '../View/ViewAccessibility';
23
+
23
24
  import {PressabilityDebugView} from '../../Pressability/PressabilityDebug';
24
25
  import usePressability from '../../Pressability/usePressability';
25
26
  import {type RectOrSize} from '../../StyleSheet/Rect';
26
- import type {
27
- LayoutEvent,
28
- MouseEvent,
29
- PressEvent,
30
- } from '../../Types/CoreEventTypes';
31
27
  import View from '../View/View';
28
+ import useAndroidRippleForView, {
29
+ type RippleConfig,
30
+ } from './useAndroidRippleForView';
31
+ import * as React from 'react';
32
+ import {useImperativeHandle, useMemo, useRef, useState} from 'react';
32
33
 
33
34
  type ViewStyleProp = $ElementType<React.ElementConfig<typeof View>, 'style'>;
34
35
 
@@ -50,8 +51,30 @@ type Props = $ReadOnly<{|
50
51
  accessibilityRole?: ?AccessibilityRole,
51
52
  accessibilityState?: ?AccessibilityState,
52
53
  accessibilityValue?: ?AccessibilityValue,
54
+ 'aria-valuemax'?: AccessibilityValue['max'],
55
+ 'aria-valuemin'?: AccessibilityValue['min'],
56
+ 'aria-valuenow'?: AccessibilityValue['now'],
57
+ 'aria-valuetext'?: AccessibilityValue['text'],
53
58
  accessibilityViewIsModal?: ?boolean,
59
+ 'aria-modal'?: ?boolean,
54
60
  accessible?: ?boolean,
61
+
62
+ /**
63
+ * alias for accessibilityState
64
+ *
65
+ * see https://reactnative.dev/docs/accessibility#accessibilitystate
66
+ */
67
+ 'aria-busy'?: ?boolean,
68
+ 'aria-checked'?: ?boolean | 'mixed',
69
+ 'aria-disabled'?: ?boolean,
70
+ 'aria-expanded'?: ?boolean,
71
+ 'aria-selected'?: ?boolean,
72
+ /**
73
+ * A value indicating whether the accessibility elements contained within
74
+ * this accessibility element are hidden.
75
+ */
76
+ 'aria-hidden'?: ?boolean,
77
+ 'aria-live'?: ?('polite' | 'assertive' | 'off'),
55
78
  focusable?: ?boolean,
56
79
  importantForAccessibility?: ?('auto' | 'yes' | 'no' | 'no-hide-descendants'),
57
80
  onAccessibilityAction?: ?(event: AccessibilityActionEvent) => mixed,
@@ -164,6 +187,11 @@ type Props = $ReadOnly<{|
164
187
  * Duration to wait after press down before calling `onPressIn`.
165
188
  */
166
189
  unstable_pressDelay?: ?number,
190
+ /**
191
+ * Web to Native Accessibilty props
192
+ * https://github.com/facebook/react-native/issues/34424
193
+ */
194
+ 'aria-label'?: ?string,
167
195
  |}>;
168
196
 
169
197
  /**
@@ -175,8 +203,16 @@ type Props = $ReadOnly<{|
175
203
  function Pressable(props: Props, forwardedRef): React.Node {
176
204
  const {
177
205
  accessible,
206
+ accessibilityState,
207
+ 'aria-live': ariaLive,
178
208
  android_disableSound,
179
209
  android_ripple,
210
+ 'aria-busy': ariaBusy,
211
+ 'aria-checked': ariaChecked,
212
+ 'aria-disabled': ariaDisabled,
213
+ 'aria-expanded': ariaExpanded,
214
+ 'aria-label': ariaLabel,
215
+ 'aria-selected': ariaSelected,
180
216
  cancelable,
181
217
  children,
182
218
  delayHoverIn,
@@ -205,17 +241,39 @@ function Pressable(props: Props, forwardedRef): React.Node {
205
241
 
206
242
  const [pressed, setPressed] = usePressState(testOnly_pressed === true);
207
243
 
208
- const accessibilityState =
209
- disabled != null
210
- ? {...props.accessibilityState, disabled}
211
- : props.accessibilityState;
244
+ let _accessibilityState = {
245
+ busy: ariaBusy ?? accessibilityState?.busy,
246
+ checked: ariaChecked ?? accessibilityState?.checked,
247
+ disabled: ariaDisabled ?? accessibilityState?.disabled,
248
+ expanded: ariaExpanded ?? accessibilityState?.expanded,
249
+ selected: ariaSelected ?? accessibilityState?.selected,
250
+ };
251
+
252
+ _accessibilityState =
253
+ disabled != null ? {..._accessibilityState, disabled} : _accessibilityState;
212
254
 
255
+ const accessibilityValue = {
256
+ max: props['aria-valuemax'] ?? props.accessibilityValue?.max,
257
+ min: props['aria-valuemin'] ?? props.accessibilityValue?.min,
258
+ now: props['aria-valuenow'] ?? props.accessibilityValue?.now,
259
+ text: props['aria-valuetext'] ?? props.accessibilityValue?.text,
260
+ };
261
+
262
+ const accessibilityLiveRegion =
263
+ ariaLive === 'off' ? 'none' : ariaLive ?? props.accessibilityLiveRegion;
264
+
265
+ const accessibilityLabel = ariaLabel ?? props.accessibilityLabel;
213
266
  const restPropsWithDefaults: React.ElementConfig<typeof View> = {
214
267
  ...restProps,
215
268
  ...android_rippleConfig?.viewProps,
216
269
  accessible: accessible !== false,
217
- accessibilityState,
270
+ accessibilityViewIsModal:
271
+ restProps['aria-modal'] ?? restProps.accessibilityViewIsModal,
272
+ accessibilityLiveRegion,
273
+ accessibilityLabel,
274
+ accessibilityState: _accessibilityState,
218
275
  focusable: focusable !== false,
276
+ accessibilityValue,
219
277
  hitSlop,
220
278
  };
221
279