@office-iss/react-native-win32 0.71.4 → 0.72.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 (323) hide show
  1. package/.flowconfig +15 -3
  2. package/CHANGELOG.json +310 -40
  3. package/CHANGELOG.md +145 -23
  4. package/IntegrationTests/IntegrationTestHarnessTest.js +1 -0
  5. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
  6. package/Libraries/Alert/Alert.d.ts +4 -4
  7. package/Libraries/Alert/Alert.win32.js +1 -0
  8. package/Libraries/Animated/Animated.d.ts +17 -6
  9. package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
  10. package/Libraries/Animated/NativeAnimatedHelper.win32.js +606 -0
  11. package/Libraries/Animated/bezier.js +1 -1
  12. package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
  13. package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
  14. package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
  15. package/Libraries/Animated/createAnimatedComponent.js +26 -239
  16. package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
  17. package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
  18. package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
  19. package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
  20. package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
  21. package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
  22. package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
  23. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
  24. package/Libraries/Animated/useAnimatedProps.js +7 -10
  25. package/Libraries/BatchedBridge/MessageQueue.js +2 -1
  26. package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
  27. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  28. package/Libraries/Blob/Blob.js +4 -0
  29. package/Libraries/Blob/FileReader.js +30 -2
  30. package/Libraries/Blob/URL.js +3 -1
  31. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
  32. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
  33. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.win32.js +2 -3
  34. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
  35. package/Libraries/Components/Button.js +3 -2
  36. package/Libraries/Components/Button.win32.js +451 -0
  37. package/Libraries/Components/Clipboard/Clipboard.js +1 -1
  38. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
  39. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
  40. package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
  41. package/Libraries/Components/Pressable/Pressable.js +1 -1
  42. package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
  43. package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
  44. package/Libraries/Components/SafeAreaView/SafeAreaView.win32.js +1 -2
  45. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
  46. package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
  47. package/Libraries/Components/ScrollView/ScrollView.js +149 -91
  48. package/Libraries/Components/ScrollView/ScrollView.win32.js +1939 -0
  49. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
  50. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
  51. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
  52. package/Libraries/Components/StatusBar/StatusBar.js +3 -0
  53. package/Libraries/Components/Switch/Switch.js +3 -1
  54. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
  55. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
  56. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
  57. package/Libraries/Components/TextInput/TextInput.Types.win32.d.ts +51 -0
  58. package/Libraries/Components/TextInput/TextInput.Types.win32.js +3 -0
  59. package/Libraries/Components/TextInput/TextInput.Types.win32.js.map +1 -0
  60. package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
  61. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  62. package/Libraries/Components/TextInput/TextInput.js +130 -103
  63. package/Libraries/Components/TextInput/TextInput.win32.js +202 -890
  64. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  65. package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
  66. package/Libraries/Components/Touchable/Touchable.js +6 -3
  67. package/Libraries/Components/Touchable/Touchable.win32.js +6 -3
  68. package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
  69. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
  70. package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
  71. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
  72. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
  73. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +189 -0
  74. package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
  75. package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
  76. package/Libraries/Components/View/View.js +71 -45
  77. package/Libraries/Components/View/View.win32.js +38 -16
  78. package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
  79. package/Libraries/Components/View/ViewAccessibility.js +10 -1
  80. package/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
  81. package/Libraries/Components/View/ViewNativeComponent.js +32 -8
  82. package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
  83. package/Libraries/Components/View/ViewPropTypes.js +1 -1
  84. package/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
  85. package/Libraries/Components/View/ViewPropTypes.win32.js +1 -1
  86. package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
  87. package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
  88. package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
  89. package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
  90. package/Libraries/Core/ExceptionsManager.js +2 -2
  91. package/Libraries/Core/InitializeCore.js +2 -1
  92. package/Libraries/Core/ReactNativeVersion.js +3 -3
  93. package/Libraries/Core/ReactNativeVersionCheck.js +1 -9
  94. package/Libraries/Core/ReactNativeVersionCheck.win32.js +1 -9
  95. package/Libraries/Core/Timers/JSTimers.js +1 -1
  96. package/Libraries/Core/Timers/immediateShim.js +1 -0
  97. package/Libraries/Core/Timers/queueMicrotask.js +1 -1
  98. package/Libraries/Core/setUpAlert.js +1 -1
  99. package/Libraries/Core/setUpDOM.js +18 -0
  100. package/Libraries/Core/setUpDeveloperTools.js +1 -1
  101. package/Libraries/Core/setUpGlobals.js +5 -2
  102. package/Libraries/Core/setUpNavigator.js +6 -5
  103. package/Libraries/Core/setUpPerformance.js +23 -13
  104. package/Libraries/Core/setUpReactDevTools.js +2 -0
  105. package/Libraries/Core/setUpSegmentFetcher.js +0 -41
  106. package/Libraries/Core/setUpTimers.js +2 -2
  107. package/Libraries/DOM/Geometry/DOMRect.js +82 -0
  108. package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
  109. package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
  110. package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
  111. package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
  112. package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
  113. package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
  114. package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
  115. package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
  116. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
  117. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
  118. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
  119. package/Libraries/DevToolsSettings/DevToolsSettingsManager.win32.js +35 -0
  120. package/Libraries/{Utilities/NativeDevSplitBundleLoader.js → DevToolsSettings/NativeDevToolsSettingsManager.js} +7 -2
  121. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
  122. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
  123. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
  124. package/Libraries/Events/EventPolyfill.js +1 -1
  125. package/Libraries/Image/AssetRegistry.js +1 -1
  126. package/Libraries/Image/AssetSourceResolver.js +3 -3
  127. package/Libraries/Image/Image.android.js +4 -1
  128. package/Libraries/Image/Image.d.ts +63 -2
  129. package/Libraries/Image/Image.ios.js +3 -0
  130. package/Libraries/Image/Image.win32.js +3 -0
  131. package/Libraries/Image/ImageBackground.js +1 -0
  132. package/Libraries/Image/ImageProps.js +1 -1
  133. package/Libraries/Image/ImageViewNativeComponent.js +4 -4
  134. package/Libraries/Image/RelativeImageStub.js +1 -1
  135. package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
  136. package/Libraries/Image/resolveAssetSource.js +1 -1
  137. package/Libraries/Inspector/DevtoolsOverlay.js +29 -19
  138. package/Libraries/Inspector/ElementBox.js +4 -1
  139. package/Libraries/Inspector/Inspector.js +5 -6
  140. package/Libraries/Inspector/Inspector.win32.js +7 -6
  141. package/Libraries/Inspector/InspectorOverlay.js +3 -3
  142. package/Libraries/Inspector/InspectorOverlay.win32.js +2 -1
  143. package/Libraries/Inspector/NetworkOverlay.js +1 -1
  144. package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
  145. package/Libraries/Interaction/PanResponder.js +5 -6
  146. package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
  147. package/Libraries/Linking/Linking.js +1 -4
  148. package/Libraries/Lists/FillRateHelper.js +4 -238
  149. package/Libraries/Lists/FlatList.d.ts +15 -22
  150. package/Libraries/Lists/FlatList.js +9 -6
  151. package/Libraries/Lists/SectionList.d.ts +10 -6
  152. package/Libraries/Lists/SectionList.js +5 -3
  153. package/Libraries/Lists/SectionListModern.js +3 -3
  154. package/Libraries/Lists/ViewabilityHelper.js +8 -344
  155. package/Libraries/Lists/VirtualizeUtils.js +4 -244
  156. package/Libraries/Lists/VirtualizedList.js +10 -1867
  157. package/Libraries/Lists/VirtualizedListContext.js +6 -104
  158. package/Libraries/Lists/VirtualizedSectionList.js +9 -602
  159. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
  160. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  161. package/Libraries/LogBox/Data/LogBoxData.js +1 -1
  162. package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
  163. package/Libraries/LogBox/LogBox.js +1 -1
  164. package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
  165. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.win32.js +168 -0
  166. package/Libraries/LogBox/UI/LogBoxInspectorHeader.win32.js +3 -0
  167. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.win32.js +193 -0
  168. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
  169. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
  170. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.win32.js +7 -3
  171. package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
  172. package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
  173. package/Libraries/Modal/Modal.js +2 -2
  174. package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
  175. package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
  176. package/Libraries/NativeComponent/BaseViewConfig.win32.js +43 -19
  177. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
  178. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  179. package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
  180. package/Libraries/Network/RCTNetworking.android.js +2 -2
  181. package/Libraries/Network/RCTNetworking.ios.js +1 -1
  182. package/Libraries/Network/RCTNetworking.win32.js +1 -1
  183. package/Libraries/Network/XMLHttpRequest.js +1 -1
  184. package/Libraries/Pressability/Pressability.js +11 -5
  185. package/Libraries/Pressability/Pressability.win32.js +9 -3
  186. package/Libraries/ReactNative/AppContainer.js +7 -1
  187. package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
  188. package/Libraries/ReactNative/AppRegistry.js +10 -13
  189. package/Libraries/ReactNative/FabricUIManager.js +24 -8
  190. package/Libraries/ReactNative/NativeUIManager.js +5 -5
  191. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
  192. package/Libraries/ReactNative/UIManager.js +142 -1
  193. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
  194. package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
  195. package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
  196. package/Libraries/ReactNative/requireNativeComponent.js +1 -1
  197. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
  198. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
  199. package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
  200. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
  201. package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
  202. package/Libraries/Renderer/shims/ReactNativeTypes.js +38 -20
  203. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
  204. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  205. package/Libraries/Share/Share.js +1 -1
  206. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  207. package/Libraries/StyleSheet/StyleSheet.js +1 -1
  208. package/Libraries/StyleSheet/StyleSheet.win32.js +1 -1
  209. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
  210. package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
  211. package/Libraries/StyleSheet/flattenStyle.js +2 -0
  212. package/Libraries/StyleSheet/normalizeColor.js +1 -1
  213. package/Libraries/StyleSheet/processColor.js +1 -1
  214. package/Libraries/Text/Text.d.ts +12 -2
  215. package/Libraries/Text/Text.js +50 -41
  216. package/Libraries/Text/TextProps.js +3 -4
  217. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
  218. package/Libraries/Types/CodegenTypes.js +1 -0
  219. package/Libraries/UTFSequence.js +3 -1
  220. package/Libraries/Utilities/Appearance.d.ts +10 -0
  221. package/Libraries/Utilities/Appearance.js +13 -0
  222. package/Libraries/Utilities/Dimensions.js +1 -1
  223. package/Libraries/Utilities/Dimensions.win32.js +1 -1
  224. package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
  225. package/Libraries/Utilities/HMRClient.js +16 -10
  226. package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
  227. package/Libraries/Utilities/IPerformanceLogger.js +49 -0
  228. package/Libraries/Utilities/LoadingView.android.js +28 -11
  229. package/Libraries/Utilities/NativeAppearance.js +1 -0
  230. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
  231. package/Libraries/Utilities/PixelRatio.js +2 -2
  232. package/Libraries/Utilities/Platform.win32.js +1 -1
  233. package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
  234. package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
  235. package/Libraries/Utilities/codegenNativeCommands.js +2 -0
  236. package/Libraries/Utilities/createPerformanceLogger.js +55 -43
  237. package/Libraries/Utilities/stringifySafe.js +2 -7
  238. package/Libraries/Utilities/useColorScheme.js +1 -1
  239. package/Libraries/Utilities/useWindowDimensions.js +3 -3
  240. package/Libraries/WebPerformance/EventCounts.js +78 -0
  241. package/Libraries/WebPerformance/MemoryInfo.js +54 -0
  242. package/Libraries/WebPerformance/NativePerformance.js +38 -0
  243. package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
  244. package/Libraries/WebPerformance/Performance.js +312 -0
  245. package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
  246. package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
  247. package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
  248. package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
  249. package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
  250. package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
  251. package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
  252. package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
  253. package/Libraries/vendor/core/ErrorUtils.js +1 -1
  254. package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
  255. package/Libraries/vendor/emitter/EventEmitter.js +9 -1
  256. package/flow/global.js +29 -4
  257. package/flow/jest.js +258 -164
  258. package/index.js +56 -42
  259. package/index.win32.js +56 -42
  260. package/interface.js +1 -1
  261. package/jest/local-setup.js +33 -0
  262. package/jest/mockComponent.js +4 -2
  263. package/jest/mockNativeComponent.js +1 -1
  264. package/jest/mockScrollView.js +2 -1
  265. package/jest/react-native-env.js +1 -3
  266. package/jest/setup.js +11 -8
  267. package/overrides.json +115 -85
  268. package/package.json +38 -28
  269. package/rn-get-polyfills.js +1 -1
  270. package/src/Libraries/Components/TextInput/TextInput.Types.win32.ts +68 -0
  271. package/src/Libraries/Components/View/ViewAccessibility.win32.d.ts +5 -5
  272. package/src/Libraries/Components/View/ViewPropTypes.win32.d.ts +1 -1
  273. package/types/index.d.ts +2 -6
  274. package/types/modules/Codegen.d.ts +4 -4
  275. package/types/modules/globals.d.ts +27 -25
  276. package/types/public/DeprecatedPropertiesAlias.d.ts +0 -20
  277. package/types/public/ReactNativeRenderer.d.ts +2 -7
  278. package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
  279. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
  280. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
  281. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
  282. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
  283. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
  284. package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
  285. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
  286. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
  287. package/Libraries/Components/DatePicker/DatePickerIOS.win32.js +0 -47
  288. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
  289. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
  290. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
  291. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
  292. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
  293. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.win32.js +0 -45
  294. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
  295. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
  296. package/Libraries/Components/Slider/Slider.d.ts +0 -132
  297. package/Libraries/Components/Slider/Slider.js +0 -282
  298. package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
  299. package/Libraries/Components/TextInput/Win32TextInputNativeComponent.js +0 -23
  300. package/Libraries/Interaction/Batchinator.js +0 -76
  301. package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
  302. package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
  303. package/Libraries/Interaction/PanResponder.flow.js +0 -257
  304. package/Libraries/Lists/CellRenderMask.js +0 -155
  305. package/Libraries/Lists/ChildListCollection.js +0 -72
  306. package/Libraries/Lists/StateSafePureComponent.js +0 -85
  307. package/Libraries/Lists/VirtualizedList.d.ts +0 -347
  308. package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
  309. package/Libraries/Lists/VirtualizedListProps.js +0 -279
  310. package/Libraries/Performance/PureComponentDebug.js +0 -74
  311. package/Libraries/Reliability/UserFlow.js +0 -158
  312. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
  313. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
  314. package/Libraries/Utilities/MatrixMath.js +0 -748
  315. package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
  316. package/Libraries/Utilities/clamp.js +0 -23
  317. package/Libraries/Utilities/deprecatedPropType.js +0 -36
  318. package/Libraries/Utilities/groupByEveryN.js +0 -51
  319. package/Libraries/Utilities/mergeIntoFast.js +0 -26
  320. package/Libraries/Utilities/setAndForwardRef.js +0 -71
  321. package/Libraries/Utilities/truncate.js +0 -51
  322. package/flow/JSITimerInternalType.js +0 -30
  323. package/flow/use-sync-external-store.js +0 -19
@@ -27,15 +27,20 @@ import StyleSheet, {
27
27
  import Text from '../../Text/Text';
28
28
  import TextAncestor from '../../Text/TextAncestor';
29
29
  import Platform from '../../Utilities/Platform';
30
- import setAndForwardRef from '../../Utilities/setAndForwardRef';
30
+ import useMergeRefs from '../../Utilities/useMergeRefs';
31
31
  import TextInputState from './TextInputState';
32
32
  import invariant from 'invariant';
33
33
  import nullthrows from 'nullthrows';
34
34
  import * as React from 'react';
35
-
36
- const {useLayoutEffect, useRef, useState} = React;
35
+ import {useCallback, useLayoutEffect, useRef, useState} from 'react';
37
36
 
38
37
  type ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);
38
+ type TextInputInstance = React.ElementRef<HostComponent<mixed>> & {
39
+ +clear: () => void,
40
+ +isFocused: () => boolean,
41
+ +getNativeRef: () => ?React.ElementRef<HostComponent<mixed>>,
42
+ +setSelection: (start: number, end: number) => void,
43
+ };
39
44
 
40
45
  let AndroidTextInput;
41
46
  let AndroidTextInputCommands;
@@ -592,7 +597,7 @@ export type Props = $ReadOnly<{|
592
597
  * On Android devices manufactured by Xiaomi with Android Q,
593
598
  * when keyboardType equals 'email-address'this will be set
594
599
  * in native to 'true' to prevent a system related crash. This
595
- * will cause cursor to be diabled as a side-effect.
600
+ * will cause cursor to be disabled as a side-effect.
596
601
  *
597
602
  */
598
603
  caretHidden?: ?boolean,
@@ -614,9 +619,7 @@ export type Props = $ReadOnly<{|
614
619
  */
615
620
  editable?: ?boolean,
616
621
 
617
- forwardedRef?: ?ReactRefSetter<
618
- React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
619
- >,
622
+ forwardedRef?: ?ReactRefSetter<TextInputInstance>,
620
623
 
621
624
  /**
622
625
  * `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.
@@ -954,13 +957,6 @@ export type Props = $ReadOnly<{|
954
957
  value?: ?Stringish,
955
958
  |}>;
956
959
 
957
- type ImperativeMethods = $ReadOnly<{|
958
- clear: () => void,
959
- isFocused: () => boolean,
960
- getNativeRef: () => ?React.ElementRef<HostComponent<mixed>>,
961
- setSelection: (start: number, end: number) => void,
962
- |}>;
963
-
964
960
  const emptyFunctionThatReturnsTrue = () => true;
965
961
 
966
962
  /**
@@ -1075,6 +1071,18 @@ const emptyFunctionThatReturnsTrue = () => true;
1075
1071
  *
1076
1072
  */
1077
1073
  function InternalTextInput(props: Props): React.Node {
1074
+ const {
1075
+ 'aria-busy': ariaBusy,
1076
+ 'aria-checked': ariaChecked,
1077
+ 'aria-disabled': ariaDisabled,
1078
+ 'aria-expanded': ariaExpanded,
1079
+ 'aria-selected': ariaSelected,
1080
+ accessibilityState,
1081
+ id,
1082
+ tabIndex,
1083
+ ...otherProps
1084
+ } = props;
1085
+
1078
1086
  const inputRef = useRef<null | React.ElementRef<HostComponent<mixed>>>(null);
1079
1087
 
1080
1088
  // Android sends a "onTextChanged" event followed by a "onSelectionChanged" event, for
@@ -1190,74 +1198,74 @@ function InternalTextInput(props: Props): React.Node {
1190
1198
  }
1191
1199
  }, [inputRef]);
1192
1200
 
1193
- function clear(): void {
1194
- if (inputRef.current != null) {
1195
- viewCommands.setTextAndSelection(
1196
- inputRef.current,
1197
- mostRecentEventCount,
1198
- '',
1199
- 0,
1200
- 0,
1201
- );
1202
- }
1203
- }
1204
-
1205
- function setSelection(start: number, end: number): void {
1206
- if (inputRef.current != null) {
1207
- viewCommands.setTextAndSelection(
1208
- inputRef.current,
1209
- mostRecentEventCount,
1210
- null,
1211
- start,
1212
- end,
1213
- );
1214
- }
1215
- }
1216
-
1217
- // TODO: Fix this returning true on null === null, when no input is focused
1218
- function isFocused(): boolean {
1219
- return TextInputState.currentlyFocusedInput() === inputRef.current;
1220
- }
1221
-
1222
- function getNativeRef(): ?React.ElementRef<HostComponent<mixed>> {
1223
- return inputRef.current;
1224
- }
1225
-
1226
- const _setNativeRef = setAndForwardRef({
1227
- getForwardedRef: () => props.forwardedRef,
1228
- setLocalRef: ref => {
1229
- inputRef.current = ref;
1201
+ const setLocalRef = useCallback(
1202
+ (instance: TextInputInstance | null) => {
1203
+ inputRef.current = instance;
1230
1204
 
1231
1205
  /*
1232
- Hi reader from the future. I'm sorry for this.
1233
-
1234
- This is a hack. Ideally we would forwardRef to the underlying
1235
- host component. However, since TextInput has it's own methods that can be
1236
- called as well, if we used the standard forwardRef then these
1237
- methods wouldn't be accessible and thus be a breaking change.
1238
-
1239
- We have a couple of options of how to handle this:
1240
- - Return a new ref with everything we methods from both. This is problematic
1241
- because we need React to also know it is a host component which requires
1242
- internals of the class implementation of the ref.
1243
- - Break the API and have some other way to call one set of the methods or
1244
- the other. This is our long term approach as we want to eventually
1245
- get the methods on host components off the ref. So instead of calling
1246
- ref.measure() you might call ReactNative.measure(ref). This would hopefully
1247
- let the ref for TextInput then have the methods like `.clear`. Or we do it
1248
- the other way and make it TextInput.clear(textInputRef) which would be fine
1249
- too. Either way though is a breaking change that is longer term.
1250
- - Mutate this ref. :( Gross, but accomplishes what we need in the meantime
1251
- before we can get to the long term breaking change.
1252
- */
1253
- if (ref) {
1254
- ref.clear = clear;
1255
- ref.isFocused = isFocused;
1256
- ref.getNativeRef = getNativeRef;
1257
- ref.setSelection = setSelection;
1206
+ Hi reader from the future. I'm sorry for this.
1207
+
1208
+ This is a hack. Ideally we would forwardRef to the underlying
1209
+ host component. However, since TextInput has it's own methods that can be
1210
+ called as well, if we used the standard forwardRef then these
1211
+ methods wouldn't be accessible and thus be a breaking change.
1212
+
1213
+ We have a couple of options of how to handle this:
1214
+ - Return a new ref with everything we methods from both. This is problematic
1215
+ because we need React to also know it is a host component which requires
1216
+ internals of the class implementation of the ref.
1217
+ - Break the API and have some other way to call one set of the methods or
1218
+ the other. This is our long term approach as we want to eventually
1219
+ get the methods on host components off the ref. So instead of calling
1220
+ ref.measure() you might call ReactNative.measure(ref). This would hopefully
1221
+ let the ref for TextInput then have the methods like `.clear`. Or we do it
1222
+ the other way and make it TextInput.clear(textInputRef) which would be fine
1223
+ too. Either way though is a breaking change that is longer term.
1224
+ - Mutate this ref. :( Gross, but accomplishes what we need in the meantime
1225
+ before we can get to the long term breaking change.
1226
+ */
1227
+ if (instance != null) {
1228
+ // $FlowFixMe[incompatible-use] - See the explanation above.
1229
+ Object.assign(instance, {
1230
+ clear(): void {
1231
+ if (inputRef.current != null) {
1232
+ viewCommands.setTextAndSelection(
1233
+ inputRef.current,
1234
+ mostRecentEventCount,
1235
+ '',
1236
+ 0,
1237
+ 0,
1238
+ );
1239
+ }
1240
+ },
1241
+ // TODO: Fix this returning true on null === null, when no input is focused
1242
+ isFocused(): boolean {
1243
+ return TextInputState.currentlyFocusedInput() === inputRef.current;
1244
+ },
1245
+ getNativeRef(): ?React.ElementRef<HostComponent<mixed>> {
1246
+ return inputRef.current;
1247
+ },
1248
+ setSelection(start: number, end: number): void {
1249
+ if (inputRef.current != null) {
1250
+ viewCommands.setTextAndSelection(
1251
+ inputRef.current,
1252
+ mostRecentEventCount,
1253
+ null,
1254
+ start,
1255
+ end,
1256
+ );
1257
+ }
1258
+ },
1259
+ });
1258
1260
  }
1259
1261
  },
1260
- });
1262
+ [mostRecentEventCount, viewCommands],
1263
+ );
1264
+
1265
+ const ref = useMergeRefs<TextInputInstance | null>(
1266
+ setLocalRef,
1267
+ props.forwardedRef,
1268
+ );
1261
1269
 
1262
1270
  const _onChange = (event: ChangeEvent) => {
1263
1271
  const currentText = event.nativeEvent.text;
@@ -1395,13 +1403,26 @@ function InternalTextInput(props: Props): React.Node {
1395
1403
  // so omitting onBlur and onFocus pressability handlers here.
1396
1404
  const {onBlur, onFocus, ...eventHandlers} = usePressability(config) || {};
1397
1405
 
1398
- const _accessibilityState = {
1399
- busy: props['aria-busy'] ?? props.accessibilityState?.busy,
1400
- checked: props['aria-checked'] ?? props.accessibilityState?.checked,
1401
- disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,
1402
- expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,
1403
- selected: props['aria-selected'] ?? props.accessibilityState?.selected,
1404
- };
1406
+ let _accessibilityState;
1407
+ if (
1408
+ accessibilityState != null ||
1409
+ ariaBusy != null ||
1410
+ ariaChecked != null ||
1411
+ ariaDisabled != null ||
1412
+ ariaExpanded != null ||
1413
+ ariaSelected != null
1414
+ ) {
1415
+ _accessibilityState = {
1416
+ busy: ariaBusy ?? accessibilityState?.busy,
1417
+ checked: ariaChecked ?? accessibilityState?.checked,
1418
+ disabled: ariaDisabled ?? accessibilityState?.disabled,
1419
+ expanded: ariaExpanded ?? accessibilityState?.expanded,
1420
+ selected: ariaSelected ?? accessibilityState?.selected,
1421
+ };
1422
+ }
1423
+
1424
+ // $FlowFixMe[underconstrained-implicit-instantiation]
1425
+ let style = flattenStyle(props.style);
1405
1426
 
1406
1427
  if (Platform.OS === 'ios') {
1407
1428
  const RCTTextInputView =
@@ -1409,10 +1430,7 @@ function InternalTextInput(props: Props): React.Node {
1409
1430
  ? RCTMultilineTextInputView
1410
1431
  : RCTSinglelineTextInputView;
1411
1432
 
1412
- const style =
1413
- props.multiline === true
1414
- ? StyleSheet.flatten([styles.multilineInput, props.style])
1415
- : props.style;
1433
+ style = props.multiline === true ? [styles.multilineInput, style] : style;
1416
1434
 
1417
1435
  const useOnChangeSync =
1418
1436
  (props.unstable_onChangeSync || props.unstable_onChangeTextSync) &&
@@ -1420,16 +1438,18 @@ function InternalTextInput(props: Props): React.Node {
1420
1438
 
1421
1439
  textInput = (
1422
1440
  <RCTTextInputView
1423
- ref={_setNativeRef}
1424
- {...props}
1441
+ // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
1442
+ ref={ref}
1443
+ {...otherProps}
1425
1444
  {...eventHandlers}
1426
- accessible={accessible}
1427
1445
  accessibilityState={_accessibilityState}
1446
+ accessible={accessible}
1428
1447
  submitBehavior={submitBehavior}
1429
1448
  caretHidden={caretHidden}
1430
1449
  dataDetectorTypes={props.dataDetectorTypes}
1431
- focusable={focusable}
1450
+ focusable={tabIndex !== undefined ? !tabIndex : focusable}
1432
1451
  mostRecentEventCount={mostRecentEventCount}
1452
+ nativeID={id ?? props.nativeID}
1433
1453
  onBlur={_onBlur}
1434
1454
  onKeyPressSync={props.unstable_onKeyPressSync}
1435
1455
  onChange={_onChange}
@@ -1445,7 +1465,6 @@ function InternalTextInput(props: Props): React.Node {
1445
1465
  />
1446
1466
  );
1447
1467
  } else if (Platform.OS === 'android') {
1448
- const style = [props.style];
1449
1468
  const autoCapitalize = props.autoCapitalize || 'sentences';
1450
1469
  const _accessibilityLabelledBy =
1451
1470
  props?.['aria-labelledby'] ?? props?.accessibilityLabelledBy;
@@ -1470,19 +1489,21 @@ function InternalTextInput(props: Props): React.Node {
1470
1489
  * match up exactly with the props for TextInput. This will need to get
1471
1490
  * fixed */
1472
1491
  <AndroidTextInput
1473
- ref={_setNativeRef}
1474
- {...props}
1492
+ // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs.
1493
+ ref={ref}
1494
+ {...otherProps}
1475
1495
  {...eventHandlers}
1476
- accessible={accessible}
1477
1496
  accessibilityState={_accessibilityState}
1478
1497
  accessibilityLabelledBy={_accessibilityLabelledBy}
1498
+ accessible={accessible}
1479
1499
  autoCapitalize={autoCapitalize}
1480
1500
  submitBehavior={submitBehavior}
1481
1501
  caretHidden={caretHidden}
1482
1502
  children={children}
1483
1503
  disableFullscreenUI={props.disableFullscreenUI}
1484
- focusable={focusable}
1504
+ focusable={tabIndex !== undefined ? !tabIndex : focusable}
1485
1505
  mostRecentEventCount={mostRecentEventCount}
1506
+ nativeID={id ?? props.nativeID}
1486
1507
  numberOfLines={props.rows ?? props.numberOfLines}
1487
1508
  onBlur={_onBlur}
1488
1509
  onChange={_onChange}
@@ -1592,7 +1613,7 @@ const autoCompleteWebToTextContentTypeMap = {
1592
1613
 
1593
1614
  const ExportedForwardRef: React.AbstractComponent<
1594
1615
  React.ElementConfig<typeof InternalTextInput>,
1595
- React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
1616
+ TextInputInstance,
1596
1617
  > = React.forwardRef(function TextInput(
1597
1618
  {
1598
1619
  allowFontScaling = true,
@@ -1605,18 +1626,19 @@ const ExportedForwardRef: React.AbstractComponent<
1605
1626
  enterKeyHint,
1606
1627
  returnKeyType,
1607
1628
  inputMode,
1629
+ showSoftInputOnFocus,
1608
1630
  keyboardType,
1609
1631
  ...restProps
1610
1632
  },
1611
- forwardedRef: ReactRefSetter<
1612
- React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
1613
- >,
1633
+ forwardedRef: ReactRefSetter<TextInputInstance>,
1614
1634
  ) {
1615
- const style = flattenStyle(restProps.style);
1635
+ // $FlowFixMe[underconstrained-implicit-instantiation]
1636
+ let style = flattenStyle(restProps.style);
1616
1637
 
1617
1638
  if (style?.verticalAlign != null) {
1618
1639
  style.textAlignVertical =
1619
1640
  verticalAlignToTextAlignVerticalMap[style.verticalAlign];
1641
+ delete style.verticalAlign;
1620
1642
  }
1621
1643
 
1622
1644
  return (
@@ -1631,6 +1653,9 @@ const ExportedForwardRef: React.AbstractComponent<
1631
1653
  keyboardType={
1632
1654
  inputMode ? inputModeToKeyboardTypeMap[inputMode] : keyboardType
1633
1655
  }
1656
+ showSoftInputOnFocus={
1657
+ inputMode == null ? showSoftInputOnFocus : inputMode !== 'none'
1658
+ }
1634
1659
  autoComplete={
1635
1660
  Platform.OS === 'android'
1636
1661
  ? // $FlowFixMe[invalid-computed-prop]
@@ -1657,6 +1682,8 @@ const ExportedForwardRef: React.AbstractComponent<
1657
1682
  );
1658
1683
  });
1659
1684
 
1685
+ ExportedForwardRef.displayName = 'TextInput';
1686
+
1660
1687
  /**
1661
1688
  * Switch to `deprecated-react-native-prop-types` for compatibility with future
1662
1689
  * releases. This is deprecated and will be removed in the future.