react-native-windows 0.71.10 → 0.72.0-preview.2
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 +13 -3
- package/Directory.Build.props +19 -19
- package/Libraries/ActionSheetIOS/ActionSheetIOS.js +1 -1
- package/Libraries/Alert/Alert.d.ts +4 -4
- package/Libraries/Alert/Alert.windows.js +2 -0
- package/Libraries/Alert/NativeDialogManagerWindows.js +1 -0
- package/Libraries/Animated/Animated.d.ts +17 -6
- package/Libraries/Animated/NativeAnimatedHelper.js +18 -6
- package/Libraries/Animated/bezier.js +1 -1
- package/Libraries/Animated/components/AnimatedFlatList.js +8 -3
- package/Libraries/Animated/components/AnimatedScrollView.js +4 -1
- package/Libraries/Animated/components/AnimatedSectionList.js +12 -3
- package/Libraries/Animated/createAnimatedComponent.js +26 -239
- package/Libraries/Animated/nodes/AnimatedColor.js +47 -80
- package/Libraries/Animated/nodes/AnimatedInterpolation.js +167 -121
- package/Libraries/Animated/nodes/AnimatedNode.js +3 -5
- package/Libraries/Animated/nodes/AnimatedProps.js +7 -6
- package/Libraries/Animated/nodes/AnimatedStyle.js +42 -8
- package/Libraries/Animated/nodes/AnimatedTransform.js +1 -1
- package/Libraries/Animated/nodes/AnimatedValue.js +8 -12
- package/Libraries/Animated/nodes/AnimatedWithChildren.js +1 -1
- package/Libraries/Animated/useAnimatedProps.js +7 -10
- package/Libraries/AppTheme/AppTheme.js +1 -0
- package/Libraries/AppTheme/AppThemeTypes.d.ts +1 -1
- package/Libraries/BatchedBridge/MessageQueue.js +2 -1
- package/Libraries/BatchedBridge/NativeModules.d.ts +1 -1
- package/Libraries/BatchedBridge/NativeModules.js +1 -0
- package/Libraries/Blob/Blob.js +4 -0
- package/Libraries/Blob/FileReader.js +30 -2
- package/Libraries/Blob/URL.js +3 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +2 -2
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +2 -3
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +2 -3
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +6 -4
- package/Libraries/Components/Button.js +3 -2
- package/Libraries/Components/Button.windows.js +3 -2
- package/Libraries/Components/Clipboard/Clipboard.js +1 -1
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -0
- package/Libraries/Components/Flyout/Flyout.d.ts +55 -19
- package/Libraries/Components/Flyout/Flyout.js +110 -51
- package/Libraries/Components/Flyout/FlyoutNativeComponent.js +45 -0
- package/Libraries/Components/Glyph/Glyph.d.ts +29 -12
- package/Libraries/Components/Glyph/Glyph.js +43 -30
- package/Libraries/Components/Glyph/GlyphNativeComponent.js +31 -0
- package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +1 -0
- package/Libraries/Components/Keyboard/KeyboardExtProps.d.ts +2 -2
- package/Libraries/Components/Keyboard/KeyboardExtProps.js.map +1 -1
- package/Libraries/Components/Popup/Popup.d.ts +41 -19
- package/Libraries/Components/Popup/Popup.js +86 -52
- package/Libraries/Components/Popup/PopupNativeComponent.js +49 -0
- package/Libraries/Components/Pressable/Pressable.d.ts +1 -1
- package/Libraries/Components/Pressable/Pressable.js +1 -1
- package/Libraries/Components/RefreshControl/RefreshControl.js +1 -0
- package/Libraries/Components/RefreshControl/RefreshControl.windows.js +1 -0
- package/Libraries/Components/SafeAreaView/SafeAreaView.js +1 -2
- package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +1 -2
- package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +12 -6
- package/Libraries/Components/ScrollView/ScrollView.d.ts +2 -2
- package/Libraries/Components/ScrollView/ScrollView.js +149 -91
- package/Libraries/Components/ScrollView/ScrollView.windows.js +1939 -0
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +16 -6
- package/Libraries/Components/ScrollView/ScrollViewNativeComponent.windows.js +175 -0
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +5 -7
- package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -1
- package/Libraries/Components/StatusBar/StatusBar.js +3 -0
- package/Libraries/Components/Switch/Switch.js +3 -1
- package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +21 -11
- package/Libraries/Components/TextInput/InputAccessoryView.d.ts +1 -1
- package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +11 -5
- package/Libraries/Components/TextInput/TextInput.d.ts +15 -5
- package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
- package/Libraries/Components/TextInput/TextInput.js +130 -103
- package/Libraries/Components/TextInput/TextInput.windows.js +152 -115
- package/Libraries/Components/TextInput/WindowsTextInputNativeComponent.js +1 -1
- package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
- package/Libraries/Components/Touchable/Touchable.flow.js +30 -4
- package/Libraries/Components/Touchable/Touchable.js +6 -3
- package/Libraries/Components/Touchable/Touchable.windows.js +6 -3
- package/Libraries/Components/Touchable/TouchableHighlight.js +1 -1
- package/Libraries/Components/Touchable/TouchableHighlight.windows.js +2 -1
- package/Libraries/Components/Touchable/TouchableNativeFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableOpacity.js +3 -0
- package/Libraries/Components/Touchable/TouchableOpacity.windows.js +4 -0
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +1 -1
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +2 -2
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -2
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +179 -0
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlayNativeComponent.js +43 -0
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +26 -0
- package/Libraries/Components/View/View.js +35 -16
- package/Libraries/Components/View/View.windows.js +40 -16
- package/Libraries/Components/View/ViewAccessibility.d.ts +6 -6
- package/Libraries/Components/View/ViewAccessibility.js +10 -1
- package/Libraries/Components/View/ViewAccessibility.windows.js +9 -0
- package/Libraries/Components/View/ViewNativeComponent.js +32 -8
- package/Libraries/Components/View/ViewPropTypes.d.ts +1 -1
- package/Libraries/Components/View/ViewPropTypes.js +1 -1
- package/Libraries/Components/View/ViewPropTypes.windows.js +3 -1
- package/Libraries/Core/Devtools/openFileInEditor.js +1 -0
- package/Libraries/Core/Devtools/openURLInBrowser.js +1 -0
- package/Libraries/Core/Devtools/parseErrorStack.js +2 -2
- package/Libraries/Core/Devtools/parseHermesStack.js +54 -34
- package/Libraries/Core/ExceptionsManager.js +2 -2
- package/Libraries/Core/InitializeCore.js +2 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/ReactNativeVersionCheck.js +4 -8
- package/Libraries/Core/Timers/JSTimers.js +1 -1
- package/Libraries/Core/Timers/immediateShim.js +1 -0
- package/Libraries/Core/Timers/queueMicrotask.js +1 -1
- package/Libraries/Core/setUpAlert.js +1 -1
- package/Libraries/Core/setUpDOM.js +18 -0
- package/Libraries/Core/setUpDeveloperTools.js +1 -1
- package/Libraries/Core/setUpGlobals.js +5 -2
- package/Libraries/Core/setUpNavigator.js +6 -5
- package/Libraries/Core/setUpPerformance.js +23 -13
- package/Libraries/Core/setUpReactDevTools.js +2 -0
- package/Libraries/Core/setUpSegmentFetcher.js +0 -41
- package/Libraries/Core/setUpTimers.js +2 -2
- package/Libraries/DOM/Geometry/DOMRect.js +82 -0
- package/Libraries/DOM/Geometry/DOMRectReadOnly.js +188 -0
- package/Libraries/DOM/Nodes/ReactNativeElement.js +75 -0
- package/Libraries/DOM/Nodes/ReadOnlyElement.js +89 -0
- package/Libraries/DOM/Nodes/ReadOnlyNode.js +167 -0
- package/Libraries/DOM/OldStyleCollections/ArrayLikeUtils.js +46 -0
- package/Libraries/DOM/OldStyleCollections/DOMRectList.js +76 -0
- package/Libraries/DOM/OldStyleCollections/HTMLCollection.js +82 -0
- package/Libraries/DOM/OldStyleCollections/NodeList.js +104 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.android.js +35 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.d.ts +20 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.ios.js +49 -0
- package/Libraries/DevToolsSettings/DevToolsSettingsManager.windows.js +35 -0
- package/Libraries/DevToolsSettings/NativeDevToolsSettingsManager.js +24 -0
- package/Libraries/EventEmitter/NativeEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +1 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +9 -1
- package/Libraries/Events/EventPolyfill.js +1 -1
- package/Libraries/Image/AssetRegistry.js +1 -1
- package/Libraries/Image/AssetSourceResolver.js +3 -3
- package/Libraries/Image/Image.android.js +4 -1
- package/Libraries/Image/Image.d.ts +63 -2
- package/Libraries/Image/Image.ios.js +3 -0
- package/Libraries/Image/Image.windows.js +3 -0
- package/Libraries/Image/ImageBackground.js +1 -0
- package/Libraries/Image/ImageProps.js +1 -1
- package/Libraries/Image/ImageViewNativeComponent.js +4 -4
- package/Libraries/Image/RelativeImageStub.js +1 -1
- package/Libraries/Image/TextInlineImageNativeComponent.js +1 -1
- package/Libraries/Image/resolveAssetSource.js +1 -1
- package/Libraries/Inspector/DevtoolsOverlay.js +26 -19
- package/Libraries/Inspector/ElementBox.js +4 -1
- package/Libraries/Inspector/Inspector.js +5 -6
- package/Libraries/Inspector/InspectorOverlay.js +3 -3
- package/Libraries/Inspector/NetworkOverlay.js +1 -1
- package/Libraries/Interaction/JSEventLoopWatchdog.js +1 -1
- package/Libraries/Interaction/PanResponder.js +5 -6
- package/Libraries/LayoutAnimation/LayoutAnimation.js +2 -1
- package/Libraries/Linking/Linking.js +1 -4
- package/Libraries/Lists/FillRateHelper.js +4 -238
- package/Libraries/Lists/FlatList.d.ts +15 -22
- package/Libraries/Lists/FlatList.js +9 -6
- package/Libraries/Lists/SectionList.d.ts +10 -6
- package/Libraries/Lists/SectionList.js +5 -3
- package/Libraries/Lists/SectionListModern.js +3 -3
- package/Libraries/Lists/ViewabilityHelper.js +8 -344
- package/Libraries/Lists/VirtualizeUtils.js +4 -244
- package/Libraries/Lists/VirtualizedList.js +10 -1867
- package/Libraries/Lists/VirtualizedListContext.js +6 -104
- package/Libraries/Lists/VirtualizedSectionList.js +9 -602
- package/Libraries/Lists/__flowtests__/FlatList-flowtest.js +1 -0
- package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
- package/Libraries/LogBox/Data/LogBoxData.js +1 -1
- package/Libraries/LogBox/Data/parseLogBoxLog.js +1 -1
- package/Libraries/LogBox/LogBox.js +1 -1
- package/Libraries/LogBox/UI/LogBoxInspector.js +1 -3
- package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js +167 -0
- package/Libraries/LogBox/UI/LogBoxInspectorHeader.windows.js +172 -0
- package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.windows.js +193 -0
- package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +1 -0
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +2 -2
- package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.windows.js +118 -0
- package/Libraries/LogBox/UI/LogBoxMessage.js +87 -5
- package/Libraries/LogBox/UI/LogBoxNotification.js +5 -7
- package/Libraries/Modal/Modal.js +2 -2
- package/Libraries/NativeComponent/BaseViewConfig.android.js +32 -12
- package/Libraries/NativeComponent/BaseViewConfig.ios.js +43 -19
- package/Libraries/NativeComponent/BaseViewConfig.windows.js +77 -19
- package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +4 -1
- package/Libraries/NativeComponent/ViewConfig.js +1 -0
- package/Libraries/NativeComponent/ViewConfigIgnore.js +1 -4
- package/Libraries/Network/RCTNetworking.android.js +2 -2
- package/Libraries/Network/RCTNetworking.ios.js +1 -1
- package/Libraries/Network/RCTNetworking.windows.js +1 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -1
- package/Libraries/Pressability/Pressability.js +10 -4
- package/Libraries/Pressability/Pressability.windows.js +11 -4
- package/Libraries/ReactNative/AppContainer.js +7 -1
- package/Libraries/ReactNative/AppRegistry.d.ts +1 -1
- package/Libraries/ReactNative/AppRegistry.js +10 -13
- package/Libraries/ReactNative/FabricUIManager.js +24 -8
- package/Libraries/ReactNative/NativeUIManager.js +5 -5
- package/Libraries/ReactNative/ReactNativeFeatureFlags.js +10 -10
- package/Libraries/ReactNative/UIManager.js +168 -1
- package/Libraries/ReactNative/getCachedComponentWithDebugName.js +5 -5
- package/Libraries/ReactNative/getNativeComponentAttributes.js +1 -1
- package/Libraries/ReactNative/requireNativeComponent.d.ts +1 -1
- package/Libraries/ReactNative/requireNativeComponent.js +1 -1
- package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +26 -3
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +13 -1
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +13 -1
- package/Libraries/Renderer/public/ReactFabricPublicInstanceUtils.js +38 -0
- package/Libraries/Renderer/shims/ReactNativeTypes.js +6 -6
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +7 -7
- package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
- package/Libraries/Share/Share.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/StyleSheet.js +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +115 -76
- package/Libraries/StyleSheet/StyleSheetTypes.js +188 -33
- package/Libraries/StyleSheet/flattenStyle.js +2 -0
- package/Libraries/StyleSheet/normalizeColor.js +1 -1
- package/Libraries/StyleSheet/processColor.js +1 -1
- package/Libraries/Text/Text.d.ts +12 -2
- package/Libraries/Text/Text.js +50 -41
- package/Libraries/Text/Text.windows.js +48 -38
- package/Libraries/Text/TextProps.js +3 -4
- package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +6 -0
- package/Libraries/Types/CodegenTypes.js +1 -0
- package/Libraries/UTFSequence.js +3 -1
- package/Libraries/Utilities/Appearance.d.ts +10 -0
- package/Libraries/Utilities/Appearance.js +13 -0
- package/Libraries/Utilities/Dimensions.js +1 -1
- package/Libraries/Utilities/GlobalPerformanceLogger.js +12 -1
- package/Libraries/Utilities/HMRClient.js +16 -10
- package/Libraries/Utilities/{createPerformanceLogger.d.ts → IPerformanceLogger.d.ts} +4 -4
- package/Libraries/Utilities/IPerformanceLogger.js +49 -0
- package/Libraries/Utilities/LoadingView.android.js +28 -11
- package/Libraries/Utilities/NativeAppearance.js +1 -0
- package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -1
- package/Libraries/Utilities/PixelRatio.js +2 -2
- package/Libraries/Utilities/Platform.windows.js +1 -1
- package/Libraries/Utilities/ReactNativeTestTools.js +1 -1
- package/Libraries/Utilities/__mocks__/PixelRatio.js +1 -1
- package/Libraries/Utilities/codegenNativeCommands.js +2 -0
- package/Libraries/Utilities/createPerformanceLogger.js +55 -43
- package/Libraries/Utilities/stringifySafe.js +2 -7
- package/Libraries/Utilities/useColorScheme.windows.js +26 -0
- package/Libraries/Utilities/useWindowDimensions.js +3 -3
- package/Libraries/WebPerformance/EventCounts.js +78 -0
- package/Libraries/WebPerformance/MemoryInfo.js +54 -0
- package/Libraries/WebPerformance/NativePerformance.js +38 -0
- package/Libraries/WebPerformance/NativePerformanceObserver.js +22 -7
- package/Libraries/WebPerformance/Performance.js +312 -0
- package/Libraries/WebPerformance/PerformanceEntry.js +45 -0
- package/Libraries/WebPerformance/PerformanceEventTiming.js +38 -0
- package/Libraries/WebPerformance/PerformanceObserver.js +196 -101
- package/Libraries/WebPerformance/RawPerformanceEntry.js +87 -0
- package/Libraries/WebPerformance/ReactNativeStartupTiming.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformance.js +65 -0
- package/Libraries/WebPerformance/__mocks__/NativePerformanceObserver.js +101 -0
- package/Libraries/YellowBox/YellowBoxDeprecated.js +1 -1
- package/Libraries/platform-types.d.ts +3 -5
- package/Libraries/vendor/core/ErrorUtils.js +1 -1
- package/Libraries/vendor/emitter/EventEmitter.d.ts +2 -2
- package/Libraries/vendor/emitter/EventEmitter.js +9 -1
- package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -15
- package/Microsoft.ReactNative/CompositionHwndHost.idl +6 -0
- package/Microsoft.ReactNative/CompositionRootView.idl +35 -0
- package/Microsoft.ReactNative/CompositionSwitcher.idl +19 -0
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.cpp +174 -0
- package/Microsoft.ReactNative/Fabric/AbiViewComponentDescriptor.h +91 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.cpp +48 -0
- package/Microsoft.ReactNative/Fabric/AbiViewProps.h +48 -0
- package/Microsoft.ReactNative/Fabric/ComponentView.h +19 -2
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.cpp +144 -0
- package/Microsoft.ReactNative/Fabric/Composition/AbiCompositionViewComponentView.h +63 -0
- package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +27 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +97 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +227 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +38 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +112 -95
- package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +12 -8
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +0 -2
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +27 -6
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +8 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +147 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.h +46 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +31 -4
- package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +37 -0
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +255 -50
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +34 -15
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +127 -47
- package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +11 -7
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +109 -39
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +10 -7
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.cpp +106 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +63 -0
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +116 -0
- package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +43 -0
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +53 -38
- package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +12 -8
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.cpp +262 -0
- package/Microsoft.ReactNative/Fabric/Composition/SwitchComponentView.h +62 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +35 -30
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +11 -9
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.cpp +9 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputProps.h +3 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputShadowNode.cpp +2 -1
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +72 -0
- package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +16 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +168 -0
- package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.h +49 -0
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +19 -53
- package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +2 -3
- package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +8 -9
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.cpp +100 -0
- package/Microsoft.ReactNative/Fabric/WindowsComponentDescriptorRegistry.h +43 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.cpp +61 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/WindowsViewProps.h +34 -0
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/windows/primitives.h +42 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/view/HostPlatformViewProps.h +10 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/core/graphicsConversions.h +248 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.h +135 -4
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +18 -240
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp +107 -17
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h +13 -2
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +87 -0
- package/Microsoft.ReactNative/IReactContext.cpp +4 -0
- package/Microsoft.ReactNative/IReactContext.h +1 -0
- package/Microsoft.ReactNative/IReactContext.idl +5 -0
- package/Microsoft.ReactNative/IReactDispatcher.cpp +4 -0
- package/Microsoft.ReactNative/IReactDispatcher.h +1 -0
- package/Microsoft.ReactNative/IReactPackageBuilderFabric.idl +23 -0
- package/Microsoft.ReactNative/IReactViewComponentBuilder.idl +23 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +4 -118
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +1 -7
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.cpp +2 -2
- package/Microsoft.ReactNative/Modules/AccessibilityInfoModule.h +1 -1
- package/Microsoft.ReactNative/Modules/AlertModule.cpp +100 -4
- package/Microsoft.ReactNative/Modules/AlertModule.h +4 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +9 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +2 -0
- package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +7 -5
- package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +17 -3
- package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +1 -0
- package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +4 -0
- package/Microsoft.ReactNative/Modules/AppearanceModule.h +3 -0
- package/Microsoft.ReactNative/Modules/ClipboardModule.cpp +4 -4
- package/Microsoft.ReactNative/Modules/ClipboardModule.h +2 -2
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +27 -7
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.h +9 -5
- package/Microsoft.ReactNative/Modules/LinkingManagerModule.cpp +10 -12
- package/Microsoft.ReactNative/Modules/LinkingManagerModule.h +4 -4
- package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +21 -1
- package/Microsoft.ReactNative/QuirkSettings.cpp +17 -0
- package/Microsoft.ReactNative/QuirkSettings.h +5 -0
- package/Microsoft.ReactNative/QuirkSettings.idl +6 -0
- package/Microsoft.ReactNative/ReactApplication.cpp +8 -0
- package/Microsoft.ReactNative/ReactApplication.h +3 -0
- package/Microsoft.ReactNative/ReactApplication.idl +3 -0
- package/Microsoft.ReactNative/ReactCoreInjection.cpp +29 -0
- package/Microsoft.ReactNative/ReactCoreInjection.h +6 -0
- package/Microsoft.ReactNative/ReactCoreInjection.idl +13 -0
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.cpp +7 -0
- package/Microsoft.ReactNative/ReactHost/MsoReactContext.h +1 -0
- package/Microsoft.ReactNative/ReactHost/React.h +2 -0
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +57 -16
- package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +1 -0
- package/Microsoft.ReactNative/ReactInstanceSettings.h +12 -0
- package/Microsoft.ReactNative/ReactInstanceSettings.idl +6 -0
- package/Microsoft.ReactNative/ReactNativeHost.cpp +17 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.cpp +18 -0
- package/Microsoft.ReactNative/ReactPackageBuilder.h +24 -1
- package/Microsoft.ReactNative/ReactRootView.cpp +2 -2
- package/Microsoft.ReactNative/RedBox.cpp +2 -1
- package/Microsoft.ReactNative/Utils/Helpers.cpp +0 -32
- package/Microsoft.ReactNative/Utils/Helpers.h +0 -8
- package/Microsoft.ReactNative/Utils/ImageUtils.cpp +69 -6
- package/Microsoft.ReactNative/Utils/ImageUtils.h +3 -1
- package/Microsoft.ReactNative/Utils/KeyboardUtils.cpp +416 -0
- package/Microsoft.ReactNative/Utils/KeyboardUtils.h +15 -0
- package/Microsoft.ReactNative/Utils/TransformableText.h +1 -0
- package/Microsoft.ReactNative/Utils/ValueUtils.cpp +1 -9
- package/Microsoft.ReactNative/Utils/ValueUtils.h +0 -2
- package/Microsoft.ReactNative/ViewProps.idl +30 -0
- package/Microsoft.ReactNative/Views/ControlViewManager.cpp +6 -2
- package/Microsoft.ReactNative/Views/DevMenu.cpp +369 -230
- package/Microsoft.ReactNative/Views/DevMenu.h +3 -15
- package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +6 -3
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +11 -3
- package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +5 -1
- package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +29 -22
- package/Microsoft.ReactNative/Views/Image/ReactImage.h +2 -2
- package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +10 -405
- package/Microsoft.ReactNative/Views/KeyboardEventHandler.h +0 -3
- package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -0
- package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +2 -2
- package/Microsoft.ReactNative/Views/ShadowNodeBase.cpp +7 -0
- package/Microsoft.ReactNative/Views/ShadowNodeBase.h +3 -0
- package/Microsoft.ReactNative/Views/Text/TextHitTestUtils.cpp +6 -1
- package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -0
- package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +38 -2
- package/Microsoft.ReactNative/Views/TextViewManager.cpp +3 -0
- package/Microsoft.ReactNative/Views/TouchEventHandler.h +0 -4
- package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +0 -8
- package/Microsoft.ReactNative/Views/ViewPanel.cpp +1 -1
- package/Microsoft.ReactNative/Views/ViewViewManager.cpp +12 -3
- package/Microsoft.ReactNative/XamlHelper.cpp +36 -0
- package/Microsoft.ReactNative/XamlHelper.h +27 -0
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +4 -4
- package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +4 -4
- package/Microsoft.ReactNative.Cxx/JSI/LongLivedJsiValue.h +1 -1
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +10 -8
- package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +4 -1
- package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems.filters +3 -0
- package/Microsoft.ReactNative.Cxx/NativeModules.h +16 -1
- package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +2 -0
- package/Microsoft.ReactNative.Managed/packages.lock.json +5 -5
- package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +3 -0
- package/PropertySheets/Generated/PackageVersion.g.props +4 -4
- package/PropertySheets/JSEngine.props +1 -2
- package/PropertySheets/Warnings.props +1 -1
- package/ReactCommon/ReactCommon.vcxproj +2 -4
- package/ReactCommon/ReactCommon.vcxproj.filters +3 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/CallbackWrapper.h +1 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.cpp +60 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/bridging/LongLivedObject.h +60 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +116 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +63 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +2 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.cpp +237 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/TouchEventEmitter.h +59 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.cpp +159 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewEventEmitter.h +94 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +465 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.h +116 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewShadowNode.cpp +98 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/YogaStylableProps.cpp +362 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/primitives.h +326 -0
- package/ReactCommon/Yoga.cpp +60 -127
- package/Scripts/OfficeReact.Win32.nuspec +1 -0
- package/Scripts/Tfs/Layout-MSRN-Headers.ps1 +1 -0
- package/Scripts/rnw-dependencies.ps1 +14 -6
- package/Shared/Composition/CompositionSwitcher.interop.h +1 -0
- package/Shared/DevServerHelper.h +11 -2
- package/Shared/DevSettings.h +1 -0
- package/Shared/DevSupportManager.cpp +11 -1
- package/Shared/DevSupportManager.h +1 -0
- package/Shared/HermesRuntimeHolder.cpp +53 -30
- package/Shared/HermesRuntimeHolder.h +26 -11
- package/Shared/HermesSamplingProfiler.cpp +61 -8
- package/Shared/HermesSamplingProfiler.h +6 -3
- package/Shared/HermesShim.cpp +86 -82
- package/Shared/HermesShim.h +28 -8
- package/Shared/JSI/ChakraRuntime.cpp +7 -4
- package/Shared/JSI/ChakraRuntime.h +4 -4
- package/Shared/JSI/NapiJsiV8RuntimeHolder.h +2 -0
- package/Shared/JSI/RuntimeHolder.h +2 -2
- package/Shared/Logging.cpp +1 -1
- package/Shared/Modules/BlobModule.cpp +3 -4
- package/Shared/Modules/BlobModule.h +0 -4
- package/Shared/Networking/OriginPolicyHttpFilter.cpp +13 -17
- package/Shared/Networking/OriginPolicyHttpFilter.h +11 -12
- package/Shared/Networking/WinRTWebSocketResource.cpp +59 -45
- package/Shared/OInstance.cpp +9 -2
- package/Shared/Shared.vcxitems +265 -58
- package/Shared/Shared.vcxitems.filters +312 -42
- package/Shared/V8JSIRuntimeHolder.cpp +1 -0
- package/Shared/V8JSIRuntimeHolder.h +7 -2
- package/codegen/NativeAppearanceSpec.g.h +9 -3
- package/codegen/NativeClipboardSpec.g.h +3 -3
- package/codegen/NativeDevSplitBundleLoaderSpec.g.h +3 -3
- package/codegen/NativeDevToolsSettingsManagerSpec.g.h +51 -0
- package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -0
- package/codegen/NativeFileReaderModuleSpec.g.h +6 -6
- package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +3 -3
- package/codegen/NativeImageLoaderAndroidSpec.g.h +25 -9
- package/codegen/NativeImageLoaderIOSSpec.g.h +20 -12
- package/codegen/NativeIntentAndroidSpec.g.h +15 -15
- package/codegen/NativeLinkingManagerSpec.g.h +12 -12
- package/codegen/NativePerformanceObserverSpec.g.h +48 -10
- package/codegen/NativePerformanceSpec.g.h +63 -0
- package/codegen/NativePermissionsAndroidSpec.g.h +9 -9
- package/codegen/NativePlatformConstantsWinSpec.g.h +1 -1
- package/codegen/NativePushNotificationManagerIOSSpec.g.h +6 -6
- package/codegen/NativeSampleTurboModuleSpec.g.h +25 -19
- package/codegen/NativeShareModuleSpec.g.h +9 -3
- package/codegen/NativeUIManagerSpec.g.h +12 -12
- package/codegen/react/components/rnwcore/ComponentDescriptors.h +1 -2
- package/codegen/react/components/rnwcore/EventEmitters.cpp +21 -29
- package/codegen/react/components/rnwcore/EventEmitters.h +30 -30
- package/codegen/react/components/rnwcore/Props.cpp +47 -48
- package/codegen/react/components/rnwcore/Props.h +59 -166
- package/codegen/react/components/rnwcore/ShadowNodes.cpp +1 -2
- package/codegen/react/components/rnwcore/ShadowNodes.h +11 -22
- package/codegen/react/components/rnwcore/States.h +15 -30
- package/codegen/rnwcoreJSI-generated.cpp +87 -17
- package/codegen/rnwcoreJSI.h +1080 -376
- package/generate.js +6 -1
- package/include/Include.vcxitems +0 -1
- package/include/Include.vcxitems.filters +0 -3
- package/index.js +56 -42
- package/index.windows.js +56 -42
- package/interface.js +1 -1
- package/jest/local-setup.js +33 -0
- package/jest/mockComponent.js +4 -2
- package/jest/mockNativeComponent.js +1 -1
- package/jest/mockScrollView.js +2 -1
- package/jest/react-native-env.js +1 -3
- package/jest/setup.js +11 -8
- package/just-task.js +12 -5
- package/package.json +34 -31
- package/rn-get-polyfills.js +1 -1
- package/template/metro.config.js +2 -0
- package/Libraries/Animated/createAnimatedComponentInjection.js +0 -48
- package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +0 -48
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +0 -208
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +0 -58
- package/Libraries/Components/DatePicker/DatePickerIOS.android.js +0 -47
- package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +0 -92
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.android.js +0 -14
- package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +0 -113
- package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +0 -242
- package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +0 -47
- package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +0 -60
- package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +0 -26
- package/Libraries/Components/Flyout/Flyout.js.map +0 -1
- package/Libraries/Components/Flyout/FlyoutProps.d.ts +0 -25
- package/Libraries/Components/Flyout/FlyoutProps.js +0 -3
- package/Libraries/Components/Flyout/FlyoutProps.js.map +0 -1
- package/Libraries/Components/Glyph/Glyph.js.map +0 -1
- package/Libraries/Components/Glyph/GlyphProps.d.ts +0 -16
- package/Libraries/Components/Glyph/GlyphProps.js +0 -8
- package/Libraries/Components/Glyph/GlyphProps.js.map +0 -1
- package/Libraries/Components/Popup/Popup.js.map +0 -1
- package/Libraries/Components/Popup/PopupProps.d.ts +0 -27
- package/Libraries/Components/Popup/PopupProps.js +0 -8
- package/Libraries/Components/Popup/PopupProps.js.map +0 -1
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +0 -45
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +0 -62
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +0 -75
- package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +0 -45
- package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +0 -33
- package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +0 -19
- package/Libraries/Components/Slider/Slider.d.ts +0 -132
- package/Libraries/Components/Slider/Slider.js +0 -282
- package/Libraries/Components/Slider/SliderNativeComponent.js +0 -56
- package/Libraries/Interaction/Batchinator.js +0 -76
- package/Libraries/Interaction/BridgeSpyStallHandler.js +0 -63
- package/Libraries/Interaction/InteractionStallDebugger.js +0 -23
- package/Libraries/Interaction/PanResponder.flow.js +0 -257
- package/Libraries/Lists/CellRenderMask.js +0 -155
- package/Libraries/Lists/ChildListCollection.js +0 -72
- package/Libraries/Lists/StateSafePureComponent.js +0 -85
- package/Libraries/Lists/VirtualizedList.d.ts +0 -347
- package/Libraries/Lists/VirtualizedListCellRenderer.js +0 -259
- package/Libraries/Lists/VirtualizedListProps.js +0 -279
- package/Libraries/Performance/PureComponentDebug.js +0 -74
- package/Libraries/Reliability/UserFlow.js +0 -158
- package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +0 -149
- package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +0 -141
- package/Libraries/Utilities/MatrixMath.js +0 -748
- package/Libraries/Utilities/buildStyleInterpolator.js +0 -209
- package/Libraries/Utilities/clamp.js +0 -23
- package/Libraries/Utilities/deprecatedPropType.js +0 -36
- package/Libraries/Utilities/groupByEveryN.js +0 -51
- package/Libraries/Utilities/mergeIntoFast.js +0 -26
- package/Libraries/Utilities/setAndForwardRef.js +0 -71
- package/Libraries/Utilities/truncate.js +0 -51
- package/Microsoft.ReactNative/Fabric/platform/react/components/image/conversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ConcreteViewShadowNode.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewEventEmitter.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/components/view/ViewProps.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/ConcreteComponentDescriptor.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/PropsParserContext.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/core/propsConversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/graphics/Color.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/imagemanager/primitives.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputEventEmitter.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputProps.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputShadowNode.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/TextInputState.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/conversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/primitives.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/iostextinput/propsConversions.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/EventEmitters.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/Props.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Float.h +0 -5
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +0 -135
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +0 -217
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/graphics/RectangleEdges.h +0 -100
- package/Shared/AsyncStorage/AsyncStorageManager.cpp +0 -149
- package/Shared/AsyncStorage/AsyncStorageManager.h +0 -71
- package/Shared/AsyncStorage/FollyDynamicConverter.cpp +0 -51
- package/Shared/AsyncStorage/FollyDynamicConverter.h +0 -24
- package/Shared/AsyncStorage/KeyValueStorage.cpp +0 -248
- package/Shared/AsyncStorage/KeyValueStorage.h +0 -50
- package/Shared/AsyncStorage/StorageFileIO.cpp +0 -160
- package/Shared/AsyncStorage/StorageFileIO.h +0 -40
- package/Shared/AsyncStorageModule.h +0 -25
- package/Shared/Modules/AsyncStorageModule.cpp +0 -87
- package/Shared/Modules/AsyncStorageModuleWin32.cpp +0 -496
- package/Shared/Modules/AsyncStorageModuleWin32.h +0 -75
- package/codegen/NativeDatePickerAndroidSpec.g.h +0 -33
- package/include/Shared/AsyncStorageModuleWin32Config.h +0 -15
- package/types/index.d.ts +0 -216
- package/types/modules/BatchedBridge.d.ts +0 -32
- package/types/modules/Codegen.d.ts +0 -74
- package/types/modules/Devtools.d.ts +0 -31
- package/types/modules/LaunchScreen.d.ts +0 -18
- package/types/modules/globals.d.ts +0 -577
- package/types/private/TimerMixin.d.ts +0 -19
- package/types/private/Utilities.d.ts +0 -10
- package/types/public/DeprecatedPropertiesAlias.d.ts +0 -205
- package/types/public/Insets.d.ts +0 -15
- package/types/public/ReactNativeRenderer.d.ts +0 -149
- package/types/public/ReactNativeTypes.d.ts +0 -143
|
@@ -7,243 +7,21 @@
|
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
|
-
#include <
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (value.hasType<int>()) {
|
|
30
|
-
auto argb = (int64_t)value;
|
|
31
|
-
auto ratio = 255.f;
|
|
32
|
-
colorComponents.alpha = ((argb >> 24) & 0xFF) / ratio;
|
|
33
|
-
colorComponents.red = ((argb >> 16) & 0xFF) / ratio;
|
|
34
|
-
colorComponents.green = ((argb >> 8) & 0xFF) / ratio;
|
|
35
|
-
colorComponents.blue = (argb & 0xFF) / ratio;
|
|
36
|
-
} else if (value.hasType<std::vector<float>>()) {
|
|
37
|
-
auto items = (std::vector<float>)value;
|
|
38
|
-
auto length = items.size();
|
|
39
|
-
react_native_assert(length == 3 || length == 4);
|
|
40
|
-
colorComponents.red = items.at(0);
|
|
41
|
-
colorComponents.green = items.at(1);
|
|
42
|
-
colorComponents.blue = items.at(2);
|
|
43
|
-
colorComponents.alpha = length == 4 ? items.at(3) : 1.0f;
|
|
44
|
-
// [Windows - Embed WindowBrush into SharedColor instead of trying to parse PlatformColor into RGB
|
|
45
|
-
} else if (value.hasType<butter::map<std::string, std::string>>()) {
|
|
46
|
-
auto map = (butter::map<std::string, std::string>)value;
|
|
47
|
-
for (const auto &pair : map) {
|
|
48
|
-
if (pair.first == "windowsbrush") {
|
|
49
|
-
result = SharedColor(std::string(pair.second));
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// Windows]
|
|
55
|
-
|
|
56
|
-
result = colorFromComponents(colorComponents);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
#ifdef ANDROID
|
|
60
|
-
|
|
61
|
-
inline int toAndroidRepr(const SharedColor &color) {
|
|
62
|
-
ColorComponents components = colorComponentsFromColor(color);
|
|
63
|
-
auto ratio = 255.f;
|
|
64
|
-
return (
|
|
65
|
-
((int)round(components.alpha * ratio) & 0xff) << 24 | ((int)round(components.red * ratio) & 0xff) << 16 |
|
|
66
|
-
((int)round(components.green * ratio) & 0xff) << 8 | ((int)round(components.blue * ratio) & 0xff));
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
#endif
|
|
70
|
-
|
|
71
|
-
inline std::string toString(const SharedColor &value) {
|
|
72
|
-
ColorComponents components = colorComponentsFromColor(value);
|
|
73
|
-
auto ratio = 255.f;
|
|
74
|
-
return "rgba(" + folly::to<std::string>(round(components.red * ratio)) + ", " +
|
|
75
|
-
folly::to<std::string>(round(components.green * ratio)) + ", " +
|
|
76
|
-
folly::to<std::string>(round(components.blue * ratio)) + ", " +
|
|
77
|
-
folly::to<std::string>(round(components.alpha * ratio)) + ")";
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
#pragma mark - Geometry
|
|
81
|
-
|
|
82
|
-
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, Point &result) {
|
|
83
|
-
if (value.hasType<butter::map<std::string, Float>>()) {
|
|
84
|
-
auto map = (butter::map<std::string, Float>)value;
|
|
85
|
-
for (const auto &pair : map) {
|
|
86
|
-
if (pair.first == "x") {
|
|
87
|
-
result.x = pair.second;
|
|
88
|
-
} else if (pair.first == "y") {
|
|
89
|
-
result.y = pair.second;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
react_native_assert(value.hasType<std::vector<Float>>());
|
|
96
|
-
if (value.hasType<std::vector<Float>>()) {
|
|
97
|
-
auto array = (std::vector<Float>)value;
|
|
98
|
-
react_native_assert(array.size() == 2);
|
|
99
|
-
if (array.size() >= 2) {
|
|
100
|
-
result = {array.at(0), array.at(1)};
|
|
101
|
-
} else {
|
|
102
|
-
result = {0, 0};
|
|
103
|
-
LOG(ERROR) << "Unsupported Point vector size: " << array.size();
|
|
104
|
-
}
|
|
105
|
-
} else {
|
|
106
|
-
LOG(ERROR) << "Unsupported Point type";
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, Size &result) {
|
|
111
|
-
if (value.hasType<butter::map<std::string, Float>>()) {
|
|
112
|
-
auto map = (butter::map<std::string, Float>)value;
|
|
113
|
-
for (const auto &pair : map) {
|
|
114
|
-
if (pair.first == "width") {
|
|
115
|
-
result.width = pair.second;
|
|
116
|
-
} else if (pair.first == "height") {
|
|
117
|
-
result.height = pair.second;
|
|
118
|
-
} else {
|
|
119
|
-
LOG(ERROR) << "Unsupported Size map key: " << pair.first;
|
|
120
|
-
react_native_assert(false);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
react_native_assert(value.hasType<std::vector<Float>>());
|
|
127
|
-
if (value.hasType<std::vector<Float>>()) {
|
|
128
|
-
auto array = (std::vector<Float>)value;
|
|
129
|
-
react_native_assert(array.size() == 2);
|
|
130
|
-
if (array.size() >= 2) {
|
|
131
|
-
result = {array.at(0), array.at(1)};
|
|
132
|
-
} else {
|
|
133
|
-
result = {0, 0};
|
|
134
|
-
LOG(ERROR) << "Unsupported Size vector size: " << array.size();
|
|
135
|
-
}
|
|
136
|
-
} else {
|
|
137
|
-
LOG(ERROR) << "Unsupported Size type";
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, EdgeInsets &result) {
|
|
142
|
-
if (value.hasType<Float>()) {
|
|
143
|
-
auto number = (Float)value;
|
|
144
|
-
result = {number, number, number, number};
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
if (value.hasType<butter::map<std::string, Float>>()) {
|
|
149
|
-
auto map = (butter::map<std::string, Float>)value;
|
|
150
|
-
for (const auto &pair : map) {
|
|
151
|
-
if (pair.first == "top") {
|
|
152
|
-
result.top = pair.second;
|
|
153
|
-
} else if (pair.first == "left") {
|
|
154
|
-
result.left = pair.second;
|
|
155
|
-
} else if (pair.first == "bottom") {
|
|
156
|
-
result.bottom = pair.second;
|
|
157
|
-
} else if (pair.first == "right") {
|
|
158
|
-
result.right = pair.second;
|
|
159
|
-
} else {
|
|
160
|
-
LOG(ERROR) << "Unsupported EdgeInsets map key: " << pair.first;
|
|
161
|
-
react_native_assert(false);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
react_native_assert(value.hasType<std::vector<Float>>());
|
|
168
|
-
if (value.hasType<std::vector<Float>>()) {
|
|
169
|
-
auto array = (std::vector<Float>)value;
|
|
170
|
-
react_native_assert(array.size() == 4);
|
|
171
|
-
if (array.size() >= 4) {
|
|
172
|
-
result = {array.at(0), array.at(1), array.at(2), array.at(3)};
|
|
173
|
-
} else {
|
|
174
|
-
result = {0, 0, 0, 0};
|
|
175
|
-
LOG(ERROR) << "Unsupported EdgeInsets vector size: " << array.size();
|
|
176
|
-
}
|
|
177
|
-
} else {
|
|
178
|
-
LOG(ERROR) << "Unsupported EdgeInsets type";
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, CornerInsets &result) {
|
|
183
|
-
if (value.hasType<Float>()) {
|
|
184
|
-
auto number = (Float)value;
|
|
185
|
-
result = {number, number, number, number};
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
if (value.hasType<butter::map<std::string, Float>>()) {
|
|
190
|
-
auto map = (butter::map<std::string, Float>)value;
|
|
191
|
-
for (const auto &pair : map) {
|
|
192
|
-
if (pair.first == "topLeft") {
|
|
193
|
-
result.topLeft = pair.second;
|
|
194
|
-
} else if (pair.first == "topRight") {
|
|
195
|
-
result.topRight = pair.second;
|
|
196
|
-
} else if (pair.first == "bottomLeft") {
|
|
197
|
-
result.bottomLeft = pair.second;
|
|
198
|
-
} else if (pair.first == "bottomRight") {
|
|
199
|
-
result.bottomRight = pair.second;
|
|
200
|
-
} else {
|
|
201
|
-
LOG(ERROR) << "Unsupported CornerInsets map key: " << pair.first;
|
|
202
|
-
react_native_assert(false);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
react_native_assert(value.hasType<std::vector<Float>>());
|
|
209
|
-
if (value.hasType<std::vector<Float>>()) {
|
|
210
|
-
auto array = (std::vector<Float>)value;
|
|
211
|
-
react_native_assert(array.size() == 4);
|
|
212
|
-
if (array.size() >= 4) {
|
|
213
|
-
result = {array.at(0), array.at(1), array.at(2), array.at(3)};
|
|
214
|
-
} else {
|
|
215
|
-
LOG(ERROR) << "Unsupported CornerInsets vector size: " << array.size();
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
// Error case - we should only here if all other supported cases fail
|
|
220
|
-
// In dev we would crash on assert before this point
|
|
221
|
-
result = {0, 0, 0, 0};
|
|
222
|
-
LOG(ERROR) << "Unsupported CornerInsets type";
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
inline std::string toString(const Point &point) {
|
|
226
|
-
return "{" + folly::to<std::string>(point.x) + ", " + folly::to<std::string>(point.y) + "}";
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
inline std::string toString(const Size &size) {
|
|
230
|
-
return "{" + folly::to<std::string>(size.width) + ", " + folly::to<std::string>(size.height) + "}";
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
inline std::string toString(const Rect &rect) {
|
|
234
|
-
return "{" + toString(rect.origin) + ", " + toString(rect.size) + "}";
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
inline std::string toString(const EdgeInsets &edgeInsets) {
|
|
238
|
-
return "{" + folly::to<std::string>(edgeInsets.left) + ", " + folly::to<std::string>(edgeInsets.top) + ", " +
|
|
239
|
-
folly::to<std::string>(edgeInsets.right) + ", " + folly::to<std::string>(edgeInsets.bottom) + "}";
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
inline std::string toString(const CornerInsets &cornerInsets) {
|
|
243
|
-
return "{" + folly::to<std::string>(cornerInsets.topLeft) + ", " + folly::to<std::string>(cornerInsets.topRight) +
|
|
244
|
-
", " + folly::to<std::string>(cornerInsets.bottomLeft) + ", " + folly::to<std::string>(cornerInsets.bottomRight) +
|
|
245
|
-
"}";
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
} // namespace react
|
|
249
|
-
} // namespace facebook
|
|
10
|
+
#include <react/renderer/core/graphicsConversions.h>
|
|
11
|
+
|
|
12
|
+
// This file belongs to the React-graphics module.
|
|
13
|
+
// This file also used to have a reference to two files that are located in the
|
|
14
|
+
// react/renderer/core folder. That folder belongs to a module that is called
|
|
15
|
+
// React-Fabric.
|
|
16
|
+
// The React-Fabric module declares an explicit dependency on
|
|
17
|
+
// React-graphics. Including those files in a React-graphics' file created a
|
|
18
|
+
// circular dependency because React-Fabric was explicitly depending on
|
|
19
|
+
// React-graphics, which was implicitly depending on React-Fabric. We break that
|
|
20
|
+
// dependency by moving the old `graphics/conversions.h` file to the
|
|
21
|
+
// React-Fabric module and renaming it `core/graphicsConversions.h`.
|
|
22
|
+
|
|
23
|
+
#warning \
|
|
24
|
+
"[DEPRECATION] `graphics/conversions.h` is deprecated and will be removed in the future. \
|
|
25
|
+
If this warning appears due to a library, please open an issue in that library, and ask for an update. \
|
|
26
|
+
Please, replace the `#include <react/renderer/graphics/conversions.h>` statements \
|
|
27
|
+
with `#include <react/renderer/core/graphicsConversions.h>`."
|
package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.cpp
CHANGED
|
@@ -6,7 +6,10 @@
|
|
|
6
6
|
#include "pch.h"
|
|
7
7
|
|
|
8
8
|
#include <Fabric/DWriteHelpers.h>
|
|
9
|
+
#include <Utils/TransformableText.h>
|
|
9
10
|
#include <dwrite.h>
|
|
11
|
+
#include <dwrite_1.h>
|
|
12
|
+
#include <react/renderer/telemetry/TransactionTelemetry.h>
|
|
10
13
|
#include "TextLayoutManager.h"
|
|
11
14
|
|
|
12
15
|
#include <unicode.h>
|
|
@@ -17,7 +20,6 @@ void TextLayoutManager::GetTextLayout(
|
|
|
17
20
|
AttributedStringBox attributedStringBox,
|
|
18
21
|
ParagraphAttributes paragraphAttributes,
|
|
19
22
|
LayoutConstraints layoutConstraints,
|
|
20
|
-
const std::optional<TextAlignment> &textAlignment,
|
|
21
23
|
winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept {
|
|
22
24
|
if (attributedStringBox.getValue().isEmpty())
|
|
23
25
|
return;
|
|
@@ -45,9 +47,23 @@ void TextLayoutManager::GetTextLayout(
|
|
|
45
47
|
L"",
|
|
46
48
|
spTextFormat.put()));
|
|
47
49
|
|
|
50
|
+
if (!isnan(outerFragment.textAttributes.lineHeight)) {
|
|
51
|
+
winrt::check_hresult(spTextFormat->SetLineSpacing(
|
|
52
|
+
DWRITE_LINE_SPACING_METHOD_UNIFORM,
|
|
53
|
+
outerFragment.textAttributes.lineHeight,
|
|
54
|
+
// Recommended ratio of baseline to lineSpacing is 80%
|
|
55
|
+
// https://learn.microsoft.com/en-us/windows/win32/api/dwrite/nf-dwrite-idwritetextformat-getlinespacing
|
|
56
|
+
// It is possible we need to load full font metrics to calculate a better baseline value.
|
|
57
|
+
// For a particular font, you can determine what lineSpacing and baseline should be by examing a
|
|
58
|
+
// DWRITE_FONT_METRICS method available from the GetMetrics method of IDWriteFont or IDWriteFontFace. For normal
|
|
59
|
+
// behavior, you'd set lineSpacing to the sum of ascent, descent and lineGap (adjusted for the em size, of
|
|
60
|
+
// course), and baseline to the ascent value.
|
|
61
|
+
outerFragment.textAttributes.lineHeight * 0.8f));
|
|
62
|
+
}
|
|
63
|
+
|
|
48
64
|
DWRITE_TEXT_ALIGNMENT alignment = DWRITE_TEXT_ALIGNMENT_LEADING;
|
|
49
|
-
if (
|
|
50
|
-
switch (*
|
|
65
|
+
if (outerFragment.textAttributes.alignment) {
|
|
66
|
+
switch (*outerFragment.textAttributes.alignment) {
|
|
51
67
|
case facebook::react::TextAlignment::Center:
|
|
52
68
|
alignment = DWRITE_TEXT_ALIGNMENT_CENTER;
|
|
53
69
|
break;
|
|
@@ -70,11 +86,11 @@ void TextLayoutManager::GetTextLayout(
|
|
|
70
86
|
}
|
|
71
87
|
winrt::check_hresult(spTextFormat->SetTextAlignment(alignment));
|
|
72
88
|
|
|
73
|
-
auto str =
|
|
89
|
+
auto str = GetTransformedText(attributedStringBox);
|
|
74
90
|
|
|
75
91
|
winrt::check_hresult(Microsoft::ReactNative::DWriteFactory()->CreateTextLayout(
|
|
76
92
|
str.c_str(), // The string to be laid out and formatted.
|
|
77
|
-
static_cast<UINT32>(str.
|
|
93
|
+
static_cast<UINT32>(str.size()), // The length of the string.
|
|
78
94
|
spTextFormat.get(), // The text format to apply to the string (contains font information, etc).
|
|
79
95
|
layoutConstraints.maximumSize.width, // The width of the layout box.
|
|
80
96
|
layoutConstraints.maximumSize.height, // The height of the layout box.
|
|
@@ -104,6 +120,11 @@ void TextLayoutManager::GetTextLayout(
|
|
|
104
120
|
winrt::check_hresult(spTextLayout->SetFontStyle(fragmentStyle, range));
|
|
105
121
|
winrt::check_hresult(spTextLayout->SetFontSize(attributes.fontSize, range));
|
|
106
122
|
|
|
123
|
+
if (!isnan(attributes.letterSpacing)) {
|
|
124
|
+
winrt::check_hresult(
|
|
125
|
+
spTextLayout.as<IDWriteTextLayout1>()->SetCharacterSpacing(0, attributes.letterSpacing, 0, range));
|
|
126
|
+
}
|
|
127
|
+
|
|
107
128
|
position += length;
|
|
108
129
|
}
|
|
109
130
|
}
|
|
@@ -111,18 +132,50 @@ void TextLayoutManager::GetTextLayout(
|
|
|
111
132
|
TextMeasurement TextLayoutManager::measure(
|
|
112
133
|
AttributedStringBox attributedStringBox,
|
|
113
134
|
ParagraphAttributes paragraphAttributes,
|
|
114
|
-
LayoutConstraints layoutConstraints
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
135
|
+
LayoutConstraints layoutConstraints,
|
|
136
|
+
std::shared_ptr<void> /* hostTextStorage */) const {
|
|
137
|
+
TextMeasurement measurement{};
|
|
138
|
+
auto &attributedString = attributedStringBox.getValue();
|
|
139
|
+
measurement = m_measureCache.get(
|
|
140
|
+
{attributedString, paragraphAttributes, layoutConstraints}, [&](TextMeasureCacheKey const &key) {
|
|
141
|
+
auto telemetry = TransactionTelemetry::threadLocalTelemetry();
|
|
142
|
+
if (telemetry) {
|
|
143
|
+
telemetry->willMeasureText();
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
winrt::com_ptr<IDWriteTextLayout> spTextLayout;
|
|
147
|
+
|
|
148
|
+
GetTextLayout(attributedStringBox, paragraphAttributes, layoutConstraints, spTextLayout);
|
|
149
|
+
|
|
150
|
+
if (spTextLayout) {
|
|
151
|
+
auto maxHeight = std::numeric_limits<float>().max();
|
|
152
|
+
if (paragraphAttributes.maximumNumberOfLines > 0) {
|
|
153
|
+
std::vector<DWRITE_LINE_METRICS> lineMetrics;
|
|
154
|
+
uint32_t actualLineCount;
|
|
155
|
+
spTextLayout->GetLineMetrics(nullptr, 0, &actualLineCount);
|
|
156
|
+
lineMetrics.resize(static_cast<size_t>(actualLineCount));
|
|
157
|
+
winrt::check_hresult(spTextLayout->GetLineMetrics(lineMetrics.data(), actualLineCount, &actualLineCount));
|
|
158
|
+
maxHeight = 0;
|
|
159
|
+
const auto count =
|
|
160
|
+
std::min(static_cast<uint32_t>(paragraphAttributes.maximumNumberOfLines), actualLineCount);
|
|
161
|
+
for (uint32_t i = 0; i < count; ++i) {
|
|
162
|
+
maxHeight += lineMetrics[i].height;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
DWRITE_TEXT_METRICS dtm{};
|
|
167
|
+
winrt::check_hresult(spTextLayout->GetMetrics(&dtm));
|
|
168
|
+
measurement.size = {dtm.width, std::min(dtm.height, maxHeight)};
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
if (telemetry) {
|
|
172
|
+
telemetry->didMeasureText();
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return measurement;
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
return measurement;
|
|
126
179
|
}
|
|
127
180
|
|
|
128
181
|
/**
|
|
@@ -145,8 +198,45 @@ LinesMeasurements TextLayoutManager::measureLines(
|
|
|
145
198
|
return {};
|
|
146
199
|
}
|
|
147
200
|
|
|
201
|
+
std::shared_ptr<void> TextLayoutManager::getHostTextStorage(
|
|
202
|
+
AttributedString attributedString,
|
|
203
|
+
ParagraphAttributes paragraphAttributes,
|
|
204
|
+
LayoutConstraints layoutConstraints) const {
|
|
205
|
+
return nullptr;
|
|
206
|
+
}
|
|
207
|
+
|
|
148
208
|
void *TextLayoutManager::getNativeTextLayoutManager() const {
|
|
149
209
|
return (void *)this;
|
|
150
210
|
}
|
|
151
211
|
|
|
212
|
+
Microsoft::ReactNative::TextTransform ConvertTextTransform(std::optional<TextTransform> const &transform) {
|
|
213
|
+
if (transform) {
|
|
214
|
+
switch (transform.value()) {
|
|
215
|
+
case TextTransform::Capitalize:
|
|
216
|
+
return Microsoft::ReactNative::TextTransform::Capitalize;
|
|
217
|
+
case TextTransform::Lowercase:
|
|
218
|
+
return Microsoft::ReactNative::TextTransform::Lowercase;
|
|
219
|
+
case TextTransform::Uppercase:
|
|
220
|
+
return Microsoft::ReactNative::TextTransform::Uppercase;
|
|
221
|
+
case TextTransform::None:
|
|
222
|
+
return Microsoft::ReactNative::TextTransform::None;
|
|
223
|
+
default:
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
return Microsoft::ReactNative::TextTransform::Undefined;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
winrt::hstring TextLayoutManager::GetTransformedText(AttributedStringBox const &attributedStringBox) {
|
|
232
|
+
winrt::hstring result{};
|
|
233
|
+
for (const auto &fragment : attributedStringBox.getValue().getFragments()) {
|
|
234
|
+
result = result +
|
|
235
|
+
Microsoft::ReactNative::TransformableText::TransformText(
|
|
236
|
+
winrt::hstring{Microsoft::Common::Unicode::Utf8ToUtf16(fragment.string)},
|
|
237
|
+
ConvertTextTransform(fragment.textAttributes.textTransform));
|
|
238
|
+
}
|
|
239
|
+
return result;
|
|
240
|
+
}
|
|
241
|
+
|
|
152
242
|
} // namespace facebook::react
|
package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/TextLayoutManager.h
CHANGED
|
@@ -36,7 +36,8 @@ class TextLayoutManager {
|
|
|
36
36
|
TextMeasurement measure(
|
|
37
37
|
AttributedStringBox attributedStringBox,
|
|
38
38
|
ParagraphAttributes paragraphAttributes,
|
|
39
|
-
LayoutConstraints layoutConstraints
|
|
39
|
+
LayoutConstraints layoutConstraints,
|
|
40
|
+
std::shared_ptr<void> /* hostTextStorage */) const;
|
|
40
41
|
|
|
41
42
|
/*
|
|
42
43
|
* Measures lines of `attributedString` using native text rendering
|
|
@@ -45,6 +46,11 @@ class TextLayoutManager {
|
|
|
45
46
|
LinesMeasurements measureLines(AttributedString attributedString, ParagraphAttributes paragraphAttributes, Size size)
|
|
46
47
|
const;
|
|
47
48
|
|
|
49
|
+
std::shared_ptr<void> getHostTextStorage(
|
|
50
|
+
AttributedString attributedString,
|
|
51
|
+
ParagraphAttributes paragraphAttributes,
|
|
52
|
+
LayoutConstraints layoutConstraints) const;
|
|
53
|
+
|
|
48
54
|
/**
|
|
49
55
|
* Measures an AttributedString on the platform, as identified by some
|
|
50
56
|
* opaque cache ID.
|
|
@@ -64,13 +70,18 @@ class TextLayoutManager {
|
|
|
64
70
|
AttributedStringBox attributedStringBox,
|
|
65
71
|
ParagraphAttributes paragraphAttributes,
|
|
66
72
|
LayoutConstraints layoutConstraints,
|
|
67
|
-
const std::optional<TextAlignment> &textAlignment,
|
|
68
73
|
winrt::com_ptr<IDWriteTextLayout> &spTextLayout) noexcept;
|
|
69
74
|
|
|
70
75
|
#pragma endregion
|
|
71
76
|
|
|
72
77
|
private:
|
|
78
|
+
static winrt::hstring GetTransformedText(AttributedStringBox const &attributedStringBox);
|
|
79
|
+
|
|
73
80
|
ContextContainer::Shared m_contextContainer;
|
|
81
|
+
#pragma warning(push)
|
|
82
|
+
#pragma warning(disable : 5028)
|
|
83
|
+
TextMeasureCache m_measureCache{};
|
|
84
|
+
#pragma warning(pop)
|
|
74
85
|
};
|
|
75
86
|
|
|
76
87
|
} // namespace react
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
#include "DocString.h"
|
|
5
|
+
import "CompositionSwitcher.idl";
|
|
6
|
+
import "IJSValueReader.idl";
|
|
7
|
+
import "ViewProps.idl";
|
|
8
|
+
|
|
9
|
+
namespace Microsoft.ReactNative.Composition
|
|
10
|
+
{
|
|
11
|
+
[webhosthidden]
|
|
12
|
+
[experimental]
|
|
13
|
+
struct LayoutMetrics {
|
|
14
|
+
Windows.Foundation.Rect Frame;
|
|
15
|
+
Single PointScaleFactor;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
[experimental]
|
|
19
|
+
DOC_STRING("Provides a factory method to create an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetCreateView")
|
|
20
|
+
delegate Object CompositionComponentFactory(ICompositionContext context);
|
|
21
|
+
|
|
22
|
+
// TODO should make an event args, with a handled bit instead of return value
|
|
23
|
+
[experimental]
|
|
24
|
+
DOC_STRING("A delegate that handles commands for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetCommandHandler")
|
|
25
|
+
delegate Boolean CommandHandler(Object handle, String commandName, Microsoft.ReactNative.IJSValueReader args);
|
|
26
|
+
|
|
27
|
+
[experimental]
|
|
28
|
+
DOC_STRING("A delegate that updates the properties for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetPropsUpdater")
|
|
29
|
+
delegate void PropsUpdater(Object handle, Microsoft.ReactNative.IComponentProps props);
|
|
30
|
+
|
|
31
|
+
[experimental]
|
|
32
|
+
DOC_STRING("A delegate that updates the @LayoutMetrics for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetLayoutMetricsUpdater")
|
|
33
|
+
delegate void LayoutMetricsUpdater(Object handle, LayoutMetrics metrics);
|
|
34
|
+
|
|
35
|
+
[experimental]
|
|
36
|
+
DOC_STRING("A delegate that finalizes the updates for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetUpdateFinalizer")
|
|
37
|
+
delegate void UpdateFinalizer(Object handle);
|
|
38
|
+
|
|
39
|
+
[experimental]
|
|
40
|
+
DOC_STRING("A delegate that creates the @IVisual for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetVisualCreator")
|
|
41
|
+
delegate IVisual VisualCreator(Object handle);
|
|
42
|
+
|
|
43
|
+
[experimental]
|
|
44
|
+
DOC_STRING("A delegate that handles input messages for an instance of a ViewComponent. See @IReactCompositionViewComponentBuilder.SetMessageHandler")
|
|
45
|
+
delegate Int64 MessageHandler(Object handle, UInt32 Msg, UInt64 WParam, Int64 LParam);
|
|
46
|
+
|
|
47
|
+
[webhosthidden]
|
|
48
|
+
[experimental]
|
|
49
|
+
DOC_STRING(".")
|
|
50
|
+
interface IReactCompositionViewComponentBuilder
|
|
51
|
+
{
|
|
52
|
+
// (ICompositionContext) => Handle
|
|
53
|
+
void SetCreateView(CompositionComponentFactory impl);
|
|
54
|
+
|
|
55
|
+
DOC_STRING("Called when a command is run against this component. If the command is handled this function should return true.")
|
|
56
|
+
// (Object handle, String commandName, Microsoft.ReactNative.IJSValueReader args) => bool
|
|
57
|
+
void SetCommandHandler(CommandHandler commandHandler);
|
|
58
|
+
|
|
59
|
+
// TODO -void UpdateEventEmitter(IEventEmitter emitter);
|
|
60
|
+
|
|
61
|
+
DOC_STRING("Called whenever the properties change.")
|
|
62
|
+
// (Object handle, Microsoft.ReactNative.IComponentProps props) => void
|
|
63
|
+
void SetPropsUpdater(PropsUpdater impl);
|
|
64
|
+
|
|
65
|
+
DOC_STRING("Called whenever the layout metrics change.")
|
|
66
|
+
// (Object handle, LayoutMetrics metrics) => void
|
|
67
|
+
void SetLayoutMetricsUpdater(LayoutMetricsUpdater impl);
|
|
68
|
+
|
|
69
|
+
// TODO - void UpdateState(...);
|
|
70
|
+
|
|
71
|
+
DOC_STRING("Called on any update, after props, layout, and state have been updated.")
|
|
72
|
+
// (Object handle) => void
|
|
73
|
+
void SetUpdateFinalizer(UpdateFinalizer impl);
|
|
74
|
+
|
|
75
|
+
DOC_STRING("This visual will be added to the visual tree, and should be used to display this component.")
|
|
76
|
+
// (Object handle) => IVisual
|
|
77
|
+
void SetVisualCreator(VisualCreator impl);
|
|
78
|
+
|
|
79
|
+
DOC_STRING("Used to handle native input into this component.")
|
|
80
|
+
// (Object handle, UInt32 Msg, UInt64 WParam, Int64 LParam) => Int64
|
|
81
|
+
void SetMessageHandler(MessageHandler impl);
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
} // namespace Microsoft.ReactNative
|
|
@@ -61,6 +61,10 @@ hstring ReactSettingsSnapshot::JavaScriptBundleFile() const noexcept {
|
|
|
61
61
|
return winrt::to_hstring(m_settings->JavaScriptBundleFile());
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
hstring ReactSettingsSnapshot::BundleAppId() const noexcept {
|
|
65
|
+
return winrt::to_hstring(m_settings->BundleAppId());
|
|
66
|
+
}
|
|
67
|
+
|
|
64
68
|
Mso::React::IReactSettingsSnapshot const &ReactSettingsSnapshot::GetInner() const noexcept {
|
|
65
69
|
return *m_settings;
|
|
66
70
|
}
|
|
@@ -23,6 +23,7 @@ struct ReactSettingsSnapshot : winrt::implements<ReactSettingsSnapshot, IReactSe
|
|
|
23
23
|
uint16_t SourceBundlePort() const noexcept;
|
|
24
24
|
bool RequestInlineSourceMap() const noexcept;
|
|
25
25
|
hstring JavaScriptBundleFile() const noexcept;
|
|
26
|
+
hstring BundleAppId() const noexcept;
|
|
26
27
|
|
|
27
28
|
public:
|
|
28
29
|
// Internal accessor for within the Microsoft.ReactNative dll to allow calling into internal methods
|
|
@@ -120,6 +120,11 @@ namespace Microsoft.ReactNative
|
|
|
120
120
|
"The `.bundle` extension will be appended to the end, when looking for the bundle file.")
|
|
121
121
|
String JavaScriptBundleFile { get; };
|
|
122
122
|
|
|
123
|
+
DOC_STRING(
|
|
124
|
+
"A read-only snapshot of the @ReactInstanceSettings.BundleAppId property value "
|
|
125
|
+
"at the time when the React instance was created.\n"
|
|
126
|
+
"The name of the app passed to the packager server via the 'app' query parameter.")
|
|
127
|
+
String BundleAppId { get; };
|
|
123
128
|
}
|
|
124
129
|
|
|
125
130
|
[webhosthidden]
|
|
@@ -124,6 +124,10 @@ void ReactDispatcher::InvokeElsePost(Mso::DispatchTask &&task) const noexcept {
|
|
|
124
124
|
return jsThreadDispatcherProperty;
|
|
125
125
|
}
|
|
126
126
|
|
|
127
|
+
/*static*/ IReactDispatcher ReactDispatcher::GetJSDispatcher(IReactPropertyBag const &properties) noexcept {
|
|
128
|
+
return properties.Get(JSDispatcherProperty()).try_as<IReactDispatcher>();
|
|
129
|
+
}
|
|
130
|
+
|
|
127
131
|
/*static*/ IReactPropertyName ReactDispatcher::JSDispatcherTaskStartingEventName() noexcept {
|
|
128
132
|
static IReactPropertyName jsThreadDispatcherProperty{ReactPropertyBagHelper::GetName(
|
|
129
133
|
ReactPropertyBagHelper::GetNamespace(L"ReactNative.Dispatcher"), L"JSDispatcherTaskStartingEventName")};
|
|
@@ -38,6 +38,7 @@ struct ReactDispatcher : implements<ReactDispatcher, IReactDispatcher, Mso::Reac
|
|
|
38
38
|
static void SetUIThreadDispatcher(IReactPropertyBag const &properties) noexcept;
|
|
39
39
|
|
|
40
40
|
static IReactPropertyName JSDispatcherProperty() noexcept;
|
|
41
|
+
static IReactDispatcher GetJSDispatcher(IReactPropertyBag const &properties) noexcept;
|
|
41
42
|
static IReactPropertyName JSDispatcherTaskStartingEventName() noexcept;
|
|
42
43
|
static IReactPropertyName JSDispatcherIdleWaitStartingEventName() noexcept;
|
|
43
44
|
static IReactPropertyName JSDispatcherIdleWaitCompletedEventName() noexcept;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
import "IReactViewComponentBuilder.idl";
|
|
5
|
+
|
|
6
|
+
#include "DocString.h"
|
|
7
|
+
|
|
8
|
+
namespace Microsoft.ReactNative
|
|
9
|
+
{
|
|
10
|
+
[experimental]
|
|
11
|
+
DOC_STRING("Provides information about a custom view component. See @IReactPackageBuilderFabric.AddViewComponent")
|
|
12
|
+
delegate void ReactViewComponentProvider(IReactViewComponentBuilder viewComponentBuilder);
|
|
13
|
+
|
|
14
|
+
[webhosthidden]
|
|
15
|
+
[experimental]
|
|
16
|
+
DOC_STRING("Provides ability to register custom ViewComponents when running fabric. Methods on this interface will eventually be moved onto @IReactPackageProvider once fabric ships.")
|
|
17
|
+
interface IReactPackageBuilderFabric
|
|
18
|
+
{
|
|
19
|
+
DOC_STRING("Registers a custom native view component.")
|
|
20
|
+
void AddViewComponent(String componentName, ReactViewComponentProvider componentProvider);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
} // namespace Microsoft.ReactNative
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
import "ViewProps.idl";
|
|
5
|
+
|
|
6
|
+
#include "DocString.h"
|
|
7
|
+
|
|
8
|
+
namespace Microsoft.ReactNative
|
|
9
|
+
{
|
|
10
|
+
[experimental]
|
|
11
|
+
DOC_STRING("A delegate that creates a @IComponentProps object for an instance of @ViewProps. See @IReactViewComponentBuilder.SetCreateProps")
|
|
12
|
+
delegate IComponentProps ViewPropsFactory(ViewProps props);
|
|
13
|
+
|
|
14
|
+
[webhosthidden]
|
|
15
|
+
[experimental]
|
|
16
|
+
DOC_STRING(".")
|
|
17
|
+
interface IReactViewComponentBuilder
|
|
18
|
+
{
|
|
19
|
+
DOC_STRING("Create an implementation of your custom Props type that will be passed to your components @Composition.ICompositionViewComponent.UpdateProps method.")
|
|
20
|
+
void SetCreateProps(ViewPropsFactory impl);
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
} // namespace Microsoft.ReactNative
|