react-native-windows 0.70.8 → 0.71.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (913) hide show
  1. package/.flowconfig +3 -6
  2. package/Directory.Build.props +2 -2
  3. package/Folly/Folly.vcxproj +4 -2
  4. package/Folly/Folly.vcxproj.filters +7 -3
  5. package/Folly/TEMP_UntilFollyUpdate/dynamic-inl.h +59 -43
  6. package/Folly/TEMP_UntilFollyUpdate/lang/SafeAssert.h +192 -0
  7. package/Folly/TEMP_UntilFollyUpdate/lang/ToAscii.cpp +7 -5
  8. package/Folly/cgmanifest.json +2 -1
  9. package/Libraries/ActionSheetIOS/ActionSheetIOS.d.ts +80 -0
  10. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +4 -3
  11. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +1 -0
  12. package/Libraries/Alert/Alert.d.ts +90 -0
  13. package/Libraries/Alert/Alert.js +7 -1
  14. package/Libraries/Alert/Alert.windows.js +2 -1
  15. package/Libraries/Alert/NativeAlertManager.js +2 -0
  16. package/Libraries/Alert/RCTAlertManager.ios.js +2 -1
  17. package/Libraries/Animated/Animated.d.ts +587 -0
  18. package/Libraries/Animated/Animated.js +13 -11
  19. package/Libraries/Animated/AnimatedEvent.js +12 -17
  20. package/Libraries/Animated/AnimatedImplementation.js +21 -23
  21. package/Libraries/Animated/AnimatedMock.js +11 -13
  22. package/Libraries/Animated/AnimatedWeb.js +2 -2
  23. package/Libraries/Animated/Easing.d.ts +37 -0
  24. package/Libraries/Animated/Easing.js +2 -2
  25. package/Libraries/Animated/NativeAnimatedHelper.js +32 -22
  26. package/Libraries/Animated/NativeAnimatedModule.js +1 -0
  27. package/Libraries/Animated/NativeAnimatedTurboModule.js +1 -0
  28. package/Libraries/Animated/SpringConfig.js +2 -7
  29. package/Libraries/Animated/animations/Animation.js +3 -4
  30. package/Libraries/Animated/animations/DecayAnimation.js +5 -8
  31. package/Libraries/Animated/animations/SpringAnimation.js +9 -14
  32. package/Libraries/Animated/animations/TimingAnimation.js +9 -13
  33. package/Libraries/Animated/bezier.js +2 -2
  34. package/Libraries/Animated/components/AnimatedFlatList.js +5 -6
  35. package/Libraries/Animated/components/AnimatedImage.js +5 -6
  36. package/Libraries/Animated/components/AnimatedScrollView.js +110 -14
  37. package/Libraries/Animated/components/AnimatedSectionList.js +4 -5
  38. package/Libraries/Animated/components/AnimatedText.js +5 -6
  39. package/Libraries/Animated/components/AnimatedView.js +5 -6
  40. package/Libraries/Animated/createAnimatedComponent.js +13 -20
  41. package/Libraries/Animated/createAnimatedComponent_EXPERIMENTAL.js +2 -2
  42. package/Libraries/Animated/nodes/AnimatedAddition.js +6 -8
  43. package/Libraries/Animated/nodes/AnimatedColor.js +7 -7
  44. package/Libraries/Animated/nodes/AnimatedDiffClamp.js +6 -8
  45. package/Libraries/Animated/nodes/AnimatedDivision.js +7 -9
  46. package/Libraries/Animated/nodes/AnimatedInterpolation.js +7 -10
  47. package/Libraries/Animated/nodes/AnimatedModulo.js +6 -8
  48. package/Libraries/Animated/nodes/AnimatedMultiplication.js +7 -9
  49. package/Libraries/Animated/nodes/AnimatedNode.js +10 -8
  50. package/Libraries/Animated/nodes/AnimatedProps.js +12 -30
  51. package/Libraries/Animated/nodes/AnimatedStyle.js +12 -22
  52. package/Libraries/Animated/nodes/AnimatedSubtraction.js +7 -9
  53. package/Libraries/Animated/nodes/AnimatedTracking.js +8 -12
  54. package/Libraries/Animated/nodes/AnimatedTransform.js +38 -31
  55. package/Libraries/Animated/nodes/AnimatedValue.js +9 -10
  56. package/Libraries/Animated/nodes/AnimatedValueXY.js +4 -7
  57. package/Libraries/Animated/nodes/AnimatedWithChildren.js +4 -5
  58. package/Libraries/Animated/useAnimatedProps.js +8 -16
  59. package/Libraries/Animated/useAnimatedValue.d.ts +15 -0
  60. package/Libraries/Animated/useAnimatedValue.js +25 -0
  61. package/Libraries/AppState/AppState.d.ts +58 -0
  62. package/Libraries/AppState/AppState.js +3 -7
  63. package/Libraries/AppState/NativeAppState.js +1 -0
  64. package/Libraries/BatchedBridge/MessageQueue.js +9 -5
  65. package/Libraries/BatchedBridge/NativeModules.d.ts +25 -0
  66. package/Libraries/BatchedBridge/NativeModules.js +1 -0
  67. package/Libraries/Blob/BlobManager.js +5 -3
  68. package/Libraries/Blob/File.js +2 -3
  69. package/Libraries/Blob/FileReader.js +6 -5
  70. package/Libraries/Blob/NativeBlobModule.js +1 -0
  71. package/Libraries/Blob/NativeFileReaderModule.js +1 -0
  72. package/Libraries/Blob/URL.js +11 -9
  73. package/Libraries/BugReporting/NativeBugReporting.js +1 -0
  74. package/Libraries/BugReporting/getReactData.js +1 -1
  75. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.d.ts +128 -0
  76. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.flow.js +208 -0
  77. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +40 -8
  78. package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +40 -8
  79. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js +1 -0
  80. package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +5 -0
  81. package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +86 -0
  82. package/Libraries/Components/ActivityIndicator/ActivityIndicator.flow.js +58 -0
  83. package/Libraries/Components/ActivityIndicator/ActivityIndicator.js +7 -8
  84. package/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js +2 -3
  85. package/Libraries/Components/Button.d.ts +42 -0
  86. package/Libraries/Components/Button.flow.js +265 -0
  87. package/Libraries/Components/Button.js +62 -18
  88. package/Libraries/Components/Button.windows.js +62 -18
  89. package/Libraries/Components/Clipboard/Clipboard.d.ts +28 -0
  90. package/Libraries/Components/Clipboard/NativeClipboard.js +1 -0
  91. package/Libraries/Components/DatePicker/DatePickerIOS.android.js +4 -2
  92. package/Libraries/Components/DatePicker/DatePickerIOS.d.ts +92 -0
  93. package/Libraries/Components/{MaskedView/MaskedViewIOS.android.js → DatePicker/DatePickerIOS.flow.android.js} +3 -2
  94. package/Libraries/Components/DatePicker/DatePickerIOS.flow.ios.js +113 -0
  95. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +8 -7
  96. package/Libraries/Components/DatePicker/DatePickerIOS.windows.js +4 -2
  97. package/Libraries/Components/DatePicker/RCTDatePickerNativeComponent.js +7 -6
  98. package/Libraries/Components/DatePickerAndroid/NativeDatePickerAndroid.js +1 -0
  99. package/Libraries/Components/DrawerAndroid/AndroidDrawerLayoutNativeComponent.js +9 -8
  100. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +13 -14
  101. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +141 -0
  102. package/Libraries/Components/Keyboard/Keyboard.d.ts +109 -0
  103. package/Libraries/Components/Keyboard/Keyboard.js +35 -8
  104. package/Libraries/Components/Keyboard/KeyboardAvoidingView.d.ts +46 -0
  105. package/Libraries/Components/Keyboard/KeyboardAvoidingView.js +35 -15
  106. package/Libraries/Components/Keyboard/NativeKeyboardObserver.js +1 -0
  107. package/Libraries/Components/Popup/PopupProps.d.ts +1 -0
  108. package/Libraries/Components/Popup/PopupProps.js.map +1 -1
  109. package/Libraries/Components/Pressable/Pressable.d.ts +167 -0
  110. package/Libraries/Components/Pressable/Pressable.js +73 -15
  111. package/Libraries/Components/Pressable/Pressable.windows.js +78 -20
  112. package/Libraries/Components/Pressable/useAndroidRippleForView.js +6 -3
  113. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.android.js +3 -3
  114. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +83 -0
  115. package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroidNativeComponent.js +2 -2
  116. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.android.js +1 -1
  117. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.d.ts +62 -0
  118. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.ios.js +4 -4
  119. package/Libraries/Components/ProgressViewIOS/ProgressViewIOS.windows.js +1 -1
  120. package/Libraries/Components/ProgressViewIOS/RCTProgressViewNativeComponent.js +2 -2
  121. package/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js +5 -6
  122. package/Libraries/Components/RefreshControl/PullToRefreshViewNativeComponent.js +4 -4
  123. package/Libraries/Components/RefreshControl/RefreshControl.d.ts +87 -0
  124. package/Libraries/Components/RefreshControl/RefreshControl.js +4 -3
  125. package/Libraries/Components/RefreshControl/RefreshControl.windows.js +4 -3
  126. package/Libraries/Components/RefreshControl/__mocks__/RefreshControlMock.js +2 -3
  127. package/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js +1 -1
  128. package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +24 -0
  129. package/Libraries/Components/SafeAreaView/SafeAreaView.flow.js +19 -0
  130. package/Libraries/Components/SafeAreaView/SafeAreaView.js +5 -4
  131. package/Libraries/Components/SafeAreaView/SafeAreaView.windows.js +5 -4
  132. package/Libraries/Components/ScrollView/AndroidHorizontalScrollContentViewNativeComponent.js +2 -1
  133. package/Libraries/Components/ScrollView/AndroidHorizontalScrollViewNativeComponent.js +2 -1
  134. package/Libraries/Components/ScrollView/ScrollContentViewNativeComponent.js +2 -1
  135. package/Libraries/Components/ScrollView/ScrollView.d.ts +911 -0
  136. package/Libraries/Components/ScrollView/ScrollView.js +87 -52
  137. package/Libraries/Components/ScrollView/ScrollViewCommands.js +3 -3
  138. package/Libraries/Components/ScrollView/ScrollViewNativeComponent.js +2 -1
  139. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +3 -3
  140. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +243 -269
  141. package/Libraries/Components/Slider/Slider.d.ts +132 -0
  142. package/Libraries/Components/Slider/Slider.js +9 -9
  143. package/Libraries/Components/Slider/SliderNativeComponent.js +4 -5
  144. package/Libraries/Components/Sound/NativeSoundManager.js +1 -0
  145. package/Libraries/Components/StatusBar/NativeStatusBarManagerAndroid.js +1 -0
  146. package/Libraries/Components/StatusBar/NativeStatusBarManagerIOS.js +1 -0
  147. package/Libraries/Components/StatusBar/StatusBar.d.ts +138 -0
  148. package/Libraries/Components/StatusBar/StatusBar.js +7 -7
  149. package/Libraries/Components/Switch/AndroidSwitchNativeComponent.js +10 -10
  150. package/Libraries/Components/Switch/Switch.d.ts +115 -0
  151. package/Libraries/Components/Switch/Switch.js +7 -7
  152. package/Libraries/Components/Switch/SwitchNativeComponent.js +9 -4
  153. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +40 -12
  154. package/Libraries/Components/TextInput/InputAccessoryView.d.ts +34 -0
  155. package/Libraries/Components/TextInput/InputAccessoryView.js +3 -4
  156. package/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js +1 -1
  157. package/Libraries/Components/TextInput/RCTMultilineTextInputNativeComponent.js +3 -2
  158. package/Libraries/Components/TextInput/RCTSingelineTextInputNativeComponent.js +3 -2
  159. package/Libraries/Components/TextInput/RCTTextInputViewConfig.js +3 -1
  160. package/Libraries/Components/TextInput/TextInput.d.ts +840 -0
  161. package/Libraries/Components/TextInput/TextInput.flow.js +1057 -0
  162. package/Libraries/Components/TextInput/TextInput.js +344 -38
  163. package/Libraries/Components/TextInput/TextInput.windows.js +348 -38
  164. package/Libraries/Components/TextInput/TextInputNativeCommands.js +2 -2
  165. package/Libraries/Components/TextInput/TextInputState.js +22 -5
  166. package/Libraries/Components/TextInput/TextInputState.windows.js +22 -5
  167. package/Libraries/Components/ToastAndroid/NativeToastAndroid.js +1 -0
  168. package/Libraries/Components/ToastAndroid/ToastAndroid.d.ts +47 -0
  169. package/Libraries/Components/Touchable/Touchable.d.ts +90 -0
  170. package/Libraries/Components/Touchable/Touchable.flow.js +258 -0
  171. package/Libraries/Components/Touchable/Touchable.js +12 -12
  172. package/Libraries/Components/Touchable/Touchable.windows.js +12 -12
  173. package/Libraries/Components/Touchable/TouchableBounce.js +44 -10
  174. package/Libraries/Components/Touchable/TouchableHighlight.d.ts +68 -0
  175. package/Libraries/Components/Touchable/TouchableHighlight.js +32 -9
  176. package/Libraries/Components/Touchable/TouchableHighlight.windows.js +32 -9
  177. package/Libraries/Components/Touchable/TouchableNativeFeedback.d.ts +114 -0
  178. package/Libraries/Components/Touchable/TouchableNativeFeedback.js +54 -20
  179. package/Libraries/Components/Touchable/TouchableOpacity.d.ts +109 -0
  180. package/Libraries/Components/Touchable/TouchableOpacity.js +54 -16
  181. package/Libraries/Components/Touchable/TouchableOpacity.windows.js +54 -16
  182. package/Libraries/Components/Touchable/TouchableWithoutFeedback.d.ts +143 -0
  183. package/Libraries/Components/Touchable/TouchableWithoutFeedback.js +64 -10
  184. package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +64 -10
  185. package/Libraries/Components/UnimplementedViews/UnimplementedNativeViewNativeComponent.js +1 -1
  186. package/Libraries/Components/UnimplementedViews/UnimplementedView.js +1 -1
  187. package/Libraries/Components/View/ReactNativeStyleAttributes.js +13 -2
  188. package/Libraries/Components/View/View.d.ts +29 -0
  189. package/Libraries/Components/View/View.js +91 -8
  190. package/Libraries/Components/View/View.windows.js +181 -94
  191. package/Libraries/Components/View/ViewAccessibility.d.ts +360 -0
  192. package/Libraries/Components/View/ViewAccessibility.js +70 -1
  193. package/Libraries/Components/View/ViewAccessibility.windows.js +69 -0
  194. package/Libraries/Components/View/ViewNativeComponent.js +3 -3
  195. package/Libraries/Components/View/ViewPropTypes.d.ts +245 -0
  196. package/Libraries/Components/View/ViewPropTypes.js +105 -13
  197. package/Libraries/Components/View/ViewPropTypes.windows.js +105 -13
  198. package/Libraries/Core/Devtools/openFileInEditor.js +3 -0
  199. package/Libraries/Core/Devtools/parseErrorStack.js +1 -1
  200. package/Libraries/Core/Devtools/symbolicateStackTrace.js +2 -2
  201. package/Libraries/Core/ExceptionsManager.js +8 -0
  202. package/Libraries/Core/ExtendedError.js +11 -8
  203. package/Libraries/Core/InitializeCore.js +2 -1
  204. package/Libraries/Core/NativeExceptionsManager.js +3 -4
  205. package/Libraries/Core/RawEventEmitter.js +2 -1
  206. package/Libraries/Core/ReactFiberErrorDialog.js +2 -2
  207. package/Libraries/Core/ReactNativeVersion.js +2 -2
  208. package/Libraries/Core/ReactNativeVersionCheck.js +1 -0
  209. package/Libraries/Core/SegmentFetcher/NativeSegmentFetcher.js +1 -0
  210. package/Libraries/Core/Timers/JSTimers.js +13 -11
  211. package/Libraries/Core/Timers/NativeTiming.js +1 -0
  212. package/Libraries/Core/setUpBatchedBridge.js +1 -5
  213. package/Libraries/Core/setUpDeveloperTools.js +4 -6
  214. package/Libraries/Core/setUpReactDevTools.js +4 -1
  215. package/Libraries/Core/setUpRegeneratorRuntime.js +1 -1
  216. package/Libraries/Core/setUpTimers.js +1 -1
  217. package/Libraries/EventEmitter/NativeEventEmitter.d.ts +70 -0
  218. package/Libraries/EventEmitter/NativeEventEmitter.js +1 -0
  219. package/Libraries/EventEmitter/RCTDeviceEventEmitter.d.ts +30 -0
  220. package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +2 -1
  221. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +32 -0
  222. package/Libraries/EventEmitter/__mocks__/NativeEventEmitter.js +1 -0
  223. package/Libraries/Events/EventPolyfill.js +1 -1
  224. package/Libraries/HeapCapture/NativeJSCHeapCapture.js +1 -0
  225. package/Libraries/Image/AssetSourceResolver.js +4 -6
  226. package/Libraries/Image/Image.android.js +63 -45
  227. package/Libraries/Image/Image.d.ts +322 -0
  228. package/Libraries/Image/Image.flow.js +64 -0
  229. package/Libraries/Image/Image.ios.js +55 -28
  230. package/Libraries/Image/Image.windows.js +56 -30
  231. package/Libraries/Image/ImageBackground.js +18 -7
  232. package/Libraries/Image/ImageInjection.js +2 -1
  233. package/Libraries/Image/ImageProps.js +88 -5
  234. package/Libraries/Image/ImageResizeMode.d.ts +49 -0
  235. package/Libraries/Image/ImageSource.d.ts +76 -0
  236. package/Libraries/Image/ImageSourceUtils.js +80 -0
  237. package/Libraries/Image/ImageUtils.js +21 -0
  238. package/Libraries/Image/ImageViewNativeComponent.js +8 -5
  239. package/Libraries/Image/NativeImageEditor.js +1 -0
  240. package/Libraries/Image/NativeImageLoaderAndroid.js +1 -0
  241. package/Libraries/Image/NativeImageLoaderIOS.js +1 -0
  242. package/Libraries/Image/NativeImageStoreAndroid.js +1 -0
  243. package/Libraries/Image/NativeImageStoreIOS.js +1 -0
  244. package/Libraries/Image/TextInlineImageNativeComponent.js +4 -3
  245. package/Libraries/Image/nativeImageSource.js +2 -2
  246. package/Libraries/Image/resolveAssetSource.js +5 -5
  247. package/Libraries/Inspector/BorderBox.js +1 -1
  248. package/Libraries/Inspector/BoxInspector.js +3 -4
  249. package/Libraries/Inspector/DevtoolsOverlay.js +213 -0
  250. package/Libraries/Inspector/ElementBox.js +4 -5
  251. package/Libraries/Inspector/ElementProperties.js +10 -11
  252. package/Libraries/Inspector/Inspector.js +22 -108
  253. package/Libraries/Inspector/InspectorOverlay.js +5 -5
  254. package/Libraries/Inspector/InspectorPanel.js +12 -10
  255. package/Libraries/Inspector/NetworkOverlay.js +7 -3
  256. package/Libraries/Inspector/PerformanceOverlay.js +3 -3
  257. package/Libraries/Inspector/StyleInspector.js +2 -2
  258. package/Libraries/Inspector/getInspectorDataForViewAtPoint.js +71 -0
  259. package/Libraries/Interaction/BridgeSpyStallHandler.js +1 -1
  260. package/Libraries/Interaction/InteractionManager.d.ts +74 -0
  261. package/Libraries/Interaction/InteractionManager.js +8 -8
  262. package/Libraries/Interaction/NativeFrameRateLogger.js +1 -0
  263. package/Libraries/Interaction/PanResponder.d.ts +202 -0
  264. package/Libraries/Interaction/PanResponder.flow.js +257 -0
  265. package/Libraries/Interaction/PanResponder.js +4 -3
  266. package/Libraries/JSInspector/JSInspector.js +0 -3
  267. package/Libraries/JSInspector/NetworkAgent.js +3 -3
  268. package/Libraries/LayoutAnimation/LayoutAnimation.d.ts +84 -0
  269. package/Libraries/LayoutAnimation/LayoutAnimation.js +4 -3
  270. package/Libraries/Linking/Linking.d.ts +61 -0
  271. package/Libraries/Linking/Linking.js +3 -2
  272. package/Libraries/Linking/NativeIntentAndroid.js +1 -0
  273. package/Libraries/Linking/NativeLinkingManager.js +1 -0
  274. package/Libraries/Lists/CellRenderMask.js +13 -3
  275. package/Libraries/Lists/ChildListCollection.js +72 -0
  276. package/Libraries/Lists/FillRateHelper.js +28 -17
  277. package/Libraries/Lists/FlatList.d.ts +292 -0
  278. package/Libraries/Lists/FlatList.js +70 -70
  279. package/Libraries/Lists/SectionList.d.ts +300 -0
  280. package/Libraries/Lists/SectionList.js +5 -5
  281. package/Libraries/Lists/SectionListModern.js +6 -6
  282. package/Libraries/Lists/StateSafePureComponent.js +85 -0
  283. package/Libraries/Lists/ViewabilityHelper.js +33 -12
  284. package/Libraries/Lists/VirtualizeUtils.js +17 -13
  285. package/Libraries/Lists/VirtualizedList.d.ts +317 -0
  286. package/Libraries/Lists/VirtualizedList.js +548 -890
  287. package/Libraries/Lists/VirtualizedListCellRenderer.js +259 -0
  288. package/Libraries/Lists/VirtualizedListContext.js +7 -48
  289. package/Libraries/Lists/VirtualizedListProps.js +279 -0
  290. package/Libraries/Lists/VirtualizedSectionList.js +6 -3
  291. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +1 -1
  292. package/Libraries/LogBox/Data/LogBoxData.js +9 -8
  293. package/Libraries/LogBox/Data/LogBoxLog.js +5 -5
  294. package/Libraries/LogBox/Data/LogBoxSymbolication.js +4 -4
  295. package/Libraries/LogBox/Data/parseLogBoxLog.js +5 -3
  296. package/Libraries/LogBox/LogBox.d.ts +28 -0
  297. package/Libraries/LogBox/LogBox.js +11 -11
  298. package/Libraries/LogBox/LogBoxInspectorContainer.js +5 -3
  299. package/Libraries/LogBox/LogBoxNotificationContainer.js +2 -2
  300. package/Libraries/LogBox/UI/AnsiHighlight.js +5 -3
  301. package/Libraries/LogBox/UI/LogBoxButton.js +6 -5
  302. package/Libraries/LogBox/UI/LogBoxInspector.js +6 -6
  303. package/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.js +9 -8
  304. package/Libraries/LogBox/UI/LogBoxInspectorFooter.js +3 -3
  305. package/Libraries/LogBox/UI/LogBoxInspectorHeader.js +7 -6
  306. package/Libraries/LogBox/UI/LogBoxInspectorMessageHeader.js +6 -5
  307. package/Libraries/LogBox/UI/LogBoxInspectorReactFrames.js +7 -6
  308. package/Libraries/LogBox/UI/LogBoxInspectorSection.js +2 -2
  309. package/Libraries/LogBox/UI/LogBoxInspectorSourceMapStatus.js +3 -3
  310. package/Libraries/LogBox/UI/LogBoxInspectorStackFrame.js +5 -5
  311. package/Libraries/LogBox/UI/LogBoxInspectorStackFrames.js +5 -5
  312. package/Libraries/LogBox/UI/LogBoxMessage.js +3 -3
  313. package/Libraries/LogBox/UI/LogBoxNotification.js +6 -5
  314. package/Libraries/Modal/Modal.d.ts +104 -0
  315. package/Libraries/Modal/Modal.js +14 -14
  316. package/Libraries/Modal/NativeModalManager.js +1 -0
  317. package/Libraries/Modal/RCTModalHostViewNativeComponent.js +3 -3
  318. package/Libraries/NativeComponent/BaseViewConfig.android.js +27 -2
  319. package/Libraries/NativeComponent/BaseViewConfig.ios.js +8 -3
  320. package/Libraries/NativeComponent/BaseViewConfig.windows.js +8 -3
  321. package/Libraries/NativeComponent/NativeComponentRegistry.js +5 -4
  322. package/Libraries/NativeComponent/PlatformBaseViewConfig.js +1 -0
  323. package/Libraries/NativeComponent/StaticViewConfigValidator.js +1 -1
  324. package/Libraries/NativeComponent/ViewConfig.js +1 -0
  325. package/Libraries/NativeModules/specs/NativeAnimationsDebugModule.js +1 -0
  326. package/Libraries/NativeModules/specs/NativeDevMenu.js +1 -0
  327. package/Libraries/NativeModules/specs/NativeDevSettings.js +1 -0
  328. package/Libraries/NativeModules/specs/NativeDeviceEventManager.js +1 -0
  329. package/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js +1 -0
  330. package/Libraries/NativeModules/specs/NativeLogBox.js +3 -2
  331. package/Libraries/NativeModules/specs/NativeRedBox.js +1 -0
  332. package/Libraries/NativeModules/specs/NativeSourceCode.js +1 -0
  333. package/Libraries/Network/NativeNetworkingAndroid.js +1 -0
  334. package/Libraries/Network/NativeNetworkingIOS.js +1 -0
  335. package/Libraries/Network/RCTNetworking.android.js +4 -3
  336. package/Libraries/Network/RCTNetworking.ios.js +3 -2
  337. package/Libraries/Network/RCTNetworking.windows.js +1 -0
  338. package/Libraries/Network/convertRequestBody.js +1 -2
  339. package/Libraries/NewAppScreen/components/DebugInstructions.js +4 -1
  340. package/Libraries/NewAppScreen/components/Header.js +6 -2
  341. package/Libraries/NewAppScreen/components/HermesBadge.js +6 -2
  342. package/Libraries/NewAppScreen/components/LearnMoreLinks.js +8 -9
  343. package/Libraries/NewAppScreen/components/ReloadInstructions.js +4 -1
  344. package/Libraries/NewAppScreen/index.js +1 -1
  345. package/Libraries/Performance/NativeJSCSamplingProfiler.js +1 -0
  346. package/Libraries/Performance/QuickPerformanceLogger.js +34 -10
  347. package/Libraries/Performance/Systrace.d.ts +66 -0
  348. package/Libraries/Performance/Systrace.js +110 -195
  349. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +1 -0
  350. package/Libraries/PermissionsAndroid/PermissionsAndroid.d.ts +115 -0
  351. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +5 -4
  352. package/Libraries/Pressability/Pressability.js +12 -10
  353. package/Libraries/Pressability/Pressability.windows.js +21 -12
  354. package/Libraries/Pressability/PressabilityDebug.js +2 -2
  355. package/Libraries/PushNotificationIOS/NativePushNotificationManagerIOS.js +1 -0
  356. package/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts +275 -0
  357. package/Libraries/PushNotificationIOS/PushNotificationIOS.js +19 -14
  358. package/Libraries/ReactNative/AppContainer.js +17 -7
  359. package/Libraries/ReactNative/AppRegistry.d.ts +68 -0
  360. package/Libraries/ReactNative/AppRegistry.js +11 -14
  361. package/Libraries/ReactNative/BridgelessUIManager.js +4 -3
  362. package/Libraries/ReactNative/FabricUIManager.js +3 -3
  363. package/Libraries/ReactNative/I18nManager.d.ts +25 -0
  364. package/Libraries/ReactNative/NativeHeadlessJsTaskSupport.js +1 -0
  365. package/Libraries/ReactNative/NativeI18nManager.js +1 -0
  366. package/Libraries/ReactNative/NativeUIManager.js +1 -0
  367. package/Libraries/ReactNative/PaperUIManager.js +2 -2
  368. package/Libraries/ReactNative/PaperUIManager.windows.js +1 -1
  369. package/Libraries/ReactNative/ReactNativeFeatureFlags.js +9 -0
  370. package/Libraries/ReactNative/RendererImplementation.js +112 -0
  371. package/Libraries/ReactNative/RendererProxy.d.ts +20 -0
  372. package/Libraries/ReactNative/RendererProxy.js +26 -0
  373. package/Libraries/ReactNative/RootTag.js +0 -1
  374. package/Libraries/ReactNative/UIManager.d.ts +157 -0
  375. package/Libraries/ReactNative/UIManager.js +1 -1
  376. package/Libraries/ReactNative/getCachedComponentWithDebugName.js +1 -0
  377. package/Libraries/ReactNative/renderApplication.js +38 -20
  378. package/Libraries/ReactNative/requireNativeComponent.d.ts +23 -0
  379. package/Libraries/ReactNative/requireNativeComponent.js +2 -2
  380. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +10 -9
  381. package/Libraries/Renderer/implementations/ReactFabric-dev.js +312 -217
  382. package/Libraries/Renderer/implementations/ReactFabric-prod.js +212 -177
  383. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +248 -213
  384. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +311 -218
  385. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +226 -196
  386. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +262 -232
  387. package/Libraries/Renderer/implementations/ReactNativeRenderer.d.ts +149 -0
  388. package/Libraries/Renderer/shims/ReactFabric.js +2 -2
  389. package/Libraries/Renderer/shims/ReactFeatureFlags.js +2 -2
  390. package/Libraries/Renderer/shims/ReactNative.js +2 -2
  391. package/Libraries/Renderer/shims/ReactNativeTypes.d.ts +141 -0
  392. package/Libraries/Renderer/shims/ReactNativeTypes.js +23 -22
  393. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +8 -8
  394. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +2 -2
  395. package/Libraries/Settings/NativeSettingsManager.js +1 -0
  396. package/Libraries/Settings/Settings.d.ts +18 -0
  397. package/Libraries/Share/NativeShareModule.js +1 -0
  398. package/Libraries/Share/Share.d.ts +80 -0
  399. package/Libraries/Share/Share.js +7 -5
  400. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +1 -1
  401. package/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +18 -0
  402. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  403. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.d.ts +25 -0
  404. package/Libraries/StyleSheet/PlatformColorValueTypesIOS.ios.js +1 -0
  405. package/Libraries/StyleSheet/StyleSheet.d.ts +156 -0
  406. package/Libraries/StyleSheet/StyleSheet.js +15 -11
  407. package/Libraries/StyleSheet/StyleSheetTypes.d.ts +332 -0
  408. package/Libraries/StyleSheet/StyleSheetTypes.js +101 -24
  409. package/Libraries/StyleSheet/__flowtests__/StyleSheet-flowtest.js +2 -2
  410. package/Libraries/StyleSheet/normalizeColor.js +3 -3
  411. package/Libraries/StyleSheet/private/_TransformStyle.js +26 -24
  412. package/Libraries/StyleSheet/processAspectRatio.js +53 -0
  413. package/Libraries/StyleSheet/processColor.d.ts +16 -0
  414. package/Libraries/StyleSheet/processColor.js +3 -4
  415. package/Libraries/StyleSheet/processColorArray.js +1 -0
  416. package/Libraries/StyleSheet/processFontVariant.js +30 -0
  417. package/Libraries/StyleSheet/processTransform.js +114 -105
  418. package/Libraries/StyleSheet/splitLayoutProps.js +5 -0
  419. package/Libraries/Text/Text.d.ts +209 -0
  420. package/Libraries/Text/Text.js +94 -12
  421. package/Libraries/Text/Text.windows.js +87 -11
  422. package/Libraries/Text/TextNativeComponent.js +49 -41
  423. package/Libraries/Text/TextProps.js +64 -7
  424. package/Libraries/TurboModule/RCTExport.d.ts +12 -0
  425. package/Libraries/TurboModule/TurboModuleRegistry.d.ts +15 -0
  426. package/Libraries/TurboModule/TurboModuleRegistry.js +3 -1
  427. package/Libraries/TurboModule/samples/NativeSampleTurboModule.js +1 -0
  428. package/Libraries/Types/CoreEventTypes.d.ts +263 -0
  429. package/Libraries/Types/CoreEventTypes.js +2 -1
  430. package/Libraries/Types/CoreEventTypes.windows.js +2 -1
  431. package/Libraries/Utilities/AcessibilityMapping.js +154 -0
  432. package/Libraries/Utilities/Appearance.d.ts +43 -0
  433. package/Libraries/Utilities/Appearance.js +3 -3
  434. package/Libraries/Utilities/BackHandler.android.js +3 -5
  435. package/Libraries/Utilities/BackHandler.d.ts +38 -0
  436. package/Libraries/Utilities/BackHandler.windows.js +3 -5
  437. package/Libraries/Utilities/DevSettings.d.ts +32 -0
  438. package/Libraries/Utilities/DevSettings.js +4 -2
  439. package/Libraries/Utilities/Dimensions.d.ts +79 -0
  440. package/Libraries/Utilities/Dimensions.js +2 -2
  441. package/Libraries/Utilities/GlobalPerformanceLogger.js +2 -1
  442. package/Libraries/Utilities/HMRClient.js +23 -8
  443. package/Libraries/Utilities/LoadingView.ios.js +1 -1
  444. package/Libraries/Utilities/NativeAppearance.js +1 -0
  445. package/Libraries/Utilities/NativeDevLoadingView.js +1 -0
  446. package/Libraries/Utilities/NativeDevSplitBundleLoader.js +1 -0
  447. package/Libraries/Utilities/NativeDeviceInfo.js +1 -0
  448. package/Libraries/Utilities/NativePlatformConstantsAndroid.js +1 -0
  449. package/Libraries/Utilities/NativePlatformConstantsIOS.js +1 -0
  450. package/Libraries/Utilities/NativePlatformConstantsWin.js +1 -0
  451. package/Libraries/Utilities/PerformanceLoggerContext.js +3 -2
  452. package/Libraries/Utilities/PixelRatio.d.ts +64 -0
  453. package/Libraries/Utilities/Platform.android.js +11 -5
  454. package/Libraries/Utilities/Platform.d.ts +102 -0
  455. package/Libraries/Utilities/Platform.ios.js +12 -5
  456. package/Libraries/Utilities/Platform.windows.js +11 -5
  457. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  458. package/Libraries/Utilities/ReactNativeTestTools.js +9 -15
  459. package/Libraries/Utilities/codegenNativeCommands.js +1 -10
  460. package/Libraries/Utilities/codegenNativeComponent.js +4 -1
  461. package/Libraries/Utilities/createPerformanceLogger.js +7 -8
  462. package/Libraries/Utilities/differ/deepDiffer.js +1 -1
  463. package/Libraries/Utilities/groupByEveryN.js +1 -1
  464. package/Libraries/Utilities/stringifySafe.js +3 -1
  465. package/Libraries/Utilities/useColorScheme.js +3 -2
  466. package/Libraries/Utilities/useRefEffect.js +1 -1
  467. package/Libraries/Vibration/NativeVibration.js +1 -0
  468. package/Libraries/Vibration/Vibration.d.ts +43 -0
  469. package/Libraries/Vibration/Vibration.js +1 -0
  470. package/Libraries/WebPerformance/NativePerformanceObserver.js +41 -0
  471. package/Libraries/WebPerformance/PerformanceObserver.js +223 -0
  472. package/Libraries/WebSocket/NativeWebSocketModule.js +1 -0
  473. package/Libraries/WebSocket/WebSocket.js +11 -3
  474. package/Libraries/WebSocket/WebSocketInterceptor.js +1 -1
  475. package/Libraries/YellowBox/YellowBoxDeprecated.d.ts +19 -0
  476. package/Libraries/YellowBox/YellowBoxDeprecated.js +2 -3
  477. package/Libraries/__flowtests__/ReactNativeTypes-flowtest.js +2 -1
  478. package/Libraries/__tests__/ViewWindows-test.js +16 -0
  479. package/Libraries/platform-types.d.ts +17 -0
  480. package/Libraries/vendor/core/ErrorUtils.d.ts +15 -0
  481. package/Libraries/vendor/emitter/EventEmitter.d.ts +164 -0
  482. package/Microsoft.ReactNative/ABIViewManager.cpp +19 -1
  483. package/Microsoft.ReactNative/ABIViewManager.h +9 -0
  484. package/Microsoft.ReactNative/Base/CoreNativeModules.cpp +0 -22
  485. package/Microsoft.ReactNative/Base/CoreNativeModules.h +0 -2
  486. package/Microsoft.ReactNative/CompositionContext.idl +31 -0
  487. package/Microsoft.ReactNative/CompositionHwndHost.idl +33 -0
  488. package/Microsoft.ReactNative/CompositionRootView.idl +45 -0
  489. package/Microsoft.ReactNative/CompositionSwitcher.idl +123 -0
  490. package/Microsoft.ReactNative/CompositionUIService.idl +24 -0
  491. package/Microsoft.ReactNative/Fabric/ComponentView.h +10 -0
  492. package/Microsoft.ReactNative/Fabric/Composition/ComponentViewRegistry.cpp +83 -0
  493. package/Microsoft.ReactNative/Fabric/{ComponentViewRegistry.h → Composition/ComponentViewRegistry.h} +9 -12
  494. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.cpp +816 -0
  495. package/Microsoft.ReactNative/Fabric/Composition/CompositionContextHelper.h +33 -0
  496. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.cpp +833 -0
  497. package/Microsoft.ReactNative/Fabric/Composition/CompositionEventHandler.h +116 -0
  498. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.cpp +137 -0
  499. package/Microsoft.ReactNative/Fabric/Composition/CompositionHelpers.h +44 -0
  500. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +145 -0
  501. package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.h +49 -0
  502. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.cpp +359 -0
  503. package/Microsoft.ReactNative/Fabric/Composition/CompositionRootView.h +81 -0
  504. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.cpp +27 -0
  505. package/Microsoft.ReactNative/Fabric/Composition/CompositionUIService.h +23 -0
  506. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +1217 -0
  507. package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.h +113 -0
  508. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.cpp +332 -0
  509. package/Microsoft.ReactNative/Fabric/Composition/ImageComponentView.h +90 -0
  510. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.cpp +415 -0
  511. package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +62 -0
  512. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.cpp +355 -0
  513. package/Microsoft.ReactNative/Fabric/Composition/ScrollViewComponentView.h +103 -0
  514. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +177 -0
  515. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +1076 -0
  516. package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +99 -0
  517. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputEventEmitter.cpp +0 -0
  518. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputEventEmitter.h +0 -0
  519. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputProps.cpp +1 -31
  520. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputProps.h +15 -28
  521. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputShadowNode.cpp +16 -14
  522. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputShadowNode.h +3 -3
  523. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputState.cpp +27 -10
  524. package/Microsoft.ReactNative/Fabric/{TextInput → Composition/TextInput}/WindowsTextInputState.h +5 -16
  525. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.cpp +65 -157
  526. package/Microsoft.ReactNative/Fabric/FabricUIManagerModule.h +10 -9
  527. package/Microsoft.ReactNative/Fabric/IComponentViewRegistry.h +34 -0
  528. package/Microsoft.ReactNative/Fabric/ImageManager.cpp +5 -7
  529. package/Microsoft.ReactNative/Fabric/ImageRequest.cpp +23 -8
  530. package/Microsoft.ReactNative/Fabric/ReactTaggedView.h +35 -0
  531. package/Microsoft.ReactNative/Fabric/WindowsImageManager.cpp +125 -0
  532. package/Microsoft.ReactNative/Fabric/WindowsImageManager.h +20 -0
  533. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rncore/States.h +5 -0
  534. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/rnwcore/States.h +5 -0
  535. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/Color.cpp +4 -6
  536. package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/platform/cxx/react/renderer/graphics/Color.h +17 -0
  537. package/Microsoft.ReactNative/INativeUIManager.h +1 -1
  538. package/Microsoft.ReactNative/IReactPackageBuilder.idl +6 -9
  539. package/Microsoft.ReactNative/IViewManager.idl +14 -0
  540. package/Microsoft.ReactNative/IViewManagerCore.idl +1 -0
  541. package/Microsoft.ReactNative/JsiApi.cpp +94 -0
  542. package/Microsoft.ReactNative/JsiApi.h +13 -0
  543. package/Microsoft.ReactNative/JsiApi.idl +13 -0
  544. package/Microsoft.ReactNative/LayoutService.cpp +51 -0
  545. package/Microsoft.ReactNative/LayoutService.h +32 -0
  546. package/Microsoft.ReactNative/LayoutService.idl +41 -0
  547. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +32 -20
  548. package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj.filters +11 -1
  549. package/Microsoft.ReactNative/Modules/Animated/AdditionAnimatedNode.cpp +33 -16
  550. package/Microsoft.ReactNative/Modules/Animated/AdditionAnimatedNode.h +3 -2
  551. package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.cpp +17 -2
  552. package/Microsoft.ReactNative/Modules/Animated/AnimatedNode.h +19 -1
  553. package/Microsoft.ReactNative/Modules/Animated/AnimatedPlatformConfig.cpp +23 -0
  554. package/Microsoft.ReactNative/Modules/Animated/AnimatedPlatformConfig.h +17 -0
  555. package/Microsoft.ReactNative/Modules/Animated/AnimationDriver.cpp +49 -18
  556. package/Microsoft.ReactNative/Modules/Animated/AnimationDriver.h +29 -7
  557. package/Microsoft.ReactNative/Modules/Animated/AnimationUtils.h +45 -0
  558. package/Microsoft.ReactNative/Modules/Animated/CalculatedAnimationDriver.cpp +6 -5
  559. package/Microsoft.ReactNative/Modules/Animated/CalculatedAnimationDriver.h +1 -3
  560. package/Microsoft.ReactNative/Modules/Animated/DecayAnimationDriver.cpp +31 -5
  561. package/Microsoft.ReactNative/Modules/Animated/DecayAnimationDriver.h +3 -1
  562. package/Microsoft.ReactNative/Modules/Animated/DiffClampAnimatedNode.cpp +30 -15
  563. package/Microsoft.ReactNative/Modules/Animated/DiffClampAnimatedNode.h +4 -2
  564. package/Microsoft.ReactNative/Modules/Animated/DivisionAnimatedNode.cpp +43 -20
  565. package/Microsoft.ReactNative/Modules/Animated/DivisionAnimatedNode.h +3 -2
  566. package/Microsoft.ReactNative/Modules/Animated/EventAnimationDriver.cpp +2 -2
  567. package/Microsoft.ReactNative/Modules/Animated/EventAnimationDriver.h +1 -1
  568. package/Microsoft.ReactNative/Modules/Animated/FrameAnimationDriver.cpp +45 -8
  569. package/Microsoft.ReactNative/Modules/Animated/FrameAnimationDriver.h +7 -2
  570. package/Microsoft.ReactNative/Modules/Animated/InterpolationAnimatedNode.cpp +76 -38
  571. package/Microsoft.ReactNative/Modules/Animated/InterpolationAnimatedNode.h +6 -5
  572. package/Microsoft.ReactNative/Modules/Animated/ModulusAnimatedNode.cpp +25 -13
  573. package/Microsoft.ReactNative/Modules/Animated/ModulusAnimatedNode.h +4 -2
  574. package/Microsoft.ReactNative/Modules/Animated/MultiplicationAnimatedNode.cpp +33 -16
  575. package/Microsoft.ReactNative/Modules/Animated/MultiplicationAnimatedNode.h +3 -2
  576. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.cpp +245 -209
  577. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedModule.h +91 -41
  578. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.cpp +336 -82
  579. package/Microsoft.ReactNative/Modules/Animated/NativeAnimatedNodeManager.h +33 -10
  580. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.cpp +185 -57
  581. package/Microsoft.ReactNative/Modules/Animated/PropsAnimatedNode.h +28 -5
  582. package/Microsoft.ReactNative/Modules/Animated/SpringAnimationDriver.cpp +72 -20
  583. package/Microsoft.ReactNative/Modules/Animated/SpringAnimationDriver.h +8 -4
  584. package/Microsoft.ReactNative/Modules/Animated/StyleAnimatedNode.cpp +20 -5
  585. package/Microsoft.ReactNative/Modules/Animated/StyleAnimatedNode.h +3 -2
  586. package/Microsoft.ReactNative/Modules/Animated/SubtractionAnimatedNode.cpp +42 -20
  587. package/Microsoft.ReactNative/Modules/Animated/SubtractionAnimatedNode.h +3 -1
  588. package/Microsoft.ReactNative/Modules/Animated/TrackingAnimatedNode.cpp +20 -11
  589. package/Microsoft.ReactNative/Modules/Animated/TrackingAnimatedNode.h +5 -6
  590. package/Microsoft.ReactNative/Modules/Animated/TransformAnimatedNode.cpp +36 -9
  591. package/Microsoft.ReactNative/Modules/Animated/TransformAnimatedNode.h +5 -2
  592. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.cpp +60 -32
  593. package/Microsoft.ReactNative/Modules/Animated/ValueAnimatedNode.h +11 -4
  594. package/Microsoft.ReactNative/Modules/AppearanceModule.cpp +58 -37
  595. package/Microsoft.ReactNative/Modules/AppearanceModule.h +25 -32
  596. package/Microsoft.ReactNative/Modules/DeviceInfoModule.cpp +3 -1
  597. package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +42 -10
  598. package/Microsoft.ReactNative/Modules/LogBoxModule.cpp +157 -39
  599. package/Microsoft.ReactNative/Modules/LogBoxModule.h +6 -0
  600. package/Microsoft.ReactNative/Modules/NativeUIManager.cpp +72 -85
  601. package/Microsoft.ReactNative/Modules/NativeUIManager.h +8 -4
  602. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.cpp +7 -19
  603. package/Microsoft.ReactNative/Modules/PaperUIManagerModule.h +1 -0
  604. package/Microsoft.ReactNative/Modules/TimingModule.cpp +48 -87
  605. package/Microsoft.ReactNative/Modules/TimingModule.h +20 -30
  606. package/Microsoft.ReactNative/QuirkSettings.cpp +22 -0
  607. package/Microsoft.ReactNative/QuirkSettings.h +9 -0
  608. package/Microsoft.ReactNative/QuirkSettings.idl +7 -0
  609. package/Microsoft.ReactNative/ReactCoreInjection.cpp +7 -2
  610. package/Microsoft.ReactNative/ReactCoreInjection.h +4 -1
  611. package/Microsoft.ReactNative/ReactCoreInjection.idl +4 -1
  612. package/Microsoft.ReactNative/ReactHost/React.h +0 -3
  613. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.cpp +28 -23
  614. package/Microsoft.ReactNative/ReactHost/ReactInstanceWin.h +0 -3
  615. package/Microsoft.ReactNative/ReactNativeHost.cpp +2 -1
  616. package/Microsoft.ReactNative/ReactPackageBuilder.cpp +8 -3
  617. package/Microsoft.ReactNative/ReactPackageBuilder.h +4 -3
  618. package/Microsoft.ReactNative/ReactRootView.cpp +3 -75
  619. package/Microsoft.ReactNative/ReactRootView.h +0 -6
  620. package/Microsoft.ReactNative/ReactRootView.idl +1 -9
  621. package/Microsoft.ReactNative/RedBox.cpp +69 -8
  622. package/Microsoft.ReactNative/RedBox.h +2 -0
  623. package/Microsoft.ReactNative/RedBoxHandler.cpp +3 -1
  624. package/Microsoft.ReactNative/Utils/Helpers.cpp +13 -0
  625. package/Microsoft.ReactNative/Utils/Helpers.h +1 -0
  626. package/Microsoft.ReactNative/Utils/ImageUtils.cpp +94 -0
  627. package/Microsoft.ReactNative/Utils/ImageUtils.h +35 -0
  628. package/Microsoft.ReactNative/Utils/LocalBundleReader.cpp +3 -2
  629. package/Microsoft.ReactNative/Utils/PropertyUtils.h +31 -9
  630. package/Microsoft.ReactNative/Views/ControlViewManager.cpp +19 -0
  631. package/Microsoft.ReactNative/Views/ControlViewManager.h +7 -0
  632. package/Microsoft.ReactNative/Views/FlyoutViewManager.cpp +8 -4
  633. package/Microsoft.ReactNative/Views/ICompositionRootView.h +19 -0
  634. package/Microsoft.ReactNative/Views/Image/ImageViewManager.cpp +14 -0
  635. package/Microsoft.ReactNative/Views/Image/ImageViewManager.h +7 -0
  636. package/Microsoft.ReactNative/Views/Image/ReactImage.cpp +8 -76
  637. package/Microsoft.ReactNative/Views/Image/ReactImage.h +1 -23
  638. package/Microsoft.ReactNative/Views/KeyboardEventHandler.cpp +16 -3
  639. package/Microsoft.ReactNative/Views/PopupViewManager.cpp +1 -2
  640. package/Microsoft.ReactNative/Views/ScrollViewManager.cpp +1 -3
  641. package/Microsoft.ReactNative/Views/ShadowNodeBase.h +10 -1
  642. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.cpp +0 -12
  643. package/Microsoft.ReactNative/Views/ShadowNodeRegistry.h +2 -4
  644. package/Microsoft.ReactNative/Views/Text/TextPropertyChangedParentVisitor.cpp +1 -7
  645. package/Microsoft.ReactNative/Views/TextInputViewManager.cpp +58 -42
  646. package/Microsoft.ReactNative/Views/TextViewManager.cpp +47 -31
  647. package/Microsoft.ReactNative/Views/TextViewManager.h +2 -0
  648. package/Microsoft.ReactNative/Views/TouchEventHandler.cpp +22 -247
  649. package/Microsoft.ReactNative/Views/TouchEventHandler.h +1 -6
  650. package/Microsoft.ReactNative/Views/ViewControl.cpp +2 -2
  651. package/Microsoft.ReactNative/Views/ViewControl.h +1 -1
  652. package/Microsoft.ReactNative/Views/ViewManagerBase.cpp +25 -13
  653. package/Microsoft.ReactNative/Views/ViewManagerBase.h +4 -0
  654. package/Microsoft.ReactNative/Views/ViewViewManager.cpp +74 -35
  655. package/Microsoft.ReactNative/Views/ViewViewManager.h +1 -0
  656. package/Microsoft.ReactNative/Views/cppwinrt/ViewPanel.idl +4 -4
  657. package/Microsoft.ReactNative/XamlHelper.cpp +13 -0
  658. package/Microsoft.ReactNative/XamlHelper.h +4 -0
  659. package/Microsoft.ReactNative/XamlHelper.idl +9 -0
  660. package/Microsoft.ReactNative/XamlUIService.cpp +16 -0
  661. package/Microsoft.ReactNative/XamlUIService.h +2 -0
  662. package/Microsoft.ReactNative/XamlUIService.idl +4 -0
  663. package/Microsoft.ReactNative/XamlView.cpp +10 -0
  664. package/Microsoft.ReactNative/XamlView.h +7 -2
  665. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.cpp +76 -0
  666. package/Microsoft.ReactNative.Cxx/JSI/JsiAbiApi.h +13 -0
  667. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.cpp +71 -2
  668. package/Microsoft.ReactNative.Cxx/JSI/NodeApiJsiRuntime.h +3 -3
  669. package/Microsoft.ReactNative.Cxx/Microsoft.ReactNative.Cxx.vcxitems +1 -2
  670. package/Microsoft.ReactNative.Cxx/ModuleRegistration.cpp +14 -4
  671. package/Microsoft.ReactNative.Cxx/ModuleRegistration.h +5 -2
  672. package/Microsoft.ReactNative.Cxx/NamespaceRedirect.h +2 -0
  673. package/Microsoft.ReactNative.Cxx/TurboModuleProvider.h +1 -2
  674. package/Microsoft.ReactNative.Managed/IReactPromise.cs +0 -20
  675. package/Microsoft.ReactNative.Managed/JSValue.cs +1 -1
  676. package/Microsoft.ReactNative.Managed/JSValueReader.cs +438 -444
  677. package/Microsoft.ReactNative.Managed/JSValueWriter.cs +8 -7
  678. package/Microsoft.ReactNative.Managed/Microsoft.ReactNative.Managed.csproj +22 -7
  679. package/Microsoft.ReactNative.Managed/ReactAttributes.cs +16 -0
  680. package/Microsoft.ReactNative.Managed/ReactConstantProvider.cs +5 -0
  681. package/Microsoft.ReactNative.Managed/ReactContext.cs +19 -2
  682. package/Microsoft.ReactNative.Managed/ReactDispatcher.cs +34 -0
  683. package/Microsoft.ReactNative.Managed/ReactError.cs +36 -0
  684. package/Microsoft.ReactNative.Managed/ReactNotificationArgsOf.cs +23 -0
  685. package/Microsoft.ReactNative.Managed/ReactNotificationHandlerOf.cs +7 -0
  686. package/Microsoft.ReactNative.Managed/ReactNotificationIdOf.cs +44 -0
  687. package/Microsoft.ReactNative.Managed/ReactNotificationService.cs +146 -0
  688. package/Microsoft.ReactNative.Managed/ReactNotificationSubscription.cs +43 -0
  689. package/Microsoft.ReactNative.Managed/ReactNotificationSubscriptionRevoker.cs +64 -0
  690. package/Microsoft.ReactNative.Managed/ReactPromise.cs +123 -81
  691. package/Microsoft.ReactNative.Managed/ReactPropertyBag.cs +91 -0
  692. package/Microsoft.ReactNative.Managed/ReactPropertyIdOf.cs +44 -0
  693. package/Microsoft.ReactNative.Managed/ReactPropertyName.cs +39 -0
  694. package/Microsoft.ReactNative.Managed/ReactPropertyNamespace.cs +26 -0
  695. package/Microsoft.ReactNative.Managed/ReactSettingsSnapshot.cs +44 -0
  696. package/Microsoft.ReactNative.Managed/ReactTaskExtensions.cs +15 -4
  697. package/Microsoft.ReactNative.Managed/packages.lock.json +51 -2
  698. package/Microsoft.ReactNative.Managed.CodeGen/App.cs +1 -1
  699. package/Microsoft.ReactNative.Managed.CodeGen/CodeAnalyzer.cs +793 -731
  700. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Module.cs +81 -44
  701. package/Microsoft.ReactNative.Managed.CodeGen/CodeGenerator.Serializers.cs +57 -18
  702. package/Microsoft.ReactNative.Managed.CodeGen/DiagnosticDescriptors.cs +36 -4
  703. package/Microsoft.ReactNative.Managed.CodeGen/Microsoft.ReactNative.Managed.CodeGen.csproj +5 -5
  704. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactAssembly.cs +3 -3
  705. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactGetConstants.cs +17 -0
  706. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactMethod.cs +11 -2
  707. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactModule.cs +2 -0
  708. package/Microsoft.ReactNative.Managed.CodeGen/Model/ReactTypes.cs +10 -4
  709. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Debug.pubxml +1 -1
  710. package/Microsoft.ReactNative.Managed.CodeGen/Properties/PublishProfiles/DeployAsTool-Release.pubxml +1 -1
  711. package/Microsoft.ReactNative.Managed.CodeGen/ReactNativeNames.cs +29 -3
  712. package/Microsoft.ReactNative.Managed.CodeGen/SyntaxHelpers.cs +6 -0
  713. package/Mso/smartPtr/cntPtr.h +21 -21
  714. package/PropertySheets/Codegen.props +15 -0
  715. package/PropertySheets/Codegen.targets +19 -0
  716. package/PropertySheets/CppAppConsumeCSharpModule.props +3 -0
  717. package/PropertySheets/External/Microsoft.ReactNative.CSharp.Dependencies.props +17 -0
  718. package/PropertySheets/External/Microsoft.ReactNative.Common.props +3 -0
  719. package/PropertySheets/External/Microsoft.ReactNative.Cpp.ProjectReferences.props +0 -3
  720. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.props +1 -0
  721. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets +3 -0
  722. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.targets +1 -0
  723. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.props +1 -0
  724. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets +3 -0
  725. package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.targets +1 -0
  726. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharp.PackageReferences.props +11 -0
  727. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.props +1 -0
  728. package/PropertySheets/External/Microsoft.ReactNative.WinAppSDK.CSharpApp.targets +51 -0
  729. package/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props +10 -1
  730. package/PropertySheets/Generated/PackageVersion.g.props +3 -3
  731. package/PropertySheets/JSEngine.props +10 -3
  732. package/PropertySheets/ManagedCodeGen/Microsoft.ReactNative.Managed.CodeGen.targets +1 -1
  733. package/PropertySheets/NewAPIDeclarations.props +25 -0
  734. package/PropertySheets/React.Cpp.props +2 -2
  735. package/PropertySheets/WinUI.props +1 -1
  736. package/README.md +2 -2
  737. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ConcreteComponentDescriptor.h +2 -1
  738. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/mapbuffer/MapBufferBuilder.cpp +182 -0
  739. package/ReactCommon/Yoga.cpp +76 -29
  740. package/Scripts/IntegrationTests.ps1 +1 -1
  741. package/Scripts/JustMyXaml.ps1 +8 -8
  742. package/Scripts/Microsoft.ReactNative.Managed.nuspec +1 -1
  743. package/Scripts/Microsoft.ReactNative.WindowsAppSDK.nuspec +3 -3
  744. package/Scripts/OfficeReact.Win32.nuspec +2 -0
  745. package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +31 -1
  746. package/Scripts/UnitTest.ps1 +1 -1
  747. package/Scripts/rnw-dependencies.ps1 +317 -162
  748. package/Shared/Composition/CompositionSwitcher.interop.h +39 -0
  749. package/Shared/HermesShim.h +1 -1
  750. package/Shared/JSI/ChakraRuntime.cpp +42 -0
  751. package/Shared/JSI/ChakraRuntime.h +13 -0
  752. package/Shared/JSI/NapiJsiV8RuntimeHolder.h +0 -2
  753. package/Shared/Networking/IWebSocketResource.h +1 -0
  754. package/Shared/Networking/OriginPolicyHttpFilter.cpp +6 -6
  755. package/Shared/OInstance.cpp +2 -0
  756. package/Shared/Shared.vcxitems +34 -4
  757. package/Shared/Shared.vcxitems.filters +1 -12
  758. package/Shared/V8JSIRuntimeHolder.h +0 -2
  759. package/codegen/NativeAccessibilityInfoSpec.g.h +12 -12
  760. package/codegen/NativeAccessibilityManagerSpec.g.h +37 -31
  761. package/codegen/NativeActionSheetManagerSpec.g.h +6 -6
  762. package/codegen/NativeAlertManagerSpec.g.h +4 -2
  763. package/codegen/NativeAnimatedModuleSpec.g.h +48 -48
  764. package/codegen/NativeAnimatedTurboModuleSpec.g.h +48 -48
  765. package/codegen/NativeAnimationsDebugModuleSpec.g.h +4 -4
  766. package/codegen/NativeAppStateSpec.g.h +6 -6
  767. package/codegen/NativeAppearanceSpec.g.h +6 -6
  768. package/codegen/NativeBlobModuleSpec.g.h +12 -12
  769. package/codegen/NativeBugReportingSpec.g.h +6 -6
  770. package/codegen/NativeClipboardSpec.g.h +4 -4
  771. package/codegen/NativeDatePickerAndroidSpec.g.h +2 -2
  772. package/codegen/NativeDevLoadingViewSpec.g.h +4 -4
  773. package/codegen/NativeDevMenuSpec.g.h +10 -10
  774. package/codegen/NativeDevSettingsSpec.g.h +22 -22
  775. package/codegen/NativeDevSplitBundleLoaderSpec.g.h +2 -2
  776. package/codegen/NativeDeviceEventManagerSpec.g.h +2 -2
  777. package/codegen/NativeDialogManagerAndroidSpec.g.h +2 -2
  778. package/codegen/NativeDialogManagerWindowsSpec.g.h +2 -2
  779. package/codegen/NativeExceptionsManagerSpec.g.h +10 -10
  780. package/codegen/NativeFileReaderModuleSpec.g.h +4 -4
  781. package/codegen/NativeFrameRateLoggerSpec.g.h +8 -8
  782. package/codegen/NativeHeadlessJsTaskSupportSpec.g.h +4 -4
  783. package/codegen/NativeI18nManagerSpec.g.h +6 -6
  784. package/codegen/NativeImageEditorSpec.g.h +2 -2
  785. package/codegen/NativeImageLoaderAndroidSpec.g.h +10 -10
  786. package/codegen/NativeImageLoaderIOSSpec.g.h +10 -10
  787. package/codegen/NativeImageStoreAndroidSpec.g.h +2 -2
  788. package/codegen/NativeImageStoreIOSSpec.g.h +8 -8
  789. package/codegen/NativeIntentAndroidSpec.g.h +10 -10
  790. package/codegen/NativeJSCHeapCaptureSpec.g.h +2 -2
  791. package/codegen/NativeJSCSamplingProfilerSpec.g.h +2 -2
  792. package/codegen/NativeKeyboardObserverSpec.g.h +4 -4
  793. package/codegen/NativeLinkingManagerSpec.g.h +12 -12
  794. package/codegen/NativeLogBoxSpec.g.h +4 -4
  795. package/codegen/NativeModalManagerSpec.g.h +4 -4
  796. package/codegen/NativeNetworkingAndroidSpec.g.h +10 -10
  797. package/codegen/NativeNetworkingIOSSpec.g.h +10 -10
  798. package/codegen/NativePerformanceObserverSpec.g.h +69 -0
  799. package/codegen/NativePermissionsAndroidSpec.g.h +8 -8
  800. package/codegen/NativePlatformConstantsAndroidSpec.g.h +2 -2
  801. package/codegen/NativePushNotificationManagerIOSSpec.g.h +36 -36
  802. package/codegen/NativeRedBoxSpec.g.h +4 -4
  803. package/codegen/NativeSampleTurboModuleSpec.g.h +22 -22
  804. package/codegen/NativeSegmentFetcherSpec.g.h +4 -4
  805. package/codegen/NativeSettingsManagerSpec.g.h +4 -4
  806. package/codegen/NativeShareModuleSpec.g.h +2 -2
  807. package/codegen/NativeSoundManagerSpec.g.h +2 -2
  808. package/codegen/NativeStatusBarManagerAndroidSpec.g.h +8 -8
  809. package/codegen/NativeStatusBarManagerIOSSpec.g.h +12 -12
  810. package/codegen/NativeTimingSpec.g.h +6 -6
  811. package/codegen/NativeToastAndroidSpec.g.h +6 -6
  812. package/codegen/NativeUIManagerSpec.g.h +50 -50
  813. package/codegen/NativeVibrationSpec.g.h +6 -6
  814. package/codegen/NativeWebSocketModuleSpec.g.h +14 -14
  815. package/codegen/react/components/rnwcore/ComponentDescriptors.h +3 -4
  816. package/codegen/react/components/rnwcore/EventEmitters.cpp +5 -4
  817. package/codegen/react/components/rnwcore/EventEmitters.h +21 -26
  818. package/codegen/react/components/rnwcore/Props.cpp +3 -10
  819. package/codegen/react/components/rnwcore/Props.h +19 -28
  820. package/codegen/react/components/rnwcore/ShadowNodes.cpp +3 -4
  821. package/codegen/react/components/rnwcore/ShadowNodes.h +36 -30
  822. package/codegen/react/components/rnwcore/States.cpp +18 -0
  823. package/codegen/react/components/rnwcore/States.h +156 -0
  824. package/codegen/rnwcoreJSI-generated.cpp +1670 -0
  825. package/codegen/rnwcoreJSI.h +5620 -0
  826. package/fmt/cgmanifest.json +1 -0
  827. package/fmt/fmt.vcxproj +2 -1
  828. package/index.js +89 -55
  829. package/index.windows.js +89 -55
  830. package/interface.js +8 -0
  831. package/jest/react-native-env.js +18 -0
  832. package/jest/renderer.js +2 -2
  833. package/jest/setup.js +7 -9
  834. package/just-task.js +5 -1
  835. package/package.json +37 -37
  836. package/template/cpp-app/proj/MyApp.sln +2 -2
  837. package/template/cpp-app/proj/MyApp.vcxproj +3 -3
  838. package/template/cpp-app/src/ReactPackageProvider.cpp +1 -1
  839. package/template/cpp-lib/proj/MyLib.sln +2 -2
  840. package/template/cpp-lib/proj/MyLib.vcxproj +3 -3
  841. package/template/cpp-lib/src/ReactPackageProvider.cpp +1 -1
  842. package/template/cs-app/proj/MyApp.csproj +10 -8
  843. package/template/cs-app/proj/MyApp.sln +2 -2
  844. package/template/cs-app-WinAppSDK/MyApp/App.xaml.cs +3 -3
  845. package/template/cs-app-WinAppSDK/proj/ExperimentalFeatures.props +2 -1
  846. package/template/cs-app-WinAppSDK/proj/MyApp.csproj +19 -15
  847. package/template/cs-app-WinAppSDK/proj/MyApp.sln +2 -2
  848. package/template/cs-lib/proj/MyLib.csproj +14 -8
  849. package/template/cs-lib/proj/MyLib.sln +2 -2
  850. package/template/shared-app/proj/ExperimentalFeatures.props +2 -0
  851. package/template/shared-lib/proj/ExperimentalFeatures.props +2 -0
  852. package/Libraries/Components/MaskedView/MaskedViewIOS.ios.js +0 -93
  853. package/Libraries/Components/MaskedView/MaskedViewIOS.windows.js +0 -9
  854. package/Libraries/Components/MaskedView/RCTMaskedViewNativeComponent.js +0 -21
  855. package/Libraries/Core/setUpSystrace.js +0 -21
  856. package/Libraries/Image/ImagePickerIOS.js +0 -103
  857. package/Libraries/Image/NativeImagePickerIOS.js +0 -38
  858. package/Libraries/Lists/VirtualizedList.windows.js +0 -9
  859. package/Libraries/Lists/__tests__/CellRenderMask-test.js +0 -179
  860. package/Libraries/Lists/__tests__/FillRateHelper-test.js +0 -120
  861. package/Libraries/Lists/__tests__/FlatList-test.js +0 -155
  862. package/Libraries/Lists/__tests__/SectionList-test.js +0 -109
  863. package/Libraries/Lists/__tests__/ViewabilityHelper-test.js +0 -440
  864. package/Libraries/Lists/__tests__/VirtualizeUtils-test.js +0 -91
  865. package/Libraries/Lists/__tests__/VirtualizedList-test.js +0 -1587
  866. package/Libraries/Lists/__tests__/VirtualizedSectionList-test.js +0 -269
  867. package/Libraries/Storage/AsyncStorage.js +0 -385
  868. package/Libraries/Storage/NativeAsyncLocalStorage.js +0 -44
  869. package/Libraries/Storage/NativeAsyncSQLiteDBStorage.js +0 -44
  870. package/Libraries/StyleSheet/processTransform.windows.js +0 -274
  871. package/Libraries/Utilities/JSDevSupportModule.js +0 -37
  872. package/Libraries/Utilities/NativeJSDevSupport.js +0 -23
  873. package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.cpp +0 -81
  874. package/Microsoft.ReactNative/Fabric/ActivityIndicatorComponentView.h +0 -46
  875. package/Microsoft.ReactNative/Fabric/ComponentViewRegistry.cpp +0 -118
  876. package/Microsoft.ReactNative/Fabric/ImageComponentView.cpp +0 -138
  877. package/Microsoft.ReactNative/Fabric/ImageComponentView.h +0 -49
  878. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.cpp +0 -160
  879. package/Microsoft.ReactNative/Fabric/ParagraphComponentView.h +0 -40
  880. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.cpp +0 -200
  881. package/Microsoft.ReactNative/Fabric/ScrollViewComponentView.h +0 -62
  882. package/Microsoft.ReactNative/Fabric/SliderComponentView.cpp +0 -107
  883. package/Microsoft.ReactNative/Fabric/SliderComponentView.h +0 -51
  884. package/Microsoft.ReactNative/Fabric/SwitchComponentView.cpp +0 -109
  885. package/Microsoft.ReactNative/Fabric/SwitchComponentView.h +0 -52
  886. package/Microsoft.ReactNative/Fabric/TextComponentView.cpp +0 -98
  887. package/Microsoft.ReactNative/Fabric/TextComponentView.h +0 -39
  888. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentDescriptor.h +0 -197
  889. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.cpp +0 -308
  890. package/Microsoft.ReactNative/Fabric/TextInput/WindowsTextInputComponentView.h +0 -52
  891. package/Microsoft.ReactNative/Fabric/ViewComponentView.cpp +0 -229
  892. package/Microsoft.ReactNative/Fabric/ViewComponentView.h +0 -56
  893. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.cpp +0 -46
  894. package/Microsoft.ReactNative/Fabric/platform/react/renderer/components/slider/SliderMeasurementsManager.h +0 -30
  895. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.h +0 -145
  896. package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +0 -344
  897. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/BaseTextProps.cpp +0 -313
  898. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/ViewProps.cpp +0 -455
  899. package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/PropsMacros.h +0 -91
  900. package/ReactCommon/TEMP_UntilReactCommonUpdate/yoga/yoga/CompactValue.h +0 -206
  901. package/codegen/NativeAsyncLocalStorageSpec.g.h +0 -111
  902. package/codegen/NativeAsyncSQLiteDBStorageSpec.g.h +0 -111
  903. package/codegen/NativeImagePickerIOSSpec.g.h +0 -79
  904. package/codegen/NativeJSDevSupportSpec.g.h +0 -57
  905. package/rntypes/BatchedBridge.d.ts +0 -23
  906. package/rntypes/Devtools.d.ts +0 -20
  907. package/rntypes/LaunchScreen.d.ts +0 -9
  908. package/rntypes/globals.d.ts +0 -497
  909. package/rntypes/index.d.ts +0 -9754
  910. package/rntypes/legacy-properties.d.ts +0 -238
  911. package/typings-index.d.ts +0 -19
  912. package/typings-index.js +0 -44
  913. package/typings-index.js.map +0 -1
@@ -0,0 +1,1076 @@
1
+
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT License.
4
+
5
+ #pragma once
6
+
7
+ #include "WindowsTextInputComponentView.h"
8
+
9
+ #include <Utils/ValueUtils.h>
10
+ #include <tom.h>
11
+ #include <unicode.h>
12
+ #include <winrt/Windows.UI.h>
13
+ #include "../CompositionHelpers.h"
14
+ #include "WindowsTextInputShadowNode.h"
15
+ #include "WindowsTextInputState.h"
16
+ #include "guid/msoGuid.h"
17
+
18
+ // convert a BSTR to a std::string.
19
+ std::string &BstrToStdString(const BSTR bstr, std::string &dst, int cp = CP_UTF8) {
20
+ if (!bstr) {
21
+ // define NULL functionality. I just clear the target.
22
+ dst.clear();
23
+ return dst;
24
+ }
25
+
26
+ // request content length in single-chars through a terminating
27
+ // nullchar in the BSTR. note: BSTR's support imbedded nullchars,
28
+ // so this will only convert through the first nullchar.
29
+ int res = WideCharToMultiByte(cp, 0, bstr, -1, NULL, 0, NULL, NULL);
30
+ if (res > 0) {
31
+ dst.resize(res);
32
+ WideCharToMultiByte(cp, 0, bstr, -1, &dst[0], res, NULL, NULL);
33
+ } else { // no content. clear target
34
+ dst.clear();
35
+ }
36
+ return dst;
37
+ }
38
+
39
+ // conversion with temp.
40
+ std::string BstrToStdString(BSTR bstr, int cp = CP_UTF8) {
41
+ std::string str;
42
+ BstrToStdString(bstr, str, cp);
43
+ return str;
44
+ }
45
+
46
+ MSO_CLASS_GUID(ITextHost, "13E670F4-1A5A-11cf-ABEB-00AA00B65EA1") // IID_ITextHost
47
+ MSO_CLASS_GUID(ITextServices, "8D33F740-CF58-11CE-A89D-00AA006CADC5") // IID_ITextServices
48
+ MSO_CLASS_GUID(ITextServices2, "8D33F741-CF58-11CE-A89D-00AA006CADC5") // IID_ITextServices2
49
+
50
+ namespace Microsoft::ReactNative {
51
+
52
+ // RichEdit doesn't handle us calling Draw during the middle of a TxTranslateMessage call.
53
+ WindowsTextInputComponentView::DrawBlock::DrawBlock(WindowsTextInputComponentView &view) : m_view(view) {
54
+ m_view.m_cDrawBlock++;
55
+ }
56
+
57
+ WindowsTextInputComponentView::DrawBlock::~DrawBlock() {
58
+ m_view.m_cDrawBlock--;
59
+ if (!m_view.m_cDrawBlock && m_view.m_needsRedraw) {
60
+ m_view.DrawText();
61
+ }
62
+ }
63
+
64
+ // Msftedit.dll vs "Riched20.dll"?
65
+
66
+ static HINSTANCE g_hInstRichEdit = nullptr;
67
+ static PCreateTextServices g_pfnCreateTextServices;
68
+
69
+ HRESULT HrEnsureRichEd20Loaded() noexcept {
70
+ if (g_hInstRichEdit == nullptr) {
71
+ g_hInstRichEdit = LoadLibrary(L"Msftedit.dll");
72
+ if (!g_hInstRichEdit)
73
+ return E_FAIL;
74
+
75
+ // Create the windowless control (text services object)
76
+ g_pfnCreateTextServices = (PCreateTextServices)GetProcAddress(g_hInstRichEdit, "CreateTextServices");
77
+ if (!g_pfnCreateTextServices)
78
+ return E_FAIL;
79
+
80
+ /*
81
+ // Calling the REExtendedRegisterClass() function is required for
82
+ // registering the REComboboxW and REListBoxW window classes.
83
+ PFNREGISTER pfnRegister = (PFNREGISTER)GetProcAddress(g_hInstRichEdit, "REExtendedRegisterClass");
84
+ if (pfnRegister) {
85
+ pfnRegister();
86
+ return S_OK;
87
+ } else
88
+ return E_FAIL;
89
+ */
90
+ }
91
+ return NOERROR;
92
+ }
93
+
94
+ struct CompTextHost : public winrt::implements<CompTextHost, ITextHost> {
95
+ CompTextHost(WindowsTextInputComponentView *outer) : m_outer(outer) {}
96
+
97
+ //@cmember Get the DC for the host
98
+ HDC TxGetDC() override {
99
+ assert(false);
100
+ return {};
101
+ }
102
+
103
+ //@cmember Release the DC gotten from the host
104
+ INT TxReleaseDC(HDC hdc) override {
105
+ assert(false);
106
+ return {};
107
+ }
108
+
109
+ //@cmember Show the scroll bar
110
+ BOOL TxShowScrollBar(INT fnBar, BOOL fShow) override {
111
+ assert(false);
112
+ return {};
113
+ }
114
+
115
+ //@cmember Enable the scroll bar
116
+ BOOL TxEnableScrollBar(INT fuSBFlags, INT fuArrowflags) override {
117
+ assert(false);
118
+ return {};
119
+ }
120
+
121
+ //@cmember Set the scroll range
122
+ BOOL TxSetScrollRange(INT fnBar, LONG nMinPos, INT nMaxPos, BOOL fRedraw) override {
123
+ assert(false);
124
+ return {};
125
+ }
126
+
127
+ //@cmember Set the scroll position
128
+ BOOL TxSetScrollPos(INT fnBar, INT nPos, BOOL fRedraw) override {
129
+ assert(false);
130
+ return {};
131
+ }
132
+
133
+ //@cmember InvalidateRect
134
+ void TxInvalidateRect(LPCRECT prc, BOOL fMode) override {
135
+ if (m_outer->m_drawing)
136
+ return;
137
+ m_outer->DrawText();
138
+ }
139
+
140
+ //@cmember Send a WM_PAINT to the window
141
+ void TxViewChange(BOOL fUpdate) override {
142
+ // When keyboard scrolling without scrollbar, TxInvalidateRect is not called.
143
+ // Instead TxViewChange is called with fUpdate = true
144
+ // if (fUpdate && !OnInnerViewerExtentChanged())
145
+ {
146
+ // If inner viewer size changed, a redraw will have be queued.
147
+ // If not, we need to redraw at least once here.
148
+ m_outer->DrawText();
149
+ }
150
+ }
151
+
152
+ //@cmember Create the caret
153
+ BOOL TxCreateCaret(HBITMAP hbmp, INT xWidth, INT yHeight) override {
154
+ m_outer->m_caretVisual.Size({static_cast<float>(xWidth), static_cast<float>(yHeight)});
155
+ return true;
156
+ }
157
+
158
+ //@cmember Show the caret
159
+ BOOL TxShowCaret(BOOL fShow) override {
160
+ m_outer->ShowCaret(fShow);
161
+ return true;
162
+ }
163
+
164
+ //@cmember Set the caret position
165
+ BOOL TxSetCaretPos(INT x, INT y) override {
166
+ if (x < 0 && y < 0) {
167
+ // RichEdit sends (-32000,-32000) when the caret is not currently visible.
168
+ return false;
169
+ }
170
+
171
+ m_outer->m_caretVisual.Position(
172
+ {x - (m_outer->m_layoutMetrics.frame.origin.x * m_outer->m_layoutMetrics.pointScaleFactor),
173
+ y - (m_outer->m_layoutMetrics.frame.origin.y * m_outer->m_layoutMetrics.pointScaleFactor)});
174
+ return true;
175
+ }
176
+
177
+ //@cmember Create a timer with the specified timeout
178
+ BOOL TxSetTimer(UINT idTimer, UINT uTimeout) override {
179
+ // TODO timers
180
+ // assert(false);
181
+ // return {};
182
+ return false;
183
+ }
184
+
185
+ //@cmember Destroy a timer
186
+ void TxKillTimer(UINT idTimer) override {
187
+ // TODO timers
188
+ }
189
+
190
+ //@cmember Scroll the content of the specified window's client area
191
+ void TxScrollWindowEx(
192
+ INT dx,
193
+ INT dy,
194
+ LPCRECT lprcScroll,
195
+ LPCRECT lprcClip,
196
+ HRGN hrgnUpdate,
197
+ LPRECT lprcUpdate,
198
+ UINT fuScroll) override {
199
+ assert(false);
200
+ }
201
+
202
+ //@cmember Get mouse capture
203
+ void TxSetCapture(BOOL fCapture) override {
204
+ // assert(false);
205
+ // TODO capture?
206
+ /*
207
+ if (fCapture) {
208
+ ::SetCapture(m_hwndHost);
209
+ } else {
210
+ ::ReleaseCapture();
211
+ }
212
+ */
213
+ }
214
+
215
+ //@cmember Set the focus to the text window
216
+ void TxSetFocus() override {
217
+ SetFocusedComponent(m_outer);
218
+ // assert(false);
219
+ // TODO focus
220
+ }
221
+
222
+ //@cmember Establish a new cursor shape
223
+ void TxSetCursor(HCURSOR hcur, BOOL fText) override {
224
+ assert(false);
225
+ }
226
+
227
+ //@cmember Converts screen coordinates of a specified point to the client coordinates
228
+ BOOL TxScreenToClient(LPPOINT lppt) override {
229
+ assert(false);
230
+ return {};
231
+ }
232
+
233
+ //@cmember Converts the client coordinates of a specified point to screen coordinates
234
+ BOOL TxClientToScreen(LPPOINT lppt) override {
235
+ assert(false);
236
+ return {};
237
+ }
238
+
239
+ //@cmember Request host to activate text services
240
+ HRESULT TxActivate(LONG *plOldState) override {
241
+ assert(false);
242
+ return {};
243
+ }
244
+
245
+ //@cmember Request host to deactivate text services
246
+ HRESULT TxDeactivate(LONG lNewState) override {
247
+ assert(false);
248
+ return {};
249
+ }
250
+
251
+ //@cmember Retrieves the coordinates of a window's client area
252
+ HRESULT TxGetClientRect(LPRECT prc) override {
253
+ *prc = m_outer->getClientRect();
254
+ return S_OK;
255
+ }
256
+
257
+ //@cmember Get the view rectangle relative to the inset
258
+ HRESULT TxGetViewInset(LPRECT prc) override {
259
+ // Inset is in HIMETRIC
260
+ constexpr float HmPerInchF = 2540.0f;
261
+ constexpr float PointsPerInch = 96.0f;
262
+ constexpr float dipToHm = HmPerInchF / PointsPerInch;
263
+
264
+ prc->left = static_cast<LONG>(m_outer->m_layoutMetrics.contentInsets.left * dipToHm);
265
+ prc->top = static_cast<LONG>(m_outer->m_layoutMetrics.contentInsets.top * dipToHm);
266
+ prc->bottom = static_cast<LONG>(m_outer->m_layoutMetrics.contentInsets.bottom * dipToHm);
267
+ prc->right = static_cast<LONG>(m_outer->m_layoutMetrics.contentInsets.right * dipToHm);
268
+
269
+ return NOERROR;
270
+ }
271
+
272
+ //@cmember Get the default character format for the text
273
+ HRESULT TxGetCharFormat(const CHARFORMATW **ppCF) override {
274
+ m_outer->UpdateCharFormat();
275
+
276
+ *ppCF = &(m_outer->m_cf);
277
+ return S_OK;
278
+ }
279
+
280
+ //@cmember Get the default paragraph format for the text
281
+ HRESULT TxGetParaFormat(const PARAFORMAT **ppPF) override {
282
+ m_outer->UpdateParaFormat();
283
+
284
+ *ppPF = &(m_outer->m_pf);
285
+ return S_OK;
286
+ }
287
+
288
+ //@cmember Get the background color for the window
289
+ COLORREF TxGetSysColor(int nIndex) override {
290
+ // if (/* !m_isDisabled || */ nIndex != COLOR_WINDOW && nIndex != COLOR_WINDOWTEXT && nIndex != COLOR_GRAYTEXT) {
291
+ // This window is either not disabled or the color isn't interesting
292
+ // in the disabled case.
293
+ COLORREF cr = (COLORREF)tomAutoColor;
294
+
295
+ switch (nIndex) {
296
+ case COLOR_WINDOWTEXT:
297
+ if (m_outer->m_props->textAttributes.foregroundColor)
298
+ return m_outer->m_props->textAttributes.foregroundColor.AsColorRefNoAlpha();
299
+ // cr = 0x000000FF;
300
+ break;
301
+
302
+ case COLOR_WINDOW:
303
+ if (m_outer->m_props->backgroundColor)
304
+ return m_outer->m_props->backgroundColor.AsColorRefNoAlpha();
305
+ break;
306
+ // case COLOR_HIGHLIGHT:
307
+ // cr = RGB(0, 0, 255);
308
+ // cr = 0x0000ffFF;
309
+ // break;
310
+
311
+ // case COLOR_HIGHLIGHTTEXT:
312
+ // cr = RGB(255, 0, 0);
313
+ // cr = 0xFFFFFFFF;
314
+ // break;
315
+
316
+ // case COLOR_GRAYTEXT:
317
+ // cr = RGB(128, 128, 128);
318
+ // cr = 0x777777FF;
319
+ // break;
320
+ }
321
+ return GetSysColor(nIndex);
322
+
323
+ // return GetSysColor(nIndex);
324
+ // assert(false);
325
+ // return 0xFF00FF00;
326
+
327
+ /*
328
+ // Disabled case. When the richedit control is disabled, both the placeholder text and input text should appear as
329
+ // disabled text.
330
+ if (COLOR_WINDOWTEXT == nIndex || COLOR_GRAYTEXT == nIndex) {
331
+ // Color of text for disabled window
332
+ return m_crDisabledText == (COLORREF)tomAutoColor ? MsoCrSysColorGet(COLOR_GRAYTEXT) : m_crDisabledText;
333
+ }
334
+
335
+ // Background color for disabled window
336
+ return m_crDisabledBackground == (COLORREF)tomAutoColor ? MsoCrSysColorGet(COLOR_3DFACE) : m_crDisabledBackground;
337
+ */
338
+ }
339
+
340
+ //@cmember Get the background (either opaque or transparent)
341
+ HRESULT TxGetBackStyle(TXTBACKSTYLE *pstyle) override {
342
+ *pstyle = TXTBACK_TRANSPARENT;
343
+ //*pstyle = TXTBACK_OPAQUE;
344
+ return S_OK;
345
+ }
346
+
347
+ //@cmember Get the maximum length for the text
348
+ HRESULT TxGetMaxLength(DWORD *plength) override {
349
+ auto length = m_outer->m_props->maxLength;
350
+ if (length > static_cast<decltype(m_outer->m_props->maxLength)>(std::numeric_limits<DWORD>::max())) {
351
+ length = std::numeric_limits<DWORD>::max();
352
+ }
353
+ *plength = static_cast<DWORD>(length);
354
+ return S_OK;
355
+ }
356
+
357
+ //@cmember Get the bits representing requested scroll bars for the window
358
+ HRESULT TxGetScrollBars(DWORD *pdwScrollBar) override {
359
+ // TODO support scrolling
360
+ *pdwScrollBar = 0;
361
+ return S_OK;
362
+ }
363
+
364
+ //@cmember Get the character to display for password input
365
+ HRESULT TxGetPasswordChar(_Out_ TCHAR *pch) override {
366
+ assert(false);
367
+ return {};
368
+ }
369
+
370
+ //@cmember Get the accelerator character
371
+ HRESULT TxGetAcceleratorPos(LONG *pcp) override {
372
+ assert(false);
373
+ return {};
374
+ }
375
+
376
+ //@cmember Get the native size
377
+ HRESULT TxGetExtent(LPSIZEL lpExtent) override {
378
+ return E_NOTIMPL;
379
+ // This shouldn't be implemented
380
+ }
381
+
382
+ //@cmember Notify host that default character format has changed
383
+ HRESULT OnTxCharFormatChange(const CHARFORMATW *pCF) override {
384
+ assert(false);
385
+ return {};
386
+ }
387
+
388
+ //@cmember Notify host that default paragraph format has changed
389
+ HRESULT OnTxParaFormatChange(const PARAFORMAT *pPF) override {
390
+ assert(false);
391
+ return {};
392
+ }
393
+
394
+ //@cmember Bulk access to bit properties
395
+ HRESULT TxGetPropertyBits(DWORD dwMask, DWORD *pdwBits) override {
396
+ DWORD dwProperties = TXTBIT_RICHTEXT | TXTBIT_WORDWRAP | TXTBIT_D2DDWRITE | TXTBIT_D2DSIMPLETYPOGRAPHY;
397
+ *pdwBits = dwProperties & dwMask;
398
+ return NOERROR;
399
+ }
400
+
401
+ //@cmember Notify host of events
402
+ HRESULT TxNotify(DWORD iNotify, void *pv) override {
403
+ // TODO
404
+
405
+ switch (iNotify) {
406
+ case EN_UPDATE:
407
+ if (!m_outer->m_drawing) {
408
+ m_outer->DrawText();
409
+ }
410
+ break;
411
+ case EN_CHANGE:
412
+ m_outer->OnTextUpdated();
413
+ break;
414
+ case EN_SELCHANGE: {
415
+ auto selChange = (SELCHANGE *)pv;
416
+ m_outer->OnSelectionChanged(selChange->chrg.cpMin, selChange->chrg.cpMax);
417
+ break;
418
+ }
419
+ }
420
+
421
+ return S_OK;
422
+ }
423
+
424
+ // East Asia Methods for getting the Input Context
425
+ HIMC TxImmGetContext() override {
426
+ assert(false);
427
+ return {};
428
+ }
429
+ void TxImmReleaseContext(HIMC himc) override {
430
+ assert(false);
431
+ }
432
+
433
+ //@cmember Returns HIMETRIC size of the control bar.
434
+ HRESULT TxGetSelectionBarWidth(LONG *lSelBarWidth) override {
435
+ *lSelBarWidth = 0;
436
+ return S_OK;
437
+ }
438
+
439
+ WindowsTextInputComponentView *m_outer;
440
+ };
441
+
442
+ facebook::react::AttributedString WindowsTextInputComponentView::getAttributedString() const {
443
+ // Use BaseTextShadowNode to get attributed string from children
444
+
445
+ auto childTextAttributes = facebook::react::TextAttributes::defaultTextAttributes();
446
+
447
+ childTextAttributes.apply(m_props->textAttributes);
448
+
449
+ auto attributedString = facebook::react::AttributedString{};
450
+ // auto attachments = facebook::react::BaseTextShadowNode::Attachments{};
451
+
452
+ // BaseTextShadowNode only gets children. We must detect and prepend text
453
+ // value attributes manually.
454
+ auto text = GetTextFromRichEdit();
455
+ // if (!m_props->text.empty()) {
456
+ if (!text.empty()) {
457
+ auto textAttributes = facebook::react::TextAttributes::defaultTextAttributes();
458
+ textAttributes.apply(m_props->textAttributes);
459
+ auto fragment = facebook::react::AttributedString::Fragment{};
460
+ fragment.string = text;
461
+ // fragment.string = m_props->text;
462
+ fragment.textAttributes = textAttributes;
463
+ // If the TextInput opacity is 0 < n < 1, the opacity of the TextInput and
464
+ // text value's background will stack. This is a hack/workaround to prevent
465
+ // that effect.
466
+ fragment.textAttributes.backgroundColor = facebook::react::clearColor();
467
+ // fragment.parentShadowView = facebook::react::ShadowView(*this);
468
+ attributedString.prependFragment(fragment);
469
+ }
470
+
471
+ return attributedString;
472
+ }
473
+
474
+ WindowsTextInputComponentView::WindowsTextInputComponentView(
475
+ const winrt::Microsoft::ReactNative::Composition::ICompositionContext &compContext,
476
+ facebook::react::Tag tag,
477
+ winrt::Microsoft::ReactNative::ReactContext const &reactContext)
478
+ : Super(compContext, tag), m_context(reactContext) {
479
+ static auto const defaultProps = std::make_shared<facebook::react::WindowsTextInputProps const>();
480
+ m_props = defaultProps;
481
+
482
+ /*
483
+ m_textChangedRevoker =
484
+ m_element.TextChanged(winrt::auto_revoke, [this](auto sender, xaml::Controls::TextChangedEventArgs args) {
485
+ auto data = m_state->getData();
486
+ data.attributedString = getAttributedString();
487
+ data.mostRecentEventCount = m_nativeEventCount;
488
+ m_state->updateState(std::move(data));
489
+
490
+ if (m_eventEmitter && !m_comingFromJS) {
491
+ auto emitter = std::static_pointer_cast<const facebook::react::WindowsTextInputEventEmitter>(m_eventEmitter);
492
+ facebook::react::WindowsTextInputEventEmitter::OnChange onChangeArgs;
493
+ onChangeArgs.text = winrt::to_string(m_element.Text());
494
+ onChangeArgs.eventCount = ++m_nativeEventCount;
495
+ emitter->onChange(onChangeArgs);
496
+ }
497
+ });
498
+
499
+ m_SelectionChangedRevoker = m_element.SelectionChanged(winrt::auto_revoke, [this](auto sender, auto args) {
500
+ if (m_eventEmitter) {
501
+ auto emitter = std::static_pointer_cast<const facebook::react::WindowsTextInputEventEmitter>(m_eventEmitter);
502
+ facebook::react::WindowsTextInputEventEmitter::OnSelectionChange onSelectionChangeArgs;
503
+ onSelectionChangeArgs.selection.start = m_element.SelectionStart();
504
+ onSelectionChangeArgs.selection.end = m_element.SelectionStart() + m_element.SelectionLength();
505
+ emitter->onSelectionChange(onSelectionChangeArgs);
506
+ }
507
+ });
508
+ */
509
+ }
510
+
511
+ void WindowsTextInputComponentView::handleCommand(std::string const &commandName, folly::dynamic const &arg) noexcept {
512
+ if (commandName == "setTextAndSelection") {
513
+ auto eventCount = arg[0].asInt();
514
+
515
+ if (eventCount >= m_nativeEventCount) {
516
+ auto text = arg[1].asString();
517
+ auto begin = arg[2].asInt();
518
+ auto end = arg[3].asInt();
519
+ m_comingFromJS = true;
520
+ UpdateText(text);
521
+
522
+ SELCHANGE sc;
523
+ memset(&sc, 0, sizeof(sc));
524
+ sc.chrg.cpMin = static_cast<LONG>(begin);
525
+ sc.chrg.cpMax = static_cast<LONG>(end);
526
+ sc.seltyp = (begin == end) ? SEL_EMPTY : SEL_TEXT;
527
+
528
+ LRESULT res;
529
+ /*
530
+ winrt::check_hresult(m_textServices->TxSendMessage(
531
+ EM_SELCHANGE, 0 , reinterpret_cast<WPARAM>(&sc), &res));
532
+ */
533
+ winrt::check_hresult(
534
+ m_textServices->TxSendMessage(EM_SETSEL, static_cast<WPARAM>(begin), static_cast<LPARAM>(end), &res));
535
+
536
+ m_comingFromJS = false;
537
+ }
538
+ } else {
539
+ Super::handleCommand(commandName, arg);
540
+ }
541
+ }
542
+
543
+ int64_t WindowsTextInputComponentView::SendMessage(uint32_t msg, uint64_t wParam, int64_t lParam) noexcept {
544
+ if (m_textServices) {
545
+ LRESULT lresult;
546
+ DrawBlock db(*this);
547
+ auto hr = m_textServices->TxSendMessage(msg, static_cast<WPARAM>(wParam), static_cast<LPARAM>(lParam), &lresult);
548
+ if (hr >= 0 && lresult) {
549
+ return lresult;
550
+ }
551
+ }
552
+ return Super::SendMessage(msg, wParam, lParam);
553
+ }
554
+
555
+ std::vector<facebook::react::ComponentDescriptorProvider>
556
+ WindowsTextInputComponentView::supplementalComponentDescriptorProviders() noexcept {
557
+ return {};
558
+ }
559
+
560
+ void WindowsTextInputComponentView::parent(IComponentView *parent) noexcept {
561
+ Super::parent(parent);
562
+
563
+ if (!parent && GetFocusedComponent() == this) {
564
+ SetFocusedComponent(nullptr); // TODO need move focus logic - where should focus go?
565
+ }
566
+ }
567
+
568
+ void WindowsTextInputComponentView::mountChildComponentView(
569
+ const IComponentView &childComponentView,
570
+ uint32_t index) noexcept {
571
+ assert(false);
572
+ // m_element.Children().InsertAt(index, v.Element());
573
+ }
574
+
575
+ void WindowsTextInputComponentView::unmountChildComponentView(
576
+ const IComponentView &childComponentView,
577
+ uint32_t index) noexcept {
578
+ assert(false);
579
+ // m_element.Children().RemoveAt(index);
580
+ }
581
+
582
+ void WindowsTextInputComponentView::onFocusLost() noexcept {
583
+ Super::onFocusLost();
584
+ SendMessage(WM_KILLFOCUS, 0, 0);
585
+ }
586
+
587
+ void WindowsTextInputComponentView::onFocusGained() noexcept {
588
+ Super::onFocusGained();
589
+ SendMessage(WM_SETFOCUS, 0, 0);
590
+ }
591
+
592
+ void WindowsTextInputComponentView::updateProps(
593
+ facebook::react::Props::Shared const &props,
594
+ facebook::react::Props::Shared const &oldProps) noexcept {
595
+ const auto &oldTextInputProps = *std::static_pointer_cast<const facebook::react::WindowsTextInputProps>(m_props);
596
+ const auto &newTextInputProps = *std::static_pointer_cast<const facebook::react::WindowsTextInputProps>(props);
597
+
598
+ DWORD propBitsMask = 0;
599
+ DWORD propBits = 0;
600
+
601
+ ensureVisual();
602
+
603
+ updateBorderProps(oldTextInputProps, newTextInputProps);
604
+
605
+ if (!facebook::react::floatEquality(
606
+ oldTextInputProps.textAttributes.fontSize, newTextInputProps.textAttributes.fontSize) ||
607
+ oldTextInputProps.textAttributes.fontWeight != newTextInputProps.textAttributes.fontWeight) {
608
+ propBitsMask |= TXTBIT_CHARFORMATCHANGE;
609
+ propBits |= TXTBIT_CHARFORMATCHANGE;
610
+ }
611
+
612
+ /*
613
+ if (oldTextInputProps.textAttributes.foregroundColor != newTextInputProps.textAttributes.foregroundColor) {
614
+ if (newTextInputProps.textAttributes.foregroundColor)
615
+ m_element.Foreground(newTextInputProps.textAttributes.foregroundColor.AsWindowsBrush());
616
+ else
617
+ m_element.ClearValue(::xaml::Controls::TextBlock::ForegroundProperty());
618
+ }
619
+
620
+ if (oldTextInputProps.textAttributes.fontStyle != newTextInputProps.textAttributes.fontStyle) {
621
+ switch (newTextInputProps.textAttributes.fontStyle.value_or(facebook::react::FontStyle::Normal)) {
622
+ case facebook::react::FontStyle::Italic:
623
+ m_element.FontStyle(winrt::Windows::UI::Text::FontStyle::Italic);
624
+ break;
625
+ case facebook::react::FontStyle::Normal:
626
+ m_element.FontStyle(winrt::Windows::UI::Text::FontStyle::Normal);
627
+ break;
628
+ case facebook::react::FontStyle::Oblique:
629
+ m_element.FontStyle(winrt::Windows::UI::Text::FontStyle::Oblique);
630
+ break;
631
+ default:
632
+ assert(false);
633
+ }
634
+ }
635
+
636
+ if (oldTextInputProps.textAttributes.fontFamily != newTextInputProps.textAttributes.fontFamily) {
637
+ if (newTextInputProps.textAttributes.fontFamily.empty())
638
+ m_element.FontFamily(xaml::Media::FontFamily(L"Segoe UI"));
639
+ else
640
+ m_element.FontFamily(xaml::Media::FontFamily(
641
+ Microsoft::Common::Unicode::Utf8ToUtf16(newTextInputProps.textAttributes.fontFamily)));
642
+ }
643
+
644
+ if (oldTextInputProps.allowFontScaling != newTextInputProps.allowFontScaling) {
645
+ m_element.IsTextScaleFactorEnabled(newTextInputProps.allowFontScaling);
646
+ }
647
+
648
+ if (oldTextInputProps.placeholder != newTextInputProps.placeholder) {
649
+ m_element.PlaceholderText(winrt::to_hstring(newTextInputProps.placeholder));
650
+ }
651
+
652
+ if (oldTextInputProps.editable != newTextInputProps.editable) {
653
+ m_element.IsReadOnly(!newTextInputProps.editable);
654
+ }
655
+
656
+
657
+ if (oldTextInputProps.multiline != newTextInputProps.multiline) {
658
+ m_element.TextWrapping(newTextInputProps.multiline ? xaml::TextWrapping::Wrap : xaml::TextWrapping::NoWrap);
659
+ m_element.AcceptsReturn(newTextInputProps.multiline);
660
+ }
661
+
662
+
663
+ if (oldTextInputProps.selection.start != newTextInputProps.selection.start ||
664
+ oldTextInputProps.selection.end != newTextInputProps.selection.end) {
665
+ m_element.Select(
666
+ newTextInputProps.selection.start, newTextInputProps.selection.end - newTextInputProps.selection.start);
667
+ }
668
+
669
+ if (oldTextInputProps.autoCapitalize != newTextInputProps.autoCapitalize) {
670
+ if (newTextInputProps.autoCapitalize == "characters") {
671
+ m_element.CharacterCasing(xaml::Controls::CharacterCasing::Upper);
672
+ } else { // anything else turns off autoCap (should be "None" but
673
+ // we don't support "words"/"senetences" yet)
674
+ m_element.CharacterCasing(xaml::Controls::CharacterCasing::Normal);
675
+ }
676
+ }
677
+
678
+ if (oldViewProps.backgroundColor != newViewProps.backgroundColor) {
679
+ auto color = *newViewProps.backgroundColor;
680
+
681
+ if (newViewProps.backgroundColor) {
682
+ m_element.ViewBackground(SolidColorBrushFrom(newViewProps.backgroundColor));
683
+ } else {
684
+ m_element.ClearValue(winrt::Microsoft::ReactNative::ViewPanel::ViewBackgroundProperty());
685
+ }
686
+ }
687
+ */
688
+
689
+ m_props = std::static_pointer_cast<facebook::react::WindowsTextInputProps const>(props);
690
+
691
+ if (propBitsMask != 0) {
692
+ DrawBlock db(*this);
693
+ winrt::check_hresult(m_textServices->OnTxPropertyBitsChange(propBitsMask, propBits));
694
+ }
695
+ }
696
+
697
+ void WindowsTextInputComponentView::updateState(
698
+ facebook::react::State::Shared const &state,
699
+ facebook::react::State::Shared const &oldState) noexcept {
700
+ m_state = std::static_pointer_cast<facebook::react::WindowsTextInputShadowNode::ConcreteState const>(state);
701
+
702
+ if (!m_state) {
703
+ assert(false && "State is `null` for <TextInput> component.");
704
+ // m_element.Text(L"");
705
+ return;
706
+ }
707
+
708
+ auto data = m_state->getData();
709
+
710
+ if (!oldState) {
711
+ m_mostRecentEventCount = m_state->getData().mostRecentEventCount;
712
+ }
713
+
714
+ if (m_mostRecentEventCount == m_state->getData().mostRecentEventCount) {
715
+ m_comingFromState = true;
716
+ // Only handle single/empty fragments right now -- ignore the other fragments
717
+
718
+ LRESULT res;
719
+ CHARRANGE cr;
720
+ cr.cpMin = cr.cpMax = 0;
721
+ winrt::check_hresult(m_textServices->TxSendMessage(EM_EXGETSEL, 0, reinterpret_cast<LPARAM>(&cr), &res));
722
+
723
+ UpdateText(
724
+ m_state->getData().attributedString.getFragments().size()
725
+ ? m_state->getData().attributedString.getFragments()[0].string
726
+ : "");
727
+
728
+ winrt::check_hresult(
729
+ m_textServices->TxSendMessage(EM_SETSEL, static_cast<WPARAM>(cr.cpMin), static_cast<LPARAM>(cr.cpMax), &res));
730
+
731
+ m_comingFromState = false;
732
+ }
733
+ }
734
+
735
+ void WindowsTextInputComponentView::UpdateText(const std::string &str) noexcept {
736
+ SETTEXTEX stt;
737
+ memset(&stt, 0, sizeof(stt));
738
+ stt.flags = ST_DEFAULT;
739
+ stt.codepage = CP_UTF8;
740
+ LRESULT res;
741
+
742
+ CHARRANGE cr;
743
+ cr.cpMin = cr.cpMax = 0;
744
+ winrt::check_hresult(m_textServices->TxSendMessage(EM_EXGETSEL, 0, reinterpret_cast<LPARAM>(&cr), &res));
745
+
746
+ winrt::check_hresult(m_textServices->TxSendMessage(
747
+ EM_SETTEXTEX, reinterpret_cast<WPARAM>(&stt), reinterpret_cast<LPARAM>(str.c_str()), &res));
748
+
749
+ winrt::check_hresult(m_textServices->TxSendMessage(EM_EXGETSEL, 0, reinterpret_cast<LPARAM>(&cr), &res));
750
+ }
751
+
752
+ void WindowsTextInputComponentView::updateLayoutMetrics(
753
+ facebook::react::LayoutMetrics const &layoutMetrics,
754
+ facebook::react::LayoutMetrics const &oldLayoutMetrics) noexcept {
755
+ // Set Position & Size Properties
756
+
757
+ if ((layoutMetrics.displayType != m_layoutMetrics.displayType)) {
758
+ m_visual.IsVisible(layoutMetrics.displayType != facebook::react::DisplayType::None);
759
+ }
760
+
761
+ if ((layoutMetrics.pointScaleFactor != m_layoutMetrics.pointScaleFactor)) {
762
+ LRESULT res;
763
+ winrt::check_hresult(m_textServices->TxSendMessage(
764
+ (WM_USER + 328), // EM_SETDPI
765
+ static_cast<WPARAM>(layoutMetrics.pointScaleFactor * 96.0f),
766
+ static_cast<LPARAM>(layoutMetrics.pointScaleFactor * 96.0f),
767
+ &res));
768
+ }
769
+
770
+ updateBorderLayoutMetrics(layoutMetrics, *m_props);
771
+
772
+ m_layoutMetrics = layoutMetrics;
773
+
774
+ // TODO should ceil?
775
+ unsigned int newWidth = static_cast<unsigned int>(layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor);
776
+ unsigned int newHeight = static_cast<unsigned int>(layoutMetrics.frame.size.height * layoutMetrics.pointScaleFactor);
777
+
778
+ if (newWidth != m_imgWidth || newHeight != m_imgHeight) {
779
+ m_drawingSurface = nullptr; // Invalidate surface if we get a size change
780
+ }
781
+
782
+ m_imgWidth = newWidth;
783
+ m_imgHeight = newHeight;
784
+
785
+ UpdateCenterPropertySet();
786
+ m_visual.Size(
787
+ {layoutMetrics.frame.size.width * layoutMetrics.pointScaleFactor,
788
+ layoutMetrics.frame.size.height * layoutMetrics.pointScaleFactor});
789
+ m_visual.Offset({
790
+ layoutMetrics.frame.origin.x * layoutMetrics.pointScaleFactor,
791
+ layoutMetrics.frame.origin.y * layoutMetrics.pointScaleFactor,
792
+ 0.0f,
793
+ });
794
+ }
795
+
796
+ // When we are notified by RichEdit that the text changed, we need to notify JS
797
+ void WindowsTextInputComponentView::OnTextUpdated() noexcept {
798
+ auto data = m_state->getData();
799
+ // auto newAttributedString = getAttributedString();
800
+ // if (data.attributedString == newAttributedString)
801
+ // return;
802
+ data.attributedString = getAttributedString();
803
+ data.mostRecentEventCount = m_nativeEventCount;
804
+ m_state->updateState(std::move(data));
805
+
806
+ if (m_eventEmitter && !m_comingFromJS) {
807
+ auto emitter = std::static_pointer_cast<const facebook::react::WindowsTextInputEventEmitter>(m_eventEmitter);
808
+ facebook::react::WindowsTextInputEventEmitter::OnChange onChangeArgs;
809
+ onChangeArgs.text = GetTextFromRichEdit();
810
+ onChangeArgs.eventCount = ++m_nativeEventCount;
811
+ emitter->onChange(onChangeArgs);
812
+ }
813
+ }
814
+
815
+ void WindowsTextInputComponentView::OnSelectionChanged(LONG start, LONG end) noexcept {
816
+ if (m_eventEmitter /* && !m_comingFromJS ?? */) {
817
+ auto emitter = std::static_pointer_cast<const facebook::react::WindowsTextInputEventEmitter>(m_eventEmitter);
818
+ facebook::react::WindowsTextInputEventEmitter::OnSelectionChange onSelectionChangeArgs;
819
+ onSelectionChangeArgs.selection.start = start;
820
+ onSelectionChangeArgs.selection.end = end;
821
+ emitter->onSelectionChange(onSelectionChangeArgs);
822
+ }
823
+ }
824
+
825
+ std::string WindowsTextInputComponentView::GetTextFromRichEdit() const noexcept {
826
+ if (!m_textServices)
827
+ return {};
828
+
829
+ BSTR bstr;
830
+ winrt::check_hresult(m_textServices->TxGetText(&bstr));
831
+ auto str = BstrToStdString(bstr);
832
+
833
+ // JS gets confused by the \r\0 ending
834
+ if (*(str.end() - 1) == '\0') {
835
+ str.pop_back();
836
+ }
837
+ if (*(str.end() - 1) == '\r') {
838
+ str.pop_back();
839
+ }
840
+ SysFreeString(bstr);
841
+ return str;
842
+ }
843
+
844
+ void WindowsTextInputComponentView::finalizeUpdates(RNComponentViewUpdateMask updateMask) noexcept {
845
+ // m_element.FinalizeProperties();
846
+
847
+ ensureDrawingSurface();
848
+ }
849
+ void WindowsTextInputComponentView::prepareForRecycle() noexcept {}
850
+ facebook::react::Props::Shared WindowsTextInputComponentView::props() noexcept {
851
+ return m_props;
852
+ }
853
+
854
+ void WindowsTextInputComponentView::UpdateCharFormat() noexcept {
855
+ CHARFORMAT2W cfNew = {0};
856
+ // Set CHARFORMAT structure
857
+ cfNew.cbSize = sizeof(CHARFORMAT2W);
858
+
859
+ // ElementFontDetails fontDetails;
860
+ // GetFontDetails(fontDetails);
861
+
862
+ // Cache foreground color instead of setting in char format.
863
+ // This will make RichEdit call us back for the colors.
864
+ // if (fontDetails.HasColor) {
865
+ // m_crText = RemoveAlpha(fontDetails.FontColor);
866
+ // }
867
+
868
+ // set font face
869
+ // cfNew.dwMask |= CFM_FACE;
870
+ // NetUIWzCchCopy(cfNew.szFaceName, _countof(cfNew.szFaceName), fontDetails.FontName.c_str());
871
+ // cfNew.bPitchAndFamily = FF_DONTCARE;
872
+
873
+ // set font size -- 15 to convert twips to pt
874
+ float fontSize = m_props->textAttributes.fontSize;
875
+ if (std::isnan(fontSize))
876
+ fontSize = facebook::react::TextAttributes::defaultTextAttributes().fontSize;
877
+ // TODO get fontSize from m_props->textAttributes, or defaultTextAttributes, or fragment?
878
+ cfNew.dwMask |= CFM_SIZE;
879
+ cfNew.yHeight = static_cast<LONG>(fontSize * 15);
880
+
881
+ // set bold
882
+ cfNew.dwMask |= CFM_WEIGHT;
883
+ cfNew.wWeight = m_props->textAttributes.fontWeight ? static_cast<WORD>(*m_props->textAttributes.fontWeight)
884
+ : DWRITE_FONT_WEIGHT_NORMAL;
885
+
886
+ // set font style
887
+ // cfNew.dwMask |= (CFM_ITALIC | CFM_STRIKEOUT | CFM_UNDERLINE);
888
+ // int dFontStyle = fontDetails.FontStyle;
889
+ // if (dFontStyle & FS_Italic) {
890
+ // cfNew.dwEffects |= CFE_ITALIC;
891
+ // }
892
+ // if (dFontStyle & FS_StrikeOut) {
893
+ // cfNew.dwEffects |= CFE_STRIKEOUT;
894
+ //}
895
+ // if (dFontStyle & FS_Underline) {
896
+ // cfNew.dwEffects |= CFE_UNDERLINE;
897
+ // }
898
+
899
+ // set char offset
900
+ cfNew.dwMask |= CFM_OFFSET;
901
+ cfNew.yOffset = 0;
902
+
903
+ // set charset
904
+ cfNew.dwMask |= CFM_CHARSET;
905
+ cfNew.bCharSet = DEFAULT_CHARSET;
906
+
907
+ m_cf = cfNew;
908
+ }
909
+
910
+ void WindowsTextInputComponentView::UpdateParaFormat() noexcept {
911
+ ZeroMemory(&m_pf, sizeof(m_pf));
912
+
913
+ m_pf.cbSize = sizeof(PARAFORMAT2);
914
+ m_pf.dwMask = PFM_ALL;
915
+
916
+ m_pf.wAlignment = PFA_LEFT;
917
+
918
+ m_pf.cTabCount = 1;
919
+ m_pf.rgxTabs[0] = lDefaultTab;
920
+
921
+ /*
922
+ if (m_spcontroller->IsCurrentReadingOrderRTL())
923
+ {
924
+ m_pf.dwMask |= PFM_RTLPARA;
925
+ m_pf.wEffects |= PFE_RTLPARA;
926
+ }
927
+ */
928
+ }
929
+
930
+ void WindowsTextInputComponentView::OnRenderingDeviceLost() noexcept {
931
+ DrawText();
932
+ }
933
+
934
+ void WindowsTextInputComponentView::ensureDrawingSurface() noexcept {
935
+ assert(m_context.UIDispatcher().HasThreadAccess());
936
+
937
+ if (!m_drawingSurface) {
938
+ m_drawingSurface = m_compContext.CreateDrawingSurface(
939
+ {static_cast<float>(m_imgWidth), static_cast<float>(m_imgHeight)},
940
+ winrt::Windows::Graphics::DirectX::DirectXPixelFormat::B8G8R8A8UIntNormalized,
941
+ winrt::Windows::Graphics::DirectX::DirectXAlphaMode::Premultiplied);
942
+
943
+ auto rcClient = getClientRect();
944
+ winrt::check_hresult(m_textServices->OnTxInPlaceActivate(&rcClient));
945
+
946
+ LRESULT lresult;
947
+ winrt::check_hresult(
948
+ m_textServices->TxSendMessage(EM_SETEVENTMASK, 0, ENM_CHANGE | ENM_SELCHANGE | ENM_ENDCOMPOSITION, &lresult));
949
+
950
+ DrawText();
951
+
952
+ auto surfaceBrush = m_compContext.CreateSurfaceBrush(m_drawingSurface);
953
+ surfaceBrush.HorizontalAlignmentRatio(0.f);
954
+ surfaceBrush.VerticalAlignmentRatio(0.f);
955
+ surfaceBrush.Stretch(winrt::Microsoft::ReactNative::Composition::CompositionStretch::None);
956
+ m_visual.Brush(surfaceBrush);
957
+ }
958
+ }
959
+
960
+ void WindowsTextInputComponentView::ShowCaret(bool show) noexcept {
961
+ ensureVisual();
962
+ m_caretVisual.IsVisible(show);
963
+ }
964
+
965
+ void WindowsTextInputComponentView::DrawText() noexcept {
966
+ m_needsRedraw = true;
967
+ if (m_cDrawBlock) {
968
+ return;
969
+ }
970
+
971
+ if (!m_drawingSurface)
972
+ return;
973
+
974
+ // Begin our update of the surface pixels. If this is our first update, we are required
975
+ // to specify the entire surface, which nullptr is shorthand for (but, as it works out,
976
+ // any time we make an update we touch the entire surface, so we always pass nullptr).
977
+ winrt::com_ptr<ID2D1DeviceContext> d2dDeviceContext;
978
+ POINT offset;
979
+
980
+ assert(m_context.UIDispatcher().HasThreadAccess());
981
+
982
+ winrt::com_ptr<Composition::ICompositionDrawingSurfaceInterop> drawingSurfaceInterop;
983
+ m_drawingSurface.as(drawingSurfaceInterop);
984
+
985
+ m_drawing = true;
986
+ if (CheckForDeviceRemoved(drawingSurfaceInterop->BeginDraw(d2dDeviceContext.put(), &offset))) {
987
+ d2dDeviceContext->Clear(D2D1::ColorF(D2D1::ColorF::Black, 0.0f));
988
+ assert(d2dDeviceContext->GetUnitMode() == D2D1_UNIT_MODE_DIPS);
989
+ const auto dpi = m_layoutMetrics.pointScaleFactor * 96.0f;
990
+ float oldDpiX, oldDpiY;
991
+ d2dDeviceContext->GetDpi(&oldDpiX, &oldDpiY);
992
+ d2dDeviceContext->SetDpi(dpi, dpi);
993
+
994
+ RECTL rc{
995
+ static_cast<LONG>(offset.x),
996
+ static_cast<LONG>(offset.y),
997
+ static_cast<LONG>(offset.x) + static_cast<LONG>(m_imgWidth),
998
+ static_cast<LONG>(offset.y) + static_cast<LONG>(m_imgHeight)};
999
+
1000
+ RECT rcClient{
1001
+ static_cast<LONG>(offset.x),
1002
+ static_cast<LONG>(offset.y),
1003
+ static_cast<LONG>(offset.x) + static_cast<LONG>(m_imgWidth),
1004
+ static_cast<LONG>(offset.y) + static_cast<LONG>(m_imgHeight)};
1005
+
1006
+ winrt::check_hresult(m_textServices->OnTxInPlaceActivate(&rcClient));
1007
+
1008
+ // TODO keep track of proper invalid rect
1009
+ auto hrDraw = m_textServices->TxDrawD2D(d2dDeviceContext.get(), &rc, nullptr, TXTVIEW_ACTIVE);
1010
+ winrt::check_hresult(hrDraw);
1011
+
1012
+ // restore dpi state
1013
+ d2dDeviceContext->SetDpi(oldDpiX, oldDpiY);
1014
+
1015
+ // Our update is done. EndDraw never indicates rendering device removed, so any
1016
+ // failure here is unexpected and, therefore, fatal.
1017
+ auto hrEndDraw = drawingSurfaceInterop->EndDraw();
1018
+ winrt::check_hresult(hrEndDraw);
1019
+ }
1020
+ m_drawing = false;
1021
+ m_needsRedraw = false;
1022
+ }
1023
+
1024
+ facebook::react::Tag WindowsTextInputComponentView::hitTest(facebook::react::Point pt, facebook::react::Point &localPt)
1025
+ const noexcept {
1026
+ facebook::react::Point ptLocal{pt.x - m_layoutMetrics.frame.origin.x, pt.y - m_layoutMetrics.frame.origin.y};
1027
+
1028
+ facebook::react::Tag targetTag;
1029
+
1030
+ /*
1031
+ if ((m_props.pointerEvents == facebook::react::PointerEventsMode::Auto ||
1032
+ m_props.pointerEvents == facebook::react::PointerEventsMode::BoxNone) && std::any_of(m_children.rbegin(),
1033
+ m_children.rend(), [&targetTag, &ptLocal, &localPt](auto child) { targetTag = static_cast<const
1034
+ CompositionBaseComponentView
1035
+ *>(child)->hitTest(ptLocal, localPt); return targetTag != -1;
1036
+ }))
1037
+ return targetTag;
1038
+ */
1039
+
1040
+ if ((m_props->pointerEvents == facebook::react::PointerEventsMode::Auto ||
1041
+ m_props->pointerEvents == facebook::react::PointerEventsMode::BoxOnly) &&
1042
+ ptLocal.x >= 0 && ptLocal.x <= m_layoutMetrics.frame.size.width && ptLocal.y >= 0 &&
1043
+ ptLocal.y <= m_layoutMetrics.frame.size.height) {
1044
+ localPt = ptLocal;
1045
+ return tag();
1046
+ }
1047
+
1048
+ return -1;
1049
+ }
1050
+
1051
+ facebook::react::SharedTouchEventEmitter WindowsTextInputComponentView::touchEventEmitter() noexcept {
1052
+ return m_eventEmitter;
1053
+ }
1054
+
1055
+ void WindowsTextInputComponentView::ensureVisual() noexcept {
1056
+ if (!m_visual) {
1057
+ HrEnsureRichEd20Loaded();
1058
+ m_visual = m_compContext.CreateSpriteVisual();
1059
+ m_textHost = winrt::make<CompTextHost>(this);
1060
+ winrt::com_ptr<IUnknown> spUnk;
1061
+ winrt::check_hresult(g_pfnCreateTextServices(nullptr, m_textHost.get(), spUnk.put()));
1062
+ spUnk.as(m_textServices);
1063
+ }
1064
+
1065
+ if (!m_caretVisual) {
1066
+ m_caretVisual = m_compContext.CreateCaretVisual();
1067
+ m_visual.InsertAt(m_caretVisual.InnerVisual(), 0);
1068
+ m_caretVisual.IsVisible(false);
1069
+ }
1070
+ }
1071
+
1072
+ winrt::Microsoft::ReactNative::Composition::IVisual WindowsTextInputComponentView::Visual() const noexcept {
1073
+ return m_visual;
1074
+ }
1075
+
1076
+ } // namespace Microsoft::ReactNative