react-native-windows 0.76.2 → 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.
- package/.flowconfig +5 -1
- package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +1 -0
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +13 -0
- package/Libraries/Animated/AnimatedEvent.js +1 -1
- package/Libraries/Animated/AnimatedImplementation.js +2 -2
- package/Libraries/Animated/NativeAnimatedAllowlist.js +20 -9
- package/Libraries/Animated/NativeAnimatedAllowlist.windows.js +122 -0
- package/Libraries/Animated/animations/Animation.js +60 -25
- package/Libraries/Animated/animations/DecayAnimation.js +26 -38
- package/Libraries/Animated/animations/SpringAnimation.js +33 -39
- package/Libraries/Animated/animations/TimingAnimation.js +34 -42
- package/Libraries/Animated/components/AnimatedFlatList.js +1 -1
- package/Libraries/Animated/components/AnimatedSectionList.js +3 -1
- package/Libraries/Animated/createAnimatedComponent.js +60 -33
- package/Libraries/Animated/nodes/AnimatedColor.js +1 -1
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +1 -1
- package/Libraries/Animated/nodes/AnimatedNode.js +39 -45
- package/Libraries/Animated/nodes/AnimatedObject.js +13 -3
- package/Libraries/Animated/nodes/AnimatedProps.js +96 -46
- package/Libraries/Animated/nodes/AnimatedProps.windows.js +281 -0
- package/Libraries/Animated/nodes/AnimatedStyle.js +108 -39
- package/Libraries/Animated/nodes/AnimatedStyle.windows.js +251 -0
- package/Libraries/Animated/nodes/AnimatedTransform.js +56 -23
- package/Libraries/Animated/nodes/AnimatedValue.js +1 -1
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -3
- package/Libraries/Animated/useAnimatedProps.js +41 -35
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +19 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +77 -5
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +82 -5
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +4 -4
- package/Libraries/Components/Button.js +9 -4
- package/Libraries/Components/Button.windows.js +19 -5
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.js +3 -1
- package/Libraries/Components/Glyph/Glyph.js +2 -1
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +7 -0
- package/Libraries/Components/Popup/PopupNativeComponent.js +0 -1
- package/Libraries/Components/Pressable/Pressable.js +4 -4
- package/Libraries/Components/Pressable/Pressable.windows.js +10 -4
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +13 -7
- package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +3 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +4 -4
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +0 -1
- package/Libraries/Components/ScrollView/ScrollView.js +49 -88
- package/Libraries/Components/ScrollView/ScrollViewCommands.js +1 -1
- package/Libraries/Components/ScrollView/ScrollViewContext.js +2 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +0 -2
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +0 -5
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +8 -9
- package/Libraries/Components/Switch/Switch.js +8 -6
- package/Libraries/Components/Switch/Switch.windows.js +8 -6
- package/Libraries/Components/TextInput/InputAccessoryView.js +1 -1
- package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +4 -4
- package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +6 -4
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +2 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +27 -4
- package/Libraries/Components/TextInput/TextInput.flow.js +36 -19
- package/Libraries/Components/TextInput/TextInput.js +37 -13
- package/Libraries/Components/TextInput/TextInput.windows.js +47 -16
- package/Libraries/Components/TextInput/TextInputState.js +11 -13
- package/Libraries/Components/TextInput/TextInputState.windows.js +11 -13
- package/Libraries/Components/Touchable/BoundingDimensions.js +11 -3
- package/Libraries/Components/Touchable/Position.js +7 -2
- package/Libraries/Components/Touchable/Touchable.js +4 -0
- package/Libraries/Components/Touchable/Touchable.windows.js +4 -0
- package/Libraries/Components/Touchable/TouchableBounce.js +6 -2
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +227 -0
- package/Libraries/Components/Touchable/TouchableHighlight.js +5 -5
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +5 -5
- package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +371 -0
- package/Libraries/Components/Touchable/TouchableOpacity.js +6 -5
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +11 -5
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +1 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +9 -3
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +6 -1
- package/Libraries/Components/View/View.js +4 -4
- package/Libraries/Components/View/View.windows.js +88 -57
- package/Libraries/Components/View/ViewAccessibility.d.ts +10 -0
- package/Libraries/Components/View/ViewAccessibility.windows.js +2 -0
- package/Libraries/Components/View/ViewNativeComponent.js +6 -98
- package/Libraries/Components/View/ViewPropTypes.d.ts +7 -0
- package/Libraries/Components/View/ViewPropTypes.js +0 -3
- package/Libraries/Components/View/ViewPropTypes.windows.js +2 -3
- package/Libraries/Core/ExceptionsManager.js +50 -29
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/__mocks__/NativeExceptionsManager.js +0 -1
- package/Libraries/Core/setUpBatchedBridge.js +1 -10
- package/Libraries/Core/setUpDeveloperTools.js +1 -5
- package/Libraries/Core/setUpErrorHandling.js +20 -18
- package/Libraries/Core/setUpReactDevTools.js +107 -8
- package/Libraries/Core/setUpSegmentFetcher.js +1 -0
- package/Libraries/Core/setUpTimers.js +21 -18
- package/Libraries/Debugging/DebuggingOverlay.js +4 -5
- package/Libraries/Image/AssetSourceResolver.js +12 -1
- package/Libraries/Image/AssetSourceResolver.windows.js +12 -1
- package/Libraries/Image/Image.android.js +1 -5
- package/Libraries/Image/Image.d.ts +20 -29
- package/Libraries/Image/Image.ios.js +0 -2
- package/Libraries/Image/Image.windows.js +5 -1
- package/Libraries/Image/ImageBackground.js +2 -5
- package/Libraries/Image/ImageProps.js +7 -6
- package/Libraries/Image/ImageResizeMode.d.ts +8 -1
- package/Libraries/Image/ImageResizeMode.js +4 -1
- package/Libraries/Image/ImageSource.d.ts +0 -2
- package/Libraries/Image/ImageSource.js +0 -2
- package/Libraries/Image/ImageTypes.flow.js +11 -9
- package/Libraries/Image/ImageUtils.js +6 -3
- package/Libraries/Image/ImageViewNativeComponent.js +5 -3
- package/Libraries/Inspector/Inspector.js +1 -0
- package/Libraries/Inspector/NetworkOverlay.js +4 -0
- package/Libraries/Inspector/ReactDevToolsOverlay.js +8 -14
- package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +3 -5
- package/Libraries/Interaction/InteractionManager.js +6 -1
- package/Libraries/Interaction/InteractionManagerStub.js +176 -0
- package/Libraries/Interaction/TouchHistoryMath.js +22 -19
- package/Libraries/JSInspector/NetworkAgent.js +1 -1
- package/Libraries/Lists/FlatList.d.ts +1 -2
- package/Libraries/Lists/FlatList.js +2 -2
- package/Libraries/Lists/SectionListModern.js +7 -7
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +2 -2
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +3 -3
- package/Libraries/LogBox/LogBox.js +18 -5
- package/Libraries/LogBox/LogBoxInspectorContainer.js +1 -1
- package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
- package/Libraries/LogBox/UI/AnsiHighlight.js +26 -17
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +6 -1
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +6 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +1 -1
- package/Libraries/LogBox/UI/LogBoxMessage.js +2 -2
- package/Libraries/Modal/Modal.d.ts +12 -0
- package/Libraries/Modal/Modal.js +31 -4
- package/Libraries/Modal/Modal.windows.js +370 -0
- package/Libraries/NativeComponent/BaseViewConfig.android.js +72 -1
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +2 -1
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +3 -11
- package/Libraries/NativeComponent/NativeComponentRegistry.js +3 -3
- package/Libraries/NativeComponent/StaticViewConfigValidator.js +0 -1
- package/Libraries/Network/XHRInterceptor.js +63 -14
- package/Libraries/Network/XMLHttpRequest.js +26 -1
- package/Libraries/NewAppScreen/components/HermesBadge.js +1 -1
- package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +49 -2
- package/Libraries/PermissionsAndroid/PermissionsAndroid.js +4 -4
- package/Libraries/Pressability/HoverState.js +2 -0
- package/Libraries/Pressability/Pressability.js +2 -3
- package/Libraries/Pressability/Pressability.windows.js +2 -3
- package/Libraries/Pressability/usePressability.js +4 -1
- package/Libraries/ReactNative/AppContainer.js +1 -1
- package/Libraries/ReactNative/AppRegistry.js +1 -11
- package/Libraries/ReactNative/DisplayMode.js +1 -1
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +2 -3
- package/Libraries/ReactNative/RendererImplementation.js +18 -17
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -3
- package/Libraries/ReactNative/renderApplication.js +9 -8
- package/Libraries/ReactNative/requireNativeComponent.js +5 -2
- package/Libraries/Renderer/shims/ReactFabric.js +3 -3
- package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
- package/Libraries/Renderer/shims/ReactNative.js +3 -3
- package/Libraries/Renderer/shims/ReactNativeTypes.js +22 -35
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +5 -6
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/StyleSheet/StyleSheet.js +7 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +13 -2
- package/Libraries/StyleSheet/StyleSheetTypes.js +24 -6
- package/Libraries/StyleSheet/processBackgroundImage.js +87 -110
- package/Libraries/StyleSheet/processTransform.js +3 -34
- package/Libraries/Text/Text.js +248 -249
- package/Libraries/Text/Text.windows.js +298 -292
- package/Libraries/Text/TextNativeComponent.js +0 -1
- package/Libraries/Text/TextProps.windows.js +2 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +5 -5
- package/Libraries/Types/CoreEventTypes.d.ts +3 -10
- package/Libraries/Types/CoreEventTypes.js +4 -6
- package/Libraries/Types/CoreEventTypes.windows.js +4 -6
- package/Libraries/Utilities/Appearance.js +3 -1
- package/Libraries/Utilities/BackHandler.android.js +6 -18
- package/Libraries/Utilities/BackHandler.d.ts +0 -4
- package/Libraries/Utilities/BackHandler.ios.js +0 -7
- package/Libraries/Utilities/BackHandler.windows.js +6 -18
- package/Libraries/Utilities/HMRClient.js +3 -4
- package/Libraries/Utilities/Platform.flow.js +2 -2
- package/Libraries/Utilities/Platform.flow.windows.js +3 -2
- package/Libraries/Utilities/__mocks__/BackHandler.js +3 -8
- package/Libraries/Utilities/codegenNativeComponent.js +1 -1
- package/Libraries/Utilities/useMergeRefs.js +26 -7
- package/Libraries/WebSocket/WebSocketEvent.js +4 -1
- package/Libraries/WebSocket/WebSocketInterceptor.js +31 -13
- package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +6 -5
- package/Libraries/promiseRejectionTrackingOptions.js +1 -1
- package/Microsoft.ReactNative/AsynchronousEventBeat.cpp +9 -8
- package/Microsoft.ReactNative/AsynchronousEventBeat.h +5 -5
- package/Microsoft.ReactNative/CompositionComponentView.idl +2 -1
- package/Microsoft.ReactNative/FBReactNativeSpec/FBReactNativeSpecJSI.h +5 -0
- package/Microsoft.ReactNative/Fabric/AbiComponentDescriptor.cpp +6 -3
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +7 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.h +2 -0
- package/Microsoft.ReactNative/Fabric/ComponentView.cpp +45 -50
- package/Microsoft.ReactNative/Fabric/ComponentView.h +14 -22
- package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +943 -0
- package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +80 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +223 -21
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +19 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +187 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +10 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +8 -32
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +349 -929
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +32 -29
- package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.cpp +9 -2
- package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.h +2 -1
- package/Microsoft.ReactNative/Fabric/Composition/DebuggingOverlayComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +181 -123
- package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.h +16 -8
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +99 -37
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +25 -3
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +64 -3
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +12 -0
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +51 -3
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +3 -0
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +18 -8
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +3 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +6 -8
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +56 -7
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +8 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +3 -2
- package/Microsoft.ReactNative/Fabric/Composition/Theme.cpp +9 -3
- package/Microsoft.ReactNative/Fabric/Composition/TooltipService.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +35 -0
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +7 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +12 -12
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +4 -4
- package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +4 -8
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.cpp +16 -15
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewTraitsInitializer.h +1 -5
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +26 -0
- package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +1 -1
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +15 -0
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +9 -0
- package/Microsoft.ReactNative/ReactHost/ReactHost.cpp +20 -1
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +11 -6
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -1
- package/Microsoft.ReactNative/ReactNativeIsland.idl +3 -2
- package/Microsoft.ReactNative/SynchronousEventBeat.cpp +14 -4
- package/Microsoft.ReactNative/SynchronousEventBeat.h +4 -2
- package/Microsoft.ReactNative/ViewProps.idl +2 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.cpp +78 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.h +51 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/JSRuntimeApi.inc +48 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.cpp +41 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.h +127 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi.inc +125 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_posix.cpp +16 -0
- package/Microsoft.ReactNative.Cxx/ApiLoaders/NodeApi_win.cpp +23 -0
- package/Microsoft.ReactNative.Cxx/ComponentView.Experimental.interop.h +14 -0
- package/Microsoft.ReactNative.Cxx/JSI/decorator.h +834 -0
- package/Microsoft.ReactNative.Cxx/JSI/instrumentation.h +117 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi-inl.h +366 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.cpp +560 -0
- package/Microsoft.ReactNative.Cxx/JSI/jsi.h +1611 -0
- package/Microsoft.ReactNative.Cxx/JSI/threadsafe.h +79 -0
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +7 -11
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +1 -1
- package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.cpp +2878 -0
- package/Microsoft.ReactNative.Cxx/NodeApiJsiRuntime.h +36 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +64 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/SchedulerPriority.h +22 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModule.cpp +63 -63
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +165 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.cpp +105 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core → Microsoft.ReactNative.Cxx}/ReactCommon/TurboModuleUtils.h +57 -58
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +42 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +151 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Base.h +177 -154
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +25 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bridging.h +21 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +67 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +90 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Convert.h +170 -172
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +51 -0
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/EventEmitter.h +134 -136
- package/{ReactCommon/TEMP_UntilReactCommonUpdate → Microsoft.ReactNative.Cxx/ReactCommon}/react/bridging/Function.h +283 -283
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.cpp +63 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +61 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +93 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +104 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +107 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/flags.h +22 -0
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +72 -0
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api.h +553 -0
- package/Microsoft.ReactNative.Cxx/node-api/js_native_api_types.h +167 -0
- package/Microsoft.ReactNative.Cxx/node-api/js_runtime_api.h +186 -0
- package/Microsoft.ReactNative.Cxx/stubs/glog/logging.h +82 -0
- package/PropertySheets/Bundle.Common.targets +1 -1
- package/PropertySheets/Bundle.props +3 -0
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
- package/PropertySheets/OutputMSBuildProperties.targets +3 -1
- package/ReactCommon/ReactCommon.vcxproj +5 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +2 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +61 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +26 -23
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +150 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +252 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +795 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +59 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +188 -39
- package/Scripts/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +97 -62
- package/Shared/InspectorPackagerConnection.cpp +3 -6
- package/Shared/InspectorPackagerConnection.h +2 -2
- package/Shared/InstanceManager.h +1 -1
- package/Shared/OInstance.h +1 -1
- package/Shared/Shared.vcxitems +20 -2
- package/Shared/Shared.vcxitems.filters +4 -1
- package/Shared/TurboModuleManager.cpp +29 -4
- package/codegen/NativeAccessibilityInfoSpec.g.h +28 -9
- package/codegen/NativeAccessibilityManagerSpec.g.h +20 -13
- package/codegen/NativeActionSheetManagerSpec.g.h +5 -0
- package/codegen/NativeAlertManagerSpec.g.h +1 -0
- package/codegen/NativeAnimatedModuleSpec.g.h +1 -0
- package/codegen/NativeAnimatedTurboModuleSpec.g.h +1 -0
- package/codegen/NativeAppStateSpec.g.h +1 -0
- package/codegen/NativeAppThemeSpec.g.h +1 -0
- package/codegen/NativeAppearanceSpec.g.h +1 -0
- package/codegen/NativeBlobModuleSpec.g.h +1 -0
- package/codegen/NativeBugReportingSpec.g.h +1 -0
- package/codegen/NativeClipboardSpec.g.h +1 -0
- package/codegen/NativeDOMSpec.g.h +1 -0
- package/codegen/NativeDevLoadingViewSpec.g.h +1 -0
- package/codegen/NativeDevMenuSpec.g.h +1 -0
- package/codegen/NativeDevSettingsSpec.g.h +1 -0
- package/codegen/NativeDeviceEventManagerSpec.g.h +1 -0
- package/codegen/NativeDeviceInfoSpec.g.h +1 -0
- package/codegen/NativeDialogManagerAndroidSpec.g.h +1 -0
- package/codegen/NativeDialogManagerWindowsSpec.g.h +1 -0
- package/codegen/NativeExceptionsManagerSpec.g.h +2 -7
- package/codegen/NativeFileReaderModuleSpec.g.h +1 -0
- package/codegen/NativeFrameRateLoggerSpec.g.h +1 -0
- package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +1 -0
- package/codegen/NativeI18nManagerSpec.g.h +1 -0
- package/codegen/NativeIdleCallbacksSpec.g.h +1 -0
- package/codegen/NativeImageEditorSpec.g.h +1 -0
- package/codegen/NativeImageLoaderAndroidSpec.g.h +1 -0
- package/codegen/NativeImageLoaderIOSSpec.g.h +1 -0
- package/codegen/NativeImageStoreAndroidSpec.g.h +1 -0
- package/codegen/NativeImageStoreIOSSpec.g.h +1 -0
- package/codegen/NativeIntentAndroidSpec.g.h +1 -0
- package/codegen/NativeIntersectionObserverSpec.g.h +3 -0
- package/codegen/NativeJSCHeapCaptureSpec.g.h +1 -0
- package/codegen/NativeJSCSamplingProfilerSpec.g.h +1 -0
- package/codegen/NativeKeyboardObserverSpec.g.h +1 -0
- package/codegen/NativeLinkingManagerSpec.g.h +1 -0
- package/codegen/NativeLogBoxSpec.g.h +1 -0
- package/codegen/NativeMicrotasksSpec.g.h +1 -0
- package/codegen/NativeModalManagerSpec.g.h +1 -0
- package/codegen/NativeMutationObserverSpec.g.h +1 -0
- package/codegen/NativeNetworkingAndroidSpec.g.h +1 -0
- package/codegen/NativeNetworkingIOSSpec.g.h +1 -0
- package/codegen/NativePerformanceSpec.g.h +128 -3
- package/codegen/NativePermissionsAndroidSpec.g.h +1 -0
- package/codegen/NativePlatformConstantsAndroidSpec.g.h +1 -0
- package/codegen/NativePlatformConstantsIOSSpec.g.h +1 -0
- package/codegen/NativePlatformConstantsWindowsSpec.g.h +1 -0
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +1 -0
- package/codegen/NativeReactDevToolsRuntimeSettingsModuleSpec.g.h +67 -0
- package/codegen/NativeReactDevToolsSettingsManagerSpec.g.h +41 -0
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +126 -137
- package/codegen/NativeRedBoxSpec.g.h +1 -0
- package/codegen/NativeSampleTurboModuleSpec.g.h +1 -0
- package/codegen/NativeSegmentFetcherSpec.g.h +1 -0
- package/codegen/NativeSettingsManagerSpec.g.h +1 -0
- package/codegen/NativeShareModuleSpec.g.h +1 -0
- package/codegen/NativeSoundManagerSpec.g.h +1 -0
- package/codegen/NativeSourceCodeSpec.g.h +1 -0
- package/codegen/NativeStatusBarManagerAndroidSpec.g.h +1 -0
- package/codegen/NativeStatusBarManagerIOSSpec.g.h +1 -0
- package/codegen/NativeTimingSpec.g.h +1 -0
- package/codegen/NativeToastAndroidSpec.g.h +1 -0
- package/codegen/NativeUIManagerSpec.g.h +1 -0
- package/codegen/NativeVibrationSpec.g.h +1 -0
- package/codegen/NativeWebSocketModuleSpec.g.h +1 -0
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +0 -1
- package/codegen/react/components/rnwcore/Props.cpp +1 -0
- package/codegen/react/components/rnwcore/Props.h +1 -0
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +0 -1
- package/codegen/react/components/rnwcore/ShadowNodes.h +0 -11
- package/codegen/react/components/rnwcore/States.h +0 -12
- package/codegen/rnwcoreJSI-generated.cpp +219 -186
- package/codegen/rnwcoreJSI.h +942 -511
- package/index.js +10 -3
- package/index.windows.js +10 -3
- package/jest/setup.js +36 -1
- package/just-task.js +15 -0
- package/package.json +22 -22
- package/src/private/animated/NativeAnimatedHelper.js +18 -16
- package/src/private/animated/useAnimatedPropsMemo.js +348 -0
- package/src/private/animated/useAnimatedPropsMemo.windows.js +356 -0
- package/src/private/components/HScrollViewNativeComponents.js +1 -27
- package/src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE.js +11 -8
- package/src/private/components/VScrollViewNativeComponents.js +2 -25
- package/src/private/debugging/ReactDevToolsSettingsManager.android.js +20 -0
- package/src/private/debugging/ReactDevToolsSettingsManager.ios.js +30 -0
- package/src/private/debugging/ReactDevToolsSettingsManager.windows.js +20 -0
- package/src/private/{fusebox → debugging}/setUpFuseboxReactDevToolsDispatcher.js +6 -0
- package/src/private/devmenu/DevMenu.d.ts +20 -0
- package/src/private/devmenu/DevMenu.js +31 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +95 -86
- package/src/private/featureflags/ReactNativeFeatureFlagsBase.js +8 -2
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +17 -19
- package/src/private/fusebox/specs/NativeReactDevToolsRuntimeSettingsModule.js +34 -0
- package/src/private/setup/setUpDOM.js +14 -6
- package/src/private/setup/setUpMutationObserver.js +5 -0
- package/src/private/specs/components/AndroidHorizontalScrollContentViewNativeComponent.js +1 -0
- package/src/private/specs/components/RCTModalHostViewNativeComponent.js +8 -0
- package/src/private/specs/modules/NativeAccessibilityInfo.js +9 -0
- package/src/private/specs/modules/NativeAccessibilityManager.js +4 -0
- package/src/private/specs/modules/NativeActionSheetManager.js +2 -0
- package/src/private/specs/modules/NativeAppearance.js +4 -10
- package/src/private/specs/modules/NativeExceptionsManager.js +0 -12
- package/src/private/specs/modules/{NativeDevToolsSettingsManager.js → NativeReactDevToolsSettingsManager.js} +3 -5
- package/src/private/webapis/dom/geometry/DOMRect.js +2 -2
- package/src/private/webapis/dom/geometry/DOMRectReadOnly.js +2 -2
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +2 -3
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +102 -11
- package/src/private/webapis/intersectionobserver/IntersectionObserverEntry.js +26 -0
- package/src/private/webapis/intersectionobserver/IntersectionObserverManager.js +1 -0
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
- package/src/private/webapis/intersectionobserver/specs/__mocks__/NativeIntersectionObserver.js +9 -0
- package/src/private/webapis/performance/EventTiming.js +13 -8
- package/src/private/webapis/performance/Performance.js +66 -73
- package/src/private/webapis/performance/PerformanceEntry.js +2 -5
- package/src/private/webapis/performance/PerformanceObserver.js +65 -164
- package/src/private/webapis/performance/RawPerformanceEntry.js +1 -1
- package/src/private/webapis/performance/UserTiming.js +11 -7
- package/src/private/webapis/performance/Utilities.js +18 -0
- package/src/private/webapis/performance/specs/NativePerformance.js +71 -2
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceMock.js +267 -0
- package/templates/cpp-lib/template.config.js +13 -7
- package/templates/templateUtils.js +10 -0
- package/types/index.d.ts +1 -1
- package/types/public/ReactNativeTypes.d.ts +4 -8
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +0 -35
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +0 -20
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +0 -49
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +0 -35
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +0 -13
- package/Libraries/ReactNative/ReactFabricInternals.js +0 -17
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +0 -101
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/scrollview/ScrollViewProps.cpp +0 -569
- package/codegen/NativeDevToolsSettingsManagerSpec.g.h +0 -52
- package/codegen/NativePerformanceObserverSpec.g.h +0 -130
- package/src/private/components/useSyncOnScroll.js +0 -48
- package/src/private/webapis/performance/specs/NativePerformanceObserver.js +0 -61
- package/src/private/webapis/performance/specs/__mocks__/NativePerformance.js +0 -67
- package/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js +0 -127
- package/types/experimental.d.ts +0 -59
- /package/src/private/{fusebox → debugging}/FuseboxSessionObserver.js +0 -0
package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp
CHANGED
|
@@ -165,6 +165,10 @@ struct CompTextHost : public winrt::implements<CompTextHost, ITextHost> {
|
|
|
165
165
|
|
|
166
166
|
//@cmember Show the caret
|
|
167
167
|
BOOL TxShowCaret(BOOL fShow) override {
|
|
168
|
+
// Only show the caret if we have focus
|
|
169
|
+
if (fShow && !m_outer->m_hasFocus) {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
168
172
|
m_outer->ShowCaret(m_outer->windowsTextInputProps().caretHidden ? false : fShow);
|
|
169
173
|
return true;
|
|
170
174
|
}
|
|
@@ -232,19 +236,25 @@ struct CompTextHost : public winrt::implements<CompTextHost, ITextHost> {
|
|
|
232
236
|
|
|
233
237
|
//@cmember Establish a new cursor shape
|
|
234
238
|
void TxSetCursor(HCURSOR hcur, BOOL fText) override {
|
|
235
|
-
|
|
239
|
+
m_outer->m_hcursor = hcur;
|
|
236
240
|
}
|
|
237
241
|
|
|
238
242
|
//@cmember Converts screen coordinates of a specified point to the client coordinates
|
|
239
243
|
BOOL TxScreenToClient(LPPOINT lppt) override {
|
|
240
|
-
|
|
241
|
-
|
|
244
|
+
winrt::Windows::Foundation::Point pt{static_cast<float>(lppt->x), static_cast<float>(lppt->y)};
|
|
245
|
+
auto localpt = m_outer->ScreenToLocal(pt);
|
|
246
|
+
lppt->x = static_cast<LONG>(localpt.X);
|
|
247
|
+
lppt->y = static_cast<LONG>(localpt.Y);
|
|
248
|
+
return true;
|
|
242
249
|
}
|
|
243
250
|
|
|
244
251
|
//@cmember Converts the client coordinates of a specified point to screen coordinates
|
|
245
252
|
BOOL TxClientToScreen(LPPOINT lppt) override {
|
|
246
|
-
|
|
247
|
-
|
|
253
|
+
winrt::Windows::Foundation::Point pt{static_cast<float>(lppt->x), static_cast<float>(lppt->y)};
|
|
254
|
+
auto screenpt = m_outer->LocalToScreen(pt);
|
|
255
|
+
lppt->x = static_cast<LONG>(screenpt.X);
|
|
256
|
+
lppt->y = static_cast<LONG>(screenpt.Y);
|
|
257
|
+
return true;
|
|
248
258
|
}
|
|
249
259
|
|
|
250
260
|
//@cmember Request host to activate text services
|
|
@@ -477,7 +487,7 @@ facebook::react::AttributedString WindowsTextInputComponentView::getAttributedSt
|
|
|
477
487
|
// that effect.
|
|
478
488
|
fragment.textAttributes.backgroundColor = facebook::react::clearColor();
|
|
479
489
|
// fragment.parentShadowView = facebook::react::ShadowView(*this);
|
|
480
|
-
attributedString.prependFragment(fragment);
|
|
490
|
+
attributedString.prependFragment(std::move(fragment));
|
|
481
491
|
}
|
|
482
492
|
|
|
483
493
|
return attributedString;
|
|
@@ -722,6 +732,9 @@ void WindowsTextInputComponentView::OnPointerMoved(
|
|
|
722
732
|
auto hr = m_textServices->TxSendMessage(msg, static_cast<WPARAM>(wParam), static_cast<LPARAM>(lParam), &lresult);
|
|
723
733
|
args.Handled(hr != S_FALSE);
|
|
724
734
|
}
|
|
735
|
+
|
|
736
|
+
m_textServices->OnTxSetCursor(
|
|
737
|
+
DVASPECT_CONTENT, -1, nullptr, nullptr, nullptr, nullptr, nullptr, ptContainer.x, ptContainer.y);
|
|
725
738
|
}
|
|
726
739
|
|
|
727
740
|
void WindowsTextInputComponentView::OnKeyDown(
|
|
@@ -870,6 +883,7 @@ void WindowsTextInputComponentView::OnCharacterReceived(
|
|
|
870
883
|
emitter->onKeyPress(onKeyPressArgs);
|
|
871
884
|
|
|
872
885
|
WPARAM wParam = static_cast<WPARAM>(args.KeyCode());
|
|
886
|
+
|
|
873
887
|
LPARAM lParam = 0;
|
|
874
888
|
lParam = args.KeyStatus().RepeatCount; // bits 0-15
|
|
875
889
|
lParam |= args.KeyStatus().ScanCode << 16; // bits 16-23
|
|
@@ -908,6 +922,7 @@ void WindowsTextInputComponentView::UnmountChildComponentView(
|
|
|
908
922
|
|
|
909
923
|
void WindowsTextInputComponentView::onLostFocus(
|
|
910
924
|
const winrt::Microsoft::ReactNative::Composition::Input::RoutedEventArgs &args) noexcept {
|
|
925
|
+
m_hasFocus = false;
|
|
911
926
|
Super::onLostFocus(args);
|
|
912
927
|
if (m_textServices) {
|
|
913
928
|
LRESULT lresult;
|
|
@@ -919,6 +934,7 @@ void WindowsTextInputComponentView::onLostFocus(
|
|
|
919
934
|
|
|
920
935
|
void WindowsTextInputComponentView::onGotFocus(
|
|
921
936
|
const winrt::Microsoft::ReactNative::Composition::Input::RoutedEventArgs &args) noexcept {
|
|
937
|
+
m_hasFocus = true;
|
|
922
938
|
Super::onGotFocus(args);
|
|
923
939
|
if (m_textServices) {
|
|
924
940
|
LRESULT lresult;
|
|
@@ -1022,6 +1038,10 @@ void WindowsTextInputComponentView::updateProps(
|
|
|
1022
1038
|
m_submitKeyEvents.clear();
|
|
1023
1039
|
}
|
|
1024
1040
|
|
|
1041
|
+
if (oldTextInputProps.autoCapitalize != newTextInputProps.autoCapitalize) {
|
|
1042
|
+
autoCapitalizeOnUpdateProps(oldTextInputProps.autoCapitalize, newTextInputProps.autoCapitalize);
|
|
1043
|
+
}
|
|
1044
|
+
|
|
1025
1045
|
UpdatePropertyBits();
|
|
1026
1046
|
}
|
|
1027
1047
|
|
|
@@ -1346,7 +1366,7 @@ winrt::com_ptr<::IDWriteTextLayout> WindowsTextInputComponentView::CreatePlaceho
|
|
|
1346
1366
|
textAttributes.fontSizeMultiplier = m_fontSizeMultiplier;
|
|
1347
1367
|
fragment1.string = props.placeholder;
|
|
1348
1368
|
fragment1.textAttributes = textAttributes;
|
|
1349
|
-
attributedString.appendFragment(fragment1);
|
|
1369
|
+
attributedString.appendFragment(std::move(fragment1));
|
|
1350
1370
|
|
|
1351
1371
|
facebook::react::LayoutConstraints constraints;
|
|
1352
1372
|
constraints.maximumSize.width = static_cast<FLOAT>(m_imgWidth);
|
|
@@ -1462,6 +1482,10 @@ WindowsTextInputComponentView::createVisual() noexcept {
|
|
|
1462
1482
|
return visual;
|
|
1463
1483
|
}
|
|
1464
1484
|
|
|
1485
|
+
std::pair<facebook::react::Cursor, HCURSOR> WindowsTextInputComponentView::cursor() const noexcept {
|
|
1486
|
+
return {viewProps()->cursor, m_hcursor};
|
|
1487
|
+
}
|
|
1488
|
+
|
|
1465
1489
|
void WindowsTextInputComponentView::onThemeChanged() noexcept {
|
|
1466
1490
|
const auto &props = windowsTextInputProps();
|
|
1467
1491
|
updateCursorColor(props.cursorColor, props.textAttributes.foregroundColor);
|
|
@@ -1476,4 +1500,29 @@ winrt::Microsoft::ReactNative::ComponentView WindowsTextInputComponentView::Crea
|
|
|
1476
1500
|
return winrt::make<WindowsTextInputComponentView>(compContext, tag, reactContext);
|
|
1477
1501
|
}
|
|
1478
1502
|
|
|
1503
|
+
// This function assumes that previous and new capitalization types are different.
|
|
1504
|
+
void WindowsTextInputComponentView::autoCapitalizeOnUpdateProps(
|
|
1505
|
+
const std::string &previousCapitalizationType,
|
|
1506
|
+
const std::string &newCapitalizationType) noexcept {
|
|
1507
|
+
/*
|
|
1508
|
+
Possible values are:
|
|
1509
|
+
Characters - All characters.
|
|
1510
|
+
Words - First letter of each word.
|
|
1511
|
+
Sentences - First letter of each sentence.
|
|
1512
|
+
None - Do not autocapitalize anything.
|
|
1513
|
+
|
|
1514
|
+
For now, only characters and none are supported.
|
|
1515
|
+
*/
|
|
1516
|
+
|
|
1517
|
+
if (previousCapitalizationType == "characters") {
|
|
1518
|
+
winrt::check_hresult(m_textServices->TxSendMessage(
|
|
1519
|
+
EM_SETEDITSTYLE, 0 /* disable */, SES_UPPERCASE /* flag affected */, nullptr /* LRESULT */));
|
|
1520
|
+
}
|
|
1521
|
+
|
|
1522
|
+
if (newCapitalizationType == "characters") {
|
|
1523
|
+
winrt::check_hresult(m_textServices->TxSendMessage(
|
|
1524
|
+
EM_SETEDITSTYLE, SES_UPPERCASE /* enable */, SES_UPPERCASE /* flag affected */, nullptr /* LRESULT */));
|
|
1525
|
+
}
|
|
1526
|
+
}
|
|
1527
|
+
|
|
1479
1528
|
} // namespace winrt::Microsoft::ReactNative::Composition::implementation
|
|
@@ -78,6 +78,8 @@ struct WindowsTextInputComponentView
|
|
|
78
78
|
|
|
79
79
|
winrt::Microsoft::ReactNative::Composition::Experimental::IVisual createVisual() noexcept;
|
|
80
80
|
|
|
81
|
+
std::pair<facebook::react::Cursor, HCURSOR> cursor() const noexcept override;
|
|
82
|
+
|
|
81
83
|
private:
|
|
82
84
|
struct DrawBlock {
|
|
83
85
|
DrawBlock(WindowsTextInputComponentView &view);
|
|
@@ -104,6 +106,10 @@ struct WindowsTextInputComponentView
|
|
|
104
106
|
void InternalFinalize() noexcept;
|
|
105
107
|
void UpdatePropertyBits() noexcept;
|
|
106
108
|
|
|
109
|
+
void autoCapitalizeOnUpdateProps(
|
|
110
|
+
const std::string &previousCapitalizationType,
|
|
111
|
+
const std::string &newcapitalizationType) noexcept;
|
|
112
|
+
|
|
107
113
|
winrt::Windows::UI::Composition::CompositionSurfaceBrush m_brush{nullptr};
|
|
108
114
|
winrt::Microsoft::ReactNative::Composition::Experimental::ICaretVisual m_caretVisual{nullptr};
|
|
109
115
|
winrt::Microsoft::ReactNative::Composition::Experimental::IDrawingSurfaceBrush m_drawingSurface{nullptr};
|
|
@@ -124,10 +130,12 @@ struct WindowsTextInputComponentView
|
|
|
124
130
|
int m_cDrawBlock{0};
|
|
125
131
|
bool m_needsRedraw{false};
|
|
126
132
|
bool m_drawing{false};
|
|
133
|
+
bool m_hasFocus{false};
|
|
127
134
|
bool m_clearTextOnSubmit{false};
|
|
128
135
|
bool m_multiline{false};
|
|
129
136
|
DWORD m_propBitsMask{0};
|
|
130
137
|
DWORD m_propBits{0};
|
|
138
|
+
HCURSOR m_hcursor{nullptr};
|
|
131
139
|
std::vector<facebook::react::CompWindowsTextInputSubmitKeyEventsStruct> m_submitKeyEvents;
|
|
132
140
|
};
|
|
133
141
|
|
|
@@ -38,6 +38,7 @@ AttributedString WindowsTextInputShadowNode::getAttributedString(const LayoutCon
|
|
|
38
38
|
auto attributedString = AttributedString{};
|
|
39
39
|
auto attachments = BaseTextShadowNode::Attachments{};
|
|
40
40
|
BaseTextShadowNode::buildAttributedString(childTextAttributes, *this, attributedString, attachments);
|
|
41
|
+
attributedString.setBaseTextAttributes(childTextAttributes);
|
|
41
42
|
|
|
42
43
|
// BaseTextShadowNode only gets children. We must detect and prepend text
|
|
43
44
|
// value attributes manually.
|
|
@@ -53,7 +54,7 @@ AttributedString WindowsTextInputShadowNode::getAttributedString(const LayoutCon
|
|
|
53
54
|
// that effect.
|
|
54
55
|
fragment.textAttributes.backgroundColor = clearColor();
|
|
55
56
|
fragment.parentShadowView = ShadowView(*this);
|
|
56
|
-
attributedString.prependFragment(fragment);
|
|
57
|
+
attributedString.prependFragment(std::move(fragment));
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
return attributedString;
|
|
@@ -83,7 +84,7 @@ AttributedString WindowsTextInputShadowNode::getPlaceholderAttributedString(cons
|
|
|
83
84
|
// appended to the AttributedString (see implementation of appendFragment)
|
|
84
85
|
fragment.textAttributes = textAttributes;
|
|
85
86
|
fragment.parentShadowView = ShadowView(*this);
|
|
86
|
-
textAttributedString.appendFragment(fragment);
|
|
87
|
+
textAttributedString.appendFragment(std::move(fragment));
|
|
87
88
|
|
|
88
89
|
return textAttributedString;
|
|
89
90
|
}
|
|
@@ -330,7 +330,9 @@ bool Theme::TryGetPlatformColor(const std::string &platformColor, winrt::Windows
|
|
|
330
330
|
{"AcrylicInAppFillColorDefault", {0x9E, 0xFF, 0xFF, 0xFF}},
|
|
331
331
|
{"SystemChromeMediumLowColor", {0xFF, 0xF2, 0xF2, 0xF2}},
|
|
332
332
|
{"SystemControlForegroundBaseHighColor", {0xFF, 0x00, 0x00, 0x00}},
|
|
333
|
-
{"SystemControlTransientBorderColor", {0x24, 0x00, 0x00, 0x00}}
|
|
333
|
+
{"SystemControlTransientBorderColor", {0x24, 0x00, 0x00, 0x00}},
|
|
334
|
+
{"FocusVisualPrimary", {0xFF, 0x00, 0x00, 0x00}},
|
|
335
|
+
{"FocusVisualSecondary", {0x99, 0xFF, 0xFF, 0xFF}}};
|
|
334
336
|
|
|
335
337
|
static std::unordered_map<std::string, winrt::Windows::UI::Color, std::hash<std::string_view>, std::equal_to<>>
|
|
336
338
|
s_darkColors = {
|
|
@@ -362,7 +364,9 @@ bool Theme::TryGetPlatformColor(const std::string &platformColor, winrt::Windows
|
|
|
362
364
|
{"AcrylicInAppFillColorDefault", {0x9E, 0x00, 0x00, 0x00}},
|
|
363
365
|
{"SystemChromeMediumLowColor", {0xFF, 0x2B, 0x2B, 0x2B}},
|
|
364
366
|
{"SystemControlForegroundBaseHighColor", {0xFF, 0xFF, 0xFF, 0xFF}},
|
|
365
|
-
{"SystemControlTransientBorderColor", {0x5C, 0x00, 0x00, 0x00}}
|
|
367
|
+
{"SystemControlTransientBorderColor", {0x5C, 0x00, 0x00, 0x00}},
|
|
368
|
+
{"FocusVisualPrimary", {0xFF, 0xFF, 0xFF, 0xFF}},
|
|
369
|
+
{"FocusVisualSecondary", {0x99, 0x00, 0x00, 0x00F}}};
|
|
366
370
|
|
|
367
371
|
static std::unordered_map<
|
|
368
372
|
std::string,
|
|
@@ -399,7 +403,9 @@ bool Theme::TryGetPlatformColor(const std::string &platformColor, winrt::Windows
|
|
|
399
403
|
{"ControlStrongFillColorDisabled", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonFace, {}}},
|
|
400
404
|
{"SystemChromeMediumLowColor", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonFace, {}}},
|
|
401
405
|
{"SystemControlForegroundBaseHighColor", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonText, {}}},
|
|
402
|
-
{"SystemControlTransientBorderColor", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonText, {}}}
|
|
406
|
+
{"SystemControlTransientBorderColor", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonText, {}}},
|
|
407
|
+
{"FocusVisualPrimary", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonText, {}}},
|
|
408
|
+
{"FocusVisualSecondary", {winrt::Windows::UI::ViewManagement::UIElementType::ButtonFace, {}}}};
|
|
403
409
|
|
|
404
410
|
auto alias = s_xamlAliasedColors.find(platformColor);
|
|
405
411
|
if (alias != s_xamlAliasedColors.end()) {
|
|
@@ -49,7 +49,7 @@ facebook::react::AttributedStringBox CreateTooltipAttributedString(const std::st
|
|
|
49
49
|
auto fragment = facebook::react::AttributedString::Fragment{};
|
|
50
50
|
fragment.string = tooltip;
|
|
51
51
|
fragment.textAttributes.fontSize = tooltipFontSize;
|
|
52
|
-
attributedString.appendFragment(fragment);
|
|
52
|
+
attributedString.appendFragment(std::move(fragment));
|
|
53
53
|
return facebook::react::AttributedStringBox{attributedString};
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -214,4 +214,39 @@ ExpandCollapseState GetExpandCollapseState(const bool &expanded) noexcept {
|
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
|
|
217
|
+
void AddSelectionItemsToContainer(CompositionDynamicAutomationProvider *provider) noexcept {
|
|
218
|
+
winrt::com_ptr<IRawElementProviderSimple> selectionContainer;
|
|
219
|
+
provider->get_SelectionContainer(selectionContainer.put());
|
|
220
|
+
if (!selectionContainer)
|
|
221
|
+
return;
|
|
222
|
+
auto selectionContainerProvider = selectionContainer.as<CompositionDynamicAutomationProvider>();
|
|
223
|
+
auto simpleProvider = static_cast<IRawElementProviderSimple *>(provider);
|
|
224
|
+
winrt::com_ptr<IRawElementProviderSimple> simpleProviderPtr;
|
|
225
|
+
simpleProviderPtr.copy_from(simpleProvider);
|
|
226
|
+
selectionContainerProvider->AddToSelectionItems(simpleProviderPtr);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
void RemoveSelectionItemsFromContainer(CompositionDynamicAutomationProvider *provider) noexcept {
|
|
230
|
+
winrt::com_ptr<IRawElementProviderSimple> selectionContainer;
|
|
231
|
+
provider->get_SelectionContainer(selectionContainer.put());
|
|
232
|
+
if (!selectionContainer)
|
|
233
|
+
return;
|
|
234
|
+
auto selectionContainerProvider = selectionContainer.as<CompositionDynamicAutomationProvider>();
|
|
235
|
+
auto simpleProvider = static_cast<IRawElementProviderSimple *>(provider);
|
|
236
|
+
winrt::com_ptr<IRawElementProviderSimple> simpleProviderPtr;
|
|
237
|
+
simpleProviderPtr.copy_from(simpleProvider);
|
|
238
|
+
selectionContainerProvider->RemoveFromSelectionItems(simpleProviderPtr);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
ToggleState GetToggleState(const std::optional<facebook::react::AccessibilityState> &state) noexcept {
|
|
242
|
+
if (state.has_value()) {
|
|
243
|
+
if (state->checked == facebook::react::AccessibilityState::Checked) {
|
|
244
|
+
return ToggleState::ToggleState_On;
|
|
245
|
+
} else if (state->checked == facebook::react::AccessibilityState::Mixed) {
|
|
246
|
+
return ToggleState::ToggleState_Indeterminate;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return ToggleState::ToggleState_Off;
|
|
250
|
+
}
|
|
251
|
+
|
|
217
252
|
} // namespace winrt::Microsoft::ReactNative::implementation
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
3
|
#include <Fabric/ComponentView.h>
|
|
4
|
+
#include <Fabric/Composition/CompositionDynamicAutomationProvider.h>
|
|
4
5
|
#include <Fabric/ReactTaggedView.h>
|
|
5
6
|
#include <UIAutomation.h>
|
|
6
7
|
|
|
@@ -36,4 +37,10 @@ std::string extractAccessibilityValue(const facebook::react::AccessibilityValue
|
|
|
36
37
|
void DispatchAccessibilityAction(::Microsoft::ReactNative::ReactTaggedView &view, const std::string &action) noexcept;
|
|
37
38
|
|
|
38
39
|
ExpandCollapseState GetExpandCollapseState(const bool &expanded) noexcept;
|
|
40
|
+
|
|
41
|
+
void AddSelectionItemsToContainer(CompositionDynamicAutomationProvider *provider) noexcept;
|
|
42
|
+
|
|
43
|
+
void RemoveSelectionItemsFromContainer(CompositionDynamicAutomationProvider *provider) noexcept;
|
|
44
|
+
|
|
45
|
+
ToggleState GetToggleState(const std::optional<facebook::react::AccessibilityState> &state) noexcept;
|
|
39
46
|
} // namespace winrt::Microsoft::ReactNative::implementation
|
|
@@ -26,7 +26,7 @@ UnimplementedNativeViewComponentView::UnimplementedNativeViewComponentView(
|
|
|
26
26
|
~(ComponentViewFeatures::Background | ComponentViewFeatures::ShadowProps |
|
|
27
27
|
ComponentViewFeatures::NativeBorder)) {
|
|
28
28
|
m_labelVisual = compContext.CreateSpriteVisual();
|
|
29
|
-
OuterVisual().InsertAt(m_labelVisual,
|
|
29
|
+
OuterVisual().InsertAt(m_labelVisual, 0);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
winrt::Microsoft::ReactNative::ComponentView UnimplementedNativeViewComponentView::Create(
|
|
@@ -30,7 +30,6 @@
|
|
|
30
30
|
#include <react/renderer/scheduler/Scheduler.h>
|
|
31
31
|
#include <react/renderer/scheduler/SchedulerToolbox.h>
|
|
32
32
|
#include <react/utils/ContextContainer.h>
|
|
33
|
-
#include <react/utils/CoreFeatures.h>
|
|
34
33
|
#include <winrt/Windows.Graphics.Display.h>
|
|
35
34
|
#include <winrt/Windows.UI.Composition.Desktop.h>
|
|
36
35
|
#include "DynamicReader.h"
|
|
@@ -52,9 +51,7 @@ FabicUIManagerProperty() noexcept {
|
|
|
52
51
|
return props.Get(FabicUIManagerProperty()).Value();
|
|
53
52
|
}
|
|
54
53
|
|
|
55
|
-
FabricUIManager::FabricUIManager() {
|
|
56
|
-
facebook::react::CoreFeatures::enablePropIteratorSetter = true;
|
|
57
|
-
}
|
|
54
|
+
FabricUIManager::FabricUIManager() {}
|
|
58
55
|
|
|
59
56
|
FabricUIManager::~FabricUIManager() {
|
|
60
57
|
// Make sure that we destroy UI components on UI thread.
|
|
@@ -76,8 +73,9 @@ void FabricUIManager::installFabricUIManager() noexcept {
|
|
|
76
73
|
|
|
77
74
|
facebook::react::RuntimeExecutor runtimeExecutor;
|
|
78
75
|
auto toolbox = facebook::react::SchedulerToolbox{};
|
|
76
|
+
auto runtimeScheduler = SchedulerSettings::RuntimeSchedulerFromProperties(m_context.Properties());
|
|
79
77
|
|
|
80
|
-
if (
|
|
78
|
+
if (runtimeScheduler) {
|
|
81
79
|
contextContainer->insert("RuntimeScheduler", runtimeScheduler);
|
|
82
80
|
runtimeExecutor = [runtimeScheduler](std::function<void(facebook::jsi::Runtime & runtime)> &&callback) {
|
|
83
81
|
runtimeScheduler->scheduleWork(std::move(callback));
|
|
@@ -87,8 +85,8 @@ void FabricUIManager::installFabricUIManager() noexcept {
|
|
|
87
85
|
}
|
|
88
86
|
|
|
89
87
|
facebook::react::EventBeat::Factory asynchronousBeatFactory =
|
|
90
|
-
[
|
|
91
|
-
return std::make_unique<AsynchronousEventBeat>(ownerBox, context,
|
|
88
|
+
[runtimeScheduler, context = m_context](std::shared_ptr<facebook::react::EventBeat::OwnerBox> const &ownerBox) {
|
|
89
|
+
return std::make_unique<AsynchronousEventBeat>(ownerBox, context, runtimeScheduler);
|
|
92
90
|
};
|
|
93
91
|
|
|
94
92
|
contextContainer->insert("ReactNativeConfig", config);
|
|
@@ -111,7 +109,7 @@ void FabricUIManager::installFabricUIManager() noexcept {
|
|
|
111
109
|
return registry;
|
|
112
110
|
};
|
|
113
111
|
toolbox.runtimeExecutor = runtimeExecutor;
|
|
114
|
-
toolbox.
|
|
112
|
+
toolbox.eventBeatFactory = asynchronousBeatFactory;
|
|
115
113
|
|
|
116
114
|
m_scheduler = std::make_shared<facebook::react::Scheduler>(
|
|
117
115
|
toolbox, (/*animationDriver_ ? animationDriver_.get() :*/ nullptr), this);
|
|
@@ -299,7 +297,8 @@ void FabricUIManager::RCTPerformMountInstructions(
|
|
|
299
297
|
}
|
|
300
298
|
}
|
|
301
299
|
|
|
302
|
-
void FabricUIManager::performTransaction(
|
|
300
|
+
void FabricUIManager::performTransaction(
|
|
301
|
+
std::shared_ptr<const facebook::react::MountingCoordinator> const &mountingCoordinator) {
|
|
303
302
|
auto surfaceId = mountingCoordinator->getSurfaceId();
|
|
304
303
|
|
|
305
304
|
mountingCoordinator->getTelemetryController().pullTransaction(
|
|
@@ -321,7 +320,8 @@ void FabricUIManager::performTransaction(facebook::react::MountingCoordinator::S
|
|
|
321
320
|
});
|
|
322
321
|
}
|
|
323
322
|
|
|
324
|
-
void FabricUIManager::initiateTransaction(
|
|
323
|
+
void FabricUIManager::initiateTransaction(
|
|
324
|
+
std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator) {
|
|
325
325
|
if (m_transactionInFlight) {
|
|
326
326
|
m_followUpTransactionRequired = true;
|
|
327
327
|
return;
|
|
@@ -336,7 +336,7 @@ void FabricUIManager::initiateTransaction(facebook::react::MountingCoordinator::
|
|
|
336
336
|
}
|
|
337
337
|
|
|
338
338
|
void FabricUIManager::schedulerDidFinishTransaction(
|
|
339
|
-
const facebook::react::MountingCoordinator
|
|
339
|
+
const std::shared_ptr<const facebook::react::MountingCoordinator> &mountingCoordinator) {
|
|
340
340
|
// Should cache this locally
|
|
341
341
|
|
|
342
342
|
if (m_context.UIDispatcher().HasThreadAccess()) {
|
|
@@ -348,7 +348,7 @@ void FabricUIManager::schedulerDidFinishTransaction(
|
|
|
348
348
|
}
|
|
349
349
|
|
|
350
350
|
void FabricUIManager::schedulerShouldRenderTransactions(
|
|
351
|
-
const facebook::react::MountingCoordinator
|
|
351
|
+
const std::shared_ptr<const facebook::react::MountingCoordinator> &mountingCoordinator) {
|
|
352
352
|
if (m_context.UIDispatcher().HasThreadAccess()) {
|
|
353
353
|
initiateTransaction(mountingCoordinator);
|
|
354
354
|
} else {
|
|
@@ -56,8 +56,8 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
|
|
|
56
56
|
|
|
57
57
|
private:
|
|
58
58
|
void installFabricUIManager() noexcept;
|
|
59
|
-
void initiateTransaction(facebook::react::MountingCoordinator
|
|
60
|
-
void performTransaction(facebook::react::MountingCoordinator
|
|
59
|
+
void initiateTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> mountingCoordinator);
|
|
60
|
+
void performTransaction(std::shared_ptr<const facebook::react::MountingCoordinator> const &mountingCoordinator);
|
|
61
61
|
void RCTPerformMountInstructions(
|
|
62
62
|
facebook::react::ShadowViewMutationList const &mutations,
|
|
63
63
|
// facebook::react::RCTComponentViewRegistry* registry,
|
|
@@ -82,9 +82,9 @@ struct FabricUIManager final : public std::enable_shared_from_this<FabricUIManag
|
|
|
82
82
|
|
|
83
83
|
// Inherited via SchedulerDelegate
|
|
84
84
|
virtual void schedulerDidFinishTransaction(
|
|
85
|
-
const facebook::react::MountingCoordinator
|
|
85
|
+
const std::shared_ptr<const facebook::react::MountingCoordinator> &mountingCoordinator) override;
|
|
86
86
|
virtual void schedulerShouldRenderTransactions(
|
|
87
|
-
const facebook::react::MountingCoordinator
|
|
87
|
+
const std::shared_ptr<const facebook::react::MountingCoordinator> &mountingCoordinator) override;
|
|
88
88
|
virtual void schedulerDidRequestPreliminaryViewAllocation(const facebook::react::ShadowNode &shadowView) override;
|
|
89
89
|
virtual void schedulerDidDispatchCommand(
|
|
90
90
|
facebook::react::ShadowView const &shadowView,
|
|
@@ -10,15 +10,11 @@ namespace facebook::react {
|
|
|
10
10
|
ImageRequest::ImageRequest(
|
|
11
11
|
ImageSource imageSource,
|
|
12
12
|
std::shared_ptr<const ImageTelemetry> telemetry,
|
|
13
|
+
SharedFunction<> resumeFunction,
|
|
13
14
|
SharedFunction<> cancelationFunction)
|
|
14
|
-
: imageSource_(std::move(imageSource)),
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
coordinator_ = std::make_shared<ImageResponseObserverCoordinator>();
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
void ImageRequest::cancel() const {
|
|
21
|
-
cancelRequest_();
|
|
15
|
+
: imageSource_(std::move(imageSource)), telemetry_(std::move(telemetry)) {
|
|
16
|
+
coordinator_ =
|
|
17
|
+
std::make_shared<ImageResponseObserverCoordinator>(std::move(resumeFunction), std::move(cancelationFunction));
|
|
22
18
|
}
|
|
23
19
|
|
|
24
20
|
const ImageSource &ImageRequest::getImageSource() const {
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
|
|
4
4
|
#include "HostPlatformViewProps.h"
|
|
5
5
|
|
|
6
|
+
#include <react/featureflags/ReactNativeFeatureFlags.h>
|
|
6
7
|
#include <react/renderer/components/view/conversions.h>
|
|
7
8
|
#include <react/renderer/core/graphicsConversions.h>
|
|
8
9
|
#include <react/renderer/core/propsConversions.h>
|
|
9
|
-
#include <react/utils/CoreFeatures.h>
|
|
10
10
|
|
|
11
11
|
namespace facebook::react {
|
|
12
12
|
|
|
@@ -17,36 +17,37 @@ HostPlatformViewProps::HostPlatformViewProps(
|
|
|
17
17
|
bool shouldSetRawProps)
|
|
18
18
|
: BaseViewProps(context, sourceProps, rawProps),
|
|
19
19
|
windowsEvents(
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
|
|
21
|
+
? sourceProps.windowsEvents
|
|
22
|
+
: convertRawProp(context, rawProps, sourceProps.windowsEvents, {})),
|
|
22
23
|
enableFocusRing(
|
|
23
|
-
|
|
24
|
+
ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
|
|
24
25
|
? sourceProps.enableFocusRing
|
|
25
26
|
: convertRawProp(context, rawProps, "enableFocusRing", sourceProps.enableFocusRing, true)),
|
|
26
27
|
focusable(
|
|
27
|
-
|
|
28
|
+
ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
|
|
28
29
|
? sourceProps.focusable
|
|
29
30
|
: convertRawProp(context, rawProps, "focusable", sourceProps.focusable, {})),
|
|
30
31
|
tooltip(
|
|
31
|
-
|
|
32
|
+
ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
|
|
32
33
|
? sourceProps.tooltip
|
|
33
34
|
: convertRawProp(context, rawProps, "tooltip", sourceProps.tooltip, {})),
|
|
34
35
|
accessibilityPosInSet(
|
|
35
|
-
|
|
36
|
+
ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
|
|
36
37
|
? sourceProps.accessibilityPosInSet
|
|
37
38
|
: convertRawProp(context, rawProps, "accessibilityPosInSet", sourceProps.accessibilityPosInSet, 0)),
|
|
38
39
|
accessibilitySetSize(
|
|
39
|
-
|
|
40
|
+
ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
|
|
40
41
|
? sourceProps.accessibilitySetSize
|
|
41
42
|
: convertRawProp(context, rawProps, "accessibilitySetSize", sourceProps.accessibilitySetSize, 0)),
|
|
42
43
|
accessibilityLiveRegion(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
ReactNativeFeatureFlags::enableCppPropsIteratorSetter() ? sourceProps.accessibilityLiveRegion
|
|
45
|
+
: convertRawProp(
|
|
46
|
+
context,
|
|
47
|
+
rawProps,
|
|
48
|
+
"accessibilityLiveRegion",
|
|
49
|
+
sourceProps.accessibilityLiveRegion,
|
|
50
|
+
"none")) {}
|
|
50
51
|
|
|
51
52
|
#define WINDOWS_VIEW_EVENT_CASE(eventType) \
|
|
52
53
|
case CONSTEXPR_RAW_PROPS_KEY_HASH("on" #eventType): { \
|
|
@@ -9,11 +9,7 @@
|
|
|
9
9
|
namespace facebook::react::HostPlatformViewTraitsInitializer {
|
|
10
10
|
|
|
11
11
|
inline bool formsStackingContext(ViewProps const &viewProps) {
|
|
12
|
-
|
|
13
|
-
// Only Views which are marked as focusable can actually trigger the events, which will already avoid being collapsed.
|
|
14
|
-
constexpr decltype(WindowsViewEvents::bits) focusEventsMask = {
|
|
15
|
-
(1 << (int)WindowsViewEvents::Offset::Focus) & (1 << (int)WindowsViewEvents::Offset::Blur)};
|
|
16
|
-
return (viewProps.windowsEvents.bits & focusEventsMask).any() || viewProps.tooltip;
|
|
12
|
+
return !viewProps.keyDownEvents.empty() || !viewProps.keyUpEvents.empty() || viewProps.tooltip;
|
|
17
13
|
}
|
|
18
14
|
|
|
19
15
|
inline bool formsView(ViewProps const &viewProps) {
|
|
@@ -25,6 +25,29 @@ namespace Microsoft.ReactNative.Composition
|
|
|
25
25
|
[webhosthidden]
|
|
26
26
|
delegate Microsoft.UI.Composition.Visual CreateVisualDelegate(Microsoft.ReactNative.ComponentView view);
|
|
27
27
|
|
|
28
|
+
[experimental]
|
|
29
|
+
delegate void UpdateLayoutMetricsDelegate(Microsoft.ReactNative.ComponentView source, Microsoft.ReactNative.LayoutMetrics newLayoutMetrics, Microsoft.ReactNative.LayoutMetrics oldLayoutMetrics);
|
|
30
|
+
|
|
31
|
+
[experimental]
|
|
32
|
+
[webhosthidden]
|
|
33
|
+
delegate Microsoft.UI.Composition.Visual VisualToMountChildrenIntoDelegate(Microsoft.ReactNative.ComponentView view);
|
|
34
|
+
|
|
35
|
+
namespace Experimental {
|
|
36
|
+
[experimental]
|
|
37
|
+
[webhosthidden]
|
|
38
|
+
DOC_STRING("This type will be removed in future versions")
|
|
39
|
+
delegate Microsoft.ReactNative.Composition.Experimental.IVisual IVisualToMountChildrenIntoDelegate(Microsoft.ReactNative.ComponentView view);
|
|
40
|
+
|
|
41
|
+
[experimental]
|
|
42
|
+
[webhosthidden]
|
|
43
|
+
DOC_STRING("This interface is for use when running react-native-windows using a custom compositor. "
|
|
44
|
+
"This interface will be removed in future versions")
|
|
45
|
+
interface IReactCompositionViewComponentInternalBuilder
|
|
46
|
+
{
|
|
47
|
+
void SetIVisualToMountChildrenIntoHandler(IVisualToMountChildrenIntoDelegate impl);
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
28
51
|
[webhosthidden]
|
|
29
52
|
[experimental]
|
|
30
53
|
DOC_STRING(".")
|
|
@@ -33,6 +56,9 @@ namespace Microsoft.ReactNative.Composition
|
|
|
33
56
|
void SetViewComponentViewInitializer(ViewComponentViewInitializer initializer);
|
|
34
57
|
void SetContentIslandComponentViewInitializer(ComponentIslandComponentViewInitializer initializer);
|
|
35
58
|
void SetCreateVisualHandler(CreateVisualDelegate impl);
|
|
59
|
+
void SetViewFeatures(ComponentViewFeatures viewFeatures);
|
|
60
|
+
void SetUpdateLayoutMetricsHandler(UpdateLayoutMetricsDelegate impl);
|
|
61
|
+
void SetVisualToMountChildrenIntoHandler(VisualToMountChildrenIntoDelegate impl);
|
|
36
62
|
};
|
|
37
63
|
|
|
38
64
|
} // namespace Microsoft.ReactNative
|
|
@@ -56,7 +56,7 @@ namespace Microsoft.ReactNative
|
|
|
56
56
|
|
|
57
57
|
[experimental]
|
|
58
58
|
DOC_STRING("A delegate that creates a @IComponentProps object for an instance of @ViewProps. See @IReactViewComponentBuilder.SetCreateProps")
|
|
59
|
-
delegate IComponentProps ViewPropsFactory(ViewProps props);
|
|
59
|
+
delegate IComponentProps ViewPropsFactory(ViewProps props, IComponentProps cloneFrom);
|
|
60
60
|
|
|
61
61
|
[experimental]
|
|
62
62
|
delegate Windows.Foundation.Size MeasureContentHandler(ShadowNode shadowNode, LayoutContext layoutContext, LayoutConstraints layoutConstraints);
|
|
@@ -30,6 +30,16 @@ void AccessibilityInfo::isReduceMotionEnabled(std::function<void(bool)> const &o
|
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
void AccessibilityInfo::isInvertColorsEnabled(std::function<void(bool)> const &onSuccess) noexcept {
|
|
34
|
+
// TODO: implement ##14206
|
|
35
|
+
onSuccess(false);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
void AccessibilityInfo::isHighTextContrastEnabled(std::function<void(bool)> const &onSuccess) noexcept {
|
|
39
|
+
// TODO: implement #14099
|
|
40
|
+
onSuccess(false);
|
|
41
|
+
}
|
|
42
|
+
|
|
33
43
|
void AccessibilityInfo::isTouchExplorationEnabled(std::function<void(bool)> const &onSuccess) noexcept {
|
|
34
44
|
onSuccess(UiaClientsAreListening());
|
|
35
45
|
}
|
|
@@ -76,6 +86,11 @@ void AccessibilityInfo::getRecommendedTimeoutMillis(
|
|
|
76
86
|
onSuccess(mSec);
|
|
77
87
|
}
|
|
78
88
|
|
|
89
|
+
void AccessibilityInfo::isGrayscaleEnabled(std::function<void(bool)> const &onSuccess) noexcept {
|
|
90
|
+
// TODO: implement #14207
|
|
91
|
+
onSuccess(false);
|
|
92
|
+
}
|
|
93
|
+
|
|
79
94
|
void AccessibilityInfo::isAccessibilityServiceEnabled(std::function<void(bool)> const &onSuccess) noexcept {
|
|
80
95
|
onSuccess(false);
|
|
81
96
|
}
|
|
@@ -17,6 +17,12 @@ struct AccessibilityInfo : public std::enable_shared_from_this<AccessibilityInfo
|
|
|
17
17
|
REACT_METHOD(isReduceMotionEnabled)
|
|
18
18
|
void isReduceMotionEnabled(std::function<void(bool)> const &onSuccess) noexcept;
|
|
19
19
|
|
|
20
|
+
REACT_METHOD(isInvertColorsEnabled)
|
|
21
|
+
void isInvertColorsEnabled(std::function<void(bool)> const &onSuccess) noexcept;
|
|
22
|
+
|
|
23
|
+
REACT_METHOD(isHighTextContrastEnabled)
|
|
24
|
+
void isHighTextContrastEnabled(std::function<void(bool)> const &onSuccess) noexcept;
|
|
25
|
+
|
|
20
26
|
REACT_METHOD(isTouchExplorationEnabled)
|
|
21
27
|
void isTouchExplorationEnabled(std::function<void(bool)> const &onSuccess) noexcept;
|
|
22
28
|
|
|
@@ -29,6 +35,9 @@ struct AccessibilityInfo : public std::enable_shared_from_this<AccessibilityInfo
|
|
|
29
35
|
REACT_METHOD(getRecommendedTimeoutMillis)
|
|
30
36
|
void getRecommendedTimeoutMillis(double mSec, std::function<void(double)> const &onSuccess) noexcept;
|
|
31
37
|
|
|
38
|
+
REACT_METHOD(isGrayscaleEnabled)
|
|
39
|
+
void isGrayscaleEnabled(std::function<void(bool)> const &onSuccess) noexcept;
|
|
40
|
+
|
|
32
41
|
REACT_METHOD(isAccessibilityServiceEnabled)
|
|
33
42
|
void isAccessibilityServiceEnabled(std::function<void(bool)> const &onSuccess) noexcept;
|
|
34
43
|
|