@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
@@ -49,13 +49,18 @@ export default function splitLayoutProps(props: ?____ViewStyle_Internal): {
49
49
  case 'bottom':
50
50
  case 'top':
51
51
  case 'transform':
52
+ case 'rowGap':
53
+ case 'columnGap':
54
+ case 'gap':
52
55
  // $FlowFixMe[cannot-write]
53
56
  // $FlowFixMe[incompatible-use]
57
+ // $FlowFixMe[prop-missing]
54
58
  outer[prop] = props[prop];
55
59
  break;
56
60
  default:
57
61
  // $FlowFixMe[cannot-write]
58
62
  // $FlowFixMe[incompatible-use]
63
+ // $FlowFixMe[prop-missing]
59
64
  inner[prop] = props[prop];
60
65
  break;
61
66
  }
@@ -0,0 +1,209 @@
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 {AccessibilityProps} from '../Components/View/ViewAccessibility';
13
+ import {NativeMethods} from '../../types/public/ReactNativeTypes';
14
+ import {ColorValue, StyleProp} from '../StyleSheet/StyleSheet';
15
+ import {TextStyle} from '../StyleSheet/StyleSheetTypes';
16
+ import {
17
+ GestureResponderEvent,
18
+ LayoutChangeEvent,
19
+ NativeSyntheticEvent,
20
+ TextLayoutEventData,
21
+ } from '../Types/CoreEventTypes';
22
+
23
+ export interface TextPropsIOS {
24
+ /**
25
+ * Specifies whether font should be scaled down automatically to fit given style constraints.
26
+ */
27
+ adjustsFontSizeToFit?: boolean | undefined;
28
+
29
+ /**
30
+ * The Dynamic Text scale ramp to apply to this element on iOS.
31
+ */
32
+ dynamicTypeRamp?:
33
+ | 'caption2'
34
+ | 'caption1'
35
+ | 'footnote'
36
+ | 'subheadline'
37
+ | 'callout'
38
+ | 'body'
39
+ | 'headline'
40
+ | 'title3'
41
+ | 'title2'
42
+ | 'title1'
43
+ | 'largeTitle'
44
+ | undefined;
45
+
46
+ /**
47
+ * Specifies smallest possible scale a font can reach when adjustsFontSizeToFit is enabled. (values 0.01-1.0).
48
+ */
49
+ minimumFontScale?: number | undefined;
50
+
51
+ /**
52
+ * When `true`, no visual change is made when text is pressed down. By
53
+ * default, a gray oval highlights the text on press down.
54
+ */
55
+ suppressHighlighting?: boolean | undefined;
56
+ }
57
+
58
+ export interface TextPropsAndroid {
59
+ /**
60
+ * Specifies the disabled state of the text view for testing purposes.
61
+ */
62
+ disabled?: boolean | undefined;
63
+
64
+ /**
65
+ * Lets the user select text, to use the native copy and paste functionality.
66
+ */
67
+ selectable?: boolean | undefined;
68
+
69
+ /**
70
+ * The highlight color of the text.
71
+ */
72
+ selectionColor?: ColorValue | undefined;
73
+
74
+ /**
75
+ * Set text break strategy on Android API Level 23+
76
+ * default is `highQuality`.
77
+ */
78
+ textBreakStrategy?: 'simple' | 'highQuality' | 'balanced' | undefined;
79
+
80
+ /**
81
+ * Determines the types of data converted to clickable URLs in the text element.
82
+ * By default no data types are detected.
83
+ */
84
+ dataDetectorType?:
85
+ | null
86
+ | 'phoneNumber'
87
+ | 'link'
88
+ | 'email'
89
+ | 'none'
90
+ | 'all'
91
+ | undefined;
92
+
93
+ /**
94
+ * Hyphenation strategy
95
+ */
96
+ android_hyphenationFrequency?: 'normal' | 'none' | 'full' | undefined;
97
+ }
98
+
99
+ // https://reactnative.dev/docs/text#props
100
+ export interface TextProps
101
+ extends TextPropsIOS,
102
+ TextPropsAndroid,
103
+ AccessibilityProps {
104
+ /**
105
+ * Specifies whether fonts should scale to respect Text Size accessibility settings.
106
+ * The default is `true`.
107
+ */
108
+ allowFontScaling?: boolean | undefined;
109
+
110
+ children?: React.ReactNode;
111
+
112
+ /**
113
+ * This can be one of the following values:
114
+ *
115
+ * - `head` - The line is displayed so that the end fits in the container and the missing text
116
+ * at the beginning of the line is indicated by an ellipsis glyph. e.g., "...wxyz"
117
+ * - `middle` - The line is displayed so that the beginning and end fit in the container and the
118
+ * missing text in the middle is indicated by an ellipsis glyph. "ab...yz"
119
+ * - `tail` - The line is displayed so that the beginning fits in the container and the
120
+ * missing text at the end of the line is indicated by an ellipsis glyph. e.g., "abcd..."
121
+ * - `clip` - Lines are not drawn past the edge of the text container.
122
+ *
123
+ * The default is `tail`.
124
+ *
125
+ * `numberOfLines` must be set in conjunction with this prop.
126
+ *
127
+ * > `clip` is working only for iOS
128
+ */
129
+ ellipsizeMode?: 'head' | 'middle' | 'tail' | 'clip' | undefined;
130
+
131
+ /**
132
+ * Used to reference react managed views from native code.
133
+ */
134
+ id?: string | undefined;
135
+
136
+ /**
137
+ * Line Break mode. Works only with numberOfLines.
138
+ * clip is working only for iOS
139
+ */
140
+ lineBreakMode?: 'head' | 'middle' | 'tail' | 'clip' | undefined;
141
+
142
+ /**
143
+ * Used to truncate the text with an ellipsis after computing the text
144
+ * layout, including line wrapping, such that the total number of lines
145
+ * does not exceed this number.
146
+ *
147
+ * This prop is commonly used with `ellipsizeMode`.
148
+ */
149
+ numberOfLines?: number | undefined;
150
+
151
+ /**
152
+ * Invoked on mount and layout changes with
153
+ *
154
+ * {nativeEvent: { layout: {x, y, width, height}}}.
155
+ */
156
+ onLayout?: ((event: LayoutChangeEvent) => void) | undefined;
157
+
158
+ /**
159
+ * Invoked on Text layout
160
+ */
161
+ onTextLayout?:
162
+ | ((event: NativeSyntheticEvent<TextLayoutEventData>) => void)
163
+ | undefined;
164
+
165
+ /**
166
+ * This function is called on press.
167
+ * Text intrinsically supports press handling with a default highlight state (which can be disabled with suppressHighlighting).
168
+ */
169
+ onPress?: ((event: GestureResponderEvent) => void) | undefined;
170
+
171
+ onPressIn?: ((event: GestureResponderEvent) => void) | undefined;
172
+ onPressOut?: ((event: GestureResponderEvent) => void) | undefined;
173
+
174
+ /**
175
+ * This function is called on long press.
176
+ * e.g., `onLongPress={this.increaseSize}>``
177
+ */
178
+ onLongPress?: ((event: GestureResponderEvent) => void) | undefined;
179
+
180
+ /**
181
+ * @see https://reactnative.dev/docs/text#style
182
+ */
183
+ style?: StyleProp<TextStyle> | undefined;
184
+
185
+ /**
186
+ * Used to locate this view in end-to-end tests.
187
+ */
188
+ testID?: string | undefined;
189
+
190
+ /**
191
+ * Used to reference react managed views from native code.
192
+ */
193
+ nativeID?: string | undefined;
194
+
195
+ /**
196
+ * Specifies largest possible scale a font can reach when allowFontScaling is enabled. Possible values:
197
+ * - null/undefined (default): inherit from the parent node or the global default (0)
198
+ * - 0: no max, ignore parent/global default
199
+ * - >= 1: sets the maxFontSizeMultiplier of this node to this value
200
+ */
201
+ maxFontSizeMultiplier?: number | null | undefined;
202
+ }
203
+
204
+ /**
205
+ * A React component for displaying text which supports nesting, styling, and touch handling.
206
+ */
207
+ declare class TextComponent extends React.Component<TextProps> {}
208
+ declare const TextBase: Constructor<NativeMethods> & typeof TextComponent;
209
+ export class Text extends TextBase {}
@@ -10,11 +10,13 @@
10
10
 
11
11
  import type {PressEvent} from '../Types/CoreEventTypes';
12
12
 
13
- import Platform from '../Utilities/Platform';
14
13
  import * as PressabilityDebug from '../Pressability/PressabilityDebug';
15
14
  import usePressability from '../Pressability/usePressability';
16
- import StyleSheet from '../StyleSheet/StyleSheet';
15
+ import flattenStyle from '../StyleSheet/flattenStyle';
17
16
  import processColor from '../StyleSheet/processColor';
17
+ import StyleSheet from '../StyleSheet/StyleSheet';
18
+ import {getAccessibilityRoleFromRole} from '../Utilities/AcessibilityMapping';
19
+ import Platform from '../Utilities/Platform';
18
20
  import TextAncestor from './TextAncestor';
19
21
  import {NativeText, NativeVirtualText} from './TextNativeComponent';
20
22
  import {type TextProps} from './TextProps';
@@ -32,8 +34,18 @@ const Text: React.AbstractComponent<
32
34
  > = React.forwardRef((props: TextProps, forwardedRef) => {
33
35
  const {
34
36
  accessible,
37
+ accessibilityLabel,
38
+ accessibilityRole,
35
39
  allowFontScaling,
40
+ 'aria-busy': ariaBusy,
41
+ 'aria-checked': ariaChecked,
42
+ 'aria-disabled': ariaDisabled,
43
+ 'aria-expanded': ariaExpanded,
44
+ 'aria-label': ariaLabel,
45
+ 'aria-selected': ariaSelected,
36
46
  ellipsizeMode,
47
+ id,
48
+ nativeID,
37
49
  onLongPress,
38
50
  onPress,
39
51
  onPressIn,
@@ -45,20 +57,30 @@ const Text: React.AbstractComponent<
45
57
  onResponderTerminationRequest,
46
58
  onStartShouldSetResponder,
47
59
  pressRetentionOffset,
60
+ role,
48
61
  suppressHighlighting,
49
62
  ...restProps
50
63
  } = props;
51
64
 
52
65
  const [isHighlighted, setHighlighted] = useState(false);
53
66
 
67
+ const _accessibilityState = {
68
+ busy: ariaBusy ?? props.accessibilityState?.busy,
69
+ checked: ariaChecked ?? props.accessibilityState?.checked,
70
+ disabled: ariaDisabled ?? props.accessibilityState?.disabled,
71
+ expanded: ariaExpanded ?? props.accessibilityState?.expanded,
72
+ selected: ariaSelected ?? props.accessibilityState?.selected,
73
+ };
74
+
54
75
  const _disabled =
55
76
  restProps.disabled != null
56
77
  ? restProps.disabled
57
- : props.accessibilityState?.disabled;
58
- const _accessibilityState =
59
- _disabled !== props.accessibilityState?.disabled
60
- ? {...props.accessibilityState, disabled: _disabled}
61
- : props.accessibilityState;
78
+ : _accessibilityState?.disabled;
79
+
80
+ const nativeTextAccessibilityState =
81
+ _disabled !== _accessibilityState?.disabled
82
+ ? {..._accessibilityState, disabled: _disabled}
83
+ : _accessibilityState;
62
84
 
63
85
  const isPressable =
64
86
  (onPress != null ||
@@ -152,7 +174,20 @@ const Text: React.AbstractComponent<
152
174
  ? null
153
175
  : processColor(restProps.selectionColor);
154
176
 
155
- let style = restProps.style;
177
+ let style = flattenStyle(restProps.style);
178
+
179
+ let _selectable = restProps.selectable;
180
+ if (style?.userSelect != null) {
181
+ _selectable = userSelectToSelectableMap[style.userSelect];
182
+ }
183
+
184
+ if (style?.verticalAlign != null) {
185
+ style = StyleSheet.compose(style, {
186
+ textAlignVertical:
187
+ verticalAlignToTextAlignVerticalMap[style.verticalAlign],
188
+ });
189
+ }
190
+
156
191
  if (__DEV__) {
157
192
  if (PressabilityDebug.isEnabled() && onPress != null) {
158
193
  style = StyleSheet.compose(restProps.style, {
@@ -176,15 +211,31 @@ const Text: React.AbstractComponent<
176
211
  default: accessible,
177
212
  });
178
213
 
214
+ let flattenedStyle = flattenStyle(style);
215
+
216
+ if (typeof flattenedStyle?.fontWeight === 'number') {
217
+ flattenedStyle.fontWeight = flattenedStyle?.fontWeight.toString();
218
+ }
219
+
220
+ const _hasOnPressOrOnLongPress =
221
+ props.onPress != null || props.onLongPress != null;
222
+
179
223
  return hasTextAncestor ? (
180
224
  <NativeVirtualText
181
225
  {...restProps}
226
+ accessibilityState={_accessibilityState}
182
227
  {...eventHandlersForText}
228
+ accessibilityLabel={ariaLabel ?? accessibilityLabel}
229
+ accessibilityRole={
230
+ role ? getAccessibilityRoleFromRole(role) : accessibilityRole
231
+ }
183
232
  isHighlighted={isHighlighted}
184
233
  isPressable={isPressable}
234
+ selectable={_selectable}
235
+ nativeID={id ?? nativeID}
185
236
  numberOfLines={numberOfLines}
186
237
  selectionColor={selectionColor}
187
- style={style}
238
+ style={flattenedStyle}
188
239
  ref={forwardedRef}
189
240
  />
190
241
  ) : (
@@ -193,14 +244,24 @@ const Text: React.AbstractComponent<
193
244
  {...restProps}
194
245
  {...eventHandlersForText}
195
246
  disabled={_disabled}
196
- accessible={_accessible}
197
- accessibilityState={_accessibilityState}
247
+ selectable={_selectable}
248
+ accessible={
249
+ accessible == null && Platform.OS === 'android'
250
+ ? _hasOnPressOrOnLongPress
251
+ : _accessible
252
+ }
253
+ accessibilityLabel={ariaLabel ?? accessibilityLabel}
254
+ accessibilityState={nativeTextAccessibilityState}
255
+ accessibilityRole={
256
+ role ? getAccessibilityRoleFromRole(role) : accessibilityRole
257
+ }
198
258
  allowFontScaling={allowFontScaling !== false}
199
259
  ellipsizeMode={ellipsizeMode ?? 'tail'}
200
260
  isHighlighted={isHighlighted}
261
+ nativeID={id ?? nativeID}
201
262
  numberOfLines={numberOfLines}
202
263
  selectionColor={selectionColor}
203
- style={style}
264
+ style={flattenedStyle}
204
265
  ref={forwardedRef}
205
266
  />
206
267
  </TextAncestor.Provider>
@@ -209,6 +270,12 @@ const Text: React.AbstractComponent<
209
270
 
210
271
  Text.displayName = 'Text';
211
272
 
273
+ /**
274
+ * Switch to `deprecated-react-native-prop-types` for compatibility with future
275
+ * releases. This is deprecated and will be removed in the future.
276
+ */
277
+ Text.propTypes = require('deprecated-react-native-prop-types').TextPropTypes;
278
+
212
279
  /**
213
280
  * Returns false until the first time `newValue` is true, after which this will
214
281
  * always return true. This is necessary to lazily initialize `Pressability` so
@@ -222,4 +289,19 @@ function useLazyInitialization(newValue: boolean): boolean {
222
289
  return oldValue;
223
290
  }
224
291
 
292
+ const userSelectToSelectableMap = {
293
+ auto: true,
294
+ text: true,
295
+ none: false,
296
+ contain: true,
297
+ all: true,
298
+ };
299
+
300
+ const verticalAlignToTextAlignVerticalMap = {
301
+ auto: 'auto',
302
+ top: 'top',
303
+ bottom: 'bottom',
304
+ middle: 'center',
305
+ };
306
+
225
307
  module.exports = Text;
@@ -8,13 +8,13 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import ReactNativeViewAttributes from '../Components/View/ReactNativeViewAttributes';
11
+ import {createViewConfig} from '../NativeComponent/ViewConfig';
12
12
  import UIManager from '../ReactNative/UIManager';
13
- import {type HostComponent} from '../Renderer/shims/ReactNativeTypes';
14
13
  import createReactNativeComponentClass from '../Renderer/shims/createReactNativeComponentClass';
14
+ import {type HostComponent} from '../Renderer/shims/ReactNativeTypes';
15
15
  import {type ProcessedColorValue} from '../StyleSheet/processColor';
16
- import {type TextProps} from './TextProps';
17
16
  import {type PressEvent} from '../Types/CoreEventTypes';
17
+ import {type TextProps} from './TextProps';
18
18
 
19
19
  type NativeTextProps = $ReadOnly<{
20
20
  ...TextProps,
@@ -27,47 +27,55 @@ type NativeTextProps = $ReadOnly<{
27
27
  isPressable?: ?boolean,
28
28
  }>;
29
29
 
30
- export const NativeText: HostComponent<NativeTextProps> =
31
- (createReactNativeComponentClass('RCTText', () => ({
32
- validAttributes: {
33
- ...ReactNativeViewAttributes.UIView,
34
- isHighlighted: true,
35
- isPressable: true,
36
- numberOfLines: true,
37
- ellipsizeMode: true,
38
- allowFontScaling: true,
39
- maxFontSizeMultiplier: true,
40
- disabled: true,
41
- selectable: true,
42
- selectionColor: true,
43
- adjustsFontSizeToFit: true,
44
- minimumFontScale: true,
45
- textBreakStrategy: true,
46
- onTextLayout: true,
47
- onInlineViewLayout: true,
48
- dataDetectorType: true,
49
- android_hyphenationFrequency: true,
30
+ const textViewConfig = {
31
+ validAttributes: {
32
+ isHighlighted: true,
33
+ isPressable: true,
34
+ numberOfLines: true,
35
+ ellipsizeMode: true,
36
+ allowFontScaling: true,
37
+ dynamicTypeRamp: true,
38
+ maxFontSizeMultiplier: true,
39
+ disabled: true,
40
+ selectable: true,
41
+ selectionColor: true,
42
+ adjustsFontSizeToFit: true,
43
+ minimumFontScale: true,
44
+ textBreakStrategy: true,
45
+ onTextLayout: true,
46
+ onInlineViewLayout: true,
47
+ dataDetectorType: true,
48
+ android_hyphenationFrequency: true,
49
+ lineBreakStrategyIOS: true,
50
+ },
51
+ directEventTypes: {
52
+ topTextLayout: {
53
+ registrationName: 'onTextLayout',
50
54
  },
51
- directEventTypes: {
52
- topTextLayout: {
53
- registrationName: 'onTextLayout',
54
- },
55
- topInlineViewLayout: {
56
- registrationName: 'onInlineViewLayout',
57
- },
55
+ topInlineViewLayout: {
56
+ registrationName: 'onInlineViewLayout',
58
57
  },
59
- uiViewClassName: 'RCTText',
60
- })): any);
58
+ },
59
+ uiViewClassName: 'RCTText',
60
+ };
61
+
62
+ const virtualTextViewConfig = {
63
+ validAttributes: {
64
+ isHighlighted: true,
65
+ isPressable: true,
66
+ maxFontSizeMultiplier: true,
67
+ },
68
+ uiViewClassName: 'RCTVirtualText',
69
+ };
70
+
71
+ export const NativeText: HostComponent<NativeTextProps> =
72
+ (createReactNativeComponentClass('RCTText', () =>
73
+ createViewConfig(textViewConfig),
74
+ ): any);
61
75
 
62
76
  export const NativeVirtualText: HostComponent<NativeTextProps> =
63
77
  !global.RN$Bridgeless && !UIManager.hasViewManagerConfig('RCTVirtualText')
64
78
  ? NativeText
65
- : (createReactNativeComponentClass('RCTVirtualText', () => ({
66
- validAttributes: {
67
- ...ReactNativeViewAttributes.UIView,
68
- isHighlighted: true,
69
- isPressable: true,
70
- maxFontSizeMultiplier: true,
71
- },
72
- uiViewClassName: 'RCTVirtualText',
73
- })): any);
79
+ : (createReactNativeComponentClass('RCTVirtualText', () =>
80
+ createViewConfig(virtualTextViewConfig),
81
+ ): any);
@@ -1,10 +1,20 @@
1
- import ReactNativeViewAttributes from '../Components/View/ReactNativeViewAttributes';
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
+ * @flow
8
+ * @format
9
+ */
10
+
11
+ import {createViewConfig} from '../NativeComponent/ViewConfig';
2
12
  import UIManager from '../ReactNative/UIManager';
3
- import {type HostComponent} from '../Renderer/shims/ReactNativeTypes';
4
13
  import createReactNativeComponentClass from '../Renderer/shims/createReactNativeComponentClass';
14
+ import {type HostComponent} from '../Renderer/shims/ReactNativeTypes';
5
15
  import {type ProcessedColorValue} from '../StyleSheet/processColor';
6
- import {type TextProps} from './TextProps';
7
16
  import {type PressEvent} from '../Types/CoreEventTypes';
17
+ import {type TextProps} from './TextProps';
8
18
 
9
19
  type NativeTextProps = $ReadOnly<{
10
20
  ...TextProps,
@@ -17,55 +27,64 @@ type NativeTextProps = $ReadOnly<{
17
27
  isPressable?: ?boolean,
18
28
  }>;
19
29
 
20
- export const NativeText: HostComponent<NativeTextProps> =
21
- (createReactNativeComponentClass('RCTText', () => ({
22
- validAttributes: {
23
- ...ReactNativeViewAttributes.UIView,
24
- isHighlighted: true,
25
- isPressable: true,
26
- numberOfLines: true,
27
- ellipsizeMode: true,
28
- allowFontScaling: true,
29
- maxFontSizeMultiplier: true,
30
- disabled: true,
31
- selectable: true,
32
- selectionColor: true,
33
- adjustsFontSizeToFit: true,
34
- minimumFontScale: true,
35
- textBreakStrategy: true,
36
- onTextLayout: true,
37
- onInlineViewLayout: true,
38
- dataDetectorType: true,
39
- android_hyphenationFrequency: true,
40
- // [Windows
41
- // Listed for the property to be honored even though
42
- // the property tooltip and the events from ViewWin32
43
- //work without being listed. Any Text-specific events
44
- // would need to be listed here.
45
- focusable: true,
46
- // Windows]
30
+ const textViewConfig = {
31
+ validAttributes: {
32
+ isHighlighted: true,
33
+ isPressable: true,
34
+ numberOfLines: true,
35
+ ellipsizeMode: true,
36
+ allowFontScaling: true,
37
+ dynamicTypeRamp: true,
38
+ maxFontSizeMultiplier: true,
39
+ disabled: true,
40
+ selectable: true,
41
+ selectionColor: true,
42
+ adjustsFontSizeToFit: true,
43
+ minimumFontScale: true,
44
+ textBreakStrategy: true,
45
+ onTextLayout: true,
46
+ onInlineViewLayout: true,
47
+ dataDetectorType: true,
48
+ android_hyphenationFrequency: true,
49
+ lineBreakStrategyIOS: true,
50
+ // [Windows
51
+ // Listed for the property to be honored even though
52
+ // the property tooltip and the events from ViewWin32
53
+ //work without being listed. Any Text-specific events
54
+ // would need to be listed here.
55
+ focusable: true,
56
+ accessibilityLevel: true,
57
+ // Windows]
58
+ },
59
+ directEventTypes: {
60
+ topTextLayout: {
61
+ registrationName: 'onTextLayout',
47
62
  },
48
- directEventTypes: {
49
- topTextLayout: {
50
- registrationName: 'onTextLayout',
51
- },
52
- topInlineViewLayout: {
53
- registrationName: 'onInlineViewLayout',
54
- },
63
+ topInlineViewLayout: {
64
+ registrationName: 'onInlineViewLayout',
55
65
  },
56
- uiViewClassName: 'RCTText',
57
- })): any);
66
+ },
67
+ uiViewClassName: 'RCTText',
68
+ };
69
+
70
+ const virtualTextViewConfig = {
71
+ validAttributes: {
72
+ isHighlighted: true,
73
+ isPressable: true,
74
+ maxFontSizeMultiplier: true,
75
+ },
76
+ uiViewClassName: 'RCTVirtualText',
77
+ };
78
+
79
+ export const NativeText: HostComponent<NativeTextProps> =
80
+ (createReactNativeComponentClass('RCTText', () =>
81
+ createViewConfig(textViewConfig),
82
+ ): any);
58
83
 
59
84
  export const NativeVirtualText: HostComponent<NativeTextProps> =
60
85
  !global.RN$Bridgeless &&
61
86
  UIManager.getViewManagerConfig('RCTVirtualText') == null
62
87
  ? NativeText
63
- : (createReactNativeComponentClass('RCTVirtualText', () => ({
64
- validAttributes: {
65
- ...ReactNativeViewAttributes.UIView,
66
- isHighlighted: true,
67
- isPressable: true,
68
- maxFontSizeMultiplier: true,
69
- },
70
- uiViewClassName: 'RCTVirtualText',
71
- })): any);
88
+ : (createReactNativeComponentClass('RCTVirtualText', () =>
89
+ createViewConfig(virtualTextViewConfig),
90
+ ): any);