react-native-tvos 0.83.6-0 → 0.83.10-0

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 (208) hide show
  1. package/Libraries/ActionSheetIOS/React-RCTActionSheet.podspec +1 -1
  2. package/Libraries/Animated/components/AnimatedScrollView.js +1 -1
  3. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +1 -1
  4. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  5. package/Libraries/Components/Button.js +2 -2
  6. package/Libraries/Components/ScrollView/ScrollView.d.ts +1 -1
  7. package/Libraries/Components/ScrollView/ScrollView.js +1 -1
  8. package/Libraries/Components/TV/TVViewPropTypes.js +9 -0
  9. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +1 -1
  10. package/Libraries/Components/TextInput/TextInput.flow.js +1 -1
  11. package/Libraries/Components/Touchable/Touchable.d.ts +1 -1
  12. package/Libraries/Components/View/View.js +7 -3
  13. package/Libraries/Components/View/ViewAccessibility.d.ts +1 -1
  14. package/Libraries/Components/View/ViewAccessibility.js +1 -1
  15. package/Libraries/Core/ReactNativeVersion.js +1 -1
  16. package/Libraries/Core/Timers/JSTimers.js +1 -1
  17. package/Libraries/Core/setUpNavigator.js +1 -1
  18. package/Libraries/EventEmitter/RCTNativeAppEventEmitter.d.ts +1 -1
  19. package/Libraries/FBLazyVector/FBLazyVector.podspec +1 -1
  20. package/Libraries/Image/ImageSource.d.ts +1 -1
  21. package/Libraries/Image/RCTImageLoader.mm +1 -1
  22. package/Libraries/Image/React-RCTImage.podspec +1 -1
  23. package/Libraries/Interaction/PanResponder.js +1 -1
  24. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  25. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  26. package/Libraries/NativeComponent/TVViewConfig.js +1 -0
  27. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  28. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  29. package/Libraries/Renderer/README.md +2 -2
  30. package/Libraries/Required/RCTRequired.podspec +1 -1
  31. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  32. package/Libraries/Text/React-RCTText.podspec +1 -1
  33. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  34. package/Libraries/Utilities/PolyfillFunctions.js +1 -1
  35. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  36. package/README-core.md +6 -6
  37. package/README.md +13 -1
  38. package/React/Base/RCTVersion.m +1 -1
  39. package/React/CoreModules/RCTJscSafeUrl+Internal.h +23 -0
  40. package/React/CoreModules/RCTJscSafeUrl.mm +38 -0
  41. package/React/CoreModules/RCTRedBox+Internal.h +42 -0
  42. package/React/CoreModules/RCTRedBox.mm +30 -471
  43. package/React/CoreModules/RCTRedBox2AnsiParser+Internal.h +22 -0
  44. package/React/CoreModules/RCTRedBox2AnsiParser.mm +55 -0
  45. package/React/CoreModules/RCTRedBox2Controller+Internal.h +34 -0
  46. package/React/CoreModules/RCTRedBox2Controller.mm +764 -0
  47. package/React/CoreModules/RCTRedBox2ErrorParser+Internal.h +46 -0
  48. package/React/CoreModules/RCTRedBox2ErrorParser.mm +57 -0
  49. package/React/CoreModules/RCTRedBoxController+Internal.h +31 -0
  50. package/React/CoreModules/RCTRedBoxController.mm +447 -0
  51. package/React/CoreModules/RCTRedBoxHMRClient+Internal.h +26 -0
  52. package/React/CoreModules/RCTRedBoxHMRClient.mm +125 -0
  53. package/React/CoreModules/React-CoreModules.podspec +2 -1
  54. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +24 -0
  55. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +49 -17
  56. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +12 -1
  57. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +35 -7
  58. package/React/React-RCTFBReactNativeSpec.podspec +1 -1
  59. package/React/React-RCTFabric.podspec +1 -1
  60. package/React/Runtime/React-RCTRuntime.podspec +1 -1
  61. package/React/Tests/Mounting/RCTViewComponentViewTests.mm +145 -0
  62. package/React/Views/ScrollView/RCTScrollView.m +1 -1
  63. package/React-Core.podspec +1 -1
  64. package/React.podspec +1 -1
  65. package/ReactAndroid/build.gradle.kts +1 -1
  66. package/ReactAndroid/gradle.properties +1 -1
  67. package/ReactAndroid/hermes-engine/build.gradle.kts +6 -0
  68. package/ReactAndroid/publish.gradle +20 -46
  69. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/CxxInspectorPackagerConnection.kt +99 -9
  70. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/InspectorNetworkHelper.kt +1 -1
  71. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +2 -2
  72. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +19 -1
  73. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +31 -1
  74. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +7 -1
  75. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +7 -1
  76. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +34 -1
  77. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +7 -1
  78. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.kt +1 -1
  79. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/ReactAndroidHWInputDeviceHelper.java +1 -0
  80. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.kt +1 -1
  81. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +3 -3
  82. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  83. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactInstance.kt +1 -1
  84. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +1 -1
  85. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +14 -4
  86. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +14 -4
  87. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +46 -6
  88. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +1 -1
  89. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +1 -1
  90. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.kt +2 -2
  91. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.kt +2 -2
  92. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextSelectionWatcher.kt +1 -1
  93. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +1 -0
  94. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewManager.kt +5 -0
  95. package/ReactAndroid/src/main/jni/CMakeLists.txt +7 -0
  96. package/ReactAndroid/src/main/jni/react/devsupport/JCxxInspectorPackagerConnectionWebSocket.cpp +29 -2
  97. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +43 -1
  98. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +10 -1
  99. package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +1 -1
  100. package/ReactApple/RCTSwiftUI/RCTSwiftUI.podspec +1 -1
  101. package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIWrapper.podspec +1 -1
  102. package/ReactCommon/React-Fabric.podspec +7 -1
  103. package/ReactCommon/React-FabricComponents.podspec +1 -1
  104. package/ReactCommon/React-FabricImage.podspec +1 -1
  105. package/ReactCommon/React-Mapbuffer.podspec +1 -1
  106. package/ReactCommon/ReactCommon.podspec +1 -1
  107. package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
  108. package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -1
  109. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  110. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  111. package/ReactCommon/hermes/executor/React-jsitracing.podspec +1 -1
  112. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +1 -1
  113. package/ReactCommon/jsi/React-jsi.podspec +1 -1
  114. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
  115. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +7 -3
  116. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -1
  117. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +1 -5
  118. package/ReactCommon/jsinspector-modern/cdp/React-jsinspectorcdp.podspec +1 -1
  119. package/ReactCommon/jsinspector-modern/network/React-jsinspectornetwork.podspec +1 -1
  120. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -1
  121. package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -1
  122. package/ReactCommon/logger/React-logger.podspec +1 -1
  123. package/ReactCommon/oscompat/React-oscompat.podspec +1 -1
  124. package/ReactCommon/react/debug/CMakeLists.txt +2 -1
  125. package/ReactCommon/react/debug/React-debug.podspec +8 -2
  126. package/ReactCommon/react/debug/redbox/AnsiParser.cpp +139 -0
  127. package/ReactCommon/react/debug/redbox/AnsiParser.h +35 -0
  128. package/ReactCommon/react/debug/redbox/JscSafeUrl.cpp +179 -0
  129. package/ReactCommon/react/debug/redbox/JscSafeUrl.h +27 -0
  130. package/ReactCommon/react/debug/redbox/RedBoxErrorParser.cpp +171 -0
  131. package/ReactCommon/react/debug/redbox/RedBoxErrorParser.h +40 -0
  132. package/ReactCommon/react/debug/redbox/tests/AnsiParserTest.cpp +97 -0
  133. package/ReactCommon/react/debug/redbox/tests/JscSafeUrlTest.cpp +173 -0
  134. package/ReactCommon/react/debug/redbox/tests/RedBoxErrorParserTest.cpp +107 -0
  135. package/ReactCommon/react/featureflags/React-featureflags.podspec +1 -1
  136. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +13 -1
  137. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +16 -1
  138. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +106 -52
  139. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +8 -2
  140. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +13 -1
  141. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +28 -1
  142. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +4 -1
  143. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +1 -1
  144. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +1 -1
  145. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTInteropTurboModule.mm +1 -1
  146. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +1 -1
  147. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  148. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
  149. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +2 -1
  150. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -1
  151. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +16 -1
  152. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +7 -1
  153. package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +1 -1
  154. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -1
  155. package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +1 -1
  156. package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +1 -1
  157. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.h +4 -0
  158. package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +66 -0
  159. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -1
  160. package/ReactCommon/react/nativemodule/webperformance/React-webperformancenativemodule.podspec +1 -1
  161. package/ReactCommon/react/networking/React-networking.podspec +1 -1
  162. package/ReactCommon/react/performance/cdpmetrics/React-performancecdpmetrics.podspec +1 -1
  163. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -1
  164. package/ReactCommon/react/renderer/animated/internal/primitives.h +1 -1
  165. package/ReactCommon/react/renderer/components/view/BaseViewProps.cpp +7 -0
  166. package/ReactCommon/react/renderer/components/view/BaseViewProps.h +1 -0
  167. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +18 -0
  168. package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.h +1 -0
  169. package/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +1 -1
  170. package/ReactCommon/react/renderer/css/React-renderercss.podspec +1 -1
  171. package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +1 -1
  172. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -1
  173. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -1
  174. package/ReactCommon/react/renderer/mounting/internal/CullingContext.cpp +1 -1
  175. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -1
  176. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -1
  177. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -1
  178. package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +1 -1
  179. package/ReactCommon/react/timing/React-timing.podspec +1 -1
  180. package/ReactCommon/react/utils/React-utils.podspec +1 -1
  181. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
  182. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
  183. package/ReactCommon/yoga/Yoga.podspec +2 -2
  184. package/ReactCommon/yoga/yoga/algorithm/AbsoluteLayout.cpp +2 -0
  185. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.cpp +11 -7
  186. package/ReactCommon/yoga/yoga/algorithm/CalculateLayout.h +2 -0
  187. package/ReactCommon/yoga/yoga/node/Node.cpp +6 -1
  188. package/package.json +9 -9
  189. package/scripts/cocoapods/rncore.rb +26 -8
  190. package/scripts/cocoapods/rndependencies.rb +26 -5
  191. package/scripts/cocoapods/spm.rb +1 -1
  192. package/scripts/cocoapods/utils.rb +2 -2
  193. package/scripts/codegen/templates/ReactAppDependencyProvider.podspec.template +1 -1
  194. package/scripts/codegen/templates/ReactCodegen.podspec.template +1 -1
  195. package/scripts/ios-configure-glog.sh +1 -1
  196. package/scripts/react_native_pods.rb +1 -0
  197. package/sdks/hermes-engine/hermes-engine.podspec +6 -1
  198. package/sdks/hermes-engine/hermes-utils.rb +27 -5
  199. package/src/private/featureflags/ReactNativeFeatureFlags.js +16 -1
  200. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +4 -1
  201. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  202. package/src/private/types/HostInstance.js +1 -1
  203. package/src/types/globals.d.ts +2 -2
  204. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  205. package/third-party-podspecs/ReactNativeDependencies.podspec +1 -1
  206. package/third-party-podspecs/glog.podspec +1 -1
  207. package/types/public/ReactNativeTVTypes.d.ts +9 -0
  208. package/types/public/ReactNativeTypes.d.ts +2 -2
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -31,7 +31,7 @@ import {cloneElement, useMemo} from 'react';
31
31
  type AnimatedScrollViewInstance = React.ElementRef<typeof ScrollView>;
32
32
 
33
33
  /**
34
- * @see https://github.com/facebook/react-native/commit/b8c8562
34
+ * @see https://github.com/react/react-native/commit/b8c8562
35
35
  */
36
36
  const AnimatedScrollView: AnimatedComponentType<
37
37
  ScrollViewProps,
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -127,7 +127,7 @@ export type ButtonProps = $ReadOnly<{
127
127
  accessibilityLabel?: ?string,
128
128
  /**
129
129
  * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel
130
- * https://github.com/facebook/react-native/issues/34424
130
+ * https://github.com/react/react-native/issues/34424
131
131
  */
132
132
  'aria-label'?: ?string,
133
133
  /**
@@ -181,7 +181,7 @@ export type ButtonProps = $ReadOnly<{
181
181
  [button:examples].
182
182
 
183
183
  [button:source]:
184
- https://github.com/facebook/react-native/blob/HEAD/Libraries/Components/Button.js
184
+ https://github.com/react/react-native/blob/HEAD/Libraries/Components/Button.js
185
185
 
186
186
  [button:examples]:
187
187
  https://js.coach/?menu%5Bcollections%5D=React%20Native&page=1&query=button
@@ -515,7 +515,7 @@ export interface ScrollViewPropsIOS {
515
515
  * - `start` (the default) will align the snap at the left (horizontal) or top (vertical)
516
516
  * - `center` will align the snap in the center
517
517
  * - `end` will align the snap at the right (horizontal) or bottom (vertical)
518
- * - `item` will align the snap according to the value of `scrollSnapAlign` for individual items in the scroll view (TV platforms only).
518
+ * - `item` will align the snap according to each item's own `scrollSnapAlign` or `scrollSnapOffset` prop (TV platforms only).
519
519
  */
520
520
  snapToAlignment?: 'start' | 'center' | 'end' | 'item' | undefined;
521
521
 
@@ -612,7 +612,7 @@ type ScrollViewBaseProps = $ReadOnly<{
612
612
  * - `'start'` (the default) will align the snap at the left (horizontal) or top (vertical)
613
613
  * - `'center'` will align the snap in the center
614
614
  * - `'end'` will align the snap at the right (horizontal) or bottom (vertical)
615
- * - `'item'` will align the snap according to the value of `scrollSnapAlign` for individual items in the scroll view (TV platforms only).
615
+ * - `'item'` will align the snap according to each item's own `scrollSnapAlign` or `scrollSnapOffset` prop (TV platforms only).
616
616
  */
617
617
  snapToAlignment?: ?('start' | 'center' | 'end' | 'item'),
618
618
  /**
@@ -131,4 +131,13 @@ export type TVViewProps = $ReadOnly<{|
131
131
  */
132
132
  scrollSnapAlign?: ?('start' | 'center' | 'end'),
133
133
 
134
+ /**
135
+ * Per-item scroll snap offset in dp/pt. When set on a View inside a
136
+ * ScrollView with `snapToAlignment="item"`, the focus engine lands the
137
+ * View's top at viewport y = scrollSnapOffset. Standalone alternative to
138
+ * `scrollSnapAlign` — set one or the other; if both are set on the same
139
+ * View, `scrollSnapOffset` takes precedence.
140
+ */
141
+ scrollSnapOffset?: ?number,
142
+
134
143
  |}>;
@@ -553,7 +553,7 @@ export type AndroidTextInputNativeProps = $ReadOnly<{
553
553
  * - `borderBottomRightRadius`
554
554
  * - `borderBottomLeftRadius`
555
555
  *
556
- * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)
556
+ * see [Issue#7070](https://github.com/react/react-native/issues/7070)
557
557
  * for more detail.
558
558
  *
559
559
  * [Styles](docs/style.html)
@@ -1007,7 +1007,7 @@ type TextInputBaseProps = $ReadOnly<{
1007
1007
  * - `borderBottomRightRadius`
1008
1008
  * - `borderBottomLeftRadius`
1009
1009
  *
1010
- * see [Issue#7070](https://github.com/facebook/react-native/issues/7070)
1010
+ * see [Issue#7070](https://github.com/react/react-native/issues/7070)
1011
1011
  * for more detail.
1012
1012
  *
1013
1013
  * [Styles](docs/style.html)
@@ -32,7 +32,7 @@ export const Touchable: {
32
32
  };
33
33
 
34
34
  /**
35
- * @see https://github.com/facebook/react-native/blob/0.34-stable\Libraries\Components\Touchable\Touchable.js
35
+ * @see https://github.com/react/react-native/blob/0.34-stable\Libraries\Components\Touchable\Touchable.js
36
36
  */
37
37
  interface TouchableMixin {
38
38
  /**
@@ -153,9 +153,13 @@ component View(
153
153
  delete processedProps.isTVSelectable;
154
154
  }
155
155
 
156
- // Views with scrollSnapAlign must not be flattened by Fabric, otherwise
157
- // the prop never reaches the native view and scroll snapping breaks.
158
- if (processedProps.scrollSnapAlign != null) {
156
+ // Views with scrollSnapAlign or scrollSnapOffset must not be flattened by
157
+ // Fabric, otherwise the prop never reaches the native view and scroll
158
+ // snapping breaks.
159
+ if (
160
+ processedProps.scrollSnapAlign != null ||
161
+ processedProps.scrollSnapOffset != null
162
+ ) {
159
163
  processedProps.collapsable = false;
160
164
  }
161
165
 
@@ -34,7 +34,7 @@ export interface AccessibilityProps
34
34
 
35
35
  /**
36
36
  * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel
37
- * https://github.com/facebook/react-native/issues/34424
37
+ * https://github.com/react/react-native/issues/34424
38
38
  */
39
39
  'aria-label'?: string | undefined;
40
40
 
@@ -370,7 +370,7 @@ export type AccessibilityProps = $ReadOnly<{
370
370
 
371
371
  /**
372
372
  * Alias for accessibilityLabel https://reactnative.dev/docs/view#accessibilitylabel
373
- * https://github.com/facebook/react-native/issues/34424
373
+ * https://github.com/react/react-native/issues/34424
374
374
  */
375
375
  'aria-label'?: ?Stringish,
376
376
 
@@ -28,7 +28,7 @@
28
28
  export default class ReactNativeVersion {
29
29
  static major: number = 0;
30
30
  static minor: number = 83;
31
- static patch: number = 6;
31
+ static patch: number = 10;
32
32
  static prerelease: string | null = '0';
33
33
 
34
34
  static getVersionString(): string {
@@ -158,7 +158,7 @@ function _callReactNativeMicrotasksPass() {
158
158
  reactNativeMicrotasks = [];
159
159
 
160
160
  // Use for loop rather than forEach as per @vjeux's advice
161
- // https://github.com/facebook/react-native/commit/c8fd9f7588ad02d2293cac7224715f4af7b0f352#commitcomment-14570051
161
+ // https://github.com/react/react-native/commit/c8fd9f7588ad02d2293cac7224715f4af7b0f352#commitcomment-14570051
162
162
  for (let i = 0; i < passReactNativeMicrotasks.length; ++i) {
163
163
  _callTimer(passReactNativeMicrotasks[i], 0);
164
164
  }
@@ -17,6 +17,6 @@ if (navigator === undefined) {
17
17
  // $FlowExpectedError[cannot-write] The global isn't writable anywhere but here, where we define it.
18
18
  global.navigator = {product: 'ReactNative'};
19
19
  } else {
20
- // see https://github.com/facebook/react-native/issues/10881
20
+ // see https://github.com/react/react-native/issues/10881
21
21
  polyfillObjectProperty(navigator, 'product', () => 'ReactNative');
22
22
  }
@@ -20,7 +20,7 @@ export interface NativeEventSubscription {
20
20
  * Receive events from native-code
21
21
  * Deprecated - subclass NativeEventEmitter to create granular event modules instead of
22
22
  * adding all event listeners directly to RCTNativeAppEventEmitter.
23
- * @see https://github.com/facebook/react-native/blob/0.34-stable\Libraries\EventEmitter\RCTNativeAppEventEmitter.js
23
+ * @see https://github.com/react/react-native/blob/0.34-stable\Libraries\EventEmitter\RCTNativeAppEventEmitter.js
24
24
  * @see https://reactnative.dev/docs/native-modules-ios#sending-events-to-javascript
25
25
  */
26
26
  type RCTNativeAppEventEmitter = DeviceEventEmitterStatic;
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -8,7 +8,7 @@
8
8
  */
9
9
 
10
10
  /*
11
- * @see https://github.com/facebook/react-native/blob/master/Libraries/Image/ImageSource.js
11
+ * @see https://github.com/react/react-native/blob/master/Libraries/Image/ImageSource.js
12
12
  */
13
13
  export interface ImageURISource {
14
14
  /**
@@ -517,7 +517,7 @@ static RCTImageLoaderCancellationBlock RCTLoadImageURLFromLoader(
517
517
  // Add missing png extension
518
518
  if (request.URL.fileURL && request.URL.pathExtension.length == 0) {
519
519
  // Check if there exists a file with that url on disk already
520
- // This should fix issue https://github.com/facebook/react-native/issues/46870
520
+ // This should fix issue https://github.com/react/react-native/issues/46870
521
521
  if ([[NSFileManager defaultManager] fileExistsAtPath:request.URL.path]) {
522
522
  mutableRequest.URL = request.URL;
523
523
  } else {
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -117,7 +117,7 @@ const currentCentroidY = TouchHistoryMath.currentCentroidY;
117
117
  * ### Working Example
118
118
  *
119
119
  * To see it in action, try the
120
- * [PanResponder example in RNTester](https://github.com/facebook/react-native/blob/HEAD/packages/rn-tester/js/examples/PanResponder/PanResponderExample.js)
120
+ * [PanResponder example in RNTester](https://github.com/react/react-native/blob/HEAD/packages/rn-tester/js/examples/PanResponder/PanResponderExample.js)
121
121
  */
122
122
 
123
123
  export type PanResponderGestureState = {
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -26,5 +26,6 @@ export const validAttributesForTVProps = {
26
26
  trapFocusDown: true,
27
27
  trapFocusUp: true,
28
28
  scrollSnapAlign: true,
29
+ scrollSnapOffset: true,
29
30
  };
30
31
 
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -3,7 +3,7 @@
3
3
  This page describes how React and React Native versions interact each other.
4
4
  The version alignment between the two frameworks relies on two synchronization points:
5
5
 
6
- 1. The versions in the `package.json` of the new app template. For example [for React Native 0.68.1](https://github.com/facebook/react-native/blob/0.68-stable/template/package.json#L12-L15) the versions are aligned as follows:
6
+ 1. The versions in the `package.json` of the new app template. For example [for React Native 0.68.1](https://github.com/react/react-native/blob/0.68-stable/template/package.json#L12-L15) the versions are aligned as follows:
7
7
 
8
8
  ```
9
9
  "dependencies": {
@@ -12,7 +12,7 @@ The version alignment between the two frameworks relies on two synchronization p
12
12
  },
13
13
  ```
14
14
 
15
- 1. The React renderers **shipped** with React Native inside this folder, the [./Libraries/Renderer](https://github.com/facebook/react-native/tree/main/Libraries/Renderer) folder, of React Native.
15
+ 1. The React renderers **shipped** with React Native inside this folder, the [./Libraries/Renderer](https://github.com/react/react-native/tree/main/Libraries/Renderer) folder, of React Native.
16
16
 
17
17
  This practically means that you **can't bump** the version of React in your `package.json` to a later version,
18
18
  as you will still be using the older renderer from the folder mentioned above. Bumping the react version in your `package.json` will lead to unexpected behaviors.
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
@@ -23,7 +23,7 @@ const defineLazyObjectProperty = require('./defineLazyObjectProperty').default;
23
23
  *
24
24
  * global.XMLHttpRequest = global.originalXMLHttpRequest;
25
25
  *
26
- * @see https://github.com/facebook/react-native/issues/934
26
+ * @see https://github.com/react/react-native/issues/934
27
27
  */
28
28
  export function polyfillObjectProperty<T>(
29
29
  object: {...},
@@ -8,7 +8,7 @@ require "json"
8
8
  package = JSON.parse(File.read(File.join(__dir__, "..", "..", "package.json")))
9
9
  version = package['version']
10
10
 
11
- source = { :git => 'https://github.com/facebook/react-native.git' }
11
+ source = { :git => 'https://github.com/react/react-native.git' }
12
12
  if version == '1000.0.0'
13
13
  # This is an unpublished version, use the latest commit hash of the react-native repo, which we’re presumably in.
14
14
  source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
package/README-core.md CHANGED
@@ -10,7 +10,7 @@
10
10
  </p>
11
11
 
12
12
  <p align="center">
13
- <a href="https://github.com/facebook/react-native/blob/HEAD/LICENSE">
13
+ <a href="https://github.com/react/react-native/blob/HEAD/LICENSE">
14
14
  <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="React Native is released under the MIT license." />
15
15
  </a>
16
16
  <a href="https://www.npmjs.org/package/react-native">
@@ -38,7 +38,7 @@
38
38
  <span> · </span>
39
39
  <a href="https://reactnative.dev/help">Community</a>
40
40
  <span> · </span>
41
- <a href="https://github.com/facebook/react-native/blob/HEAD/.github/SUPPORT.md">Support</a>
41
+ <a href="https://github.com/react/react-native/blob/HEAD/.github/SUPPORT.md">Support</a>
42
42
  </h3>
43
43
 
44
44
  React Native brings [**React**'s][r] declarative UI framework to iOS and Android. With React Native, you use native UI controls and have full access to the native platform.
@@ -52,7 +52,7 @@ React Native is developed and supported by many companies and individual core co
52
52
 
53
53
  [r]: https://react.dev/
54
54
  [p]: https://reactnative.dev/docs/out-of-tree-platforms
55
- [e]: https://github.com/facebook/react-native/blob/HEAD/ECOSYSTEM.md
55
+ [e]: https://github.com/react/react-native/blob/HEAD/ECOSYSTEM.md
56
56
 
57
57
  ## Contents
58
58
 
@@ -123,13 +123,13 @@ Read our [**Contributing Guide**][contribute] to learn about our development pro
123
123
 
124
124
  You can learn more about our vision for React Native in the [**Roadmap**][roadmap].
125
125
 
126
- [roadmap]: https://github.com/facebook/react-native/wiki/Roadmap
126
+ [roadmap]: https://github.com/react/react-native/wiki/Roadmap
127
127
 
128
128
  ### Good First Issues
129
129
 
130
130
  We have a list of [good first issues][gfi] that contain bugs which have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.
131
131
 
132
- [gfi]: https://github.com/facebook/react-native/labels/good%20first%20issue
132
+ [gfi]: https://github.com/react/react-native/labels/good%20first%20issue
133
133
 
134
134
  ### Discussions
135
135
 
@@ -141,4 +141,4 @@ Larger discussions and proposals are discussed in [**@react-native-community/dis
141
141
 
142
142
  React Native is MIT licensed, as found in the [LICENSE][l] file.
143
143
 
144
- [l]: https://github.com/facebook/react-native/blob/main/LICENSE
144
+ [l]: https://github.com/react/react-native/blob/main/LICENSE
package/README.md CHANGED
@@ -272,6 +272,7 @@ class Game2048 extends React.Component {
272
272
  | Prop (View) | Value | Description |
273
273
  |---|---|---|
274
274
  | scrollSnapAlign | `'start'` \| `'center'` \| `'end'` | Controls where this item snaps inside its parent ScrollView. Only used when the parent has `snapToAlignment="item"`. |
275
+ | scrollSnapOffset | `number` | Per-item pixel offset (in dp/pt). When set, the focus engine lands this item's leading edge at `scrollSnapOffset` from the viewport origin. Standalone alternative to `scrollSnapAlign` — takes precedence if both are set on the same item. Only used when the parent has `snapToAlignment="item"`. |
275
276
 
276
277
  ```jsx
277
278
  <ScrollView
@@ -291,6 +292,16 @@ class Game2048 extends React.Component {
291
292
  </ScrollView>
292
293
  ```
293
294
 
295
+ `scrollSnapOffset` is useful when different items in the same ScrollView need to land at different positions — e.g. a hero row peeking 27dp from the top while poster rows peek 550dp:
296
+
297
+ ```jsx
298
+ <ScrollView snapToAlignment="item">
299
+ <View scrollSnapOffset={27}><Hero /></View>
300
+ <View scrollSnapOffset={100}><Featured /></View>
301
+ <View scrollSnapOffset={550}><PosterRow /></View>
302
+ </ScrollView>
303
+ ```
304
+
294
305
  - _ScrollView animation control_: The `scrollAnimationEnabled` prop allows disabling scroll animations when focus changes on TV. When set to `false`, the scroll view jumps instantly to the focused item instead of animating. This only affects TV platforms and has no effect on mobile.
295
306
 
296
307
  | Prop (ScrollView) | Value | Description |
@@ -307,7 +318,8 @@ class Game2048 extends React.Component {
307
318
 
308
319
  - _Interaction with existing ScrollView props_: The TV scroll props build on top of existing React Native ScrollView behavior. Here is how they interact:
309
320
 
310
- - `snapToAlignment="item"` does not require `snapToInterval` to be set. It works as a standalone snapping mode where each child's `scrollSnapAlign` determines the snap position. If `snapToInterval` is also set, the interval is applied as an additional constraint after the item offset is computed.
321
+ - `snapToAlignment="item"` does not require `snapToInterval` to be set. It works as a standalone snapping mode where each child's `scrollSnapAlign` or `scrollSnapOffset` determines the snap position. If `snapToInterval` is also set, the interval is applied as an additional constraint after the item offset is computed.
322
+ - `scrollSnapOffset` ignores `snapToItemPadding`. The padding is a global value applied to `scrollSnapAlign` cases; `scrollSnapOffset` is itself a per-item pixel offset that fully specifies where the item lands.
311
323
  - `snapToAlignment="item"` should not be combined with `pagingEnabled`. Both attempt to control scroll positioning independently, which leads to unpredictable behavior. Use one or the other.
312
324
  - `snapToStart` and `snapToEnd` work independently of `snapToAlignment="item"`. They control edge behavior during swipe/drag momentum (whether the scroll view snaps to the first or last position), but do not affect focus driven item snapping.
313
325
  - `scrollAnimationEnabled={false}` disables all scroll animations, including programmatic `scrollTo({animated: true})` calls. When disabled, all scrolling is instant.
@@ -23,7 +23,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
23
23
  __rnVersion = @{
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(83),
26
- RCTVersionPatch: @(6),
26
+ RCTVersionPatch: @(10),
27
27
  RCTVersionPrerelease: @"0",
28
28
  };
29
29
  });
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #import <Foundation/Foundation.h>
9
+
10
+ /**
11
+ * Converts between standard URLs and JSC-safe URLs.
12
+ *
13
+ * JSC (JavaScriptCore) strips query strings from source URLs in stack traces
14
+ * as of iOS 16.4. Metro works around this by encoding the query string into
15
+ * the URL path. These methods convert between the two formats.
16
+ */
17
+ @interface RCTJscSafeUrl : NSObject
18
+
19
+ + (nonnull NSString *)normalUrlFromJscSafeUrl:(nonnull NSString *)url;
20
+ + (nonnull NSString *)jscSafeUrlFromNormalUrl:(nonnull NSString *)url;
21
+ + (BOOL)isJscSafeUrl:(nonnull NSString *)url;
22
+
23
+ @end
@@ -0,0 +1,38 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #import "RCTJscSafeUrl+Internal.h"
9
+
10
+ #import <React/RCTDefines.h>
11
+ #import <react/debug/redbox/JscSafeUrl.h>
12
+
13
+ #if RCT_DEV_MENU
14
+
15
+ using facebook::react::unstable_redbox::isJscSafeUrl;
16
+ using facebook::react::unstable_redbox::toJscSafeUrl;
17
+ using facebook::react::unstable_redbox::toNormalUrl;
18
+
19
+ @implementation RCTJscSafeUrl
20
+
21
+ + (NSString *)normalUrlFromJscSafeUrl:(NSString *)url
22
+ {
23
+ return [NSString stringWithUTF8String:toNormalUrl(url.UTF8String).c_str()];
24
+ }
25
+
26
+ + (NSString *)jscSafeUrlFromNormalUrl:(NSString *)url
27
+ {
28
+ return [NSString stringWithUTF8String:toJscSafeUrl(url.UTF8String).c_str()];
29
+ }
30
+
31
+ + (BOOL)isJscSafeUrl:(NSString *)url
32
+ {
33
+ return isJscSafeUrl(url.UTF8String);
34
+ }
35
+
36
+ @end
37
+
38
+ #endif
@@ -0,0 +1,42 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #import <React/RCTDefines.h>
9
+ #import <UIKit/UIKit.h>
10
+
11
+ #if RCT_DEV_MENU
12
+
13
+ @class RCTJSStackFrame;
14
+
15
+ @protocol RCTRedBoxControllerActionDelegate <NSObject>
16
+
17
+ - (void)redBoxController:(UIViewController *)redBoxController openStackFrameInEditor:(RCTJSStackFrame *)stackFrame;
18
+ - (void)reloadFromRedBoxController:(UIViewController *)redBoxController;
19
+ - (void)loadExtraDataViewController;
20
+
21
+ @end
22
+
23
+ @protocol RCTRedBoxControlling <NSObject>
24
+
25
+ @property (nonatomic, weak) id<RCTRedBoxControllerActionDelegate> actionDelegate;
26
+
27
+ - (void)showErrorMessage:(NSString *)message
28
+ withStack:(NSArray<RCTJSStackFrame *> *)stack
29
+ isUpdate:(BOOL)isUpdate
30
+ errorCookie:(int)errorCookie;
31
+
32
+ - (void)dismiss;
33
+
34
+ @end
35
+
36
+ @protocol RCTRedBox2Controlling <RCTRedBoxControlling>
37
+
38
+ @property (nonatomic, strong, nullable) NSURL *bundleURL;
39
+
40
+ @end
41
+
42
+ #endif