@apexnative/navigation 1.0.0-alpha.5 → 1.0.0-alpha.7
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 +2 -1
- package/CHANGELOG.md +32 -0
- package/README.md +1 -1
- package/android/CLAUDE.md +31 -20
- package/android/CORE.md +12 -8
- package/android/consumer-rules.pro +6 -0
- package/android/src/main/java/dev/apexnative/navigation/NavigationActivity.kt +36 -5
- package/android/src/main/java/dev/apexnative/navigation/options/BottomTabOptions.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/options/BottomTabsOptions.kt +13 -8
- package/android/src/main/java/dev/apexnative/navigation/options/ButtonOptions.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/options/LargeTitleOptions.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/options/LayoutAnimation.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/options/OptionKey.kt +18 -0
- package/android/src/main/java/dev/apexnative/navigation/options/OptionPaths.kt +91 -0
- package/android/src/main/java/dev/apexnative/navigation/options/SheetOptions.kt +7 -4
- package/android/src/main/java/dev/apexnative/navigation/options/TitleOptions.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/options/TopBarAppearanceOptions.kt +1 -1
- package/android/src/main/java/dev/apexnative/navigation/options/TopBarOptions.kt +16 -7
- package/android/src/main/java/dev/apexnative/navigation/react/ContentHeights.kt +95 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ContentMounts.kt +66 -0
- package/android/src/main/java/dev/apexnative/navigation/react/NavigationTurboModule.kt +7 -3
- package/android/src/main/java/dev/apexnative/navigation/react/OptionsCommands.kt +41 -3
- package/android/src/main/java/dev/apexnative/navigation/react/ReactView.kt +16 -1
- package/android/src/main/java/dev/apexnative/navigation/react/ReloadCoordinator.kt +0 -2
- package/android/src/main/java/dev/apexnative/navigation/react/ScreenEnvironment.kt +177 -0
- package/android/src/main/java/dev/apexnative/navigation/react/ScreenRegions.kt +12 -49
- package/android/src/main/java/dev/apexnative/navigation/react/ScrollEvents.kt +49 -128
- package/android/src/main/java/dev/apexnative/navigation/safearea/SafeAreaView.kt +6 -6
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotScreenView.kt +27 -7
- package/android/src/main/java/dev/apexnative/navigation/slots/SlotView.kt +12 -1
- package/android/src/main/java/dev/apexnative/navigation/utils/MaterialTheme.kt +5 -6
- package/android/src/main/java/dev/apexnative/navigation/utils/SystemAnimations.kt +36 -0
- package/android/src/main/java/dev/apexnative/navigation/utils/ViewExtensions.kt +0 -13
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/ArrangementController.kt +9 -7
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsCollapseBehavior.kt +5 -3
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsController.kt +13 -10
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/CustomTabRowGeometry.kt +22 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabsRoom.kt +0 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ComponentViewController.kt +7 -8
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenSafeArea.kt +29 -11
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/externalcomponent/ExternalComponentViewController.kt +2 -6
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalCoordinator.kt +20 -2
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalSheet.kt +443 -58
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalViews.kt +33 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/SheetBack.kt +42 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/SheetStops.kt +60 -2
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/Navigator.kt +4 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/ParentController.kt +3 -6
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuMotion.kt +8 -2
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/BackPreview.kt +32 -4
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/PreparedFrame.kt +3 -3
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackCommands.kt +2 -2
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackController.kt +50 -7
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackQueue.kt +15 -3
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackViews.kt +10 -4
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabMotion.kt +142 -0
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabPresenter.kt +215 -43
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/StackSearchPresenter.kt +25 -26
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/BarRowTransition.kt +3 -2
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/ButtonPlaces.kt +11 -5
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarPresenter.kt +36 -38
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/viewcontroller/ScrollEventListener.kt +6 -9
- package/android/src/main/java/dev/apexnative/navigation/views/animations/AnimationLayer.kt +73 -0
- package/android/src/main/java/dev/apexnative/navigation/views/animations/ValueInterpolation.kt +14 -0
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/BottomTabsLayout.kt +61 -2
- package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/CustomTabRow.kt +72 -10
- package/android/src/main/java/dev/apexnative/navigation/views/element/ElementTransitions.kt +129 -179
- package/android/src/main/java/dev/apexnative/navigation/views/element/TargetsWait.kt +8 -1
- package/android/src/main/java/dev/apexnative/navigation/views/element/TransitionLayer.kt +37 -112
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ElementPictures.kt +67 -3
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/FlightGeometry.kt +346 -36
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ImageMorph.kt +199 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/SharedAnimatorFactory.kt +55 -42
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/TextMorph.kt +176 -0
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ViewMorph.kt +108 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabCopy.kt +85 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabMenu.kt +13 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TitleBar.kt +5 -24
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TopBar.kt +51 -34
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarButtonComponentCell.kt +6 -6
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarButtonView.kt +113 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarMenu.kt +219 -0
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonBar.kt +121 -175
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonMenus.kt +34 -64
- package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonRow.kt +216 -0
- package/android/src/main/jni/ANNContentHeights.cpp +82 -0
- package/android/src/main/res/drawable/apex_navigation_ic_arrow_right.xml +14 -0
- package/android/src/main/res/layout/apex_navigation_menu_header.xml +19 -0
- package/android/src/main/res/layout/apex_navigation_menu_item.xml +68 -0
- package/android/src/main/res/values/styles.xml +1 -1
- package/android/src/main/res/values-night/styles.xml +1 -1
- package/cli/doctor/checks/app.js +16 -1
- package/cli/project.js +4 -0
- package/cli/setup/index.js +5 -0
- package/cli/setup/steps/metro.js +46 -0
- package/docs-md/architecture/native-screens.md +4 -0
- package/docs-md/architecture/theme-and-context.md +131 -12
- package/docs-md/architecture/transitions.md +46 -5
- package/docs-md/containers/modals.md +2 -0
- package/docs-md/containers/overlays.md +1 -1
- package/docs-md/containers/side-menu.md +1 -1
- package/docs-md/containers/tabs.md +2 -0
- package/docs-md/flows/bottom-sheets.md +4 -2
- package/docs-md/fundamentals/screens-and-props.md +9 -1
- package/docs-md/fundamentals/starting-the-app.md +1 -1
- package/docs-md/guides/cli.md +3 -1
- package/docs-md/help/glossary.md +2 -2
- package/docs-md/help/troubleshooting.md +22 -1
- package/docs-md/index.json +41 -1
- package/docs-md/migration/from-expo-router.md +1 -1
- package/docs-md/migration/from-react-native-navigation.md +1 -1
- package/docs-md/migration/from-react-navigation.md +2 -2
- package/docs-md/screen-ui/back-and-gestures.md +17 -1
- package/docs-md/screen-ui/bar-buttons.md +5 -5
- package/docs-md/screen-ui/search.md +1 -1
- package/docs-md/screen-ui/system-ui.md +16 -11
- package/docs-md/screen-ui/toolbar-and-fab.md +4 -2
- package/docs-md/screen-ui/top-bar.md +8 -4
- package/docs-md/start/installation.md +16 -1
- package/ios/Animations/ANNFrameDriver.h +55 -15
- package/ios/Animations/ANNFrameDriver.mm +216 -60
- package/ios/Animations/ANNTransitionAnimator.h +26 -5
- package/ios/Animations/ANNTransitionAnimator.mm +49 -3
- package/ios/Animations/ANNTransitionPlan.h +2 -2
- package/ios/Animations/ANNTransitionPlan.mm +10 -0
- package/ios/Animations/Elements/ANNElementFinder.h +2 -2
- package/ios/Animations/Elements/ANNElementFinder.mm +2 -2
- package/ios/Animations/Elements/ANNElementTransition.h +3 -3
- package/ios/Animations/Elements/ANNElementTransition.mm +2 -2
- package/ios/Animations/Elements/ANNSharedElementFlight.h +3 -3
- package/ios/Animations/Elements/ANNSharedElementFlight.mm +249 -45
- package/ios/Animations/Interpolators/ANNInterpolate.h +2 -30
- package/ios/Animations/Interpolators/ANNTransformParts.h +48 -0
- package/ios/Animations/Interpolators/ANNTransformParts.mm +507 -0
- package/ios/Animations/Interpolators/ANNViewTracks.h +9 -6
- package/ios/Animations/Interpolators/ANNViewTracks.mm +100 -30
- package/ios/CLAUDE.md +32 -22
- package/ios/CORE.md +25 -21
- package/ios/Contract/ANNCommandRunner.h +8 -7
- package/ios/Contract/ANNCommandRunner.mm +21 -27
- package/ios/Contract/ANNLayoutNode.h +3 -3
- package/ios/Contract/ANNLayoutReader.h +3 -3
- package/ios/Core/ANNAppDelegate.mm +0 -2
- package/ios/Core/ANNDeepLinkQueue.h +6 -5
- package/ios/Core/ANNDeepLinkQueue.mm +22 -10
- package/ios/Core/ANNJavaScriptCalls.h +11 -12
- package/ios/Core/ANNJavaScriptCalls.mm +7 -16
- package/ios/Core/ANNReloadCoordinator.mm +4 -8
- package/ios/Core/ANNSceneDelegate.mm +2 -2
- package/ios/Core/ApexNavigation+Internal.h +1 -1
- package/ios/Core/ApexNavigation.mm +6 -2
- package/ios/Layouts/Arrangement/ANNArrangementState.h +2 -17
- package/ios/Layouts/Arrangement/ANNArrangementState.mm +0 -38
- package/ios/Layouts/Arrangement/ANNArrangementViewController.mm +4 -4
- package/ios/Layouts/Root/ANNRootCoordinator.mm +45 -15
- package/ios/Layouts/Screen/ANNComponentViewController.h +2 -2
- package/ios/Layouts/Screen/ANNComponentViewController.mm +13 -23
- package/ios/Layouts/Screen/ANNPreviewInteraction.h +7 -4
- package/ios/Layouts/Screen/ANNPreviewInteraction.mm +72 -10
- package/ios/Layouts/Screen/ANNScreenEnvironment.h +63 -0
- package/ios/Layouts/Screen/ANNScreenEnvironment.mm +181 -0
- package/ios/Layouts/Screen/ANNScreenRegions.h +3 -18
- package/ios/Layouts/Screen/ANNScreenRegions.mm +0 -38
- package/ios/Layouts/Screen/ANNScreenSafeArea.h +4 -9
- package/ios/Layouts/Screen/ANNScreenSafeArea.mm +14 -16
- package/ios/Layouts/Stack/ANNPreviewPush.h +7 -6
- package/ios/Layouts/Stack/ANNPreviewPush.mm +57 -5
- package/ios/Layouts/Stack/ANNStackAnimatingDelegate.h +11 -2
- package/ios/Layouts/Stack/ANNStackAnimatingDelegate.mm +14 -7
- package/ios/Layouts/Stack/ANNStackController.h +8 -0
- package/ios/Layouts/Stack/ANNStackController.mm +153 -11
- package/ios/Layouts/Stack/ANNSwipePopInteraction.h +26 -0
- package/ios/Layouts/Stack/ANNSwipePopInteraction.mm +185 -0
- package/ios/Layouts/Stack/InteractivePopGestureDelegate.mm +28 -4
- package/ios/Layouts/Tabs/ANNBottomTabsAccessoryView.h +12 -1
- package/ios/Layouts/Tabs/ANNBottomTabsAccessoryView.mm +23 -0
- package/ios/Layouts/Tabs/ANNBottomTabsController.mm +2 -1
- package/ios/Layouts/Tabs/ANNBottomTabsCustomRow.mm +8 -3
- package/ios/Layouts/Tabs/ANNBottomTabsPresenter.h +4 -0
- package/ios/Layouts/Tabs/ANNBottomTabsPresenter.mm +123 -36
- package/ios/Layouts/Tabs/ANNTabsDesign.h +6 -5
- package/ios/Layouts/Tabs/ANNTabsDesign.mm +9 -1
- package/ios/Layouts/Tabs/UITabBar+utils.h +5 -5
- package/ios/Layouts/Tabs/UITabBar+utils.mm +32 -13
- package/ios/Options/ANNAnimationOptions.h +2 -1
- package/ios/Options/ANNAnimationOptions.mm +1 -1
- package/ios/Options/ANNBottomTabsOptions.h +2 -0
- package/ios/Options/ANNBottomTabsOptions.mm +1 -0
- package/ios/Options/ANNOptions.h +25 -0
- package/ios/Options/ANNOptions.mm +157 -1
- package/ios/Options/ANNOptionsReader.mm +108 -0
- package/ios/Options/ANNStackPopAnimationOptions.h +13 -0
- package/ios/Options/ANNStackPopAnimationOptions.mm +11 -0
- package/ios/Options/Params/ANNParam.h +15 -0
- package/ios/Options/Params/ANNParam.mm +61 -0
- package/ios/Options/Params/Color.h +3 -0
- package/ios/Options/Params/Color.mm +21 -0
- package/ios/Options/Params/ColorParser.h +4 -3
- package/ios/Options/Params/ColorParser.mm +22 -4
- package/ios/Options/Params/Image.h +4 -0
- package/ios/Options/Params/Image.mm +20 -0
- package/ios/React/ANNReactView.mm +6 -25
- package/ios/React/ANNSafeAreaViewComponentView.mm +26 -15
- package/ios/React/ANNSurfaceHostingView.h +14 -0
- package/ios/React/ANNSurfaceHostingView.mm +144 -1
- package/ios/React/Slots/ANNSlotScreenView.mm +8 -2
- package/ios/TopBar/ANNBackButtonPresenter.mm +6 -5
- package/ios/TopBar/ANNBarAppearance.h +2 -1
- package/ios/TopBar/ANNBarAppearance.mm +111 -30
- package/ios/TopBar/ANNBarBackgroundComponent.mm +16 -0
- package/ios/TopBar/ANNBarButtonComponentView.h +4 -4
- package/ios/TopBar/ANNBarButtonComponentView.mm +1 -1
- package/ios/TopBar/ANNBarButtons.h +5 -3
- package/ios/TopBar/ANNBarButtons.mm +186 -17
- package/ios/TopBar/ANNLargeTitlePresenter.mm +24 -4
- package/ios/TopBar/ANNMainList.h +3 -0
- package/ios/TopBar/ANNMainList.mm +4 -0
- package/ios/TopBar/ANNScrollEdgeEffects.h +22 -6
- package/ios/TopBar/ANNScrollEdgeEffects.mm +123 -16
- package/ios/TopBar/ANNSearchPresenter.mm +2 -2
- package/ios/TopBar/ANNSearchResultsViewController.mm +5 -5
- package/ios/TopBar/ANNTopBarPresenter.h +3 -2
- package/ios/TopBar/ANNTopBarPresenter.mm +95 -22
- package/ios/TurboModules/ANNTurboModule.mm +66 -16
- package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotState.cpp +20 -0
- package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotState.h +5 -14
- package/lib/module/ARCHITECTURE.md +17 -7
- package/lib/module/adapters/NativeANNTurboModule.js.map +1 -1
- package/lib/module/api/app/AppRegistry.js +14 -2
- package/lib/module/api/app/AppRegistry.js.map +1 -1
- package/lib/module/api/app/createNavigation.js +188 -66
- package/lib/module/api/app/createNavigation.js.map +1 -1
- package/lib/module/api/events/navigationEvents.js +6 -2
- package/lib/module/api/events/navigationEvents.js.map +1 -1
- package/lib/module/api/hooks/useSafeAreaInsets.js +4 -3
- package/lib/module/api/hooks/useSafeAreaInsets.js.map +1 -1
- package/lib/module/api/linking/linking.js +11 -0
- package/lib/module/api/linking/linking.js.map +1 -1
- package/lib/module/api/options/OptionsChain.js +2 -2
- package/lib/module/api/screens/defineScreen.js +45 -3
- package/lib/module/api/screens/defineScreen.js.map +1 -1
- package/lib/module/api/screens/nativeScreens.js +31 -6
- package/lib/module/api/screens/nativeScreens.js.map +1 -1
- package/lib/module/api/screens/registerScreens.js +172 -35
- package/lib/module/api/screens/registerScreens.js.map +1 -1
- package/lib/module/api/theme/theme.js +5 -0
- package/lib/module/api/theme/theme.js.map +1 -1
- package/lib/module/engine/commands.js +42 -2
- package/lib/module/engine/commands.js.map +1 -1
- package/lib/module/engine/layout.js +7 -2
- package/lib/module/engine/layout.js.map +1 -1
- package/lib/module/engine/nativeScreens.js +9 -0
- package/lib/module/engine/nativeScreens.js.map +1 -1
- package/lib/module/engine/options.js +5 -4
- package/lib/module/engine/options.js.map +1 -1
- package/lib/module/engine/optionsChange.js +102 -0
- package/lib/module/engine/optionsChange.js.map +1 -0
- package/lib/module/engine/refresh.js +85 -0
- package/lib/module/engine/refresh.js.map +1 -0
- package/lib/module/engine/rememberedOptions.js +60 -0
- package/lib/module/engine/rememberedOptions.js.map +1 -1
- package/lib/module/engine/screens.js +55 -4
- package/lib/module/engine/screens.js.map +1 -1
- package/lib/typescript/adapters/NativeANNTurboModule.d.ts +7 -0
- package/lib/typescript/adapters/NativeANNTurboModule.d.ts.map +1 -1
- package/lib/typescript/api/app/AppRegistry.d.ts.map +1 -1
- package/lib/typescript/api/app/createNavigation.d.ts +8 -3
- package/lib/typescript/api/app/createNavigation.d.ts.map +1 -1
- package/lib/typescript/api/events/navigationEvents.d.ts +2 -2
- package/lib/typescript/api/events/navigationEvents.d.ts.map +1 -1
- package/lib/typescript/api/hooks/useSafeAreaInsets.d.ts +4 -3
- package/lib/typescript/api/hooks/useSafeAreaInsets.d.ts.map +1 -1
- package/lib/typescript/api/index.d.ts +1 -1
- package/lib/typescript/api/index.d.ts.map +1 -1
- package/lib/typescript/api/linking/linking.d.ts +8 -0
- package/lib/typescript/api/linking/linking.d.ts.map +1 -1
- package/lib/typescript/api/options/OptionsChain.d.ts +2 -2
- package/lib/typescript/api/screens/defineScreen.d.ts +23 -4
- package/lib/typescript/api/screens/defineScreen.d.ts.map +1 -1
- package/lib/typescript/api/screens/nativeScreens.d.ts +8 -1
- package/lib/typescript/api/screens/nativeScreens.d.ts.map +1 -1
- package/lib/typescript/api/screens/registerScreens.d.ts.map +1 -1
- package/lib/typescript/api/theme/theme.d.ts +2 -0
- package/lib/typescript/api/theme/theme.d.ts.map +1 -1
- package/lib/typescript/engine/commands.d.ts +5 -0
- package/lib/typescript/engine/commands.d.ts.map +1 -1
- package/lib/typescript/engine/layout.d.ts.map +1 -1
- package/lib/typescript/engine/nativeScreens.d.ts +5 -0
- package/lib/typescript/engine/nativeScreens.d.ts.map +1 -1
- package/lib/typescript/engine/optionsChange.d.ts +28 -0
- package/lib/typescript/engine/optionsChange.d.ts.map +1 -0
- package/lib/typescript/engine/refresh.d.ts +35 -0
- package/lib/typescript/engine/refresh.d.ts.map +1 -0
- package/lib/typescript/engine/rememberedOptions.d.ts +13 -0
- package/lib/typescript/engine/rememberedOptions.d.ts.map +1 -1
- package/lib/typescript/engine/screens.d.ts +27 -6
- package/lib/typescript/engine/screens.d.ts.map +1 -1
- package/lib/typescript/interfaces/ComponentEvents.d.ts +2 -2
- package/lib/typescript/interfaces/options/animations.d.ts +44 -14
- package/lib/typescript/interfaces/options/animations.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/bottomTabs.d.ts +19 -6
- package/lib/typescript/interfaces/options/bottomTabs.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/buttons.d.ts +10 -10
- package/lib/typescript/interfaces/options/modals.d.ts +6 -7
- package/lib/typescript/interfaces/options/modals.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/stack.d.ts +8 -3
- package/lib/typescript/interfaces/options/stack.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/system.d.ts +8 -5
- package/lib/typescript/interfaces/options/system.d.ts.map +1 -1
- package/lib/typescript/interfaces/options/toolbar.d.ts +2 -2
- package/lib/typescript/interfaces/options/topBar.d.ts +46 -29
- package/lib/typescript/interfaces/options/topBar.d.ts.map +1 -1
- package/metro/acceptPlugin.js +57 -0
- package/metro/babelTransformer.js +45 -0
- package/metro/index.js +36 -0
- package/package.json +3 -1
- package/src/ARCHITECTURE.md +17 -7
- package/src/adapters/NativeANNTurboModule.ts +7 -0
- package/src/api/app/AppRegistry.ts +16 -2
- package/src/api/app/createNavigation.ts +201 -69
- package/src/api/events/navigationEvents.ts +9 -3
- package/src/api/hooks/useSafeAreaInsets.ts +4 -3
- package/src/api/index.ts +1 -0
- package/src/api/linking/linking.ts +22 -1
- package/src/api/options/OptionsChain.ts +2 -2
- package/src/api/screens/defineScreen.ts +49 -5
- package/src/api/screens/nativeScreens.ts +40 -4
- package/src/api/screens/registerScreens.tsx +170 -42
- package/src/api/theme/theme.ts +5 -0
- package/src/engine/commands.ts +51 -6
- package/src/engine/layout.ts +11 -2
- package/src/engine/nativeScreens.ts +10 -1
- package/src/engine/options.ts +6 -8
- package/src/engine/optionsChange.ts +107 -0
- package/src/engine/refresh.ts +97 -0
- package/src/engine/rememberedOptions.ts +70 -0
- package/src/engine/screens.tsx +53 -8
- package/src/interfaces/ComponentEvents.ts +2 -2
- package/src/interfaces/options/animations.ts +44 -14
- package/src/interfaces/options/bottomTabs.ts +19 -6
- package/src/interfaces/options/buttons.ts +10 -10
- package/src/interfaces/options/modals.ts +6 -7
- package/src/interfaces/options/stack.ts +8 -3
- package/src/interfaces/options/system.ts +8 -5
- package/src/interfaces/options/toolbar.ts +2 -2
- package/src/interfaces/options/topBar.ts +46 -29
- package/android/src/main/java/dev/apexnative/navigation/react/ArrangementStates.kt +0 -42
- package/android/src/main/java/dev/apexnative/navigation/react/ScreenInsets.kt +0 -70
- package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/CustomTabRowPlacer.kt +0 -223
- package/android/src/main/java/dev/apexnative/navigation/views/element/ElementStub.kt +0 -31
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ImageMatrixAnimator.kt +0 -136
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PlainViewAnimator.kt +0 -86
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PropertyAnimatorCreator.kt +0 -33
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ReactImageAnimator.kt +0 -64
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/TextChangeAnimator.kt +0 -177
- package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ViewChangeAnimator.kt +0 -137
- package/ios/Layouts/Screen/ANNScreenInsets.h +0 -30
- package/ios/Layouts/Screen/ANNScreenInsets.mm +0 -70
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Options } from '../interfaces/Options.js';
|
|
2
|
+
/** What an edit of a screen's options changed: the options to merge, and the paths of the options it took out. */
|
|
3
|
+
export interface OptionsChange {
|
|
4
|
+
/** The options that are new or have another value; undefined when none. */
|
|
5
|
+
merge?: Options;
|
|
6
|
+
/** The paths of the options set before and not now, such as `['topBar', 'subtitle']`. */
|
|
7
|
+
removed: string[][];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* What `next` changes of `previous`, both the options of one screen. Objects compare key by key; anything else, an
|
|
11
|
+
* array such as buttons too, changes as a whole, and a function by identity (`sameValue`).
|
|
12
|
+
*/
|
|
13
|
+
export declare function optionsChange(previous: Options, next: Options): OptionsChange;
|
|
14
|
+
/**
|
|
15
|
+
* Whether two values are the same: plain objects key by key, arrays item by item, anything else, functions too, by
|
|
16
|
+
* identity. A module that ran again makes its functions anew, so they count as changed: Hermes keeps no source to tell
|
|
17
|
+
* an edited one, and sending a button's handler again costs little. With `functionsAlike` any two functions are alike.
|
|
18
|
+
*/
|
|
19
|
+
export declare function sameValue(a: unknown, b: unknown, functionsAlike?: boolean): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The part of an edit's change that the screen shows the old definition's value of: where the command that showed it,
|
|
22
|
+
* or a merge since, set another value, that value stays. `before` is what the old definition gave, `own` the screen's
|
|
23
|
+
* own options now.
|
|
24
|
+
*/
|
|
25
|
+
export declare function changeOverOwn(change: OptionsChange, before: Options, own: Options): OptionsChange;
|
|
26
|
+
/** The value at a path of options, such as `['topBar', 'title', 'text']`; undefined where there is none. */
|
|
27
|
+
export declare function valueAt(options: unknown, path: readonly string[]): unknown;
|
|
28
|
+
//# sourceMappingURL=optionsChange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optionsChange.d.ts","sourceRoot":"","sources":["../../../src/engine/optionsChange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAAuB,CAAC;AAErD,kHAAkH;AAClH,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yFAAyF;IACzF,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,aAAa,CAI7E;AA+BD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,UAAQ,GAAG,OAAO,CAYjF;AAQD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,aAAa,CASjG;AAYD,4GAA4G;AAC5G,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAK1E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** The versions of one component React Refresh keeps, `current` the newest. */
|
|
2
|
+
interface Family {
|
|
3
|
+
current: unknown;
|
|
4
|
+
}
|
|
5
|
+
/** Whether React Refresh runs: development with Metro. */
|
|
6
|
+
export declare function refreshRuns(): boolean;
|
|
7
|
+
/** The family a component's versions are kept in; undefined in a release build or for a value Metro didn't export. */
|
|
8
|
+
export declare function familyOf(type: unknown): Family | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* The newest version of a component after Fast Refresh ran its module again; the component itself when there is none
|
|
11
|
+
* newer, and in a release build.
|
|
12
|
+
*/
|
|
13
|
+
export declare function newestType<T extends object>(type: T): T;
|
|
14
|
+
/** Sets what runs when a module makes a screen again: Fast Refresh ran it after an edit. */
|
|
15
|
+
export declare function onRedefined(listener: (screen: object) => void): void;
|
|
16
|
+
/**
|
|
17
|
+
* Tells about a screen a module made, once the module ran: Metro registers its exports after it, so the family of the
|
|
18
|
+
* screen is known by then, and a new version of a screen that shows is found by it. Development only.
|
|
19
|
+
*/
|
|
20
|
+
export declare function redefined(screen: object): void;
|
|
21
|
+
/**
|
|
22
|
+
* Puts a component a screen or the app renders (`owner`: the screen, or the app made by createNavigation; `role`: which
|
|
23
|
+
* of its components) in a family of its own, once the owner's module ran and Metro has given the owner its family: the
|
|
24
|
+
* next version of the owner registers its component under the same id, so React Refresh keeps the component's state
|
|
25
|
+
* when the module runs again, also when the module doesn't export it. A component React Refresh knows already (its
|
|
26
|
+
* module exports it, or Babel registered it) keeps its own family. Development only.
|
|
27
|
+
*/
|
|
28
|
+
export declare function keepStateOf(owner: object, component: unknown, role?: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Makes React Refresh mount a component of the library again, not keep its state, when a new version of it comes: its
|
|
31
|
+
* hooks are the app's, which may have changed, and the library's code has no signature of them. Development only.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resetOnEdit(type: object): void;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=refresh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/engine/refresh.ts"],"names":[],"mappings":"AAKA,+EAA+E;AAC/E,UAAU,MAAM;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAoBD,0DAA0D;AAC1D,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,sHAAsH;AACtH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE1D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAEvD;AAID,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAI9C;AAMD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,SAAc,GAAG,IAAI,CAcvF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9C"}
|
|
@@ -11,8 +11,21 @@ export interface SentRoot {
|
|
|
11
11
|
* in that root. The options that act once (a tab to select, a menu to open) stay in no node and are not remembered.
|
|
12
12
|
*/
|
|
13
13
|
export declare function rememberMergedOptions(id: string, options: Options): void;
|
|
14
|
+
/** Takes the options at the paths, such as `['topBar', 'subtitle']`, out of those remembered for the node with the id. */
|
|
15
|
+
export declare function forgetMergedPaths(id: string, paths: readonly string[][]): void;
|
|
14
16
|
/** Forgets the merged options of a node that went; a node of the last root keeps them until another root goes out. */
|
|
15
17
|
export declare function forgetMergedOptions(id: string): void;
|
|
18
|
+
/** Notes the own options a screen of the name shows with (development). */
|
|
19
|
+
export declare function noteOwnOptions(id: string, name: string, options: Options): void;
|
|
20
|
+
/** Notes a merge into a screen's own options (development). */
|
|
21
|
+
export declare function noteMergedOwnOptions(id: string, options: Options): void;
|
|
22
|
+
/** The own options of a screen as JavaScript sent them (development); undefined for a screen it didn't note. */
|
|
23
|
+
export declare function ownOptionsOf(id: string): Options | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* The ids of the screens of the name the native side has, mounted in React or not yet (a tab not selected yet), as
|
|
26
|
+
* development notes them.
|
|
27
|
+
*/
|
|
28
|
+
export declare function notedScreens(name: string): string[];
|
|
16
29
|
/** The options merged into the node with the id, as remembered; undefined without any. */
|
|
17
30
|
export declare function mergedOptionsOf(id: string): Options | undefined;
|
|
18
31
|
/** The root the native side got last; undefined before the first one. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rememberedOptions.d.ts","sourceRoot":"","sources":["../../../src/engine/rememberedOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAU,CAAC;AAS3C,uEAAuE;AACvE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClB;AAKD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAKxE;AAED,sHAAsH;AACtH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"rememberedOptions.d.ts","sourceRoot":"","sources":["../../../src/engine/rememberedOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAU,CAAC;AAS3C,uEAAuE;AACvE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClB;AAKD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAKxE;AAED,0HAA0H;AAC1H,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,IAAI,CAK9E;AAiCD,sHAAsH;AACtH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGpD;AAMD,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAE/E;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAGvE;AAED,gHAAgH;AAChH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnD;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE/D;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAoBlF"}
|
|
@@ -43,6 +43,24 @@ export type EngineScreen = {
|
|
|
43
43
|
export type ScreenRootProps = {
|
|
44
44
|
componentId: string;
|
|
45
45
|
} & Record<string, unknown>;
|
|
46
|
+
/**
|
|
47
|
+
* What React Native gives the root of a React screen: the screen's id, its root tag (none in a slot of the app's one
|
|
48
|
+
* tree), and the props the native side gives that root, a tab cell's `tabIndex`, `selected`, `badge`, `dot` and
|
|
49
|
+
* `dotColor`.
|
|
50
|
+
*/
|
|
51
|
+
export type NativeRootProps = {
|
|
52
|
+
componentId: string;
|
|
53
|
+
rootTag?: number;
|
|
54
|
+
} & Record<string, unknown>;
|
|
55
|
+
/**
|
|
56
|
+
* Notes a screen as shown, a React root or slot of it or the controller of a native screen, until the function it
|
|
57
|
+
* gives is called.
|
|
58
|
+
*/
|
|
59
|
+
export declare function noteShown(componentId: string, name: string): () => void;
|
|
60
|
+
/** The ids of the screens with the name that show now. */
|
|
61
|
+
export declare function shownScreens(name: string): string[];
|
|
62
|
+
/** Whether a React root of the screen with the id is mounted now (a slot of the app's one tree doesn't count). */
|
|
63
|
+
export declare function hasRoot(componentId: string): boolean;
|
|
46
64
|
/** What runs when the root of a screen unmounts: the screen is gone. */
|
|
47
65
|
export declare function onScreenUnmounted(listener: (screenId: string) => void): void;
|
|
48
66
|
/** Registers a screen; a React screen becomes a root React Native runs under the screen's name. */
|
|
@@ -77,14 +95,17 @@ export declare function hasNativeScreenHooks(): boolean;
|
|
|
77
95
|
export declare function rendersInSlot(name: string): boolean;
|
|
78
96
|
/** A React screen of the app, as opposed to a native screen or a name the app did not register. */
|
|
79
97
|
export declare function isReactScreen(name: string): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* The props a screen's component renders with: those a command left under its id ([stored]), the props the native side
|
|
100
|
+
* gave its root over them ([root]: a tab cell's state, which the docs promise arrives on top of `passProps`), and its
|
|
101
|
+
* id. The root tag stays with the root.
|
|
102
|
+
*/
|
|
103
|
+
export declare function screenProps(stored: object, root: NativeRootProps): ScreenRootProps;
|
|
80
104
|
/**
|
|
81
105
|
* The root a React screen runs in: the screen with the props a command left for it under its id, and the new ones when
|
|
82
|
-
* options give its id new props
|
|
83
|
-
*
|
|
106
|
+
* options give its id new props, under the props the native side gives the root ([screenProps]). The slot of the app's
|
|
107
|
+
* one tree renders the same root.
|
|
84
108
|
*/
|
|
85
|
-
export declare function screenRoot(name: string): ComponentType<
|
|
86
|
-
componentId: string;
|
|
87
|
-
rootTag?: number;
|
|
88
|
-
}> | undefined;
|
|
109
|
+
export declare function screenRoot(name: string): ComponentType<NativeRootProps> | undefined;
|
|
89
110
|
export {};
|
|
90
111
|
//# sourceMappingURL=screens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../src/engine/screens.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAgD,MAAM,OAAO,CAAC;AAEhG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAAuB,CAAC;AAKrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAiB,CAAC;AAE7D,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAE5C,2GAA2G;AAC3G,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,MAAM,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;IACvD,OAAO,EAAE,SAAS,GAAG,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB;IACE,SAAS,EAAE,MAAM,aAAa,CAAC,eAAe,CAAC,CAAC;IAChD,OAAO,EAAE,SAAS,CAAC;IACnB,wFAAwF;IACxF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACrD,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IACvC,kHAAkH;IAClH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qHAAqH;IACrH,WAAW,CAAC,EAAE,MAAM,iBAAiB,GAAG,SAAS,CAAC;CACnD,GACD;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,oCAAoC;IACpC,UAAU,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAClD,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,iBAAiB,GAAG,SAAS,CAAC;CACnD,GACD;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEhC,mGAAmG;AACnG,MAAM,MAAM,eAAe,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../src/engine/screens.tsx"],"names":[],"mappings":"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"}
|
|
@@ -85,8 +85,8 @@ export interface SheetDetentChangedEvent {
|
|
|
85
85
|
/** The id of the visible screen of the modal. */
|
|
86
86
|
componentId: string;
|
|
87
87
|
/**
|
|
88
|
-
* The detent the sheet stopped at: `'medium'`, `'large'`,
|
|
89
|
-
*
|
|
88
|
+
* The detent the sheet stopped at: `'medium'`, `'large'`, `'content'` (the detent that fits the content), or a
|
|
89
|
+
* height (points on iOS, dp on Android).
|
|
90
90
|
*/
|
|
91
91
|
detent: 'medium' | 'large' | 'content' | number;
|
|
92
92
|
}
|
|
@@ -236,10 +236,12 @@ export type ElementAnimation = AppearingElementAnimation | DisappearingElementAn
|
|
|
236
236
|
* the way (an error in its animation) is skipped too, with a warning in the log: it shows and hides with its screen,
|
|
237
237
|
* and the transition and its command go on. Without an animation of the screens of its own, the screen that comes fades
|
|
238
238
|
* in (or the one that goes fades out) in 300 ms around the elements. When the transition ends or is cancelled, the
|
|
239
|
-
* element gets its own values back.
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
*
|
|
239
|
+
* element gets its own values back. The element's own `transform` counts: a property that doesn't animate keeps the
|
|
240
|
+
* element's value, and a missing end is that value (a turn read from −180° to 180°, as React Native draws it). `x`
|
|
241
|
+
* and `y` are the position in the parent of the element on both platforms. As on a side of a screen, don't set `x`
|
|
242
|
+
* with `translationX` or `y` with `translationY` on one element: the translation plays and the position doesn't.
|
|
243
|
+
* The element plays where it is, in its screen: it moves with its screen, its parents clip it, and the views drawn
|
|
244
|
+
* after it in its screen stay over it.
|
|
243
245
|
*/
|
|
244
246
|
export interface ElementTransition {
|
|
245
247
|
/** The `nativeID` of the view to animate. */
|
|
@@ -269,12 +271,20 @@ export interface ElementTransition {
|
|
|
269
271
|
* A view that flies from the screen that goes to the screen that comes, changing its place, size, corners and look on
|
|
270
272
|
* the way. A pair whose view is not found on either screen is skipped while the rest plays, and the transition waits
|
|
271
273
|
* until the views are found. A pair that fails on the way (an error in its start or its flight) is skipped too, with a
|
|
272
|
-
* warning in the log: its views show and hide with their screens, and the transition and its command go on.
|
|
273
|
-
*
|
|
274
|
-
* own, the screen that comes fades in (or the one that goes fades out) in 300 ms around the pair.
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
*
|
|
274
|
+
* warning in the log: its views show and hide with their screens, and the transition and its command go on. So is a
|
|
275
|
+
* pair with a view without a size, or one whose picture can't be taken. Without an animation of the screens of its
|
|
276
|
+
* own, the screen that comes fades in (or the one that goes fades out) in 300 ms around the pair. What flies is a copy:
|
|
277
|
+
* pictures of the two views taken as the transition starts, while the views stay hidden in their places; what changes
|
|
278
|
+
* in them meanwhile shows when they are back. A view its parents cut (`overflow: hidden`, a scroll view, the edge of
|
|
279
|
+
* its screen) shows only the part they leave visible, and that part goes to the one of the other view on the way.
|
|
280
|
+
* Text keeps its proportions, flies whole and changes its picture within a quarter of the flight. A view turned or
|
|
281
|
+
* scaled by its own `transform` or by a parent's flies from where it shows, and its angle goes to the other view's
|
|
282
|
+
* along the shorter arc. The angle is the one React Native draws, from −180° to 180°:
|
|
283
|
+
* `rotate: '270deg'` turns back a quarter, and no pair spins a full turn. (Android) An image without a background or a
|
|
284
|
+
* border flies as the image of the view that comes, from the part and place the fit (`resizeMode`) shows in one view
|
|
285
|
+
* to those in the other, and an animated image plays on; images of other proportions fly as pictures. An image that
|
|
286
|
+
* doesn't load within a second drops out of the transition. A skew and a tilt (`skewX`, `rotateX`, …) don't fly: the
|
|
287
|
+
* view flies without them and has them again at the end.
|
|
278
288
|
*/
|
|
279
289
|
export interface SharedElementTransition {
|
|
280
290
|
/** The `nativeID` of the view on the screen that goes. */
|
|
@@ -379,14 +389,27 @@ export interface StackPushAnimationOptions extends StackAnimationOptions {
|
|
|
379
389
|
zoom?: ZoomTransitionOptions;
|
|
380
390
|
}
|
|
381
391
|
/**
|
|
382
|
-
* The animation of a pop, read from the screen that goes. As {@link StackAnimationOptions}, with the
|
|
383
|
-
* back gesture on Android.
|
|
392
|
+
* The animation of a pop, read from the screen that goes. As {@link StackAnimationOptions}, with the swipe back of iOS
|
|
393
|
+
* and the preview of the back gesture on Android.
|
|
384
394
|
*/
|
|
385
395
|
export interface StackPopAnimationOptions extends StackAnimationOptions {
|
|
396
|
+
/**
|
|
397
|
+
* (iOS) Whether the swipe back plays this pop under the finger. Without it, the swipe back plays UIKit's slide, and
|
|
398
|
+
* the pop's own animation plays only for the back button and `pop`. With `true`, the swipe from the edge plays the
|
|
399
|
+
* pop's own animation as far as the finger has gone across the screen: the user can stop halfway, and letting go
|
|
400
|
+
* finishes the pop or puts the screen back, the rest playing faster after a quick flick. It applies only when the pop
|
|
401
|
+
* has an animation of its own (`content`, `elementTransitions`, `sharedElementTransitions`). The top bar shows the
|
|
402
|
+
* screen under from the start of the swipe, as UIKit does in a transition of its own, and comes back when the swipe
|
|
403
|
+
* is given up. On iOS 26 the swipe from the content stays off for a screen with an own pop.
|
|
404
|
+
* Android ignores it: a pop with an animation of its own plays when the back gesture ends.
|
|
405
|
+
* @default false
|
|
406
|
+
*/
|
|
407
|
+
interactive?: boolean;
|
|
386
408
|
/**
|
|
387
409
|
* (Android 14+) Whether the back gesture on a pushed screen previews its pop as the user swipes: the screen shrinks
|
|
388
410
|
* and follows the finger, the screen under it shows behind. `false` pops the screen when the gesture is released,
|
|
389
|
-
* as on Android 13 and older; back still pops it. iOS ignores it: its swipe back is UIKit's
|
|
411
|
+
* as on Android 13 and older; back still pops it. iOS ignores it: its swipe back is UIKit's, or the pop's own
|
|
412
|
+
* animation with `interactive`.
|
|
390
413
|
* @default true
|
|
391
414
|
*/
|
|
392
415
|
preview?: boolean;
|
|
@@ -439,6 +462,12 @@ export interface ModalAnimationOptions extends EnterExitAnimationOptions {
|
|
|
439
462
|
* options of the command. A change by `mergeOptions` is for the next command and animates nothing itself. A theme
|
|
440
463
|
* switch or a rotation does not change an animation. Without a key, the transition is the platform's own.
|
|
441
464
|
*
|
|
465
|
+
* The system's setting to reduce motion is respected, with no option to turn that off. (iOS) With Reduce Motion on, a
|
|
466
|
+
* transition of these keys is a fade of the same length: the screen that comes fades in (a push, `setStackRoot`, a
|
|
467
|
+
* modal's show, `setRoot`), the screen that goes fades out (a pop, a dismissal); no element moves. (Android) With
|
|
468
|
+
* Remove animations on (or the animator duration scale at 0), the transitions end at once, no element moves and none
|
|
469
|
+
* is waited for, a side menu opens and closes without its slide, and a sheet shows and closes without it.
|
|
470
|
+
*
|
|
442
471
|
* ```ts
|
|
443
472
|
* const options: Options = {
|
|
444
473
|
* animations: {
|
|
@@ -454,7 +483,8 @@ export interface AnimationOptions {
|
|
|
454
483
|
push?: StackPushAnimationOptions;
|
|
455
484
|
/**
|
|
456
485
|
* The pop of a screen, also `popTo` and `popToRoot`, read from the screen that goes. The swipe back of iOS is
|
|
457
|
-
* UIKit's; the back gesture of Android previews the pop
|
|
486
|
+
* UIKit's, or the pop's own animation under the finger (`interactive`); the back gesture of Android previews the pop
|
|
487
|
+
* (`preview`).
|
|
458
488
|
*/
|
|
459
489
|
pop?: StackPopAnimationOptions;
|
|
460
490
|
/** The replacing of the screens of a stack, read from the new top screen. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animations.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/animations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"animations.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/animations.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,8 +68,10 @@ export interface OptionsBottomTabsAccessoryComponent {
|
|
|
68
68
|
/**
|
|
69
69
|
* (iOS 26+) The accessory above the tab bar, like the mini player of a music app. The system sizes it (48 points high)
|
|
70
70
|
* and the component fills that size. It is placed above the bar, or beside the bar when the bar is minimized; on an
|
|
71
|
-
* iPad with the bar at the top it sits at the bottom over the full width, always above the bar.
|
|
72
|
-
*
|
|
71
|
+
* iPad with the bar at the top it sits at the bottom over the full width, always above the bar. A hidden accessory
|
|
72
|
+
* (`visible: false`, or no name) keeps its React root and its state, and shows again with them. When another accessory
|
|
73
|
+
* (another `componentId`) shows, the replaced one stops once it has left the window and its state is gone. The last
|
|
74
|
+
* accessory stops together with the tabs. Android has no accessory.
|
|
73
75
|
*/
|
|
74
76
|
export interface OptionsBottomTabsAccessory {
|
|
75
77
|
/**
|
|
@@ -148,6 +150,16 @@ export interface OptionsBottomTabs {
|
|
|
148
150
|
* @default true
|
|
149
151
|
*/
|
|
150
152
|
animate?: boolean;
|
|
153
|
+
/**
|
|
154
|
+
* How the content changes when another tab is selected on screen, by a press, by back or from code. `'platform'`
|
|
155
|
+
* does what the platform does: on Android the tab that goes fades out and the new one fades in and grows (Material's
|
|
156
|
+
* fade through, 300 ms), on iOS the content changes at once. `'none'` changes it at once on both platforms. The
|
|
157
|
+
* appear events of a switch and `ANN.BottomTabSelected` come at its end, so with `'none'` right away. The tab that is
|
|
158
|
+
* selected decides: the value of the screen it shows, over its own, the tabs' and the default options. A
|
|
159
|
+
* `mergeOptions` applies from the next switch. Off screen the content always changes at once.
|
|
160
|
+
* @default 'platform'
|
|
161
|
+
*/
|
|
162
|
+
switchAnimation?: 'platform' | 'none';
|
|
151
163
|
/**
|
|
152
164
|
* The tab to select, as an index from 0. It selects once, when the options arrive, at creation (the first tab to
|
|
153
165
|
* show) or in `mergeOptions`; it is not kept. An index out of range selects nothing (or the first tab at creation)
|
|
@@ -180,9 +192,10 @@ export interface OptionsBottomTabs {
|
|
|
180
192
|
*/
|
|
181
193
|
drawBehind?: boolean;
|
|
182
194
|
/**
|
|
183
|
-
* The background color of the bar; `null` gives the default one. On Android the default is the surface color
|
|
184
|
-
* Material 3 theme. Before iOS 26
|
|
185
|
-
*
|
|
195
|
+
* The background color of the bar; `null` gives the default one. On Android the default is the surface container color
|
|
196
|
+
* (`colorSurfaceContainer`) of the Material 3 theme. Before iOS 26, and in the compatibility mode (`UIDesignRequiresCompatibility` in Info.plist: iOS 26, and iOS 27
|
|
197
|
+
* only for an app built with an SDK before iOS 27), the bar is opaque with the color, or system opaque without it,
|
|
198
|
+
* and a transparent color makes it transparent. On iOS 26 and later with glass the color is ignored
|
|
186
199
|
* with one warning, since the system has no color for glass, while a transparent color gives a transparent bar. The
|
|
187
200
|
* theme color `bar` is its default option.
|
|
188
201
|
*/
|
|
@@ -388,7 +401,7 @@ export interface OptionsBottomTab {
|
|
|
388
401
|
selectedFontSize?: number;
|
|
389
402
|
/**
|
|
390
403
|
* (iOS) The insets of the icon. Each side is independent. They apply before iOS 26 only; iOS 26 and the compatibility
|
|
391
|
-
* mode ignore them, and so does a system role before iOS 18.
|
|
404
|
+
* mode (see `backgroundColor`) ignore them, and so does a system role before iOS 18.
|
|
392
405
|
*/
|
|
393
406
|
iconInsets?: IconInsets;
|
|
394
407
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottomTabs.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/bottomTabs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAU,CAAC;AAExF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,8FAA8F;IAC9F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,oHAAoH;IACpH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD,qGAAqG;IACrG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"bottomTabs.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/bottomTabs.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ export interface IconInsets {
|
|
|
33
33
|
* a color the other fields are ignored.
|
|
34
34
|
*
|
|
35
35
|
* On iOS the icon is drawn onto the shape and the button becomes a button of its own (the back button keeps its
|
|
36
|
-
* history menu), without the glass capsule
|
|
36
|
+
* history menu), without the glass capsule (glass design, iOS 26+) by default. On Android the icon sits on the shape, mirrored in a
|
|
37
37
|
* right-to-left layout. Layers merge differently: on iOS an object merges field by field like any other, on Android
|
|
38
38
|
* an `iconBackground` that has a `color` replaces the earlier one as a whole.
|
|
39
39
|
*/
|
|
@@ -126,7 +126,7 @@ export interface OptionsTopBarButtonMenu {
|
|
|
126
126
|
* A button of the top bar (`leftButtons`, `rightButtons`, `centerButtons`) or of the toolbar (`toolbar.buttons`). The
|
|
127
127
|
* kinds are picked by the fields that are set. On iOS, the first that fits wins: a `component`, then an icon with text
|
|
128
128
|
* and `showText`, then an icon with `iconBackground` or `iconInsets`, then an SF Symbol, an image `icon`, a `text`,
|
|
129
|
-
* a `systemItem`; a button with none of them is not shown. On Android a button is a
|
|
129
|
+
* a `systemItem`; a button with none of them is not shown. On Android a button is a button of the bar's row: text, icon
|
|
130
130
|
* or a component. Lists of buttons are replaced as a whole and take nothing from the lists of lower layers.
|
|
131
131
|
*
|
|
132
132
|
* Text, icon, color and similar fields are the same in all four places; where a place or a side differs, the field
|
|
@@ -156,7 +156,7 @@ export interface OptionsTopBarButton {
|
|
|
156
156
|
*/
|
|
157
157
|
icon?: ImageResource;
|
|
158
158
|
/**
|
|
159
|
-
* (iOS) The space around the image of `icon`; the button becomes a button of its own, without a capsule
|
|
159
|
+
* (iOS) The space around the image of `icon`; the button becomes a button of its own, without a capsule with the glass design (iOS 26+, see `UIDesignRequiresCompatibility`).
|
|
160
160
|
*/
|
|
161
161
|
iconInsets?: IconInsets;
|
|
162
162
|
/**
|
|
@@ -171,7 +171,7 @@ export interface OptionsTopBarButton {
|
|
|
171
171
|
systemItem?: SystemItemIcon;
|
|
172
172
|
/**
|
|
173
173
|
* The text of the button. A button with an icon keeps it as a label for the overflow menu, the customization panel
|
|
174
|
-
* and VoiceOver (iOS) or
|
|
174
|
+
* and VoiceOver (iOS), or for TalkBack, the tooltip of a long press and the overflow menu (Android).
|
|
175
175
|
*/
|
|
176
176
|
text?: string;
|
|
177
177
|
/** The text a screen reader says for the button. */
|
|
@@ -205,14 +205,14 @@ export interface OptionsTopBarButton {
|
|
|
205
205
|
disabledColor?: Color;
|
|
206
206
|
/**
|
|
207
207
|
* A shape behind the icon. It works with an `icon` image and a `color` of the shape; on iOS the button becomes a
|
|
208
|
-
* button of its own without menu, toggle or style, and without a capsule
|
|
208
|
+
* button of its own without menu, toggle or style, and without a capsule with the glass design by default. The color of a whole
|
|
209
209
|
* side is `leftButtonBackgroundColor` / `rightButtonBackgroundColor`.
|
|
210
210
|
*/
|
|
211
211
|
iconBackground?: IconBackgroundOptions;
|
|
212
212
|
/**
|
|
213
|
-
* (iOS) `'plain'` or `'prominent'`, the main action of the bar (Done, Send).
|
|
213
|
+
* (iOS) `'plain'` or `'prominent'`, the main action of the bar (Done, Send). With the glass design (iOS 26+, see `UIDesignRequiresCompatibility`) a prominent button is a
|
|
214
214
|
* capsule in the button's tint with bold text or icon on it (the tint is `color`, the bar's tint without it);
|
|
215
|
-
*
|
|
215
|
+
* without it, it is the system's done style with bold text. Not for component buttons, buttons with
|
|
216
216
|
* `iconBackground`, and `showText` buttons.
|
|
217
217
|
* @default 'plain'
|
|
218
218
|
*/
|
|
@@ -224,7 +224,7 @@ export interface OptionsTopBarButton {
|
|
|
224
224
|
*/
|
|
225
225
|
testID?: string;
|
|
226
226
|
/**
|
|
227
|
-
* (iOS 26
|
|
227
|
+
* (iOS 26+, glass design) Whether the button has no glass capsule under it; neighbors keep theirs. By default `true` for
|
|
228
228
|
* component buttons and for icon buttons with a background or insets, `false` for the rest. In a `group` of several
|
|
229
229
|
* buttons the capsule is shared and this has no effect. A change by `mergeOptions` builds the buttons anew.
|
|
230
230
|
*/
|
|
@@ -237,8 +237,8 @@ export interface OptionsTopBarButton {
|
|
|
237
237
|
*/
|
|
238
238
|
showText?: boolean;
|
|
239
239
|
/**
|
|
240
|
-
* (iOS 26
|
|
241
|
-
* own.
|
|
240
|
+
* (iOS 26+, glass design) Buttons next to each other with the same group share one capsule; a button without a group has its
|
|
241
|
+
* own. Without the glass design it does nothing, on iOS 15 there are no groups. A side that has a group of several buttons
|
|
242
242
|
* doesn't animate button changes. The toolbar has no groups: only icons share a capsule there. For center buttons
|
|
243
243
|
* the group is a section of the overflow menu, and its name is the id the customization is saved under.
|
|
244
244
|
*/
|
|
@@ -41,8 +41,7 @@ export type OptionsModalTransitionStyle = 'coverVertical' | 'crossDissolve' | 'f
|
|
|
41
41
|
*
|
|
42
42
|
* On iOS `'medium'` and `'large'` are the system stops; a number and `'content'` need iOS 16 and are left out below it
|
|
43
43
|
* with a warning in the log. On Android `'medium'` is half of the window, `'large'` the full height under the status
|
|
44
|
-
* bar, a number is capped at `'large'`, and `'content'`
|
|
45
|
-
* height by content.
|
|
44
|
+
* bar, a number is capped at `'large'`, and `'content'` is the height of the content, measured as on iOS.
|
|
46
45
|
*/
|
|
47
46
|
export type OptionsModalSheetDetent = 'medium' | 'large' | 'content' | number;
|
|
48
47
|
/**
|
|
@@ -56,11 +55,11 @@ export type OptionsModalSheetDetent = 'medium' | 'large' | 'content' | number;
|
|
|
56
55
|
export interface OptionsModalSheet {
|
|
57
56
|
/**
|
|
58
57
|
* The stops the sheet can rest on, and the user drags it between, in any order: on both platforms they are sorted by
|
|
59
|
-
* height and repeats dropped. On iOS `'medium'` counts as half of `'large'` there, and `'content'` takes its
|
|
60
|
-
* the height of the content, again whenever that changes; a list left empty by unsupported values
|
|
61
|
-
* `['large']`. On Android the Material sheet has three resting places at most: the lowest stop of the list, the
|
|
62
|
-
* highest, and
|
|
63
|
-
* dropped.
|
|
58
|
+
* height and repeats dropped. On iOS `'medium'` counts as half of `'large'` there, and on both `'content'` takes its
|
|
59
|
+
* place by the height of the content, again whenever that changes; on iOS a list left empty by unsupported values
|
|
60
|
+
* gives `['large']`. On Android the Material sheet has three resting places at most: the lowest stop of the list, the
|
|
61
|
+
* highest, and one between them, `selectedDetent` when it stands there, else the lowest of the others; the rest are
|
|
62
|
+
* dropped. Stops of the same height there are one.
|
|
64
63
|
* @default ['large']
|
|
65
64
|
*/
|
|
66
65
|
detents?: OptionsModalSheetDetent[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modals.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/modals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,6BAA6B,GACrC,WAAW,GACX,WAAW,GACX,YAAY,GACZ,gBAAgB,GAChB,oBAAoB,GACpB,gBAAgB,GAChB,SAAS,CAAC;AAEd;;;;;;;;;GASG;AACH,MAAM,MAAM,2BAA2B,GACrC,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEvE
|
|
1
|
+
{"version":3,"file":"modals.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/modals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,6BAA6B,GACrC,WAAW,GACX,WAAW,GACX,YAAY,GACZ,gBAAgB,GAChB,oBAAoB,GACpB,gBAAgB,GAChB,SAAS,CAAC;AAEd;;;;;;;;;GASG;AACH,MAAM,MAAM,2BAA2B,GACrC,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACpC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACvD;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mCAAmC;AACnC,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,mEAAmE;IACnE,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,mDAAmD;IACnD,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -37,13 +37,18 @@ export interface HardwareBackButtonOptions {
|
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* (Android) A floating action button over the screen, or an entry of its menu. The button shows while its screen is
|
|
40
|
-
* on top of the stack; without the option there is none.
|
|
41
|
-
* the
|
|
40
|
+
* on top of the stack; without the option there is none. It changes as a push or a pop starts and moves with its
|
|
41
|
+
* screen, as the tab bar does: the new screen's button comes in with it, the old one goes out with the screen it
|
|
42
|
+
* belongs to, and an open menu closes. With an animation of the screens' own the old button shrinks away and the new
|
|
43
|
+
* one grows as it starts; during the back gesture the button of the screen under the top shows with that screen.
|
|
44
|
+
* `mergeOptions` and the default options of the app apply, and the colors of the theme are read again when the theme
|
|
45
|
+
* changes.
|
|
42
46
|
*/
|
|
43
47
|
export interface OptionsFab {
|
|
44
48
|
/**
|
|
45
49
|
* The identifier of the button. A press reports it, and the app finds the `onPress` of the button by it. A button
|
|
46
|
-
* without an `id` doesn't show. The same `id` on a later show or merge updates the button
|
|
50
|
+
* without an `id` doesn't show. The same `id` on a later show or merge updates the button, which stays in place
|
|
51
|
+
* while the screens move; another `id` replaces it.
|
|
47
52
|
* For an entry of `actions` it is the id of that entry's own press.
|
|
48
53
|
*/
|
|
49
54
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAU,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IAClD;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED
|
|
1
|
+
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAU,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IAClD;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,kHAAkH;IAClH,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB"}
|
|
@@ -23,12 +23,15 @@ export interface OptionsLayout {
|
|
|
23
23
|
* indicator or navigation bar, the camera cutout. `[]` lets the content reach every edge. The array replaces the
|
|
24
24
|
* one from a lower layer. The screen adds the padding itself; `useSafeAreaInsets()` returns what is still covered,
|
|
25
25
|
* which is 0 on an edge the screen keeps and the whole covered size on an edge where the content goes under a bar.
|
|
26
|
-
* Edges listed here
|
|
26
|
+
* Edges listed here win, but the top under a large title: there the list keeps its first rows clear of the bar
|
|
27
|
+
* itself and scrolls under it, which collapses the title, so a `'top'` listed here counts for nothing.
|
|
27
28
|
*
|
|
28
|
-
* Without it
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
29
|
+
* Without it the screen keeps the top and the sides, and its content goes down to the bottom: under the home
|
|
30
|
+
* indicator or the navigation bar, and under a tab bar or toolbar it goes under. A list keeps its last rows clear
|
|
31
|
+
* with `useSafeAreaInsets().bottom`. The top is free where the content goes under a top bar: on iOS under a bar
|
|
32
|
+
* that shows, on Android under a bar that hides on scroll; on both under a large title, so the list scrolls under
|
|
33
|
+
* the bar. On iOS the side of a vertical bar is free too. To have the screen keep the bottom, list every edge it
|
|
34
|
+
* keeps: listed edges replace the default.
|
|
32
35
|
*/
|
|
33
36
|
safeAreaEdges?: SafeAreaEdge[];
|
|
34
37
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/system.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAU,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GACzB,KAAK,GACL,SAAS,GACT,UAAU,GACV,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,gBAAgB,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/system.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAU,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GACzB,KAAK,GACL,SAAS,GACT,UAAU,GACV,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,gBAAgB,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB;;;OAGG;IACH,wBAAwB,CAAC,EAAE,KAAK,CAAC;IACjC;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,YAAY,EAAE,CAAC;IACrC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qHAAqH;AACrH,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAC;AAEjG;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,8FAA8F;IAC9F,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,+GAA+G;IAC/G,SAAS,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACxC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -3,7 +3,7 @@ import type { OptionsTopBarButton } from './buttons.js';
|
|
|
3
3
|
export interface OptionsToolbarSpace {
|
|
4
4
|
/**
|
|
5
5
|
* `'flexibleSpace'` takes the free width and pushes the next buttons to the far edge; `'fixedSpace'` is a gap of zero
|
|
6
|
-
* width that starts a new capsule
|
|
6
|
+
* width that starts a new capsule with the glass design (iOS 26+).
|
|
7
7
|
*/
|
|
8
8
|
systemItem: 'flexibleSpace' | 'fixedSpace';
|
|
9
9
|
}
|
|
@@ -33,7 +33,7 @@ export interface OptionsToolbar {
|
|
|
33
33
|
* The buttons from the leading edge, in the format of the bar buttons: text, icon, SF Symbol, `systemItem`, a
|
|
34
34
|
* component (drawn before the screen shows), `enabled`, `color`, `style`, `menu` (it opens upward), `toggle`,
|
|
35
35
|
* `showText`, `group`; also spaces and the search field. A press sends a button press. The color of a side doesn't
|
|
36
|
-
* apply to them, and badges are not drawn.
|
|
36
|
+
* apply to them, and badges are not drawn. With the glass design (iOS 26+, see `UIDesignRequiresCompatibility`) each button has its own capsule, neighbor icons with the same
|
|
37
37
|
* `group` share one (the toolbar has no real groups, so text buttons never share), and a zero-width space is put
|
|
38
38
|
* between neighbors of different groups unless an explicit space is there. The list is replaced as a whole;
|
|
39
39
|
* `mergeOptions` animates it.
|