react-native-windows 0.74.24 → 0.74.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/Microsoft.ReactNative/Fabric/ComponentView.cpp +8 -0
  2. package/Microsoft.ReactNative/Fabric/ComponentView.h +5 -1
  3. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.cpp +5 -0
  4. package/Microsoft.ReactNative/Fabric/Composition/BorderPrimitive.h +4 -0
  5. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootAutomationProvider.cpp +8 -32
  6. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +190 -84
  7. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +15 -10
  8. package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +2 -1
  9. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +23 -0
  10. package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +3 -0
  11. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.cpp +20 -0
  12. package/Microsoft.ReactNative/Fabric/Composition/RootComponentView.h +3 -0
  13. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +10 -0
  14. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +3 -0
  15. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +16 -4
  16. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +1 -0
  17. package/Microsoft.ReactNative/Fabric/Composition/UnimplementedNativeViewComponentView.cpp +1 -1
  18. package/Microsoft.ReactNative/packages.lock.json +55 -83
  19. package/Microsoft.ReactNative.Cxx/ComponentView.Experimental.interop.h +14 -0
  20. package/Microsoft.ReactNative.Managed/packages.lock.json +107 -107
  21. package/PropertySheets/CppAppConsumeCSharpModule.props +2 -0
  22. package/PropertySheets/External/Microsoft.ReactNative.CSharp.Dependencies.props +1 -1
  23. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  24. package/ReactCommon/packages.lock.json +2 -2
  25. package/package.json +1 -1
@@ -110,6 +110,9 @@ struct ScrollInteractionTrackerOwner : public winrt::implements<
110
110
  bool lineRight(bool animate) noexcept;
111
111
  winrt::Microsoft::ReactNative::Composition::Experimental::IVisual createVisual() noexcept override;
112
112
 
113
+ winrt::Microsoft::ReactNative::Composition::Experimental::IVisual visualToHostFocus() noexcept override;
114
+ winrt::com_ptr<ComponentView> focusVisualRoot(const facebook::react::Rect &focusRect) noexcept override;
115
+
113
116
  private:
114
117
  void updateContentVisualSize() noexcept;
115
118
  bool scrollToEnd(bool animate) noexcept;
@@ -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
  }
@@ -237,14 +241,20 @@ struct CompTextHost : public winrt::implements<CompTextHost, ITextHost> {
237
241
 
238
242
  //@cmember Converts screen coordinates of a specified point to the client coordinates
239
243
  BOOL TxScreenToClient(LPPOINT lppt) override {
240
- assert(false);
241
- return {};
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
- assert(false);
247
- return {};
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
@@ -909,6 +919,7 @@ void WindowsTextInputComponentView::UnmountChildComponentView(
909
919
 
910
920
  void WindowsTextInputComponentView::onLostFocus(
911
921
  const winrt::Microsoft::ReactNative::Composition::Input::RoutedEventArgs &args) noexcept {
922
+ m_hasFocus = false;
912
923
  Super::onLostFocus(args);
913
924
  if (m_textServices) {
914
925
  LRESULT lresult;
@@ -920,6 +931,7 @@ void WindowsTextInputComponentView::onLostFocus(
920
931
 
921
932
  void WindowsTextInputComponentView::onGotFocus(
922
933
  const winrt::Microsoft::ReactNative::Composition::Input::RoutedEventArgs &args) noexcept {
934
+ m_hasFocus = true;
923
935
  Super::onGotFocus(args);
924
936
  if (m_textServices) {
925
937
  LRESULT lresult;
@@ -128,6 +128,7 @@ struct WindowsTextInputComponentView
128
128
  int m_cDrawBlock{0};
129
129
  bool m_needsRedraw{false};
130
130
  bool m_drawing{false};
131
+ bool m_hasFocus{false};
131
132
  bool m_clearTextOnSubmit{false};
132
133
  bool m_multiline{false};
133
134
  DWORD m_propBitsMask{0};
@@ -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, 1);
29
+ OuterVisual().InsertAt(m_labelVisual, 0);
30
30
  }
31
31
 
32
32
  winrt::Microsoft::ReactNative::ComponentView UnimplementedNativeViewComponentView::Create(
@@ -4,15 +4,15 @@
4
4
  "native,Version=v0.0": {
5
5
  "boost": {
6
6
  "type": "Direct",
7
- "requested": "[1.76.0, )",
8
- "resolved": "1.76.0",
9
- "contentHash": "p+w3YvNdXL8Cu9Fzrmexssu0tZbWxuf6ywsQqHjDlKFE5ojXHof1HIyMC3zDLfLnh80dIeFcEUAuR2Asg/XHRA=="
7
+ "requested": "[1.83.0, )",
8
+ "resolved": "1.83.0",
9
+ "contentHash": "cy53VNMzysEMvhBixDe8ujPk67Fcj3v6FPHQnH91NYJNLHpc6jxa2xq9ruCaaJjE4M3YrGSHDi4uUSTGBWw6EQ=="
10
10
  },
11
11
  "Microsoft.JavaScript.Hermes": {
12
12
  "type": "Direct",
13
- "requested": "[0.1.18, )",
14
- "resolved": "0.1.18",
15
- "contentHash": "5K8rRihGwIs2XNOTP2Jsw3T6cegxCBQXcpPS4optONU/AmFElGAfnA6XBQJ4UqlCFCl9Nf9zQrgvCUPBWYHiag=="
13
+ "requested": "[0.1.23, )",
14
+ "resolved": "0.1.23",
15
+ "contentHash": "cA9t1GjY4Yo0JD1AfA//e1lOwk48hLANfuX6GXrikmEBNZVr2TIX5ONJt5tqCnpZyLz6xGiPDgTfFNKbSfb21g=="
16
16
  },
17
17
  "Microsoft.SourceLink.GitHub": {
18
18
  "type": "Direct",
@@ -24,14 +24,13 @@
24
24
  "Microsoft.SourceLink.Common": "1.1.1"
25
25
  }
26
26
  },
27
- "Microsoft.SourceLink.GitHub": {
27
+ "Microsoft.UI.Xaml": {
28
28
  "type": "Direct",
29
- "requested": "[1.1.1, )",
30
- "resolved": "1.1.1",
31
- "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==",
29
+ "requested": "[2.8.0, )",
30
+ "resolved": "2.8.0",
31
+ "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==",
32
32
  "dependencies": {
33
- "Microsoft.Build.Tasks.Git": "1.1.1",
34
- "Microsoft.SourceLink.Common": "1.1.1"
33
+ "Microsoft.Web.WebView2": "1.0.1264.42"
35
34
  }
36
35
  },
37
36
  "Microsoft.Windows.CppWinRT": {
@@ -40,24 +39,25 @@
40
39
  "resolved": "2.0.230706.1",
41
40
  "contentHash": "l0D7oCw/5X+xIKHqZTi62TtV+1qeSz7KVluNFdrJ9hXsst4ghvqQ/Yhura7JqRdZWBXAuDS0G0KwALptdoxweQ=="
42
41
  },
43
- "Microsoft.WindowsAppSDK": {
44
- "type": "Direct",
45
- "requested": "[1.5.240227000, )",
46
- "resolved": "1.5.240227000",
47
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
48
- "dependencies": {
49
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
50
- }
42
+ "Microsoft.Build.Tasks.Git": {
43
+ "type": "Transitive",
44
+ "resolved": "1.1.1",
45
+ "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q=="
51
46
  },
52
- "Microsoft.Windows.SDK.BuildTools": {
47
+ "Microsoft.SourceLink.Common": {
53
48
  "type": "Transitive",
54
- "resolved": "10.0.22621.756",
55
- "contentHash": "7ZL2sFSioYm1Ry067Kw1hg0SCcW5kuVezC2SwjGbcPE61Nn+gTbH86T73G3LcEOVj0S3IZzNuE/29gZvOLS7VA=="
49
+ "resolved": "1.1.1",
50
+ "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg=="
51
+ },
52
+ "Microsoft.Web.WebView2": {
53
+ "type": "Transitive",
54
+ "resolved": "1.0.1264.42",
55
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
56
56
  },
57
57
  "common": {
58
58
  "type": "Project",
59
59
  "dependencies": {
60
- "boost": "[1.76.0, )"
60
+ "boost": "[1.83.0, )"
61
61
  }
62
62
  },
63
63
  "fmt": {
@@ -66,93 +66,65 @@
66
66
  "folly": {
67
67
  "type": "Project",
68
68
  "dependencies": {
69
- "Fmt": "[1.0.0, )",
70
- "boost": "[1.76.0, )"
69
+ "boost": "[1.83.0, )",
70
+ "fmt": "[1.0.0, )"
71
71
  }
72
72
  },
73
73
  "reactcommon": {
74
74
  "type": "Project",
75
75
  "dependencies": {
76
76
  "Folly": "[1.0.0, )",
77
- "boost": "[1.76.0, )"
77
+ "boost": "[1.83.0, )"
78
78
  }
79
79
  }
80
80
  },
81
81
  "native,Version=v0.0/win10-arm": {
82
- "Microsoft.WindowsAppSDK": {
83
- "type": "Direct",
84
- "requested": "[1.5.240227000, )",
85
- "resolved": "1.5.240227000",
86
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
87
- "dependencies": {
88
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
89
- }
82
+ "Microsoft.Web.WebView2": {
83
+ "type": "Transitive",
84
+ "resolved": "1.0.1264.42",
85
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
90
86
  }
91
87
  },
92
88
  "native,Version=v0.0/win10-arm-aot": {
93
- "Microsoft.WindowsAppSDK": {
94
- "type": "Direct",
95
- "requested": "[1.5.240227000, )",
96
- "resolved": "1.5.240227000",
97
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
98
- "dependencies": {
99
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
100
- }
89
+ "Microsoft.Web.WebView2": {
90
+ "type": "Transitive",
91
+ "resolved": "1.0.1264.42",
92
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
101
93
  }
102
94
  },
103
95
  "native,Version=v0.0/win10-arm64-aot": {
104
- "Microsoft.WindowsAppSDK": {
105
- "type": "Direct",
106
- "requested": "[1.5.240227000, )",
107
- "resolved": "1.5.240227000",
108
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
109
- "dependencies": {
110
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
111
- }
96
+ "Microsoft.Web.WebView2": {
97
+ "type": "Transitive",
98
+ "resolved": "1.0.1264.42",
99
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
112
100
  }
113
101
  },
114
102
  "native,Version=v0.0/win10-x64": {
115
- "Microsoft.WindowsAppSDK": {
116
- "type": "Direct",
117
- "requested": "[1.5.240227000, )",
118
- "resolved": "1.5.240227000",
119
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
120
- "dependencies": {
121
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
122
- }
103
+ "Microsoft.Web.WebView2": {
104
+ "type": "Transitive",
105
+ "resolved": "1.0.1264.42",
106
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
123
107
  }
124
108
  },
125
109
  "native,Version=v0.0/win10-x64-aot": {
126
- "Microsoft.WindowsAppSDK": {
127
- "type": "Direct",
128
- "requested": "[1.5.240227000, )",
129
- "resolved": "1.5.240227000",
130
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
131
- "dependencies": {
132
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
133
- }
110
+ "Microsoft.Web.WebView2": {
111
+ "type": "Transitive",
112
+ "resolved": "1.0.1264.42",
113
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
134
114
  }
135
115
  },
136
116
  "native,Version=v0.0/win10-x86": {
137
- "Microsoft.WindowsAppSDK": {
138
- "type": "Direct",
139
- "requested": "[1.5.240227000, )",
140
- "resolved": "1.5.240227000",
141
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
142
- "dependencies": {
143
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
144
- }
117
+ "Microsoft.Web.WebView2": {
118
+ "type": "Transitive",
119
+ "resolved": "1.0.1264.42",
120
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
145
121
  }
146
122
  },
147
123
  "native,Version=v0.0/win10-x86-aot": {
148
- "Microsoft.WindowsAppSDK": {
149
- "type": "Direct",
150
- "requested": "[1.5.240227000, )",
151
- "resolved": "1.5.240227000",
152
- "contentHash": "6rESOsREi8534J7IDpNfFYPvxQaSleXKt4A7ZYPeQyckNMQ0o1W0jZ420bJbEMz9Cw/S/8IbpPftLLZ9w/GTCQ==",
153
- "dependencies": {
154
- "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
155
- }
124
+ "Microsoft.Web.WebView2": {
125
+ "type": "Transitive",
126
+ "resolved": "1.0.1264.42",
127
+ "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
156
128
  }
157
129
  }
158
130
  }
@@ -0,0 +1,14 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+
4
+ #pragma once
5
+
6
+ namespace Microsoft::ReactNative::Composition::Experimental {
7
+
8
+ // This interface will be removed once we complete internal transitions to ContentIsland, and new APIs for hosting
9
+ // popups/new windows from a ContentIsland
10
+ struct __declspec(uuid("2A60D68A-57B8-43CA-B1BA-2FAF0FCB344B")) IComponentViewInterop : IUnknown {
11
+ virtual HWND GetHwndForParenting() noexcept = 0;
12
+ };
13
+
14
+ } // namespace Microsoft::ReactNative::Composition::Experimental