react-native-windows 0.76.3 → 0.77.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 (369) hide show
  1. package/.flowconfig +5 -1
  2. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +1 -0
  3. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +13 -0
  4. package/Libraries/Animated/AnimatedEvent.js +1 -1
  5. package/Libraries/Animated/AnimatedImplementation.js +2 -2
  6. package/Libraries/Animated/NativeAnimatedAllowlist.js +20 -9
  7. package/Libraries/Animated/NativeAnimatedAllowlist.windows.js +122 -0
  8. package/Libraries/Animated/animations/Animation.js +60 -25
  9. package/Libraries/Animated/animations/DecayAnimation.js +26 -38
  10. package/Libraries/Animated/animations/SpringAnimation.js +33 -39
  11. package/Libraries/Animated/animations/TimingAnimation.js +34 -42
  12. package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
  13. package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
  14. package/Libraries/Animated/createAnimatedComponent.js +60 -33
  15. package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
  16. package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
  17. package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
  18. package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
  19. package/Libraries/Animated/nodes/AnimatedProps.js +96 -46
  20. package/Libraries/Animated/nodes/AnimatedProps.windows.js +281 -0
  21. package/Libraries/Animated/nodes/AnimatedStyle.js +108 -39
  22. package/Libraries/Animated/nodes/AnimatedStyle.windows.js +251 -0
  23. package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
  24. package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
  25. package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
  26. package/Libraries/Animated/useAnimatedProps.js +41 -35
  27. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
  28. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
  29. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +82 -5
  30. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
  31. package/Libraries/Components/Button.js +9 -4
  32. package/Libraries/Components/Button.windows.js +19 -5
  33. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
  34. package/Libraries/Components/Glyph/Glyph.js +2 -1
  35. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
  36. package/Libraries/Components/Popup/PopupNativeComponent.js +0 -1
  37. package/Libraries/Components/Pressable/Pressable.js +4 -4
  38. package/Libraries/Components/Pressable/Pressable.windows.js +10 -4
  39. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
  40. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
  41. package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
  42. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
  43. package/Libraries/Components/ScrollView/ScrollView.js +49 -88
  44. package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
  45. package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
  46. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
  47. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +0 -5
  48. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
  49. package/Libraries/Components/Switch/Switch.js +8 -6
  50. package/Libraries/Components/Switch/Switch.windows.js +8 -6
  51. package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
  52. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
  53. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
  54. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
  55. package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
  56. package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
  57. package/Libraries/Components/TextInput/TextInput.js +37 -13
  58. package/Libraries/Components/TextInput/TextInput.windows.js +47 -16
  59. package/Libraries/Components/TextInput/TextInputState.js +11 -13
  60. package/Libraries/Components/TextInput/TextInputState.windows.js +11 -13
  61. package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
  62. package/Libraries/Components/Touchable/Position.js +7 -2
  63. package/Libraries/Components/Touchable/Touchable.js +4 -0
  64. package/Libraries/Components/Touchable/Touchable.windows.js +4 -0
  65. package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
  66. package/Libraries/Components/Touchable/TouchableBounce.windows.js +227 -0
  67. package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
  68. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +5 -5
  69. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +371 -0
  70. package/Libraries/Components/Touchable/TouchableOpacity.js +6 -5
  71. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
  72. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
  73. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -3
  74. package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
  75. package/Libraries/Components/View/View.js +4 -4
  76. package/Libraries/Components/View/View.windows.js +12 -5
  77. package/Libraries/Components/View/ViewAccessibility.d.ts +10 -0
  78. package/Libraries/Components/View/ViewAccessibility.windows.js +2 -0
  79. package/Libraries/Components/View/ViewNativeComponent.js +6 -98
  80. package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
  81. package/Libraries/Components/View/ViewPropTypes.js +0 -3
  82. package/Libraries/Components/View/ViewPropTypes.windows.js +2 -3
  83. package/Libraries/Core/ExceptionsManager.js +50 -29
  84. package/Libraries/Core/ReactNativeVersion.js +3 -3
  85. package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
  86. package/Libraries/Core/setUpBatchedBridge.js +1 -10
  87. package/Libraries/Core/setUpDeveloperTools.js +1 -5
  88. package/Libraries/Core/setUpErrorHandling.js +20 -18
  89. package/Libraries/Core/setUpReactDevTools.js +107 -8
  90. package/Libraries/Core/setUpSegmentFetcher.js +1 -0
  91. package/Libraries/Core/setUpTimers.js +21 -18
  92. package/Libraries/Debugging/DebuggingOverlay.js +4 -5
  93. package/Libraries/Image/AssetSourceResolver.js +12 -1
  94. package/Libraries/Image/AssetSourceResolver.windows.js +12 -1
  95. package/Libraries/Image/Image.android.js +1 -5
  96. package/Libraries/Image/Image.d.ts +20 -29
  97. package/Libraries/Image/Image.ios.js +0 -2
  98. package/Libraries/Image/Image.windows.js +5 -1
  99. package/Libraries/Image/ImageBackground.js +2 -5
  100. package/Libraries/Image/ImageProps.js +7 -6
  101. package/Libraries/Image/ImageResizeMode.d.ts +8 -1
  102. package/Libraries/Image/ImageResizeMode.js +4 -1
  103. package/Libraries/Image/ImageSource.d.ts +0 -2
  104. package/Libraries/Image/ImageSource.js +0 -2
  105. package/Libraries/Image/ImageTypes.flow.js +11 -9
  106. package/Libraries/Image/ImageUtils.js +6 -3
  107. package/Libraries/Image/ImageViewNativeComponent.js +5 -3
  108. package/Libraries/Inspector/Inspector.js +1 -0
  109. package/Libraries/Inspector/NetworkOverlay.js +4 -0
  110. package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
  111. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
  112. package/Libraries/Interaction/InteractionManager.js +6 -1
  113. package/Libraries/Interaction/InteractionManagerStub.js +176 -0
  114. package/Libraries/Interaction/TouchHistoryMath.js +22 -19
  115. package/Libraries/JSInspector/NetworkAgent.js +1 -1
  116. package/Libraries/Lists/FlatList.d.ts +1 -2
  117. package/Libraries/Lists/FlatList.js +2 -2
  118. package/Libraries/Lists/SectionListModern.js +7 -7
  119. package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
  120. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  121. package/Libraries/LogBox/Data/LogBoxData.js +3 -3
  122. package/Libraries/LogBox/LogBox.js +18 -5
  123. package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
  124. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  125. package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
  126. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
  127. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -1
  128. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
  129. package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
  130. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
  131. package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
  132. package/Libraries/Modal/Modal.d.ts +12 -0
  133. package/Libraries/Modal/Modal.js +31 -4
  134. package/Libraries/Modal/Modal.windows.js +18 -0
  135. package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
  136. package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
  137. package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -11
  138. package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
  139. package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
  140. package/Libraries/Network/XHRInterceptor.js +63 -14
  141. package/Libraries/Network/XMLHttpRequest.js +26 -1
  142. package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
  143. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
  144. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
  145. package/Libraries/Pressability/HoverState.js +2 -0
  146. package/Libraries/Pressability/Pressability.js +2 -3
  147. package/Libraries/Pressability/Pressability.windows.js +2 -3
  148. package/Libraries/Pressability/usePressability.js +4 -1
  149. package/Libraries/ReactNative/AppContainer.js +1 -1
  150. package/Libraries/ReactNative/AppRegistry.js +1 -11
  151. package/Libraries/ReactNative/DisplayMode.js +1 -1
  152. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
  153. package/Libraries/ReactNative/RendererImplementation.js +18 -17
  154. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
  155. package/Libraries/ReactNative/renderApplication.js +9 -8
  156. package/Libraries/ReactNative/requireNativeComponent.js +5 -2
  157. package/Libraries/Renderer/shims/ReactFabric.js +3 -3
  158. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  159. package/Libraries/Renderer/shims/ReactNative.js +3 -3
  160. package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
  161. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
  162. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  163. package/Libraries/StyleSheet/StyleSheet.js +7 -1
  164. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
  165. package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
  166. package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
  167. package/Libraries/StyleSheet/processTransform.js +3 -34
  168. package/Libraries/Text/Text.js +248 -249
  169. package/Libraries/Text/Text.windows.js +298 -292
  170. package/Libraries/Text/TextNativeComponent.js +0 -1
  171. package/Libraries/Text/TextProps.windows.js +2 -0
  172. package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
  173. package/Libraries/Types/CoreEventTypes.d.ts +3 -10
  174. package/Libraries/Types/CoreEventTypes.js +4 -6
  175. package/Libraries/Types/CoreEventTypes.windows.js +4 -6
  176. package/Libraries/Utilities/Appearance.js +3 -1
  177. package/Libraries/Utilities/BackHandler.android.js +6 -18
  178. package/Libraries/Utilities/BackHandler.d.ts +0 -4
  179. package/Libraries/Utilities/BackHandler.ios.js +0 -7
  180. package/Libraries/Utilities/BackHandler.windows.js +6 -18
  181. package/Libraries/Utilities/HMRClient.js +3 -4
  182. package/Libraries/Utilities/Platform.flow.js +2 -2
  183. package/Libraries/Utilities/Platform.flow.windows.js +3 -2
  184. package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
  185. package/Libraries/Utilities/codegenNativeComponent.js +1 -1
  186. package/Libraries/Utilities/useMergeRefs.js +26 -7
  187. package/Libraries/WebSocket/WebSocketEvent.js +4 -1
  188. package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
  189. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
  190. package/Libraries/promiseRejectionTrackingOptions.js +1 -1
  191. package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +9 -8
  192. package/Microsoft.ReactNative/AsynchronousEventBeat.h +5 -5
  193. package/Microsoft.ReactNative/FBReactNativeSpec/FBReactNativeSpecJSI.h +5 -0
  194. package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +2 -2
  195. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +197 -18
  196. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +19 -1
  197. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +13 -0
  198. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +1 -1
  199. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +6 -8
  200. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +2 -2
  201. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +3 -2
  202. package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +1 -1
  203. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +24 -0
  204. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +5 -0
  205. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -12
  206. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +4 -4
  207. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +4 -8
  208. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +16 -15
  209. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +15 -0
  210. package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +9 -0
  211. package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +20 -1
  212. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -6
  213. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
  214. package/Microsoft.ReactNative/SynchronousEventBeat.cpp +14 -4
  215. package/Microsoft.ReactNative/SynchronousEventBeat.h +4 -2
  216. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.cpp +78 -0
  217. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.h +51 -0
  218. package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.inc +48 -0
  219. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.cpp +41 -0
  220. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.h +127 -0
  221. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.inc +125 -0
  222. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_posix.cpp +16 -0
  223. package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_win.cpp +23 -0
  224. package/Microsoft.ReactNative.Cxx/JSI/decorator.h +834 -0
  225. package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +117 -0
  226. package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +366 -0
  227. package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +560 -0
  228. package/Microsoft.ReactNative.Cxx/JSI/jsi.h +1611 -0
  229. package/Microsoft.ReactNative.Cxx/JSI/threadsafe.h +79 -0
  230. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +7 -11
  231. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -1
  232. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +2878 -0
  233. package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.h +36 -0
  234. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +64 -0
  235. package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +22 -0
  236. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModule.cpp +63 -63
  237. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +165 -0
  238. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.cpp +105 -0
  239. package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModuleUtils.h +57 -58
  240. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +42 -0
  241. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +151 -0
  242. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Base.h +177 -154
  243. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +25 -0
  244. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +21 -0
  245. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +67 -0
  246. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +90 -0
  247. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Convert.h +170 -172
  248. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +51 -0
  249. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/EventEmitter.h +134 -136
  250. package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Function.h +283 -283
  251. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.cpp +63 -0
  252. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +61 -0
  253. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +93 -0
  254. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +104 -0
  255. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +107 -0
  256. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/flags.h +22 -0
  257. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +72 -0
  258. package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +553 -0
  259. package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +167 -0
  260. package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +186 -0
  261. package/Microsoft.ReactNative.Cxx/stubs/glog/logging.h +82 -0
  262. package/PropertySheets/Bundle.Common.targets +1 -1
  263. package/PropertySheets/Bundle.props +3 -0
  264. package/PropertySheets/Generated/PackageVersion.g.props +4 -4
  265. package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  266. package/PropertySheets/OutputMSBuildProperties.targets +3 -1
  267. package/ReactCommon/ReactCommon.vcxproj +5 -0
  268. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +2 -3
  269. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +61 -0
  270. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +26 -23
  271. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +150 -0
  272. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +252 -0
  273. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +795 -0
  274. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +59 -0
  275. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +188 -39
  276. package/Scripts/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  277. package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +97 -62
  278. package/Shared/InspectorPackagerConnection.cpp +3 -6
  279. package/Shared/InspectorPackagerConnection.h +2 -2
  280. package/Shared/InstanceManager.h +1 -1
  281. package/Shared/OInstance.h +1 -1
  282. package/Shared/Shared.vcxitems +17 -2
  283. package/Shared/Shared.vcxitems.filters +3 -1
  284. package/Shared/TurboModuleManager.cpp +29 -4
  285. package/codegen/NativeAccessibilityInfoSpec.g.h +27 -9
  286. package/codegen/NativeAccessibilityManagerSpec.g.h +19 -13
  287. package/codegen/NativeActionSheetManagerSpec.g.h +4 -0
  288. package/codegen/NativeExceptionsManagerSpec.g.h +1 -7
  289. package/codegen/NativeIntersectionObserverSpec.g.h +2 -0
  290. package/codegen/NativePerformanceSpec.g.h +127 -3
  291. package/codegen/NativeReactDevToolsRuntimeSettingsModuleSpec.g.h +67 -0
  292. package/codegen/NativeReactDevToolsSettingsManagerSpec.g.h +41 -0
  293. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +125 -137
  294. package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
  295. package/codegen/react/components/rnwcore/Props.cpp +1 -0
  296. package/codegen/react/components/rnwcore/Props.h +1 -0
  297. package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
  298. package/codegen/react/components/rnwcore/ShadowNodes.h +0 -11
  299. package/codegen/react/components/rnwcore/States.h +0 -12
  300. package/codegen/rnwcoreJSI-generated.cpp +219 -186
  301. package/codegen/rnwcoreJSI.h +942 -511
  302. package/index.js +10 -3
  303. package/index.windows.js +10 -3
  304. package/jest/setup.js +36 -1
  305. package/just-task.js +15 -0
  306. package/package.json +22 -22
  307. package/src/private/animated/NativeAnimatedHelper.js +18 -16
  308. package/src/private/animated/useAnimatedPropsMemo.js +348 -0
  309. package/src/private/animated/useAnimatedPropsMemo.windows.js +356 -0
  310. package/src/private/components/HScrollViewNativeComponents.js +1 -27
  311. package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
  312. package/src/private/components/VScrollViewNativeComponents.js +2 -25
  313. package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
  314. package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
  315. package/src/private/debugging/ReactDevToolsSettingsManager.windows.js +20 -0
  316. package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
  317. package/src/private/devmenu/DevMenu.d.ts +20 -0
  318. package/src/private/devmenu/DevMenu.js +31 -0
  319. package/src/private/featureflags/ReactNativeFeatureFlags.js +95 -86
  320. package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
  321. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -19
  322. package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
  323. package/src/private/setup/setUpDOM.js +14 -6
  324. package/src/private/setup/setUpMutationObserver.js +5 -0
  325. package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
  326. package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
  327. package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
  328. package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
  329. package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
  330. package/src/private/specs/modules/NativeAppearance.js +4 -10
  331. package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
  332. package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
  333. package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
  334. package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
  335. package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
  336. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
  337. package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
  338. package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
  339. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  340. package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
  341. package/src/private/webapis/performance/EventTiming.js +13 -8
  342. package/src/private/webapis/performance/Performance.js +66 -73
  343. package/src/private/webapis/performance/PerformanceEntry.js +2 -5
  344. package/src/private/webapis/performance/PerformanceObserver.js +65 -164
  345. package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
  346. package/src/private/webapis/performance/UserTiming.js +11 -7
  347. package/src/private/webapis/performance/Utilities.js +18 -0
  348. package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
  349. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
  350. package/templates/cpp-lib/template.config.js +13 -7
  351. package/templates/templateUtils.js +10 -0
  352. package/types/index.d.ts +1 -1
  353. package/types/public/ReactNativeTypes.d.ts +4 -8
  354. package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
  355. package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
  356. package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
  357. package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +0 -35
  358. package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
  359. package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
  360. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +0 -101
  361. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +0 -569
  362. package/codegen/NativeDevToolsSettingsManagerSpec.g.h +0 -53
  363. package/codegen/NativePerformanceObserverSpec.g.h +0 -131
  364. package/src/private/components/useSyncOnScroll.js +0 -48
  365. package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
  366. package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
  367. package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
  368. package/types/experimental.d.ts +0 -59
  369. /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
@@ -11,7 +11,7 @@ import type * as React from 'react';
11
11
  import {Constructor} from '../../../types/private/Utilities';
12
12
  import {TimerMixin} from '../../../types/private/TimerMixin';
13
13
  import {
14
- HostComponent,
14
+ HostInstance,
15
15
  NativeMethods,
16
16
  } from '../../../types/public/ReactNativeTypes';
17
17
  import {ColorValue, StyleProp} from '../../StyleSheet/StyleSheet';
@@ -255,6 +255,11 @@ export interface TextInputIOSProps {
255
255
  * - `'birthdateDay'` (iOS 17+)
256
256
  * - `'birthdateMonth'` (iOS 17+)
257
257
  * - `'birthdateYear'` (iOS 17+)
258
+ * - `'cellularEID'` (iOS 17.4+)
259
+ * - `'cellularIMEI'` (iOS 17.4+)
260
+ * - `'dateTime'` (iOS 15+)
261
+ * - `'flightNumber'` (iOS 15+)
262
+ * - `'shipmentTrackingNumber'` (iOS 15+)
258
263
  *
259
264
  */
260
265
  textContentType?:
@@ -299,6 +304,11 @@ export interface TextInputIOSProps {
299
304
  | 'birthdateDay'
300
305
  | 'birthdateMonth'
301
306
  | 'birthdateYear'
307
+ | 'cellularEID'
308
+ | 'cellularIMEI'
309
+ | 'dateTime'
310
+ | 'flightNumber'
311
+ | 'shipmentTrackingNumber'
302
312
  | undefined;
303
313
 
304
314
  /**
@@ -316,6 +326,19 @@ export interface TextInputIOSProps {
316
326
  | 'push-out'
317
327
  | undefined;
318
328
 
329
+ /**
330
+ * Set line break mode on iOS.
331
+ * @platform ios
332
+ */
333
+ lineBreakModeIOS?:
334
+ | 'wordWrapping'
335
+ | 'char'
336
+ | 'clip'
337
+ | 'head'
338
+ | 'middle'
339
+ | 'tail'
340
+ | undefined;
341
+
319
342
  /**
320
343
  * If `false`, the iOS system will not insert an extra space after a paste operation
321
344
  * neither delete one or two spaces after a cut or delete operation.
@@ -937,21 +960,21 @@ interface TextInputState {
937
960
  * Returns the ref of the currently focused text field, if one exists
938
961
  * If no text field is focused it returns null
939
962
  */
940
- currentlyFocusedInput(): React.ElementRef<HostComponent<unknown>>;
963
+ currentlyFocusedInput(): HostInstance;
941
964
 
942
965
  /**
943
966
  * @param textField ref of the text field to focus
944
967
  * Focuses the specified text field
945
968
  * noop if the text field was already focused
946
969
  */
947
- focusTextInput(textField?: React.ElementRef<HostComponent<unknown>>): void;
970
+ focusTextInput(textField?: HostInstance): void;
948
971
 
949
972
  /**
950
973
  * @param textField ref of the text field to focus
951
974
  * Unfocuses the specified text field
952
975
  * noop if it wasn't focused
953
976
  */
954
- blurTextInput(textField?: React.ElementRef<HostComponent<unknown>>): void;
977
+ blurTextInput(textField?: HostInstance): void;
955
978
  }
956
979
 
957
980
  /**
@@ -8,7 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
11
+ import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
12
12
  import type {
13
13
  PressEvent,
14
14
  ScrollEvent,
@@ -22,7 +22,6 @@ import {
22
22
  type ViewStyleProp,
23
23
  } from '../../StyleSheet/StyleSheet';
24
24
  import * as React from 'react';
25
- type ComponentRef = React.ElementRef<HostComponent<mixed>>;
26
25
 
27
26
  type ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);
28
27
 
@@ -198,7 +197,12 @@ export type TextContentType =
198
197
  | 'birthdate'
199
198
  | 'birthdateDay'
200
199
  | 'birthdateMonth'
201
- | 'birthdateYear';
200
+ | 'birthdateYear'
201
+ | 'cellularEID'
202
+ | 'cellularIMEI'
203
+ | 'dateTime'
204
+ | 'flightNumber'
205
+ | 'shipmentTrackingNumber';
202
206
 
203
207
  export type enterKeyHintType =
204
208
  | 'enter'
@@ -262,6 +266,12 @@ type IOSProps = $ReadOnly<{|
262
266
  */
263
267
  inputAccessoryViewID?: ?string,
264
268
 
269
+ /**
270
+ * An optional label that overrides the default input accessory view button label.
271
+ * @platform ios
272
+ */
273
+ inputAccessoryViewButtonLabel?: ?string,
274
+
265
275
  /**
266
276
  * Determines the color of the keyboard.
267
277
  * @platform ios
@@ -312,6 +322,19 @@ type IOSProps = $ReadOnly<{|
312
322
  */
313
323
  lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
314
324
 
325
+ /**
326
+ * Set line break mode on iOS.
327
+ * @platform ios
328
+ */
329
+ lineBreakModeIOS?: ?(
330
+ | 'wordWrapping'
331
+ | 'char'
332
+ | 'clip'
333
+ | 'head'
334
+ | 'middle'
335
+ | 'tail'
336
+ ),
337
+
315
338
  /**
316
339
  * If `false`, the iOS system will not insert an extra space after a paste operation
317
340
  * neither delete one or two spaces after a cut or delete operation.
@@ -608,9 +631,7 @@ export type Props = $ReadOnly<{|
608
631
  */
609
632
  editable?: ?boolean,
610
633
 
611
- forwardedRef?: ?ReactRefSetter<
612
- React.ElementRef<HostComponent<mixed>> & ImperativeMethods,
613
- >,
634
+ forwardedRef?: ?ReactRefSetter<HostInstance & ImperativeMethods>,
614
635
 
615
636
  /**
616
637
  * `enterKeyHint` defines what action label (or icon) to present for the enter key on virtual keyboards.
@@ -956,7 +977,7 @@ export type Props = $ReadOnly<{|
956
977
  type ImperativeMethods = $ReadOnly<{|
957
978
  clear: () => void,
958
979
  isFocused: () => boolean,
959
- getNativeRef: () => ?React.ElementRef<HostComponent<mixed>>,
980
+ getNativeRef: () => ?HostInstance,
960
981
  setSelection: (start: number, end: number) => void,
961
982
  |}>;
962
983
 
@@ -1071,22 +1092,18 @@ type ImperativeMethods = $ReadOnly<{|
1071
1092
  * or control this param programmatically with native code.
1072
1093
  *
1073
1094
  */
1074
- type InternalTextInput = (props: Props) => React.Node;
1095
+ type InternalTextInput = component(
1096
+ ref: React.RefSetter<$ReadOnly<{...HostInstance, ...ImperativeMethods}>>,
1097
+ ...Props
1098
+ );
1075
1099
 
1076
1100
  export type TextInputComponentStatics = $ReadOnly<{|
1077
1101
  State: $ReadOnly<{|
1078
- currentlyFocusedInput: () => ?ComponentRef,
1102
+ currentlyFocusedInput: () => ?HostInstance,
1079
1103
  currentlyFocusedField: () => ?number,
1080
- focusTextInput: (textField: ?ComponentRef) => void,
1081
- blurTextInput: (textField: ?ComponentRef) => void,
1104
+ focusTextInput: (textField: ?HostInstance) => void,
1105
+ blurTextInput: (textField: ?HostInstance) => void,
1082
1106
  |}>,
1083
1107
  |}>;
1084
1108
 
1085
- export type TextInputType = React.AbstractComponent<
1086
- React.ElementConfig<InternalTextInput>,
1087
- $ReadOnly<{|
1088
- ...React.ElementRef<HostComponent<mixed>>,
1089
- ...ImperativeMethods,
1090
- |}>,
1091
- > &
1092
- TextInputComponentStatics;
1109
+ export type TextInputType = InternalTextInput & TextInputComponentStatics;
@@ -8,7 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
11
+ import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
12
12
  import type {____TextStyle_Internal as TextStyleInternal} from '../../StyleSheet/StyleSheetTypes';
13
13
  import type {
14
14
  PressEvent,
@@ -37,10 +37,10 @@ import * as React from 'react';
37
37
  import {useCallback, useLayoutEffect, useRef, useState} from 'react';
38
38
 
39
39
  type ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);
40
- type TextInputInstance = React.ElementRef<HostComponent<mixed>> & {
40
+ type TextInputInstance = HostInstance & {
41
41
  +clear: () => void,
42
42
  +isFocused: () => boolean,
43
- +getNativeRef: () => ?React.ElementRef<HostComponent<mixed>>,
43
+ +getNativeRef: () => ?HostInstance,
44
44
  +setSelection: (start: number, end: number) => void,
45
45
  };
46
46
 
@@ -238,7 +238,12 @@ export type TextContentType =
238
238
  | 'birthdate'
239
239
  | 'birthdateDay'
240
240
  | 'birthdateMonth'
241
- | 'birthdateYear';
241
+ | 'birthdateYear'
242
+ | 'cellularEID'
243
+ | 'cellularIMEI'
244
+ | 'dateTime'
245
+ | 'flightNumber'
246
+ | 'shipmentTrackingNumber';
242
247
 
243
248
  export type enterKeyHintType =
244
249
  // Cross Platform
@@ -305,6 +310,12 @@ type IOSProps = $ReadOnly<{|
305
310
  */
306
311
  inputAccessoryViewID?: ?string,
307
312
 
313
+ /**
314
+ * An optional label that overrides the default input accessory view button label.
315
+ * @platform ios
316
+ */
317
+ inputAccessoryViewButtonLabel?: ?string,
318
+
308
319
  /**
309
320
  * Determines the color of the keyboard.
310
321
  * @platform ios
@@ -358,6 +369,19 @@ type IOSProps = $ReadOnly<{|
358
369
  */
359
370
  lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
360
371
 
372
+ /**
373
+ * Set line break mode on iOS.
374
+ * @platform ios
375
+ */
376
+ lineBreakModeIOS?: ?(
377
+ | 'wordWrapping'
378
+ | 'char'
379
+ | 'clip'
380
+ | 'head'
381
+ | 'middle'
382
+ | 'tail'
383
+ ),
384
+
361
385
  /**
362
386
  * If `false`, the iOS system will not insert an extra space after a paste operation
363
387
  * neither delete one or two spaces after a cut or delete operation.
@@ -988,7 +1012,7 @@ function useTextInputStateSynchronization_STATE({
988
1012
  props: Props,
989
1013
  mostRecentEventCount: number,
990
1014
  selection: ?Selection,
991
- inputRef: React.RefObject<null | React.ElementRef<HostComponent<mixed>>>,
1015
+ inputRef: React.RefObject<null | HostInstance>,
992
1016
  text: string,
993
1017
  viewCommands: ViewCommands,
994
1018
  }): {
@@ -1069,7 +1093,7 @@ function useTextInputStateSynchronization_REFS({
1069
1093
  props: Props,
1070
1094
  mostRecentEventCount: number,
1071
1095
  selection: ?Selection,
1072
- inputRef: React.RefObject<null | React.ElementRef<HostComponent<mixed>>>,
1096
+ inputRef: React.RefObject<null | HostInstance>,
1073
1097
  text: string,
1074
1098
  viewCommands: ViewCommands,
1075
1099
  }): {
@@ -1269,7 +1293,7 @@ function InternalTextInput(props: Props): React.Node {
1269
1293
  ...otherProps
1270
1294
  } = props;
1271
1295
 
1272
- const inputRef = useRef<null | React.ElementRef<HostComponent<mixed>>>(null);
1296
+ const inputRef = useRef<null | HostInstance>(null);
1273
1297
 
1274
1298
  const selection: ?Selection =
1275
1299
  propsSelection == null
@@ -1367,7 +1391,7 @@ function InternalTextInput(props: Props): React.Node {
1367
1391
  isFocused(): boolean {
1368
1392
  return TextInputState.currentlyFocusedInput() === inputRef.current;
1369
1393
  },
1370
- getNativeRef(): ?React.ElementRef<HostComponent<mixed>> {
1394
+ getNativeRef(): ?HostInstance {
1371
1395
  return inputRef.current;
1372
1396
  },
1373
1397
  setSelection(start: number, end: number): void {
@@ -1515,7 +1539,7 @@ function InternalTextInput(props: Props): React.Node {
1515
1539
 
1516
1540
  // TextInput handles onBlur and onFocus events
1517
1541
  // so omitting onBlur and onFocus pressability handlers here.
1518
- const {onBlur, onFocus, ...eventHandlers} = usePressability(config) || {};
1542
+ const {onBlur, onFocus, ...eventHandlers} = usePressability(config);
1519
1543
 
1520
1544
  let _accessibilityState;
1521
1545
  if (
@@ -1771,11 +1795,11 @@ const autoCompleteWebToTextContentTypeMap = {
1771
1795
  username: 'username',
1772
1796
  };
1773
1797
 
1774
- const ExportedForwardRef: React.AbstractComponent<
1775
- React.ElementConfig<typeof InternalTextInput>,
1776
- TextInputInstance,
1798
+ const ExportedForwardRef: component(
1799
+ ref: React.RefSetter<TextInputInstance>,
1800
+ ...props: React.ElementConfig<typeof InternalTextInput>
1777
1801
  // $FlowFixMe[incompatible-call]
1778
- > = React.forwardRef(function TextInput(
1802
+ ) = React.forwardRef(function TextInput(
1779
1803
  {
1780
1804
  allowFontScaling = true,
1781
1805
  rejectResponderTermination = true,
@@ -8,7 +8,7 @@
8
8
  * @format
9
9
  */
10
10
 
11
- import type {HostComponent} from '../../Renderer/shims/ReactNativeTypes';
11
+ import type {HostInstance} from '../../Renderer/shims/ReactNativeTypes';
12
12
  import type {____TextStyle_Internal as TextStyleInternal} from '../../StyleSheet/StyleSheetTypes';
13
13
  import type {
14
14
  KeyEvent, // Windows
@@ -39,10 +39,10 @@ import * as React from 'react';
39
39
  import {useCallback, useLayoutEffect, useRef, useState} from 'react';
40
40
 
41
41
  type ReactRefSetter<T> = {current: null | T, ...} | ((ref: null | T) => mixed);
42
- type TextInputInstance = React.ElementRef<HostComponent<mixed>> & {
42
+ type TextInputInstance = HostInstance & {
43
43
  +clear: () => void,
44
44
  +isFocused: () => boolean,
45
- +getNativeRef: () => ?React.ElementRef<HostComponent<mixed>>,
45
+ +getNativeRef: () => ?HostInstance,
46
46
  +setSelection: (start: number, end: number) => void,
47
47
  };
48
48
 
@@ -250,7 +250,12 @@ export type TextContentType =
250
250
  | 'birthdate'
251
251
  | 'birthdateDay'
252
252
  | 'birthdateMonth'
253
- | 'birthdateYear';
253
+ | 'birthdateYear'
254
+ | 'cellularEID'
255
+ | 'cellularIMEI'
256
+ | 'dateTime'
257
+ | 'flightNumber'
258
+ | 'shipmentTrackingNumber';
254
259
 
255
260
  export type enterKeyHintType =
256
261
  // Cross Platform
@@ -317,6 +322,12 @@ type IOSProps = $ReadOnly<{|
317
322
  */
318
323
  inputAccessoryViewID?: ?string,
319
324
 
325
+ /**
326
+ * An optional label that overrides the default input accessory view button label.
327
+ * @platform ios
328
+ */
329
+ inputAccessoryViewButtonLabel?: ?string,
330
+
320
331
  /**
321
332
  * Determines the color of the keyboard.
322
333
  * @platform ios
@@ -367,6 +378,19 @@ type IOSProps = $ReadOnly<{|
367
378
  */
368
379
  lineBreakStrategyIOS?: ?('none' | 'standard' | 'hangul-word' | 'push-out'),
369
380
 
381
+ /**
382
+ * Set line break mode on iOS.
383
+ * @platform ios
384
+ */
385
+ lineBreakModeIOS?: ?(
386
+ | 'wordWrapping'
387
+ | 'char'
388
+ | 'clip'
389
+ | 'head'
390
+ | 'middle'
391
+ | 'tail'
392
+ ),
393
+
370
394
  /**
371
395
  * If `false`, the iOS system will not insert an extra space after a paste operation
372
396
  * neither delete one or two spaces after a cut or delete operation.
@@ -1065,7 +1089,7 @@ function useTextInputStateSynchronization_STATE({
1065
1089
  props: Props,
1066
1090
  mostRecentEventCount: number,
1067
1091
  selection: ?Selection,
1068
- inputRef: React.RefObject<null | React.ElementRef<HostComponent<mixed>>>,
1092
+ inputRef: React.RefObject<null | HostInstance>,
1069
1093
  text: string,
1070
1094
  viewCommands: ViewCommands,
1071
1095
  }): {
@@ -1146,7 +1170,7 @@ function useTextInputStateSynchronization_REFS({
1146
1170
  props: Props,
1147
1171
  mostRecentEventCount: number,
1148
1172
  selection: ?Selection,
1149
- inputRef: React.RefObject<null | React.ElementRef<HostComponent<mixed>>>,
1173
+ inputRef: React.RefObject<null | HostInstance>,
1150
1174
  text: string,
1151
1175
  viewCommands: ViewCommands,
1152
1176
  }): {
@@ -1336,6 +1360,8 @@ function InternalTextInput(props: Props): React.Node {
1336
1360
  'aria-disabled': ariaDisabled,
1337
1361
  'aria-expanded': ariaExpanded,
1338
1362
  'aria-selected': ariaSelected,
1363
+ 'aria-multiselectable': ariaMultiselectable, // Windows
1364
+ 'aria-required': ariaRequired, // Windows
1339
1365
  accessibilityState,
1340
1366
  id,
1341
1367
  tabIndex,
@@ -1346,7 +1372,7 @@ function InternalTextInput(props: Props): React.Node {
1346
1372
  ...otherProps
1347
1373
  } = props;
1348
1374
 
1349
- const inputRef = useRef<null | React.ElementRef<HostComponent<mixed>>>(null);
1375
+ const inputRef = useRef<null | HostInstance>(null);
1350
1376
 
1351
1377
  const selection: ?Selection =
1352
1378
  propsSelection == null
@@ -1364,8 +1390,8 @@ function InternalTextInput(props: Props): React.Node {
1364
1390
  : '';
1365
1391
 
1366
1392
  const viewCommands =
1367
- WindowsTextInputCommands ||
1368
- AndroidTextInputCommands || // [Windows]
1393
+ WindowsTextInputCommands || // [Windows]
1394
+ AndroidTextInputCommands ||
1369
1395
  (props.multiline === true
1370
1396
  ? RCTMultilineTextInputNativeCommands
1371
1397
  : RCTSinglelineTextInputNativeCommands);
@@ -1450,7 +1476,7 @@ function InternalTextInput(props: Props): React.Node {
1450
1476
  currentlyFocusedInput === inputRef.current
1451
1477
  );
1452
1478
  },
1453
- getNativeRef(): ?React.ElementRef<HostComponent<mixed>> {
1479
+ getNativeRef(): ?HostInstance {
1454
1480
  return inputRef.current;
1455
1481
  },
1456
1482
  setSelection(start: number, end: number): void {
@@ -1604,7 +1630,7 @@ function InternalTextInput(props: Props): React.Node {
1604
1630
 
1605
1631
  // TextInput handles onBlur and onFocus events
1606
1632
  // so omitting onBlur and onFocus pressability handlers here.
1607
- const {onBlur, onFocus, ...eventHandlers} = usePressability(config) || {};
1633
+ const {onBlur, onFocus, ...eventHandlers} = usePressability(config);
1608
1634
  const eventPhase = Object.freeze({Capturing: 1, Bubbling: 3});
1609
1635
  const _keyDown = (event: KeyEvent) => {
1610
1636
  if (props.keyDownEvents && event.isPropagationStopped() !== true) {
@@ -1664,7 +1690,9 @@ function InternalTextInput(props: Props): React.Node {
1664
1690
  ariaChecked != null ||
1665
1691
  ariaDisabled != null ||
1666
1692
  ariaExpanded != null ||
1667
- ariaSelected != null
1693
+ ariaSelected != null ||
1694
+ ariaMultiselectable != null || // Windows
1695
+ ariaRequired != null // Windows
1668
1696
  ) {
1669
1697
  _accessibilityState = {
1670
1698
  busy: ariaBusy ?? accessibilityState?.busy,
@@ -1672,6 +1700,9 @@ function InternalTextInput(props: Props): React.Node {
1672
1700
  disabled: ariaDisabled ?? accessibilityState?.disabled,
1673
1701
  expanded: ariaExpanded ?? accessibilityState?.expanded,
1674
1702
  selected: ariaSelected ?? accessibilityState?.selected,
1703
+ multiselectable:
1704
+ ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows
1705
+ required: ariaRequired ?? accessibilityState?.required, // Windows
1675
1706
  };
1676
1707
  }
1677
1708
 
@@ -1955,11 +1986,11 @@ const autoCompleteWebToTextContentTypeMap = {
1955
1986
  username: 'username',
1956
1987
  };
1957
1988
 
1958
- const ExportedForwardRef: React.AbstractComponent<
1959
- React.ElementConfig<typeof InternalTextInput>,
1960
- TextInputInstance,
1989
+ const ExportedForwardRef: component(
1990
+ ref: React.RefSetter<TextInputInstance>,
1991
+ ...props: React.ElementConfig<typeof InternalTextInput>
1961
1992
  // $FlowFixMe[incompatible-call]
1962
- > = React.forwardRef(function TextInput(
1993
+ ) = React.forwardRef(function TextInput(
1963
1994
  {
1964
1995
  allowFontScaling = true,
1965
1996
  rejectResponderTermination = true,
@@ -13,7 +13,7 @@
13
13
  // through here.
14
14
 
15
15
  import type {
16
- HostComponent,
16
+ HostInstance,
17
17
  MeasureInWindowOnSuccessCallback,
18
18
  MeasureLayoutOnSuccessCallback,
19
19
  MeasureOnSuccessCallback,
@@ -24,24 +24,22 @@ import {Commands as iOSTextInputCommands} from '../../Components/TextInput/RCTSi
24
24
 
25
25
  const {findNodeHandle} = require('../../ReactNative/RendererProxy');
26
26
  const Platform = require('../../Utilities/Platform');
27
- const React = require('react');
28
- type ComponentRef = React.ElementRef<HostComponent<mixed>>;
29
27
 
30
- let currentlyFocusedInputRef: ?ComponentRef = null;
28
+ let currentlyFocusedInputRef: ?HostInstance = null;
31
29
  const inputs = new Set<{
32
30
  blur(): void,
33
31
  focus(): void,
34
32
  measure(callback: MeasureOnSuccessCallback): void,
35
33
  measureInWindow(callback: MeasureInWindowOnSuccessCallback): void,
36
34
  measureLayout(
37
- relativeToNativeNode: number | React.ElementRef<HostComponent<mixed>>,
35
+ relativeToNativeNode: number | HostInstance,
38
36
  onSuccess: MeasureLayoutOnSuccessCallback,
39
37
  onFail?: () => void,
40
38
  ): void,
41
39
  setNativeProps(nativeProps: {...}): void,
42
40
  }>();
43
41
 
44
- function currentlyFocusedInput(): ?ComponentRef {
42
+ function currentlyFocusedInput(): ?HostInstance {
45
43
  return currentlyFocusedInputRef;
46
44
  }
47
45
 
@@ -59,13 +57,13 @@ function currentlyFocusedField(): ?number {
59
57
  return findNodeHandle(currentlyFocusedInputRef);
60
58
  }
61
59
 
62
- function focusInput(textField: ?ComponentRef): void {
60
+ function focusInput(textField: ?HostInstance): void {
63
61
  if (currentlyFocusedInputRef !== textField && textField != null) {
64
62
  currentlyFocusedInputRef = textField;
65
63
  }
66
64
  }
67
65
 
68
- function blurInput(textField: ?ComponentRef): void {
66
+ function blurInput(textField: ?HostInstance): void {
69
67
  if (currentlyFocusedInputRef === textField && textField != null) {
70
68
  currentlyFocusedInputRef = null;
71
69
  }
@@ -92,7 +90,7 @@ function blurField(textFieldID: ?number) {
92
90
  * Focuses the specified text field
93
91
  * noop if the text field was already focused or if the field is not editable
94
92
  */
95
- function focusTextInput(textField: ?ComponentRef) {
93
+ function focusTextInput(textField: ?HostInstance) {
96
94
  if (typeof textField === 'number') {
97
95
  if (__DEV__) {
98
96
  console.error(
@@ -131,7 +129,7 @@ function focusTextInput(textField: ?ComponentRef) {
131
129
  * Unfocuses the specified text field
132
130
  * noop if it wasn't focused
133
131
  */
134
- function blurTextInput(textField: ?ComponentRef) {
132
+ function blurTextInput(textField: ?HostInstance) {
135
133
  if (typeof textField === 'number') {
136
134
  if (__DEV__) {
137
135
  console.error(
@@ -157,7 +155,7 @@ function blurTextInput(textField: ?ComponentRef) {
157
155
  }
158
156
  }
159
157
 
160
- function registerInput(textField: ComponentRef) {
158
+ function registerInput(textField: HostInstance) {
161
159
  if (typeof textField === 'number') {
162
160
  if (__DEV__) {
163
161
  console.error(
@@ -171,7 +169,7 @@ function registerInput(textField: ComponentRef) {
171
169
  inputs.add(textField);
172
170
  }
173
171
 
174
- function unregisterInput(textField: ComponentRef) {
172
+ function unregisterInput(textField: HostInstance) {
175
173
  if (typeof textField === 'number') {
176
174
  if (__DEV__) {
177
175
  console.error(
@@ -184,7 +182,7 @@ function unregisterInput(textField: ComponentRef) {
184
182
  inputs.delete(textField);
185
183
  }
186
184
 
187
- function isTextInput(textField: ComponentRef): boolean {
185
+ function isTextInput(textField: HostInstance): boolean {
188
186
  if (typeof textField === 'number') {
189
187
  if (__DEV__) {
190
188
  console.error(
@@ -13,7 +13,7 @@
13
13
  // through here.
14
14
 
15
15
  import type {
16
- HostComponent,
16
+ HostInstance,
17
17
  MeasureInWindowOnSuccessCallback,
18
18
  MeasureLayoutOnSuccessCallback,
19
19
  MeasureOnSuccessCallback,
@@ -25,24 +25,22 @@ import {Commands as WindowsTextInputCommands} from '../../Components/TextInput/W
25
25
 
26
26
  const {findNodeHandle} = require('../../ReactNative/RendererProxy');
27
27
  const Platform = require('../../Utilities/Platform');
28
- const React = require('react');
29
- type ComponentRef = React.ElementRef<HostComponent<mixed>>;
30
28
 
31
- let currentlyFocusedInputRef: ?ComponentRef = null;
29
+ let currentlyFocusedInputRef: ?HostInstance = null;
32
30
  const inputs = new Set<{
33
31
  blur(): void,
34
32
  focus(): void,
35
33
  measure(callback: MeasureOnSuccessCallback): void,
36
34
  measureInWindow(callback: MeasureInWindowOnSuccessCallback): void,
37
35
  measureLayout(
38
- relativeToNativeNode: number | React.ElementRef<HostComponent<mixed>>,
36
+ relativeToNativeNode: number | HostInstance,
39
37
  onSuccess: MeasureLayoutOnSuccessCallback,
40
38
  onFail?: () => void,
41
39
  ): void,
42
40
  setNativeProps(nativeProps: {...}): void,
43
41
  }>();
44
42
 
45
- function currentlyFocusedInput(): ?ComponentRef {
43
+ function currentlyFocusedInput(): ?HostInstance {
46
44
  return currentlyFocusedInputRef;
47
45
  }
48
46
 
@@ -60,13 +58,13 @@ function currentlyFocusedField(): ?number {
60
58
  return findNodeHandle(currentlyFocusedInputRef);
61
59
  }
62
60
 
63
- function focusInput(textField: ?ComponentRef): void {
61
+ function focusInput(textField: ?HostInstance): void {
64
62
  if (currentlyFocusedInputRef !== textField && textField != null) {
65
63
  currentlyFocusedInputRef = textField;
66
64
  }
67
65
  }
68
66
 
69
- function blurInput(textField: ?ComponentRef): void {
67
+ function blurInput(textField: ?HostInstance): void {
70
68
  if (currentlyFocusedInputRef === textField && textField != null) {
71
69
  currentlyFocusedInputRef = null;
72
70
  }
@@ -93,7 +91,7 @@ function blurField(textFieldID: ?number) {
93
91
  * Focuses the specified text field
94
92
  * noop if the text field was already focused or if the field is not editable
95
93
  */
96
- function focusTextInput(textField: ?ComponentRef) {
94
+ function focusTextInput(textField: ?HostInstance) {
97
95
  if (typeof textField === 'number') {
98
96
  if (__DEV__) {
99
97
  console.error(
@@ -141,7 +139,7 @@ function focusTextInput(textField: ?ComponentRef) {
141
139
  * Unfocuses the specified text field
142
140
  * noop if it wasn't focused
143
141
  */
144
- function blurTextInput(textField: ?ComponentRef) {
142
+ function blurTextInput(textField: ?HostInstance) {
145
143
  if (typeof textField === 'number') {
146
144
  if (__DEV__) {
147
145
  console.error(
@@ -172,7 +170,7 @@ function blurTextInput(textField: ?ComponentRef) {
172
170
  }
173
171
  }
174
172
 
175
- function registerInput(textField: ComponentRef) {
173
+ function registerInput(textField: HostInstance) {
176
174
  if (typeof textField === 'number') {
177
175
  if (__DEV__) {
178
176
  console.error(
@@ -186,7 +184,7 @@ function registerInput(textField: ComponentRef) {
186
184
  inputs.add(textField);
187
185
  }
188
186
 
189
- function unregisterInput(textField: ComponentRef) {
187
+ function unregisterInput(textField: HostInstance) {
190
188
  if (typeof textField === 'number') {
191
189
  if (__DEV__) {
192
190
  console.error(
@@ -199,7 +197,7 @@ function unregisterInput(textField: ComponentRef) {
199
197
  inputs.delete(textField);
200
198
  }
201
199
 
202
- function isTextInput(textField: ComponentRef): boolean {
200
+ function isTextInput(textField: HostInstance): boolean {
203
201
  if (typeof textField === 'number') {
204
202
  if (__DEV__) {
205
203
  console.error(