react-native-windows 0.77.3 → 0.77.5

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 (38) hide show
  1. package/Libraries/Components/Button.windows.js +3 -0
  2. package/Libraries/Components/Pressable/Pressable.windows.js +3 -0
  3. package/Libraries/Components/ScrollView/ScrollView.windows.js +1920 -0
  4. package/Libraries/Components/TextInput/TextInput.windows.js +3 -0
  5. package/Libraries/Components/Touchable/TouchableBounce.windows.js +2 -0
  6. package/Libraries/Components/Touchable/TouchableNativeFeedback.windows.js +2 -0
  7. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +2 -0
  8. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +2 -0
  9. package/Libraries/Components/View/View.windows.js +3 -0
  10. package/Libraries/Components/View/ViewAccessibility.d.ts +7 -2
  11. package/Libraries/Components/View/ViewAccessibility.windows.js +1 -0
  12. package/Libraries/Components/View/ViewPropTypes.windows.js +1 -0
  13. package/Libraries/Core/ReactNativeVersion.js +1 -1
  14. package/Libraries/Core/setUpDeveloperTools.js +2 -3
  15. package/Libraries/Image/Image.windows.js +2 -0
  16. package/Libraries/Text/Text.windows.js +4 -0
  17. package/Libraries/Text/TextProps.windows.js +1 -0
  18. package/Libraries/Utilities/HMRClient.js +0 -28
  19. package/Libraries/Utilities/HMRClientProdShim.js +0 -1
  20. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.cpp +374 -21
  21. package/Microsoft.ReactNative/Fabric/Composition/CompositionDynamicAutomationProvider.h +21 -0
  22. package/Microsoft.ReactNative/Fabric/Composition/CompositionTextProvider.cpp +115 -0
  23. package/Microsoft.ReactNative/Fabric/Composition/CompositionTextProvider.h +41 -0
  24. package/Microsoft.ReactNative/Fabric/Composition/CompositionTextRangeProvider.cpp +298 -0
  25. package/Microsoft.ReactNative/Fabric/Composition/CompositionTextRangeProvider.h +59 -0
  26. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +1 -2
  27. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +24 -2
  28. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +5 -0
  29. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.cpp +14 -10
  30. package/Microsoft.ReactNative/Fabric/Composition/UiaHelpers.h +3 -2
  31. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  32. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +1 -0
  33. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +4 -0
  34. package/Shared/Networking/WinRTWebSocketResource.cpp +369 -7
  35. package/Shared/Networking/WinRTWebSocketResource.h +118 -0
  36. package/Shared/Shared.vcxitems +6 -0
  37. package/Shared/Shared.vcxitems.filters +8 -0
  38. package/package.json +9 -9
@@ -1360,6 +1360,7 @@ function InternalTextInput(props: Props): React.Node {
1360
1360
  'aria-disabled': ariaDisabled,
1361
1361
  'aria-expanded': ariaExpanded,
1362
1362
  'aria-selected': ariaSelected,
1363
+ 'aria-readonly': ariaReadOnly, // Windows
1363
1364
  'aria-multiselectable': ariaMultiselectable, // Windows
1364
1365
  'aria-required': ariaRequired, // Windows
1365
1366
  accessibilityState,
@@ -1691,6 +1692,7 @@ function InternalTextInput(props: Props): React.Node {
1691
1692
  ariaDisabled != null ||
1692
1693
  ariaExpanded != null ||
1693
1694
  ariaSelected != null ||
1695
+ ariaReadOnly != null || // Windows
1694
1696
  ariaMultiselectable != null || // Windows
1695
1697
  ariaRequired != null // Windows
1696
1698
  ) {
@@ -1700,6 +1702,7 @@ function InternalTextInput(props: Props): React.Node {
1700
1702
  disabled: ariaDisabled ?? accessibilityState?.disabled,
1701
1703
  expanded: ariaExpanded ?? accessibilityState?.expanded,
1702
1704
  selected: ariaSelected ?? accessibilityState?.selected,
1705
+ readOnly: ariaReadOnly ?? accessibilityState?.readOnly, // Windows
1703
1706
  multiselectable:
1704
1707
  ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows
1705
1708
  required: ariaRequired ?? accessibilityState?.required, // Windows
@@ -146,6 +146,8 @@ class TouchableBounce extends React.Component<Props, State> {
146
146
  this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,
147
147
  selected:
148
148
  this.props['aria-selected'] ?? this.props.accessibilityState?.selected,
149
+ readOnly:
150
+ this.props['aria-readonly'] ?? this.props.accessibilityState?.readOnly, // Windows
149
151
  multiselectable:
150
152
  this.props['aria-multiselectable'] ??
151
153
  this.props.accessibilityState?.multiselectable, // Windows
@@ -265,6 +265,8 @@ class TouchableNativeFeedback extends React.Component<Props, State> {
265
265
  this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,
266
266
  selected:
267
267
  this.props['aria-selected'] ?? this.props.accessibilityState?.selected,
268
+ readOnly:
269
+ this.props['aria-readonly'] ?? this.props.accessibilityState?.readOnly,
268
270
  multiselectable:
269
271
  this.props['aria-multiselectable'] ??
270
272
  this.props.accessibilityState?.multiselectable, // Windows
@@ -235,6 +235,8 @@ class TouchableOpacity extends React.Component<Props, State> {
235
235
  this.props['aria-expanded'] ?? this.props.accessibilityState?.expanded,
236
236
  selected:
237
237
  this.props['aria-selected'] ?? this.props.accessibilityState?.selected,
238
+ readOnly:
239
+ this.props['aria-readonly'] ?? this.props.accessibilityState?.readOnly, // Windows
238
240
  multiselectable:
239
241
  this.props['aria-multiselectable'] ??
240
242
  this.props.accessibilityState?.multiselectable, // Windows
@@ -59,6 +59,7 @@ type Props = $ReadOnly<{|
59
59
  'aria-disabled'?: ?boolean,
60
60
  'aria-expanded'?: ?boolean,
61
61
  'aria-selected'?: ?boolean,
62
+ 'aria-readonly'?: ?boolean, // Windows
62
63
  'aria-multiselectable'?: ?boolean, // Windows
63
64
  'aria-required'?: ?boolean, // Windows
64
65
  'aria-hidden'?: ?boolean,
@@ -224,6 +225,7 @@ const TouchableWithoutFeedback: React.AbstractComponent<
224
225
  disabled: props['aria-disabled'] ?? props.accessibilityState?.disabled,
225
226
  expanded: props['aria-expanded'] ?? props.accessibilityState?.expanded,
226
227
  selected: props['aria-selected'] ?? props.accessibilityState?.selected,
228
+ readonly: props['aria-readonly'] ?? props.accessibilityState?.readOnly, // Windows
227
229
  multiselectable:
228
230
  props['aria-multiselectable'] ??
229
231
  props.accessibilityState?.multiselectable, // Windows
@@ -84,6 +84,7 @@ const View: component(
84
84
  'aria-level': ariaLevel,
85
85
  'aria-live': ariaLive,
86
86
  'aria-posinset': ariaPosinset, // Windows
87
+ 'aria-readonly': ariaReadOnly, // Windows
87
88
  'aria-selected': ariaSelected,
88
89
  'aria-setsize': ariaSetsize, // Windows
89
90
  'aria-valuemax': ariaValueMax,
@@ -111,6 +112,7 @@ const View: component(
111
112
  ariaDisabled != null ||
112
113
  ariaExpanded != null ||
113
114
  ariaSelected != null ||
115
+ ariaReadOnly != null || // Windows
114
116
  ariaMultiselectable != null || // Windows
115
117
  ariaRequired != null // Windows
116
118
  ) {
@@ -120,6 +122,7 @@ const View: component(
120
122
  disabled: ariaDisabled ?? accessibilityState?.disabled,
121
123
  expanded: ariaExpanded ?? accessibilityState?.expanded,
122
124
  selected: ariaSelected ?? accessibilityState?.selected,
125
+ readOnly: ariaReadOnly ?? accessibilityState?.readOnly, // Windows
123
126
  multiselectable:
124
127
  ariaMultiselectable ?? accessibilityState?.multiselectable, // Windows
125
128
  required: ariaRequired ?? accessibilityState?.required, // Windows
@@ -183,14 +183,19 @@ export interface AccessibilityState {
183
183
  * When present, informs accessible tools the element is expanded or collapsed
184
184
  */
185
185
  expanded?: boolean | undefined;
186
+ /**
187
+ * When present, informs accessible tools the element is read only
188
+ * @platform windows
189
+ */
190
+ readOnly?: boolean | undefined;
186
191
  /**
187
192
  * When present, informs accessible tools the element can have multiple items selected
188
- * @platform windows
193
+ * @platform windows
189
194
  */
190
195
  multiselectable?: boolean | undefined;
191
196
  /**
192
197
  * When present, informs accessible tools the element requires selection
193
- * @platform windows
198
+ * @platform windows
194
199
  */
195
200
  required?: boolean | undefined;
196
201
  }
@@ -181,6 +181,7 @@ export type AccessibilityState = {
181
181
  checked?: ?boolean | 'mixed',
182
182
  busy?: ?boolean,
183
183
  expanded?: ?boolean,
184
+ readOnly?: ?boolean, // Windows
184
185
  multiselectable?: ?boolean, // Windows
185
186
  required?: ?boolean, // Windows
186
187
  ...
@@ -620,6 +620,7 @@ export type ViewProps = $ReadOnly<{|
620
620
  'aria-disabled'?: ?boolean,
621
621
  'aria-expanded'?: ?boolean,
622
622
  'aria-selected'?: ?boolean,
623
+ 'aria-readonly'?: ?boolean, // Windows
623
624
  /** A value indicating whether the accessibility elements contained within
624
625
  * this accessibility element are hidden.
625
626
  *
@@ -16,7 +16,7 @@ const version: $ReadOnly<{
16
16
  }> = {
17
17
  major: 0,
18
18
  minor: 77,
19
- patch: 0,
19
+ patch: 1,
20
20
  prerelease: null,
21
21
  };
22
22
 
@@ -42,9 +42,8 @@ if (__DEV__) {
42
42
  if (!Platform.isTesting) {
43
43
  const HMRClient = require('../Utilities/HMRClient');
44
44
 
45
- if (global.__FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__) {
46
- HMRClient.unstable_notifyFuseboxConsoleEnabled();
47
- } else if (console._isPolyfilled) {
45
+ // TODO(T214991636): Remove legacy Metro log forwarding
46
+ if (console._isPolyfilled) {
48
47
  // We assume full control over the console and send JavaScript logs to Metro.
49
48
  [
50
49
  'trace',
@@ -147,6 +147,7 @@ let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => {
147
147
  'aria-disabled': ariaDisabled,
148
148
  'aria-expanded': ariaExpanded,
149
149
  'aria-selected': ariaSelected,
150
+ 'aria-readonly': ariaReadOnly, // Windows
150
151
  'aria-multiselectable': ariaMultiselectable, // Windows
151
152
  'aria-required': ariaRequired, // Windows
152
153
  height,
@@ -160,6 +161,7 @@ let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => {
160
161
  disabled: ariaDisabled ?? props.accessibilityState?.disabled,
161
162
  expanded: ariaExpanded ?? props.accessibilityState?.expanded,
162
163
  selected: ariaSelected ?? props.accessibilityState?.selected,
164
+ readOnly: ariaReadOnly ?? props.accessibilityState?.readOnly, // Windows
163
165
  multiselectable:
164
166
  ariaMultiselectable ?? props.accessibilityState?.multiselectable, // Windows
165
167
  required: ariaRequired ?? props.accessibilityState?.required, // Windows
@@ -60,6 +60,7 @@ const Text: component(
60
60
  'aria-posinset': ariaPosinset, // Windows
61
61
  'aria-setsize': ariaSetsize, // Windows
62
62
  'aria-selected': ariaSelected,
63
+ 'aria-readonly': ariaReadOnly, //Windows
63
64
  children,
64
65
  ellipsizeMode,
65
66
  disabled,
@@ -98,6 +99,7 @@ const Text: component(
98
99
  ariaDisabled != null ||
99
100
  ariaExpanded != null ||
100
101
  ariaSelected != null ||
102
+ ariaReadOnly != null || // Windows
101
103
  ariaMultiselectable != null || // Windows
102
104
  ariaRequired != null // Windows
103
105
  ) {
@@ -108,6 +110,7 @@ const Text: component(
108
110
  disabled: ariaDisabled ?? _accessibilityState.disabled,
109
111
  expanded: ariaExpanded ?? _accessibilityState.expanded,
110
112
  selected: ariaSelected ?? _accessibilityState.selected,
113
+ readOnly: ariaReadOnly ?? _accessibilityState.readOnly, // Windows
111
114
  multiselectable:
112
115
  ariaMultiselectable ?? _accessibilityState.multiselectable, // Windows
113
116
  required: ariaRequired ?? _accessibilityState.required, // Windows
@@ -119,6 +122,7 @@ const Text: component(
119
122
  disabled: ariaDisabled,
120
123
  expanded: ariaExpanded,
121
124
  selected: ariaSelected,
125
+ readOnly: ariaReadOnly, // Windows
122
126
  multiselectable: ariaMultiselectable, // Windows
123
127
  required: ariaRequired, // Windows
124
128
  };
@@ -97,6 +97,7 @@ export type TextProps = $ReadOnly<{
97
97
  'aria-posinset'?: ?number, // Windows
98
98
  'aria-setsize'?: ?number, // Windows
99
99
  'aria-level'?: ?number, // Windows
100
+ 'aria-readonly'?: ?boolean, // Windows
100
101
  'aria-multiselectable'?: ?boolean, // Windows
101
102
  'aria-required'?: ?boolean, // Windows
102
103
 
@@ -26,7 +26,6 @@ let hmrUnavailableReason: string | null = null;
26
26
  let currentCompileErrorMessage: string | null = null;
27
27
  let didConnect: boolean = false;
28
28
  let pendingLogs: Array<[LogLevel, $ReadOnlyArray<mixed>]> = [];
29
- let pendingFuseboxConsoleNotification = false;
30
29
 
31
30
  type LogLevel =
32
31
  | 'trace'
@@ -52,7 +51,6 @@ export type HMRClientNativeInterface = {|
52
51
  isEnabled: boolean,
53
52
  scheme?: string,
54
53
  ): void,
55
- unstable_notifyFuseboxConsoleEnabled(): void,
56
54
  |};
57
55
 
58
56
  /**
@@ -142,29 +140,6 @@ const HMRClient: HMRClientNativeInterface = {
142
140
  }
143
141
  },
144
142
 
145
- unstable_notifyFuseboxConsoleEnabled() {
146
- if (!hmrClient) {
147
- pendingFuseboxConsoleNotification = true;
148
- return;
149
- }
150
- hmrClient.send(
151
- JSON.stringify({
152
- type: 'log',
153
- level: 'info',
154
- data: [
155
- '\n' +
156
- '\u001B[7m' +
157
- ' \u001B[1m💡 JavaScript logs have moved!\u001B[22m They can now be ' +
158
- 'viewed in React Native DevTools. Tip: Type \u001B[1mj\u001B[22m in ' +
159
- 'the terminal to open (requires Google Chrome or Microsoft Edge).' +
160
- '\u001B[27m' +
161
- '\n',
162
- ],
163
- }),
164
- );
165
- pendingFuseboxConsoleNotification = false;
166
- },
167
-
168
143
  // Called once by the bridge on startup, even if Fast Refresh is off.
169
144
  // It creates the HMR client but doesn't actually set up the socket yet.
170
145
  setup(
@@ -341,9 +316,6 @@ function flushEarlyLogs(client: MetroHMRClient) {
341
316
  pendingLogs.forEach(([level, data]) => {
342
317
  HMRClient.log(level, data);
343
318
  });
344
- if (pendingFuseboxConsoleNotification) {
345
- HMRClient.unstable_notifyFuseboxConsoleEnabled();
346
- }
347
319
  } finally {
348
320
  pendingLogs.length = 0;
349
321
  }
@@ -25,7 +25,6 @@ const HMRClientProdShim: HMRClientNativeInterface = {
25
25
  disable() {},
26
26
  registerBundle() {},
27
27
  log() {},
28
- unstable_notifyFuseboxConsoleEnabled() {},
29
28
  };
30
29
 
31
30
  module.exports = HMRClientProdShim;