react-native-windows 0.82.1 → 0.83.0-preview.0

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 (232) hide show
  1. package/.flowconfig +2 -7
  2. package/Libraries/Animated/components/AnimatedFlatList.js +5 -3
  3. package/Libraries/Animated/components/AnimatedImage.js +4 -3
  4. package/Libraries/Animated/components/AnimatedSectionList.js +2 -2
  5. package/Libraries/Animated/components/AnimatedText.js +7 -3
  6. package/Libraries/Animated/components/AnimatedView.js +3 -2
  7. package/Libraries/Animated/createAnimatedComponent.js +24 -12
  8. package/Libraries/Animated/nodes/AnimatedColor.js +26 -10
  9. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +43 -15
  10. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +43 -15
  11. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +2 -2
  12. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +2 -2
  13. package/Libraries/Components/Glyph/Glyph.js +4 -1
  14. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +2 -2
  15. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +3 -3
  16. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +2 -2
  17. package/Libraries/Components/ScrollView/ScrollView.js +1 -0
  18. package/Libraries/Components/ScrollView/ScrollView.windows.js +1 -0
  19. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +6 -6
  20. package/Libraries/Components/Switch/Switch.d.ts +2 -2
  21. package/Libraries/Components/Switch/Switch.windows.js +1 -1
  22. package/Libraries/Components/TextInput/TextInput.d.ts +2 -5
  23. package/Libraries/Components/TextInput/TextInput.js +6 -0
  24. package/Libraries/Components/TextInput/TextInput.windows.js +6 -0
  25. package/Libraries/Components/Touchable/TouchableBounce.js +7 -7
  26. package/Libraries/Components/Touchable/TouchableBounce.windows.js +7 -7
  27. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
  28. package/Libraries/Components/View/ReactNativeStyleAttributes.js +19 -1
  29. package/Libraries/Components/View/View.d.ts +2 -2
  30. package/Libraries/Components/View/View.windows.js +0 -1
  31. package/Libraries/Components/View/ViewNativeComponent.js +13 -1
  32. package/Libraries/Core/ReactNativeVersion.js +3 -3
  33. package/Libraries/Core/setUpPerformance.js +2 -0
  34. package/Libraries/Debugging/DebuggingOverlay.js +14 -14
  35. package/Libraries/Debugging/DebuggingOverlayRegistry.js +8 -2
  36. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +5 -2
  37. package/Libraries/Image/Image.d.ts +3 -3
  38. package/Libraries/Image/ImageInjection.js +3 -6
  39. package/Libraries/Image/ImageTypes.flow.js +3 -7
  40. package/Libraries/Lists/FlatList.js +8 -8
  41. package/Libraries/Lists/SectionList.d.ts +5 -1
  42. package/Libraries/Lists/ViewabilityHelper.js +1 -1
  43. package/Libraries/Lists/VirtualizedList.js +1 -0
  44. package/Libraries/LogBox/UI/AnsiHighlight.js +4 -1
  45. package/Libraries/NativeComponent/BaseViewConfig.android.js +11 -2
  46. package/Libraries/NativeComponent/NativeComponentRegistry.d.ts +98 -0
  47. package/Libraries/NativeComponent/NativeComponentRegistry.js +2 -0
  48. package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +3 -1
  49. package/Libraries/NativeComponent/ViewConfigIgnore.windows.js +45 -0
  50. package/Libraries/Network/RCTNetworking.android.js +3 -1
  51. package/Libraries/Network/RCTNetworking.ios.js +3 -0
  52. package/Libraries/Network/RCTNetworking.windows.js +3 -0
  53. package/Libraries/Network/XMLHttpRequest.js +1 -41
  54. package/Libraries/Pressability/usePressability.js +14 -3
  55. package/Libraries/ReactNative/PaperUIManager.windows.js +3 -3
  56. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +20 -82
  57. package/Libraries/ReactNative/getNativeComponentAttributes.js +12 -0
  58. package/Libraries/Renderer/implementations/ReactFabric-dev.js +6759 -4478
  59. package/Libraries/Renderer/implementations/ReactFabric-prod.js +3169 -3119
  60. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4732 -3535
  61. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +6646 -4070
  62. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3136 -2825
  63. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4761 -3312
  64. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  65. package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
  66. package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +2 -1
  67. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
  68. package/Libraries/StyleSheet/StyleSheetTypes.js +44 -0
  69. package/Libraries/StyleSheet/processBackgroundPosition.js +284 -0
  70. package/Libraries/StyleSheet/processBackgroundRepeat.js +105 -0
  71. package/Libraries/StyleSheet/processBackgroundSize.js +104 -0
  72. package/Libraries/Text/Text.d.ts +2 -2
  73. package/Libraries/Text/TextNativeComponent.js +10 -0
  74. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -9
  75. package/Libraries/Utilities/DevLoadingView.js +14 -6
  76. package/Libraries/Utilities/HMRClient.js +13 -5
  77. package/Microsoft.ReactNative/Base/CxxReactIncludes.h +11 -0
  78. package/Microsoft.ReactNative/CompositionComponentView.idl +2 -0
  79. package/Microsoft.ReactNative/CompositionHwndHost.idl +1 -0
  80. package/Microsoft.ReactNative/Fabric/ComponentView.cpp +1 -1
  81. package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -1
  82. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +10 -40
  83. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +3 -80
  84. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.cpp +45 -12
  85. package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.h +8 -0
  86. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +61 -74
  87. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +4 -0
  88. package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +1 -0
  89. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +4 -3
  90. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +2 -1
  91. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeWindow.cpp +245 -0
  92. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeWindow.h +80 -0
  93. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +20 -36
  94. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +70 -49
  95. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +4 -1
  96. package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +5 -0
  97. package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +7 -2
  98. package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +1 -0
  99. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -1
  100. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -1
  101. package/Microsoft.ReactNative/Modules/LogBoxModule.cpp +20 -94
  102. package/Microsoft.ReactNative/Modules/LogBoxModule.h +1 -3
  103. package/Microsoft.ReactNative/Pch/pch.h +2 -0
  104. package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +5 -0
  105. package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -0
  106. package/Microsoft.ReactNative/ReactNativeAppBuilder.cpp +0 -41
  107. package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +0 -11
  108. package/Microsoft.ReactNative/ReactNativeIsland.idl +2 -3
  109. package/Microsoft.ReactNative/ReactNativeWin32App.cpp +31 -101
  110. package/Microsoft.ReactNative/ReactNativeWin32App.h +2 -13
  111. package/Microsoft.ReactNative/ReactNativeWindow.idl +44 -0
  112. package/Microsoft.ReactNative.Cxx/AutoDraw.h +9 -1
  113. package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +13 -16
  114. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +24 -36
  115. package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +5 -8
  116. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +8 -6
  117. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +32 -49
  118. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +27 -76
  119. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +4 -2
  120. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +19 -18
  121. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +25 -48
  122. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Convert.h +38 -31
  123. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +11 -6
  124. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/EventEmitter.h +47 -45
  125. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Function.h +69 -89
  126. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/HighResTimeStamp.h +8 -8
  127. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +6 -6
  128. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +16 -8
  129. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +17 -24
  130. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +17 -17
  131. package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +20 -29
  132. package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +2 -7
  133. package/Microsoft.ReactNative.Cxx/ReactCommon/react/timing/primitives.h +127 -115
  134. package/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.props +10 -0
  135. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.props +10 -0
  136. package/PropertySheets/Generated/PackageVersion.g.props +5 -5
  137. package/PropertySheets/Warnings.props +2 -1
  138. package/ReactCommon/ReactCommon.vcxproj +21 -12
  139. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +2 -2
  140. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +381 -0
  141. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +49 -0
  142. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +145 -0
  143. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +100 -0
  144. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +256 -0
  145. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +13 -4
  146. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +93 -0
  147. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +149 -0
  148. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +25 -35
  149. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +86 -67
  150. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSIExecutor.cpp +629 -0
  151. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +123 -0
  152. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +84 -68
  153. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +31 -35
  154. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/Utf8.h +4 -5
  155. package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +2 -1
  156. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +24 -36
  157. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +28 -66
  158. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +414 -0
  159. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +3 -3
  160. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/image/conversions.h +8 -4
  161. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +19 -16
  162. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +8 -9
  163. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +25 -95
  164. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +85 -42
  165. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +81 -0
  166. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +140 -0
  167. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h +25 -31
  168. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +746 -0
  169. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +702 -0
  170. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +1 -15
  171. package/Scripts/creaternwapp.cmd +1 -1
  172. package/Scripts/perf/compare-results.js +357 -0
  173. package/Scripts/perf/create-perf-test.js +343 -0
  174. package/Scripts/perf/post-pr-comment.js +210 -0
  175. package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +8 -0
  176. package/Shared/Hermes/HermesRuntimeTargetDelegate.h +3 -0
  177. package/Shared/Shared.vcxitems +24 -12
  178. package/Shared/Shared.vcxitems.filters +11 -3
  179. package/codegen/NativeIntersectionObserverSpec.g.h +2 -0
  180. package/codegen/NativeNetworkingIOSSpec.g.h +2 -0
  181. package/codegen/NativePerformanceSpec.g.h +6 -0
  182. package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +229 -139
  183. package/codegen/react/components/rnwcore/ActivityIndicatorView.g.h +2 -1
  184. package/codegen/react/components/rnwcore/AndroidDrawerLayout.g.h +42 -25
  185. package/codegen/react/components/rnwcore/AndroidHorizontalScrollContentView.g.h +2 -1
  186. package/codegen/react/components/rnwcore/AndroidProgressBar.g.h +2 -1
  187. package/codegen/react/components/rnwcore/AndroidSwipeRefreshLayout.g.h +11 -6
  188. package/codegen/react/components/rnwcore/AndroidSwitch.g.h +11 -6
  189. package/codegen/react/components/rnwcore/DebuggingOverlay.g.h +1 -0
  190. package/codegen/react/components/rnwcore/InputAccessory.g.h +2 -1
  191. package/codegen/react/components/rnwcore/ModalHostView.g.h +40 -23
  192. package/codegen/react/components/rnwcore/Props.cpp +6 -1
  193. package/codegen/react/components/rnwcore/Props.h +1 -0
  194. package/codegen/react/components/rnwcore/PullToRefreshView.g.h +11 -6
  195. package/codegen/react/components/rnwcore/SafeAreaView.g.h +1 -0
  196. package/codegen/react/components/rnwcore/Switch.g.h +11 -6
  197. package/codegen/react/components/rnwcore/UnimplementedNativeView.g.h +2 -1
  198. package/codegen/react/components/rnwcore/VirtualView.g.h +41 -8
  199. package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +45 -8
  200. package/codegen/rnwcoreJSI.h +3973 -6059
  201. package/index.js +6 -0
  202. package/index.windows.js +6 -0
  203. package/jest/mockComponent.js +6 -6
  204. package/jest/setup.js +15 -10
  205. package/package.json +27 -27
  206. package/src/private/components/virtualview/VirtualView.js +22 -27
  207. package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +6 -0
  208. package/src/private/featureflags/ReactNativeFeatureFlags.js +100 -19
  209. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +18 -3
  210. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  211. package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +1 -1
  212. package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +1 -0
  213. package/src/private/webapis/dom/nodes/ReactNativeElement.js +12 -2
  214. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +76 -15
  215. package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +1 -0
  216. package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
  217. package/src/private/webapis/performance/ResourceTiming.js +31 -4
  218. package/src/private/webapis/performance/internals/RawPerformanceEntry.js +4 -1
  219. package/src/private/webapis/performance/specs/NativePerformance.js +3 -0
  220. package/stubs/double-conversion/double-conversion.h +5 -0
  221. package/templates/cpp-app/template.config.js +1 -1
  222. package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +3 -1
  223. package/templates/cpp-lib/template.config.js +1 -1
  224. package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +1 -1
  225. package/types/index.d.ts +1 -0
  226. package/types/public/ReactNativeTypes.d.ts +115 -2
  227. package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +0 -152
  228. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +0 -1574
  229. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +0 -528
  230. package/Scripts/OpenSSL.nuspec +0 -39
  231. package/Scripts/OpenSSL.targets +0 -36
  232. package/codegen/rnwcoreJSI-generated.cpp +0 -3470
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<9feb9fa0298078e66d362b41d21db655>>
7
+ * @generated SignedSource<<fecd2198c65b74c22fa1a6ce96343228>>
8
8
  * @flow strict
9
9
  * @noformat
10
10
  */
@@ -29,12 +29,14 @@ export interface Spec extends TurboModule {
29
29
  +cdpInteractionMetricsEnabled?: () => boolean;
30
30
  +cxxNativeAnimatedEnabled?: () => boolean;
31
31
  +cxxNativeAnimatedRemoveJsSync?: () => boolean;
32
+ +disableEarlyViewCommandExecution?: () => boolean;
32
33
  +disableFabricCommitInCXXAnimated?: () => boolean;
33
34
  +disableMountItemReorderingAndroid?: () => boolean;
34
35
  +disableOldAndroidAttachmentMetricsWorkarounds?: () => boolean;
35
36
  +disableTextLayoutManagerCacheAndroid?: () => boolean;
36
37
  +enableAccessibilityOrder?: () => boolean;
37
38
  +enableAccumulatedUpdatesInRawPropsAndroid?: () => boolean;
39
+ +enableAndroidLinearText?: () => boolean;
38
40
  +enableAndroidTextMeasurementOptimizations?: () => boolean;
39
41
  +enableBridgelessArchitecture?: () => boolean;
40
42
  +enableCppPropsIteratorSetter?: () => boolean;
@@ -49,36 +51,46 @@ export interface Spec extends TurboModule {
49
51
  +enableIOSTextBaselineOffsetPerLine?: () => boolean;
50
52
  +enableIOSViewClipToPaddingBox?: () => boolean;
51
53
  +enableImagePrefetchingAndroid?: () => boolean;
54
+ +enableImagePrefetchingOnUiThreadAndroid?: () => boolean;
52
55
  +enableImmediateUpdateModeForContentOffsetChanges?: () => boolean;
56
+ +enableImperativeFocus?: () => boolean;
53
57
  +enableInteropViewManagerClassLookUpOptimizationIOS?: () => boolean;
58
+ +enableIntersectionObserverByDefault?: () => boolean;
59
+ +enableKeyEvents?: () => boolean;
54
60
  +enableLayoutAnimationsOnAndroid?: () => boolean;
55
61
  +enableLayoutAnimationsOnIOS?: () => boolean;
56
62
  +enableMainQueueCoordinatorOnIOS?: () => boolean;
57
63
  +enableModuleArgumentNSNullConversionIOS?: () => boolean;
58
64
  +enableNativeCSSParsing?: () => boolean;
59
65
  +enableNetworkEventReporting?: () => boolean;
60
- +enableNewBackgroundAndBorderDrawables?: () => boolean;
61
66
  +enablePreparedTextLayout?: () => boolean;
62
67
  +enablePropsUpdateReconciliationAndroid?: () => boolean;
63
68
  +enableResourceTimingAPI?: () => boolean;
69
+ +enableSwiftUIBasedFilters?: () => boolean;
64
70
  +enableViewCulling?: () => boolean;
65
71
  +enableViewRecycling?: () => boolean;
72
+ +enableViewRecyclingForImage?: () => boolean;
66
73
  +enableViewRecyclingForScrollView?: () => boolean;
67
74
  +enableViewRecyclingForText?: () => boolean;
68
75
  +enableViewRecyclingForView?: () => boolean;
76
+ +enableVirtualViewClippingWithoutScrollViewClipping?: () => boolean;
77
+ +enableVirtualViewContainerStateExperimental?: () => boolean;
69
78
  +enableVirtualViewDebugFeatures?: () => boolean;
70
79
  +enableVirtualViewRenderState?: () => boolean;
71
80
  +enableVirtualViewWindowFocusDetection?: () => boolean;
72
81
  +enableWebPerformanceAPIsByDefault?: () => boolean;
73
82
  +fixMappingOfEventPrioritiesBetweenFabricAndReact?: () => boolean;
83
+ +fuseboxAssertSingleHostState?: () => boolean;
74
84
  +fuseboxEnabledRelease?: () => boolean;
75
85
  +fuseboxNetworkInspectionEnabled?: () => boolean;
76
86
  +hideOffscreenVirtualViewsOnIOS?: () => boolean;
87
+ +overrideBySynchronousMountPropsAtMountingAndroid?: () => boolean;
88
+ +perfIssuesEnabled?: () => boolean;
77
89
  +perfMonitorV2Enabled?: () => boolean;
78
90
  +preparedTextCacheSize?: () => number;
79
91
  +preventShadowTreeCommitExhaustion?: () => boolean;
80
- +releaseImageDataWhenConsumed?: () => boolean;
81
92
  +shouldPressibilityUseW3CPointerEventsForHover?: () => boolean;
93
+ +shouldTriggerResponderTransferOnScrollAndroid?: () => boolean;
82
94
  +skipActivityIdentityAssertionOnHostPause?: () => boolean;
83
95
  +sweepActiveTouchOnChildNativeGesturesAndroid?: () => boolean;
84
96
  +traceTurboModulePromiseRejectionsOnAndroid?: () => boolean;
@@ -91,8 +103,11 @@ export interface Spec extends TurboModule {
91
103
  +useOptimizedEventBatchingOnAndroid?: () => boolean;
92
104
  +useRawPropsJsiValue?: () => boolean;
93
105
  +useShadowNodeStateOnClone?: () => boolean;
106
+ +useSharedAnimatedBackend?: () => boolean;
107
+ +useTraitHiddenOnAndroid?: () => boolean;
94
108
  +useTurboModuleInterop?: () => boolean;
95
109
  +useTurboModules?: () => boolean;
110
+ +viewCullingOutsetRatio?: () => number;
96
111
  +virtualViewHysteresisRatio?: () => number;
97
112
  +virtualViewPrerenderRatio?: () => number;
98
113
  }
@@ -41,4 +41,10 @@ export default function setUpDefaltReactNativeEnvironment(
41
41
  }
42
42
 
43
43
  require('../../../Libraries/ReactNative/AppRegistry');
44
+
45
+ if (
46
+ require('../../../src/private/featureflags/ReactNativeFeatureFlags').enableIntersectionObserverByDefault()
47
+ ) {
48
+ require('./setUpIntersectionObserver').default();
49
+ }
44
50
  }
@@ -55,8 +55,8 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
55
55
  supportedCommands: ['setValue'],
56
56
  });
57
57
 
58
- // [windows #15582] removed interfaceOnly: true to generate the native component implementation
59
58
  export default (codegenNativeComponent<SwitchNativeProps>('Switch', {
60
59
  paperComponentName: 'RCTSwitch',
61
60
  excludedPlatforms: ['android'],
61
+ //#Windows->15582 interfaceOnly: true,
62
62
  }): ComponentType);
@@ -23,6 +23,7 @@ export interface Spec extends TurboModule {
23
23
  incrementalUpdates: boolean,
24
24
  timeout: number,
25
25
  withCredentials: boolean,
26
+ +unstable_devToolsRequestId?: string,
26
27
  },
27
28
  callback: (requestId: number) => void,
28
29
  ) => void;
@@ -25,8 +25,10 @@ import type {InstanceHandle} from './internals/NodeInternals';
25
25
  import type ReactNativeDocument from './ReactNativeDocument';
26
26
 
27
27
  import TextInputState from '../../../../../Libraries/Components/TextInput/TextInputState';
28
+ import {Commands as ViewCommands} from '../../../../../Libraries/Components/View/ViewNativeComponent';
28
29
  import {create as createAttributePayload} from '../../../../../Libraries/ReactNative/ReactFabricPublicInstance/ReactNativeAttributePayload';
29
30
  import warnForStyleProps from '../../../../../Libraries/ReactNative/ReactFabricPublicInstance/warnForStyleProps';
31
+ import * as ReactNativeFeatureFlags from '../../../featureflags/ReactNativeFeatureFlags';
30
32
  import {
31
33
  getNativeElementReference,
32
34
  getPublicInstanceFromInstanceHandle,
@@ -140,11 +142,19 @@ class ReactNativeElement extends ReadOnlyElement implements NativeMethods {
140
142
  */
141
143
 
142
144
  blur(): void {
143
- TextInputState.blurTextInput(this);
145
+ if (TextInputState.isTextInput(this)) {
146
+ TextInputState.blurTextInput(this);
147
+ } else if (ReactNativeFeatureFlags.enableImperativeFocus()) {
148
+ ViewCommands.blur(this);
149
+ }
144
150
  }
145
151
 
146
152
  focus() {
147
- TextInputState.focusTextInput(this);
153
+ if (TextInputState.isTextInput(this)) {
154
+ TextInputState.focusTextInput(this);
155
+ } else if (ReactNativeFeatureFlags.enableImperativeFocus()) {
156
+ ViewCommands.focus(this);
157
+ }
148
158
  }
149
159
 
150
160
  measure(callback: MeasureOnSuccessCallback) {
@@ -24,7 +24,7 @@ export type IntersectionObserverCallback = (
24
24
 
25
25
  export interface IntersectionObserverInit {
26
26
  root?: ?ReactNativeElement;
27
- // rootMargin?: string, // This option exists on the Web but it's not currently supported in React Native.
27
+ rootMargin?: string;
28
28
  threshold?: number | $ReadOnlyArray<number>;
29
29
 
30
30
  /**
@@ -56,9 +56,8 @@ export interface IntersectionObserverInit {
56
56
  * changes in degree of visibility; however, you can watch multiple target
57
57
  * elements with the same observer.
58
58
  *
59
- * This implementation only supports the `threshold` option at the moment
60
- * (`root` and `rootMargin` are not supported) and provides a React Native specific
61
- * option `rnRootThreshold`.
59
+ * This implementation supports `threshold`, `root`, and `rootMargin` options and
60
+ * provides a React Native specific option `rnRootThreshold`.
62
61
  *
63
62
  */
64
63
  export default class IntersectionObserver {
@@ -68,6 +67,7 @@ export default class IntersectionObserver {
68
67
  _intersectionObserverId: ?IntersectionObserverId;
69
68
  _rootThresholds: $ReadOnlyArray<number> | null;
70
69
  _root: ReactNativeElement | null;
70
+ _rootMargin: string;
71
71
 
72
72
  constructor(
73
73
  callback: IntersectionObserverCallback,
@@ -85,13 +85,6 @@ export default class IntersectionObserver {
85
85
  );
86
86
  }
87
87
 
88
- // $FlowExpectedError[prop-missing] it's not typed in React Native but exists on Web.
89
- if (options?.rootMargin != null) {
90
- throw new TypeError(
91
- "Failed to construct 'IntersectionObserver': rootMargin is not supported",
92
- );
93
- }
94
-
95
88
  if (
96
89
  options?.root != null &&
97
90
  !(options?.root instanceof ReactNativeElement)
@@ -109,6 +102,7 @@ export default class IntersectionObserver {
109
102
  this._rootThresholds != null, // only provide default if no rootThreshold
110
103
  );
111
104
  this._root = options?.root ?? null;
105
+ this._rootMargin = normalizeRootMargin(options?.rootMargin);
112
106
  }
113
107
 
114
108
  /**
@@ -128,12 +122,9 @@ export default class IntersectionObserver {
128
122
  * Each side of the rectangle represented by `rootMargin` is added to the
129
123
  * corresponding side in the root element's bounding box before the
130
124
  * intersection test is performed.
131
- *
132
- * NOTE: This cannot currently be configured and `rootMargin` is always
133
- * `null`.
134
125
  */
135
126
  get rootMargin(): string {
136
- return '0px 0px 0px 0px';
127
+ return this._rootMargin;
137
128
  }
138
129
 
139
130
  /**
@@ -351,3 +342,73 @@ function normalizeThresholdValue(
351
342
 
352
343
  return thresholdAsNumber;
353
344
  }
345
+
346
+ /**
347
+ * Validates and normalizes the rootMargin value.
348
+ * Accepts CSS margin syntax (e.g., "10px", "10px 20px", "10px 20px 30px 40px").
349
+ * Returns the normalized string or throws an error if invalid.
350
+ *
351
+ * Per W3C spec, rootMargin must be specified in pixels or percent.
352
+ * This implementation validates the basic format.
353
+ */
354
+ function normalizeRootMargin(rootMargin: mixed): string {
355
+ if (rootMargin == null || rootMargin === '') {
356
+ return '0px 0px 0px 0px';
357
+ }
358
+
359
+ if (typeof rootMargin !== 'string') {
360
+ throw new TypeError(
361
+ "Failed to construct 'IntersectionObserver': Failed to read the 'rootMargin' property from 'IntersectionObserverInit': The provided value is not of type 'string'.",
362
+ );
363
+ }
364
+
365
+ const marginStr = rootMargin.trim();
366
+ if (marginStr === '') {
367
+ return '0px 0px 0px 0px';
368
+ }
369
+
370
+ // Split by whitespace and validate each value
371
+ const parts = marginStr.split(/\s+/);
372
+ if (parts.length > 4) {
373
+ throw new SyntaxError(
374
+ "Failed to construct 'IntersectionObserver': Failed to parse rootMargin: Too many values (expected 1-4).",
375
+ );
376
+ }
377
+
378
+ // Validate each part matches the pattern: optional minus, digits, and unit (px or %)
379
+ const validPattern = /^-?\d+(\.\d+)?(px|%)$/;
380
+ for (const part of parts) {
381
+ if (!validPattern.test(part)) {
382
+ throw new SyntaxError(
383
+ `Failed to construct 'IntersectionObserver': Failed to parse rootMargin: '${part}' is not a valid length. Only 'px' and '%' units are allowed.`,
384
+ );
385
+ }
386
+ }
387
+
388
+ // Normalize to 4 values following CSS margin shorthand rules
389
+ let normalized: Array<string>;
390
+ switch (parts.length) {
391
+ case 1:
392
+ // All sides the same
393
+ normalized = [parts[0], parts[0], parts[0], parts[0]];
394
+ break;
395
+ case 2:
396
+ // Vertical | Horizontal
397
+ normalized = [parts[0], parts[1], parts[0], parts[1]];
398
+ break;
399
+ case 3:
400
+ // Top | Horizontal | Bottom
401
+ normalized = [parts[0], parts[1], parts[2], parts[1]];
402
+ break;
403
+ case 4:
404
+ // Top | Right | Bottom | Left
405
+ normalized = parts;
406
+ break;
407
+ default:
408
+ throw new SyntaxError(
409
+ "Failed to construct 'IntersectionObserver': Failed to parse rootMargin.",
410
+ );
411
+ }
412
+
413
+ return normalized.join(' ');
414
+ }
@@ -175,6 +175,7 @@ export function observe({
175
175
  targetShadowNode: targetNativeNodeReference,
176
176
  thresholds: registeredObserver.observer.thresholds,
177
177
  rootThresholds: registeredObserver.observer.rnRootThresholds,
178
+ rootMargin: registeredObserver.observer.rootMargin,
178
179
  });
179
180
  targetToTokenMap.set(target, token);
180
181
 
@@ -29,6 +29,7 @@ export type NativeIntersectionObserverObserveOptions = {
29
29
  targetShadowNode: mixed,
30
30
  thresholds: $ReadOnlyArray<number>,
31
31
  rootThresholds?: ?$ReadOnlyArray<number>,
32
+ rootMargin?: ?string,
32
33
  };
33
34
 
34
35
  export opaque type NativeIntersectionObserverToken = mixed;
@@ -25,7 +25,10 @@ export type PerformanceResourceTimingJSON = {
25
25
  connectEnd: DOMHighResTimeStamp,
26
26
  responseStart: DOMHighResTimeStamp,
27
27
  responseEnd: DOMHighResTimeStamp,
28
- responseStatus: ?number,
28
+ responseStatus: number,
29
+ contentType: string,
30
+ encodedBodySize: number,
31
+ decodedBodySize: number,
29
32
  ...
30
33
  };
31
34
 
@@ -39,7 +42,10 @@ export interface PerformanceResourceTimingInit {
39
42
  +connectEnd: DOMHighResTimeStamp;
40
43
  +responseStart: DOMHighResTimeStamp;
41
44
  +responseEnd: DOMHighResTimeStamp;
42
- +responseStatus?: number;
45
+ +responseStatus: number;
46
+ +contentType: string;
47
+ +encodedBodySize: number;
48
+ +decodedBodySize: number;
43
49
  }
44
50
 
45
51
  export class PerformanceResourceTiming extends PerformanceEntry {
@@ -49,7 +55,10 @@ export class PerformanceResourceTiming extends PerformanceEntry {
49
55
  #connectEnd: DOMHighResTimeStamp;
50
56
  #responseStart: DOMHighResTimeStamp;
51
57
  #responseEnd: DOMHighResTimeStamp;
52
- #responseStatus: ?number;
58
+ #responseStatus: number;
59
+ #contentType: string;
60
+ #encodedBodySize: number;
61
+ #decodedBodySize: number;
53
62
 
54
63
  constructor(init: PerformanceResourceTimingInit) {
55
64
  super('resource', init);
@@ -61,6 +70,9 @@ export class PerformanceResourceTiming extends PerformanceEntry {
61
70
  this.#responseStart = init.responseStart;
62
71
  this.#responseEnd = init.responseEnd;
63
72
  this.#responseStatus = init.responseStatus;
73
+ this.#contentType = init.contentType;
74
+ this.#encodedBodySize = init.encodedBodySize;
75
+ this.#decodedBodySize = init.decodedBodySize;
64
76
  }
65
77
 
66
78
  get fetchStart(): DOMHighResTimeStamp {
@@ -87,10 +99,22 @@ export class PerformanceResourceTiming extends PerformanceEntry {
87
99
  return this.#responseEnd;
88
100
  }
89
101
 
90
- get responseStatus(): ?number {
102
+ get responseStatus(): number {
91
103
  return this.#responseStatus;
92
104
  }
93
105
 
106
+ get contentType(): string {
107
+ return this.#contentType;
108
+ }
109
+
110
+ get encodedBodySize(): number {
111
+ return this.#encodedBodySize;
112
+ }
113
+
114
+ get decodedBodySize(): number {
115
+ return this.#decodedBodySize;
116
+ }
117
+
94
118
  toJSON(): PerformanceResourceTimingJSON {
95
119
  return {
96
120
  ...super.toJSON(),
@@ -101,6 +125,9 @@ export class PerformanceResourceTiming extends PerformanceEntry {
101
125
  responseStart: this.#responseStart,
102
126
  responseEnd: this.#responseEnd,
103
127
  responseStatus: this.#responseStatus,
128
+ contentType: this.contentType,
129
+ encodedBodySize: this.encodedBodySize,
130
+ decodedBodySize: this.decodedBodySize,
104
131
  };
105
132
  }
106
133
  }
@@ -68,7 +68,10 @@ export function rawToPerformanceEntry(
68
68
  connectEnd: entry.connectEnd ?? 0,
69
69
  responseStart: entry.responseStart ?? 0,
70
70
  responseEnd: entry.responseEnd ?? 0,
71
- responseStatus: entry.responseStatus,
71
+ responseStatus: entry.responseStatus ?? 0,
72
+ contentType: entry.contentType ?? '',
73
+ encodedBodySize: entry.encodedBodySize ?? 0,
74
+ decodedBodySize: entry.decodedBodySize ?? 0,
72
75
  });
73
76
  default:
74
77
  return new PerformanceEntry(rawToPerformanceEntryType(entry.entryType), {
@@ -37,6 +37,9 @@ export type RawPerformanceEntry = {
37
37
  responseStart?: number,
38
38
  responseEnd?: number,
39
39
  responseStatus?: number,
40
+ contentType?: string,
41
+ encodedBodySize?: number,
42
+ decodedBodySize?: number,
40
43
  };
41
44
 
42
45
  export opaque type OpaqueNativeObserverHandle = mixed;
@@ -32,6 +32,11 @@ class StringBuilder {
32
32
  return m_buffer; // Returns char* that will convert to std::string
33
33
  }
34
34
 
35
+ void AddCharacter(char c) {
36
+ DCHECK(c != '\0');
37
+ m_ss.put(c);
38
+ }
39
+
35
40
  char *m_buffer;
36
41
  std::stringstream m_ss;
37
42
  };
@@ -130,7 +130,7 @@ async function postInstall(config = {}, options = {}) {
130
130
  'test:windows': 'jest --config jest.config.windows.js',
131
131
  },
132
132
  devDependencies: {
133
- '@rnx-kit/jest-preset': '^0.1.17',
133
+ '@rnx-kit/jest-preset': '^0.3.1',
134
134
  },
135
135
  });
136
136
 
@@ -4,6 +4,8 @@
4
4
  <Import Project="$(SolutionDir)\ExperimentalFeatures.props" Condition="Exists('$(SolutionDir)\ExperimentalFeatures.props')" />
5
5
  <PropertyGroup Label="Globals">
6
6
  <CppWinRTOptimized>true</CppWinRTOptimized>
7
+ <!-- Prevent MSB4006 circular dependency in CppWinRT during parallel builds (https://github.com/microsoft/cppwinrt/issues/950) -->
8
+ <CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata>
7
9
  <MinimalCoreWin>true</MinimalCoreWin>
8
10
  <ProjectGuid>{{ projectGuidUpper }}</ProjectGuid>
9
11
  <ProjectName>{{ name }}</ProjectName>
@@ -81,7 +83,7 @@
81
83
  </AdditionalIncludeDirectories>
82
84
  </ClCompile>
83
85
  <Link>
84
- <AdditionalDependencies>shell32.lib;user32.lib;windowsapp.lib;%(AdditionalDependenices)</AdditionalDependencies>
86
+ <AdditionalDependencies>shell32.lib;user32.lib;windowsapp.lib;%(AdditionalDependencies)</AdditionalDependencies>
85
87
  <SubSystem>Windows</SubSystem>
86
88
  <GenerateDebugInformation>true</GenerateDebugInformation>
87
89
  </Link>
@@ -252,7 +252,7 @@ async function postInstall(config = {}, options = {}) {
252
252
  'react-native-windows': rnwVersion,
253
253
  },
254
254
  devDependencies: {
255
- '@rnx-kit/jest-preset': '^0.1.17',
255
+ '@rnx-kit/jest-preset': '^0.3.1',
256
256
  },
257
257
  });
258
258
 
@@ -85,7 +85,7 @@
85
85
  </AdditionalIncludeDirectories>
86
86
  </ClCompile>
87
87
  <Link>
88
- <AdditionalDependencies>shell32.lib;user32.lib;windowsapp.lib;%(AdditionalDependenices)</AdditionalDependencies>
88
+ <AdditionalDependencies>shell32.lib;user32.lib;windowsapp.lib;%(AdditionalDependencies)</AdditionalDependencies>
89
89
  <SubSystem>Console</SubSystem>
90
90
  <GenerateWindowsMetadata>true</GenerateWindowsMetadata>
91
91
  <ModuleDefinitionFile>{{ name }}.def</ModuleDefinitionFile>
package/types/index.d.ts CHANGED
@@ -104,6 +104,7 @@ export * from '../Libraries/Components/View/ViewAccessibility';
104
104
  export * from '../Libraries/Components/View/ViewPropTypes';
105
105
  export * from '../Libraries/Components/Button';
106
106
  export * from '../Libraries/Core/registerCallableModule';
107
+ export * as NativeComponentRegistry from '../Libraries/NativeComponent/NativeComponentRegistry';
107
108
  export * from '../Libraries/EventEmitter/NativeEventEmitter';
108
109
  export * from '../Libraries/EventEmitter/RCTDeviceEventEmitter';
109
110
  export * from '../Libraries/EventEmitter/RCTNativeAppEventEmitter';
@@ -120,8 +120,6 @@ export type NativeMethodsMixin = NativeMethods;
120
120
  */
121
121
  export type NativeMethodsMixinType = NativeMethods;
122
122
 
123
- export type HostInstance = NativeMethods;
124
-
125
123
  /**
126
124
  * Represents a native component, such as those returned from `requireNativeComponent`.
127
125
  *
@@ -137,3 +135,118 @@ export interface HostComponent<P>
137
135
  > {
138
136
  new (props: P, context?: any): React.Component<P> & HostInstance;
139
137
  }
138
+
139
+ export interface ArrayLike<T> extends Iterable<T> {
140
+ [indexer: number]: T;
141
+ readonly length: number;
142
+ }
143
+
144
+ export interface HTMLCollection<T> extends Iterable<T>, ArrayLike<T> {
145
+ [index: number]: T;
146
+ readonly length: number;
147
+ item(index: number): null | T;
148
+ namedItem(name: string): null | T;
149
+ [Symbol.iterator](): Iterator<T>;
150
+ }
151
+
152
+ export interface NodeList<T> extends Iterable<T>, ArrayLike<T> {
153
+ [index: number]: T;
154
+ readonly length: number;
155
+ entries(): Iterator<[number, T]>;
156
+ forEach<ThisType>(
157
+ callbackFn: (value: T, index: number, array: NodeList<T>) => unknown,
158
+ thisArg?: ThisType,
159
+ ): void;
160
+ item(index: number): null | T;
161
+ keys(): Iterator<number>;
162
+ values(): Iterator<T>;
163
+ [Symbol.iterator](): Iterator<T>;
164
+ }
165
+
166
+ export interface ReadOnlyNode {
167
+ get childNodes(): NodeList<ReadOnlyNode>;
168
+ compareDocumentPosition(otherNode: ReadOnlyNode): number;
169
+ contains(otherNode: ReadOnlyNode): boolean;
170
+ get firstChild(): null | ReadOnlyNode;
171
+ getRootNode(): ReadOnlyNode;
172
+ hasChildNodes(): boolean;
173
+ get isConnected(): boolean;
174
+ get lastChild(): null | ReadOnlyNode;
175
+ get nextSibling(): null | ReadOnlyNode;
176
+ get nodeName(): string;
177
+ get nodeType(): number;
178
+ get nodeValue(): null | string;
179
+ get ownerDocument(): null | ReactNativeDocument;
180
+ get parentElement(): null | ReadOnlyElement;
181
+ get parentNode(): null | ReadOnlyNode;
182
+ get previousSibling(): null | ReadOnlyNode;
183
+ get textContent(): string;
184
+ }
185
+
186
+ export interface ReactNativeDocument extends ReadOnlyNode {
187
+ get childElementCount(): number;
188
+ get children(): HTMLCollection<ReadOnlyElement>;
189
+ get documentElement(): ReactNativeElement;
190
+ get firstElementChild(): null | ReadOnlyElement;
191
+ getElementById(id: string): null | ReadOnlyElement;
192
+ get lastElementChild(): null | ReadOnlyElement;
193
+ get nodeName(): string;
194
+ get nodeType(): number;
195
+ get nodeValue(): null;
196
+ }
197
+
198
+ export interface ReadOnlyElement extends ReadOnlyNode {
199
+ get childElementCount(): number;
200
+ get children(): HTMLCollection<ReadOnlyElement>;
201
+ get clientHeight(): number;
202
+ get clientLeft(): number;
203
+ get clientTop(): number;
204
+ get clientWidth(): number;
205
+ get firstElementChild(): null | ReadOnlyElement;
206
+ getBoundingClientRect(): DOMRect;
207
+ hasPointerCapture(pointerId: number): boolean;
208
+ get id(): string;
209
+ get lastElementChild(): null | ReadOnlyElement;
210
+ get nextElementSibling(): null | ReadOnlyElement;
211
+ get nodeName(): string;
212
+ get nodeType(): number;
213
+ get nodeValue(): null | string;
214
+ set nodeValue(value: string);
215
+ get previousElementSibling(): null | ReadOnlyElement;
216
+ releasePointerCapture(pointerId: number): void;
217
+ get scrollHeight(): number;
218
+ get scrollLeft(): number;
219
+ get scrollTop(): number;
220
+ get scrollWidth(): number;
221
+ setPointerCapture(pointerId: number): void;
222
+ get tagName(): string;
223
+ get textContent(): string;
224
+ }
225
+
226
+ export interface ReactNativeElement extends ReadOnlyElement, NativeMethods {
227
+ blur(): void;
228
+ focus(): void;
229
+ get offsetHeight(): number;
230
+ get offsetLeft(): number;
231
+ get offsetParent(): null | ReadOnlyElement;
232
+ get offsetTop(): number;
233
+ get offsetWidth(): number;
234
+ setNativeProps(nativeProps: {}): void;
235
+ }
236
+
237
+ export interface ReadOnlyCharacterData extends ReadOnlyNode {
238
+ get data(): string;
239
+ get length(): number;
240
+ get nextElementSibling(): null | ReadOnlyElement;
241
+ get nodeValue(): string;
242
+ get previousElementSibling(): null | ReadOnlyElement;
243
+ substringData(offset: number, count: number): string;
244
+ get textContent(): string;
245
+ }
246
+
247
+ export interface ReadOnlyText extends ReadOnlyCharacterData {
248
+ get nodeName(): string;
249
+ get nodeType(): number;
250
+ }
251
+
252
+ export type HostInstance = ReactNativeElement;