react-native-navigation 8.8.2 → 8.8.3-snapshot.2513

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 (79) hide show
  1. package/android/src/main/java/com/reactnativenavigation/hierarchy/root/RootAnimator.kt +5 -2
  2. package/android/src/main/java/com/reactnativenavigation/react/DevBundleDownloadListenerAdapter.java +5 -8
  3. package/android/src/main/java/com/reactnativenavigation/react/JsDevReloadHandlerFacade.java +5 -8
  4. package/android/src/main/java/com/reactnativenavigation/react/NavigationTurboModule.kt +5 -0
  5. package/android/src/main/java/com/reactnativenavigation/react/ReloadHandlerFacade.java +5 -8
  6. package/android/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerBuilder.java +2 -1
  7. package/android/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/LayoutDirectionApplier.kt +4 -1
  8. package/android/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Presenter.java +3 -1
  9. package/android/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/RootPresenter.java +11 -1
  10. package/android/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewController.java +1 -1
  11. package/android/src/test/java/com/reactnativenavigation/BaseRobolectricTest.kt +1 -1
  12. package/android/src/test/java/com/reactnativenavigation/BaseTest.kt +3 -2
  13. package/android/src/test/java/com/reactnativenavigation/ShadowReactView.java +45 -0
  14. package/android/src/test/java/com/reactnativenavigation/ShadowSoLoader.java +28 -0
  15. package/android/src/test/java/com/reactnativenavigation/TestApplication.kt +2 -2
  16. package/android/src/test/java/com/reactnativenavigation/mocks/SimpleViewController.java +14 -7
  17. package/android/src/test/java/com/reactnativenavigation/presentation/PresenterTest.java +0 -1
  18. package/android/src/test/java/com/reactnativenavigation/utils/ButtonPresenterTest.java +0 -1
  19. package/android/src/test/java/com/reactnativenavigation/utils/LayoutFactoryTest.java +0 -1
  20. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/OptionsApplyingTest.java +0 -1
  21. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabPresenterTest.java +0 -1
  22. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.kt +0 -1
  23. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsPresenterTest.kt +0 -1
  24. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/component/ComponentViewControllerTest.java +0 -1
  25. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentViewControllerTest.java +0 -1
  26. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalAnimatorTest.kt +0 -1
  27. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalPresenterTest.java +0 -1
  28. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/modal/ModalStackTest.java +0 -1
  29. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/NavigatorTest.java +0 -1
  30. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/navigator/RootPresenterTest.kt +0 -1
  31. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/overlay/OverlayManagerTest.java +0 -1
  32. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/parent/ParentControllerTest.java +0 -1
  33. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/sidemenu/SideMenuControllerTest.java +0 -1
  34. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/stack/BackButtonHelperTest.java +0 -1
  35. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/stack/FloatingActionButtonTest.java +0 -1
  36. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackAnimatorTest.kt +0 -1
  37. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.kt +0 -1
  38. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackPresenterTest.kt +0 -1
  39. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarButtonControllerTest.java +0 -1
  40. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TitleBarReactViewControllerTest.java +0 -1
  41. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarButtonControllerTest.java +0 -1
  42. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/stack/TopBarControllerTest.kt +0 -1
  43. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/toptabs/TopTabsViewControllerTest.java +0 -1
  44. package/android/src/test/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerTest.java +0 -1
  45. package/android/src/test/java/com/reactnativenavigation/views/TitleAndButtonsContainerTest.kt +0 -1
  46. package/android/src/test/java/com/reactnativenavigation/views/TitleSubTitleLayoutTest.kt +0 -1
  47. package/ios/BottomTabPresenter.h +2 -0
  48. package/ios/BottomTabPresenter.mm +1 -3
  49. package/ios/BottomTabsAfterInitialTabAttacher.mm +4 -0
  50. package/ios/BottomTabsTogetherAttacher.mm +4 -0
  51. package/ios/RNNAppDelegate.mm +15 -4
  52. package/ios/RNNBackButtonOptions.h +1 -0
  53. package/ios/RNNBackButtonOptions.mm +3 -0
  54. package/ios/RNNBottomTabOptions.h +1 -0
  55. package/ios/RNNBottomTabOptions.mm +4 -1
  56. package/ios/RNNBottomTabsController.mm +48 -8
  57. package/ios/RNNButtonOptions.h +1 -0
  58. package/ios/RNNButtonOptions.mm +4 -0
  59. package/ios/RNNComponentOptions.mm +1 -1
  60. package/ios/RNNComponentPresenter.mm +85 -0
  61. package/ios/RNNComponentViewController.mm +5 -0
  62. package/ios/RNNNavigationOptions.h +2 -0
  63. package/ios/RNNNavigationOptions.mm +4 -0
  64. package/ios/RNNScreenTransition.mm +1 -1
  65. package/ios/RNNScrollEdgeEffectOptions.h +20 -0
  66. package/ios/RNNScrollEdgeEffectOptions.mm +45 -0
  67. package/ios/RNNStackController.mm +76 -1
  68. package/ios/RNNTabBarItemCreator.h +2 -0
  69. package/ios/RNNTabBarItemCreator.mm +98 -0
  70. package/ios/RNNUIBarButtonItem.mm +26 -0
  71. package/ios/StackControllerDelegate.mm +1 -0
  72. package/ios/TopBarPresenter.mm +26 -2
  73. package/ios/TransitionOptions.mm +2 -2
  74. package/ios/UIViewController+LayoutProtocol.h +2 -0
  75. package/lib/module/interfaces/Options.js.map +1 -1
  76. package/lib/typescript/interfaces/Options.d.ts +95 -0
  77. package/lib/typescript/interfaces/Options.d.ts.map +1 -1
  78. package/package.json +13 -12
  79. package/src/interfaces/Options.ts +109 -0
@@ -423,6 +423,14 @@ export interface OptionsTopBarBackButton {
423
423
  * @default true
424
424
  */
425
425
  popStackOnPress?: boolean;
426
+ /**
427
+ * (iOS 26+ only) Hide the shared Liquid-Glass / Platter background that
428
+ * UIKit draws behind the back button. Defaults to true to avoid
429
+ * double-decorating a back button whose icon already carries its own
430
+ * iconBackground. Set to false to keep the system-drawn background.
431
+ * @default true
432
+ */
433
+ hideSharedBackground?: boolean;
426
434
  }
427
435
 
428
436
  export interface HardwareBackButtonOptions {
@@ -636,6 +644,15 @@ export interface OptionsTopBarButton {
636
644
  * Set testID for reference in E2E tests
637
645
  */
638
646
  testID?: string;
647
+ /**
648
+ * (iOS 26+ only) Hide the shared Liquid-Glass / Platter background that
649
+ * UIKit draws behind every bar button item. Defaults to true to avoid
650
+ * double-decorating React-rendered custom views and icons that already
651
+ * carry their own background. Set to false to keep the system-drawn
652
+ * background.
653
+ * @default true
654
+ */
655
+ hideSharedBackground?: boolean;
639
656
  /**
640
657
  * (Android only) Set showAsAction value
641
658
  * @see {@link https://developer.android.com/guide/topics/resources/menu-resource|Android developer guide: Menu resource}
@@ -1131,6 +1148,43 @@ export interface OptionsBottomTab {
1131
1148
  * #### (iOS 13+ specific)
1132
1149
  */
1133
1150
  sfSelectedSymbol?: string;
1151
+ /**
1152
+ * Set the tab bar item to a system-provided role.
1153
+ * Uses `UITabBarItem(tabBarSystemItem:)` on iOS.
1154
+ *
1155
+ * By default the system provides the icon and title. You can
1156
+ * override the icon by providing `icon`, `selectedIcon`,
1157
+ * `sfSymbol`, or `sfSelectedSymbol` — they are applied after
1158
+ * creation and replace the system-provided image.
1159
+ * `iconColor` and `selectedIconColor` are applied as a tint
1160
+ * to the custom icon when one is provided.
1161
+ *
1162
+ * **`'search'`** — on iOS 26+ this renders as a floating
1163
+ * Liquid Glass button. Only one tab per `bottomTabs` layout
1164
+ * may use this role; duplicates fall back to a normal tab.
1165
+ *
1166
+ * **`'more'`** — activates UIKit's built-in "More" navigation
1167
+ * controller. Tabs beyond the visible limit are moved into
1168
+ * it automatically.
1169
+ *
1170
+ * Properties that remain ignored for role tabs: `text`,
1171
+ * `fontSize`, `fontFamily`, `fontWeight`, `iconInsets`.
1172
+ *
1173
+ * #### (iOS specific)
1174
+ */
1175
+ role?:
1176
+ | 'search'
1177
+ | 'bookmarks'
1178
+ | 'contacts'
1179
+ | 'downloads'
1180
+ | 'favorites'
1181
+ | 'featured'
1182
+ | 'history'
1183
+ | 'more'
1184
+ | 'mostRecent'
1185
+ | 'mostViewed'
1186
+ | 'recents'
1187
+ | 'topRated';
1134
1188
  }
1135
1189
 
1136
1190
  export interface SideMenuSide {
@@ -1667,6 +1721,12 @@ setRoot: {
1667
1721
  * #### (iOS specific)
1668
1722
  */
1669
1723
  window?: WindowOptions;
1724
+ /**
1725
+ * Show / hide or change the style of the iOS 26 scroll edge effect on every
1726
+ * UIScrollView contained in the screen.
1727
+ * #### (iOS 26+ specific)
1728
+ */
1729
+ scrollEdgeEffect?: OptionsScrollEdgeEffect;
1670
1730
  /**
1671
1731
  * Enable or disable automatically blurring focused input, dismissing keyboard on unmount
1672
1732
  * #### (Android specific)
@@ -1674,3 +1734,52 @@ setRoot: {
1674
1734
  */
1675
1735
  blurOnUnmount?: boolean;
1676
1736
  }
1737
+
1738
+ export interface OptionsScrollEdge {
1739
+ /**
1740
+ * Hide the scroll edge effect on this edge.
1741
+ * #### (iOS 26+ specific)
1742
+ */
1743
+ hidden?: boolean;
1744
+ /**
1745
+ * Style of the scroll edge effect on this edge.
1746
+ * #### (iOS 26+ specific)
1747
+ * @default 'automatic'
1748
+ */
1749
+ style?: 'automatic' | 'soft' | 'hard';
1750
+ }
1751
+
1752
+ export interface OptionsScrollEdgeEffect {
1753
+ /**
1754
+ * Hide the scroll edge effect on all four edges of contained scroll views.
1755
+ * Per-edge values (top / bottom / left / right) take precedence over this.
1756
+ * #### (iOS 26+ specific)
1757
+ */
1758
+ hidden?: boolean;
1759
+ /**
1760
+ * Style of the scroll edge effect on all four edges. Per-edge values take precedence.
1761
+ * #### (iOS 26+ specific)
1762
+ * @default 'automatic'
1763
+ */
1764
+ style?: 'automatic' | 'soft' | 'hard';
1765
+ /**
1766
+ * Per-edge override for the top edge effect. Falls back to the global hidden / style.
1767
+ * #### (iOS 26+ specific)
1768
+ */
1769
+ top?: OptionsScrollEdge;
1770
+ /**
1771
+ * Per-edge override for the bottom edge effect. Falls back to the global hidden / style.
1772
+ * #### (iOS 26+ specific)
1773
+ */
1774
+ bottom?: OptionsScrollEdge;
1775
+ /**
1776
+ * Per-edge override for the left edge effect. Falls back to the global hidden / style.
1777
+ * #### (iOS 26+ specific)
1778
+ */
1779
+ left?: OptionsScrollEdge;
1780
+ /**
1781
+ * Per-edge override for the right edge effect. Falls back to the global hidden / style.
1782
+ * #### (iOS 26+ specific)
1783
+ */
1784
+ right?: OptionsScrollEdge;
1785
+ }