@apexnative/navigation 0.0.0-stage → 1.0.0-alpha.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.
- package/ApexNavigation.podspec +42 -0
- package/CHANGELOG.md +8 -0
- package/LICENSE +21 -0
- package/README.md +76 -2
- package/android/CLAUDE.md +183 -0
- package/android/CORE.md +219 -0
- package/android/MATERIAL_SYMBOLS_LICENSE.txt +205 -0
- package/android/RECIPES.md +39 -0
- package/android/build.gradle +108 -0
- package/android/consumer-rules.pro +2 -0
- package/android/src/main/AndroidManifest.xml +9 -0
- package/android/src/main/java/dev/apexnative/navigation/EdgeToEdgeDecision.kt +25 -0
- package/android/src/main/java/dev/apexnative/navigation/NavigationActivity.kt +339 -0
- package/android/src/main/java/dev/apexnative/navigation/NavigationApplication.kt +90 -0
- package/android/src/main/java/dev/apexnative/navigation/NavigationPackage.kt +37 -0
- package/android/src/main/java/dev/apexnative/navigation/customrow/BottomTabsCustomRowOptions.kt +85 -0
- package/android/src/main/java/dev/apexnative/navigation/layout/LayoutChecks.kt +51 -0
- package/android/src/main/java/dev/apexnative/navigation/layout/LayoutException.kt +7 -0
- package/android/src/main/java/dev/apexnative/navigation/layout/LayoutNode.kt +118 -0
- package/android/src/main/java/dev/apexnative/navigation/layout/LayoutReader.kt +274 -0
- package/android/src/main/java/dev/apexnative/navigation/layout/LayoutType.kt +35 -0
- package/android/src/main/java/dev/apexnative/navigation/nativescreen/NativeScreenCalls.kt +61 -0
- package/android/src/main/java/dev/apexnative/navigation/nativescreen/NativeScreenContext.kt +84 -0
- package/android/src/main/java/dev/apexnative/navigation/nativescreen/NativeScreenCreator.kt +17 -0
- package/android/src/main/java/dev/apexnative/navigation/options/AnimationsOptions.kt +54 -0
- package/android/src/main/java/dev/apexnative/navigation/options/BottomTabOptions.kt +238 -0
- package/android/src/main/java/dev/apexnative/navigation/options/BottomTabsOptions.kt +244 -0
- package/android/src/main/java/dev/apexnative/navigation/options/ButtonMenuOptions.kt +70 -0
- package/android/src/main/java/dev/apexnative/navigation/options/ButtonOptions.kt +296 -0
- package/android/src/main/java/dev/apexnative/navigation/options/ComponentOptions.kt +141 -0
- package/android/src/main/java/dev/apexnative/navigation/options/DefaultOptions.kt +21 -0
- package/android/src/main/java/dev/apexnative/navigation/options/FabOptions.kt +97 -0
- package/android/src/main/java/dev/apexnative/navigation/options/FontOptions.kt +47 -0
- package/android/src/main/java/dev/apexnative/navigation/options/HardwareBackButtonOptions.kt +49 -0
- package/android/src/main/java/dev/apexnative/navigation/options/InterpolationOptions.kt +203 -0
- package/android/src/main/java/dev/apexnative/navigation/options/KeyCommandOptions.kt +49 -0
- package/android/src/main/java/dev/apexnative/navigation/options/LargeTitleOptions.kt +78 -0
- package/android/src/main/java/dev/apexnative/navigation/options/LayoutAnimation.kt +157 -0
- package/android/src/main/java/dev/apexnative/navigation/options/LayoutOptions.kt +94 -0
- package/android/src/main/java/dev/apexnative/navigation/options/ModalOptions.kt +87 -0
- package/android/src/main/java/dev/apexnative/navigation/options/ModalPlacementOptions.kt +90 -0
- package/android/src/main/java/dev/apexnative/navigation/options/NavigationBarOptions.kt +44 -0
- package/android/src/main/java/dev/apexnative/navigation/options/Options.kt +167 -0
- package/android/src/main/java/dev/apexnative/navigation/options/OptionsCache.kt +21 -0
- package/android/src/main/java/dev/apexnative/navigation/options/OptionsReader.kt +133 -0
- package/android/src/main/java/dev/apexnative/navigation/options/PreviewOptions.kt +97 -0
- package/android/src/main/java/dev/apexnative/navigation/options/ReadableMaps.kt +70 -0
- package/android/src/main/java/dev/apexnative/navigation/options/ScrollEdgeEffectOptions.kt +98 -0
- package/android/src/main/java/dev/apexnative/navigation/options/SearchBarOptions.kt +151 -0
- package/android/src/main/java/dev/apexnative/navigation/options/SharedElementTransitionOptions.kt +57 -0
- package/android/src/main/java/dev/apexnative/navigation/options/SheetOptions.kt +108 -0
- package/android/src/main/java/dev/apexnative/navigation/options/SideMenuOptions.kt +130 -0
- package/android/src/main/java/dev/apexnative/navigation/options/SplitViewGroupOptions.kt +190 -0
- package/android/src/main/java/dev/apexnative/navigation/options/SplitViewOptions.kt +28 -0
- package/android/src/main/java/dev/apexnative/navigation/options/StackAnimationOptions.kt +270 -0
- package/android/src/main/java/dev/apexnative/navigation/options/StatusBarOptions.kt +75 -0
- package/android/src/main/java/dev/apexnative/navigation/options/TitleOptions.kt +167 -0
- package/android/src/main/java/dev/apexnative/navigation/options/ToolbarOptions.kt +60 -0
- package/android/src/main/java/dev/apexnative/navigation/options/TopBarAppearanceOptions.kt +223 -0
- package/android/src/main/java/dev/apexnative/navigation/options/TopBarOptions.kt +381 -0
- package/android/src/main/java/dev/apexnative/navigation/options/ViewAnimationOptions.kt +225 -0
- package/android/src/main/java/dev/apexnative/navigation/options/WindowOptions.kt +36 -0
- package/android/src/main/java/dev/apexnative/navigation/options/params/Bool.kt +23 -0
- package/android/src/main/java/dev/apexnative/navigation/options/params/Fraction.kt +12 -0
- package/android/src/main/java/dev/apexnative/navigation/options/params/LayoutDirection.kt +26 -0
- package/android/src/main/java/dev/apexnative/navigation/options/params/Param.kt +24 -0
- package/android/src/main/java/dev/apexnative/navigation/options/params/Text.kt +24 -0
- package/android/src/main/java/dev/apexnative/navigation/options/params/ThemeColour.kt +259 -0
- package/android/src/main/java/dev/apexnative/navigation/options/params/Variant.kt +36 -0
- package/android/src/main/java/dev/apexnative/navigation/options/parsers/BoolParser.kt +15 -0
- package/android/src/main/java/dev/apexnative/navigation/options/parsers/FontParser.kt +28 -0
- package/android/src/main/java/dev/apexnative/navigation/options/parsers/FractionParser.kt +24 -0
- package/android/src/main/java/dev/apexnative/navigation/options/parsers/IconParser.kt +48 -0
- package/android/src/main/java/dev/apexnative/navigation/options/parsers/StringListParser.kt +27 -0
- package/android/src/main/java/dev/apexnative/navigation/options/parsers/TextParser.kt +32 -0
- package/android/src/main/java/dev/apexnative/navigation/options/parsers/TypefaceLoader.kt +42 -0
- package/android/src/main/java/dev/apexnative/navigation/options/parsers/VariantParser.kt +34 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ArrangementStates.kt +41 -0
- package/android/src/main/java/dev/apexnative/navigation/react/CommandAnswer.kt +111 -0
- package/android/src/main/java/dev/apexnative/navigation/react/CommandListener.kt +27 -0
- package/android/src/main/java/dev/apexnative/navigation/react/CommandRunner.kt +131 -0
- package/android/src/main/java/dev/apexnative/navigation/react/DeveloperReload.kt +69 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ErrorTexts.kt +123 -0
- package/android/src/main/java/dev/apexnative/navigation/react/Hinge.kt +154 -0
- package/android/src/main/java/dev/apexnative/navigation/react/LaunchLink.kt +37 -0
- package/android/src/main/java/dev/apexnative/navigation/react/NavigationTurboModule.kt +311 -0
- package/android/src/main/java/dev/apexnative/navigation/react/OptionsCommands.kt +89 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ReactGateway.kt +67 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ReactView.kt +197 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ReadableJson.kt +60 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ReloadCoordinator.kt +130 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ScreenInsets.kt +69 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ScreenRegions.kt +87 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ScrollEvents.kt +160 -0
- package/android/src/main/java/dev/apexnative/navigation/react/StartInfo.kt +44 -0
- package/android/src/main/java/dev/apexnative/navigation/react/events/AppearanceDispatcher.kt +507 -0
- package/android/src/main/java/dev/apexnative/navigation/react/events/ComponentType.kt +13 -0
- package/android/src/main/java/dev/apexnative/navigation/react/events/EventEmitter.kt +199 -0
- package/android/src/main/java/dev/apexnative/navigation/react/events/NavigationStateReporter.kt +62 -0
- package/android/src/main/java/dev/apexnative/navigation/react/events/ScreenAppearance.kt +87 -0
- package/android/src/main/java/dev/apexnative/navigation/react/events/StateHold.kt +62 -0
- package/android/src/main/java/dev/apexnative/navigation/safearea/SafeAreaReadyEvent.kt +16 -0
- package/android/src/main/java/dev/apexnative/navigation/safearea/SafeAreaView.kt +140 -0
- package/android/src/main/java/dev/apexnative/navigation/safearea/SafeAreaViewManager.kt +45 -0
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotContainers.kt +44 -0
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotHost.kt +91 -0
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotScreenView.kt +158 -0
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotView.kt +141 -0
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotViewManager.kt +50 -0
- package/android/src/main/java/dev/apexnative/navigation/splash/SplashHold.kt +67 -0
- package/android/src/main/java/dev/apexnative/navigation/splash/SplashTheme.kt +81 -0
- package/android/src/main/java/dev/apexnative/navigation/splash/SplashView.kt +77 -0
- package/android/src/main/java/dev/apexnative/navigation/system/AppDirection.kt +92 -0
- package/android/src/main/java/dev/apexnative/navigation/system/SystemUiLayers.kt +126 -0
- package/android/src/main/java/dev/apexnative/navigation/system/SystemUiOwner.kt +229 -0
- package/android/src/main/java/dev/apexnative/navigation/system/SystemUiRules.kt +302 -0
- package/android/src/main/java/dev/apexnative/navigation/system/SystemUiState.kt +58 -0
- package/android/src/main/java/dev/apexnative/navigation/system/SystemUiWindow.kt +405 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ColorUtils.kt +22 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/DevelopmentLog.kt +45 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/DimensionExtensions.kt +16 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ImageLoader.kt +112 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/MaterialTheme.kt +148 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/NavigationLog.kt +6 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ScrollToTop.kt +33 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/SystemUiUtils.kt +41 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/TestIds.kt +89 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/TextViewUtils.kt +10 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/UiThread.kt +31 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/UiUtils.kt +43 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ViewController.kt +124 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ViewExtensions.kt +41 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ViewUtils.kt +15 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/WindowFolds.kt +107 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/ArrangementController.kt +258 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/ArrangementDefinition.kt +57 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/ArrangementLayout.kt +225 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/ArrangementPlanner.kt +120 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/SecondaryScreenPresenter.kt +31 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsCollapseBehavior.kt +54 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsController.kt +664 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsPresenter.kt +367 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/CustomTabRowGeometry.kt +81 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/CustomTabRowPlacer.kt +223 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabBarLook.kt +74 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabBarMotion.kt +83 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabCellState.kt +27 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabHistory.kt +38 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabItems.kt +172 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabSelection.kt +65 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabsAttach.kt +42 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabsRoom.kt +72 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/child/ChildController.kt +45 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/child/ChildControllersRegistry.kt +29 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ComponentPresenter.kt +90 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ComponentViewController.kt +254 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ContentReadiness.kt +65 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/RenderWait.kt +231 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/RestPlace.kt +28 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenContentFactory.kt +28 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenFocus.kt +22 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenFrame.kt +154 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenReadiness.kt +104 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenSafeArea.kt +148 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/externalcomponent/ExternalComponentCreator.kt +18 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/externalcomponent/ExternalComponentViewController.kt +187 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/externalcomponent/NativeScreens.kt +25 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalAnimations.kt +40 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalContainer.kt +20 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalCoordinator.kt +1269 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalRecord.kt +186 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalSheet.kt +342 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalViews.kt +398 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/SheetContainer.kt +67 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/BackCallbackState.kt +78 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/FirstRootDraw.kt +58 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/LayoutFactory.kt +203 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/Navigator.kt +562 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/Navigators.kt +53 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/RootCoordinator.kt +514 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/WaitingLayer.kt +18 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/overlay/OverlayContainer.kt +33 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/overlay/OverlayCoordinator.kt +383 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/overlay/OverlayTouches.kt +44 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/overlay/OverlayViews.kt +117 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/Capabilities.kt +62 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/ContainerBackground.kt +43 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/ParentController.kt +218 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/ShownChildren.kt +82 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuController.kt +283 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuMotion.kt +276 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuPresenter.kt +92 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuRules.kt +107 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitPanes.kt +59 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitViewController.kt +509 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitViewLayout.kt +61 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitViewPresenter.kt +25 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/PreparedFrame.kt +19 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/PreparedPushes.kt +114 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackCommands.kt +387 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackController.kt +635 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackDisplay.kt +167 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackPresenter.kt +24 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackQueue.kt +1274 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackTransitions.kt +82 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackViews.kt +222 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabPlacement.kt +47 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabPlan.kt +44 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabPresenter.kt +279 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/ScreenSearch.kt +450 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/SearchPanel.kt +176 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/StackSearchPresenter.kt +243 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/BarComponents.kt +211 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/BarRowTransition.kt +122 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/ButtonCells.kt +30 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/ButtonPlaces.kt +65 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/LargeTitleCollapse.kt +71 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/MenuChecks.kt +72 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarCollapseBehavior.kt +104 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarPresenter.kt +1085 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarRoom.kt +95 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarVisibility.kt +122 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/viewcontroller/IReactView.kt +89 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/viewcontroller/Presenter.kt +51 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/viewcontroller/ScrollEventListener.kt +194 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/viewcontroller/ViewController.kt +320 -0
- package/android/src/main/java/dev/apexnative/navigation/views/animations/AnimationRules.kt +141 -0
- package/android/src/main/java/dev/apexnative/navigation/views/animations/Curves.kt +193 -0
- package/android/src/main/java/dev/apexnative/navigation/views/animations/FadeThrough.kt +57 -0
- package/android/src/main/java/dev/apexnative/navigation/views/animations/SideAnimator.kt +143 -0
- package/android/src/main/java/dev/apexnative/navigation/views/animations/SystemTransition.kt +26 -0
- package/android/src/main/java/dev/apexnative/navigation/views/animations/ValueInterpolation.kt +93 -0
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/BottomTabItem.kt +13 -0
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/BottomTabs.kt +550 -0
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/BottomTabsContainer.kt +135 -0
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/BottomTabsLayout.kt +89 -0
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/CustomBottomTabItemView.kt +91 -0
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/CustomTabRow.kt +165 -0
- package/android/src/main/java/dev/apexnative/navigation/views/component/ComponentLayout.kt +89 -0
- package/android/src/main/java/dev/apexnative/navigation/views/component/Renderable.kt +6 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/DrawOrder.kt +44 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/ElementStub.kt +31 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/ElementTransitions.kt +281 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/ImageLoads.kt +103 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/TargetsWait.kt +112 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/TransitionLayer.kt +152 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/TransitionTargets.kt +53 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ElementPictures.kt +46 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/FlightGeometry.kt +53 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ImageMatrixAnimator.kt +138 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PlainViewAnimator.kt +88 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PropertyAnimatorCreator.kt +33 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ReactImageAnimator.kt +66 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/SharedAnimatorFactory.kt +70 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/TextChangeAnimator.kt +179 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ViewChangeAnimator.kt +139 -0
- package/android/src/main/java/dev/apexnative/navigation/views/externalcomponent/ExternalComponentLayout.kt +44 -0
- package/android/src/main/java/dev/apexnative/navigation/views/sidemenu/SideMenuView.kt +183 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/StackLayout.kt +137 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/Fab.kt +125 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabAnimator.kt +8 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabCollapseBehaviour.kt +34 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabMenu.kt +133 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/LargeTitleView.kt +45 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TitleBar.kt +211 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TopBar.kt +407 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TopBarDefaults.kt +35 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/search/ScopeRow.kt +82 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/search/SearchField.kt +130 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/search/SearchStyle.kt +29 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/search/SuggestionList.kt +77 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarButtonComponentCell.kt +80 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonBar.kt +334 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonMenus.kt +106 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/IconBackgroundDrawable.kt +93 -0
- package/android/src/main/jni/ApexNavigationSpec.h +18 -0
- package/android/src/main/jni/CMakeLists.txt +33 -0
- package/android/src/main/res/color/apex_navigation_highlight_inverse.xml +5 -0
- package/android/src/main/res/color/apex_navigation_text_primary.xml +6 -0
- package/android/src/main/res/color/apex_navigation_text_primary_inverse.xml +6 -0
- package/android/src/main/res/color/apex_navigation_text_secondary.xml +6 -0
- package/android/src/main/res/color/apex_navigation_text_secondary_inverse.xml +6 -0
- package/android/src/main/res/drawable/apex_navigation_ic_arrow_back.xml +13 -0
- package/android/src/main/res/drawable/apex_navigation_ic_close.xml +12 -0
- package/android/src/main/res/drawable/ic_fab_add_24dp.xml +12 -0
- package/android/src/main/res/values/attrs.xml +13 -0
- package/android/src/main/res/values/dimens.xml +5 -0
- package/android/src/main/res/values/dimens_splash.xml +9 -0
- package/android/src/main/res/values/ids.xml +12 -0
- package/android/src/main/res/values/styles.xml +18 -0
- package/android/src/main/res/values/themes.xml +75 -0
- package/android/src/main/res/values-night/styles.xml +6 -0
- package/android/src/main/res/values-night/themes.xml +67 -0
- package/cli/app.js +113 -0
- package/cli/changes.js +235 -0
- package/cli/codegen/commands.js +356 -0
- package/cli/codegen/index.js +211 -0
- package/cli/codegen/kotlin.js +396 -0
- package/cli/codegen/names.js +99 -0
- package/cli/codegen/read.js +602 -0
- package/cli/codegen/swift.js +342 -0
- package/cli/config.js +78 -0
- package/cli/diff.js +139 -0
- package/cli/doctor/checks/android.js +217 -0
- package/cli/doctor/checks/app.js +305 -0
- package/cli/doctor/checks/conflicts.js +42 -0
- package/cli/doctor/checks/devices.js +98 -0
- package/cli/doctor/checks/icons.js +69 -0
- package/cli/doctor/checks/ios.js +187 -0
- package/cli/doctor/checks/navigation.js +285 -0
- package/cli/doctor/checks/splash.js +102 -0
- package/cli/doctor/fix.js +66 -0
- package/cli/doctor/index.js +136 -0
- package/cli/doctor/types.js +30 -0
- package/cli/exec.js +34 -0
- package/cli/gradle.js +142 -0
- package/cli/icons/android.js +173 -0
- package/cli/icons/images.js +202 -0
- package/cli/icons/index.js +97 -0
- package/cli/icons/ios.js +113 -0
- package/cli/icons/settings.js +116 -0
- package/cli/images.js +67 -0
- package/cli/index.js +307 -0
- package/cli/info/index.js +290 -0
- package/cli/init/index.js +426 -0
- package/cli/init/packageManager.js +48 -0
- package/cli/init/starter.js +440 -0
- package/cli/links/files.js +109 -0
- package/cli/links/identity.js +75 -0
- package/cli/links/index.js +532 -0
- package/cli/links/native.js +396 -0
- package/cli/links/open.js +120 -0
- package/cli/links/prefixes.js +89 -0
- package/cli/mcp/appMap.js +128 -0
- package/cli/mcp/docs.js +175 -0
- package/cli/mcp/index.js +153 -0
- package/cli/mcp/markdown.js +210 -0
- package/cli/mcp/protocol.js +151 -0
- package/cli/mcp/tools.js +389 -0
- package/cli/migrate/entry.js +451 -0
- package/cli/migrate/index.js +305 -0
- package/cli/migrate/native.js +250 -0
- package/cli/migrate/report.js +238 -0
- package/cli/pods.js +56 -0
- package/cli/project.js +189 -0
- package/cli/screen/index.js +383 -0
- package/cli/screen/templates/compose.js +46 -0
- package/cli/screen/templates/native.js +40 -0
- package/cli/screen/templates/react.js +47 -0
- package/cli/screen/templates/swiftui.js +30 -0
- package/cli/screen/templates/uikit.js +48 -0
- package/cli/screen/templates/views.js +46 -0
- package/cli/setup/index.js +240 -0
- package/cli/setup/source.js +58 -0
- package/cli/setup/steps/app.js +76 -0
- package/cli/setup/steps/appDelegate.js +98 -0
- package/cli/setup/steps/entry.js +68 -0
- package/cli/setup/steps/env.js +245 -0
- package/cli/setup/steps/infoPlist.js +39 -0
- package/cli/setup/steps/mainActivity.js +60 -0
- package/cli/setup/steps/mainApplication.js +58 -0
- package/cli/setup/steps/manifest.js +38 -0
- package/cli/setup/steps/styles.js +29 -0
- package/cli/setup/steps/types.js +14 -0
- package/cli/splash/android.js +239 -0
- package/cli/splash/files.js +50 -0
- package/cli/splash/images.js +117 -0
- package/cli/splash/index.js +109 -0
- package/cli/splash/ios.js +349 -0
- package/cli/splash/settings.js +143 -0
- package/cli/typescript.js +473 -0
- package/cli/ui.js +268 -0
- package/cli/upgrade/changelog.js +45 -0
- package/cli/upgrade/index.js +347 -0
- package/cli/upgrade/versions.js +105 -0
- package/cli/workspace.js +60 -0
- package/cli/xcode/pbxproj.js +327 -0
- package/docs-md/architecture/errors-and-loading.md +138 -0
- package/docs-md/architecture/native-screens.md +290 -0
- package/docs-md/architecture/one-tree.md +164 -0
- package/docs-md/architecture/theme-and-context.md +368 -0
- package/docs-md/architecture/transitions.md +191 -0
- package/docs-md/containers/arrangement.md +320 -0
- package/docs-md/containers/modals.md +195 -0
- package/docs-md/containers/overlays.md +109 -0
- package/docs-md/containers/side-menu.md +138 -0
- package/docs-md/containers/split-view.md +155 -0
- package/docs-md/containers/stack.md +156 -0
- package/docs-md/containers/tabs.md +187 -0
- package/docs-md/flows/a-search-screen.md +311 -0
- package/docs-md/flows/an-app-with-tabs.md +380 -0
- package/docs-md/flows/bottom-sheets.md +326 -0
- package/docs-md/flows/forms-in-a-modal.md +420 -0
- package/docs-md/flows/list-and-details.md +428 -0
- package/docs-md/flows/onboarding.md +454 -0
- package/docs-md/flows/sign-in-and-sign-out.md +693 -0
- package/docs-md/fundamentals/lifecycle-and-events.md +224 -0
- package/docs-md/fundamentals/moving-between-screens.md +267 -0
- package/docs-md/fundamentals/screen-options.md +197 -0
- package/docs-md/fundamentals/screens-and-props.md +314 -0
- package/docs-md/fundamentals/starting-the-app.md +317 -0
- package/docs-md/fundamentals/switching-roots.md +166 -0
- package/docs-md/guides/analytics.md +377 -0
- package/docs-md/guides/app-context.md +554 -0
- package/docs-md/guides/building-a-screen.md +350 -0
- package/docs-md/guides/cli.md +421 -0
- package/docs-md/guides/data-fetching.md +492 -0
- package/docs-md/guides/deep-links.md +694 -0
- package/docs-md/guides/error-reporting.md +290 -0
- package/docs-md/guides/gestures-and-animations.md +381 -0
- package/docs-md/guides/notifications.md +548 -0
- package/docs-md/guides/overview.md +65 -0
- package/docs-md/guides/right-to-left.md +273 -0
- package/docs-md/guides/splash-screen.md +30 -0
- package/docs-md/guides/state-management.md +1050 -0
- package/docs-md/guides/testing.md +293 -0
- package/docs-md/help/glossary.md +433 -0
- package/docs-md/help/troubleshooting.md +709 -0
- package/docs-md/index.json +4205 -0
- package/docs-md/migration/from-expo-router.md +446 -0
- package/docs-md/migration/from-react-native-navigation.md +789 -0
- package/docs-md/migration/from-react-navigation.md +628 -0
- package/docs-md/screen-ui/back-and-gestures.md +178 -0
- package/docs-md/screen-ui/bar-buttons.md +312 -0
- package/docs-md/screen-ui/search.md +181 -0
- package/docs-md/screen-ui/system-ui.md +337 -0
- package/docs-md/screen-ui/toolbar-and-fab.md +146 -0
- package/docs-md/screen-ui/top-bar.md +247 -0
- package/docs-md/start/installation.md +233 -0
- package/docs-md/start/introduction.md +46 -0
- package/docs-md/start/quick-start.md +124 -0
- package/ios/Animations/ANNAnimationRules.h +72 -0
- package/ios/Animations/ANNAnimationRules.mm +122 -0
- package/ios/Animations/ANNFrameDriver.h +46 -0
- package/ios/Animations/ANNFrameDriver.mm +126 -0
- package/ios/Animations/ANNTransitionAnimator.h +34 -0
- package/ios/Animations/ANNTransitionAnimator.mm +293 -0
- package/ios/Animations/ANNTransitionPlan.h +115 -0
- package/ios/Animations/ANNTransitionPlan.mm +130 -0
- package/ios/Animations/ANNTransitionWait.h +29 -0
- package/ios/Animations/ANNTransitionWait.mm +135 -0
- package/ios/Animations/Elements/ANNElementFinder.h +26 -0
- package/ios/Animations/Elements/ANNElementFinder.mm +37 -0
- package/ios/Animations/Elements/ANNElementTransition.h +30 -0
- package/ios/Animations/Elements/ANNElementTransition.mm +75 -0
- package/ios/Animations/Elements/ANNSharedElementFlight.h +42 -0
- package/ios/Animations/Elements/ANNSharedElementFlight.mm +340 -0
- package/ios/Animations/Elements/ANNZoomAnchor.h +33 -0
- package/ios/Animations/Elements/ANNZoomAnchor.mm +133 -0
- package/ios/Animations/Interpolators/ANNCurve.h +61 -0
- package/ios/Animations/Interpolators/ANNCurve.mm +301 -0
- package/ios/Animations/Interpolators/ANNInterpolate.h +69 -0
- package/ios/Animations/Interpolators/ANNTrack.h +52 -0
- package/ios/Animations/Interpolators/ANNTrack.mm +77 -0
- package/ios/Animations/Interpolators/ANNViewTracks.h +57 -0
- package/ios/Animations/Interpolators/ANNViewTracks.mm +261 -0
- package/ios/ApexNavigation-prefix.h +6 -0
- package/ios/CLAUDE.md +151 -0
- package/ios/CORE.md +177 -0
- package/ios/Contract/ANNCommandAnswer.h +38 -0
- package/ios/Contract/ANNCommandAnswer.mm +99 -0
- package/ios/Contract/ANNCommandRunner.h +42 -0
- package/ios/Contract/ANNCommandRunner.mm +89 -0
- package/ios/Contract/ANNErrorTexts.h +86 -0
- package/ios/Contract/ANNErrorTexts.mm +230 -0
- package/ios/Contract/ANNLayoutNode.h +64 -0
- package/ios/Contract/ANNLayoutNode.mm +153 -0
- package/ios/Contract/ANNLayoutReader.h +34 -0
- package/ios/Contract/ANNLayoutReader.mm +282 -0
- package/ios/Contract/ANNLayoutRoot.h +26 -0
- package/ios/Contract/ANNLayoutRoot.mm +21 -0
- package/ios/Contract/ANNLayoutTreeOptions.h +22 -0
- package/ios/Contract/ANNLayoutTreeOptions.mm +32 -0
- package/ios/Contract/ANNLayoutType.h +44 -0
- package/ios/Contract/ANNLayoutValidator.h +23 -0
- package/ios/Contract/ANNLayoutValidator.mm +28 -0
- package/ios/Core/ANNAppDelegate.mm +122 -0
- package/ios/Core/ANNAppDirection.h +43 -0
- package/ios/Core/ANNAppDirection.mm +194 -0
- package/ios/Core/ANNAppearanceDispatcher.h +117 -0
- package/ios/Core/ANNAppearanceDispatcher.mm +433 -0
- package/ios/Core/ANNAssert.h +7 -0
- package/ios/Core/ANNDeepLinkQueue.h +35 -0
- package/ios/Core/ANNDeepLinkQueue.mm +136 -0
- package/ios/Core/ANNErrorHandler.h +17 -0
- package/ios/Core/ANNErrorHandler.mm +14 -0
- package/ios/Core/ANNEventEmitter.h +174 -0
- package/ios/Core/ANNEventEmitter.mm +337 -0
- package/ios/Core/ANNHinge.h +26 -0
- package/ios/Core/ANNHinge.mm +116 -0
- package/ios/Core/ANNKeyCommands.h +12 -0
- package/ios/Core/ANNKeyCommands.mm +74 -0
- package/ios/Core/ANNLayoutInfo.h +18 -0
- package/ios/Core/ANNLayoutInfo.mm +13 -0
- package/ios/Core/ANNLayoutProtocol.h +155 -0
- package/ios/Core/ANNNavigationState.h +38 -0
- package/ios/Core/ANNNavigationState.mm +127 -0
- package/ios/Core/ANNNodeHelper.h +114 -0
- package/ios/Core/ANNNodeHelper.mm +260 -0
- package/ios/Core/ANNNodePresenter.h +86 -0
- package/ios/Core/ANNNodePresenter.mm +92 -0
- package/ios/Core/ANNNodeRegistry.h +30 -0
- package/ios/Core/ANNNodeRegistry.mm +48 -0
- package/ios/Core/ANNOptionsRepaint.h +19 -0
- package/ios/Core/ANNOptionsRepaint.mm +59 -0
- package/ios/Core/ANNParking.h +34 -0
- package/ios/Core/ANNParking.mm +117 -0
- package/ios/Core/ANNPendingLayers.h +31 -0
- package/ios/Core/ANNPendingLayers.mm +57 -0
- package/ios/Core/ANNReloadCoordinator.h +26 -0
- package/ios/Core/ANNReloadCoordinator.mm +211 -0
- package/ios/Core/ANNRenderWait.h +105 -0
- package/ios/Core/ANNRenderWait.mm +496 -0
- package/ios/Core/ANNSceneDelegate.mm +92 -0
- package/ios/Core/ANNScreenAppearance+Internal.h +29 -0
- package/ios/Core/ANNScreenAppearance.h +60 -0
- package/ios/Core/ANNScreenAppearance.mm +44 -0
- package/ios/Core/ANNShownScreens.h +27 -0
- package/ios/Core/ANNShownScreens.mm +16 -0
- package/ios/Core/ANNSystemUI.h +95 -0
- package/ios/Core/ANNSystemUI.mm +401 -0
- package/ios/Core/ANNSystemUIRules.h +35 -0
- package/ios/Core/ANNSystemUIRules.mm +139 -0
- package/ios/Core/ANNUtils.h +35 -0
- package/ios/Core/ANNUtils.mm +111 -0
- package/ios/Core/ApexNavigation+Internal.h +26 -0
- package/ios/Core/ApexNavigation.mm +177 -0
- package/ios/Core/UIViewController+LayoutProtocol.h +102 -0
- package/ios/Core/UIViewController+LayoutProtocol.mm +253 -0
- package/ios/Layouts/Arrangement/ANNArrangementScreenDelegate.h +18 -0
- package/ios/Layouts/Arrangement/ANNArrangementState.h +30 -0
- package/ios/Layouts/Arrangement/ANNArrangementState.mm +53 -0
- package/ios/Layouts/Arrangement/ANNArrangementViewController.h +38 -0
- package/ios/Layouts/Arrangement/ANNArrangementViewController.mm +573 -0
- package/ios/Layouts/External/ANNExternalViewController.h +28 -0
- package/ios/Layouts/External/ANNExternalViewController.mm +118 -0
- package/ios/Layouts/External/ANNNativeScreenCalls.h +27 -0
- package/ios/Layouts/External/ANNNativeScreenCalls.mm +77 -0
- package/ios/Layouts/Modal/ANNModal.h +121 -0
- package/ios/Layouts/Modal/ANNModal.mm +64 -0
- package/ios/Layouts/Modal/ANNModalCoordinator.h +99 -0
- package/ios/Layouts/Modal/ANNModalCoordinator.mm +1965 -0
- package/ios/Layouts/Modal/ANNModalHostViewComponentView.h +13 -0
- package/ios/Layouts/Modal/ANNModalHostViewComponentView.mm +24 -0
- package/ios/Layouts/Modal/ANNModalPresentation.h +73 -0
- package/ios/Layouts/Modal/ANNModalPresentation.mm +189 -0
- package/ios/Layouts/Modal/ANNModalSizePresenter.h +13 -0
- package/ios/Layouts/Modal/ANNModalSizePresenter.mm +65 -0
- package/ios/Layouts/Modal/ANNModalTransitions.h +29 -0
- package/ios/Layouts/Modal/ANNModalTransitions.mm +40 -0
- package/ios/Layouts/Modal/ANNPopoverPresenter.h +29 -0
- package/ios/Layouts/Modal/ANNPopoverPresenter.mm +158 -0
- package/ios/Layouts/Modal/ANNPresentationGate.h +52 -0
- package/ios/Layouts/Modal/ANNPresentationGate.mm +153 -0
- package/ios/Layouts/Modal/ANNSheetPresenter.h +31 -0
- package/ios/Layouts/Modal/ANNSheetPresenter.mm +247 -0
- package/ios/Layouts/Overlay/ANNOverlayCoordinator.h +66 -0
- package/ios/Layouts/Overlay/ANNOverlayCoordinator.mm +604 -0
- package/ios/Layouts/Overlay/ANNOverlayWindow.h +10 -0
- package/ios/Layouts/Overlay/ANNOverlayWindow.mm +71 -0
- package/ios/Layouts/Root/ANNLayoutFactory.h +31 -0
- package/ios/Layouts/Root/ANNLayoutFactory.mm +349 -0
- package/ios/Layouts/Root/ANNRootCoordinator.h +42 -0
- package/ios/Layouts/Root/ANNRootCoordinator.mm +847 -0
- package/ios/Layouts/Root/ANNSplashViewController.h +30 -0
- package/ios/Layouts/Root/ANNSplashViewController.mm +138 -0
- package/ios/Layouts/Screen/ANNComponentPresenter.h +32 -0
- package/ios/Layouts/Screen/ANNComponentPresenter.mm +136 -0
- package/ios/Layouts/Screen/ANNComponentViewController.h +100 -0
- package/ios/Layouts/Screen/ANNComponentViewController.mm +652 -0
- package/ios/Layouts/Screen/ANNNativeScreenContext+Internal.h +19 -0
- package/ios/Layouts/Screen/ANNNativeScreenContext.mm +84 -0
- package/ios/Layouts/Screen/ANNPreviewInteraction.h +38 -0
- package/ios/Layouts/Screen/ANNPreviewInteraction.mm +252 -0
- package/ios/Layouts/Screen/ANNScreenBars.h +29 -0
- package/ios/Layouts/Screen/ANNScreenBars.mm +47 -0
- package/ios/Layouts/Screen/ANNScreenInsets.h +30 -0
- package/ios/Layouts/Screen/ANNScreenInsets.mm +68 -0
- package/ios/Layouts/Screen/ANNScreenReadiness.h +92 -0
- package/ios/Layouts/Screen/ANNScreenReadiness.mm +186 -0
- package/ios/Layouts/Screen/ANNScreenRegions.h +33 -0
- package/ios/Layouts/Screen/ANNScreenRegions.mm +105 -0
- package/ios/Layouts/Screen/ANNScreenSafeArea.h +38 -0
- package/ios/Layouts/Screen/ANNScreenSafeArea.mm +58 -0
- package/ios/Layouts/SideMenu/ANNSideMenuChildViewController.h +41 -0
- package/ios/Layouts/SideMenu/ANNSideMenuChildViewController.mm +113 -0
- package/ios/Layouts/SideMenu/ANNSideMenuPresenter.h +28 -0
- package/ios/Layouts/SideMenu/ANNSideMenuPresenter.mm +260 -0
- package/ios/Layouts/SideMenu/ANNSideMenuTypes.h +19 -0
- package/ios/Layouts/SideMenu/ANNSideMenuViewController.h +46 -0
- package/ios/Layouts/SideMenu/ANNSideMenuViewController.mm +891 -0
- package/ios/Layouts/SplitView/ANNSplitViewCommands.h +39 -0
- package/ios/Layouts/SplitView/ANNSplitViewCommands.mm +612 -0
- package/ios/Layouts/SplitView/ANNSplitViewController.h +52 -0
- package/ios/Layouts/SplitView/ANNSplitViewController.mm +494 -0
- package/ios/Layouts/SplitView/ANNSplitViewPresenter.h +18 -0
- package/ios/Layouts/SplitView/ANNSplitViewPresenter.mm +181 -0
- package/ios/Layouts/SplitView/UISplitViewController+ANNOptions.h +32 -0
- package/ios/Layouts/SplitView/UISplitViewController+ANNOptions.mm +133 -0
- package/ios/Layouts/Stack/ANNPreviewPush.h +46 -0
- package/ios/Layouts/Stack/ANNPreviewPush.mm +298 -0
- package/ios/Layouts/Stack/ANNStackAnimatingDelegate.h +32 -0
- package/ios/Layouts/Stack/ANNStackAnimatingDelegate.mm +92 -0
- package/ios/Layouts/Stack/ANNStackCommands.h +51 -0
- package/ios/Layouts/Stack/ANNStackCommands.mm +403 -0
- package/ios/Layouts/Stack/ANNStackController.h +161 -0
- package/ios/Layouts/Stack/ANNStackController.mm +1597 -0
- package/ios/Layouts/Stack/ANNStackPresenter.h +44 -0
- package/ios/Layouts/Stack/ANNStackPresenter.mm +181 -0
- package/ios/Layouts/Stack/ANNStackQueue.h +194 -0
- package/ios/Layouts/Stack/ANNStackQueue.mm +1300 -0
- package/ios/Layouts/Stack/InteractivePopGestureDelegate.h +53 -0
- package/ios/Layouts/Stack/InteractivePopGestureDelegate.mm +228 -0
- package/ios/Layouts/Stack/UINavigationController+ANNCommands.h +19 -0
- package/ios/Layouts/Stack/UINavigationController+ANNCommands.mm +29 -0
- package/ios/Layouts/Tabs/ANNBottomTabCellView.h +33 -0
- package/ios/Layouts/Tabs/ANNBottomTabCellView.mm +100 -0
- package/ios/Layouts/Tabs/ANNBottomTabItemBuilder.h +49 -0
- package/ios/Layouts/Tabs/ANNBottomTabItemBuilder.mm +153 -0
- package/ios/Layouts/Tabs/ANNBottomTabsAccessoryView.h +17 -0
- package/ios/Layouts/Tabs/ANNBottomTabsAccessoryView.mm +56 -0
- package/ios/Layouts/Tabs/ANNBottomTabsController.h +121 -0
- package/ios/Layouts/Tabs/ANNBottomTabsController.mm +1404 -0
- package/ios/Layouts/Tabs/ANNBottomTabsCustomRow.h +47 -0
- package/ios/Layouts/Tabs/ANNBottomTabsCustomRow.mm +280 -0
- package/ios/Layouts/Tabs/ANNBottomTabsPresenter.h +81 -0
- package/ios/Layouts/Tabs/ANNBottomTabsPresenter.mm +1026 -0
- package/ios/Layouts/Tabs/ANNMoreNavigationDelegate.h +24 -0
- package/ios/Layouts/Tabs/ANNMoreNavigationDelegate.mm +58 -0
- package/ios/Layouts/Tabs/ANNScrollToTop.h +23 -0
- package/ios/Layouts/Tabs/ANNScrollToTop.mm +55 -0
- package/ios/Layouts/Tabs/ANNTabDotView.h +19 -0
- package/ios/Layouts/Tabs/ANNTabDotView.mm +46 -0
- package/ios/Layouts/Tabs/ANNTabLongPress.h +28 -0
- package/ios/Layouts/Tabs/ANNTabLongPress.mm +98 -0
- package/ios/Layouts/Tabs/ANNTabsDesign.h +26 -0
- package/ios/Layouts/Tabs/ANNTabsDesign.mm +34 -0
- package/ios/Layouts/Tabs/ANNTabsPreloadWindow.h +27 -0
- package/ios/Layouts/Tabs/ANNTabsPreloadWindow.mm +55 -0
- package/ios/Layouts/Tabs/UITabBar+utils.h +24 -0
- package/ios/Layouts/Tabs/UITabBar+utils.mm +103 -0
- package/ios/Options/ANNAnimationOptions.h +22 -0
- package/ios/Options/ANNAnimationOptions.mm +16 -0
- package/ios/Options/ANNAnimationPropertyOptions.h +17 -0
- package/ios/Options/ANNAnimationPropertyOptions.mm +15 -0
- package/ios/Options/ANNBottomTabDotIndicatorOptions.h +14 -0
- package/ios/Options/ANNBottomTabDotIndicatorOptions.mm +13 -0
- package/ios/Options/ANNBottomTabOptions.h +51 -0
- package/ios/Options/ANNBottomTabOptions.mm +47 -0
- package/ios/Options/ANNBottomTabsAccessoryOptions.h +19 -0
- package/ios/Options/ANNBottomTabsAccessoryOptions.mm +25 -0
- package/ios/Options/ANNBottomTabsAnimationOptions.h +12 -0
- package/ios/Options/ANNBottomTabsAnimationOptions.mm +11 -0
- package/ios/Options/ANNBottomTabsCustomRowOptions.h +19 -0
- package/ios/Options/ANNBottomTabsCustomRowOptions.mm +17 -0
- package/ios/Options/ANNBottomTabsOptions.h +51 -0
- package/ios/Options/ANNBottomTabsOptions.mm +48 -0
- package/ios/Options/ANNBottomTabsShadowOptions.h +14 -0
- package/ios/Options/ANNBottomTabsShadowOptions.mm +13 -0
- package/ios/Options/ANNButtonComponentOptions.h +13 -0
- package/ios/Options/ANNButtonComponentOptions.mm +12 -0
- package/ios/Options/ANNButtonOptions.h +56 -0
- package/ios/Options/ANNButtonOptions.mm +53 -0
- package/ios/Options/ANNButtonsParser.h +13 -0
- package/ios/Options/ANNButtonsParser.mm +18 -0
- package/ios/Options/ANNComponentOptions.h +14 -0
- package/ios/Options/ANNComponentOptions.mm +12 -0
- package/ios/Options/ANNDefaultOptions.h +18 -0
- package/ios/Options/ANNDefaultOptions.mm +22 -0
- package/ios/Options/ANNElementAnimationOptions.h +18 -0
- package/ios/Options/ANNElementAnimationOptions.mm +15 -0
- package/ios/Options/ANNElementTransitionOptions.h +26 -0
- package/ios/Options/ANNElementTransitionOptions.mm +28 -0
- package/ios/Options/ANNEnterExitBottomTabsAnimationOptions.h +14 -0
- package/ios/Options/ANNEnterExitBottomTabsAnimationOptions.mm +12 -0
- package/ios/Options/ANNEnterExitScreenAnimationOptions.h +14 -0
- package/ios/Options/ANNEnterExitScreenAnimationOptions.mm +12 -0
- package/ios/Options/ANNEnterExitTopBarAnimationOptions.h +14 -0
- package/ios/Options/ANNEnterExitTopBarAnimationOptions.mm +12 -0
- package/ios/Options/ANNFabOptions.h +26 -0
- package/ios/Options/ANNFabOptions.mm +23 -0
- package/ios/Options/ANNFontOptions.h +24 -0
- package/ios/Options/ANNFontOptions.mm +65 -0
- package/ios/Options/ANNHardwareBackButtonOptions.h +15 -0
- package/ios/Options/ANNHardwareBackButtonOptions.mm +13 -0
- package/ios/Options/ANNIconBackgroundOptions.h +16 -0
- package/ios/Options/ANNIconBackgroundOptions.mm +15 -0
- package/ios/Options/ANNIconInsetsOptions.h +16 -0
- package/ios/Options/ANNIconInsetsOptions.mm +14 -0
- package/ios/Options/ANNInterpolationOptions.h +22 -0
- package/ios/Options/ANNInterpolationOptions.mm +22 -0
- package/ios/Options/ANNLayoutOptions.h +26 -0
- package/ios/Options/ANNLayoutOptions.mm +25 -0
- package/ios/Options/ANNMenuOptions.h +37 -0
- package/ios/Options/ANNMenuOptions.mm +136 -0
- package/ios/Options/ANNModalAnimationOptions.h +17 -0
- package/ios/Options/ANNModalAnimationOptions.mm +15 -0
- package/ios/Options/ANNModalContentSizeOptions.h +14 -0
- package/ios/Options/ANNModalContentSizeOptions.mm +15 -0
- package/ios/Options/ANNModalOptions.h +19 -0
- package/ios/Options/ANNModalOptions.mm +15 -0
- package/ios/Options/ANNNavigationBarOptions.h +14 -0
- package/ios/Options/ANNNavigationBarOptions.mm +13 -0
- package/ios/Options/ANNNavigationOptions.h +60 -0
- package/ios/Options/ANNNavigationOptions.mm +54 -0
- package/ios/Options/ANNOptionField.h +91 -0
- package/ios/Options/ANNOptionField.mm +173 -0
- package/ios/Options/ANNOptions.h +62 -0
- package/ios/Options/ANNOptions.mm +329 -0
- package/ios/Options/ANNOptionsCache.h +22 -0
- package/ios/Options/ANNOptionsCache.mm +17 -0
- package/ios/Options/ANNOptionsReader.h +33 -0
- package/ios/Options/ANNOptionsReader.mm +63 -0
- package/ios/Options/ANNOverlayOptions.h +14 -0
- package/ios/Options/ANNOverlayOptions.mm +12 -0
- package/ios/Options/ANNPopoverOptions.h +17 -0
- package/ios/Options/ANNPopoverOptions.mm +31 -0
- package/ios/Options/ANNPreviewOptions.h +17 -0
- package/ios/Options/ANNPreviewOptions.mm +15 -0
- package/ios/Options/ANNScreenAnimationOptions.h +13 -0
- package/ios/Options/ANNScreenAnimationOptions.mm +12 -0
- package/ios/Options/ANNScrollEdgeEffectOptions.h +20 -0
- package/ios/Options/ANNScrollEdgeEffectOptions.mm +16 -0
- package/ios/Options/ANNScrollEdgeOptions.h +14 -0
- package/ios/Options/ANNScrollEdgeOptions.mm +12 -0
- package/ios/Options/ANNSearchBarOptions.h +49 -0
- package/ios/Options/ANNSearchBarOptions.mm +41 -0
- package/ios/Options/ANNSearchScopeOptions.h +15 -0
- package/ios/Options/ANNSearchScopeOptions.mm +13 -0
- package/ios/Options/ANNSearchSuggestionOptions.h +19 -0
- package/ios/Options/ANNSearchSuggestionOptions.mm +16 -0
- package/ios/Options/ANNSearchTokenOptions.h +18 -0
- package/ios/Options/ANNSearchTokenOptions.mm +15 -0
- package/ios/Options/ANNSetStackRootAnimationOptions.h +12 -0
- package/ios/Options/ANNSetStackRootAnimationOptions.mm +11 -0
- package/ios/Options/ANNSharedElementTransitionOptions.h +17 -0
- package/ios/Options/ANNSharedElementTransitionOptions.mm +15 -0
- package/ios/Options/ANNSheetOptions.h +25 -0
- package/ios/Options/ANNSheetOptions.mm +41 -0
- package/ios/Options/ANNSideMenuOptions.h +19 -0
- package/ios/Options/ANNSideMenuOptions.mm +16 -0
- package/ios/Options/ANNSideMenuSideOptions.h +23 -0
- package/ios/Options/ANNSideMenuSideOptions.mm +20 -0
- package/ios/Options/ANNSplitViewColumnOptions.h +14 -0
- package/ios/Options/ANNSplitViewColumnOptions.mm +13 -0
- package/ios/Options/ANNSplitViewInspectorOptions.h +13 -0
- package/ios/Options/ANNSplitViewInspectorOptions.mm +9 -0
- package/ios/Options/ANNSplitViewOptions.h +29 -0
- package/ios/Options/ANNSplitViewOptions.mm +26 -0
- package/ios/Options/ANNStackAnimationOptions.h +23 -0
- package/ios/Options/ANNStackAnimationOptions.mm +20 -0
- package/ios/Options/ANNStackPushAnimationOptions.h +13 -0
- package/ios/Options/ANNStackPushAnimationOptions.mm +11 -0
- package/ios/Options/ANNStatusBarOptions.h +20 -0
- package/ios/Options/ANNStatusBarOptions.mm +18 -0
- package/ios/Options/ANNToolbarOptions.h +14 -0
- package/ios/Options/ANNToolbarOptions.mm +27 -0
- package/ios/Options/ANNTopBarAnimationOptions.h +12 -0
- package/ios/Options/ANNTopBarAnimationOptions.mm +11 -0
- package/ios/Options/ANNTopBarBackButtonOptions.h +31 -0
- package/ios/Options/ANNTopBarBackButtonOptions.mm +35 -0
- package/ios/Options/ANNTopBarBackgroundComponentOptions.h +13 -0
- package/ios/Options/ANNTopBarBackgroundComponentOptions.mm +11 -0
- package/ios/Options/ANNTopBarBackgroundOptions.h +17 -0
- package/ios/Options/ANNTopBarBackgroundOptions.mm +15 -0
- package/ios/Options/ANNTopBarLargeTitleOptions.h +19 -0
- package/ios/Options/ANNTopBarLargeTitleOptions.mm +15 -0
- package/ios/Options/ANNTopBarOptions.h +62 -0
- package/ios/Options/ANNTopBarOptions.mm +49 -0
- package/ios/Options/ANNTopBarScrollEdgeAppearanceBackgroundOptions.h +14 -0
- package/ios/Options/ANNTopBarScrollEdgeAppearanceBackgroundOptions.mm +12 -0
- package/ios/Options/ANNTopBarScrollEdgeAppearanceOptions.h +19 -0
- package/ios/Options/ANNTopBarScrollEdgeAppearanceOptions.mm +16 -0
- package/ios/Options/ANNTopBarScrollEdgeAppearanceTitleOptions.h +16 -0
- package/ios/Options/ANNTopBarScrollEdgeAppearanceTitleOptions.mm +12 -0
- package/ios/Options/ANNTopBarSubtitleOptions.h +18 -0
- package/ios/Options/ANNTopBarSubtitleOptions.mm +14 -0
- package/ios/Options/ANNTopBarTitleComponentOptions.h +15 -0
- package/ios/Options/ANNTopBarTitleComponentOptions.mm +12 -0
- package/ios/Options/ANNTopBarTitleDocumentOptions.h +12 -0
- package/ios/Options/ANNTopBarTitleDocumentOptions.mm +11 -0
- package/ios/Options/ANNTopBarTitleOptions.h +29 -0
- package/ios/Options/ANNTopBarTitleOptions.mm +21 -0
- package/ios/Options/ANNViewAnimationOptions.h +26 -0
- package/ios/Options/ANNViewAnimationOptions.mm +58 -0
- package/ios/Options/ANNWindowOptions.h +12 -0
- package/ios/Options/ANNWindowOptions.mm +9 -0
- package/ios/Options/ANNZoomTransitionOptions.h +13 -0
- package/ios/Options/ANNZoomTransitionOptions.mm +12 -0
- package/ios/Options/Params/ANNIntegerParam.h +14 -0
- package/ios/Options/Params/ANNIntegerParam.mm +13 -0
- package/ios/Options/Params/ANNParam.h +28 -0
- package/ios/Options/Params/ANNParam.mm +29 -0
- package/ios/Options/Params/Bool.h +17 -0
- package/ios/Options/Params/Bool.mm +17 -0
- package/ios/Options/Params/BoolParser.h +12 -0
- package/ios/Options/Params/BoolParser.mm +10 -0
- package/ios/Options/Params/Color.h +43 -0
- package/ios/Options/Params/Color.mm +65 -0
- package/ios/Options/Params/ColorParser.h +14 -0
- package/ios/Options/Params/ColorParser.mm +95 -0
- package/ios/Options/Params/Double.h +14 -0
- package/ios/Options/Params/Double.mm +13 -0
- package/ios/Options/Params/DoubleParser.h +16 -0
- package/ios/Options/Params/DoubleParser.mm +16 -0
- package/ios/Options/Params/Image.h +15 -0
- package/ios/Options/Params/Image.mm +13 -0
- package/ios/Options/Params/ImageParser.h +16 -0
- package/ios/Options/Params/ImageParser.mm +103 -0
- package/ios/Options/Params/Number.h +14 -0
- package/ios/Options/Params/Number.mm +13 -0
- package/ios/Options/Params/NumberParser.h +13 -0
- package/ios/Options/Params/NumberParser.mm +10 -0
- package/ios/Options/Params/Param.h +16 -0
- package/ios/Options/Params/Param.mm +13 -0
- package/ios/Options/Params/Text.h +17 -0
- package/ios/Options/Params/Text.mm +17 -0
- package/ios/Options/Params/TextParser.h +17 -0
- package/ios/Options/Params/TextParser.mm +17 -0
- package/ios/Package.swift +58 -0
- package/ios/Public/ApexNavigation/ANNAppDelegate.h +66 -0
- package/ios/Public/ApexNavigation/ANNSceneDelegate.h +19 -0
- package/ios/Public/ApexNavigation/ApexNavigation.h +92 -0
- package/ios/Public/module.modulemap +8 -0
- package/ios/RECIPES.md +41 -0
- package/ios/React/ANNComponentType.h +22 -0
- package/ios/React/ANNComponentViewCreator.h +18 -0
- package/ios/React/ANNReactComponentRegistry.h +53 -0
- package/ios/React/ANNReactComponentRegistry.mm +153 -0
- package/ios/React/ANNReactView.h +104 -0
- package/ios/React/ANNReactView.mm +374 -0
- package/ios/React/ANNReactViewCreator.h +20 -0
- package/ios/React/ANNReactViewCreator.mm +42 -0
- package/ios/React/ANNSafeAreaViewComponentView.h +13 -0
- package/ios/React/ANNSafeAreaViewComponentView.mm +153 -0
- package/ios/React/ANNSurfaceHostingView.h +17 -0
- package/ios/React/ANNSurfaceHostingView.mm +68 -0
- package/ios/React/Slots/ANNSlotComponentView.h +10 -0
- package/ios/React/Slots/ANNSlotComponentView.mm +122 -0
- package/ios/React/Slots/ANNSlotContainers.h +34 -0
- package/ios/React/Slots/ANNSlotContainers.mm +39 -0
- package/ios/React/Slots/ANNSlotContentView.h +12 -0
- package/ios/React/Slots/ANNSlotContentView.mm +18 -0
- package/ios/React/Slots/ANNSlotHost.h +29 -0
- package/ios/React/Slots/ANNSlotHost.mm +59 -0
- package/ios/React/Slots/ANNSlotScreenView.h +38 -0
- package/ios/React/Slots/ANNSlotScreenView.mm +254 -0
- package/ios/TopBar/ANNBackButtonPresenter.h +35 -0
- package/ios/TopBar/ANNBackButtonPresenter.mm +187 -0
- package/ios/TopBar/ANNBarAppearance.h +53 -0
- package/ios/TopBar/ANNBarAppearance.mm +278 -0
- package/ios/TopBar/ANNBarBackgroundComponent.h +46 -0
- package/ios/TopBar/ANNBarBackgroundComponent.mm +163 -0
- package/ios/TopBar/ANNBarButtonComponentView.h +30 -0
- package/ios/TopBar/ANNBarButtonComponentView.mm +110 -0
- package/ios/TopBar/ANNBarButtons.h +65 -0
- package/ios/TopBar/ANNBarButtons.mm +1125 -0
- package/ios/TopBar/ANNBarComponentsWait.h +37 -0
- package/ios/TopBar/ANNBarComponentsWait.mm +116 -0
- package/ios/TopBar/ANNIconButtonImage.h +25 -0
- package/ios/TopBar/ANNIconButtonImage.mm +94 -0
- package/ios/TopBar/ANNLargeTitlePresenter.h +117 -0
- package/ios/TopBar/ANNLargeTitlePresenter.mm +402 -0
- package/ios/TopBar/ANNMainList.h +28 -0
- package/ios/TopBar/ANNMainList.mm +72 -0
- package/ios/TopBar/ANNScrollEdgeEffects.h +29 -0
- package/ios/TopBar/ANNScrollEdgeEffects.mm +122 -0
- package/ios/TopBar/ANNSearchPresenter.h +29 -0
- package/ios/TopBar/ANNSearchPresenter.mm +637 -0
- package/ios/TopBar/ANNSearchResultsViewController.h +16 -0
- package/ios/TopBar/ANNSearchResultsViewController.mm +56 -0
- package/ios/TopBar/ANNShowTextButton.h +22 -0
- package/ios/TopBar/ANNShowTextButton.mm +63 -0
- package/ios/TopBar/ANNTitleComponentView.h +37 -0
- package/ios/TopBar/ANNTitleComponentView.mm +86 -0
- package/ios/TopBar/ANNTitleGlassView.h +33 -0
- package/ios/TopBar/ANNTitleGlassView.mm +126 -0
- package/ios/TopBar/ANNTitleView.h +18 -0
- package/ios/TopBar/ANNTitleView.mm +63 -0
- package/ios/TopBar/ANNToolbarPresenter.h +26 -0
- package/ios/TopBar/ANNToolbarPresenter.mm +24 -0
- package/ios/TopBar/ANNTopBarPresenter.h +120 -0
- package/ios/TopBar/ANNTopBarPresenter.mm +1252 -0
- package/ios/TopBar/ANNUIBarButtonItem.h +16 -0
- package/ios/TopBar/ANNUIBarButtonItem.mm +5 -0
- package/ios/TurboModules/ANNTurboEventEmitter.h +31 -0
- package/ios/TurboModules/ANNTurboEventEmitter.mm +129 -0
- package/ios/TurboModules/ANNTurboModule.h +11 -0
- package/ios/TurboModules/ANNTurboModule.mm +626 -0
- package/ios/Utils/UIColor+ANNLuminance.h +13 -0
- package/ios/Utils/UIColor+ANNLuminance.mm +32 -0
- package/ios/Utils/UIView+Utils.h +12 -0
- package/ios/Utils/UIView+Utils.mm +21 -0
- package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSafeAreaViewComponentDescriptor.h +19 -0
- package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSafeAreaViewShadowNode.h +60 -0
- package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSafeAreaViewState.h +33 -0
- package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotComponentDescriptor.h +22 -0
- package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotShadowNode.h +87 -0
- package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotState.h +101 -0
- package/lib/module/ARCHITECTURE.md +289 -0
- package/lib/module/adapters/NativeANNTurboEventEmitter.js +12 -0
- package/lib/module/adapters/NativeANNTurboEventEmitter.js.map +1 -0
- package/lib/module/adapters/NativeANNTurboModule.js +13 -0
- package/lib/module/adapters/NativeANNTurboModule.js.map +1 -0
- package/lib/module/api/app/AppRegistry.js +52 -0
- package/lib/module/api/app/AppRegistry.js.map +1 -0
- package/lib/module/api/app/activeApp.js +12 -0
- package/lib/module/api/app/activeApp.js.map +1 -0
- package/lib/module/api/app/createNavigation.js +365 -0
- package/lib/module/api/app/createNavigation.js.map +1 -0
- package/lib/module/api/app/roots.js +20 -0
- package/lib/module/api/app/roots.js.map +1 -0
- package/lib/module/api/app/splash.js +124 -0
- package/lib/module/api/app/splash.js.map +1 -0
- package/lib/module/api/app/startFailure.js +38 -0
- package/lib/module/api/app/startFailure.js.map +1 -0
- package/lib/module/api/arrangement/arrangementState.js +86 -0
- package/lib/module/api/arrangement/arrangementState.js.map +1 -0
- package/lib/module/api/commands/commands.js +375 -0
- package/lib/module/api/commands/commands.js.map +1 -0
- package/lib/module/api/commands/errors.js +94 -0
- package/lib/module/api/commands/errors.js.map +1 -0
- package/lib/module/api/commands/presentation.js +4 -0
- package/lib/module/api/commands/presentation.js.map +1 -0
- package/lib/module/api/commands/sideMenus.js +134 -0
- package/lib/module/api/commands/sideMenus.js.map +1 -0
- package/lib/module/api/commands/transitions.js +245 -0
- package/lib/module/api/commands/transitions.js.map +1 -0
- package/lib/module/api/context/appContext.js +22 -0
- package/lib/module/api/context/appContext.js.map +1 -0
- package/lib/module/api/events/navigationEvents.js +69 -0
- package/lib/module/api/events/navigationEvents.js.map +1 -0
- package/lib/module/api/events/screenLifecycle.js +30 -0
- package/lib/module/api/events/screenLifecycle.js.map +1 -0
- package/lib/module/api/events/tabPresses.js +32 -0
- package/lib/module/api/events/tabPresses.js.map +1 -0
- package/lib/module/api/hinge/hinge.js +73 -0
- package/lib/module/api/hinge/hinge.js.map +1 -0
- package/lib/module/api/hooks/appHooks.js +26 -0
- package/lib/module/api/hooks/appHooks.js.map +1 -0
- package/lib/module/api/hooks/screenHooks.js +250 -0
- package/lib/module/api/hooks/screenHooks.js.map +1 -0
- package/lib/module/api/hooks/useArrangement.js +24 -0
- package/lib/module/api/hooks/useArrangement.js.map +1 -0
- package/lib/module/api/hooks/useHinge.js +29 -0
- package/lib/module/api/hooks/useHinge.js.map +1 -0
- package/lib/module/api/hooks/useNavigation.js +117 -0
- package/lib/module/api/hooks/useNavigation.js.map +1 -0
- package/lib/module/api/hooks/usePendingLink.js +12 -0
- package/lib/module/api/hooks/usePendingLink.js.map +1 -0
- package/lib/module/api/hooks/usePreview.js +97 -0
- package/lib/module/api/hooks/usePreview.js.map +1 -0
- package/lib/module/api/hooks/useReservedRegions.js +24 -0
- package/lib/module/api/hooks/useReservedRegions.js.map +1 -0
- package/lib/module/api/hooks/useSafeAreaInsets.js +25 -0
- package/lib/module/api/hooks/useSafeAreaInsets.js.map +1 -0
- package/lib/module/api/index.js +26 -0
- package/lib/module/api/index.js.map +1 -0
- package/lib/module/api/layout/Root.js +121 -0
- package/lib/module/api/layout/Root.js.map +1 -0
- package/lib/module/api/layout/Screen.js +52 -0
- package/lib/module/api/layout/Screen.js.map +1 -0
- package/lib/module/api/layout/SideMenu.js +85 -0
- package/lib/module/api/layout/SideMenu.js.map +1 -0
- package/lib/module/api/layout/SplitView.js +137 -0
- package/lib/module/api/layout/SplitView.js.map +1 -0
- package/lib/module/api/layout/Stack.js +36 -0
- package/lib/module/api/layout/Stack.js.map +1 -0
- package/lib/module/api/layout/Tabs.js +326 -0
- package/lib/module/api/layout/Tabs.js.map +1 -0
- package/lib/module/api/layout/element.js +100 -0
- package/lib/module/api/layout/element.js.map +1 -0
- package/lib/module/api/linking/linkPaths.js +132 -0
- package/lib/module/api/linking/linkPaths.js.map +1 -0
- package/lib/module/api/linking/linking.js +244 -0
- package/lib/module/api/linking/linking.js.map +1 -0
- package/lib/module/api/linking/pendingLinks.js +34 -0
- package/lib/module/api/linking/pendingLinks.js.map +1 -0
- package/lib/module/api/linking/types.js +4 -0
- package/lib/module/api/linking/types.js.map +1 -0
- package/lib/module/api/navigation.js +105 -0
- package/lib/module/api/navigation.js.map +1 -0
- package/lib/module/api/options/OptionsChain.js +158 -0
- package/lib/module/api/options/OptionsChain.js.map +1 -0
- package/lib/module/api/options/ScreenOptions.js +83 -0
- package/lib/module/api/options/ScreenOptions.js.map +1 -0
- package/lib/module/api/options/buttons.js +4 -0
- package/lib/module/api/options/buttons.js.map +1 -0
- package/lib/module/api/safeArea/ANNSafeAreaViewNativeComponent.ts +28 -0
- package/lib/module/api/safeArea/screenInsets.js +86 -0
- package/lib/module/api/safeArea/screenInsets.js.map +1 -0
- package/lib/module/api/safeArea/screenRegions.js +84 -0
- package/lib/module/api/safeArea/screenRegions.js.map +1 -0
- package/lib/module/api/screens/ScreenBoundary.js +44 -0
- package/lib/module/api/screens/ScreenBoundary.js.map +1 -0
- package/lib/module/api/screens/arrangement.js +63 -0
- package/lib/module/api/screens/arrangement.js.map +1 -0
- package/lib/module/api/screens/defineScreen.js +29 -0
- package/lib/module/api/screens/defineScreen.js.map +1 -0
- package/lib/module/api/screens/nativeScreenCalls.js +34 -0
- package/lib/module/api/screens/nativeScreenCalls.js.map +1 -0
- package/lib/module/api/screens/nativeScreens.js +43 -0
- package/lib/module/api/screens/nativeScreens.js.map +1 -0
- package/lib/module/api/screens/registerScreens.js +305 -0
- package/lib/module/api/screens/registerScreens.js.map +1 -0
- package/lib/module/api/slots/ANNSlotNativeComponent.ts +23 -0
- package/lib/module/api/slots/SlotHost.js +92 -0
- package/lib/module/api/slots/SlotHost.js.map +1 -0
- package/lib/module/api/state/navigationState.js +98 -0
- package/lib/module/api/state/navigationState.js.map +1 -0
- package/lib/module/api/testIDs.js +14 -0
- package/lib/module/api/testIDs.js.map +1 -0
- package/lib/module/api/theme/theme.js +180 -0
- package/lib/module/api/theme/theme.js.map +1 -0
- package/lib/module/api/types.js +4 -0
- package/lib/module/api/types.js.map +1 -0
- package/lib/module/engine/backListeners.js +39 -0
- package/lib/module/engine/backListeners.js.map +1 -0
- package/lib/module/engine/buttons.js +105 -0
- package/lib/module/engine/buttons.js.map +1 -0
- package/lib/module/engine/commands.js +388 -0
- package/lib/module/engine/commands.js.map +1 -0
- package/lib/module/engine/events.js +30 -0
- package/lib/module/engine/events.js.map +1 -0
- package/lib/module/engine/ids.js +10 -0
- package/lib/module/engine/ids.js.map +1 -0
- package/lib/module/engine/launchState.js +34 -0
- package/lib/module/engine/launchState.js.map +1 -0
- package/lib/module/engine/layout.js +202 -0
- package/lib/module/engine/layout.js.map +1 -0
- package/lib/module/engine/mergeOptions.js +23 -0
- package/lib/module/engine/mergeOptions.js.map +1 -0
- package/lib/module/engine/native.js +45 -0
- package/lib/module/engine/native.js.map +1 -0
- package/lib/module/engine/nativeScreens.js +265 -0
- package/lib/module/engine/nativeScreens.js.map +1 -0
- package/lib/module/engine/options.js +170 -0
- package/lib/module/engine/options.js.map +1 -0
- package/lib/module/engine/places.js +178 -0
- package/lib/module/engine/places.js.map +1 -0
- package/lib/module/engine/props.js +44 -0
- package/lib/module/engine/props.js.map +1 -0
- package/lib/module/engine/reactMeasures.js +23 -0
- package/lib/module/engine/reactMeasures.js.map +1 -0
- package/lib/module/engine/rememberedOptions.js +118 -0
- package/lib/module/engine/rememberedOptions.js.map +1 -0
- package/lib/module/engine/screens.js +194 -0
- package/lib/module/engine/screens.js.map +1 -0
- package/lib/module/engine/slots.js +200 -0
- package/lib/module/engine/slots.js.map +1 -0
- package/lib/module/engine/tabs.js +79 -0
- package/lib/module/engine/tabs.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/interfaces/ComponentEvents.js +2 -0
- package/lib/module/interfaces/ComponentEvents.js.map +1 -0
- package/lib/module/interfaces/Events.js +2 -0
- package/lib/module/interfaces/Events.js.map +1 -0
- package/lib/module/interfaces/Layout.js +4 -0
- package/lib/module/interfaces/Layout.js.map +1 -0
- package/lib/module/interfaces/Options.js +4 -0
- package/lib/module/interfaces/Options.js.map +1 -0
- package/lib/module/interfaces/options/animations.js +2 -0
- package/lib/module/interfaces/options/animations.js.map +1 -0
- package/lib/module/interfaces/options/bottomTabs.js +4 -0
- package/lib/module/interfaces/options/bottomTabs.js.map +1 -0
- package/lib/module/interfaces/options/buttons.js +4 -0
- package/lib/module/interfaces/options/buttons.js.map +1 -0
- package/lib/module/interfaces/options/common.js +4 -0
- package/lib/module/interfaces/options/common.js.map +1 -0
- package/lib/module/interfaces/options/modals.js +2 -0
- package/lib/module/interfaces/options/modals.js.map +1 -0
- package/lib/module/interfaces/options/preview.js +2 -0
- package/lib/module/interfaces/options/preview.js.map +1 -0
- package/lib/module/interfaces/options/sideMenu.js +2 -0
- package/lib/module/interfaces/options/sideMenu.js.map +1 -0
- package/lib/module/interfaces/options/splitView.js +2 -0
- package/lib/module/interfaces/options/splitView.js.map +1 -0
- package/lib/module/interfaces/options/stack.js +4 -0
- package/lib/module/interfaces/options/stack.js.map +1 -0
- package/lib/module/interfaces/options/system.js +4 -0
- package/lib/module/interfaces/options/system.js.map +1 -0
- package/lib/module/interfaces/options/toolbar.js +4 -0
- package/lib/module/interfaces/options/toolbar.js.map +1 -0
- package/lib/module/interfaces/options/topBar.js +4 -0
- package/lib/module/interfaces/options/topBar.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/adapters/NativeANNTurboEventEmitter.d.ts +14 -0
- package/lib/typescript/adapters/NativeANNTurboEventEmitter.d.ts.map +1 -0
- package/lib/typescript/adapters/NativeANNTurboModule.d.ts +77 -0
- package/lib/typescript/adapters/NativeANNTurboModule.d.ts.map +1 -0
- package/lib/typescript/api/app/AppRegistry.d.ts +14 -0
- package/lib/typescript/api/app/AppRegistry.d.ts.map +1 -0
- package/lib/typescript/api/app/activeApp.d.ts +12 -0
- package/lib/typescript/api/app/activeApp.d.ts.map +1 -0
- package/lib/typescript/api/app/createNavigation.d.ts +182 -0
- package/lib/typescript/api/app/createNavigation.d.ts.map +1 -0
- package/lib/typescript/api/app/roots.d.ts +15 -0
- package/lib/typescript/api/app/roots.d.ts.map +1 -0
- package/lib/typescript/api/app/splash.d.ts +81 -0
- package/lib/typescript/api/app/splash.d.ts.map +1 -0
- package/lib/typescript/api/app/startFailure.d.ts +15 -0
- package/lib/typescript/api/app/startFailure.d.ts.map +1 -0
- package/lib/typescript/api/arrangement/arrangementState.d.ts +21 -0
- package/lib/typescript/api/arrangement/arrangementState.d.ts.map +1 -0
- package/lib/typescript/api/commands/commands.d.ts +57 -0
- package/lib/typescript/api/commands/commands.d.ts.map +1 -0
- package/lib/typescript/api/commands/errors.d.ts +24 -0
- package/lib/typescript/api/commands/errors.d.ts.map +1 -0
- package/lib/typescript/api/commands/presentation.d.ts +69 -0
- package/lib/typescript/api/commands/presentation.d.ts.map +1 -0
- package/lib/typescript/api/commands/sideMenus.d.ts +14 -0
- package/lib/typescript/api/commands/sideMenus.d.ts.map +1 -0
- package/lib/typescript/api/commands/transitions.d.ts +33 -0
- package/lib/typescript/api/commands/transitions.d.ts.map +1 -0
- package/lib/typescript/api/context/appContext.d.ts +4 -0
- package/lib/typescript/api/context/appContext.d.ts.map +1 -0
- package/lib/typescript/api/events/navigationEvents.d.ts +70 -0
- package/lib/typescript/api/events/navigationEvents.d.ts.map +1 -0
- package/lib/typescript/api/events/screenLifecycle.d.ts +5 -0
- package/lib/typescript/api/events/screenLifecycle.d.ts.map +1 -0
- package/lib/typescript/api/events/tabPresses.d.ts +5 -0
- package/lib/typescript/api/events/tabPresses.d.ts.map +1 -0
- package/lib/typescript/api/hinge/hinge.d.ts +21 -0
- package/lib/typescript/api/hinge/hinge.d.ts.map +1 -0
- package/lib/typescript/api/hooks/appHooks.d.ts +15 -0
- package/lib/typescript/api/hooks/appHooks.d.ts.map +1 -0
- package/lib/typescript/api/hooks/screenHooks.d.ts +74 -0
- package/lib/typescript/api/hooks/screenHooks.d.ts.map +1 -0
- package/lib/typescript/api/hooks/useArrangement.d.ts +13 -0
- package/lib/typescript/api/hooks/useArrangement.d.ts.map +1 -0
- package/lib/typescript/api/hooks/useHinge.d.ts +16 -0
- package/lib/typescript/api/hooks/useHinge.d.ts.map +1 -0
- package/lib/typescript/api/hooks/useNavigation.d.ts +108 -0
- package/lib/typescript/api/hooks/useNavigation.d.ts.map +1 -0
- package/lib/typescript/api/hooks/usePendingLink.d.ts +7 -0
- package/lib/typescript/api/hooks/usePendingLink.d.ts.map +1 -0
- package/lib/typescript/api/hooks/usePreview.d.ts +29 -0
- package/lib/typescript/api/hooks/usePreview.d.ts.map +1 -0
- package/lib/typescript/api/hooks/useReservedRegions.d.ts +13 -0
- package/lib/typescript/api/hooks/useReservedRegions.d.ts.map +1 -0
- package/lib/typescript/api/hooks/useSafeAreaInsets.d.ts +14 -0
- package/lib/typescript/api/hooks/useSafeAreaInsets.d.ts.map +1 -0
- package/lib/typescript/api/index.d.ts +60 -0
- package/lib/typescript/api/index.d.ts.map +1 -0
- package/lib/typescript/api/layout/Root.d.ts +47 -0
- package/lib/typescript/api/layout/Root.d.ts.map +1 -0
- package/lib/typescript/api/layout/Screen.d.ts +32 -0
- package/lib/typescript/api/layout/Screen.d.ts.map +1 -0
- package/lib/typescript/api/layout/SideMenu.d.ts +33 -0
- package/lib/typescript/api/layout/SideMenu.d.ts.map +1 -0
- package/lib/typescript/api/layout/SplitView.d.ts +48 -0
- package/lib/typescript/api/layout/SplitView.d.ts.map +1 -0
- package/lib/typescript/api/layout/Stack.d.ts +21 -0
- package/lib/typescript/api/layout/Stack.d.ts.map +1 -0
- package/lib/typescript/api/layout/Tabs.d.ts +120 -0
- package/lib/typescript/api/layout/Tabs.d.ts.map +1 -0
- package/lib/typescript/api/layout/element.d.ts +52 -0
- package/lib/typescript/api/layout/element.d.ts.map +1 -0
- package/lib/typescript/api/linking/linkPaths.d.ts +31 -0
- package/lib/typescript/api/linking/linkPaths.d.ts.map +1 -0
- package/lib/typescript/api/linking/linking.d.ts +37 -0
- package/lib/typescript/api/linking/linking.d.ts.map +1 -0
- package/lib/typescript/api/linking/pendingLinks.d.ts +8 -0
- package/lib/typescript/api/linking/pendingLinks.d.ts.map +1 -0
- package/lib/typescript/api/linking/types.d.ts +105 -0
- package/lib/typescript/api/linking/types.d.ts.map +1 -0
- package/lib/typescript/api/navigation.d.ts +115 -0
- package/lib/typescript/api/navigation.d.ts.map +1 -0
- package/lib/typescript/api/options/OptionsChain.d.ts +47 -0
- package/lib/typescript/api/options/OptionsChain.d.ts.map +1 -0
- package/lib/typescript/api/options/ScreenOptions.d.ts +32 -0
- package/lib/typescript/api/options/ScreenOptions.d.ts.map +1 -0
- package/lib/typescript/api/options/buttons.d.ts +35 -0
- package/lib/typescript/api/options/buttons.d.ts.map +1 -0
- package/lib/typescript/api/safeArea/ANNSafeAreaViewNativeComponent.d.ts +20 -0
- package/lib/typescript/api/safeArea/ANNSafeAreaViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/api/safeArea/screenInsets.d.ts +20 -0
- package/lib/typescript/api/safeArea/screenInsets.d.ts.map +1 -0
- package/lib/typescript/api/safeArea/screenRegions.d.ts +24 -0
- package/lib/typescript/api/safeArea/screenRegions.d.ts.map +1 -0
- package/lib/typescript/api/screens/ScreenBoundary.d.ts +34 -0
- package/lib/typescript/api/screens/ScreenBoundary.d.ts.map +1 -0
- package/lib/typescript/api/screens/arrangement.d.ts +70 -0
- package/lib/typescript/api/screens/arrangement.d.ts.map +1 -0
- package/lib/typescript/api/screens/defineScreen.d.ts +41 -0
- package/lib/typescript/api/screens/defineScreen.d.ts.map +1 -0
- package/lib/typescript/api/screens/nativeScreenCalls.d.ts +3 -0
- package/lib/typescript/api/screens/nativeScreenCalls.d.ts.map +1 -0
- package/lib/typescript/api/screens/nativeScreens.d.ts +47 -0
- package/lib/typescript/api/screens/nativeScreens.d.ts.map +1 -0
- package/lib/typescript/api/screens/registerScreens.d.ts +61 -0
- package/lib/typescript/api/screens/registerScreens.d.ts.map +1 -0
- package/lib/typescript/api/slots/ANNSlotNativeComponent.d.ts +15 -0
- package/lib/typescript/api/slots/ANNSlotNativeComponent.d.ts.map +1 -0
- package/lib/typescript/api/slots/SlotHost.d.ts +8 -0
- package/lib/typescript/api/slots/SlotHost.d.ts.map +1 -0
- package/lib/typescript/api/state/navigationState.d.ts +26 -0
- package/lib/typescript/api/state/navigationState.d.ts.map +1 -0
- package/lib/typescript/api/testIDs.d.ts +12 -0
- package/lib/typescript/api/testIDs.d.ts.map +1 -0
- package/lib/typescript/api/theme/theme.d.ts +70 -0
- package/lib/typescript/api/theme/theme.d.ts.map +1 -0
- package/lib/typescript/api/types.d.ts +64 -0
- package/lib/typescript/api/types.d.ts.map +1 -0
- package/lib/typescript/engine/backListeners.d.ts +8 -0
- package/lib/typescript/engine/backListeners.d.ts.map +1 -0
- package/lib/typescript/engine/buttons.d.ts +11 -0
- package/lib/typescript/engine/buttons.d.ts.map +1 -0
- package/lib/typescript/engine/commands.d.ts +38 -0
- package/lib/typescript/engine/commands.d.ts.map +1 -0
- package/lib/typescript/engine/events.d.ts +17 -0
- package/lib/typescript/engine/events.d.ts.map +1 -0
- package/lib/typescript/engine/ids.d.ts +3 -0
- package/lib/typescript/engine/ids.d.ts.map +1 -0
- package/lib/typescript/engine/launchState.d.ts +25 -0
- package/lib/typescript/engine/launchState.d.ts.map +1 -0
- package/lib/typescript/engine/layout.d.ts +32 -0
- package/lib/typescript/engine/layout.d.ts.map +1 -0
- package/lib/typescript/engine/mergeOptions.d.ts +6 -0
- package/lib/typescript/engine/mergeOptions.d.ts.map +1 -0
- package/lib/typescript/engine/native.d.ts +22 -0
- package/lib/typescript/engine/native.d.ts.map +1 -0
- package/lib/typescript/engine/nativeScreens.d.ts +49 -0
- package/lib/typescript/engine/nativeScreens.d.ts.map +1 -0
- package/lib/typescript/engine/options.d.ts +12 -0
- package/lib/typescript/engine/options.d.ts.map +1 -0
- package/lib/typescript/engine/places.d.ts +57 -0
- package/lib/typescript/engine/places.d.ts.map +1 -0
- package/lib/typescript/engine/props.d.ts +10 -0
- package/lib/typescript/engine/props.d.ts.map +1 -0
- package/lib/typescript/engine/reactMeasures.d.ts +3 -0
- package/lib/typescript/engine/reactMeasures.d.ts.map +1 -0
- package/lib/typescript/engine/rememberedOptions.d.ts +28 -0
- package/lib/typescript/engine/rememberedOptions.d.ts.map +1 -0
- package/lib/typescript/engine/screens.d.ts +90 -0
- package/lib/typescript/engine/screens.d.ts.map +1 -0
- package/lib/typescript/engine/slots.d.ts +71 -0
- package/lib/typescript/engine/slots.d.ts.map +1 -0
- package/lib/typescript/engine/tabs.d.ts +24 -0
- package/lib/typescript/engine/tabs.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +3 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/interfaces/ComponentEvents.d.ts +189 -0
- package/lib/typescript/interfaces/ComponentEvents.d.ts.map +1 -0
- package/lib/typescript/interfaces/Events.d.ts +199 -0
- package/lib/typescript/interfaces/Events.d.ts.map +1 -0
- package/lib/typescript/interfaces/Layout.d.ts +150 -0
- package/lib/typescript/interfaces/Layout.d.ts.map +1 -0
- package/lib/typescript/interfaces/Options.d.ts +93 -0
- package/lib/typescript/interfaces/Options.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/animations.d.ts +452 -0
- package/lib/typescript/interfaces/options/animations.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/bottomTabs.d.ts +462 -0
- package/lib/typescript/interfaces/options/bottomTabs.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/buttons.d.ts +331 -0
- package/lib/typescript/interfaces/options/buttons.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/common.d.ts +51 -0
- package/lib/typescript/interfaces/options/common.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/modals.d.ts +202 -0
- package/lib/typescript/interfaces/options/modals.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/preview.d.ts +40 -0
- package/lib/typescript/interfaces/options/preview.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/sideMenu.d.ts +130 -0
- package/lib/typescript/interfaces/options/sideMenu.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/splitView.d.ts +118 -0
- package/lib/typescript/interfaces/options/splitView.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/stack.d.ts +109 -0
- package/lib/typescript/interfaces/options/stack.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/system.d.ts +238 -0
- package/lib/typescript/interfaces/options/system.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/toolbar.d.ts +45 -0
- package/lib/typescript/interfaces/options/toolbar.d.ts.map +1 -0
- package/lib/typescript/interfaces/options/topBar.d.ts +804 -0
- package/lib/typescript/interfaces/options/topBar.d.ts.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/package.json +166 -4
- package/react-native.config.js +22 -0
- package/src/ARCHITECTURE.md +289 -0
- package/src/adapters/NativeANNTurboEventEmitter.ts +15 -0
- package/src/adapters/NativeANNTurboModule.ts +100 -0
- package/src/api/app/AppRegistry.ts +57 -0
- package/src/api/app/activeApp.ts +20 -0
- package/src/api/app/createNavigation.ts +566 -0
- package/src/api/app/roots.ts +40 -0
- package/src/api/app/splash.ts +154 -0
- package/src/api/app/startFailure.tsx +39 -0
- package/src/api/arrangement/arrangementState.ts +98 -0
- package/src/api/commands/commands.ts +371 -0
- package/src/api/commands/errors.ts +99 -0
- package/src/api/commands/presentation.ts +78 -0
- package/src/api/commands/sideMenus.ts +122 -0
- package/src/api/commands/transitions.ts +133 -0
- package/src/api/context/appContext.ts +23 -0
- package/src/api/events/navigationEvents.ts +175 -0
- package/src/api/events/screenLifecycle.ts +27 -0
- package/src/api/events/tabPresses.ts +35 -0
- package/src/api/hinge/hinge.ts +84 -0
- package/src/api/hooks/appHooks.ts +37 -0
- package/src/api/hooks/screenHooks.ts +272 -0
- package/src/api/hooks/useArrangement.ts +26 -0
- package/src/api/hooks/useHinge.ts +26 -0
- package/src/api/hooks/useNavigation.ts +267 -0
- package/src/api/hooks/usePendingLink.ts +11 -0
- package/src/api/hooks/usePreview.ts +111 -0
- package/src/api/hooks/useReservedRegions.ts +26 -0
- package/src/api/hooks/useSafeAreaInsets.ts +23 -0
- package/src/api/index.ts +139 -0
- package/src/api/layout/Root.ts +113 -0
- package/src/api/layout/Screen.ts +55 -0
- package/src/api/layout/SideMenu.ts +87 -0
- package/src/api/layout/SplitView.ts +146 -0
- package/src/api/layout/Stack.ts +48 -0
- package/src/api/layout/Tabs.ts +339 -0
- package/src/api/layout/element.ts +114 -0
- package/src/api/linking/linkPaths.ts +159 -0
- package/src/api/linking/linking.ts +242 -0
- package/src/api/linking/pendingLinks.ts +37 -0
- package/src/api/linking/types.ts +130 -0
- package/src/api/navigation.ts +269 -0
- package/src/api/options/OptionsChain.ts +142 -0
- package/src/api/options/ScreenOptions.ts +81 -0
- package/src/api/options/buttons.ts +43 -0
- package/src/api/safeArea/ANNSafeAreaViewNativeComponent.ts +28 -0
- package/src/api/safeArea/screenInsets.ts +86 -0
- package/src/api/safeArea/screenRegions.ts +99 -0
- package/src/api/screens/ScreenBoundary.tsx +52 -0
- package/src/api/screens/arrangement.ts +106 -0
- package/src/api/screens/defineScreen.ts +57 -0
- package/src/api/screens/nativeScreenCalls.ts +59 -0
- package/src/api/screens/nativeScreens.ts +58 -0
- package/src/api/screens/registerScreens.tsx +364 -0
- package/src/api/slots/ANNSlotNativeComponent.ts +23 -0
- package/src/api/slots/SlotHost.tsx +64 -0
- package/src/api/state/navigationState.ts +95 -0
- package/src/api/testIDs.ts +11 -0
- package/src/api/theme/theme.ts +184 -0
- package/src/api/types.ts +95 -0
- package/src/engine/backListeners.ts +36 -0
- package/src/engine/buttons.ts +91 -0
- package/src/engine/commands.ts +469 -0
- package/src/engine/events.ts +24 -0
- package/src/engine/ids.ts +7 -0
- package/src/engine/launchState.ts +35 -0
- package/src/engine/layout.ts +247 -0
- package/src/engine/mergeOptions.ts +20 -0
- package/src/engine/native.ts +51 -0
- package/src/engine/nativeScreens.ts +263 -0
- package/src/engine/options.ts +165 -0
- package/src/engine/places.ts +205 -0
- package/src/engine/props.ts +45 -0
- package/src/engine/reactMeasures.ts +24 -0
- package/src/engine/rememberedOptions.ts +111 -0
- package/src/engine/screens.tsx +239 -0
- package/src/engine/slots.ts +191 -0
- package/src/engine/tabs.ts +95 -0
- package/src/index.ts +3 -0
- package/src/interfaces/ComponentEvents.ts +214 -0
- package/src/interfaces/Events.ts +227 -0
- package/src/interfaces/Layout.ts +161 -0
- package/src/interfaces/Options.ts +175 -0
- package/src/interfaces/options/animations.ts +480 -0
- package/src/interfaces/options/bottomTabs.ts +481 -0
- package/src/interfaces/options/buttons.ts +364 -0
- package/src/interfaces/options/common.ts +76 -0
- package/src/interfaces/options/modals.ts +217 -0
- package/src/interfaces/options/preview.ts +40 -0
- package/src/interfaces/options/sideMenu.ts +132 -0
- package/src/interfaces/options/splitView.ts +127 -0
- package/src/interfaces/options/stack.ts +110 -0
- package/src/interfaces/options/system.ts +252 -0
- package/src/interfaces/options/toolbar.ts +47 -0
- package/src/interfaces/options/topBar.ts +828 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
# Top bar
|
|
2
|
+
|
|
3
|
+
The bar at the top of a stack: the title and the subtitle, the large title, the background and the border, hiding the bar, a component in place of the title, and the title menu.
|
|
4
|
+
|
|
5
|
+
Every screen of a stack has a bar at the top: it names the screen and holds the way back and the actions. A screen fills the bar through its options, and the title is the one most apps set:
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { defineScreen } from '@apexnative/navigation';
|
|
9
|
+
|
|
10
|
+
export const InboxScreen = defineScreen({
|
|
11
|
+
component: Inbox,
|
|
12
|
+
options: (s) => s.title('Inbox'),
|
|
13
|
+
});
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The bar shows "Inbox" as the screen comes in, before React renders it. This page answers:
|
|
17
|
+
|
|
18
|
+
1. [What the top bar is](#what), and its parts.
|
|
19
|
+
2. [The title](#title) and the subtitle.
|
|
20
|
+
3. [The large title](#large-title).
|
|
21
|
+
4. [The background and the border](#background).
|
|
22
|
+
5. [Hiding the bar](#hide).
|
|
23
|
+
6. [A component in place of the title](#title-component), and [the title menu](#title-menu).
|
|
24
|
+
7. [The bar on iPhone Duo](#iphone-duo).
|
|
25
|
+
|
|
26
|
+
The buttons of the bar have a page of their own: [Bar buttons](./bar-buttons). So do the back button ([Back and gestures](./back-and-gestures)) and the search field ([Search](./search)).
|
|
27
|
+
|
|
28
|
+
## What the top bar is
|
|
29
|
+
|
|
30
|
+
The top bar belongs to **the stack, not to a screen**: one bar for all the screens of the [stack](../containers/stack). Each screen gives it its title and buttons through its [options](../fundamentals/screen-options), and the bar changes with the screen as it comes in, as in any native app. The back button shows by itself on every screen but the first.
|
|
31
|
+
|
|
32
|
+
The platform draws the bar: `UINavigationBar` on (iOS), with Liquid Glass on iOS 26, and the Material 3 top app bar on (Android). Its colors come from the [theme](../architecture/theme-and-context) until a screen sets its own.
|
|
33
|
+
|
|
34
|
+
## The title
|
|
35
|
+
|
|
36
|
+
The title is the name of the screen. The subtitle is a second line under it, such as a status or a count. Both can come from the props of the screen:
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
export const ChatScreen = defineScreen({
|
|
40
|
+
component: Chat,
|
|
41
|
+
options: (s, props) => s.title(props.name).subtitle('online'),
|
|
42
|
+
});
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
A title can change while the screen shows, such as when its data has loaded: see [Changing the options of a shown screen](../fundamentals/screen-options#change).
|
|
46
|
+
|
|
47
|
+
The look of the text goes in an object instead of the string:
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
s.title({ text: 'Chat', color: '#1E2A44', fontFamily: 'Righteous' });
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
`fontSize`, `fontWeight` and `fontStyle` go in the same object, and the subtitle takes the same keys.
|
|
54
|
+
|
|
55
|
+
| Platform | The title |
|
|
56
|
+
| --- | --- |
|
|
57
|
+
| (iOS) | In the middle of the bar. On iOS 26, `glass: 'regular'` or `'clear'` puts it on a capsule of Liquid Glass, as the buttons are, with the subtitle as a second line. |
|
|
58
|
+
| (Android) | At the leading edge, next to the back arrow. `alignment: 'center'` puts it in the middle. |
|
|
59
|
+
|
|
60
|
+
## The large title
|
|
61
|
+
|
|
62
|
+
(iOS) A large title is big at the top of the screen, under the row of the bar. It goes into the bar as the content scrolls, so a long list keeps its room:
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
s.title('Inbox').largeTitle();
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`largeTitle()` shows it on this screen. A screen pushed from it usually has a small title, so it sets its own `displayMode`:
|
|
69
|
+
|
|
70
|
+
```ts
|
|
71
|
+
s.title('Details').largeTitle({ displayMode: 'never' });
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
| `displayMode` | The large title |
|
|
75
|
+
| --- | --- |
|
|
76
|
+
| `'always'` | Shows on this screen. The default of `largeTitle()`. |
|
|
77
|
+
| `'never'` | Doesn't show on this screen. |
|
|
78
|
+
| `'automatic'` | As on the screen under it; the first screen of a stack shows it. |
|
|
79
|
+
| `'inline'` | iOS 17+: in the row of the bar instead of under it. Only on a screen without a back button, such as the first of a stack or of a modal: next to a back button UIKit shows it as `'always'`. |
|
|
80
|
+
|
|
81
|
+
`collapseOnScroll: false` keeps the large title where it is: the list scrolls under the bar and the title stays.
|
|
82
|
+
|
|
83
|
+
(Android) The same option shows the large top app bar of Material 3: the title big under the row of the bar, fading into the row as the content scrolls. The screen goes under the bar, so its list keeps its first rows clear with `useSafeAreaInsets().top` (see [The safe area](./system-ui#safe-area)). `'inline'` keeps the title in the row, as `'never'` does. Under a large title `hideOnScroll` doesn't work.
|
|
84
|
+
|
|
85
|
+
## The background and the border
|
|
86
|
+
|
|
87
|
+
On iOS 26 the bar is Liquid Glass, and the content shows through it as it scrolls under. **A color takes the glass away**, so set one only when the design needs it:
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
s.topBar({ background: { color: '#F3E9D2' }, noBorder: true });
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`background.color` colors the bar on both platforms. With a large title on iOS 26 the color goes behind the title in the list, and fills the bar once the title collapses. Under a bar with a color the list has no edge effect at the top: see [The edge of the scroll](./system-ui#scroll-edge).
|
|
94
|
+
|
|
95
|
+
The other keys of the background are rarer:
|
|
96
|
+
|
|
97
|
+
| Option | What it does |
|
|
98
|
+
| --- | --- |
|
|
99
|
+
| `background.component` | A component of `screens` drawn behind the bar, such as a gradient. It is registered as the [title component](#title-component) is. |
|
|
100
|
+
| `background.translucent` | (iOS) `true`: the content shows through; Liquid Glass on iOS 26, where it is the default. `false`: a solid bar, white in the light theme and black in the dark one. |
|
|
101
|
+
| `background.blur` | (iOS) The system's frosted blur, plainer than the glass. A `color` wins over it, and it wins over `translucent`. |
|
|
102
|
+
| `scrollEdgeAppearance` | (iOS) The look of the bar while the content is at its top, with `active: true`. The bar takes its usual look once the content scrolls under it. |
|
|
103
|
+
|
|
104
|
+
The line under the bar:
|
|
105
|
+
|
|
106
|
+
| Option | What it does |
|
|
107
|
+
| --- | --- |
|
|
108
|
+
| `noBorder` | (iOS) No line under the bar. |
|
|
109
|
+
| `borderColor` | The color of the line. |
|
|
110
|
+
| `elevation`, `borderHeight` | (Android) The shadow and the line under the bar, in dp. `elevation: 0` takes the shadow away. |
|
|
111
|
+
|
|
112
|
+
## Hiding the bar
|
|
113
|
+
|
|
114
|
+
A screen without a bar, such as a photo or a sign-in, hides it in its options. The bar comes back when the user goes back, because the screen under it has its own options:
|
|
115
|
+
|
|
116
|
+
```ts
|
|
117
|
+
s.hideTopBar();
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
`hideTopBar(hidden)` takes a value too, so the state can decide, as in a viewer that hides its bar on a tap:
|
|
121
|
+
|
|
122
|
+
```tsx
|
|
123
|
+
useScreenOptions((s) => s.hideTopBar(fullScreen));
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The bar can also hide and show by itself:
|
|
127
|
+
|
|
128
|
+
| Option | The bar |
|
|
129
|
+
| --- | --- |
|
|
130
|
+
| `hideOnScroll` | Hides while the content scrolls down, and comes back as it scrolls up. |
|
|
131
|
+
| `hideOnTap` | (iOS) Hides and shows on a tap on the screen. |
|
|
132
|
+
| `hideOnKeyboard` | (iOS) Hides while the keyboard shows. |
|
|
133
|
+
| `animate` | `false`: hides and shows at once, without the animation. |
|
|
134
|
+
|
|
135
|
+
With `hideOnScroll` the screen goes under the bar, so its rows show where the bar was. Its list keeps its first rows clear: on (iOS) with `contentInsetAdjustmentBehavior="automatic"`, on (Android) with `paddingTop: useSafeAreaInsets().top`.
|
|
136
|
+
|
|
137
|
+
`drawBehind: true` keeps the bar and puts the content under it, as a map or a photo under a glass bar.
|
|
138
|
+
|
|
139
|
+
## A component in place of the title
|
|
140
|
+
|
|
141
|
+
A chat shows an avatar, a name and a status where the title is. Text can't do that, so a React component takes the place of the title. It takes three steps.
|
|
142
|
+
|
|
143
|
+
**1. The component**, a plain React component with its props:
|
|
144
|
+
|
|
145
|
+
```tsx
|
|
146
|
+
import { Image, Text, View } from 'react-native';
|
|
147
|
+
|
|
148
|
+
type Props = { name: string; avatar: string };
|
|
149
|
+
|
|
150
|
+
export function ChatTitle(props: Props) {
|
|
151
|
+
return (
|
|
152
|
+
<View style={{ flexDirection: 'row', gap: 8 }}>
|
|
153
|
+
<Image
|
|
154
|
+
source={{ uri: props.avatar }}
|
|
155
|
+
style={{ width: 28, height: 28, borderRadius: 14 }}
|
|
156
|
+
/>
|
|
157
|
+
<View>
|
|
158
|
+
<Text style={{ fontWeight: '600' }}>{props.name}</Text>
|
|
159
|
+
<Text style={{ fontSize: 12, opacity: 0.6 }}>online</Text>
|
|
160
|
+
</View>
|
|
161
|
+
</View>
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**2. Its registration** in `screens`, as any screen. The bar renders it in a React root of its own, so it needs a name:
|
|
167
|
+
|
|
168
|
+
```ts
|
|
169
|
+
export const Navigation = createNavigation({
|
|
170
|
+
screens: { Inbox: InboxScreen, Chat: ChatScreen, ChatTitle },
|
|
171
|
+
root: 'Inbox',
|
|
172
|
+
});
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**3. The options of the screen** name it in `title.component`, with its props:
|
|
176
|
+
|
|
177
|
+
```ts
|
|
178
|
+
export const ChatScreen = defineScreen({
|
|
179
|
+
component: Chat,
|
|
180
|
+
options: (s, props) =>
|
|
181
|
+
s.title({
|
|
182
|
+
component: {
|
|
183
|
+
name: 'ChatTitle',
|
|
184
|
+
passProps: { name: props.name, avatar: props.avatar },
|
|
185
|
+
},
|
|
186
|
+
}),
|
|
187
|
+
});
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
The screen comes in with the avatar and the name in the bar: it waits for the component to draw, so the title doesn't pop in after it.
|
|
191
|
+
|
|
192
|
+
`alignment: 'fill'` in `component` gives the component all the room between the side buttons, from the back button on, so its content can start at the leading edge. Without it the component sits in the middle.
|
|
193
|
+
|
|
194
|
+
The same three steps give the bar a background of its own, with `background.component`, and a button: see [A component as a button](./bar-buttons#component).
|
|
195
|
+
|
|
196
|
+
## The title menu
|
|
197
|
+
|
|
198
|
+
(iOS) 16+ A tap on the title can open a menu, as the title of a document does in system apps; UIKit shows a chevron next to the title. A pick sends a button press with the id of the item:
|
|
199
|
+
|
|
200
|
+
```tsx
|
|
201
|
+
export const DraftScreen = defineScreen({
|
|
202
|
+
component: Draft,
|
|
203
|
+
options: (s) =>
|
|
204
|
+
s.title({
|
|
205
|
+
text: 'Draft',
|
|
206
|
+
menu: { items: [{ id: 'duplicate', title: 'Duplicate' }] },
|
|
207
|
+
}),
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
function Draft() {
|
|
211
|
+
useNavigationButton('duplicate', () => duplicateDraft()); // your own
|
|
212
|
+
// …
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
`rename: true` adds Rename to the menu: the title turns into a field in the bar, and the new title comes as the event `titleRenamed`:
|
|
217
|
+
|
|
218
|
+
```tsx
|
|
219
|
+
useScreenEvent('titleRenamed', ({ text }) => renameDraft(text));
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
`document: { url }` heads the menu with a file: its icon, name and type. A large title shows no chevron and opens no menu. On (Android) the title has no menu: put the same actions in [the overflow menu](./bar-buttons#overflow).
|
|
223
|
+
|
|
224
|
+
## The layout of the bar
|
|
225
|
+
|
|
226
|
+
This section is rarely needed: most apps keep the platform's layout.
|
|
227
|
+
|
|
228
|
+
(iOS) 16+ `style` lays the bar out. `'navigator'`, the default, centers the title, as a stack of screens does. `'browser'` and `'editor'` put it next to the back button, as an app of documents does, and leave room for [center buttons](./bar-buttons#center) on iPad.
|
|
229
|
+
|
|
230
|
+
(Android) `height` and `topMargin`, of the bar and of its title, size the bar for a design of its own.
|
|
231
|
+
|
|
232
|
+
## The bar on iPhone Duo
|
|
233
|
+
|
|
234
|
+
(iOS) 27.1 On iPhone Duo, folded and open, the title stays in the row at the top, and the large title too. The system moves the buttons into a vertical bar at the trailing edge, with the status bar and the tab bar: see [Buttons on iPhone Duo](./bar-buttons#iphone-duo). The app's options stay the same; a screen that needs its bars at the top asks for them:
|
|
235
|
+
|
|
236
|
+
```ts
|
|
237
|
+
s.verticalBars(false); // the bars at the top, as on any iPhone
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Set it once for a screen: Apple asks apps not to switch it with the state of the screen. In a [pair](../containers/arrangement) the bar is the primary's, so is this option.
|
|
241
|
+
|
|
242
|
+
The screen goes under the vertical bar, as under the top bar, and its list keeps its rows clear: see [The vertical bar of iPhone Duo](./system-ui#vertical-bar). Two things UIKit does there, which an app sees as they are:
|
|
243
|
+
|
|
244
|
+
- **The bar goes away on a scroll down.** iOS 27 minimizes the navigation bar as the content scrolls down: the whole bar, its title and its blur, leaves, and comes back on a scroll up (UIKit's `navigationItem.navigationBarMinimization`). The library has no option for it yet.
|
|
245
|
+
- **Folded, a bar with a background of its own leaves a band above it.** UIKit puts the bar about 24 points below the top of the outer display, so with `topBar.background` a band of about 24 points shows above the bar's color.
|
|
246
|
+
|
|
247
|
+
## API
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# Installation
|
|
2
|
+
|
|
3
|
+
Start a new app with the navigation or add it to the app you have, run it, and check the setup with doctor.
|
|
4
|
+
|
|
5
|
+
This page adds the navigation to an app: a new one made by `init`, or the app you have, set up by `setup`. At the end, the app starts with its first screen in a native stack, and `doctor` reports no problems.
|
|
6
|
+
|
|
7
|
+
## Requirements
|
|
8
|
+
|
|
9
|
+
- **React Native**: 0.85 or newer; checked on 0.87. The **New Architecture** only.
|
|
10
|
+
- **iOS and iPadOS**: Xcode 26 or newer, CocoaPods. iOS 15.1 or newer, the minimum of React Native.
|
|
11
|
+
- **Android**: JDK 17, the Android SDK the app builds with. minSdk 24 or higher.
|
|
12
|
+
- **Not yet**: Expo apps: the config plugin is planned. The web is not a target.
|
|
13
|
+
|
|
14
|
+
## Two ways to start
|
|
15
|
+
|
|
16
|
+
- A new app — **init**: A React Native app with the navigation already set up: Home and Details in a stack, dependencies and pods installed.
|
|
17
|
+
- The app you have — **install and setup**: Add the package; setup changes the native entry points and installs the pods.
|
|
18
|
+
|
|
19
|
+
## A new app
|
|
20
|
+
|
|
21
|
+
`init` makes a React Native app at the version the navigation is checked with, adds the package, runs `setup` and puts a starter in place of the template's `App`. Then it installs the dependencies and the pods.
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx @apexnative/navigation init MyApp
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Run the app from its folder:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
cd MyApp
|
|
31
|
+
npx react-native run-ios
|
|
32
|
+
npx react-native run-android
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Home opens with an Open Details button. A tap pushes Details with the system transition; the swipe back or the back button returns to Home.
|
|
36
|
+
|
|
37
|
+
The starter is the app of the [Quick start](./quick-start):
|
|
38
|
+
|
|
39
|
+
| File | What it is |
|
|
40
|
+
| --- | --- |
|
|
41
|
+
| `Navigation.ts` | `createNavigation` with Home and Details in a stack. |
|
|
42
|
+
| `src/screens/Home.tsx` | The first screen, with a button that pushes Details. |
|
|
43
|
+
| `src/screens/Details.tsx` | The screen Home pushes. |
|
|
44
|
+
| `navigation-env.d.ts` | Types of the commands, from `screens`: see [Typed commands](#typed-commands). |
|
|
45
|
+
|
|
46
|
+
`init` removes the template's `App.tsx` and its test. The screens render inside the navigation, and a test that renders one component alone doesn't start it.
|
|
47
|
+
|
|
48
|
+
### The starters
|
|
49
|
+
|
|
50
|
+
`--template` picks what the new app starts with. Each starter is a working app to grow, not a demo to delete.
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx @apexnative/navigation init MyApp --template tabs
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
| Template | What the app starts with |
|
|
57
|
+
| --- | --- |
|
|
58
|
+
| `stack` | The default, above: Home in a stack, with a button that pushes Details. |
|
|
59
|
+
| `tabs` | Tabs of Home, Profile and Settings, each in a stack of its own; Home pushes Details. The tab icons are SF Symbols on iOS (`house`, `person`, `gearshape`), and on Android vector drawables of Material Symbols, written to `android/app/src/main/res/drawable/`. |
|
|
60
|
+
| `auth` | Login first. Sign in puts the user into the app's context and switches to the tabs above, where Profile shows the user's name; Sign out in Settings switches back to Login. |
|
|
61
|
+
|
|
62
|
+
`auth` writes these files besides the screens:
|
|
63
|
+
|
|
64
|
+
| File | What it is |
|
|
65
|
+
| --- | --- |
|
|
66
|
+
| `Navigation.ts` | The roots `signedOut` (Login) and `signedIn` (the tabs), the context `{ user }` with its type exported as `AppContext`, and `initialRoot`, which picks the first root from the context. |
|
|
67
|
+
| `src/session.ts` | `signIn(name)` and `signOut()`: each sets the context and switches the root. |
|
|
68
|
+
| `navigation-env.d.ts` | With the `context` line, as `Navigation.ts` exports `AppContext`: see [Typed commands](#typed-commands). |
|
|
69
|
+
|
|
70
|
+
Login takes a name only. Your own sign-in goes where the comment in `src/session.ts` says, and the session you keep is read in `willMount`, so a user who signed in before starts on the tabs; until then each launch starts on Login. The whole flow, with links that wait for the sign-in: [Sign in and sign out](../flows/sign-in-and-sign-out).
|
|
71
|
+
|
|
72
|
+
### The options of init
|
|
73
|
+
|
|
74
|
+
The app it makes:
|
|
75
|
+
|
|
76
|
+
| Option | What it does |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `--template name` | The starter: `stack` (the default), `tabs` or `auth`. See [The starters](#templates). |
|
|
79
|
+
| `--version v` | The React Native of the app: a version or a tag. By default, the one the navigation is checked with. |
|
|
80
|
+
| `--pm name` | `npm`, `yarn` or `bun`. By default, the one the command runs with. |
|
|
81
|
+
| `--directory path` | The folder of the app; its name by default. |
|
|
82
|
+
| `--package-name id` | The Android package and the iOS bundle id, such as `com.example.app`. |
|
|
83
|
+
| `--title text` | The name the app shows. |
|
|
84
|
+
|
|
85
|
+
The steps it skips:
|
|
86
|
+
|
|
87
|
+
| Option | What it does |
|
|
88
|
+
| --- | --- |
|
|
89
|
+
| `--skip-install` | Makes the app without installing dependencies and pods. |
|
|
90
|
+
| `--skip-pods` | Installs the dependencies, not the pods. |
|
|
91
|
+
| `--skip-git-init` | No git repository. |
|
|
92
|
+
|
|
93
|
+
## The app you have
|
|
94
|
+
|
|
95
|
+
1. Add the package.
|
|
96
|
+
|
|
97
|
+
2. Set the app up for the navigation. `setup` shows each change and asks before it writes. On a Mac it then installs the pods, when it changed a file of the iOS app or the pods don't have the navigation yet: `pod install`, or `bundle install` and `bundle exec pod install` when the app has a `Gemfile`. On Linux and Windows it says to run `pod install` on a Mac.
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx apex-navigation setup
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
3. Run the app.
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
npx react-native run-ios
|
|
107
|
+
npx react-native run-android
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Your `App` shows as before, now as the first screen of a native stack, named Home in the new `Navigation.ts`.
|
|
111
|
+
|
|
112
|
+
> **Tip**
|
|
113
|
+
>
|
|
114
|
+
>
|
|
115
|
+
> `--dry-run` shows the changes and writes nothing; `--yes` applies them without asking; `--skip-pods` leaves the pods for later and prints the line to run. A file changed by hand stays as it is, and `setup` prints what to change in it. Every option of every command: [The CLI](../guides/cli#setup).
|
|
116
|
+
>
|
|
117
|
+
|
|
118
|
+
### What setup changes, and why
|
|
119
|
+
|
|
120
|
+
In an app as the React Native template makes it, the window shows **one React view**, and all the navigation happens inside React. With this library the window shows **the containers of the platform**: a stack, tabs, modals, overlays. Every screen is a React view inside them. So the app hands its window and its startup to the navigation, and that is all the changes do.
|
|
121
|
+
|
|
122
|
+
- The template — **One React view**
|
|
123
|
+
- With the navigation — **Containers of the platform**
|
|
124
|
+
|
|
125
|
+
#### Android files
|
|
126
|
+
|
|
127
|
+
| File | What setup does | Why |
|
|
128
|
+
| --- | --- | --- |
|
|
129
|
+
| `MainApplication.kt` | Extends `NavigationApplication`. | It loads React Native itself and keeps one React host for all screens. Native screens made by `codegen` are registered there, before JS opens them. |
|
|
130
|
+
| `MainActivity.kt` | Extends `NavigationActivity`. | The activity holds the containers of the navigation instead of one React view. It gets the back press, edge-to-edge and configuration changes first. |
|
|
131
|
+
| `AndroidManifest.xml` | Adds `android:enableOnBackInvokedCallback="true"` to `<application>`. | On the first screen the system plays its own animation back to the home screen as the user swipes back (predictive back). Android 16 turns it on for apps that target API 36; an app that targets less opts in here. A value the app set itself stays. See [Back to the home screen](../screen-ui/back-and-gestures#system-animation). |
|
|
132
|
+
| `styles.xml` | `AppTheme` inherits `Theme.ApexNavigation`. | The bars, tabs and search are Material 3 views and take their colors from the app's theme. This one is Material 3 in neutral grays, light and dark; change any color in the same file. A theme of the app's own stays as it is. See [Android's colors](../architecture/theme-and-context#android). |
|
|
133
|
+
|
|
134
|
+
#### iOS files
|
|
135
|
+
|
|
136
|
+
| File | What setup does | Why |
|
|
137
|
+
| --- | --- | --- |
|
|
138
|
+
| `AppDelegate.swift` | Extends `ANNAppDelegate`. | It creates the window, puts the root of the navigation in it and starts React Native. Deep links that come before JS is ready wait for it. |
|
|
139
|
+
| `Info.plist` | Sets `UIViewControllerBasedStatusBarAppearance` to `true`. | Each screen sets its own status bar from its options; with `false`, only the app as a whole can. |
|
|
140
|
+
|
|
141
|
+
#### JavaScript files
|
|
142
|
+
|
|
143
|
+
These files are the same on both platforms.
|
|
144
|
+
|
|
145
|
+
| File | What setup does | Why |
|
|
146
|
+
| --- | --- | --- |
|
|
147
|
+
| `index.js` | Starts the app through the navigation. | `AppRegistry` of the package starts `createNavigation` instead of mounting one root component. |
|
|
148
|
+
| `Navigation.ts` | New: shows `App` as the first screen. | The app keeps working as it was, now as the first screen of a stack. |
|
|
149
|
+
| `App.tsx` | Takes out the template's ``. | React Native's `StatusBar` logs an error on iOS once the screens set the status bar. |
|
|
150
|
+
| `navigation-env.d.ts` | New: ties the commands to the screens of `Navigation.ts`. | The commands come from the package and can't see the app's screens. This declaration links them, so names and props are checked. See [Typed commands](#typed-commands). |
|
|
151
|
+
|
|
152
|
+
### Typed commands
|
|
153
|
+
|
|
154
|
+
`navigation.push('Details', { props })` comes from the package, and the package doesn't know the screens of your app. One declaration links them: `setup` and `init` write it in `navigation-env.d.ts` at the root of the app.
|
|
155
|
+
|
|
156
|
+
```ts
|
|
157
|
+
// Made by apex-navigation setup: the types of the app's screens
|
|
158
|
+
// for the navigation's commands. Don't edit.
|
|
159
|
+
declare module '@apexnative/navigation' {
|
|
160
|
+
interface Register {
|
|
161
|
+
app: typeof import('./Navigation').Navigation;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
export {};
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
- **It doesn't change with the screens.** It holds no list of screens, only `typeof Navigation`: a screen added to `screens` is typed the moment the file is saved, with no command and no build.
|
|
168
|
+
- **The context too.** When `Navigation.ts` exports a type or an interface named `AppContext`, the file registers it next to `app`, with the line `context: import('./Navigation').AppContext;`: see [Typing it](../architecture/theme-and-context#types). A type of another name isn't picked up.
|
|
169
|
+
- **`setup` keeps it up to date.** It writes the file again when it no longer fits: `Navigation.ts` began to export `AppContext`, or `index.js` imports the navigation from another module or under another name. A renamed module or export is an error of TypeScript in this file, not a silent loss of the types; `doctor` warns about such a file under Typed commands, and `--fix` runs `setup`.
|
|
170
|
+
- **Don't edit it, and commit it.** `setup` knows its own file by the first line, the comment. A file without that line is yours: `setup` leaves it as it is and prints what it would write.
|
|
171
|
+
- **`export {}` matters.** It makes the file a module, so the declaration adds to the types of the package instead of replacing them.
|
|
172
|
+
- **A `tsconfig.json` with its own `include`** gets the file added to it by `setup`, as one of the changes it shows. One that lists its `files` instead: `setup` prints the line to add.
|
|
173
|
+
- **No `tsconfig.json`** (a JavaScript app): the file isn't made. Everything works; screen names are plain strings and props aren't checked. `doctor` checks the names the commands give instead: see [Check everything with doctor](#doctor).
|
|
174
|
+
|
|
175
|
+
> **Note**
|
|
176
|
+
>
|
|
177
|
+
>
|
|
178
|
+
> This is how TypeScript links a package to the code of an app: the commands are imported from the package, so the app has to tell it about its screens once. Other libraries do the same with a file their tools generate.
|
|
179
|
+
>
|
|
180
|
+
|
|
181
|
+
## Check everything with doctor
|
|
182
|
+
|
|
183
|
+
`doctor` checks what the navigation needs **in the app and on the machine**, and gives a fix for each problem. Run it after setup, after an upgrade, and whenever a build fails for no clear reason.
|
|
184
|
+
|
|
185
|
+
- React Native 0.87.1
|
|
186
|
+
- navigation 1.0.0-alpha.0
|
|
187
|
+
- **App**
|
|
188
|
+
- **React Native**
|
|
189
|
+
- **Navigation**
|
|
190
|
+
- **Native files**
|
|
191
|
+
- **Entry point**
|
|
192
|
+
- **Typed commands**
|
|
193
|
+
- **Navigation**
|
|
194
|
+
- **Screens**
|
|
195
|
+
- **Links**
|
|
196
|
+
- **Android**
|
|
197
|
+
- **JDK 17**
|
|
198
|
+
- **Android SDK**
|
|
199
|
+
- **minSdk**
|
|
200
|
+
- **Edge-to-edge**
|
|
201
|
+
- **iOS**
|
|
202
|
+
- **Xcode**
|
|
203
|
+
- **CocoaPods**
|
|
204
|
+
- **Pods**
|
|
205
|
+
- **iOS version**
|
|
206
|
+
- **Devices**
|
|
207
|
+
- **iOS simulator**
|
|
208
|
+
- **adb**
|
|
209
|
+
- **Conflicts**
|
|
210
|
+
- **None**
|
|
211
|
+
- **1 warning · 16 checks passed**
|
|
212
|
+
|
|
213
|
+
| Group | What it checks |
|
|
214
|
+
| --- | --- |
|
|
215
|
+
| App | React Native and the New Architecture, the package, the files `setup` sets up, the entry point, React Native loaded twice, the status bar of the template, the generated code of native screens. Typed commands: `navigation-env.d.ts` there, pointing to the navigation, with its `context` line, and read by `tsconfig.json`. The splash screen made from its settings, with its logo inside the circle of Android's splash icon, and an iOS launch screen made with `UILaunchScreen` and no storyboard, which the navigation can't keep on screen. The app icon made from its settings, and an iOS icon set with no image, which the App Store refuses. |
|
|
216
|
+
| Navigation | From the app's code. Screens: no name given twice in `screens` and the groups, and no file of the screens' folder with a `defineScreen` or `nativeScreen` that no file imports, a screen made and never added. Links: each prefix of `linking` declared on both platforms, the declarations no prefix has, a main activity that isn't `singleTask`. Screen names, in a JavaScript app only: a name that `push`, `replace`, `showModal` or `showInColumn` gives and no screen has, with its file and line. |
|
|
217
|
+
| (Android) | JDK 17 in use, the Android SDK, `minSdk`, how edge-to-edge works in the app. |
|
|
218
|
+
| (iOS) | Xcode 26 or newer, CocoaPods, the pods of the navigation and whether they are out of date, the iOS version of the Podfile. |
|
|
219
|
+
| Devices | A simulator and `adb` to run the app on. |
|
|
220
|
+
| Conflicts | Another navigation in the app, an Expo app. |
|
|
221
|
+
|
|
222
|
+
> **Tip**
|
|
223
|
+
>
|
|
224
|
+
>
|
|
225
|
+
> `--fix` makes the fixes the CLI has, for errors and for warnings: `setup`, `links`, `icons`, `codegen` and `pod install`, asking before each. `--json` prints the result as one JSON document, for CI, tools and AI agents. The command exits with 1 when a check finds an error; warnings leave it at 0.
|
|
226
|
+
>
|
|
227
|
+
|
|
228
|
+
## Next
|
|
229
|
+
|
|
230
|
+
- **The first screens:** the [Quick start](./quick-start) defines two screens, puts them in a stack and pushes one from the other.
|
|
231
|
+
- **A native screen:** a screen in SwiftUI, UIKit or Compose is added with `npx apex-navigation screen`. More: [Native screens](../architecture/native-screens).
|
|
232
|
+
- **Coming from another library:** [From React Navigation](../migration/from-react-navigation), [From Expo Router](../migration/from-expo-router) and [From react-native-navigation](../migration/from-react-native-navigation) move an app screen by screen.
|
|
233
|
+
- **Every command:** [The CLI](../guides/cli) lists them all, with their options, the links, the app icon and the server for AI agents.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Introduction
|
|
2
|
+
|
|
3
|
+
What @apexnative/navigation is, how it differs from a router in the React tree, and which apps it fits.
|
|
4
|
+
|
|
5
|
+
`@apexnative/navigation` gives a React Native app the navigation of the platform itself: the stacks, tabs, sheets and gestures of iOS and Android. You describe the screens and how they are arranged in TypeScript; the native side shows them and reports back.
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import { createNavigation } from '@apexnative/navigation';
|
|
9
|
+
// your own components
|
|
10
|
+
import { Details, Home } from './src/screens';
|
|
11
|
+
|
|
12
|
+
export const Navigation = createNavigation({
|
|
13
|
+
screens: { Home, Details },
|
|
14
|
+
root: 'Home',
|
|
15
|
+
});
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Home opens in a native stack. When Home calls `navigation.push('Details')`, Details slides in with the system transition, and the swipe back (iOS) or the back button (Android) returns to Home. The [Quick start](./quick-start) builds this app step by step.
|
|
19
|
+
|
|
20
|
+
> **Info**
|
|
21
|
+
>
|
|
22
|
+
>
|
|
23
|
+
> The package is a pre-release: the banner at the top of each page says which one and how to install it, and the API can still change before 1.0.
|
|
24
|
+
>
|
|
25
|
+
|
|
26
|
+
## Three ways to build navigation
|
|
27
|
+
|
|
28
|
+
Navigation for React Native is built in one of three ways. They answer two questions differently: **who owns the navigation state**, and **how your code speaks to it**.
|
|
29
|
+
|
|
30
|
+
All three can show native screens. The difference is not in how a screen is drawn, but in where the state lives, who decides what the user sees, and what your code has to say to change it.
|
|
31
|
+
|
|
32
|
+
- Model A — **A router in the React tree**
|
|
33
|
+
- Model B — **Native navigation by commands**
|
|
34
|
+
- Model C · this library — **Native navigation, described in React**
|
|
35
|
+
- **The platform leads**: Native stacks, tabs, sheets and gestures, not a web-style router. A URL is one entry point among push notifications, widgets and shortcuts.
|
|
36
|
+
- **Native is the source of truth**: Navigation state, screen lifecycle, safe areas, keyboard and theme come from the OS.
|
|
37
|
+
- **App lifecycle is first-class**: Cold start, splash, session restore, background and process death are explicit steps.
|
|
38
|
+
- **New OS features, fast**: Support for new iOS and Android releases lands with the betas.
|
|
39
|
+
- **Customization without losing native behavior**: Options of system components first, your own native components inside native containers next, custom JS UI last.
|
|
40
|
+
- **Performance is a requirement**: Transitions and gestures run natively. JavaScript stays off the critical path.
|
|
41
|
+
- **Rendering and logic apart**: React renders screens. The logic of the app (a socket, a session, services) lives outside the render tree: <code>navigation</code> works outside React, <code>willMount</code> prepares the app, and the app's context is a set of services, not a store. push
|
|
42
|
+
- A screen of your app asks for the next one. `navigation.push('Details')`
|
|
43
|
+
- The engine turns it into a layout and sends it to the native side.
|
|
44
|
+
- The platform creates the container and the React root of the screen.
|
|
45
|
+
- The transition runs natively, with the system's gestures.
|
|
46
|
+
- Events come back, and hooks render again. `screenDidAppear · stateChanged`
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Quick start
|
|
2
|
+
|
|
3
|
+
Build two screens in a native stack: Home, and Details that Home pushes with a title.
|
|
4
|
+
|
|
5
|
+
In this tutorial you build an app with two screens. Home opens in a native stack and has a button; the button pushes Details, which shows the title Home gave it. You write three files and run the app.
|
|
6
|
+
|
|
7
|
+
You start from an app set up for the navigation by `setup`, as in [The app you have](./installation#existing-app). An app made by `init` already has exactly these files: read along to see what they do.
|
|
8
|
+
|
|
9
|
+
## 1. Write the first screen
|
|
10
|
+
|
|
11
|
+
A screen is a React component. `defineScreen` puts its options next to it; here the option is the title that the native top bar shows.
|
|
12
|
+
|
|
13
|
+
Create `src/screens/Home.tsx`:
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import { Button, View } from 'react-native';
|
|
17
|
+
import { defineScreen, useNavigation } from '@apexnative/navigation';
|
|
18
|
+
|
|
19
|
+
function Home() {
|
|
20
|
+
const navigation = useNavigation();
|
|
21
|
+
const open = () =>
|
|
22
|
+
navigation.push('Details', { props: { title: 'Details' } });
|
|
23
|
+
return (
|
|
24
|
+
<View>
|
|
25
|
+
<Button title="Open Details" onPress={open} />
|
|
26
|
+
</View>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const HomeScreen = defineScreen({
|
|
31
|
+
component: Home,
|
|
32
|
+
options: (s) => s.title('Home'),
|
|
33
|
+
});
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`useNavigation` gives the screen its commands. `push` shows the screen named `Details` on top of Home, with the props after the name.
|
|
37
|
+
|
|
38
|
+
## 2. Write the screen it opens
|
|
39
|
+
|
|
40
|
+
Details gets its props from the command that shows it. Its options read the same props, so the top bar shows the title Home passed.
|
|
41
|
+
|
|
42
|
+
Create `src/screens/Details.tsx`:
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
import { Text, View } from 'react-native';
|
|
46
|
+
import { defineScreen } from '@apexnative/navigation';
|
|
47
|
+
|
|
48
|
+
export interface DetailsProps {
|
|
49
|
+
title?: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function Details(props: DetailsProps) {
|
|
53
|
+
return (
|
|
54
|
+
<View>
|
|
55
|
+
<Text>{props.title ?? 'Details'}</Text>
|
|
56
|
+
</View>
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export const DetailsScreen = defineScreen({
|
|
61
|
+
component: Details,
|
|
62
|
+
options: (s, props) => s.title(props.title ?? 'Details'),
|
|
63
|
+
});
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 3. Create the navigation
|
|
67
|
+
|
|
68
|
+
`createNavigation` takes the screens by name and the root, what takes the window first. A screen name alone as the root shows that screen in a native stack, so Home can push Details.
|
|
69
|
+
|
|
70
|
+
Replace the `Navigation.ts` that `setup` made:
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
import { createNavigation } from '@apexnative/navigation';
|
|
74
|
+
import { DetailsScreen } from './src/screens/Details';
|
|
75
|
+
import { HomeScreen } from './src/screens/Home';
|
|
76
|
+
|
|
77
|
+
export const Navigation = createNavigation({
|
|
78
|
+
screens: { Home: HomeScreen, Details: DetailsScreen },
|
|
79
|
+
root: 'Home',
|
|
80
|
+
});
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
The names in `screens` are the names the commands use. They are typed: `navigation.push('Detail')` or a prop Details doesn't take is an error in the editor, not at run time. The file `navigation-env.d.ts` that `setup` wrote ties the commands to `screens`, and you don't edit it. More: [Typed commands](./installation#typed-commands).
|
|
84
|
+
|
|
85
|
+
## 4. Check the entry point
|
|
86
|
+
|
|
87
|
+
`setup` already changed `index.js`. It registers the navigation with `AppRegistry` from the package, not from `react-native`: this one takes the navigation instead of a root component, and starts it when the native side launches the app.
|
|
88
|
+
|
|
89
|
+
```js
|
|
90
|
+
import { AppRegistry } from '@apexnative/navigation';
|
|
91
|
+
import { name } from './app.json';
|
|
92
|
+
import { Navigation } from './Navigation';
|
|
93
|
+
|
|
94
|
+
AppRegistry.registerComponent(name, Navigation);
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## 5. Run the app
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx react-native run-ios
|
|
101
|
+
npx react-native run-android
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Home opens in a native stack, with Home in the top bar. Tap Open Details: Details slides in with the system transition, and the top bar shows Details with a back button. The swipe from the left edge (iOS) or the back button (Android) returns to Home.
|
|
105
|
+
|
|
106
|
+
## What a root can be
|
|
107
|
+
|
|
108
|
+
The app you built has one stack. `root` also takes a layout made of builders, and each builder is a real platform container:
|
|
109
|
+
|
|
110
|
+
| Root | What you get |
|
|
111
|
+
| --- | --- |
|
|
112
|
+
| `'Home'` | A native stack with Home: push, pop and swipe back. |
|
|
113
|
+
| `Stack('Home', 'Details')` | A stack that starts with more than one screen. |
|
|
114
|
+
| `Tabs(Tab(Stack('Home')), …)` | The system tab bar; each tab keeps its own stack. |
|
|
115
|
+
| `SideMenu(…)` | A side menu next to a center screen. |
|
|
116
|
+
| `SplitView(…)` | Columns for the large iPad screen. |
|
|
117
|
+
|
|
118
|
+
An app that switches between roots, such as signed out and signed in, uses `roots` instead. More: [Switching roots](../fundamentals/switching-roots) and the flow [Sign in and sign out](../flows/sign-in-and-sign-out).
|
|
119
|
+
|
|
120
|
+
## Where to go next
|
|
121
|
+
|
|
122
|
+
- **How the app starts:** [Starting the app](../fundamentals/starting-the-app) covers everything `createNavigation` takes.
|
|
123
|
+
- **More about screens:** [Screens and props](../fundamentals/screens-and-props), then [Moving between screens](../fundamentals/moving-between-screens).
|
|
124
|
+
- **Coming from another library:** [From React Navigation](../migration/from-react-navigation), [From Expo Router](../migration/from-expo-router) and [From react-native-navigation](../migration/from-react-native-navigation) map what you use now to this API.
|