├── .clang-format ├── .eslintignore ├── .eslintrc.js ├── .github ├── ISSUE_TEMPLATE │ ├── BUG_REPORT_ANDROID.yml │ ├── BUG_REPORT_IOS.yml │ ├── BUG_REPORT_OTHER.yml │ ├── ENHANCEMENT.yml │ ├── config.yml │ ├── documentation.md │ └── question.md ├── label-actions.yml ├── stale.yml └── workflows │ ├── documentation.yml │ ├── process-label.yml │ └── require-label.yml ├── .gitignore ├── .grenrc.js ├── .logo.png ├── .npmignore ├── .npmrc ├── .nvmrc ├── .prettierrc ├── .vscode └── settings.json ├── .watchmanconfig ├── CHANGELOG.md ├── CONTRIBUTING.md ├── Gemfile ├── LICENSE ├── Mock.ts ├── README.md ├── ReactNativeNavigation.podspec ├── autolink ├── fixtures │ ├── rn68 │ │ ├── AppDelegate.mm.template │ │ └── MainActivity.java.template │ ├── rn69 │ │ ├── AppDelegate.mm.template │ │ └── MainActivity.java.template │ └── rn71 │ │ ├── AppDelegate.mm.template │ │ └── MainActivity.java.template ├── postlink.sh └── postlink │ ├── __snapshots__ │ ├── activityLinker.test.js.snap │ └── appDelegateLinker.test.js.snap │ ├── activityLinker.js │ ├── activityLinker.test.js │ ├── appDelegateLinker.js │ ├── appDelegateLinker.test.js │ ├── applicationLinker.js │ ├── gradleLinker.js │ ├── log.js │ ├── path.js │ ├── plistLinker.js │ ├── podfileLinker.js │ ├── postLinkAndroid.js │ ├── postLinkIOS.js │ ├── run.js │ └── stringUtils.js ├── babel.config.js ├── e2e ├── AndroidUtils.js ├── ApplicationLifecycleTest.test.js ├── BackButton.test.js ├── BottomTabs.test.js ├── Buttons.test.js ├── CustomTransition.js ├── ExternalComponent.test.js ├── Keyboard.test.js ├── LazyRegsitration.test.js ├── Modals.test.js ├── Options.test.js ├── Orientation.test.js ├── Overlay.test.js ├── SearchBar.test.js ├── SetRoot.test.js ├── SideMenu.test.js ├── SplitView.test.js ├── Stack.test.js ├── StaticLifecycleEvents.test.js ├── Utils.js ├── assets │ ├── buttons_navbar.android.png │ ├── buttons_navbar.ios.png │ └── overlay_banner_padding.png ├── iOSUtils.js ├── init.js └── jest.config.js ├── index.e2e.js ├── index.js ├── integration ├── env.test.js ├── redux │ ├── MyComponent.js │ ├── MyStore.js │ └── Redux.test.js └── remx │ ├── MyComponent.js │ ├── MyStore.js │ └── remx.test.js ├── jest-setup.js ├── jest.config.js ├── jsconfig.json ├── lib ├── Mock │ ├── Application.tsx │ ├── ComponentProps.tsx │ ├── Components │ │ ├── BottomTabs.tsx │ │ ├── ComponentScreen.tsx │ │ ├── LayoutComponent.tsx │ │ ├── Modals.tsx │ │ ├── NavigationButton.tsx │ │ ├── Overlays.tsx │ │ ├── SideMenu.tsx │ │ ├── Stack.tsx │ │ └── TopBar.tsx │ ├── Layouts │ │ ├── BottomTabsNode.ts │ │ ├── ComponentNode.ts │ │ ├── LayoutNodeFactory.ts │ │ ├── Node.ts │ │ ├── ParentNode.ts │ │ ├── SideMenu.ts │ │ └── StackNode.ts │ ├── Stores │ │ ├── EventsStore.ts │ │ └── LayoutStore.ts │ ├── actions │ │ └── layoutActions.ts │ ├── connect.ts │ ├── constants.ts │ ├── index.ts │ └── mocks │ │ ├── AppRegistryService.ts │ │ ├── NativeCommandsSender.tsx │ │ └── NativeEventsReceiver.ts ├── android │ ├── app │ │ ├── build.gradle │ │ └── src │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── reactnativenavigation │ │ │ │ │ ├── FeatureToggles.kt │ │ │ │ │ ├── NavigationActivity.java │ │ │ │ │ ├── NavigationApplication.java │ │ │ │ │ ├── hierarchy │ │ │ │ │ └── root │ │ │ │ │ │ └── RootAnimator.kt │ │ │ │ │ ├── options │ │ │ │ │ ├── Alignment.java │ │ │ │ │ ├── AnimationOptions.kt │ │ │ │ │ ├── AnimationsOptions.kt │ │ │ │ │ ├── BackButton.java │ │ │ │ │ ├── BottomTabOptions.java │ │ │ │ │ ├── BottomTabsOptions.java │ │ │ │ │ ├── ButtonOptions.java │ │ │ │ │ ├── ComponentOptions.java │ │ │ │ │ ├── DotIndicatorOptions.java │ │ │ │ │ ├── ElementTransitionOptions.kt │ │ │ │ │ ├── ElementTransitions.kt │ │ │ │ │ ├── ExternalComponent.java │ │ │ │ │ ├── FabOptions.java │ │ │ │ │ ├── FadeAnimation.kt │ │ │ │ │ ├── FontOptions.kt │ │ │ │ │ ├── HardwareBackButtonOptions.kt │ │ │ │ │ ├── IconBackgroundOptions.java │ │ │ │ │ ├── LayoutAnimation.kt │ │ │ │ │ ├── LayoutDirection.java │ │ │ │ │ ├── LayoutFactory.java │ │ │ │ │ ├── LayoutNode.java │ │ │ │ │ ├── ModalOptions.java │ │ │ │ │ ├── ModalPresentationStyle.java │ │ │ │ │ ├── NavigationBarOptions.java │ │ │ │ │ ├── Options.java │ │ │ │ │ ├── Orientation.java │ │ │ │ │ ├── OrientationOptions.java │ │ │ │ │ ├── OverlayOptions.java │ │ │ │ │ ├── ShadowOptions.kt │ │ │ │ │ ├── SharedElementTransitionOptions.kt │ │ │ │ │ ├── SharedElements.kt │ │ │ │ │ ├── SideMenuOptions.java │ │ │ │ │ ├── SideMenuRootOptions.java │ │ │ │ │ ├── StackAnimationOptions.kt │ │ │ │ │ ├── StatusBarOptions.java │ │ │ │ │ ├── SubtitleOptions.java │ │ │ │ │ ├── TabsAttachMode.java │ │ │ │ │ ├── TitleOptions.java │ │ │ │ │ ├── TopBarBackgroundOptions.java │ │ │ │ │ ├── TopBarButtons.java │ │ │ │ │ ├── TopBarOptions.java │ │ │ │ │ ├── TopTabOptions.java │ │ │ │ │ ├── TopTabsOptions.java │ │ │ │ │ ├── TransitionAnimationOptions.kt │ │ │ │ │ ├── ValueAnimationOptions.kt │ │ │ │ │ ├── animations │ │ │ │ │ │ └── ViewAnimationOptions.kt │ │ │ │ │ ├── interpolators │ │ │ │ │ │ ├── DecelerateAccelerateInterpolator.kt │ │ │ │ │ │ └── SpringInterpolator.kt │ │ │ │ │ ├── layout │ │ │ │ │ │ ├── LayoutInsets.kt │ │ │ │ │ │ └── LayoutOptions.kt │ │ │ │ │ ├── params │ │ │ │ │ │ ├── Bool.java │ │ │ │ │ │ ├── Colour.java │ │ │ │ │ │ ├── DensityPixel.java │ │ │ │ │ │ ├── DontApplyColour.java │ │ │ │ │ │ ├── FloatParam.java │ │ │ │ │ │ ├── Fraction.java │ │ │ │ │ │ ├── NullBool.java │ │ │ │ │ │ ├── NullColor.java │ │ │ │ │ │ ├── NullDensityPixel.java │ │ │ │ │ │ ├── NullFloatParam.java │ │ │ │ │ │ ├── NullFraction.java │ │ │ │ │ │ ├── NullNumber.java │ │ │ │ │ │ ├── NullText.java │ │ │ │ │ │ ├── Number.java │ │ │ │ │ │ ├── Param.java │ │ │ │ │ │ ├── ReactPlatformColor.kt │ │ │ │ │ │ ├── Text.java │ │ │ │ │ │ ├── ThemeColour.kt │ │ │ │ │ │ └── TitleDisplayMode.java │ │ │ │ │ └── parsers │ │ │ │ │ │ ├── BoolParser.java │ │ │ │ │ │ ├── ColorParser.kt │ │ │ │ │ │ ├── DensityPixelParser.java │ │ │ │ │ │ ├── FloatParser.java │ │ │ │ │ │ ├── FontParser.kt │ │ │ │ │ │ ├── FractionParser.java │ │ │ │ │ │ ├── IconParser.java │ │ │ │ │ │ ├── InterpolationParser.java │ │ │ │ │ │ ├── JSONParser.java │ │ │ │ │ │ ├── LayoutNodeParser.java │ │ │ │ │ │ ├── NumberParser.java │ │ │ │ │ │ ├── TextParser.java │ │ │ │ │ │ └── TypefaceLoader.kt │ │ │ │ │ ├── react │ │ │ │ │ ├── BundleDownloadListenerProvider.java │ │ │ │ │ ├── CommandListener.java │ │ │ │ │ ├── CommandListenerAdapter.java │ │ │ │ │ ├── Constants.java │ │ │ │ │ ├── DevBundleDownloadListenerAdapter.java │ │ │ │ │ ├── JsDevReloadHandler.java │ │ │ │ │ ├── JsDevReloadHandlerFacade.java │ │ │ │ │ ├── LifecycleEventListenerAdapter.java │ │ │ │ │ ├── NativeCommandListener.java │ │ │ │ │ ├── NavigationDevBundleDownloadListener.java │ │ │ │ │ ├── NavigationModule.java │ │ │ │ │ ├── NavigationPackage.kt │ │ │ │ │ ├── NavigationReactInitializer.java │ │ │ │ │ ├── NavigationReactNativeHost.java │ │ │ │ │ ├── NavigationTurboModule.kt │ │ │ │ │ ├── ReactComponentViewCreator.java │ │ │ │ │ ├── ReactGateway.java │ │ │ │ │ ├── ReactView.java │ │ │ │ │ ├── ReloadHandler.java │ │ │ │ │ ├── ReloadHandlerFacade.java │ │ │ │ │ ├── events │ │ │ │ │ │ ├── ComponentType.java │ │ │ │ │ │ └── EventEmitter.java │ │ │ │ │ └── modal │ │ │ │ │ │ ├── Events.kt │ │ │ │ │ │ ├── ModalContentLayout.kt │ │ │ │ │ │ ├── ModalFrameLayout.kt │ │ │ │ │ │ ├── ModalHostLayout.kt │ │ │ │ │ │ ├── ModalLayoutController.kt │ │ │ │ │ │ └── ModalViewManager.kt │ │ │ │ │ ├── utils │ │ │ │ │ ├── AnimationListener.kt │ │ │ │ │ ├── ArrayUtils.java │ │ │ │ │ ├── Assertions.java │ │ │ │ │ ├── BorderRadiusOutlineProvider.kt │ │ │ │ │ ├── CollectionUtils.java │ │ │ │ │ ├── ColorUtils.java │ │ │ │ │ ├── CompatUtils.java │ │ │ │ │ ├── Context.kt │ │ │ │ │ ├── CoordinatorLayoutUtils.java │ │ │ │ │ ├── DeviceScreen.java │ │ │ │ │ ├── Functions.java │ │ │ │ │ ├── IdFactory.kt │ │ │ │ │ ├── ImageLoader.kt │ │ │ │ │ ├── ImageLoadingListenerAdapter.java │ │ │ │ │ ├── ImageUtils.kt │ │ │ │ │ ├── LateInit.java │ │ │ │ │ ├── LaunchArgsParser.java │ │ │ │ │ ├── Log.kt │ │ │ │ │ ├── MotionEvent.kt │ │ │ │ │ ├── Now.java │ │ │ │ │ ├── ObjectUtils.java │ │ │ │ │ ├── OutlineProvider.kt │ │ │ │ │ ├── PrimitiveExt.kt │ │ │ │ │ ├── ReactImageView.kt │ │ │ │ │ ├── ReactTypefaceUtils.java │ │ │ │ │ ├── ReactViewGroup.kt │ │ │ │ │ ├── ReflectionUtils.java │ │ │ │ │ ├── RenderChecker.java │ │ │ │ │ ├── RoundingParams.kt │ │ │ │ │ ├── StringUtils.java │ │ │ │ │ ├── StubAnimationListener.kt │ │ │ │ │ ├── SystemUiUtils.kt │ │ │ │ │ ├── TextViewUtils.java │ │ │ │ │ ├── Time.java │ │ │ │ │ ├── UiThread.java │ │ │ │ │ ├── UiUtils.java │ │ │ │ │ ├── ViewController.kt │ │ │ │ │ ├── ViewExtensions.kt │ │ │ │ │ ├── ViewParent.kt │ │ │ │ │ ├── ViewTags.java │ │ │ │ │ ├── ViewUtils.java │ │ │ │ │ └── WindowInsetsUtils.java │ │ │ │ │ ├── viewcontrollers │ │ │ │ │ ├── bottomtabs │ │ │ │ │ │ ├── BottomTabFinder.java │ │ │ │ │ │ ├── BottomTabPresenter.java │ │ │ │ │ │ ├── BottomTabsAnimator.kt │ │ │ │ │ │ ├── BottomTabsController.java │ │ │ │ │ │ ├── BottomTabsPresenter.kt │ │ │ │ │ │ ├── TabSelector.java │ │ │ │ │ │ └── attacher │ │ │ │ │ │ │ ├── BottomTabsAttacher.java │ │ │ │ │ │ │ └── modes │ │ │ │ │ │ │ ├── AfterInitialTab.java │ │ │ │ │ │ │ ├── AttachMode.java │ │ │ │ │ │ │ ├── OnSwitchToTab.java │ │ │ │ │ │ │ └── Together.java │ │ │ │ │ ├── child │ │ │ │ │ │ ├── ChildController.java │ │ │ │ │ │ └── ChildControllersRegistry.java │ │ │ │ │ ├── common │ │ │ │ │ │ └── BaseAnimator.java │ │ │ │ │ ├── component │ │ │ │ │ │ ├── ComponentPresenter.java │ │ │ │ │ │ ├── ComponentPresenterBase.java │ │ │ │ │ │ └── ComponentViewController.java │ │ │ │ │ ├── externalcomponent │ │ │ │ │ │ ├── ExternalComponent.java │ │ │ │ │ │ ├── ExternalComponentCreator.java │ │ │ │ │ │ ├── ExternalComponentPresenter.java │ │ │ │ │ │ └── ExternalComponentViewController.java │ │ │ │ │ ├── modal │ │ │ │ │ │ ├── ModalAnimator.kt │ │ │ │ │ │ ├── ModalPresenter.java │ │ │ │ │ │ └── ModalStack.java │ │ │ │ │ ├── navigator │ │ │ │ │ │ └── Navigator.java │ │ │ │ │ ├── overlay │ │ │ │ │ │ └── OverlayManager.kt │ │ │ │ │ ├── parent │ │ │ │ │ │ └── ParentController.java │ │ │ │ │ ├── sidemenu │ │ │ │ │ │ ├── SideMenuController.java │ │ │ │ │ │ └── SideMenuPresenter.java │ │ │ │ │ ├── stack │ │ │ │ │ │ ├── FabAnimator.java │ │ │ │ │ │ ├── FabCollapseBehaviour.java │ │ │ │ │ │ ├── FabPresenter.java │ │ │ │ │ │ ├── IdStack.java │ │ │ │ │ │ ├── StackAnimator.kt │ │ │ │ │ │ ├── StackController.java │ │ │ │ │ │ ├── StackControllerBuilder.java │ │ │ │ │ │ ├── StackPresenter.java │ │ │ │ │ │ └── topbar │ │ │ │ │ │ │ ├── TopBarAppearanceAnimator.kt │ │ │ │ │ │ │ ├── TopBarBackgroundViewController.java │ │ │ │ │ │ │ ├── TopBarCollapseBehavior.kt │ │ │ │ │ │ │ ├── TopBarController.kt │ │ │ │ │ │ │ ├── button │ │ │ │ │ │ │ ├── BackButtonHelper.java │ │ │ │ │ │ │ ├── ButtonController.kt │ │ │ │ │ │ │ ├── ButtonPresenter.kt │ │ │ │ │ │ │ ├── ButtonSpan.kt │ │ │ │ │ │ │ └── IconResolver.java │ │ │ │ │ │ │ └── title │ │ │ │ │ │ │ └── TitleBarReactViewController.java │ │ │ │ │ ├── statusbar │ │ │ │ │ │ └── StatusBarPresenter.kt │ │ │ │ │ ├── toptabs │ │ │ │ │ │ ├── TopTabsAdapter.java │ │ │ │ │ │ └── TopTabsController.java │ │ │ │ │ └── viewcontroller │ │ │ │ │ │ ├── Destroyable.java │ │ │ │ │ │ ├── IReactView.java │ │ │ │ │ │ ├── LayoutDirectionApplier.kt │ │ │ │ │ │ ├── NoOpYellowBoxDelegate.kt │ │ │ │ │ │ ├── Presenter.java │ │ │ │ │ │ ├── ReactViewCreator.java │ │ │ │ │ │ ├── RootPresenter.java │ │ │ │ │ │ ├── ScrollEventListener.java │ │ │ │ │ │ ├── StatusBarColorAnimator.kt │ │ │ │ │ │ ├── ViewController.java │ │ │ │ │ │ ├── ViewControllerVisibilityInfo.kt │ │ │ │ │ │ ├── ViewVisibilityListenerAdapter.java │ │ │ │ │ │ ├── YellowBoxDelegate.kt │ │ │ │ │ │ ├── YellowBoxHelper.java │ │ │ │ │ │ └── overlay │ │ │ │ │ │ ├── ModalOverlay.kt │ │ │ │ │ │ ├── OverlayLayout.kt │ │ │ │ │ │ ├── RootOverlay.kt │ │ │ │ │ │ └── ViewControllerOverlay.kt │ │ │ │ │ └── views │ │ │ │ │ ├── BehaviourAdapter.java │ │ │ │ │ ├── BehaviourDelegate.java │ │ │ │ │ ├── ExternalComponentLayout.java │ │ │ │ │ ├── animations │ │ │ │ │ ├── BaseViewAppearanceAnimator.kt │ │ │ │ │ ├── ColorAnimator.kt │ │ │ │ │ ├── DefaultViewAnimatorCreator.kt │ │ │ │ │ ├── ViewAnimatorCreator.kt │ │ │ │ │ └── ViewBkgColorProperty.kt │ │ │ │ │ ├── bottomtabs │ │ │ │ │ ├── BottomTabs.java │ │ │ │ │ ├── BottomTabsBehaviour.java │ │ │ │ │ ├── BottomTabsContainer.kt │ │ │ │ │ ├── BottomTabsLayout.java │ │ │ │ │ └── ShadowLayout.kt │ │ │ │ │ ├── component │ │ │ │ │ ├── Component.java │ │ │ │ │ ├── ComponentLayout.java │ │ │ │ │ ├── ComponentViewCreator.java │ │ │ │ │ ├── ReactComponent.java │ │ │ │ │ └── Renderable.java │ │ │ │ │ ├── element │ │ │ │ │ ├── ElementTransition.kt │ │ │ │ │ ├── SharedElementTransition.kt │ │ │ │ │ ├── Transition.kt │ │ │ │ │ ├── TransitionAnimatorCreator.kt │ │ │ │ │ ├── TransitionSet.kt │ │ │ │ │ ├── TransitionSetCreator.kt │ │ │ │ │ ├── animators │ │ │ │ │ │ ├── BackgroundColorAnimator.kt │ │ │ │ │ │ ├── BackgroundColorEvaluator.kt │ │ │ │ │ │ ├── BoundsEvaluator.kt │ │ │ │ │ │ ├── CornerRadiusEvaluator.kt │ │ │ │ │ │ ├── FastImageBorderRadiusAnimator+utilities.kt │ │ │ │ │ │ ├── FastImageBorderRadiusAnimator.kt │ │ │ │ │ │ ├── FastImageBoundsAnimator.kt │ │ │ │ │ │ ├── FastImageMatrixAnimator.kt │ │ │ │ │ │ ├── OutlineEvaluator.kt │ │ │ │ │ │ ├── PropertyAnimatorCreator.kt │ │ │ │ │ │ ├── ReactImageBoundsAnimator.kt │ │ │ │ │ │ ├── ReactImageCornerRadiusAnimator.kt │ │ │ │ │ │ ├── ReactImageMatrixAnimator.kt │ │ │ │ │ │ ├── ReactViewBorderRadiusAnimator.kt │ │ │ │ │ │ ├── ReactViewOutlineAnimator.kt │ │ │ │ │ │ ├── ReactViewRotationAnimator.kt │ │ │ │ │ │ ├── RotationAnimator.kt │ │ │ │ │ │ ├── TextChangeAnimator.kt │ │ │ │ │ │ ├── ViewOutline.kt │ │ │ │ │ │ ├── XAnimator.kt │ │ │ │ │ │ └── YAnimator.kt │ │ │ │ │ └── finder │ │ │ │ │ │ ├── ExistingViewFinder.kt │ │ │ │ │ │ └── ViewFinder.kt │ │ │ │ │ ├── sidemenu │ │ │ │ │ ├── SideMenu.java │ │ │ │ │ └── SideMenuRoot.java │ │ │ │ │ ├── stack │ │ │ │ │ ├── StackBehaviour.java │ │ │ │ │ ├── StackLayout.java │ │ │ │ │ ├── fab │ │ │ │ │ │ ├── Fab.java │ │ │ │ │ │ └── FabMenu.java │ │ │ │ │ └── topbar │ │ │ │ │ │ ├── ScrollDIsabledBehavior.java │ │ │ │ │ │ ├── TopBar.java │ │ │ │ │ │ ├── TopBarBackgroundView.java │ │ │ │ │ │ ├── TopBarBackgroundViewCreator.java │ │ │ │ │ │ └── titlebar │ │ │ │ │ │ ├── ButtonBar.kt │ │ │ │ │ │ ├── IconBackgroundDrawable.kt │ │ │ │ │ │ ├── SingleLineTextView.kt │ │ │ │ │ │ ├── TitleAndButtonsContainer.kt │ │ │ │ │ │ ├── TitleAndButtonsMeasurer.kt │ │ │ │ │ │ ├── TitleBarButtonCreator.java │ │ │ │ │ │ ├── TitleBarReactButtonView.java │ │ │ │ │ │ ├── TitleBarReactView.kt │ │ │ │ │ │ ├── TitleBarReactViewCreator.java │ │ │ │ │ │ └── TitleSubTitleLayout.kt │ │ │ │ │ ├── toptabs │ │ │ │ │ ├── TopTabs.java │ │ │ │ │ ├── TopTabsLayoutCreator.java │ │ │ │ │ ├── TopTabsStyleHelper.java │ │ │ │ │ └── TopTabsViewPager.java │ │ │ │ │ └── touch │ │ │ │ │ └── OverlayTouchDelegate.kt │ │ │ └── res │ │ │ │ ├── anim │ │ │ │ ├── slide_down.xml │ │ │ │ └── slide_up.xml │ │ │ │ ├── drawable │ │ │ │ ├── ic_arrow_back_black_24dp.xml │ │ │ │ └── ic_arrow_back_black_rtl_24dp.xml │ │ │ │ └── values │ │ │ │ ├── dimen.xml │ │ │ │ ├── ids.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── test │ │ │ ├── java │ │ │ └── com │ │ │ │ └── reactnativenavigation │ │ │ │ ├── BaseRobolectricTest.kt │ │ │ │ ├── BaseTest.kt │ │ │ │ ├── EnvironmentTest.java │ │ │ │ ├── TestActivity.java │ │ │ │ ├── TestApplication.java │ │ │ │ ├── TestUtils.java │ │ │ │ ├── fakes │ │ │ │ └── IconResolverFake.kt │ │ │ │ ├── mocks │ │ │ │ ├── BackDrawable.java │ │ │ │ ├── ImageLoaderMock.kt │ │ │ │ ├── Mocks.kt │ │ │ │ ├── SimpleComponentViewController.java │ │ │ │ ├── SimpleOverlay.java │ │ │ │ ├── SimpleViewController.java │ │ │ │ ├── TestComponentLayout.java │ │ │ │ ├── TestComponentViewCreator.java │ │ │ │ ├── TestReactView.java │ │ │ │ ├── TitleBarButtonCreatorMock.java │ │ │ │ ├── TitleBarReactViewCreatorMock.java │ │ │ │ ├── TopBarBackgroundViewCreatorMock.java │ │ │ │ └── TypefaceLoaderMock.kt │ │ │ │ ├── options │ │ │ │ ├── LayoutNodeParserTest.java │ │ │ │ ├── OptionsTest.java │ │ │ │ ├── OrientationOptionsTest.java │ │ │ │ ├── TopBarButtonsTest.kt │ │ │ │ ├── TransitionAnimationOptionsTest.kt │ │ │ │ └── parsers │ │ │ │ │ ├── BoolParserTest.java │ │ │ │ │ ├── ColorParseTest.java │ │ │ │ │ └── JSONParserTest.java │ │ │ │ ├── presentation │ │ │ │ ├── PresenterTest.java │ │ │ │ ├── RenderCheckerTest.java │ │ │ │ └── SideMenuPresenterTest.java │ │ │ │ ├── react │ │ │ │ ├── NavigationModuleTest.java │ │ │ │ └── ReloadListenerTest.java │ │ │ │ ├── utils │ │ │ │ ├── AnimationHelper.kt │ │ │ │ ├── ButtonPresenterTest.java │ │ │ │ ├── ButtonSpanTest.java │ │ │ │ ├── CompatUtilsTest.java │ │ │ │ ├── LayoutFactoryTest.java │ │ │ │ ├── MotionEventTest.kt │ │ │ │ ├── NativeCommandListenerTest.java │ │ │ │ ├── OptionHelper.kt │ │ │ │ ├── ReflectionUtilsTest.java │ │ │ │ ├── StringUtilsTest.java │ │ │ │ ├── SystemUiUtilsTest.kt │ │ │ │ ├── TitleAndButtonsMeasurer.kt │ │ │ │ ├── TitleBarHelper.java │ │ │ │ ├── UiThreadTest.java │ │ │ │ ├── UiUtilsTest.java │ │ │ │ └── ViewHelper.java │ │ │ │ ├── viewcontrollers │ │ │ │ ├── OptionsApplyingTest.java │ │ │ │ ├── bottomtabs │ │ │ │ │ ├── BottomTabPresenterTest.java │ │ │ │ │ ├── BottomTabsAttacherTest.java │ │ │ │ │ ├── BottomTabsControllerTest.kt │ │ │ │ │ ├── BottomTabsPresenterTest.kt │ │ │ │ │ └── attacher │ │ │ │ │ │ └── modes │ │ │ │ │ │ ├── AfterInitialTabTest.java │ │ │ │ │ │ ├── AttachModeTest.java │ │ │ │ │ │ ├── OnSwitchToTabTest.java │ │ │ │ │ │ └── TogetherTest.java │ │ │ │ ├── button │ │ │ │ │ └── NavigationIconResolverTest.java │ │ │ │ ├── child │ │ │ │ │ ├── ChildControllerTest.java │ │ │ │ │ └── ChildControllersRegistryTest.java │ │ │ │ ├── component │ │ │ │ │ └── ComponentViewControllerTest.java │ │ │ │ ├── externalcomponent │ │ │ │ │ ├── ExternalComponentViewControllerTest.java │ │ │ │ │ ├── FragmentCreatorMock.java │ │ │ │ │ └── SomeFragment.java │ │ │ │ ├── fakes │ │ │ │ │ └── FakeParentController.kt │ │ │ │ ├── modal │ │ │ │ │ ├── ModalAnimatorMock.java │ │ │ │ │ ├── ModalAnimatorTest.kt │ │ │ │ │ ├── ModalPresenterTest.java │ │ │ │ │ └── ModalStackTest.java │ │ │ │ ├── navigator │ │ │ │ │ ├── NavigatorTest.java │ │ │ │ │ └── RootPresenterTest.kt │ │ │ │ ├── overlay │ │ │ │ │ └── OverlayManagerTest.java │ │ │ │ ├── parent │ │ │ │ │ └── ParentControllerTest.java │ │ │ │ ├── sidemenu │ │ │ │ │ └── SideMenuControllerTest.java │ │ │ │ ├── stack │ │ │ │ │ ├── BackButtonHelperTest.java │ │ │ │ │ ├── FloatingActionButtonTest.java │ │ │ │ │ ├── IdStackTest.java │ │ │ │ │ ├── StackAnimatorTest.kt │ │ │ │ │ ├── StackControllerTest.kt │ │ │ │ │ ├── StackPresenterTest.kt │ │ │ │ │ ├── TitleBarButtonControllerTest.java │ │ │ │ │ ├── TitleBarReactViewControllerTest.java │ │ │ │ │ ├── TopBarButtonControllerTest.java │ │ │ │ │ └── TopBarControllerTest.kt │ │ │ │ ├── toptabs │ │ │ │ │ └── TopTabsViewControllerTest.java │ │ │ │ └── viewcontroller │ │ │ │ │ ├── ViewControllerTest.java │ │ │ │ │ └── YellowBoxDelegateTest.java │ │ │ │ └── views │ │ │ │ ├── OverlayTouchDelegateTest.java │ │ │ │ ├── TitleAndButtonsContainerTest.kt │ │ │ │ ├── TitleSubTitleLayoutTest.kt │ │ │ │ ├── TopBarTest.java │ │ │ │ ├── animations │ │ │ │ ├── BaseViewAppearanceAnimatorTest.kt │ │ │ │ └── DefaultViewAnimatorCreatorFake.kt │ │ │ │ └── bottomtabs │ │ │ │ ├── BottomTabsContainerTest.kt │ │ │ │ └── BottomTabsTest.kt │ │ │ └── resources │ │ │ └── mockito-extensions │ │ │ └── org.mockito.plugins.MockMaker │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── ios │ ├── AnchorTransition.h │ ├── AnchorTransition.mm │ ├── AnimatedImageView.h │ ├── AnimatedImageView.mm │ ├── AnimatedReactView.h │ ├── AnimatedReactView.mm │ ├── AnimatedTextView.h │ ├── AnimatedTextView.mm │ ├── AnimatedUIImageView.h │ ├── AnimatedUIImageView.mm │ ├── AnimatedViewFactory.h │ ├── AnimatedViewFactory.mm │ ├── AnimationObserver.h │ ├── AnimationObserver.mm │ ├── BaseAnimator.h │ ├── BaseAnimator.mm │ ├── Bool.h │ ├── Bool.mm │ ├── BoolParser.h │ ├── BoolParser.mm │ ├── BottomTabPresenter.h │ ├── BottomTabPresenter.mm │ ├── BottomTabPresenterCreator.h │ ├── BottomTabPresenterCreator.mm │ ├── BottomTabsAfterInitialTabAttacher.h │ ├── BottomTabsAfterInitialTabAttacher.mm │ ├── BottomTabsAppearancePresenter.h │ ├── BottomTabsAppearancePresenter.mm │ ├── BottomTabsAttachMode.h │ ├── BottomTabsAttachMode.mm │ ├── BottomTabsAttachModeFactory.h │ ├── BottomTabsAttachModeFactory.mm │ ├── BottomTabsBaseAttacher.h │ ├── BottomTabsBaseAttacher.mm │ ├── BottomTabsBasePresenter.h │ ├── BottomTabsBasePresenter.mm │ ├── BottomTabsOnSwitchToTabAttacher.h │ ├── BottomTabsOnSwitchToTabAttacher.mm │ ├── BottomTabsPresenterCreator.h │ ├── BottomTabsPresenterCreator.mm │ ├── BottomTabsTogetherAttacher.h │ ├── BottomTabsTogetherAttacher.mm │ ├── BoundsTransition.h │ ├── BoundsTransition.mm │ ├── CenterTransition.h │ ├── CenterTransition.mm │ ├── Color+Interpolation.h │ ├── Color+Interpolation.mm │ ├── Color.h │ ├── Color.mm │ ├── ColorParser.h │ ├── ColorParser.mm │ ├── ColorTransition.h │ ├── ColorTransition.mm │ ├── Constants.h │ ├── Constants.mm │ ├── CornerRadiusTransition.h │ ├── CornerRadiusTransition.mm │ ├── DeprecationOptions.h │ ├── DeprecationOptions.mm │ ├── DictionaryParser.h │ ├── DictionaryParser.mm │ ├── DisplayLinkAnimation.h │ ├── DisplayLinkAnimator.h │ ├── DisplayLinkAnimator.mm │ ├── DisplayLinkAnimatorDelegate.h │ ├── DotIndicatorOptions.h │ ├── DotIndicatorOptions.mm │ ├── DotIndicatorParser.h │ ├── DotIndicatorParser.mm │ ├── Double.h │ ├── Double.mm │ ├── DoubleParser.h │ ├── DoubleParser.mm │ ├── ElementAlphaTransition.h │ ├── ElementAlphaTransition.mm │ ├── ElementAnimator.h │ ├── ElementAnimator.mm │ ├── ElementBaseTransition.h │ ├── ElementBaseTransition.mm │ ├── ElementFrameTransition.h │ ├── ElementFrameTransition.mm │ ├── ElementHorizontalTransition.h │ ├── ElementHorizontalTransition.mm │ ├── ElementTransitionOptions.h │ ├── ElementTransitionOptions.mm │ ├── ElementTransitionsCreator.h │ ├── ElementTransitionsCreator.mm │ ├── ElementVerticalTransition.h │ ├── ElementVerticalTransition.mm │ ├── Enum.h │ ├── Enum.mm │ ├── EnumParser.h │ ├── EnumParser.mm │ ├── FloatTransition.h │ ├── FloatTransition.mm │ ├── HorizontalScaleTransition.h │ ├── HorizontalScaleTransition.mm │ ├── HorizontalTranslationTransition.h │ ├── HorizontalTranslationTransition.mm │ ├── Image.h │ ├── Image.mm │ ├── ImageParser.h │ ├── ImageParser.mm │ ├── IntNumber.h │ ├── IntNumber.mm │ ├── IntNumberParser.h │ ├── IntNumberParser.mm │ ├── InteractivePopGestureDelegate.h │ ├── InteractivePopGestureDelegate.mm │ ├── Interpolators │ │ ├── AccelerateDecelerateInterpolator.h │ │ ├── AccelerateDecelerateInterpolator.mm │ │ ├── AccelerateInterpolator.h │ │ ├── AccelerateInterpolator.mm │ │ ├── DecelerateAccelerateInterpolator.h │ │ ├── DecelerateAccelerateInterpolator.mm │ │ ├── DecelerateInterpolator.h │ │ ├── DecelerateInterpolator.mm │ │ ├── FastOutSlowIn.h │ │ ├── FastOutSlowIn.mm │ │ ├── Interpolator.h │ │ ├── LinearInterpolator.h │ │ ├── LinearInterpolator.mm │ │ ├── OvershootInterpolator.h │ │ ├── OvershootInterpolator.mm │ │ ├── SpringInterpolator.h │ │ └── SpringInterpolator.mm │ ├── LNInterpolable.h │ ├── LNInterpolable.mm │ ├── NSArray+utils.h │ ├── NSArray+utils.mm │ ├── NoColor.h │ ├── NoColor.mm │ ├── NullBool.h │ ├── NullBool.mm │ ├── NullColor.h │ ├── NullColor.mm │ ├── NullDictionary.h │ ├── NullDictionary.mm │ ├── NullDouble.h │ ├── NullDouble.mm │ ├── NullEnum.h │ ├── NullEnum.mm │ ├── NullImage.h │ ├── NullImage.mm │ ├── NullIntNumber.h │ ├── NullIntNumber.mm │ ├── NullNumber.h │ ├── NullNumber.mm │ ├── NullText.h │ ├── NullText.mm │ ├── Number.h │ ├── Number.mm │ ├── NumberParser.h │ ├── NumberParser.mm │ ├── OCMock │ │ ├── NSNotificationCenter+OCMAdditions.h │ │ ├── OCMArg.h │ │ ├── OCMConstraint.h │ │ ├── OCMFunctions.h │ │ ├── OCMLocation.h │ │ ├── OCMMacroState.h │ │ ├── OCMRecorder.h │ │ ├── OCMStubRecorder.h │ │ ├── OCMock.h │ │ └── OCMockObject.h │ ├── OptionsArrayParser.h │ ├── OptionsArrayParser.mm │ ├── Param.h │ ├── Param.mm │ ├── PathTransition.h │ ├── PathTransition.mm │ ├── RCTConvert+Interpolation.h │ ├── RCTConvert+Interpolation.mm │ ├── RCTConvert+SideMenuOpenGestureMode.h │ ├── RCTConvert+SideMenuOpenGestureMode.mm │ ├── RCTConvert+UIBarButtonSystemItem.h │ ├── RCTConvert+UIBarButtonSystemItem.mm │ ├── RCTConvert+UIFontWeight.h │ ├── RCTConvert+UIFontWeight.mm │ ├── RCTHelpers.h │ ├── RCTHelpers.mm │ ├── RNNAnimationsOptions.h │ ├── RNNAnimationsOptions.mm │ ├── RNNAppDelegate.h │ ├── RNNAppDelegate.mm │ ├── RNNAssert.h │ ├── RNNBackButtonOptions.h │ ├── RNNBackButtonOptions.mm │ ├── RNNBackgroundOptions.h │ ├── RNNBackgroundOptions.mm │ ├── RNNBaseIconCreator.h │ ├── RNNBaseIconCreator.mm │ ├── RNNBasePresenter.h │ ├── RNNBasePresenter.mm │ ├── RNNBottomTabOptions.h │ ├── RNNBottomTabOptions.mm │ ├── RNNBottomTabsController.h │ ├── RNNBottomTabsController.mm │ ├── RNNBottomTabsOptions.h │ ├── RNNBottomTabsOptions.mm │ ├── RNNBottomTabsPresenter.h │ ├── RNNBottomTabsPresenter.mm │ ├── RNNBridgeEventEmitter.h │ ├── RNNBridgeEventEmitter.mm │ ├── RNNBridgeManager.h │ ├── RNNBridgeManager.mm │ ├── RNNBridgeModule.h │ ├── RNNBridgeModule.mm │ ├── RNNButtonBuilder.h │ ├── RNNButtonBuilder.mm │ ├── RNNButtonOptions.h │ ├── RNNButtonOptions.mm │ ├── RNNButtonsParser.h │ ├── RNNButtonsParser.mm │ ├── RNNButtonsPresenter.h │ ├── RNNButtonsPresenter.mm │ ├── RNNCommandsHandler.h │ ├── RNNCommandsHandler.mm │ ├── RNNComponentOptions.h │ ├── RNNComponentOptions.mm │ ├── RNNComponentPresenter.h │ ├── RNNComponentPresenter.mm │ ├── RNNComponentRootView.h │ ├── RNNComponentRootView.mm │ ├── RNNComponentView.h │ ├── RNNComponentView.mm │ ├── RNNComponentViewController.h │ ├── RNNComponentViewController.mm │ ├── RNNComponentViewCreator.h │ ├── RNNConvert.h │ ├── RNNConvert.mm │ ├── RNNCustomTitleView.h │ ├── RNNCustomTitleView.mm │ ├── RNNDefaultOptionsHelper.h │ ├── RNNDefaultOptionsHelper.mm │ ├── RNNDictionary.h │ ├── RNNDictionary.mm │ ├── RNNDotIndicatorPresenter.h │ ├── RNNDotIndicatorPresenter.mm │ ├── RNNDynamicIconCreator.h │ ├── RNNDynamicIconCreator.mm │ ├── RNNElement.h │ ├── RNNElement.mm │ ├── RNNElementFinder.h │ ├── RNNElementFinder.mm │ ├── RNNElementView.h │ ├── RNNElementView.mm │ ├── RNNEnterExitAnimation.h │ ├── RNNEnterExitAnimation.mm │ ├── RNNErrorHandler.h │ ├── RNNErrorHandler.mm │ ├── RNNEventEmitter.h │ ├── RNNEventEmitter.mm │ ├── RNNExternalComponentStore.h │ ├── RNNExternalComponentStore.mm │ ├── RNNExternalViewController.h │ ├── RNNExternalViewController.mm │ ├── RNNFontAttributesCreator.h │ ├── RNNFontAttributesCreator.mm │ ├── RNNIconBackgroundOptions.h │ ├── RNNIconBackgroundOptions.mm │ ├── RNNIconCreator.h │ ├── RNNIconCreator.mm │ ├── RNNIconDrawer.h │ ├── RNNIconDrawer.mm │ ├── RNNInsetsOptions.h │ ├── RNNInsetsOptions.mm │ ├── RNNInterpolator.h │ ├── RNNInterpolator.mm │ ├── RNNLargeTitleOptions.h │ ├── RNNLargeTitleOptions.mm │ ├── RNNLayoutInfo.h │ ├── RNNLayoutInfo.mm │ ├── RNNLayoutManager.h │ ├── RNNLayoutManager.mm │ ├── RNNLayoutNode.h │ ├── RNNLayoutNode.mm │ ├── RNNLayoutOptions.h │ ├── RNNLayoutOptions.mm │ ├── RNNLayoutProtocol.h │ ├── RNNLeafProtocol.h │ ├── RNNModalHostViewManagerHandler.h │ ├── RNNModalHostViewManagerHandler.mm │ ├── RNNModalManager.h │ ├── RNNModalManager.mm │ ├── RNNModalManagerEventHandler.h │ ├── RNNModalManagerEventHandler.mm │ ├── RNNModalOptions.h │ ├── RNNModalOptions.mm │ ├── RNNNavigationOptions.h │ ├── RNNNavigationOptions.mm │ ├── RNNOptions.h │ ├── RNNOptions.mm │ ├── RNNOverlayManager.h │ ├── RNNOverlayManager.mm │ ├── RNNOverlayOptions.h │ ├── RNNOverlayOptions.mm │ ├── RNNOverlayWindow.h │ ├── RNNOverlayWindow.mm │ ├── RNNPreviewOptions.h │ ├── RNNPreviewOptions.mm │ ├── RNNPushAnimation.h │ ├── RNNPushAnimation.mm │ ├── RNNReactBackgroundView.h │ ├── RNNReactBackgroundView.mm │ ├── RNNReactButtonView.h │ ├── RNNReactButtonView.mm │ ├── RNNReactComponentRegistry.h │ ├── RNNReactComponentRegistry.mm │ ├── RNNReactRootViewCreator.h │ ├── RNNReactRootViewCreator.mm │ ├── RNNReactTitleView.h │ ├── RNNReactTitleView.mm │ ├── RNNReactView.h │ ├── RNNReactView.mm │ ├── RNNScreenTransition.h │ ├── RNNScreenTransition.mm │ ├── RNNScreenTransitionsCreator.h │ ├── RNNScreenTransitionsCreator.mm │ ├── RNNScrollEdgeAppearanceBackgroundOptions.h │ ├── RNNScrollEdgeAppearanceBackgroundOptions.mm │ ├── RNNScrollEdgeAppearanceOptions.h │ ├── RNNScrollEdgeAppearanceOptions.mm │ ├── RNNSearchBarOptions.h │ ├── RNNSearchBarOptions.mm │ ├── RNNSegmentedControl.h │ ├── RNNSegmentedControl.mm │ ├── RNNSetRootAnimator.h │ ├── RNNSetRootAnimator.mm │ ├── RNNShadowOptions.h │ ├── RNNShadowOptions.mm │ ├── RNNSharedElementAnimationOptions.h │ ├── RNNSharedElementAnimationOptions.mm │ ├── RNNSideMenu │ │ └── MMDrawerController │ │ │ ├── MMDrawerBarButtonItem.h │ │ │ ├── MMDrawerBarButtonItem.mm │ │ │ ├── MMDrawerController+Subclass.h │ │ │ ├── MMDrawerController.h │ │ │ ├── MMDrawerController.mm │ │ │ ├── MMDrawerVisualState.h │ │ │ ├── MMDrawerVisualState.mm │ │ │ ├── MMExampleDrawerVisualStateManager.h │ │ │ ├── MMExampleDrawerVisualStateManager.mm │ │ │ ├── UIViewController+MMDrawerController.h │ │ │ └── UIViewController+MMDrawerController.mm │ ├── RNNSideMenuChildViewController.h │ ├── RNNSideMenuChildViewController.mm │ ├── RNNSideMenuOptions.h │ ├── RNNSideMenuOptions.mm │ ├── RNNSideMenuPresenter.h │ ├── RNNSideMenuPresenter.mm │ ├── RNNSideMenuSideOptions.h │ ├── RNNSideMenuSideOptions.mm │ ├── RNNSideMenuViewController.h │ ├── RNNSideMenuViewController.mm │ ├── RNNSplashScreenViewController.h │ ├── RNNSplashScreenViewController.mm │ ├── RNNSplitViewController.h │ ├── RNNSplitViewController.mm │ ├── RNNSplitViewControllerPresenter.h │ ├── RNNSplitViewControllerPresenter.mm │ ├── RNNSplitViewOptions.h │ ├── RNNSplitViewOptions.mm │ ├── RNNStackController.h │ ├── RNNStackController.mm │ ├── RNNStackPresenter.h │ ├── RNNStackPresenter.mm │ ├── RNNStatusBarOptions.h │ ├── RNNStatusBarOptions.mm │ ├── RNNSubtitleOptions.h │ ├── RNNSubtitleOptions.mm │ ├── RNNTabBarItemCreator.h │ ├── RNNTabBarItemCreator.mm │ ├── RNNTitleOptions.h │ ├── RNNTitleOptions.mm │ ├── RNNTitleViewHelper.h │ ├── RNNTitleViewHelper.mm │ ├── RNNTopBarOptions.h │ ├── RNNTopBarOptions.mm │ ├── RNNTopTabOptions.h │ ├── RNNTopTabOptions.mm │ ├── RNNTopTabsOptions.h │ ├── RNNTopTabsOptions.mm │ ├── RNNTopTabsViewController.h │ ├── RNNTopTabsViewController.mm │ ├── RNNTransitionStateHolder.h │ ├── RNNTransitionStateHolder.mm │ ├── RNNUIBarBackButtonItem.h │ ├── RNNUIBarBackButtonItem.mm │ ├── RNNUIBarButtonItem.h │ ├── RNNUIBarButtonItem.mm │ ├── RNNUtils.h │ ├── RNNUtils.mm │ ├── RNNViewControllerFactory.h │ ├── RNNViewControllerFactory.mm │ ├── RNNViewLocation.h │ ├── RNNViewLocation.mm │ ├── ReactNativeNavigation.h │ ├── ReactNativeNavigation.mm │ ├── ReactNativeNavigation.xcodeproj │ │ ├── project.pbxproj │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── ReactNativeNavigation.xcscheme │ ├── RectTransition.h │ ├── RectTransition.mm │ ├── RotationTransition.h │ ├── RotationTransition.mm │ ├── ScreenAnimationController.h │ ├── ScreenAnimationController.mm │ ├── ScreenReversedAnimationController.h │ ├── ScreenReversedAnimationController.mm │ ├── SharedElementAnimator.h │ ├── SharedElementAnimator.mm │ ├── SharedElementTransition.h │ ├── SharedElementTransition.mm │ ├── SharedElementTransitionOptions.h │ ├── SharedElementTransitionOptions.mm │ ├── SideMenuOpenGestureModeParser.h │ ├── SideMenuOpenGestureModeParser.mm │ ├── SideMenuOpenMode.h │ ├── SideMenuOpenMode.mm │ ├── StackControllerDelegate.h │ ├── StackControllerDelegate.mm │ ├── TabBarItemAppearanceCreator.h │ ├── TabBarItemAppearanceCreator.mm │ ├── TabBarItemIOS15Creator.h │ ├── TabBarItemIOS15Creator.mm │ ├── Text.h │ ├── Text.mm │ ├── TextParser.h │ ├── TextParser.mm │ ├── TextStorageTransition.h │ ├── TextStorageTransition.mm │ ├── TimeInterval.h │ ├── TimeInterval.mm │ ├── TimeIntervalParser.h │ ├── TimeIntervalParser.mm │ ├── TopBarAppearancePresenter.h │ ├── TopBarAppearancePresenter.mm │ ├── TopBarPresenter.h │ ├── TopBarPresenter.mm │ ├── TopBarPresenterCreator.h │ ├── TopBarPresenterCreator.mm │ ├── TopBarTitlePresenter.h │ ├── TopBarTitlePresenter.mm │ ├── TransformRectTransition.h │ ├── TransformRectTransition.mm │ ├── Transition.h │ ├── Transition.mm │ ├── TransitionDetailsOptions.h │ ├── TransitionDetailsOptions.mm │ ├── TransitionOptions.h │ ├── TransitionOptions.mm │ ├── TurboModules │ │ ├── RNNTurboCommandsHandler.h │ │ ├── RNNTurboCommandsHandler.mm │ │ ├── RNNTurboEventEmitter.h │ │ ├── RNNTurboEventEmitter.mm │ │ ├── RNNTurboManager.h │ │ ├── RNNTurboManager.mm │ │ ├── RNNTurboModule.h │ │ └── RNNTurboModule.mm │ ├── UIImage+utils.h │ ├── UIImage+utils.mm │ ├── UIImageView+Transition.h │ ├── UIImageView+Transition.mm │ ├── UINavigationController+RNNCommands.h │ ├── UINavigationController+RNNCommands.mm │ ├── UINavigationController+RNNOptions.h │ ├── UINavigationController+RNNOptions.mm │ ├── UISplitViewController+RNNOptions.h │ ├── UISplitViewController+RNNOptions.mm │ ├── UITabBar+utils.h │ ├── UITabBar+utils.mm │ ├── UITabBarController+RNNOptions.h │ ├── UITabBarController+RNNOptions.mm │ ├── UIViewController+LayoutProtocol.h │ ├── UIViewController+LayoutProtocol.mm │ ├── UIViewController+RNNOptions.h │ ├── UIViewController+RNNOptions.mm │ ├── UIViewController+SideMenuController.h │ ├── UIViewController+SideMenuController.mm │ ├── UIViewController+SideMenuViewController.h │ ├── Utils │ │ ├── UIColor+RNNUtils.h │ │ ├── UIColor+RNNUtils.mm │ │ ├── UITabBarController+RNNUtils.h │ │ ├── UITabBarController+RNNUtils.mm │ │ ├── UIView+Utils.h │ │ ├── UIView+Utils.mm │ │ ├── UIViewController+Utils.h │ │ └── UIViewController+Utils.mm │ ├── VICMAImageView.h │ ├── VICMAImageView.mm │ ├── VerticalRotationTransition.h │ ├── VerticalRotationTransition.mm │ ├── VerticalScaleTransition.h │ ├── VerticalScaleTransition.mm │ ├── VerticalTranslationTransition.h │ ├── VerticalTranslationTransition.mm │ ├── WindowOptions.h │ ├── WindowOptions.mm │ └── libOCMock.a └── src │ ├── Navigation.ts │ ├── NavigationDelegate.ts │ ├── adapters │ ├── AppRegistryService.ts │ ├── AssetResolver.ts │ ├── ColorService.ts │ ├── Constants.ts │ ├── NativeCommandsSender.ts │ ├── NativeEventsReceiver.mock.ts │ ├── NativeEventsReceiver.ts │ ├── NativeRNNTurboEventEmitter.ts │ ├── NativeRNNTurboModule.ts │ ├── TouchablePreview.tsx │ └── UniqueIdProvider.ts │ ├── commands │ ├── Commands.test.ts │ ├── Commands.ts │ ├── Deprecations.ts │ ├── LayoutTreeCrawler.test.ts │ ├── LayoutTreeCrawler.ts │ ├── LayoutTreeParser.test.ts │ ├── LayoutTreeParser.ts │ ├── LayoutType.test.ts │ ├── LayoutType.ts │ ├── OptionsCrawler.test.ts │ ├── OptionsCrawler.ts │ ├── OptionsProcessor.test.ts │ └── OptionsProcessor.ts │ ├── components │ ├── ComponentRegistry.test.tsx │ ├── ComponentRegistry.ts │ ├── ComponentWrapper.test.tsx │ ├── ComponentWrapper.tsx │ ├── Modal.tsx │ ├── Store.test.ts │ └── Store.ts │ ├── events │ ├── CommandsObserver.test.ts │ ├── CommandsObserver.ts │ ├── ComponentEventsObserver.test.tsx │ ├── ComponentEventsObserver.ts │ ├── EventsRegistry.test.tsx │ └── EventsRegistry.ts │ ├── index.ts │ ├── interfaces │ ├── CommandName.ts │ ├── ComponentEvents.ts │ ├── EventSubscription.ts │ ├── Events.ts │ ├── Layout.ts │ ├── NavigationComponent.ts │ ├── NavigationComponentListener.ts │ ├── NavigationComponentProps.ts │ ├── NavigationFunctionComponent.ts │ ├── Options.ts │ ├── ProcessorSubscription.ts │ └── Processors.ts │ ├── processors │ ├── LayoutProcessor.test.ts │ ├── LayoutProcessor.ts │ ├── LayoutProcessorsStore.test.ts │ ├── LayoutProcessorsStore.ts │ ├── OptionProcessorsStore.test.ts │ └── OptionProcessorsStore.ts │ └── types.ts ├── metro.config.js ├── package-lock.json ├── package.json ├── playground ├── .gitignore ├── .watchmanconfig ├── README.md ├── android │ ├── app │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── reactnativenavigation │ │ │ │ └── playground │ │ │ │ └── DetoxTest.java │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets │ │ │ └── fonts │ │ │ │ ├── Dosis-Regular.ttf │ │ │ │ ├── HelveticaNeue-CondensedBold.ttf │ │ │ │ └── HelveticaNeue-Italic.ttf │ │ │ ├── java │ │ │ └── com │ │ │ │ └── reactnativenavigation │ │ │ │ └── playground │ │ │ │ ├── FragmentComponent.java │ │ │ │ ├── FragmentCreator.java │ │ │ │ ├── FragmentScreen.java │ │ │ │ ├── MainActivity.java │ │ │ │ └── MainApplication.java │ │ │ └── res │ │ │ ├── drawable │ │ │ └── ic_android.xml │ │ │ ├── layout │ │ │ └── fragment_screen.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-night │ │ │ └── colors.xml │ │ │ ├── values-notnight │ │ │ └── colors.xml │ │ │ └── values │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── libs │ │ ├── blurview-1.6.3.jar │ │ ├── fbjni-java-only-0.0.3.jar │ │ └── proguard-annotations-1.14.1.jar │ ├── playground.keystore │ └── settings.gradle ├── img │ ├── 1024.jpeg │ ├── 2048.jpeg │ ├── 400.jpeg │ ├── 4096.jpeg │ ├── Icon-87.png │ ├── cars │ │ ├── aventador.jpg │ │ ├── countach.jpg │ │ └── diablo.jpg │ ├── city.png │ ├── city2.jpeg │ ├── clear@2x.png │ ├── clear@3x.android.png │ ├── cocktails │ │ ├── bloodyMarry.jpg │ │ ├── cucumberBasilSmash.jpg │ │ ├── frenchMartini.jpg │ │ ├── gimlet.jpg │ │ ├── lastWord.jpg │ │ └── negroni.jpg │ ├── colored_tab_icon@2x.png │ ├── colors.png │ ├── fff.png │ ├── gyro_header.jpg │ ├── home.png │ ├── imageGallery │ │ ├── 158xD4xbeh.jpeg │ │ ├── 37r6Cqp1B8.jpeg │ │ ├── 5Gi8kova3k.jpeg │ │ ├── 61mpAVRV73.jpeg │ │ ├── A4g0lZ33Z8.jpeg │ │ ├── AdGXmD1CH6.jpeg │ │ ├── Cfw87359UT.jpeg │ │ ├── N30E32431C.jpeg │ │ ├── a848dHxA4e.jpeg │ │ ├── j51Pva1P8L.jpeg │ │ ├── kVN0FryOZk.jpeg │ │ ├── pqgylg80SD.jpeg │ │ ├── rVOcz7rd0z.jpeg │ │ ├── ri90ueind7.jpeg │ │ ├── v8KLi2f0Tr.jpeg │ │ └── xU42hx19BB.jpeg │ ├── layouts@2x.android.png │ ├── layouts@2x.png │ ├── layouts_selected@2x.android.png │ ├── layouts_selected@2x.png │ ├── list.png │ ├── menu@2x.android.png │ ├── menu@2x.png │ ├── navicon_add@2x.android.png │ ├── navicon_add@2x.png │ ├── navicon_add@3x.android.png │ ├── navicon_edit@2x.png │ ├── navigation@2x.android.png │ ├── navigation@2x.png │ ├── one@1.5x.android.png │ ├── one@1x.android.png │ ├── one@2x.ios.png │ ├── one@2x.png │ ├── one@3x.android.png │ ├── one@4x.android.png │ ├── one_selected@2x.png │ ├── options@2x.android.png │ ├── options@2x.png │ ├── options_selected@2x.android.png │ ├── options_selected@2x.png │ ├── person.png │ ├── plus@2x.android.png │ ├── plus@2x.png │ ├── sideMenu.png │ ├── star@2x.android.png │ ├── star@2x.png │ ├── three@2x.png │ ├── three_selected@2x.png │ ├── two@2x.png │ ├── two_selected@2x.png │ ├── whatshot@2x.android.png │ ├── whatshot@2x.png │ ├── x.android.png │ ├── x.png │ ├── x@1.5x.png │ ├── x@2x.android.png │ ├── x@2x.png │ ├── x@3x.android.png │ ├── x@3x.png │ └── x@4x.png ├── index.js ├── ios │ ├── .xcode.env │ ├── NavigationIOS12Tests │ │ ├── Info.plist │ │ ├── RNNBottomTabsPresenterTest.mm │ │ └── RNNRootViewControllerTest.mm │ ├── NavigationTests │ │ ├── BottomTabPresenterTest.mm │ │ ├── BottomTabsControllerTest.mm │ │ ├── ColorParserTest.mm │ │ ├── Info.plist │ │ ├── NSArray+utilsTest.mm │ │ ├── Options │ │ │ └── RNNTestNoColor.mm │ │ ├── RNNBasePresenterTest.mm │ │ ├── RNNBottomTabsAppearancePresenterTest.mm │ │ ├── RNNBottomTabsController+Helpers.h │ │ ├── RNNBottomTabsController+Helpers.mm │ │ ├── RNNButtonsPresenterTest.mm │ │ ├── RNNCommandsHandlerTest.mm │ │ ├── RNNComponentPresenterTest.mm │ │ ├── RNNDotIndicatorPresenterTest.mm │ │ ├── RNNExternalComponentStoreTest.mm │ │ ├── RNNExternalViewControllerTests.mm │ │ ├── RNNFontAttributesCreatorTest.mm │ │ ├── RNNLayoutManagerTest.mm │ │ ├── RNNModalHostViewManagerHandlerTest.mm │ │ ├── RNNModalManagerEventHandlerTest.mm │ │ ├── RNNModalManagerTest.mm │ │ ├── RNNNavigationOptionsTest.mm │ │ ├── RNNNavigationStackManagerTest.mm │ │ ├── RNNOptionsTest.h │ │ ├── RNNOverlayManagerTest.mm │ │ ├── RNNRootViewControllerTest.mm │ │ ├── RNNSearchBarOptionsTest.mm │ │ ├── RNNSideMenuControllerTest.mm │ │ ├── RNNSideMenuParserTest.mm │ │ ├── RNNSideMenuPresenterTest.mm │ │ ├── RNNStackControllerTest.mm │ │ ├── RNNStackPresenterTest.mm │ │ ├── RNNTestRootViewCreator.h │ │ ├── RNNTestRootViewCreator.mm │ │ ├── RNNTransitionStateHolderTest.mm │ │ ├── RNNUIBarButtonItemTest.mm │ │ ├── RNNViewControllerFactoryTest.mm │ │ ├── TopBarAppearancePresenterTest.mm │ │ ├── UITabBarController+RNNOptionsTest.mm │ │ ├── UIViewController+LayoutProtocolTest.mm │ │ ├── UIViewController+RNNOptionsTest.mm │ │ └── utils │ │ │ ├── RNNComponentViewController+Utils.h │ │ │ ├── RNNComponentViewController+Utils.mm │ │ │ ├── RNNTestBase.h │ │ │ ├── RNNTestBase.mm │ │ │ ├── UIImage+Utils.h │ │ │ └── UIImage+Utils.mm │ ├── Podfile │ ├── PrivacyInfo.xcprivacy │ ├── SnapshotTests │ │ ├── FBSnapshotTestCase │ │ │ ├── Categories │ │ │ │ ├── UIImage+Compare.h │ │ │ │ ├── UIImage+Compare.mm │ │ │ │ ├── UIImage+Diff.h │ │ │ │ ├── UIImage+Diff.mm │ │ │ │ ├── UIImage+Snapshot.h │ │ │ │ └── UIImage+Snapshot.mm │ │ │ ├── FBSnapshotTestCase-Info.plist │ │ │ ├── FBSnapshotTestCase.h │ │ │ ├── FBSnapshotTestCase.mm │ │ │ ├── FBSnapshotTestCasePlatform.h │ │ │ ├── FBSnapshotTestCasePlatform.mm │ │ │ ├── FBSnapshotTestController.h │ │ │ └── FBSnapshotTestController.mm │ │ ├── Info.plist │ │ ├── ReferenceImages_64 │ │ │ └── StackOptionsTest │ │ │ │ ├── testStack_topBar_opaque_background_pop@3x.png │ │ │ │ ├── testStack_topBar_opaque_background_push@3x.png │ │ │ │ ├── testStack_topBar_opaque_background_root@3x.png │ │ │ │ ├── testStack_topBar_tansparent_background_pop@3x.png │ │ │ │ ├── testStack_topBar_tansparent_background_push@3x.png │ │ │ │ ├── testStack_topBar_tansparent_background_root@3x.png │ │ │ │ ├── testStack_topBar_title_change_pop@3x.png │ │ │ │ ├── testStack_topBar_title_change_push@3x.png │ │ │ │ ├── testStack_topBar_title_change_root@3x.png │ │ │ │ ├── testStack_topBar_title_font_pop@3x.png │ │ │ │ ├── testStack_topBar_title_font_push@3x.png │ │ │ │ ├── testStack_topBar_title_font_root@3x.png │ │ │ │ ├── testStack_topBar_translucent_background_pop@3x.png │ │ │ │ ├── testStack_topBar_translucent_background_push@3x.png │ │ │ │ ├── testStack_topBar_translucent_background_root@3x.png │ │ │ │ ├── testStack_topBar_visibility_pop@3x.png │ │ │ │ ├── testStack_topBar_visibility_push@3x.png │ │ │ │ └── testStack_topBar_visibility_root@3x.png │ │ ├── StackOptionsTest.mm │ │ └── Utils │ │ │ ├── CommandsHandlerCreator.h │ │ │ ├── CommandsHandlerCreator.mm │ │ │ ├── LayoutCreator.h │ │ │ └── LayoutCreator.mm │ ├── playground.xcodeproj │ │ ├── project.pbxproj │ │ └── xcshareddata │ │ │ ├── xcbaselines │ │ │ └── E58D261A238587F4003F36BA.xcbaseline │ │ │ │ └── FA2AD6A4-AA07-489D-A6D5-A294DD8C07A9.plist │ │ │ └── xcschemes │ │ │ ├── SnapshotRecordTests.xcscheme │ │ │ ├── SnapshotTests.xcscheme │ │ │ ├── playground.xcscheme │ │ │ ├── playgroundIOS12.xcscheme │ │ │ └── playground_release.xcscheme │ ├── playground.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── playground │ │ ├── AppDelegate.h │ │ ├── AppDelegate.mm │ │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-114.png │ │ │ ├── Icon-120.png │ │ │ ├── Icon-121.png │ │ │ ├── Icon-180.png │ │ │ ├── Icon-29.png │ │ │ ├── Icon-40.png │ │ │ ├── Icon-57.png │ │ │ ├── Icon-58.png │ │ │ ├── Icon-60.png │ │ │ ├── Icon-80.png │ │ │ └── Icon-87.png │ │ ├── Contents.json │ │ ├── icon_res.imageset │ │ │ ├── Contents.json │ │ │ └── clear@2x.ios.png │ │ └── rnnTextColor.colorset │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── LaunchScreen.storyboard │ │ ├── RNNCustomViewController.h │ │ ├── RNNCustomViewController.mm │ │ ├── RNNNativeViewController.h │ │ ├── RNNNativeViewController.mm │ │ ├── TestingAppDelegate.h │ │ ├── TestingAppDelegate.mm │ │ ├── clear@2x.ios.png │ │ └── main.m └── src │ ├── app.ts │ ├── assets │ ├── FakeListData.json │ ├── cars.ts │ ├── cocktails.ts │ └── imageGallery.ts │ ├── commons │ ├── Colors.ts │ ├── Layouts.ts │ ├── Processors.ts │ └── options │ │ ├── Animations.ts │ │ └── Options.ts │ ├── components │ ├── Bounds.tsx │ ├── Button.tsx │ ├── PressableScale.tsx │ ├── Root.tsx │ └── TopBarBackground.tsx │ ├── context │ └── index.tsx │ ├── flags.ts │ ├── index.ts │ ├── screens │ ├── Alert.tsx │ ├── BackButtonScreen.tsx │ ├── Button.tsx │ ├── ButtonsScreen.tsx │ ├── ContextScreen.tsx │ ├── CustomTextButton.tsx │ ├── CustomTopBar.tsx │ ├── ExternalComponentScreen.tsx │ ├── FirstBottomTabScreen.tsx │ ├── FlatListScreen.tsx │ ├── FullScreenModalScreen.tsx │ ├── KeyboardScreen.tsx │ ├── LayoutsScreen.tsx │ ├── LazilyRegisteredScreen.tsx │ ├── LazyTopBar.tsx │ ├── LifecycleButton.tsx │ ├── LifecycleScreen.tsx │ ├── ModalCommandsScreen.tsx │ ├── ModalScreen.tsx │ ├── NavigationScreen.tsx │ ├── OptionsScreen.tsx │ ├── OrientationDetectScreen.tsx │ ├── OrientationScreen.tsx │ ├── OverlayAlert.tsx │ ├── OverlayBanner.tsx │ ├── OverlayScreen.tsx │ ├── PushedScreen.tsx │ ├── RoundedButton.tsx │ ├── Screens.ts │ ├── ScrollViewOverlay.tsx │ ├── ScrollViewScreen.tsx │ ├── SearchBar.tsx │ ├── SearchBarModal.tsx │ ├── SearchScreen.tsx │ ├── SecondBottomTabScreen.tsx │ ├── SetRootScreen.tsx │ ├── SideMenuCenterScreen.tsx │ ├── SideMenuLeftScreen.tsx │ ├── SideMenuRightScreen.tsx │ ├── StackCommandsScreen.tsx │ ├── StackScreen.tsx │ ├── StaticEventsScreen.tsx │ ├── StaticLifecycleOverlay.tsx │ ├── StatusBarFirstTab.tsx │ ├── SystemUiOptions.tsx │ ├── Toast.tsx │ ├── TopTabOptionsScreen.tsx │ ├── TopTabScreen.tsx │ ├── complexlayouts │ │ ├── BottomTabSideMenuScreen.tsx │ │ └── CustomDialogWithScroll.tsx │ ├── imageGallery │ │ ├── ImageGalleryItemScreen.tsx │ │ └── ImageGalleryListScreen.tsx │ ├── index.tsx │ ├── sharedElementCarDealer │ │ ├── CarCard.tsx │ │ ├── CarDetailsScreen.tsx │ │ ├── CarStoryScreen.tsx │ │ ├── CarsListScreen.tsx │ │ ├── Constants.ts │ │ ├── DismissableView.tsx │ │ ├── ImageFullScreenViewer.tsx │ │ └── useDismissGesture.ts │ ├── sharedElementTransition │ │ ├── CocktailDetailsScreen.tsx │ │ ├── CocktailsListScreen.tsx │ │ └── CocktailsView.tsx │ └── splitView │ │ └── CocktailsListMasterScreen.tsx │ ├── services │ └── Navigation.ts │ └── testIDs.ts ├── react-native.config.js ├── scripts ├── build.js ├── check-clang-format.js ├── clean.js ├── documentation.js ├── documentation.test.js ├── install-android.js ├── release.js ├── start.js ├── test-all.js ├── test-autolink.js ├── test-e2e.js ├── test-js.js ├── test-snapshot.js ├── test-unit.js ├── upload_artifacts.sh └── watch.js ├── tsconfig-strict.json ├── tsconfig.build.json ├── tsconfig.json ├── tsconfig.mocks.json └── website ├── docs ├── api │ ├── api-component.mdx │ ├── api-events.mdx │ ├── api-modal.mdx │ ├── api-options.mdx │ ├── api-overlay.mdx │ ├── api-root.mdx │ ├── api-sideMenu.mdx │ ├── api-stack.mdx │ ├── layout-BottomTabs.mdx │ ├── layout-component.mdx │ ├── layout-layout.mdx │ ├── layout-sideMenu.mdx │ ├── layout-splitView.mdx │ ├── layout-stack.mdx │ ├── options-animations.mdx │ ├── options-backButton.mdx │ ├── options-background.mdx │ ├── options-bottomTab.mdx │ ├── options-bottomTabs.mdx │ ├── options-button.mdx │ ├── options-fab.mdx │ ├── options-hardwareBackButton.mdx │ ├── options-iconBackground.mdx │ ├── options-iconInsets.mdx │ ├── options-imageResource.mdx │ ├── options-largeTitle.mdx │ ├── options-layout.mdx │ ├── options-migration.mdx │ ├── options-modal.mdx │ ├── options-navigationBar.mdx │ ├── options-overlay.mdx │ ├── options-preview.mdx │ ├── options-root.mdx │ ├── options-scrollEdgeAppearance.mdx │ ├── options-sideMenu.mdx │ ├── options-sideMenuSide.mdx │ ├── options-splitView.mdx │ ├── options-stack.mdx │ ├── options-statusBar.mdx │ ├── options-subtitle.mdx │ ├── options-title.mdx │ └── topBar-searchBar.mdx └── docs │ ├── community-libraries.mdx │ ├── docs-Installing.mdx │ ├── docs-advanced-navigation.mdx │ ├── docs-app-launch.mdx │ ├── docs-basic-navigation.mdx │ ├── docs-before-you-start.mdx │ ├── docs-bottomTabs.mdx │ ├── docs-customBackNavigation.mdx │ ├── docs-externalComponent.mdx │ ├── docs-functional-components.mdx │ ├── docs-modal.mdx │ ├── docs-overlay.mdx │ ├── docs-passing-data-to-components.mdx │ ├── docs-playground-app.mdx │ ├── docs-root.mdx │ ├── docs-screen-lifecycle.mdx │ ├── docs-showcases.mdx │ ├── docs-sideMenu.mdx │ ├── docs-stack.mdx │ ├── meta-contributing.mdx │ ├── sideMenu-disable.mdx │ ├── stack-backButton.mdx │ ├── stack-backNavigation.mdx │ ├── stack-buttons.mdx │ ├── stack-programmatically.mdx │ ├── style-animations.mdx │ ├── style-constants.mdx │ ├── style-fonts.mdx │ ├── style-orientation.mdx │ ├── style-screens.mdx │ ├── style-screens │ ├── command-options.tsx │ ├── merge-options.tsx │ ├── static-options-class.tsx │ ├── static-options-experiments.tsx │ ├── static-options-fn.tsx │ ├── static-options-props-class.tsx │ └── static-options-props-fn.tsx │ ├── style-statusbar.mdx │ ├── style-theme.mdx │ ├── style-theme │ ├── layout-processor.tsx │ ├── option-processor-defaults.tsx │ └── option-processor.tsx │ ├── third-party-mobx.mdx │ ├── third-party-mobx │ ├── counter-screen.tsx │ ├── counter-store-decorator.tsx │ ├── counter-store.tsx │ └── persistent-data.tsx │ ├── third-party-react-context.mdx │ ├── third-party-react-context │ ├── App-consumer.tsx │ ├── App.tsx │ ├── CounterContext.tsx │ └── index.tsx │ ├── third-party-react-native-vector-icons.mdx │ ├── third-party-react-native-vector-icons │ ├── ExampleComponent.tsx │ ├── MyIcon.tsx │ ├── NavIcons.tsx │ └── index.ts │ ├── third-party-typescript.mdx │ └── third-party-typescript │ ├── strongly-typed-components-class.tsx │ ├── strongly-typed-components-fn.tsx │ └── typed-props-in-commands.tsx ├── docusaurus.config.js ├── index.d.ts ├── package.json ├── sidebars.js ├── src ├── components │ ├── CustomLayout.js │ ├── StandWithUkraine.js │ └── StandWithUkraine.module.css ├── css │ └── custom.css ├── data │ ├── apps.js │ └── showcase │ │ ├── Nox.png │ │ ├── acuity.png │ │ ├── amber.png │ │ ├── arkhamCards.png │ │ ├── aurora.png │ │ ├── bementor.png │ │ ├── bene.png │ │ ├── christmas.png │ │ ├── churchtools.png │ │ ├── cinepicks.png │ │ ├── clubhouse.png │ │ ├── cookomix.png │ │ ├── deevent.png │ │ ├── delta.png │ │ ├── digitail.png │ │ ├── feastr.png │ │ ├── galarm.png │ │ ├── getAbstract.png │ │ ├── hibob.png │ │ ├── honeybook.png │ │ ├── intelivest.png │ │ ├── klarna.png │ │ ├── magiceden.png │ │ ├── nifty.png │ │ ├── obitrain.png │ │ ├── owner.png │ │ ├── spaces.png │ │ ├── stretchminder.png │ │ ├── taimi.png │ │ └── thera.png └── pages │ ├── index.js │ ├── showcase │ ├── index.jsx │ └── styles.module.css │ └── styles.module.css ├── static └── img │ ├── alert.png │ ├── alert_android.png │ ├── bottomTabs.png │ ├── favicon.ico │ ├── logo.png │ ├── logo.svg │ ├── mobx_counter.png │ ├── modal_android.gif │ ├── modal_ios.gif │ ├── navBar_black.png │ ├── navBar_white.png │ ├── sharedElement.gif │ ├── stack1.png │ ├── stack2.gif │ ├── stack3.gif │ ├── stack4.png │ ├── stackOptions.png │ ├── toast_android.png │ ├── undraw_docusaurus_mountain.svg │ ├── undraw_docusaurus_react.svg │ └── undraw_docusaurus_tree.svg ├── tsconfig.json ├── versioned_docs ├── version-6.12.2 │ ├── api │ │ ├── api-component.mdx │ │ ├── api-events.mdx │ │ ├── api-modal.mdx │ │ ├── api-options.mdx │ │ ├── api-overlay.mdx │ │ ├── api-root.mdx │ │ ├── api-sideMenu.mdx │ │ ├── api-stack.mdx │ │ ├── layout-BottomTabs.mdx │ │ ├── layout-component.mdx │ │ ├── layout-layout.mdx │ │ ├── layout-sideMenu.mdx │ │ ├── layout-splitView.mdx │ │ ├── layout-stack.mdx │ │ ├── options-animations.mdx │ │ ├── options-backButton.mdx │ │ ├── options-background.mdx │ │ ├── options-bottomTab.mdx │ │ ├── options-bottomTabs.mdx │ │ ├── options-button.mdx │ │ ├── options-fab.mdx │ │ ├── options-iconInsets.mdx │ │ ├── options-largeTitle.mdx │ │ ├── options-layout.mdx │ │ ├── options-migration.mdx │ │ ├── options-modal.mdx │ │ ├── options-navigationBar.mdx │ │ ├── options-overlay.mdx │ │ ├── options-preview.mdx │ │ ├── options-root.mdx │ │ ├── options-sideMenu.mdx │ │ ├── options-sideMenuSide.mdx │ │ ├── options-splitView.mdx │ │ ├── options-stack.mdx │ │ ├── options-statusBar.mdx │ │ ├── options-subtitle.mdx │ │ └── options-title.mdx │ └── docs │ │ ├── community-libraries.mdx │ │ ├── docs-Installing.mdx │ │ ├── docs-advanced-navigation.mdx │ │ ├── docs-app-launch.mdx │ │ ├── docs-basic-navigation.mdx │ │ ├── docs-before-you-start.mdx │ │ ├── docs-bottomTabs.mdx │ │ ├── docs-externalComponent.mdx │ │ ├── docs-functional-components.mdx │ │ ├── docs-modal.mdx │ │ ├── docs-overlay.mdx │ │ ├── docs-passing-data-to-components.mdx │ │ ├── docs-playground-app.mdx │ │ ├── docs-root.mdx │ │ ├── docs-screen-lifecycle.mdx │ │ ├── docs-showcases.mdx │ │ ├── docs-sideMenu.mdx │ │ ├── docs-stack.mdx │ │ ├── meta-contributing.mdx │ │ ├── sideMenu-disable.mdx │ │ ├── stack-backButton.mdx │ │ ├── stack-backNavigation.mdx │ │ ├── stack-buttons.mdx │ │ ├── stack-programmatically.mdx │ │ ├── style-animations.mdx │ │ ├── style-constants.mdx │ │ ├── style-fonts.mdx │ │ ├── style-orientation.mdx │ │ ├── style-screens.mdx │ │ ├── style-screens │ │ ├── command-options.tsx │ │ ├── merge-options.tsx │ │ ├── static-options-class.tsx │ │ ├── static-options-experiments.tsx │ │ ├── static-options-fn.tsx │ │ ├── static-options-props-class.tsx │ │ └── static-options-props-fn.tsx │ │ ├── style-statusbar.mdx │ │ ├── style-theme.mdx │ │ ├── style-theme │ │ ├── layout-processor.tsx │ │ ├── option-processor-defaults.tsx │ │ └── option-processor.tsx │ │ ├── third-party-mobx.mdx │ │ ├── third-party-mobx │ │ ├── counter-screen.tsx │ │ ├── counter-store.tsx │ │ └── persistent-data.tsx │ │ ├── third-party-react-context.mdx │ │ ├── third-party-react-context │ │ ├── App-consumer.tsx │ │ ├── App.tsx │ │ ├── CounterContext.tsx │ │ └── index.tsx │ │ ├── third-party-typescript.mdx │ │ └── third-party-typescript │ │ ├── strongly-typed-components-class.tsx │ │ ├── strongly-typed-components-fn.tsx │ │ └── typed-props-in-commands.tsx ├── version-7.11.2 │ ├── api │ │ ├── api-component.mdx │ │ ├── api-events.mdx │ │ ├── api-modal.mdx │ │ ├── api-options.mdx │ │ ├── api-overlay.mdx │ │ ├── api-root.mdx │ │ ├── api-sideMenu.mdx │ │ ├── api-stack.mdx │ │ ├── layout-BottomTabs.mdx │ │ ├── layout-component.mdx │ │ ├── layout-layout.mdx │ │ ├── layout-sideMenu.mdx │ │ ├── layout-splitView.mdx │ │ ├── layout-stack.mdx │ │ ├── options-animations.mdx │ │ ├── options-backButton.mdx │ │ ├── options-background.mdx │ │ ├── options-bottomTab.mdx │ │ ├── options-bottomTabs.mdx │ │ ├── options-button.mdx │ │ ├── options-fab.mdx │ │ ├── options-hardwareBackButton.mdx │ │ ├── options-iconBackground.mdx │ │ ├── options-iconInsets.mdx │ │ ├── options-imageResource.mdx │ │ ├── options-largeTitle.mdx │ │ ├── options-layout.mdx │ │ ├── options-migration.mdx │ │ ├── options-modal.mdx │ │ ├── options-navigationBar.mdx │ │ ├── options-overlay.mdx │ │ ├── options-preview.mdx │ │ ├── options-root.mdx │ │ ├── options-scrollEdgeAppearance.mdx │ │ ├── options-sideMenu.mdx │ │ ├── options-sideMenuSide.mdx │ │ ├── options-splitView.mdx │ │ ├── options-stack.mdx │ │ ├── options-statusBar.mdx │ │ ├── options-subtitle.mdx │ │ ├── options-title.mdx │ │ └── topBar-searchBar.mdx │ └── docs │ │ ├── community-libraries.mdx │ │ ├── docs-Installing.mdx │ │ ├── docs-advanced-navigation.mdx │ │ ├── docs-app-launch.mdx │ │ ├── docs-basic-navigation.mdx │ │ ├── docs-before-you-start.mdx │ │ ├── docs-bottomTabs.mdx │ │ ├── docs-externalComponent.mdx │ │ ├── docs-functional-components.mdx │ │ ├── docs-modal.mdx │ │ ├── docs-overlay.mdx │ │ ├── docs-passing-data-to-components.mdx │ │ ├── docs-playground-app.mdx │ │ ├── docs-root.mdx │ │ ├── docs-screen-lifecycle.mdx │ │ ├── docs-showcases.mdx │ │ ├── docs-sideMenu.mdx │ │ ├── docs-stack.mdx │ │ ├── meta-contributing.mdx │ │ ├── sideMenu-disable.mdx │ │ ├── stack-backButton.mdx │ │ ├── stack-backNavigation.mdx │ │ ├── stack-buttons.mdx │ │ ├── stack-programmatically.mdx │ │ ├── style-animations.mdx │ │ ├── style-constants.mdx │ │ ├── style-fonts.mdx │ │ ├── style-orientation.mdx │ │ ├── style-screens.mdx │ │ ├── style-screens │ │ ├── command-options.tsx │ │ ├── merge-options.tsx │ │ ├── static-options-class.tsx │ │ ├── static-options-experiments.tsx │ │ ├── static-options-fn.tsx │ │ ├── static-options-props-class.tsx │ │ └── static-options-props-fn.tsx │ │ ├── style-statusbar.mdx │ │ ├── style-theme.mdx │ │ ├── style-theme │ │ ├── layout-processor.tsx │ │ ├── option-processor-defaults.tsx │ │ └── option-processor.tsx │ │ ├── third-party-mobx.mdx │ │ ├── third-party-mobx │ │ ├── counter-screen.tsx │ │ ├── counter-store-decorator.tsx │ │ ├── counter-store.tsx │ │ └── persistent-data.tsx │ │ ├── third-party-react-context.mdx │ │ ├── third-party-react-context │ │ ├── App-consumer.tsx │ │ ├── App.tsx │ │ ├── CounterContext.tsx │ │ └── index.tsx │ │ ├── third-party-react-native-vector-icons.mdx │ │ ├── third-party-react-native-vector-icons │ │ ├── ExampleComponent.tsx │ │ ├── MyIcon.tsx │ │ ├── NavIcons.tsx │ │ └── index.ts │ │ ├── third-party-typescript.mdx │ │ └── third-party-typescript │ │ ├── strongly-typed-components-class.tsx │ │ ├── strongly-typed-components-fn.tsx │ │ └── typed-props-in-commands.tsx ├── version-7.25.4 │ ├── api │ │ ├── api-component.mdx │ │ ├── api-events.mdx │ │ ├── api-modal.mdx │ │ ├── api-options.mdx │ │ ├── api-overlay.mdx │ │ ├── api-root.mdx │ │ ├── api-sideMenu.mdx │ │ ├── api-stack.mdx │ │ ├── layout-BottomTabs.mdx │ │ ├── layout-component.mdx │ │ ├── layout-layout.mdx │ │ ├── layout-sideMenu.mdx │ │ ├── layout-splitView.mdx │ │ ├── layout-stack.mdx │ │ ├── options-animations.mdx │ │ ├── options-backButton.mdx │ │ ├── options-background.mdx │ │ ├── options-bottomTab.mdx │ │ ├── options-bottomTabs.mdx │ │ ├── options-button.mdx │ │ ├── options-fab.mdx │ │ ├── options-hardwareBackButton.mdx │ │ ├── options-iconBackground.mdx │ │ ├── options-iconInsets.mdx │ │ ├── options-imageResource.mdx │ │ ├── options-largeTitle.mdx │ │ ├── options-layout.mdx │ │ ├── options-migration.mdx │ │ ├── options-modal.mdx │ │ ├── options-navigationBar.mdx │ │ ├── options-overlay-attach.mdx │ │ ├── options-overlay.mdx │ │ ├── options-preview.mdx │ │ ├── options-root.mdx │ │ ├── options-scrollEdgeAppearance.mdx │ │ ├── options-sideMenu.mdx │ │ ├── options-sideMenuSide.mdx │ │ ├── options-splitView.mdx │ │ ├── options-stack.mdx │ │ ├── options-statusBar.mdx │ │ ├── options-subtitle.mdx │ │ ├── options-title.mdx │ │ └── topBar-searchBar.mdx │ └── docs │ │ ├── community-libraries.mdx │ │ ├── docs-Installing.mdx │ │ ├── docs-advanced-navigation.mdx │ │ ├── docs-app-launch.mdx │ │ ├── docs-basic-navigation.mdx │ │ ├── docs-before-you-start.mdx │ │ ├── docs-bottomTabs.mdx │ │ ├── docs-customBackNavigation.mdx │ │ ├── docs-externalComponent.mdx │ │ ├── docs-functional-components.mdx │ │ ├── docs-modal.mdx │ │ ├── docs-overlay.mdx │ │ ├── docs-passing-data-to-components.mdx │ │ ├── docs-playground-app.mdx │ │ ├── docs-root.mdx │ │ ├── docs-screen-lifecycle.mdx │ │ ├── docs-showcases.mdx │ │ ├── docs-sideMenu.mdx │ │ ├── docs-stack.mdx │ │ ├── meta-contributing.mdx │ │ ├── sideMenu-disable.mdx │ │ ├── stack-backButton.mdx │ │ ├── stack-backNavigation.mdx │ │ ├── stack-buttons.mdx │ │ ├── stack-programmatically.mdx │ │ ├── style-animations.mdx │ │ ├── style-constants.mdx │ │ ├── style-fonts.mdx │ │ ├── style-orientation.mdx │ │ ├── style-screens.mdx │ │ ├── style-screens │ │ ├── command-options.tsx │ │ ├── merge-options.tsx │ │ ├── static-options-class.tsx │ │ ├── static-options-experiments.tsx │ │ ├── static-options-fn.tsx │ │ ├── static-options-props-class.tsx │ │ └── static-options-props-fn.tsx │ │ ├── style-statusbar.mdx │ │ ├── style-theme.mdx │ │ ├── style-theme │ │ ├── layout-processor.tsx │ │ ├── option-processor-defaults.tsx │ │ └── option-processor.tsx │ │ ├── third-party-mobx.mdx │ │ ├── third-party-mobx │ │ ├── counter-screen.tsx │ │ ├── counter-store-decorator.tsx │ │ ├── counter-store.tsx │ │ └── persistent-data.tsx │ │ ├── third-party-react-context.mdx │ │ ├── third-party-react-context │ │ ├── App-consumer.tsx │ │ ├── App.tsx │ │ ├── CounterContext.tsx │ │ └── index.tsx │ │ ├── third-party-react-native-vector-icons.mdx │ │ ├── third-party-react-native-vector-icons │ │ ├── ExampleComponent.tsx │ │ ├── MyIcon.tsx │ │ ├── NavIcons.tsx │ │ └── index.ts │ │ ├── third-party-typescript.mdx │ │ └── third-party-typescript │ │ ├── strongly-typed-components-class.tsx │ │ ├── strongly-typed-components-fn.tsx │ │ └── typed-props-in-commands.tsx ├── version-7.32.1 │ ├── api │ │ ├── api-component.mdx │ │ ├── api-events.mdx │ │ ├── api-modal.mdx │ │ ├── api-options.mdx │ │ ├── api-overlay.mdx │ │ ├── api-root.mdx │ │ ├── api-sideMenu.mdx │ │ ├── api-stack.mdx │ │ ├── layout-BottomTabs.mdx │ │ ├── layout-component.mdx │ │ ├── layout-layout.mdx │ │ ├── layout-sideMenu.mdx │ │ ├── layout-splitView.mdx │ │ ├── layout-stack.mdx │ │ ├── options-animations.mdx │ │ ├── options-backButton.mdx │ │ ├── options-background.mdx │ │ ├── options-bottomTab.mdx │ │ ├── options-bottomTabs.mdx │ │ ├── options-button.mdx │ │ ├── options-fab.mdx │ │ ├── options-hardwareBackButton.mdx │ │ ├── options-iconBackground.mdx │ │ ├── options-iconInsets.mdx │ │ ├── options-imageResource.mdx │ │ ├── options-largeTitle.mdx │ │ ├── options-layout.mdx │ │ ├── options-migration.mdx │ │ ├── options-modal.mdx │ │ ├── options-navigationBar.mdx │ │ ├── options-overlay.mdx │ │ ├── options-preview.mdx │ │ ├── options-root.mdx │ │ ├── options-scrollEdgeAppearance.mdx │ │ ├── options-sideMenu.mdx │ │ ├── options-sideMenuSide.mdx │ │ ├── options-splitView.mdx │ │ ├── options-stack.mdx │ │ ├── options-statusBar.mdx │ │ ├── options-subtitle.mdx │ │ ├── options-title.mdx │ │ └── topBar-searchBar.mdx │ └── docs │ │ ├── community-libraries.mdx │ │ ├── docs-Installing.mdx │ │ ├── docs-advanced-navigation.mdx │ │ ├── docs-app-launch.mdx │ │ ├── docs-basic-navigation.mdx │ │ ├── docs-before-you-start.mdx │ │ ├── docs-bottomTabs.mdx │ │ ├── docs-customBackNavigation.mdx │ │ ├── docs-externalComponent.mdx │ │ ├── docs-functional-components.mdx │ │ ├── docs-modal.mdx │ │ ├── docs-overlay.mdx │ │ ├── docs-passing-data-to-components.mdx │ │ ├── docs-playground-app.mdx │ │ ├── docs-root.mdx │ │ ├── docs-screen-lifecycle.mdx │ │ ├── docs-showcases.mdx │ │ ├── docs-sideMenu.mdx │ │ ├── docs-stack.mdx │ │ ├── meta-contributing.mdx │ │ ├── sideMenu-disable.mdx │ │ ├── stack-backButton.mdx │ │ ├── stack-backNavigation.mdx │ │ ├── stack-buttons.mdx │ │ ├── stack-programmatically.mdx │ │ ├── style-animations.mdx │ │ ├── style-constants.mdx │ │ ├── style-fonts.mdx │ │ ├── style-orientation.mdx │ │ ├── style-screens.mdx │ │ ├── style-screens │ │ ├── command-options.tsx │ │ ├── merge-options.tsx │ │ ├── static-options-class.tsx │ │ ├── static-options-experiments.tsx │ │ ├── static-options-fn.tsx │ │ ├── static-options-props-class.tsx │ │ └── static-options-props-fn.tsx │ │ ├── style-statusbar.mdx │ │ ├── style-theme.mdx │ │ ├── style-theme │ │ ├── layout-processor.tsx │ │ ├── option-processor-defaults.tsx │ │ └── option-processor.tsx │ │ ├── third-party-mobx.mdx │ │ ├── third-party-mobx │ │ ├── counter-screen.tsx │ │ ├── counter-store-decorator.tsx │ │ ├── counter-store.tsx │ │ └── persistent-data.tsx │ │ ├── third-party-react-context.mdx │ │ ├── third-party-react-context │ │ ├── App-consumer.tsx │ │ ├── App.tsx │ │ ├── CounterContext.tsx │ │ └── index.tsx │ │ ├── third-party-react-native-vector-icons.mdx │ │ ├── third-party-react-native-vector-icons │ │ ├── ExampleComponent.tsx │ │ ├── MyIcon.tsx │ │ ├── NavIcons.tsx │ │ └── index.ts │ │ ├── third-party-typescript.mdx │ │ └── third-party-typescript │ │ ├── strongly-typed-components-class.tsx │ │ ├── strongly-typed-components-fn.tsx │ │ └── typed-props-in-commands.tsx ├── version-7.37.0 │ ├── api │ │ ├── api-component.mdx │ │ ├── api-events.mdx │ │ ├── api-modal.mdx │ │ ├── api-options.mdx │ │ ├── api-overlay.mdx │ │ ├── api-root.mdx │ │ ├── api-sideMenu.mdx │ │ ├── api-stack.mdx │ │ ├── layout-BottomTabs.mdx │ │ ├── layout-component.mdx │ │ ├── layout-layout.mdx │ │ ├── layout-sideMenu.mdx │ │ ├── layout-splitView.mdx │ │ ├── layout-stack.mdx │ │ ├── options-animations.mdx │ │ ├── options-backButton.mdx │ │ ├── options-background.mdx │ │ ├── options-bottomTab.mdx │ │ ├── options-bottomTabs.mdx │ │ ├── options-button.mdx │ │ ├── options-fab.mdx │ │ ├── options-hardwareBackButton.mdx │ │ ├── options-iconBackground.mdx │ │ ├── options-iconInsets.mdx │ │ ├── options-imageResource.mdx │ │ ├── options-largeTitle.mdx │ │ ├── options-layout.mdx │ │ ├── options-migration.mdx │ │ ├── options-modal.mdx │ │ ├── options-navigationBar.mdx │ │ ├── options-overlay.mdx │ │ ├── options-preview.mdx │ │ ├── options-root.mdx │ │ ├── options-scrollEdgeAppearance.mdx │ │ ├── options-sideMenu.mdx │ │ ├── options-sideMenuSide.mdx │ │ ├── options-splitView.mdx │ │ ├── options-stack.mdx │ │ ├── options-statusBar.mdx │ │ ├── options-subtitle.mdx │ │ ├── options-title.mdx │ │ └── topBar-searchBar.mdx │ └── docs │ │ ├── community-libraries.mdx │ │ ├── docs-Installing.mdx │ │ ├── docs-advanced-navigation.mdx │ │ ├── docs-app-launch.mdx │ │ ├── docs-basic-navigation.mdx │ │ ├── docs-before-you-start.mdx │ │ ├── docs-bottomTabs.mdx │ │ ├── docs-customBackNavigation.mdx │ │ ├── docs-externalComponent.mdx │ │ ├── docs-functional-components.mdx │ │ ├── docs-modal.mdx │ │ ├── docs-overlay.mdx │ │ ├── docs-passing-data-to-components.mdx │ │ ├── docs-playground-app.mdx │ │ ├── docs-root.mdx │ │ ├── docs-screen-lifecycle.mdx │ │ ├── docs-showcases.mdx │ │ ├── docs-sideMenu.mdx │ │ ├── docs-stack.mdx │ │ ├── meta-contributing.mdx │ │ ├── sideMenu-disable.mdx │ │ ├── stack-backButton.mdx │ │ ├── stack-backNavigation.mdx │ │ ├── stack-buttons.mdx │ │ ├── stack-programmatically.mdx │ │ ├── style-animations.mdx │ │ ├── style-constants.mdx │ │ ├── style-fonts.mdx │ │ ├── style-orientation.mdx │ │ ├── style-screens.mdx │ │ ├── style-screens │ │ ├── command-options.tsx │ │ ├── merge-options.tsx │ │ ├── static-options-class.tsx │ │ ├── static-options-experiments.tsx │ │ ├── static-options-fn.tsx │ │ ├── static-options-props-class.tsx │ │ └── static-options-props-fn.tsx │ │ ├── style-statusbar.mdx │ │ ├── style-theme.mdx │ │ ├── style-theme │ │ ├── layout-processor.tsx │ │ ├── option-processor-defaults.tsx │ │ └── option-processor.tsx │ │ ├── third-party-mobx.mdx │ │ ├── third-party-mobx │ │ ├── counter-screen.tsx │ │ ├── counter-store-decorator.tsx │ │ ├── counter-store.tsx │ │ └── persistent-data.tsx │ │ ├── third-party-react-context.mdx │ │ ├── third-party-react-context │ │ ├── App-consumer.tsx │ │ ├── App.tsx │ │ ├── CounterContext.tsx │ │ └── index.tsx │ │ ├── third-party-react-native-vector-icons.mdx │ │ ├── third-party-react-native-vector-icons │ │ ├── ExampleComponent.tsx │ │ ├── MyIcon.tsx │ │ ├── NavIcons.tsx │ │ └── index.ts │ │ ├── third-party-typescript.mdx │ │ └── third-party-typescript │ │ ├── strongly-typed-components-class.tsx │ │ ├── strongly-typed-components-fn.tsx │ │ └── typed-props-in-commands.tsx └── version-7.7.0 │ ├── api │ ├── api-component.mdx │ ├── api-events.mdx │ ├── api-modal.mdx │ ├── api-options.mdx │ ├── api-overlay.mdx │ ├── api-root.mdx │ ├── api-sideMenu.mdx │ ├── api-stack.mdx │ ├── layout-BottomTabs.mdx │ ├── layout-component.mdx │ ├── layout-layout.mdx │ ├── layout-sideMenu.mdx │ ├── layout-splitView.mdx │ ├── layout-stack.mdx │ ├── options-animations.mdx │ ├── options-backButton.mdx │ ├── options-background.mdx │ ├── options-bottomTab.mdx │ ├── options-bottomTabs.mdx │ ├── options-button.mdx │ ├── options-fab.mdx │ ├── options-iconBackground.mdx │ ├── options-iconInsets.mdx │ ├── options-imageResource.mdx │ ├── options-largeTitle.mdx │ ├── options-layout.mdx │ ├── options-migration.mdx │ ├── options-modal.mdx │ ├── options-navigationBar.mdx │ ├── options-overlay.mdx │ ├── options-preview.mdx │ ├── options-root.mdx │ ├── options-scrollEdgeAppearance.mdx │ ├── options-sideMenu.mdx │ ├── options-sideMenuSide.mdx │ ├── options-splitView.mdx │ ├── options-stack.mdx │ ├── options-statusBar.mdx │ ├── options-subtitle.mdx │ ├── options-title.mdx │ └── topBar-searchBar.mdx │ └── docs │ ├── community-libraries.mdx │ ├── docs-Installing.mdx │ ├── docs-advanced-navigation.mdx │ ├── docs-app-launch.mdx │ ├── docs-basic-navigation.mdx │ ├── docs-before-you-start.mdx │ ├── docs-bottomTabs.mdx │ ├── docs-externalComponent.mdx │ ├── docs-functional-components.mdx │ ├── docs-modal.mdx │ ├── docs-overlay.mdx │ ├── docs-passing-data-to-components.mdx │ ├── docs-playground-app.mdx │ ├── docs-root.mdx │ ├── docs-screen-lifecycle.mdx │ ├── docs-showcases.mdx │ ├── docs-sideMenu.mdx │ ├── docs-stack.mdx │ ├── meta-contributing.mdx │ ├── sideMenu-disable.mdx │ ├── stack-backButton.mdx │ ├── stack-backNavigation.mdx │ ├── stack-buttons.mdx │ ├── stack-programmatically.mdx │ ├── style-animations.mdx │ ├── style-constants.mdx │ ├── style-fonts.mdx │ ├── style-orientation.mdx │ ├── style-screens.mdx │ ├── style-screens │ ├── command-options.tsx │ ├── merge-options.tsx │ ├── static-options-class.tsx │ ├── static-options-experiments.tsx │ ├── static-options-fn.tsx │ ├── static-options-props-class.tsx │ └── static-options-props-fn.tsx │ ├── style-statusbar.mdx │ ├── style-theme.mdx │ ├── style-theme │ ├── layout-processor.tsx │ ├── option-processor-defaults.tsx │ └── option-processor.tsx │ ├── third-party-mobx.mdx │ ├── third-party-mobx │ ├── counter-screen.tsx │ ├── counter-store-decorator.tsx │ ├── counter-store.tsx │ └── persistent-data.tsx │ ├── third-party-react-context.mdx │ ├── third-party-react-context │ ├── App-consumer.tsx │ ├── App.tsx │ ├── CounterContext.tsx │ └── index.tsx │ ├── third-party-typescript.mdx │ └── third-party-typescript │ ├── strongly-typed-components-class.tsx │ ├── strongly-typed-components-fn.tsx │ └── typed-props-in-commands.tsx ├── versioned_sidebars ├── version-6.12.2-sidebars.json ├── version-7.11.2-sidebars.json ├── version-7.25.4-sidebars.json ├── version-7.32.1-sidebars.json ├── version-7.37.0-sidebars.json └── version-7.7.0-sidebars.json └── versions.json /.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: LLVM 2 | IndentWidth: 4 3 | ColumnLimit: 100 4 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | lib/dist/ 3 | website/ 4 | autolink/ 5 | scripts/ 6 | e2e/ -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: ['@react-native', 'prettier', 'prettier/@typescript-eslint', 'prettier/react'], 4 | parser: '@typescript-eslint/parser', 5 | plugins: ['@typescript-eslint'], 6 | env: { 7 | jest: true, 8 | }, 9 | }; 10 | 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 📚 Documentation 3 | about: Report an issue related to documentation 4 | labels: 'triage: documentation, needs triage' 5 | --- 6 | 7 | ## 📚 Documentation 8 | 9 | (A clear and concise description of what the issue is.) 10 | 11 | - [ ] Have you read the [Contributing Guidelines on issues](https://wix.github.io/react-native-navigation/docs/meta-contributing)? 12 | 13 | (Write your answer here.) 14 | -------------------------------------------------------------------------------- /.github/workflows/require-label.yml: -------------------------------------------------------------------------------- 1 | name: Enforce PR label 2 | 3 | on: 4 | pull_request: 5 | types: [labeled, unlabeled, opened, edited, synchronize] 6 | 7 | jobs: 8 | enforce-label: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: yogevbd/enforce-label-action@2.2.2 12 | with: 13 | REQUIRED_LABELS_ANY: "type: accepted/bug,type: accepted/enhancement,Infrastructure,type: documentation" 14 | -------------------------------------------------------------------------------- /.logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/.logo.png -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | legacy-peer-deps=true 2 | registry=https://registry.npmjs.org 3 | strict-ssl=true 4 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 20 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true, 4 | "trailingComma": "es5", 5 | "printWidth": 100 6 | } 7 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.formatOnSave": true, 3 | "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"], 4 | "eslint.enable": true, 5 | "typescript.tsdk": "node_modules/typescript/lib", 6 | } 7 | -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | See https://wix.github.io/react-native-navigation/docs/meta-contributing/ 2 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version 4 | ruby '>= 2.6.10' 5 | 6 | gem 'cocoapods', '>= 1.11.3' 7 | -------------------------------------------------------------------------------- /Mock.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/Mock'; 2 | -------------------------------------------------------------------------------- /autolink/postlink.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | echo "RNN postlink !!!!!!!!!!!!!!!!!" -------------------------------------------------------------------------------- /autolink/postlink/postLinkAndroid.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | var { infon } = require('./log'); 3 | var ApplicationLinker = require('./applicationLinker'); 4 | var ActivityLinker = require('./activityLinker'); 5 | var GradleLinker = require('./gradleLinker'); 6 | 7 | module.exports = () => { 8 | infon('\nRunning Android postlink script.\n'); 9 | new ApplicationLinker().link(); 10 | new ActivityLinker().link(); 11 | new GradleLinker().link(); 12 | }; 13 | -------------------------------------------------------------------------------- /autolink/postlink/postLinkIOS.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | var {infon} = require('./log'); 3 | var AppDelegateLinker = require('./appDelegateLinker'); 4 | var PodfileLinker = require('./podfileLinker'); 5 | var PlistLinker = require('./plistLinker'); 6 | 7 | module.exports = () => { 8 | infon('Running iOS postlink script.\n'); 9 | new AppDelegateLinker().link(); 10 | new PodfileLinker().link(); 11 | new PlistLinker().link(); 12 | }; 13 | -------------------------------------------------------------------------------- /autolink/postlink/stringUtils.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | 3 | /** 4 | * @param {string} to 5 | * @param {number} fromIndex 6 | * @param {string} what 7 | */ 8 | function insertString(to, fromIndex, what) { 9 | return to.substring(0, fromIndex) + what + to.substring(fromIndex, to.length); 10 | } 11 | 12 | module.exports = { 13 | insertString, 14 | }; 15 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function (api) { 2 | api && api.cache(false); 3 | return { 4 | presets: ['module:@react-native/babel-preset'], 5 | plugins: [ 6 | '@babel/plugin-proposal-export-namespace-from', 7 | '@babel/plugin-proposal-export-default-from', 8 | 'react-native-reanimated/plugin', 9 | ], 10 | }; 11 | }; 12 | -------------------------------------------------------------------------------- /e2e/assets/buttons_navbar.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/e2e/assets/buttons_navbar.android.png -------------------------------------------------------------------------------- /e2e/assets/buttons_navbar.ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/e2e/assets/buttons_navbar.ios.png -------------------------------------------------------------------------------- /e2e/assets/overlay_banner_padding.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/e2e/assets/overlay_banner_padding.png -------------------------------------------------------------------------------- /e2e/iOSUtils.js: -------------------------------------------------------------------------------- 1 | import { execSync } from 'shell-utils/src/exec'; 2 | 3 | const utils = { 4 | setDemoMode: () => { 5 | execSync( 6 | 'xcrun simctl status_bar "iPhone 13" override --time "12:00" --batteryState charged --batteryLevel 100 --wifiBars 3 --cellularMode active --cellularBars 4' 7 | ); 8 | }, 9 | }; 10 | 11 | export default utils; 12 | -------------------------------------------------------------------------------- /e2e/init.js: -------------------------------------------------------------------------------- 1 | require('detox-testing-library-rnn-adapter').extendDetox(); 2 | -------------------------------------------------------------------------------- /index.e2e.js: -------------------------------------------------------------------------------- 1 | import "setimmediate"; 2 | import { LogBox } from 'react-native'; 3 | 4 | LogBox.ignoreAllLogs(); 5 | require('./playground/index'); 6 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | require('./playground/index'); 2 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowJs": true, 4 | "allowSyntheticDefaultImports": true 5 | }, 6 | "exclude": [ 7 | "node_modules" 8 | ] 9 | } -------------------------------------------------------------------------------- /lib/Mock/ComponentProps.tsx: -------------------------------------------------------------------------------- 1 | import ParentNode from './Layouts/ParentNode'; 2 | 3 | export interface ComponentProps { 4 | layoutNode: ParentNode; 5 | backButton?: boolean; 6 | } 7 | -------------------------------------------------------------------------------- /lib/Mock/Layouts/StackNode.ts: -------------------------------------------------------------------------------- 1 | import ParentNode from './ParentNode'; 2 | 3 | export default class StackNode extends ParentNode { 4 | constructor(layout: any, parentNode?: ParentNode) { 5 | super(layout, 'Stack', parentNode); 6 | } 7 | 8 | getVisibleLayout() { 9 | return this.children[this.children.length - 1].getVisibleLayout(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/Mock/connect.ts: -------------------------------------------------------------------------------- 1 | import { connect as remxConnect } from 'remx'; 2 | 3 | export function connect(component: T): T { 4 | // @ts-ignore 5 | return remxConnect()(component); 6 | } 7 | -------------------------------------------------------------------------------- /lib/Mock/constants.ts: -------------------------------------------------------------------------------- 1 | export const VISIBLE_SCREEN_TEST_ID = 'VISIBLE_SCREEN_TEST_ID'; 2 | export const VISIBLE_OVERLAY_TEST_ID = 'VISIBLE_OVERLAY_TEST_ID'; 3 | -------------------------------------------------------------------------------- /lib/Mock/mocks/AppRegistryService.ts: -------------------------------------------------------------------------------- 1 | import { ComponentProvider } from 'react-native'; 2 | 3 | export class AppRegistryService { 4 | registerComponent(_appKey: string, _getComponentFunc: ComponentProvider) {} 5 | } 6 | -------------------------------------------------------------------------------- /lib/android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/LayoutAnimation.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options 2 | 3 | interface LayoutAnimation { 4 | val sharedElements: SharedElements 5 | val elementTransitions: ElementTransitions 6 | } -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/interpolators/DecelerateAccelerateInterpolator.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.interpolators 2 | 3 | import android.animation.TimeInterpolator 4 | import kotlin.math.cos 5 | 6 | class DecelerateAccelerateInterpolator : TimeInterpolator { 7 | override fun getInterpolation(input: Float): Float { 8 | return (cos((input + 1) * Math.PI) / 2.0f).toFloat() + 0.5f 9 | } 10 | } -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/params/DensityPixel.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.params; 2 | 3 | import android.content.res.Resources; 4 | 5 | import com.reactnativenavigation.utils.UiUtils; 6 | 7 | public class DensityPixel extends Param { 8 | 9 | public DensityPixel(int value) { 10 | super((int) UiUtils.dpToPx(Resources.getSystem().getDisplayMetrics(), value)); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/params/FloatParam.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.params; 2 | 3 | 4 | public class FloatParam extends Param { 5 | 6 | public FloatParam(Float value) { 7 | super(value); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/params/Fraction.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.params; 2 | 3 | public class Fraction extends Param { 4 | public Fraction(double value) { 5 | super(value); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/params/NullBool.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.params; 2 | 3 | public class NullBool extends Bool { 4 | public NullBool() { 5 | super(null); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/params/NullColor.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.params; 2 | 3 | public class NullColor extends Colour { 4 | 5 | public NullColor() { 6 | super(0); 7 | } 8 | 9 | @Override 10 | public boolean hasValue() { 11 | return false; 12 | } 13 | 14 | @Override 15 | public String toString() { 16 | return "Null Color"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/params/NullDensityPixel.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.params; 2 | 3 | public class NullDensityPixel extends DensityPixel { 4 | public NullDensityPixel() { 5 | super(0); 6 | } 7 | 8 | @Override 9 | public boolean hasValue() { 10 | return false; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/params/NullFloatParam.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.params; 2 | 3 | 4 | public class NullFloatParam extends FloatParam { 5 | 6 | public NullFloatParam() { 7 | super(0f); 8 | } 9 | 10 | @Override 11 | public boolean hasValue() { 12 | return false; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/params/NullFraction.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.params; 2 | 3 | public class NullFraction extends Fraction { 4 | public NullFraction() { 5 | super(0); 6 | } 7 | 8 | @Override 9 | public boolean hasValue() { 10 | return false; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/params/NullNumber.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.params; 2 | 3 | public class NullNumber extends Number { 4 | public NullNumber() { 5 | super(0); 6 | } 7 | 8 | @Override 9 | public boolean hasValue() { 10 | return false; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/params/NullText.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.params; 2 | 3 | public class NullText extends Text { 4 | public NullText() { 5 | super(""); 6 | } 7 | 8 | @Override 9 | public boolean hasValue() { 10 | return false; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/options/params/Number.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.options.params; 2 | 3 | public class Number extends Param { 4 | 5 | public Number(int value) { 6 | super(value); 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/react/BundleDownloadListenerProvider.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.react; 2 | 3 | public interface BundleDownloadListenerProvider { 4 | void setBundleLoaderListener(NavigationDevBundleDownloadListener listener); 5 | } 6 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/react/CommandListener.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.react; 2 | 3 | public interface CommandListener { 4 | void onSuccess(String childId); 5 | 6 | void onError(String message); 7 | } 8 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/react/NavigationDevBundleDownloadListener.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.react; 2 | 3 | public interface NavigationDevBundleDownloadListener { 4 | void onSuccess(); 5 | } 6 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/utils/AnimationListener.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.utils 2 | 3 | open class ScreenAnimationListener { 4 | open fun onStart() {} 5 | 6 | open fun onEnd() {} 7 | 8 | open fun onCancel() {} 9 | } -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/utils/Assertions.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.utils; 2 | 3 | import javax.annotation.Nullable; 4 | 5 | public class Assertions { 6 | public static void assertNotNull(@Nullable Object object) { 7 | if (object == null) throw new AssertionError(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/utils/DeviceScreen.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.utils; 2 | 3 | import android.content.res.Resources; 4 | 5 | public class DeviceScreen { 6 | public static int width(Resources resources) { 7 | return resources.getDisplayMetrics().widthPixels; 8 | } 9 | 10 | public static int height(Resources resources) { 11 | return resources.getDisplayMetrics().heightPixels; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/utils/Now.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.utils; 2 | 3 | public class Now { 4 | public long now() { 5 | return System.currentTimeMillis(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/utils/PrimitiveExt.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.utils 2 | 3 | import android.content.res.Resources 4 | 5 | val Int.dp: Int 6 | get() = (this * Resources.getSystem().displayMetrics.density).toInt() 7 | 8 | val Float.dp: Int 9 | get() = (this * Resources.getSystem().displayMetrics.density).toInt() -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactImageView.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.utils 2 | 3 | import com.facebook.react.views.image.ReactImageView 4 | 5 | fun ReactImageView.getCornerRadius(): Float { 6 | return hierarchy.roundingParams!!.cornersRadii!!.first() 7 | } -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/utils/ReactViewGroup.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.utils 2 | 3 | import com.facebook.react.common.annotations.UnstableReactNativeAPI 4 | import com.facebook.react.uimanager.drawable.CSSBackgroundDrawable 5 | import com.facebook.react.views.view.ReactViewGroup 6 | 7 | @OptIn(UnstableReactNativeAPI::class) 8 | val ReactViewGroup.borderRadius: Float 9 | get() = (background as? CSSBackgroundDrawable)?.fullBorderWidth ?: 0f -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/utils/RoundingParams.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.utils 2 | 3 | import com.facebook.drawee.generic.RoundingParams 4 | 5 | class RoundingParams { 6 | companion object { 7 | fun fromCornersRadii(radius: Float): RoundingParams = 8 | RoundingParams.fromCornersRadii(FloatArray(8) { radius }) 9 | } 10 | } -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/utils/ViewParent.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.utils 2 | 3 | import android.view.View 4 | import android.view.ViewParent 5 | 6 | val ViewParent.scaleX: Float 7 | get() = (this as View).scaleX 8 | 9 | val ViewParent.scaleY: Float 10 | get() = (this as View).scaleY 11 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/TabSelector.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.viewcontrollers.bottomtabs; 2 | 3 | public interface TabSelector { 4 | void selectTab(int index); 5 | } 6 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponent.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.viewcontrollers.externalcomponent; 2 | 3 | import android.view.View; 4 | 5 | public interface ExternalComponent { 6 | View asView(); 7 | } 8 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentCreator.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.viewcontrollers.externalcomponent; 2 | 3 | import androidx.fragment.app.FragmentActivity; 4 | 5 | import com.facebook.react.ReactInstanceManager; 6 | 7 | import org.json.JSONObject; 8 | 9 | public interface ExternalComponentCreator { 10 | ExternalComponent create(FragmentActivity activity, JSONObject props); 11 | } 12 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/externalcomponent/ExternalComponentPresenter.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.viewcontrollers.externalcomponent; 2 | 3 | import com.reactnativenavigation.viewcontrollers.component.ComponentPresenterBase; 4 | 5 | public class ExternalComponentPresenter extends ComponentPresenterBase { 6 | } 7 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/FabAnimator.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.viewcontrollers.stack; 2 | 3 | 4 | public interface FabAnimator { 5 | void show(); 6 | 7 | void hide(); 8 | } 9 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/Destroyable.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.viewcontrollers.viewcontroller; 2 | 3 | public interface Destroyable { 4 | void destroy(); 5 | } 6 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/NoOpYellowBoxDelegate.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.viewcontrollers.viewcontroller 2 | 3 | import android.content.Context 4 | import android.view.View 5 | 6 | class NoOpYellowBoxDelegate(context: Context) : YellowBoxDelegate(context) { 7 | override fun onChildViewAdded(parent: View, child: View?) {} 8 | } -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ReactViewCreator.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.viewcontrollers.viewcontroller; 2 | 3 | import android.content.Context; 4 | 5 | public interface ReactViewCreator { 6 | 7 | IReactView create(Context context, String componentId, String componentName); 8 | } 9 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/ViewControllerVisibilityInfo.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.viewcontrollers.viewcontroller 2 | 3 | data class TopBarVisibilityInfo(val isShown: Boolean, val solidColor: Int?) 4 | 5 | data class ViewControllerVisibilityInfo(val topBarVisibilityInfo: TopBarVisibilityInfo?) 6 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/viewcontroller/overlay/OverlayLayout.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.viewcontrollers.viewcontroller.overlay 2 | 3 | import android.content.Context 4 | import android.widget.FrameLayout 5 | 6 | class OverlayLayout(context: Context) : FrameLayout(context) -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/views/component/Component.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.views.component; 2 | 3 | public interface Component extends Renderable { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/views/component/ReactComponent.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.views.component; 2 | 3 | import com.reactnativenavigation.viewcontrollers.viewcontroller.IReactView; 4 | 5 | public interface ReactComponent extends Component, IReactView { 6 | } 7 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/views/component/Renderable.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.views.component; 2 | 3 | public interface Renderable { 4 | boolean isRendered(); 5 | } 6 | -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/views/element/animators/ViewOutline.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.views.element.animators 2 | 3 | data class ViewOutline(val width: Float, val height: Float, val radius: Float) -------------------------------------------------------------------------------- /lib/android/app/src/main/java/com/reactnativenavigation/views/element/finder/ViewFinder.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.views.element.finder 2 | 3 | import android.view.View 4 | import com.reactnativenavigation.viewcontrollers.viewcontroller.ViewController 5 | 6 | interface ViewFinder { 7 | suspend fun find(root: ViewController<*>, nativeId: String): View? 8 | } -------------------------------------------------------------------------------- /lib/android/app/src/main/res/anim/slide_down.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 12 | -------------------------------------------------------------------------------- /lib/android/app/src/main/res/anim/slide_up.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /lib/android/app/src/main/res/drawable/ic_arrow_back_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /lib/android/app/src/main/res/drawable/ic_arrow_back_black_rtl_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /lib/android/app/src/main/res/values/dimen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | -------------------------------------------------------------------------------- /lib/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Drawer Close 4 | Drawer Open 5 | 6 | -------------------------------------------------------------------------------- /lib/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /lib/android/app/src/test/java/com/reactnativenavigation/fakes/IconResolverFake.kt: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.fakes 2 | 3 | import android.app.Activity 4 | import com.reactnativenavigation.mocks.ImageLoaderMock 5 | import com.reactnativenavigation.utils.ImageLoader 6 | import com.reactnativenavigation.viewcontrollers.stack.topbar.button.IconResolver 7 | 8 | class IconResolverFake(activity: Activity, imageLoader: ImageLoader = ImageLoaderMock.mock()) : IconResolver(activity, imageLoader) -------------------------------------------------------------------------------- /lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarReactViewCreatorMock.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.mocks; 2 | 3 | import com.reactnativenavigation.views.stack.topbar.titlebar.TitleBarReactViewCreator; 4 | 5 | public class TitleBarReactViewCreatorMock extends TitleBarReactViewCreator { 6 | public TitleBarReactViewCreatorMock() { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /lib/android/app/src/test/java/com/reactnativenavigation/mocks/TopBarBackgroundViewCreatorMock.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.mocks; 2 | 3 | import com.reactnativenavigation.views.stack.topbar.TopBarBackgroundViewCreator; 4 | 5 | public class TopBarBackgroundViewCreatorMock extends TopBarBackgroundViewCreator { 6 | public TopBarBackgroundViewCreatorMock() { 7 | } 8 | 9 | } 10 | -------------------------------------------------------------------------------- /lib/android/app/src/test/java/com/reactnativenavigation/utils/ViewHelper.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.utils; 2 | 3 | import android.view.View; 4 | 5 | public class ViewHelper { 6 | public static boolean isVisible(View view) { 7 | return view != null && view.getParent() != null && view.getVisibility() == View.VISIBLE; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/externalcomponent/SomeFragment.java: -------------------------------------------------------------------------------- 1 | package com.reactnativenavigation.viewcontrollers.externalcomponent; 2 | 3 | import android.app.Fragment; 4 | 5 | public class SomeFragment extends Fragment { 6 | public SomeFragment() { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /lib/android/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline -------------------------------------------------------------------------------- /lib/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/lib/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /lib/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Jan 04 11:01:32 EET 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip 7 | -------------------------------------------------------------------------------- /lib/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /lib/ios/AnimatedImageView.h: -------------------------------------------------------------------------------- 1 | #import "AnimatedReactView.h" 2 | #import 3 | 4 | @interface AnimatedImageView : AnimatedReactView 5 | 6 | @property(nonatomic, strong) UIImageView *fromImageView; 7 | @property(nonatomic, strong) UIImageView *toImageView; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/AnimatedTextView.h: -------------------------------------------------------------------------------- 1 | #import "AnimatedReactView.h" 2 | #import 3 | 4 | @interface AnimatedTextView : AnimatedReactView 5 | 6 | @property(nonatomic, strong) NSTextStorage *fromTextStorage; 7 | @property(nonatomic, strong) NSTextStorage *toTextStorage; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/AnimatedUIImageView.h: -------------------------------------------------------------------------------- 1 | #import "AnimatedImageView.h" 2 | 3 | @interface AnimatedUIImageView : AnimatedImageView 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/AnimatedUIImageView.mm: -------------------------------------------------------------------------------- 1 | #import "AnimatedUIImageView.h" 2 | 3 | @implementation AnimatedUIImageView 4 | 5 | - (void)layoutSubviews { 6 | } 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/AnimatedViewFactory.h: -------------------------------------------------------------------------------- 1 | #import "AnimatedReactView.h" 2 | #import "SharedElementTransitionOptions.h" 3 | #import 4 | 5 | @interface AnimatedViewFactory : NSObject 6 | 7 | + (AnimatedReactView *)createFromElement:(UIView *)element 8 | toElement:(UIView *)toElement 9 | transitionOptions:(SharedElementTransitionOptions *)transitionOptions; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/AnimationObserver.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | typedef void (^RNNAnimationEndedBlock)(void); 4 | 5 | @interface AnimationObserver : NSObject 6 | 7 | + (AnimationObserver *)sharedObserver; 8 | 9 | @property(nonatomic) BOOL isAnimating; 10 | 11 | - (void)registerAnimationEndedBlock:(RNNAnimationEndedBlock)block; 12 | 13 | - (void)beginAnimation; 14 | 15 | - (void)endAnimation; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /lib/ios/BaseAnimator.h: -------------------------------------------------------------------------------- 1 | #import "DisplayLinkAnimatorDelegate.h" 2 | #import 3 | 4 | @interface BaseAnimator : NSObject 5 | 6 | @property(nonatomic, strong) UIView *view; 7 | 8 | @property(nonatomic, strong) NSArray> *animations; 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/Bool.h: -------------------------------------------------------------------------------- 1 | #import "Param.h" 2 | 3 | @interface Bool : Param 4 | 5 | - (instancetype)initWithBOOL:(BOOL)boolValue; 6 | 7 | - (BOOL)get; 8 | 9 | - (NSNumber *)getValue; 10 | 11 | - (BOOL)withDefault:(BOOL)value; 12 | 13 | - (bool)isFalse; 14 | 15 | + (instancetype)withValue:(BOOL)value; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /lib/ios/BoolParser.h: -------------------------------------------------------------------------------- 1 | #import "ReactNativeNavigation/Bool.h" 2 | #import 3 | 4 | @interface BoolParser : NSObject 5 | 6 | + (Bool *)parse:(NSDictionary *)json key:(NSString *)key; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/BoolParser.mm: -------------------------------------------------------------------------------- 1 | #import "BoolParser.h" 2 | #import "NullBool.h" 3 | 4 | @implementation BoolParser 5 | 6 | + (Bool *)parse:(NSDictionary *)json key:(NSString *)key { 7 | return json[key] ? [[Bool alloc] initWithValue:json[key]] : [NullBool new]; 8 | } 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/BottomTabPresenterCreator.h: -------------------------------------------------------------------------------- 1 | #import "BottomTabPresenter.h" 2 | #import 3 | 4 | @interface BottomTabPresenterCreator : NSObject 5 | 6 | + (BottomTabPresenter *)createWithDefaultOptions:(RNNNavigationOptions *)defaultOptions; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/BottomTabsAfterInitialTabAttacher.h: -------------------------------------------------------------------------------- 1 | #import "BottomTabsBaseAttacher.h" 2 | 3 | @interface BottomTabsAfterInitialTabAttacher : BottomTabsBaseAttacher 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/BottomTabsAppearancePresenter.h: -------------------------------------------------------------------------------- 1 | #import "BottomTabsBasePresenter.h" 2 | 3 | API_AVAILABLE(ios(13.0)) 4 | @interface BottomTabsAppearancePresenter : BottomTabsBasePresenter 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/BottomTabsAttachMode.h: -------------------------------------------------------------------------------- 1 | #import "Enum.h" 2 | 3 | typedef NS_ENUM(NSInteger, AttachMode) { 4 | BottomTabsAttachModeTogether = 0, 5 | BottomTabsAttachModeAfterInitialTab, 6 | BottomTabsAttachModeOnSwitchToTab 7 | }; 8 | 9 | @interface BottomTabsAttachMode : Enum 10 | 11 | - (AttachMode)get; 12 | 13 | - (AttachMode)withDefault:(id)defaultValue; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /lib/ios/BottomTabsAttachModeFactory.h: -------------------------------------------------------------------------------- 1 | #import "BottomTabsBaseAttacher.h" 2 | #import "RNNNavigationOptions.h" 3 | #import 4 | 5 | @interface BottomTabsAttachModeFactory : NSObject 6 | 7 | - (instancetype)initWithDefaultOptions:(RNNNavigationOptions *)defaultOptions; 8 | 9 | - (BottomTabsBaseAttacher *)fromOptions:(RNNNavigationOptions *)options; 10 | 11 | @property(nonatomic, retain) RNNNavigationOptions *defaultOptions; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /lib/ios/BottomTabsBaseAttacher.h: -------------------------------------------------------------------------------- 1 | #import "UIViewController+LayoutProtocol.h" 2 | #import 3 | 4 | @interface BottomTabsBaseAttacher : NSObject 5 | 6 | - (void)attach:(UITabBarController *)bottomTabsController; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/BottomTabsBaseAttacher.mm: -------------------------------------------------------------------------------- 1 | #import "BottomTabsBaseAttacher.h" 2 | 3 | @implementation BottomTabsBaseAttacher 4 | 5 | - (void)attach:(UITabBarController *)bottomTabsController { 6 | } 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/BottomTabsOnSwitchToTabAttacher.h: -------------------------------------------------------------------------------- 1 | #import "BottomTabsBaseAttacher.h" 2 | 3 | @interface BottomTabsOnSwitchToTabAttacher : BottomTabsBaseAttacher 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/BottomTabsOnSwitchToTabAttacher.mm: -------------------------------------------------------------------------------- 1 | #import "BottomTabsOnSwitchToTabAttacher.h" 2 | 3 | @implementation BottomTabsOnSwitchToTabAttacher 4 | 5 | - (void)attach:(UITabBarController *)bottomTabsController { 6 | [bottomTabsController.selectedViewController setReactViewReadyCallback:^{ 7 | [bottomTabsController readyForPresentation]; 8 | }]; 9 | 10 | [bottomTabsController.selectedViewController render]; 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /lib/ios/BottomTabsPresenterCreator.h: -------------------------------------------------------------------------------- 1 | #import "RNNBottomTabsPresenter.h" 2 | #import 3 | 4 | @interface BottomTabsPresenterCreator : NSObject 5 | 6 | + (BottomTabsBasePresenter *)createWithDefaultOptions:(RNNNavigationOptions *)defaultOptions; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/BottomTabsTogetherAttacher.h: -------------------------------------------------------------------------------- 1 | #import "BottomTabsBaseAttacher.h" 2 | 3 | @interface BottomTabsTogetherAttacher : BottomTabsBaseAttacher 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/Color.h: -------------------------------------------------------------------------------- 1 | #import "Param.h" 2 | #import 3 | 4 | @interface Color : Param 5 | 6 | + (instancetype)withColor:(UIColor *)value; 7 | 8 | - (instancetype)initWithValue:(UIColor *)value; 9 | 10 | - (UIColor *)get; 11 | 12 | - (UIColor *)withDefault:(id)defaultValue; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /lib/ios/ColorParser.h: -------------------------------------------------------------------------------- 1 | #import "ReactNativeNavigation/Color.h" 2 | #import 3 | 4 | @interface ColorParser : NSObject 5 | 6 | + (Color *)parse:(NSDictionary *)json key:(NSString *)key; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/ColorParser.mm: -------------------------------------------------------------------------------- 1 | #import "ColorParser.h" 2 | #import "NoColor.h" 3 | #import "NullColor.h" 4 | #import 5 | 6 | @implementation ColorParser 7 | 8 | + (Color *)parse:(NSDictionary *)json key:(NSString *)key { 9 | if ([json[key] isEqual:@"NoColor"]) 10 | return [NoColor new]; 11 | else if (json[key]) 12 | return [Color withValue:[RCTConvert UIColor:json[key]]]; 13 | 14 | return [NullColor new]; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /lib/ios/Constants.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | #ifdef RCT_NEW_ARCH_ENABLED 5 | #import 6 | #endif 7 | 8 | @interface Constants : NSObject 9 | 10 | + (NSDictionary *)getConstants; 11 | 12 | #ifdef RCT_NEW_ARCH_ENABLED 13 | + (JS::NativeRNNTurboModule::Constants::Builder::Input)getTurboConstants; 14 | #endif 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /lib/ios/CornerRadiusTransition.h: -------------------------------------------------------------------------------- 1 | // 2 | // CornerRadiusTransition.h 3 | // Pods 4 | // 5 | // Created by Marc Rousavy on 02.09.20. 6 | // 7 | 8 | #import "ElementBaseTransition.h" 9 | #import "FloatTransition.h" 10 | 11 | @interface CornerRadiusTransition : FloatTransition 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /lib/ios/DeprecationOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface DeprecationOptions : RNNOptions 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/DeprecationOptions.mm: -------------------------------------------------------------------------------- 1 | #import "DeprecationOptions.h" 2 | 3 | @implementation DeprecationOptions 4 | 5 | - (instancetype)initWithDict:(NSDictionary *)dict { 6 | self = [super initWithDict:dict]; 7 | return self; 8 | } 9 | 10 | - (void)mergeOptions:(DeprecationOptions *)options { 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /lib/ios/DictionaryParser.h: -------------------------------------------------------------------------------- 1 | #import "RNNDictionary.h" 2 | #import 3 | 4 | @interface DictionaryParser : NSObject 5 | 6 | + (RNNDictionary *)parse:(NSDictionary *)json key:(NSString *)key; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/DictionaryParser.mm: -------------------------------------------------------------------------------- 1 | #import "DictionaryParser.h" 2 | #import "NullDictionary.h" 3 | 4 | @implementation DictionaryParser 5 | 6 | + (RNNDictionary *)parse:(NSDictionary *)json key:(NSString *)key { 7 | return json[key] ? [[RNNDictionary alloc] initWithValue:json[key]] : [NullDictionary new]; 8 | } 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/DisplayLinkAnimation.h: -------------------------------------------------------------------------------- 1 | #import "Interpolator.h" 2 | #import "RNNInterpolator.h" 3 | #import 4 | 5 | @protocol DisplayLinkAnimation 6 | 7 | @required 8 | 9 | - (CATransform3D)animateWithProgress:(CGFloat)p; 10 | 11 | - (void)end; 12 | 13 | - (NSTimeInterval)duration; 14 | 15 | - (NSTimeInterval)startDelay; 16 | 17 | - (id)interpolator; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /lib/ios/DisplayLinkAnimatorDelegate.h: -------------------------------------------------------------------------------- 1 | #import "DisplayLinkAnimation.h" 2 | #import 3 | 4 | @protocol DisplayLinkAnimatorDelegate 5 | 6 | @required 7 | 8 | - (void)updateAnimations:(NSTimeInterval)elapsed; 9 | 10 | - (NSTimeInterval)maxDuration; 11 | 12 | @optional 13 | - (void)end; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /lib/ios/DotIndicatorOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface DotIndicatorOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) Color *color; 6 | @property(nonatomic, strong) Number *size; 7 | @property(nonatomic, strong) Bool *visible; 8 | 9 | - (bool)hasValue; 10 | 11 | @end -------------------------------------------------------------------------------- /lib/ios/DotIndicatorParser.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @class DotIndicatorOptions; 4 | 5 | @interface DotIndicatorParser : NSObject 6 | + (DotIndicatorOptions *)parse:(NSDictionary *)dict; 7 | @end -------------------------------------------------------------------------------- /lib/ios/DotIndicatorParser.mm: -------------------------------------------------------------------------------- 1 | #import "DotIndicatorParser.h" 2 | #import "DotIndicatorOptions.h" 3 | 4 | @implementation DotIndicatorParser 5 | + (DotIndicatorOptions *)parse:(NSDictionary *)dict { 6 | return [[DotIndicatorOptions alloc] initWithDict:dict[@"dotIndicator"]]; 7 | } 8 | 9 | @end -------------------------------------------------------------------------------- /lib/ios/Double.h: -------------------------------------------------------------------------------- 1 | #import "Param.h" 2 | 3 | @interface Double : Param 4 | 5 | + (instancetype)withValue:(double)value; 6 | 7 | - (double)get; 8 | 9 | - (double)withDefault:(double)defaultValue; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/DoubleParser.h: -------------------------------------------------------------------------------- 1 | #import "Double.h" 2 | #import 3 | 4 | @interface DoubleParser : NSObject 5 | 6 | + (Double *)parse:(NSDictionary *)json key:(NSString *)key; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/DoubleParser.mm: -------------------------------------------------------------------------------- 1 | #import "DoubleParser.h" 2 | #import "NullDouble.h" 3 | 4 | @implementation DoubleParser 5 | 6 | + (Double *)parse:(NSDictionary *)json key:(NSString *)key { 7 | return json[key] ? [[Double alloc] initWithValue:json[key]] : [NullDouble new]; 8 | } 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/ElementAlphaTransition.h: -------------------------------------------------------------------------------- 1 | #import "FloatTransition.h" 2 | 3 | @interface ElementAlphaTransition : FloatTransition 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/ElementFrameTransition.h: -------------------------------------------------------------------------------- 1 | #import "ElementBaseTransition.h" 2 | #import 3 | 4 | @interface ElementFrameTransition : ElementBaseTransition 5 | 6 | @property(nonatomic) CGRect from; 7 | @property(nonatomic) CGRect to; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/ElementFrameTransition.mm: -------------------------------------------------------------------------------- 1 | #import "ElementFrameTransition.h" 2 | 3 | @implementation ElementFrameTransition 4 | 5 | - (CATransform3D)animateWithProgress:(CGFloat)p { 6 | self.view.frame = [RNNInterpolator fromRect:self.from 7 | toRect:self.to 8 | precent:p 9 | interpolator:self.interpolator]; 10 | return CATransform3DIdentity; 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /lib/ios/ElementHorizontalTransition.h: -------------------------------------------------------------------------------- 1 | #import "FloatTransition.h" 2 | #import 3 | 4 | @interface ElementHorizontalTransition : FloatTransition 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/ElementTransitionOptions.h: -------------------------------------------------------------------------------- 1 | #import "TransitionOptions.h" 2 | 3 | @interface ElementTransitionOptions : TransitionOptions 4 | 5 | @property(nonatomic, strong) NSString *elementId; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /lib/ios/ElementTransitionOptions.mm: -------------------------------------------------------------------------------- 1 | #import "ElementTransitionOptions.h" 2 | 3 | @implementation ElementTransitionOptions 4 | 5 | - (instancetype)initWithDict:(NSDictionary *)dict { 6 | self = [super initWithDict:dict]; 7 | 8 | self.elementId = dict[@"id"]; 9 | 10 | return self; 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /lib/ios/ElementVerticalTransition.h: -------------------------------------------------------------------------------- 1 | #import "FloatTransition.h" 2 | #import 3 | 4 | @interface ElementVerticalTransition : FloatTransition 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/Enum.h: -------------------------------------------------------------------------------- 1 | #import "Param.h" 2 | #import 3 | 4 | @interface Enum : Param 5 | 6 | - (int)get; 7 | 8 | - (int)withDefault:(int)defaultValue; 9 | 10 | - (int)convertString:(NSString *)string; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/Enum.mm: -------------------------------------------------------------------------------- 1 | #import "Enum.h" 2 | 3 | @implementation Enum 4 | 5 | - (int)get { 6 | return [self convertString:super.get]; 7 | } 8 | 9 | - (int)withDefault:(int)defaultValue { 10 | NSString *value = [super withDefault:nil]; 11 | if (value) { 12 | return [self convertString:value]; 13 | } else { 14 | return defaultValue; 15 | } 16 | } 17 | 18 | - (int)convertString:(NSString *)string { 19 | return 0; 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /lib/ios/EnumParser.h: -------------------------------------------------------------------------------- 1 | #import "Enum.h" 2 | #import 3 | 4 | @interface EnumParser : NSObject 5 | 6 | + (Enum *)parse:(NSDictionary *)json key:(NSString *)key ofClass:(Class)clazz; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/EnumParser.mm: -------------------------------------------------------------------------------- 1 | #import "EnumParser.h" 2 | #import "NullEnum.h" 3 | 4 | @implementation EnumParser 5 | 6 | + (Enum *)parse:(NSDictionary *)json key:(NSString *)key ofClass:(Class)clazz { 7 | if (json[key]) { 8 | return [json[key] isKindOfClass:[NSString class]] ? [[clazz alloc] initWithValue:json[key]] 9 | : [NullEnum new]; 10 | } 11 | return [NullEnum new]; 12 | } 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /lib/ios/HorizontalScaleTransition.h: -------------------------------------------------------------------------------- 1 | #import "FloatTransition.h" 2 | #import 3 | 4 | @interface HorizontalScaleTransition : FloatTransition 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/HorizontalTranslationTransition.h: -------------------------------------------------------------------------------- 1 | #import "FloatTransition.h" 2 | #import 3 | 4 | @interface HorizontalTranslationTransition : FloatTransition 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/Image.h: -------------------------------------------------------------------------------- 1 | #import "Param.h" 2 | #import 3 | 4 | @interface Image : Param 5 | 6 | - (UIImage *)get; 7 | 8 | - (UIImage *)withDefault:(UIImage *)defaultValue; 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/Image.mm: -------------------------------------------------------------------------------- 1 | #import "Image.h" 2 | 3 | @interface Image () 4 | 5 | @property(nonatomic, retain) UIImage *value; 6 | 7 | @end 8 | 9 | @implementation Image 10 | 11 | - (UIImage *)get { 12 | return self.value; 13 | } 14 | 15 | - (UIImage *)withDefault:(UIImage *)defaultValue { 16 | return [super withDefault:defaultValue]; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /lib/ios/ImageParser.h: -------------------------------------------------------------------------------- 1 | #import "Image.h" 2 | #import 3 | 4 | @interface ImageParser : NSObject 5 | 6 | + (Image *)parse:(NSDictionary *)json key:(NSString *)key; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/IntNumber.h: -------------------------------------------------------------------------------- 1 | #import "Param.h" 2 | 3 | @interface IntNumber : Param 4 | 5 | - (NSUInteger)get; 6 | 7 | - (NSUInteger)withDefault:(NSUInteger)defaultValue; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/IntNumberParser.h: -------------------------------------------------------------------------------- 1 | #import "IntNumber.h" 2 | #import 3 | 4 | @interface IntNumberParser : NSObject 5 | 6 | + (IntNumber *)parse:(NSDictionary *)json key:(NSString *)key; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/IntNumberParser.mm: -------------------------------------------------------------------------------- 1 | #import "IntNumberParser.h" 2 | #import "NullIntNumber.h" 3 | 4 | @implementation IntNumberParser 5 | 6 | + (IntNumber *)parse:(NSDictionary *)json key:(NSString *)key { 7 | return json[key] ? [[IntNumber alloc] initWithValue:json[key]] : [NullIntNumber new]; 8 | } 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/InteractivePopGestureDelegate.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | 4 | @interface InteractivePopGestureDelegate : NSObject 5 | 6 | @property(nonatomic, weak) UINavigationController *navigationController; 7 | @property(nonatomic, weak) id originalDelegate; 8 | 9 | @property(nonatomic) BOOL enabled; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/Interpolators/AccelerateDecelerateInterpolator.h: -------------------------------------------------------------------------------- 1 | // 2 | // AccelerateDecelerateInterpolator.h 3 | // ReactNativeNavigation 4 | // 5 | // Created by Marc Rousavy on 06.10.20. 6 | // Copyright © 2020 Wix. All rights reserved. 7 | // 8 | 9 | #import "Interpolator.h" 10 | #import 11 | 12 | @interface AccelerateDecelerateInterpolator : NSObject 13 | 14 | - (instancetype)init; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /lib/ios/Interpolators/AccelerateInterpolator.h: -------------------------------------------------------------------------------- 1 | // 2 | // AccelerateInterpolator.h 3 | // ReactNativeNavigation 4 | // 5 | // Created by Marc Rousavy on 06.10.20. 6 | // Copyright © 2020 Wix. All rights reserved. 7 | // 8 | 9 | #import "Interpolator.h" 10 | #import 11 | 12 | @interface AccelerateInterpolator : NSObject 13 | 14 | @property(readonly) CGFloat factor; 15 | 16 | - (instancetype)init:(CGFloat)factor; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /lib/ios/Interpolators/DecelerateAccelerateInterpolator.h: -------------------------------------------------------------------------------- 1 | // 2 | // DecelerateAccelerateInterpolator.h 3 | // ReactNativeNavigation 4 | // 5 | // Created by Marc Rousavy on 06.10.20. 6 | // Copyright © 2020 Wix. All rights reserved. 7 | // 8 | 9 | #import "Interpolator.h" 10 | #import 11 | 12 | @interface DecelerateAccelerateInterpolator : NSObject 13 | 14 | - (instancetype)init; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /lib/ios/Interpolators/DecelerateInterpolator.h: -------------------------------------------------------------------------------- 1 | // 2 | // DecelerateInterpolator.h 3 | // ReactNativeNavigation 4 | // 5 | // Created by Marc Rousavy on 06.10.20. 6 | // Copyright © 2020 Wix. All rights reserved. 7 | // 8 | 9 | #import "Interpolator.h" 10 | #import 11 | 12 | @interface DecelerateInterpolator : NSObject 13 | 14 | @property(readonly) CGFloat factor; 15 | 16 | - (instancetype)init:(CGFloat)factor; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /lib/ios/Interpolators/FastOutSlowIn.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "Interpolator.h" 4 | #import 5 | 6 | @interface FastOutSlowIn : NSObject 7 | 8 | @end -------------------------------------------------------------------------------- /lib/ios/Interpolators/LinearInterpolator.h: -------------------------------------------------------------------------------- 1 | // 2 | // LinearInterpolator.h 3 | // ReactNativeNavigation 4 | // 5 | // Created by Marc Rousavy on 25.09.20. 6 | // Copyright © 2020 Wix. All rights reserved. 7 | // 8 | 9 | #import "Interpolator.h" 10 | #import 11 | 12 | @interface LinearInterpolator : NSObject 13 | 14 | - (instancetype)init; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /lib/ios/Interpolators/OvershootInterpolator.h: -------------------------------------------------------------------------------- 1 | // 2 | // OvershootInterpolator.h 3 | // ReactNativeNavigation 4 | // 5 | // Created by Marc Rousavy on 25.09.20. 6 | // Copyright © 2020 Wix. All rights reserved. 7 | // 8 | 9 | #import "Interpolator.h" 10 | #import 11 | 12 | @interface OvershootInterpolator : NSObject 13 | 14 | @property(readonly) CGFloat tension; 15 | 16 | - (instancetype)init:(CGFloat)tension; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /lib/ios/LNInterpolable.mm: -------------------------------------------------------------------------------- 1 | // 2 | // LNInterpolable.c 3 | // 4 | // Created by Leo Natan on 04/10/2016. 5 | // Copyright © 2016 Leo Natan. All rights reserved. 6 | // 7 | 8 | #import "LNInterpolable.h" 9 | 10 | LNInterpolationBehavior const LNInterpolationBehaviorUseDefault = 11 | @"LNInterpolationBehaviorUseDefault"; 12 | 13 | double LNLinearInterpolate(double from, double to, double p) { return from + p * (to - from); } 14 | -------------------------------------------------------------------------------- /lib/ios/NSArray+utils.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface NSArray (utils) 4 | 5 | - (NSArray *)intersect:(NSArray *)array withPropertyName:(NSString *)propertyName; 6 | 7 | - (NSArray *)difference:(NSArray *)array withPropertyName:(NSString *)propertyName; 8 | 9 | - (NSArray *)mapObjectsUsingBlock:(id (^)(id obj, NSUInteger idx))block; 10 | 11 | - (NSArray *)sortByPropertyName:(NSString *)propertyName; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /lib/ios/NoColor.h: -------------------------------------------------------------------------------- 1 | #import "Color.h" 2 | 3 | @interface NoColor : Color 4 | 5 | @end -------------------------------------------------------------------------------- /lib/ios/NoColor.mm: -------------------------------------------------------------------------------- 1 | #import "NoColor.h" 2 | 3 | @implementation NoColor 4 | 5 | - (BOOL)hasValue { 6 | return YES; 7 | } 8 | 9 | - (UIColor *)get { 10 | return nil; 11 | } 12 | 13 | - (UIColor *)withDefault:(id)defaultValue { 14 | return nil; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /lib/ios/NullBool.h: -------------------------------------------------------------------------------- 1 | #import "Bool.h" 2 | 3 | @interface NullBool : Bool 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/NullBool.mm: -------------------------------------------------------------------------------- 1 | #import "NullBool.h" 2 | 3 | @implementation NullBool 4 | 5 | - (instancetype)init { 6 | self = [super initWithValue:nil]; 7 | 8 | return self; 9 | } 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/NullColor.h: -------------------------------------------------------------------------------- 1 | #import "Color.h" 2 | 3 | @interface NullColor : Color 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/NullColor.mm: -------------------------------------------------------------------------------- 1 | #import "NullColor.h" 2 | 3 | @implementation NullColor 4 | 5 | - (instancetype)init { 6 | self = [super initWithValue:nil]; 7 | return self; 8 | } 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/NullDictionary.h: -------------------------------------------------------------------------------- 1 | #import "RNNDictionary.h" 2 | 3 | @interface NullDictionary : RNNDictionary 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/NullDictionary.mm: -------------------------------------------------------------------------------- 1 | #import "NullDictionary.h" 2 | 3 | @implementation NullDictionary 4 | 5 | - (instancetype)init { 6 | self = [super initWithValue:nil]; 7 | return self; 8 | } 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/NullDouble.h: -------------------------------------------------------------------------------- 1 | #import "Double.h" 2 | 3 | @interface NullDouble : Double 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/NullDouble.mm: -------------------------------------------------------------------------------- 1 | #import "NullDouble.h" 2 | 3 | @implementation NullDouble 4 | 5 | - (instancetype)init { 6 | self = [super initWithValue:nil]; 7 | 8 | return self; 9 | } 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/NullEnum.h: -------------------------------------------------------------------------------- 1 | #import "Enum.h" 2 | 3 | @interface NullEnum : Enum 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/NullEnum.mm: -------------------------------------------------------------------------------- 1 | #import "NullEnum.h" 2 | 3 | @implementation NullEnum 4 | 5 | - (instancetype)init { 6 | self = [super initWithValue:nil]; 7 | return self; 8 | } 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/NullImage.h: -------------------------------------------------------------------------------- 1 | #import "Image.h" 2 | 3 | @interface NullImage : Image 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/NullImage.mm: -------------------------------------------------------------------------------- 1 | #import "NullImage.h" 2 | 3 | @implementation NullImage 4 | 5 | - (instancetype)init { 6 | self = [super initWithValue:nil]; 7 | 8 | return self; 9 | } 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/NullIntNumber.h: -------------------------------------------------------------------------------- 1 | #import "IntNumber.h" 2 | 3 | @interface NullIntNumber : IntNumber 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/NullIntNumber.mm: -------------------------------------------------------------------------------- 1 | #import "NullIntNumber.h" 2 | 3 | @implementation NullIntNumber 4 | 5 | - (instancetype)init { 6 | self = [super initWithValue:nil]; 7 | 8 | return self; 9 | } 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/NullNumber.h: -------------------------------------------------------------------------------- 1 | #import "Number.h" 2 | 3 | @interface NullNumber : Number 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/NullNumber.mm: -------------------------------------------------------------------------------- 1 | #import "NullNumber.h" 2 | 3 | @implementation NullNumber 4 | 5 | - (instancetype)init { 6 | self = [super initWithValue:nil]; 7 | return self; 8 | } 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/NullText.h: -------------------------------------------------------------------------------- 1 | #import "Text.h" 2 | 3 | @interface NullText : Text 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/NullText.mm: -------------------------------------------------------------------------------- 1 | #import "NullText.h" 2 | 3 | @implementation NullText 4 | 5 | - (instancetype)init { 6 | self = [super initWithValue:nil]; 7 | return self; 8 | } 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/Number.h: -------------------------------------------------------------------------------- 1 | #import "Param.h" 2 | #import 3 | #import 4 | 5 | @interface Number : Param 6 | 7 | - (NSNumber *)get; 8 | 9 | - (NSNumber *)withDefault:(NSNumber *)defaultValue; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/Number.mm: -------------------------------------------------------------------------------- 1 | #import "Number.h" 2 | 3 | @interface Number () 4 | 5 | @property(nonatomic, retain) NSNumber *value; 6 | 7 | @end 8 | 9 | @implementation Number 10 | 11 | - (NSNumber *)get { 12 | return [super get]; 13 | } 14 | 15 | - (NSNumber *)withDefault:(NSNumber *)defaultValue { 16 | return [super withDefault:defaultValue]; 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /lib/ios/NumberParser.h: -------------------------------------------------------------------------------- 1 | #import "ReactNativeNavigation/Number.h" 2 | #import 3 | 4 | @interface NumberParser : NSObject 5 | 6 | + (Number *)parse:(NSDictionary *)json key:(NSString *)key; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/NumberParser.mm: -------------------------------------------------------------------------------- 1 | #import "NumberParser.h" 2 | #import "NullNumber.h" 3 | 4 | @implementation NumberParser 5 | 6 | + (Number *)parse:(NSDictionary *)json key:(NSString *)key { 7 | return json[key] ? [[Number alloc] initWithValue:json[key]] : [NullNumber new]; 8 | } 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/OptionsArrayParser.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface OptionsArrayParser : NSObject 4 | 5 | + (NSArray *)parse:(NSDictionary *)json key:(NSString *)key ofClass:(Class)className; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /lib/ios/Param.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface Param : NSObject 4 | 5 | + (instancetype)withValue:(id)value; 6 | 7 | - (instancetype)initWithValue:(id)value; 8 | 9 | - (id)get; 10 | 11 | - (id)withDefault:(id)defaultValue; 12 | 13 | - (BOOL)hasValue; 14 | 15 | - (void)consume; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /lib/ios/RCTConvert+Interpolation.h: -------------------------------------------------------------------------------- 1 | #import "Interpolator.h" 2 | #import 3 | 4 | @interface RCTConvert (Interpolation) 5 | 6 | + (id)Interpolator:(id)json; 7 | 8 | + (id)interpolatorFromJson:(id)json; 9 | 10 | + (id)defaultInterpolator; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RCTConvert+SideMenuOpenGestureMode.h: -------------------------------------------------------------------------------- 1 | #import "MMDrawerController.h" 2 | #import 3 | 4 | @interface RCTConvert (SideMenuOpenGestureMode) 5 | 6 | + (MMOpenDrawerGestureMode)MMOpenDrawerGestureMode:(id)json; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/RCTConvert+SideMenuOpenGestureMode.mm: -------------------------------------------------------------------------------- 1 | #import "RCTConvert+SideMenuOpenGestureMode.h" 2 | 3 | @implementation RCTConvert (SideMenuOpenGestureMode) 4 | 5 | RCT_ENUM_CONVERTER(MMOpenDrawerGestureMode, (@{ 6 | @"entireScreen" : @(MMOpenDrawerGestureModeAll), 7 | @"bezel" : @(MMOpenDrawerGestureModeBezelPanningCenterView), 8 | }), 9 | MMOpenDrawerGestureModeAll, integerValue) 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RCTConvert+UIBarButtonSystemItem.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface RCTConvert (UIBarButtonSystemItem) 5 | 6 | + (UIBarButtonSystemItem)UIBarButtonSystemItem:(id)json; 7 | 8 | @end -------------------------------------------------------------------------------- /lib/ios/RCTConvert+UIFontWeight.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface RCTConvert (UIFontWeight) 5 | 6 | + (UIFontWeight)UIFontWeight:(id)json; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/RNNBackgroundOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNComponentOptions.h" 2 | #import "RNNOptions.h" 3 | 4 | @interface RNNBackgroundOptions : RNNOptions 5 | 6 | @property(nonatomic, strong) Color *color; 7 | @property(nonatomic, strong) Bool *translucent; 8 | @property(nonatomic, strong) Bool *blur; 9 | @property(nonatomic, strong) Bool *clipToBounds; 10 | @property(nonatomic, strong) RNNComponentOptions *component; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNBottomTabsPresenter.h: -------------------------------------------------------------------------------- 1 | #import "BottomTabsBasePresenter.h" 2 | 3 | @interface RNNBottomTabsPresenter : BottomTabsBasePresenter 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/RNNBridgeEventEmitter.h: -------------------------------------------------------------------------------- 1 | #import "RNNEventEmitter.h" 2 | 3 | @interface RNNBridgeEventEmitter : RNNEventEmitter 4 | @end 5 | -------------------------------------------------------------------------------- /lib/ios/RNNBridgeEventEmitter.mm: -------------------------------------------------------------------------------- 1 | #import "RNNBridgeEventEmitter.h" 2 | 3 | @implementation RNNBridgeEventEmitter {} 4 | 5 | RCT_EXPORT_MODULE() 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /lib/ios/RNNBridgeModule.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | 5 | #import "RNNCommandsHandler.h" 6 | 7 | @interface RNNBridgeModule : NSObject 8 | 9 | - (instancetype)initWithCommandsHandler:(RNNCommandsHandler *)commandsHandler; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RNNButtonsParser.h: -------------------------------------------------------------------------------- 1 | #import "RNNButtonOptions.h" 2 | #import 3 | 4 | @interface RNNButtonsParser : NSObject 5 | 6 | + (NSArray *)parse:(NSDictionary *)buttonsDictionary; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/RNNComponentOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface RNNComponentOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) Text *name; 6 | @property(nonatomic, strong) Text *componentId; 7 | @property(nonatomic, strong) Text *alignment; 8 | @property(nonatomic, strong) Bool *waitForRender; 9 | 10 | - (BOOL)hasValue; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNComponentRootView.h: -------------------------------------------------------------------------------- 1 | #import "RNNReactView.h" 2 | 3 | @interface RNNComponentRootView : RNNReactView 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/RNNComponentView.h: -------------------------------------------------------------------------------- 1 | #import "RNNReactView.h" 2 | 3 | @interface RNNComponentView : RNNReactView 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/RNNComponentView.mm: -------------------------------------------------------------------------------- 1 | #import "RNNComponentView.h" 2 | 3 | @implementation RNNComponentView { 4 | } 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/RNNConvert.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface RNNConvert : NSObject 5 | 6 | + (UIModalPresentationStyle)UIModalPresentationStyle:(id)json; 7 | 8 | + (UIModalTransitionStyle)UIModalTransitionStyle:(id)json; 9 | 10 | + (UIBarStyle)UIBarStyle:(id)json; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNDefaultOptionsHelper.h: -------------------------------------------------------------------------------- 1 | #import "RNNLayoutProtocol.h" 2 | #import 3 | 4 | @interface RNNDefaultOptionsHelper : NSObject 5 | 6 | + (void)recursivelySetDefaultOptions:(RNNNavigationOptions *)defaultOptions 7 | onRootViewController:(UIViewController *)rootViewController; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/RNNDictionary.h: -------------------------------------------------------------------------------- 1 | #import "Param.h" 2 | 3 | @interface RNNDictionary : Param 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/RNNDictionary.mm: -------------------------------------------------------------------------------- 1 | #import "RNNDictionary.h" 2 | 3 | @interface RNNDictionary () 4 | 5 | @property(nonatomic, retain) NSDictionary *value; 6 | 7 | @end 8 | 9 | @implementation RNNDictionary 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RNNDynamicIconCreator.h: -------------------------------------------------------------------------------- 1 | #import "RNNBaseIconCreator.h" 2 | #import 3 | 4 | @interface RNNDynamicIconCreator : RNNBaseIconCreator 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/RNNElement.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface RNNElement : RCTViewManager 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/RNNElementFinder.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @class RNNReactView; 4 | 5 | @interface RNNElementFinder : NSObject 6 | 7 | + (UIView *)findElementForId:(NSString *)elementId inView:(UIView *)view; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/RNNElementView.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface RNNElementView : NSObject 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/RNNElementView.mm: -------------------------------------------------------------------------------- 1 | #import "RNNElementView.h" 2 | 3 | @implementation RNNElementView 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/RNNErrorHandler.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | typedef enum RNNCommandsErrorCodes { RNNCommandErrorCodeNoStack = 0 } RNNCommandsErrorCodes; 5 | 6 | @interface RNNErrorHandler : NSObject 7 | 8 | + (void)reject:(RCTPromiseRejectBlock)reject 9 | withErrorCode:(NSInteger)errorCode 10 | errorDescription:(NSString *)errorDescription; 11 | + (NSString *)getCallerFunctionName; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /lib/ios/RNNIconCreator.h: -------------------------------------------------------------------------------- 1 | #import "RNNBaseIconCreator.h" 2 | #import "RNNButtonOptions.h" 3 | #import "RNNIconDrawer.h" 4 | #import 5 | 6 | @interface RNNIconCreator : RNNBaseIconCreator 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/RNNIconDrawer.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface RNNIconDrawer : NSObject 4 | 5 | - (UIImage *)draw:(UIImage *)image 6 | imageColor:(UIColor *)imageColor 7 | backgroundColor:(UIColor *)color 8 | size:(CGSize)size 9 | cornerRadius:(CGFloat)cornerRadius; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RNNLargeTitleOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNComponentOptions.h" 2 | #import "RNNOptions.h" 3 | 4 | @interface RNNLargeTitleOptions : RNNOptions 5 | 6 | @property(nonatomic, strong) Number *fontSize; 7 | @property(nonatomic, strong) Bool *visible; 8 | @property(nonatomic, strong) Color *color; 9 | @property(nonatomic, strong) Text *fontFamily; 10 | @property(nonatomic, strong) Text *fontWeight; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNLayoutInfo.h: -------------------------------------------------------------------------------- 1 | #import "RNNLayoutNode.h" 2 | #import 3 | 4 | @interface RNNLayoutInfo : NSObject 5 | 6 | - (instancetype)initWithNode:(RNNLayoutNode *)node; 7 | 8 | @property(nonatomic, strong) NSString *componentId; 9 | @property(nonatomic, strong) NSString *name; 10 | @property(nonatomic, strong) NSDictionary *props; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNLayoutInfo.mm: -------------------------------------------------------------------------------- 1 | #import "RNNLayoutInfo.h" 2 | 3 | @implementation RNNLayoutInfo 4 | 5 | - (instancetype)initWithNode:(RNNLayoutNode *)node { 6 | self = [super init]; 7 | 8 | self.componentId = node.nodeId; 9 | self.name = node.data[@"name"]; 10 | self.props = node.data[@"passProps"]; 11 | 12 | return self; 13 | } 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /lib/ios/RNNLayoutManager.h: -------------------------------------------------------------------------------- 1 | 2 | #import 3 | #import 4 | 5 | @interface RNNLayoutManager : NSObject 6 | 7 | - (void)addPendingViewController:(UIViewController *)vc; 8 | - (void)removePendingViewController:(UIViewController *)vc; 9 | 10 | - (UIViewController *)findComponentForId:(NSString *)componentId; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNLeafProtocol.h: -------------------------------------------------------------------------------- 1 | 2 | @protocol RNNLeafProtocol 3 | 4 | - (void)bindViewController:(UIViewController *)viewController; 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/RNNModalHostViewManagerHandler.h: -------------------------------------------------------------------------------- 1 | #import "RNNModalManager.h" 2 | #import 3 | #import 4 | 5 | @interface RNNModalHostViewManagerHandler : NSObject 6 | 7 | - (instancetype)initWithModalManager:(RNNModalManager *)modalManager; 8 | 9 | - (void)connectModalHostViewManager:(RCTModalHostViewManager *)modalHostViewManager; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RNNModalOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface RNNModalOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) Bool *swipeToDismiss; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /lib/ios/RNNOverlayOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface RNNOverlayOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) Bool *interceptTouchOutside; 6 | @property(nonatomic, strong) Bool *handleKeyboardEvents; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/RNNOverlayWindow.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface RNNOverlayWindow : UIWindow 4 | @property(nonatomic, weak) UIWindow *previousWindow; 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/RNNPreviewOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface RNNPreviewOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) Number *reactTag; 6 | @property(nonatomic, strong) Number *width; 7 | @property(nonatomic, strong) Number *height; 8 | @property(nonatomic, strong) Bool *commit; 9 | @property(nonatomic, strong) NSArray *actions; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RNNPushAnimation.h: -------------------------------------------------------------------------------- 1 | #import "RNNScreenTransition.h" 2 | #import 3 | #import 4 | 5 | @interface RNNPushAnimation : NSObject 6 | 7 | @property(nonatomic, strong) RNNScreenTransition *screenTransition; 8 | 9 | - (instancetype)initWithScreenTransition:(RNNScreenTransition *)screenTransition; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RNNReactBackgroundView.h: -------------------------------------------------------------------------------- 1 | #import "RNNComponentView.h" 2 | 3 | @interface RNNReactBackgroundView : RNNComponentView 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/RNNReactBackgroundView.mm: -------------------------------------------------------------------------------- 1 | #import "RNNReactBackgroundView.h" 2 | 3 | @implementation RNNReactBackgroundView 4 | 5 | - (NSString *)componentType { 6 | return ComponentTypeBackground; 7 | } 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/RNNReactButtonView.h: -------------------------------------------------------------------------------- 1 | #import "RNNComponentView.h" 2 | #import 3 | #import 4 | #import 5 | #import 6 | 7 | @interface RNNReactButtonView : RNNComponentView 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/RNNReactTitleView.h: -------------------------------------------------------------------------------- 1 | #import "RNNComponentView.h" 2 | 3 | @interface RNNReactTitleView : RNNComponentView 4 | 5 | - (void)setAlignment:(NSString *)alignment inFrame:(CGRect)frame; 6 | 7 | @property(nonatomic, copy) void (^rootViewDidChangeIntrinsicSize)(CGSize intrinsicSize); 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/RNNScrollEdgeAppearanceBackgroundOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNBackgroundOptions.h" 2 | #import "RNNComponentOptions.h" 3 | #import "RNNOptions.h" 4 | 5 | @interface RNNScrollEdgeAppearanceBackgroundOptions : RNNOptions 6 | 7 | @property(nonatomic, strong) Color *color; 8 | @property(nonatomic, strong) Bool *translucent; 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /lib/ios/RNNScrollEdgeAppearanceOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNComponentOptions.h" 2 | #import "RNNOptions.h" 3 | #import "RNNScrollEdgeAppearanceBackgroundOptions.h" 4 | 5 | @interface RNNScrollEdgeAppearanceOptions : RNNOptions 6 | 7 | @property(nonatomic, strong) RNNScrollEdgeAppearanceBackgroundOptions *background; 8 | @property(nonatomic, strong) Bool *active; 9 | @property(nonatomic, strong) Bool *noBorder; 10 | @property(nonatomic, strong) Color *borderColor; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNSegmentedControl.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface RNNSegmentedControl : HMSegmentedControl 5 | 6 | - (void)setTitle:(NSString *)title atIndex:(NSUInteger)index; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/RNNSegmentedControl.mm: -------------------------------------------------------------------------------- 1 | #import "RNNSegmentedControl.h" 2 | 3 | @implementation RNNSegmentedControl 4 | 5 | - (void)setTitle:(NSString *)title atIndex:(NSUInteger)index { 6 | NSMutableArray *mutableTitles = [[NSMutableArray alloc] initWithArray:self.sectionTitles]; 7 | [mutableTitles setObject:title atIndexedSubscript:index]; 8 | [self setSectionTitles:mutableTitles]; 9 | } 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RNNSetRootAnimator.h: -------------------------------------------------------------------------------- 1 | #import "TransitionOptions.h" 2 | #import 3 | 4 | typedef void (^RNNAnimationEndedBlock)(void); 5 | 6 | @interface RNNSetRootAnimator : NSObject 7 | 8 | - (void)animate:(UIWindow *)window 9 | duration:(CGFloat)duration 10 | completion:(RNNAnimationEndedBlock)completion; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNShadowOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface RNNShadowOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) Color *color; 6 | @property(nonatomic, strong) Number *radius; 7 | @property(nonatomic, strong) Number *opacity; 8 | 9 | - (BOOL)hasValue; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RNNSharedElementAnimationOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface RNNSharedElementAnimationOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) NSArray *animations; 6 | @property(nonatomic, strong) NSNumber *duration; 7 | @property(nonatomic, strong) NSNumber *springDamping; 8 | @property(nonatomic, strong) NSNumber *springVelocity; 9 | 10 | - (BOOL)hasValue; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNSideMenuOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | #import "RNNSideMenuSideOptions.h" 3 | #import "SideMenuOpenMode.h" 4 | 5 | @interface RNNSideMenuOptions : RNNOptions 6 | 7 | @property(nonatomic, strong) RNNSideMenuSideOptions *left; 8 | @property(nonatomic, strong) RNNSideMenuSideOptions *right; 9 | 10 | @property(nonatomic, strong) Text *animationType; 11 | @property(nonatomic, strong) SideMenuOpenMode *openGestureMode; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /lib/ios/RNNSideMenuPresenter.h: -------------------------------------------------------------------------------- 1 | #import "RNNBasePresenter.h" 2 | 3 | @interface RNNSideMenuPresenter : RNNBasePresenter 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/RNNSideMenuSideOptions.h: -------------------------------------------------------------------------------- 1 | #import "MMDrawerController.h" 2 | #import "RNNOptions.h" 3 | 4 | @interface RNNSideMenuSideOptions : RNNOptions 5 | 6 | @property(nonatomic, strong) Bool *visible; 7 | @property(nonatomic, strong) Bool *enabled; 8 | @property(nonatomic, strong) Double *width; 9 | @property(nonatomic, strong) Bool *shouldStretchDrawer; 10 | @property(nonatomic, strong) Double *animationVelocity; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNSplashScreenViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface RNNSplashScreenViewController : UIViewController 5 | 6 | + (void)showOnWindow:(UIWindow *)window; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/RNNSplitViewController.h: -------------------------------------------------------------------------------- 1 | #import "RNNLayoutProtocol.h" 2 | #import "RNNSplitViewControllerPresenter.h" 3 | #import 4 | 5 | @interface RNNSplitViewController : UISplitViewController 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /lib/ios/RNNSplitViewControllerPresenter.h: -------------------------------------------------------------------------------- 1 | #import "RNNBasePresenter.h" 2 | 3 | @interface RNNSplitViewControllerPresenter : RNNBasePresenter 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/RNNSplitViewOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface RNNSplitViewOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) NSString *displayMode; 6 | @property(nonatomic, strong) NSString *primaryEdge; 7 | @property(nonatomic, strong) Number *minWidth; 8 | @property(nonatomic, strong) Number *maxWidth; 9 | @property(nonatomic, strong) NSString *primaryBackgroundStyle; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RNNStackController.h: -------------------------------------------------------------------------------- 1 | #import "RNNStackPresenter.h" 2 | #import "UINavigationController+RNNCommands.h" 3 | #import "UINavigationController+RNNOptions.h" 4 | #import "UIViewController+LayoutProtocol.h" 5 | #import 6 | 7 | @interface RNNStackController : UINavigationController 8 | 9 | @property(nonatomic, retain) RNNStackPresenter *presenter; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RNNStatusBarOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | extern const NSInteger BLUR_STATUS_TAG; 4 | 5 | @interface RNNStatusBarOptions : RNNOptions 6 | 7 | @property(nonatomic, strong) Bool *blur; 8 | @property(nonatomic, strong) Bool *hideWithTopBar; 9 | @property(nonatomic, strong) Text *style; 10 | @property(nonatomic, strong) Bool *visible; 11 | @property(nonatomic, strong) Bool *animate; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /lib/ios/RNNSubtitleOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface RNNSubtitleOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) Text *text; 6 | @property(nonatomic, strong) Number *fontSize; 7 | @property(nonatomic, strong) Color *color; 8 | @property(nonatomic, strong) Text *fontFamily; 9 | @property(nonatomic, strong) Text *fontWeight; 10 | @property(nonatomic, strong) Text *alignment; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNTopTabOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface RNNTopTabOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) NSString *title; 6 | @property(nonatomic, strong) NSString *titleFontFamily; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/RNNTopTabOptions.mm: -------------------------------------------------------------------------------- 1 | #import "RNNTopTabOptions.h" 2 | 3 | @implementation RNNTopTabOptions 4 | 5 | //- (void)applyOn:(RNNRootViewController *)viewController { 6 | // if (self.title) { 7 | // [viewController.topTabsViewController viewController:viewController 8 | // changedTitle:self.title]; 9 | // } 10 | //} 11 | 12 | - (void)mergeOptions:(RNNTopTabOptions *)options { 13 | } 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /lib/ios/RNNTopTabsOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface RNNTopTabsOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) Color *backgroundColor; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /lib/ios/RNNTopTabsOptions.mm: -------------------------------------------------------------------------------- 1 | #import "RNNTopTabsOptions.h" 2 | #import "RNNTopTabsViewController.h" 3 | 4 | @implementation RNNTopTabsOptions 5 | 6 | - (void)mergeOptions:(RNNTopTabsOptions *)options { 7 | if (options.backgroundColor.hasValue) 8 | self.backgroundColor = options.backgroundColor; 9 | } 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/RNNTopTabsViewController.h: -------------------------------------------------------------------------------- 1 | #import "RNNLayoutProtocol.h" 2 | #import 3 | 4 | @interface RNNTopTabsViewController : UIViewController 5 | 6 | @property(nonatomic, retain) UIView *contentView; 7 | 8 | - (void)setViewControllers:(NSArray *)viewControllers; 9 | - (void)viewController:(UIViewController *)vc changedTitle:(NSString *)title; 10 | - (instancetype)init; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/RNNUIBarBackButtonItem.h: -------------------------------------------------------------------------------- 1 | #import "RNNBackButtonOptions.h" 2 | 3 | @interface RNNUIBarBackButtonItem : UIBarButtonItem 4 | - (instancetype)initWithOptions:(RNNBackButtonOptions *)options; 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/RotationTransition.h: -------------------------------------------------------------------------------- 1 | #import "FloatTransition.h" 2 | 3 | @interface RotationTransition : FloatTransition 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/ScreenReversedAnimationController.h: -------------------------------------------------------------------------------- 1 | #import "ScreenAnimationController.h" 2 | 3 | @interface ScreenReversedAnimationController : ScreenAnimationController 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/SideMenuOpenGestureModeParser.h: -------------------------------------------------------------------------------- 1 | #import "SideMenuOpenMode.h" 2 | #import 3 | 4 | @interface SideMenuOpenGestureModeParser : NSObject 5 | 6 | + (SideMenuOpenMode *)parse:(NSDictionary *)json key:(NSString *)key; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/SideMenuOpenMode.h: -------------------------------------------------------------------------------- 1 | #import "ReactNativeNavigation/Number.h" 2 | 3 | @interface SideMenuOpenMode : Number 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/SideMenuOpenMode.mm: -------------------------------------------------------------------------------- 1 | #import "SideMenuOpenMode.h" 2 | 3 | @implementation SideMenuOpenMode 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/TabBarItemAppearanceCreator.h: -------------------------------------------------------------------------------- 1 | #import "RNNTabBarItemCreator.h" 2 | 3 | API_AVAILABLE(ios(13.0)) 4 | @interface TabBarItemAppearanceCreator : RNNTabBarItemCreator 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/TabBarItemIOS15Creator.h: -------------------------------------------------------------------------------- 1 | #import "TabBarItemAppearanceCreator.h" 2 | 3 | API_AVAILABLE(ios(15.0)) 4 | @interface TabBarItemIOS15Creator : TabBarItemAppearanceCreator 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/Text.h: -------------------------------------------------------------------------------- 1 | #import "Param.h" 2 | 3 | @interface Text : Param 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/Text.mm: -------------------------------------------------------------------------------- 1 | #import "Text.h" 2 | 3 | @interface Text () 4 | 5 | @property(nonatomic, retain) NSString *value; 6 | 7 | @end 8 | 9 | @implementation Text 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/TextParser.h: -------------------------------------------------------------------------------- 1 | #import "Text.h" 2 | #import 3 | 4 | @interface TextParser : NSObject 5 | 6 | + (Text *)parse:(NSDictionary *)json key:(NSString *)key; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/TextParser.mm: -------------------------------------------------------------------------------- 1 | #import "TextParser.h" 2 | #import "NullText.h" 3 | #import 4 | 5 | @implementation TextParser 6 | 7 | + (Text *)parse:(NSDictionary *)json key:(NSString *)key { 8 | return json[key] ? [[Text alloc] initWithValue:json[key]] : [NullText new]; 9 | } 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/TimeInterval.h: -------------------------------------------------------------------------------- 1 | #import "Double.h" 2 | 3 | @interface TimeInterval : Double 4 | 5 | - (NSTimeInterval)get; 6 | 7 | - (NSTimeInterval)withDefault:(double)defaultValue; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/TimeInterval.mm: -------------------------------------------------------------------------------- 1 | #import "TimeInterval.h" 2 | 3 | @implementation TimeInterval 4 | 5 | - (NSTimeInterval)withDefault:(double)defaultValue { 6 | return [super withDefault:defaultValue] / 1000; 7 | } 8 | 9 | - (NSTimeInterval)get { 10 | return [super get] / 1000; 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /lib/ios/TimeIntervalParser.h: -------------------------------------------------------------------------------- 1 | #import "TimeInterval.h" 2 | #import 3 | 4 | @interface TimeIntervalParser : NSObject 5 | 6 | + (TimeInterval *)parse:(NSDictionary *)json key:(NSString *)key; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/TimeIntervalParser.mm: -------------------------------------------------------------------------------- 1 | #import "TimeIntervalParser.h" 2 | 3 | @implementation TimeIntervalParser 4 | 5 | + (TimeInterval *)parse:(NSDictionary *)json key:(NSString *)key { 6 | return [[TimeInterval alloc] initWithValue:json[key]]; 7 | } 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/TopBarAppearancePresenter.h: -------------------------------------------------------------------------------- 1 | #import "TopBarPresenter.h" 2 | #import 3 | 4 | API_AVAILABLE(ios(13.0)) 5 | @interface TopBarAppearancePresenter : TopBarPresenter 6 | 7 | @property(nonatomic, strong) UIColor *borderColor; 8 | @property(nonatomic) BOOL showBorder; 9 | @property(nonatomic, strong) UIColor *scrollEdgeBorderColor; 10 | @property(nonatomic) BOOL showScrollEdgeBorder; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/TopBarPresenterCreator.h: -------------------------------------------------------------------------------- 1 | #import "TopBarPresenter.h" 2 | #import 3 | 4 | @interface TopBarPresenterCreator : NSObject 5 | 6 | + (TopBarPresenter *)createWithBoundedNavigationController: 7 | (UINavigationController *)navigationController; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/TransformRectTransition.h: -------------------------------------------------------------------------------- 1 | #import "RectTransition.h" 2 | 3 | @interface TransformRectTransition : RectTransition 4 | 5 | - (instancetype)initWithView:(UIView *)view 6 | from:(CATransform3D)from 7 | to:(CATransform3D)to 8 | startDelay:(NSTimeInterval)startDelay 9 | duration:(NSTimeInterval)duration 10 | interpolator:(id)interpolator; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/Transition.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface Transition : NSObject 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/Transition.mm: -------------------------------------------------------------------------------- 1 | #import "Transition.h" 2 | 3 | @implementation Transition 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/TransitionDetailsOptions.h: -------------------------------------------------------------------------------- 1 | #import "Interpolator.h" 2 | #import "RNNOptions.h" 3 | 4 | @interface TransitionDetailsOptions : RNNOptions 5 | 6 | @property(nonatomic, strong) Double *from; 7 | @property(nonatomic, strong) Double *to; 8 | @property(nonatomic, strong) TimeInterval *duration; 9 | @property(nonatomic, strong) TimeInterval *startDelay; 10 | @property(nonatomic, strong) id interpolator; 11 | 12 | - (BOOL)hasAnimation; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /lib/ios/TurboModules/RNNTurboCommandsHandler.h: -------------------------------------------------------------------------------- 1 | #ifndef RNNTurboCommandsHandler_h 2 | #define RNNTurboCommandsHandler_h 3 | 4 | @class RNNCommandsHandler; 5 | 6 | @interface RNNTurboCommandsHandler : NSObject 7 | 8 | +(RNNCommandsHandler *) sharedInstance; 9 | +(void)setSharedInstance:(RNNCommandsHandler *) shared; 10 | 11 | @end 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /lib/ios/TurboModules/RNNTurboCommandsHandler.mm: -------------------------------------------------------------------------------- 1 | #import 2 | #import "RNNTurboCommandsHandler.h" 3 | 4 | static RNNCommandsHandler *_sharedCommandsHandler = nil; 5 | 6 | @implementation RNNTurboCommandsHandler 7 | 8 | + (void)setSharedInstance:(RNNCommandsHandler *)shared { 9 | _sharedCommandsHandler = shared; 10 | } 11 | 12 | + (RNNCommandsHandler *)sharedInstance { 13 | return _sharedCommandsHandler; 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /lib/ios/TurboModules/RNNTurboEventEmitter.h: -------------------------------------------------------------------------------- 1 | #ifdef RCT_NEW_ARCH_ENABLED 2 | #import "RNNEventEmitter.h" 3 | #import 4 | 5 | @class RCTHost; 6 | 7 | @interface RNNTurboEventEmitter : RNNEventEmitter 8 | 9 | - (void)setHost:(RCTHost *)host; 10 | 11 | @property(nonatomic, strong, readonly) RCTHost *host; 12 | 13 | @end 14 | #endif 15 | -------------------------------------------------------------------------------- /lib/ios/TurboModules/RNNTurboModule.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifdef RCT_NEW_ARCH_ENABLED 3 | #import "RNNCommandsHandler.h" 4 | #import 5 | 6 | @interface RNNTurboModule : NSObject 7 | @end 8 | #endif 9 | -------------------------------------------------------------------------------- /lib/ios/UIImage+utils.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface UIImage (utils) 4 | 5 | - (UIImage *)withTintColor:(UIColor *)color; 6 | 7 | + (UIImage *)imageWithSize:(CGSize)size color:(UIColor *)color; 8 | 9 | - (UIImage *)imageWithInsets:(UIEdgeInsets)insets; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /lib/ios/UISplitViewController+RNNOptions.h: -------------------------------------------------------------------------------- 1 | #import "ReactNativeNavigation/Number.h" 2 | #import 3 | 4 | @interface UISplitViewController (RNNOptions) 5 | 6 | - (void)rnn_setDisplayMode:(NSString *)displayMode; 7 | 8 | - (void)rnn_setPrimaryEdge:(NSString *)primaryEdge; 9 | 10 | - (void)rnn_setMinWidth:(Number *)minWidth; 11 | 12 | - (void)rnn_setMaxWidth:(Number *)maxWidth; 13 | 14 | - (void)rnn_setPrimaryBackgroundStyle:(NSString *)style; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /lib/ios/UITabBar+utils.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface UITabBar (utils) 4 | 5 | - (UIView *)tabBarItemViewAtIndex:(NSUInteger)index; 6 | 7 | - (void)centerTabItems; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/UIViewController+SideMenuController.h: -------------------------------------------------------------------------------- 1 | #import "RNNSideMenuViewController.h" 2 | #import 3 | 4 | @interface UIViewController (SideMenuController) 5 | 6 | - (RNNSideMenuViewController *)sideMenuController; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/UIViewController+SideMenuViewController.h: -------------------------------------------------------------------------------- 1 | #import "RNNSideMenuViewController.h" 2 | #import 3 | 4 | @interface UIViewController (RNNSideMenuViewController) 5 | 6 | - (RNNSideMenuViewController *)sideMenuController; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /lib/ios/Utils/UIColor+RNNUtils.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface UIColor (RNNUtils) 4 | - (NSString *)toHex; 5 | - (BOOL)isTransparent; 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/Utils/UITabBarController+RNNUtils.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface UITabBarController (RNNUtils) 5 | 6 | - (UIView *)getTabView:(int)tabIndex; 7 | 8 | - (UIView *)getTabIcon:(int)tabIndex; 9 | 10 | - (NSArray *)deselectedViewControllers; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /lib/ios/Utils/UIView+Utils.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | typedef NS_ENUM(NSInteger, ViewType) { 5 | ViewTypeImage, 6 | ViewTypeUIImage, 7 | ViewTypeText, 8 | ViewTypeOther 9 | }; 10 | 11 | @interface UIView (Utils) 12 | 13 | - (UIView *)findChildByClass:clazz; 14 | 15 | - (ViewType)viewType; 16 | 17 | - (void)stopMomentumScrollViews; 18 | 19 | - (void)setCornerRadius:(CGFloat)cornerRadius; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /lib/ios/Utils/UIViewController+Utils.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface UIViewController (Utils) 5 | 6 | - (void)forEachChild:(void (^)(UIViewController *child))perform; 7 | - (BOOL)isLastInStack; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /lib/ios/Utils/UIViewController+Utils.mm: -------------------------------------------------------------------------------- 1 | #import "UIViewController+Utils.h" 2 | 3 | @implementation UIViewController (Utils) 4 | 5 | - (void)forEachChild:(void (^)(UIViewController *child))perform { 6 | for (UIViewController *child in [self childViewControllers]) { 7 | perform(child); 8 | } 9 | } 10 | 11 | - (BOOL)isLastInStack { 12 | return self.navigationController.childViewControllers.lastObject == self; 13 | } 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /lib/ios/VerticalRotationTransition.h: -------------------------------------------------------------------------------- 1 | #import "FloatTransition.h" 2 | 3 | @interface VerticalRotationTransition : FloatTransition 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /lib/ios/VerticalScaleTransition.h: -------------------------------------------------------------------------------- 1 | #import "FloatTransition.h" 2 | #import 3 | 4 | @interface VerticalScaleTransition : FloatTransition 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/VerticalTranslationTransition.h: -------------------------------------------------------------------------------- 1 | #import "FloatTransition.h" 2 | #import 3 | 4 | @interface VerticalTranslationTransition : FloatTransition 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /lib/ios/WindowOptions.h: -------------------------------------------------------------------------------- 1 | #import "RNNOptions.h" 2 | 3 | @interface WindowOptions : RNNOptions 4 | 5 | @property(nonatomic, strong) Color *backgroundColor; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /lib/ios/libOCMock.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/lib/ios/libOCMock.a -------------------------------------------------------------------------------- /lib/src/adapters/AppRegistryService.ts: -------------------------------------------------------------------------------- 1 | import { ComponentProvider, AppRegistry } from 'react-native'; 2 | 3 | export class AppRegistryService { 4 | registerComponent(appKey: string, getComponentFunc: ComponentProvider) { 5 | AppRegistry.registerComponent(appKey, getComponentFunc); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /lib/src/adapters/AssetResolver.ts: -------------------------------------------------------------------------------- 1 | import { Image, ImageSourcePropType } from 'react-native'; 2 | 3 | export class AssetService { 4 | resolveFromRequire(value: ImageSourcePropType) { 5 | return Image.resolveAssetSource(value); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /lib/src/adapters/ColorService.ts: -------------------------------------------------------------------------------- 1 | import { processColor } from 'react-native'; 2 | 3 | export class ColorService { 4 | toNativeColor(inputColor: string) { 5 | return processColor(inputColor); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /lib/src/adapters/NativeEventsReceiver.mock.ts: -------------------------------------------------------------------------------- 1 | export const { NativeEventsReceiver } = jest.genMockFromModule( 2 | './NativeEventsReceiver' 3 | ) as typeof import('./NativeEventsReceiver'); 4 | -------------------------------------------------------------------------------- /lib/src/adapters/NativeRNNTurboEventEmitter.ts: -------------------------------------------------------------------------------- 1 | import { TurboModule, TurboModuleRegistry, NativeModule } from 'react-native'; 2 | 3 | export interface Spec extends TurboModule { 4 | addListener: (eventType: string) => void; 5 | removeListeners: (count: number) => void; 6 | } 7 | 8 | let eventEmitter: Spec | null; 9 | eventEmitter = TurboModuleRegistry.get('RNNTurboEventEmitter'); 10 | 11 | 12 | export default eventEmitter as NativeModule; 13 | -------------------------------------------------------------------------------- /lib/src/adapters/UniqueIdProvider.ts: -------------------------------------------------------------------------------- 1 | import uniqueId from 'lodash/uniqueId'; 2 | 3 | export class UniqueIdProvider { 4 | generate(prefix?: string): string { 5 | return uniqueId(prefix); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /lib/src/commands/LayoutType.test.ts: -------------------------------------------------------------------------------- 1 | import { LayoutType } from './LayoutType'; 2 | 3 | describe('LayoutType', () => { 4 | it('is an enum', () => { 5 | expect(LayoutType.Component).toEqual('Component'); 6 | expect(LayoutType.Stack).toEqual('Stack'); 7 | 8 | const name = 'Stack'; 9 | expect(LayoutType[name]).toEqual(LayoutType.Stack); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /lib/src/commands/LayoutType.ts: -------------------------------------------------------------------------------- 1 | export enum LayoutType { 2 | Component = 'Component', 3 | Stack = 'Stack', 4 | BottomTabs = 'BottomTabs', 5 | SideMenuRoot = 'SideMenuRoot', 6 | SideMenuCenter = 'SideMenuCenter', 7 | SideMenuLeft = 'SideMenuLeft', 8 | SideMenuRight = 'SideMenuRight', 9 | TopTabs = 'TopTabs', 10 | ExternalComponent = 'ExternalComponent', 11 | SplitView = 'SplitView', 12 | } 13 | -------------------------------------------------------------------------------- /lib/src/interfaces/EventSubscription.ts: -------------------------------------------------------------------------------- 1 | export interface EventSubscription { 2 | remove(): void; 3 | } 4 | -------------------------------------------------------------------------------- /lib/src/interfaces/Events.ts: -------------------------------------------------------------------------------- 1 | export interface CommandCompletedEvent { 2 | commandName: string; 3 | commandId: string; 4 | completionTime: number; 5 | } 6 | 7 | export interface BottomTabSelectedEvent { 8 | selectedTabIndex: number; 9 | unselectedTabIndex: number; 10 | } 11 | 12 | export interface BottomTabLongPressedEvent { 13 | selectedTabIndex: number; 14 | } 15 | 16 | export interface BottomTabPressedEvent { 17 | tabIndex: number; 18 | } 19 | -------------------------------------------------------------------------------- /lib/src/interfaces/NavigationComponentProps.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @deprecated This type replaced with NavigationProps 3 | */ 4 | export interface NavigationComponentProps { 5 | componentId: string; 6 | } 7 | 8 | export interface NavigationProps { 9 | componentId: string; 10 | componentName: string; 11 | } 12 | -------------------------------------------------------------------------------- /lib/src/interfaces/NavigationFunctionComponent.ts: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { NavigationProps } from './NavigationComponentProps'; 3 | import { Options } from './Options'; 4 | 5 | export interface NavigationFunctionComponent 6 | extends React.FunctionComponent { 7 | options?: ((props: Props & NavigationProps) => Options) | Options; 8 | } 9 | -------------------------------------------------------------------------------- /lib/src/interfaces/ProcessorSubscription.ts: -------------------------------------------------------------------------------- 1 | export interface ProcessorSubscription { 2 | remove(): void; 3 | } 4 | -------------------------------------------------------------------------------- /lib/src/interfaces/Processors.ts: -------------------------------------------------------------------------------- 1 | import { Layout } from './Layout'; 2 | import { CommandName } from './CommandName'; 3 | 4 | export interface LayoutProcessor { 5 | (layout: Layout<{}>, commandName: CommandName): Layout<{}>; 6 | } 7 | 8 | export interface OptionsProcessor { 9 | (value: T, commandName: CommandName, props?: S): T; 10 | } 11 | -------------------------------------------------------------------------------- /lib/src/types.ts: -------------------------------------------------------------------------------- 1 | declare module 'react-lifecycles-compat' { 2 | import * as React from 'react'; 3 | 4 | export function polyfill(component: React.ComponentClass): void; 5 | } 6 | -------------------------------------------------------------------------------- /metro.config.js: -------------------------------------------------------------------------------- 1 | const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config'); 2 | 3 | const config = { 4 | projectRoot: `${__dirname}`, 5 | resolver: { 6 | enableGlobalPackages: true, 7 | }, 8 | watchFolders: [__dirname], 9 | }; 10 | 11 | module.exports = mergeConfig(getDefaultConfig(__dirname), config); 12 | -------------------------------------------------------------------------------- /playground/.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /playground/README.md: -------------------------------------------------------------------------------- 1 | # Navigation Playground 2 | 3 | A local example project using `react-native-navigation`. 4 | The target app for all e2e tests. 5 | -------------------------------------------------------------------------------- /playground/android/app/src/main/assets/fonts/Dosis-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/app/src/main/assets/fonts/Dosis-Regular.ttf -------------------------------------------------------------------------------- /playground/android/app/src/main/assets/fonts/HelveticaNeue-CondensedBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/app/src/main/assets/fonts/HelveticaNeue-CondensedBold.ttf -------------------------------------------------------------------------------- /playground/android/app/src/main/assets/fonts/HelveticaNeue-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/app/src/main/assets/fonts/HelveticaNeue-Italic.ttf -------------------------------------------------------------------------------- /playground/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /playground/android/app/src/main/res/values-night/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #BA292E 4 | #282528 5 | -------------------------------------------------------------------------------- /playground/android/app/src/main/res/values-notnight/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #000000 4 | #e8e8e8 5 | -------------------------------------------------------------------------------- /playground/android/app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /playground/android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #000000 4 | #e8e8e8 5 | -------------------------------------------------------------------------------- /playground/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Playground 3 | 4 | -------------------------------------------------------------------------------- /playground/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /playground/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /playground/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Jul 28 13:48:47 IDT 2022 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /playground/android/libs/blurview-1.6.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/libs/blurview-1.6.3.jar -------------------------------------------------------------------------------- /playground/android/libs/fbjni-java-only-0.0.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/libs/fbjni-java-only-0.0.3.jar -------------------------------------------------------------------------------- /playground/android/libs/proguard-annotations-1.14.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/libs/proguard-annotations-1.14.1.jar -------------------------------------------------------------------------------- /playground/android/playground.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/android/playground.keystore -------------------------------------------------------------------------------- /playground/img/1024.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/1024.jpeg -------------------------------------------------------------------------------- /playground/img/2048.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/2048.jpeg -------------------------------------------------------------------------------- /playground/img/400.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/400.jpeg -------------------------------------------------------------------------------- /playground/img/4096.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/4096.jpeg -------------------------------------------------------------------------------- /playground/img/Icon-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/Icon-87.png -------------------------------------------------------------------------------- /playground/img/cars/aventador.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/cars/aventador.jpg -------------------------------------------------------------------------------- /playground/img/cars/countach.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/cars/countach.jpg -------------------------------------------------------------------------------- /playground/img/cars/diablo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/cars/diablo.jpg -------------------------------------------------------------------------------- /playground/img/city.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/city.png -------------------------------------------------------------------------------- /playground/img/city2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/city2.jpeg -------------------------------------------------------------------------------- /playground/img/clear@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/clear@2x.png -------------------------------------------------------------------------------- /playground/img/clear@3x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/clear@3x.android.png -------------------------------------------------------------------------------- /playground/img/cocktails/bloodyMarry.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/cocktails/bloodyMarry.jpg -------------------------------------------------------------------------------- /playground/img/cocktails/cucumberBasilSmash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/cocktails/cucumberBasilSmash.jpg -------------------------------------------------------------------------------- /playground/img/cocktails/frenchMartini.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/cocktails/frenchMartini.jpg -------------------------------------------------------------------------------- /playground/img/cocktails/gimlet.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/cocktails/gimlet.jpg -------------------------------------------------------------------------------- /playground/img/cocktails/lastWord.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/cocktails/lastWord.jpg -------------------------------------------------------------------------------- /playground/img/cocktails/negroni.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/cocktails/negroni.jpg -------------------------------------------------------------------------------- /playground/img/colored_tab_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/colored_tab_icon@2x.png -------------------------------------------------------------------------------- /playground/img/colors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/colors.png -------------------------------------------------------------------------------- /playground/img/fff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/fff.png -------------------------------------------------------------------------------- /playground/img/gyro_header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/gyro_header.jpg -------------------------------------------------------------------------------- /playground/img/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/home.png -------------------------------------------------------------------------------- /playground/img/imageGallery/158xD4xbeh.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/158xD4xbeh.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/37r6Cqp1B8.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/37r6Cqp1B8.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/5Gi8kova3k.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/5Gi8kova3k.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/61mpAVRV73.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/61mpAVRV73.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/A4g0lZ33Z8.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/A4g0lZ33Z8.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/AdGXmD1CH6.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/AdGXmD1CH6.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/Cfw87359UT.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/Cfw87359UT.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/N30E32431C.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/N30E32431C.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/a848dHxA4e.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/a848dHxA4e.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/j51Pva1P8L.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/j51Pva1P8L.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/kVN0FryOZk.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/kVN0FryOZk.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/pqgylg80SD.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/pqgylg80SD.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/rVOcz7rd0z.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/rVOcz7rd0z.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/ri90ueind7.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/ri90ueind7.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/v8KLi2f0Tr.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/v8KLi2f0Tr.jpeg -------------------------------------------------------------------------------- /playground/img/imageGallery/xU42hx19BB.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/imageGallery/xU42hx19BB.jpeg -------------------------------------------------------------------------------- /playground/img/layouts@2x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/layouts@2x.android.png -------------------------------------------------------------------------------- /playground/img/layouts@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/layouts@2x.png -------------------------------------------------------------------------------- /playground/img/layouts_selected@2x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/layouts_selected@2x.android.png -------------------------------------------------------------------------------- /playground/img/layouts_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/layouts_selected@2x.png -------------------------------------------------------------------------------- /playground/img/list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/list.png -------------------------------------------------------------------------------- /playground/img/menu@2x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/menu@2x.android.png -------------------------------------------------------------------------------- /playground/img/menu@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/menu@2x.png -------------------------------------------------------------------------------- /playground/img/navicon_add@2x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/navicon_add@2x.android.png -------------------------------------------------------------------------------- /playground/img/navicon_add@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/navicon_add@2x.png -------------------------------------------------------------------------------- /playground/img/navicon_add@3x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/navicon_add@3x.android.png -------------------------------------------------------------------------------- /playground/img/navicon_edit@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/navicon_edit@2x.png -------------------------------------------------------------------------------- /playground/img/navigation@2x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/navigation@2x.android.png -------------------------------------------------------------------------------- /playground/img/navigation@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/navigation@2x.png -------------------------------------------------------------------------------- /playground/img/one@1.5x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/one@1.5x.android.png -------------------------------------------------------------------------------- /playground/img/one@1x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/one@1x.android.png -------------------------------------------------------------------------------- /playground/img/one@2x.ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/one@2x.ios.png -------------------------------------------------------------------------------- /playground/img/one@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/one@2x.png -------------------------------------------------------------------------------- /playground/img/one@3x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/one@3x.android.png -------------------------------------------------------------------------------- /playground/img/one@4x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/one@4x.android.png -------------------------------------------------------------------------------- /playground/img/one_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/one_selected@2x.png -------------------------------------------------------------------------------- /playground/img/options@2x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/options@2x.android.png -------------------------------------------------------------------------------- /playground/img/options@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/options@2x.png -------------------------------------------------------------------------------- /playground/img/options_selected@2x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/options_selected@2x.android.png -------------------------------------------------------------------------------- /playground/img/options_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/options_selected@2x.png -------------------------------------------------------------------------------- /playground/img/person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/person.png -------------------------------------------------------------------------------- /playground/img/plus@2x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/plus@2x.android.png -------------------------------------------------------------------------------- /playground/img/plus@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/plus@2x.png -------------------------------------------------------------------------------- /playground/img/sideMenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/sideMenu.png -------------------------------------------------------------------------------- /playground/img/star@2x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/star@2x.android.png -------------------------------------------------------------------------------- /playground/img/star@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/star@2x.png -------------------------------------------------------------------------------- /playground/img/three@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/three@2x.png -------------------------------------------------------------------------------- /playground/img/three_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/three_selected@2x.png -------------------------------------------------------------------------------- /playground/img/two@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/two@2x.png -------------------------------------------------------------------------------- /playground/img/two_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/two_selected@2x.png -------------------------------------------------------------------------------- /playground/img/whatshot@2x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/whatshot@2x.android.png -------------------------------------------------------------------------------- /playground/img/whatshot@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/whatshot@2x.png -------------------------------------------------------------------------------- /playground/img/x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/x.android.png -------------------------------------------------------------------------------- /playground/img/x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/x.png -------------------------------------------------------------------------------- /playground/img/x@1.5x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/x@1.5x.png -------------------------------------------------------------------------------- /playground/img/x@2x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/x@2x.android.png -------------------------------------------------------------------------------- /playground/img/x@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/x@2x.png -------------------------------------------------------------------------------- /playground/img/x@3x.android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/x@3x.android.png -------------------------------------------------------------------------------- /playground/img/x@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/x@3x.png -------------------------------------------------------------------------------- /playground/img/x@4x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/img/x@4x.png -------------------------------------------------------------------------------- /playground/index.js: -------------------------------------------------------------------------------- 1 | import "setimmediate"; 2 | require('./src/index'); 3 | -------------------------------------------------------------------------------- /playground/ios/.xcode.env: -------------------------------------------------------------------------------- 1 | export NODE_BINARY=$(command -v node) 2 | -------------------------------------------------------------------------------- /playground/ios/NavigationTests/RNNOptionsTest.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface RNNOptionsTest : NSObject 4 | @end -------------------------------------------------------------------------------- /playground/ios/NavigationTests/RNNTestRootViewCreator.h: -------------------------------------------------------------------------------- 1 | #import "RNNComponentViewCreator.h" 2 | #import 3 | 4 | @interface RNNTestRootViewCreator : NSObject 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /playground/ios/NavigationTests/utils/RNNTestBase.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface RNNTestBase : XCTestCase 5 | - (void)setupTopLevelUI:(UIViewController *)withViewController; 6 | 7 | - (void)tearDownTopLevelUI:(UIViewController *)withViewController; 8 | @end -------------------------------------------------------------------------------- /playground/ios/NavigationTests/utils/UIImage+Utils.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface UIImage (Utils) 4 | 5 | + (UIImage *)emptyImage; 6 | 7 | - (BOOL)isEqual:(UIImage *)image; 8 | 9 | @end 10 | -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_opaque_background_pop@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_opaque_background_pop@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_opaque_background_push@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_opaque_background_push@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_opaque_background_root@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_opaque_background_root@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_tansparent_background_pop@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_tansparent_background_pop@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_tansparent_background_push@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_tansparent_background_push@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_tansparent_background_root@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_tansparent_background_root@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_change_pop@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_change_pop@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_change_push@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_change_push@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_change_root@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_change_root@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_font_pop@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_font_pop@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_font_push@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_font_push@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_font_root@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_title_font_root@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_translucent_background_pop@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_translucent_background_pop@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_translucent_background_push@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_translucent_background_push@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_translucent_background_root@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_translucent_background_root@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_visibility_pop@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_visibility_pop@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_visibility_push@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_visibility_push@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_visibility_root@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/SnapshotTests/ReferenceImages_64/StackOptionsTest/testStack_topBar_visibility_root@3x.png -------------------------------------------------------------------------------- /playground/ios/SnapshotTests/Utils/CommandsHandlerCreator.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface CommandsHandlerCreator : NSObject 5 | 6 | + (RNNCommandsHandler *)createWithWindow:(UIWindow *)window; 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /playground/ios/playground.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /playground/ios/playground.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /playground/ios/playground/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import "RNNAppDelegate.h" 3 | 4 | @interface AppDelegate : RNNAppDelegate 5 | 6 | @end 7 | -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-114.png -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-120.png -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-121.png -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-180.png -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-29.png -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-40.png -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-57.png -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-58.png -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-60.png -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-80.png -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/AppIcon.appiconset/Icon-87.png -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/icon_res.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "clear@2x.ios.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /playground/ios/playground/Images.xcassets/icon_res.imageset/clear@2x.ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/Images.xcassets/icon_res.imageset/clear@2x.ios.png -------------------------------------------------------------------------------- /playground/ios/playground/RNNCustomViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface RNNCustomViewController : UIViewController 4 | 5 | - (instancetype)initWithProps:(NSDictionary *)props; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /playground/ios/playground/RNNNativeViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface RNNNativeViewController : UIViewController 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /playground/ios/playground/TestingAppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface TestingAppDelegate : UIResponder 4 | 5 | @property(nonatomic, strong) UIWindow *window; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /playground/ios/playground/TestingAppDelegate.mm: -------------------------------------------------------------------------------- 1 | #import "TestingAppDelegate.h" 2 | 3 | @implementation TestingAppDelegate 4 | 5 | - (void)applicationDidFinishLaunching:(UIApplication *)application { 6 | _window = [UIWindow new]; 7 | _window.rootViewController = [UIViewController new]; 8 | [_window makeKeyAndVisible]; 9 | } 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /playground/ios/playground/clear@2x.ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/playground/ios/playground/clear@2x.ios.png -------------------------------------------------------------------------------- /playground/src/components/Bounds.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { View } from 'react-native'; 3 | 4 | type BoundsProps = { 5 | children: React.ReactNode; 6 | }; 7 | 8 | const Bounds = ({ children }: BoundsProps) => { 9 | return ( 10 | 17 | {children} 18 | 19 | ); 20 | }; 21 | 22 | export default Bounds; 23 | -------------------------------------------------------------------------------- /playground/src/flags.ts: -------------------------------------------------------------------------------- 1 | const flags = { 2 | showTextInputToTestKeyboardInteraction: false, 3 | useCustomAnimations: false, 4 | useSlowOpenScreenAnimations: false, 5 | useSlideAnimation: false, 6 | randomizeComponentBackgroundColor: false, 7 | }; 8 | 9 | export default flags; 10 | -------------------------------------------------------------------------------- /playground/src/index.ts: -------------------------------------------------------------------------------- 1 | import { start } from './app'; 2 | 3 | start(); 4 | -------------------------------------------------------------------------------- /playground/src/screens/LifecycleButton.tsx: -------------------------------------------------------------------------------- 1 | import RoundedButton from './RoundedButton'; 2 | 3 | export default class LifecycleButton extends RoundedButton { 4 | componentWillUnmount() { 5 | alert('Button component unmounted'); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /react-native.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | dependency: { 3 | platforms: { 4 | ios: {}, 5 | android: { 6 | sourceDir: './lib/android/app/', 7 | packageImportPath: 'import com.reactnativenavigation.react.NavigationPackage;', 8 | packageInstance: 'new NavigationPackage()', 9 | }, 10 | }, 11 | }, 12 | project: { 13 | android: { 14 | sourceDir: './playground/android/', 15 | }, 16 | }, 17 | }; 18 | -------------------------------------------------------------------------------- /scripts/check-clang-format.js: -------------------------------------------------------------------------------- 1 | const exec = require('shell-utils').exec; 2 | 3 | const files = process.argv.slice(2).join(' '); 4 | const result = exec.execSyncRead(`./node_modules/.bin/git-clang-format --diff -- ${files}`).trim(); 5 | 6 | if ( 7 | result !== 'no modified files to format' && 8 | result !== 'clang-format did not modify any files' 9 | ) { 10 | throw result; 11 | } 12 | -------------------------------------------------------------------------------- /scripts/test-autolink.js: -------------------------------------------------------------------------------- 1 | const exec = require('shell-utils').exec; 2 | 3 | function run() { 4 | exec.execSync(`jest autolink`); 5 | } 6 | 7 | run(); 8 | -------------------------------------------------------------------------------- /scripts/watch.js: -------------------------------------------------------------------------------- 1 | const exec = require('shell-utils').exec; 2 | 3 | const isWindows = process.platform === 'win32' ? true : false; 4 | 5 | run(); 6 | 7 | function run() { 8 | if (isWindows) { 9 | exec.execSync(`del /F /S /Q lib\\dist`); 10 | exec.execSync(`tsc --project tsconfig.build.json --watch`); 11 | } else { 12 | exec.execSync(`rm -rf ./lib/dist && tsc --project tsconfig.build.json --watch`); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "exclude": ["./playground/**/*"] 4 | } 5 | -------------------------------------------------------------------------------- /tsconfig.mocks.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.build.json", 3 | "compilerOptions": { 4 | "outDir": "./" 5 | }, 6 | "include": ["Mock.ts"] 7 | } 8 | -------------------------------------------------------------------------------- /website/docs/api/options-animations.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-animations 3 | title: Animations 4 | sidebar_label: Animations 5 | --- 6 | -------------------------------------------------------------------------------- /website/docs/api/options-preview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-preview 3 | title: Preview (iOS) 4 | sidebar_label: Preview (iOS) 5 | --- 6 | -------------------------------------------------------------------------------- /website/docs/docs/stack-backNavigation.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: stack-backNavigation 3 | title: Back Navigation 4 | sidebar_label: Back navigation 5 | --- 6 | 7 | ## Disabling back navigation 8 | 9 | ## Handling back navigation 10 | 11 | -------------------------------------------------------------------------------- /website/docs/docs/style-screens/command-options.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | function showUserProfileScreen(user: User) { 4 | Navigation.push(componentId, { 5 | component: { 6 | name: 'ProfileScreen', 7 | passProps: { user }, 8 | options: { 9 | topBar: { 10 | title: { 11 | text: user.name, 12 | }, 13 | }, 14 | }, 15 | }, 16 | }); 17 | } 18 | -------------------------------------------------------------------------------- /website/docs/docs/style-screens/merge-options.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | Navigation.mergeOptions(componentId, { 4 | topBar: { 5 | background: { 6 | color: 'red', 7 | }, 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /website/docs/docs/style-screens/static-options-class.tsx: -------------------------------------------------------------------------------- 1 | import { NavigationComponent, Options } from 'react-native-navigation'; 2 | 3 | class MyScreen extends NavigationComponent { 4 | static options: Options = { 5 | topBar: { 6 | title: { 7 | text: 'My Screen', 8 | }, 9 | }, 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /website/docs/docs/style-screens/static-options-fn.tsx: -------------------------------------------------------------------------------- 1 | import { View } from 'react-native'; 2 | import { NavigationComponentProps, NavigationFunctionComponent } from 'react-native-navigation'; 3 | 4 | const MyFunctionalScreen: NavigationFunctionComponent = (props: NavigationComponentProps) => { 5 | return ; 6 | }; 7 | 8 | MyFunctionalScreen.options = { 9 | topBar: { 10 | title: { 11 | text: 'My Screen', 12 | }, 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /website/docs/docs/third-party-react-context/index.tsx: -------------------------------------------------------------------------------- 1 | // index.tsx 2 | import { Navigation } from 'react-native-navigation'; 3 | import { CounterContextProvider } from './CounterContext'; 4 | import { App } from './App'; 5 | 6 | Navigation.registerComponent( 7 | 'App', 8 | () => (props) => ( 9 | 10 | 11 | 12 | ), 13 | () => App 14 | ); 15 | -------------------------------------------------------------------------------- /website/docs/docs/third-party-react-native-vector-icons/MyIcon.tsx: -------------------------------------------------------------------------------- 1 | import { createIconSetFromIcoMoon } from 'react-native-vector-icons'; 2 | 3 | // This file is a renamed "selection.json" file exported in the IcoMoon bundle 4 | import myIconConfig from 'assets/myicon-config.json'; 5 | 6 | // Constructing that the font has been properly registered in each platfom build. 7 | const MyIcon = createIconSetFromIcoMoon(myIconConfig); 8 | 9 | export default MyIcon; 10 | 11 | -------------------------------------------------------------------------------- /website/docs/docs/third-party-typescript/typed-props-in-commands.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | interface Props { 4 | name: string; 5 | } 6 | 7 | Navigation.push(componentId, { 8 | component: { 9 | name: 'MyComponent', 10 | passProps: { 11 | name: 'Bob', 12 | // @ts-expect-error 13 | color: 'red', // Compilation error! color isn't declared in Props 14 | }, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /website/index.d.ts: -------------------------------------------------------------------------------- 1 | declare const componentId: string; 2 | 3 | declare class User { 4 | name: string; 5 | } 6 | 7 | declare class OrderDetails { 8 | orderId: string; 9 | } 10 | -------------------------------------------------------------------------------- /website/src/components/CustomLayout.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import DocPage from '@theme/DocPage'; 3 | import StandWithUkraine from '@site/src/components/StandWithUkraine'; 4 | 5 | export default function CustomLayout(props) { 6 | return ( 7 | <> 8 | 9 | 10 | 11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /website/src/data/showcase/Nox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/Nox.png -------------------------------------------------------------------------------- /website/src/data/showcase/acuity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/acuity.png -------------------------------------------------------------------------------- /website/src/data/showcase/amber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/amber.png -------------------------------------------------------------------------------- /website/src/data/showcase/arkhamCards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/arkhamCards.png -------------------------------------------------------------------------------- /website/src/data/showcase/aurora.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/aurora.png -------------------------------------------------------------------------------- /website/src/data/showcase/bementor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/bementor.png -------------------------------------------------------------------------------- /website/src/data/showcase/bene.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/bene.png -------------------------------------------------------------------------------- /website/src/data/showcase/christmas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/christmas.png -------------------------------------------------------------------------------- /website/src/data/showcase/churchtools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/churchtools.png -------------------------------------------------------------------------------- /website/src/data/showcase/cinepicks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/cinepicks.png -------------------------------------------------------------------------------- /website/src/data/showcase/clubhouse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/clubhouse.png -------------------------------------------------------------------------------- /website/src/data/showcase/cookomix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/cookomix.png -------------------------------------------------------------------------------- /website/src/data/showcase/deevent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/deevent.png -------------------------------------------------------------------------------- /website/src/data/showcase/delta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/delta.png -------------------------------------------------------------------------------- /website/src/data/showcase/digitail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/digitail.png -------------------------------------------------------------------------------- /website/src/data/showcase/feastr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/feastr.png -------------------------------------------------------------------------------- /website/src/data/showcase/galarm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/galarm.png -------------------------------------------------------------------------------- /website/src/data/showcase/getAbstract.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/getAbstract.png -------------------------------------------------------------------------------- /website/src/data/showcase/hibob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/hibob.png -------------------------------------------------------------------------------- /website/src/data/showcase/honeybook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/honeybook.png -------------------------------------------------------------------------------- /website/src/data/showcase/intelivest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/intelivest.png -------------------------------------------------------------------------------- /website/src/data/showcase/klarna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/klarna.png -------------------------------------------------------------------------------- /website/src/data/showcase/magiceden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/magiceden.png -------------------------------------------------------------------------------- /website/src/data/showcase/nifty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/nifty.png -------------------------------------------------------------------------------- /website/src/data/showcase/obitrain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/obitrain.png -------------------------------------------------------------------------------- /website/src/data/showcase/owner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/owner.png -------------------------------------------------------------------------------- /website/src/data/showcase/spaces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/spaces.png -------------------------------------------------------------------------------- /website/src/data/showcase/stretchminder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/stretchminder.png -------------------------------------------------------------------------------- /website/src/data/showcase/taimi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/taimi.png -------------------------------------------------------------------------------- /website/src/data/showcase/thera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/src/data/showcase/thera.png -------------------------------------------------------------------------------- /website/src/pages/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Redirect } from '@docusaurus/router'; 3 | 4 | function Home() { 5 | return ; 6 | } 7 | 8 | export default Home; 9 | -------------------------------------------------------------------------------- /website/static/img/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/alert.png -------------------------------------------------------------------------------- /website/static/img/alert_android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/alert_android.png -------------------------------------------------------------------------------- /website/static/img/bottomTabs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/bottomTabs.png -------------------------------------------------------------------------------- /website/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/favicon.ico -------------------------------------------------------------------------------- /website/static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/logo.png -------------------------------------------------------------------------------- /website/static/img/mobx_counter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/mobx_counter.png -------------------------------------------------------------------------------- /website/static/img/modal_android.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/modal_android.gif -------------------------------------------------------------------------------- /website/static/img/modal_ios.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/modal_ios.gif -------------------------------------------------------------------------------- /website/static/img/navBar_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/navBar_black.png -------------------------------------------------------------------------------- /website/static/img/navBar_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/navBar_white.png -------------------------------------------------------------------------------- /website/static/img/sharedElement.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/sharedElement.gif -------------------------------------------------------------------------------- /website/static/img/stack1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/stack1.png -------------------------------------------------------------------------------- /website/static/img/stack2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/stack2.gif -------------------------------------------------------------------------------- /website/static/img/stack3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/stack3.gif -------------------------------------------------------------------------------- /website/static/img/stack4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/stack4.png -------------------------------------------------------------------------------- /website/static/img/stackOptions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/stackOptions.png -------------------------------------------------------------------------------- /website/static/img/toast_android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wix/react-native-navigation/87b3348767ec4f77f6125a11d9540eb182af5701/website/static/img/toast_android.png -------------------------------------------------------------------------------- /website/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": true, 5 | "noUnusedLocals": false, 6 | "noUnusedParameters": false 7 | }, 8 | "include": ["index.d.ts", "./docs/**/*"] 9 | } 10 | -------------------------------------------------------------------------------- /website/versioned_docs/version-6.12.2/api/options-animations.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-animations 3 | title: Animations 4 | sidebar_label: Animations 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-6.12.2/api/options-preview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-preview 3 | title: Preview (iOS) 4 | sidebar_label: Preview (iOS) 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-6.12.2/docs/stack-backNavigation.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: stack-backNavigation 3 | title: Back Navigation 4 | sidebar_label: Back navigation 5 | --- 6 | 7 | ## Disabling back navigation 8 | 9 | ## Handling back navigation 10 | 11 | -------------------------------------------------------------------------------- /website/versioned_docs/version-6.12.2/docs/style-screens/merge-options.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | Navigation.mergeOptions(componentId, { 4 | topBar: { 5 | background: { 6 | color: 'red', 7 | }, 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /website/versioned_docs/version-6.12.2/docs/style-screens/static-options-class.tsx: -------------------------------------------------------------------------------- 1 | import { NavigationComponent, Options } from 'react-native-navigation'; 2 | 3 | class MyScreen extends NavigationComponent { 4 | static options: Options = { 5 | topBar: { 6 | title: { 7 | text: 'My Screen', 8 | }, 9 | }, 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /website/versioned_docs/version-6.12.2/docs/style-screens/static-options-fn.tsx: -------------------------------------------------------------------------------- 1 | import { View } from 'react-native'; 2 | import { NavigationComponentProps, NavigationFunctionComponent } from 'react-native-navigation'; 3 | 4 | const MyFunctionalScreen: NavigationFunctionComponent = (props: NavigationComponentProps) => { 5 | return ; 6 | }; 7 | 8 | MyFunctionalScreen.options = { 9 | topBar: { 10 | title: { 11 | text: 'My Screen', 12 | }, 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-6.12.2/docs/third-party-react-context/index.tsx: -------------------------------------------------------------------------------- 1 | // index.tsx 2 | import { Navigation } from 'react-native-navigation'; 3 | import { CounterContextProvider } from './CounterContext'; 4 | import { App } from './App'; 5 | 6 | Navigation.registerComponent( 7 | 'App', 8 | () => (props) => ( 9 | 10 | 11 | 12 | ), 13 | () => App 14 | ); 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-6.12.2/docs/third-party-typescript/typed-props-in-commands.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | interface Props { 4 | name: string; 5 | } 6 | 7 | Navigation.push(componentId, { 8 | component: { 9 | name: 'MyComponent', 10 | passProps: { 11 | name: 'Bob', 12 | // @ts-expect-error 13 | color: 'red', // Compilation error! color isn't declared in Props 14 | }, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.11.2/api/options-animations.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-animations 3 | title: Animations 4 | sidebar_label: Animations 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.11.2/api/options-preview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-preview 3 | title: Preview (iOS) 4 | sidebar_label: Preview (iOS) 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.11.2/docs/stack-backNavigation.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: stack-backNavigation 3 | title: Back Navigation 4 | sidebar_label: Back navigation 5 | --- 6 | 7 | ## Disabling back navigation 8 | 9 | ## Handling back navigation 10 | 11 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.11.2/docs/style-screens/merge-options.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | Navigation.mergeOptions(componentId, { 4 | topBar: { 5 | background: { 6 | color: 'red', 7 | }, 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.11.2/docs/style-screens/static-options-class.tsx: -------------------------------------------------------------------------------- 1 | import { NavigationComponent, Options } from 'react-native-navigation'; 2 | 3 | class MyScreen extends NavigationComponent { 4 | static options: Options = { 5 | topBar: { 6 | title: { 7 | text: 'My Screen', 8 | }, 9 | }, 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.11.2/docs/style-screens/static-options-fn.tsx: -------------------------------------------------------------------------------- 1 | import { View } from 'react-native'; 2 | import { NavigationComponentProps, NavigationFunctionComponent } from 'react-native-navigation'; 3 | 4 | const MyFunctionalScreen: NavigationFunctionComponent = (props: NavigationComponentProps) => { 5 | return ; 6 | }; 7 | 8 | MyFunctionalScreen.options = { 9 | topBar: { 10 | title: { 11 | text: 'My Screen', 12 | }, 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.11.2/docs/third-party-react-context/index.tsx: -------------------------------------------------------------------------------- 1 | // index.tsx 2 | import { Navigation } from 'react-native-navigation'; 3 | import { CounterContextProvider } from './CounterContext'; 4 | import { App } from './App'; 5 | 6 | Navigation.registerComponent( 7 | 'App', 8 | () => (props) => ( 9 | 10 | 11 | 12 | ), 13 | () => App 14 | ); 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.11.2/docs/third-party-typescript/typed-props-in-commands.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | interface Props { 4 | name: string; 5 | } 6 | 7 | Navigation.push(componentId, { 8 | component: { 9 | name: 'MyComponent', 10 | passProps: { 11 | name: 'Bob', 12 | // @ts-expect-error 13 | color: 'red', // Compilation error! color isn't declared in Props 14 | }, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.25.4/api/options-animations.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-animations 3 | title: Animations 4 | sidebar_label: Animations 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.25.4/api/options-preview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-preview 3 | title: Preview (iOS) 4 | sidebar_label: Preview (iOS) 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.25.4/docs/stack-backNavigation.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: stack-backNavigation 3 | title: Back Navigation 4 | sidebar_label: Back navigation 5 | --- 6 | 7 | ## Disabling back navigation 8 | 9 | ## Handling back navigation 10 | 11 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.25.4/docs/style-screens/merge-options.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | Navigation.mergeOptions(componentId, { 4 | topBar: { 5 | background: { 6 | color: 'red', 7 | }, 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.25.4/docs/style-screens/static-options-class.tsx: -------------------------------------------------------------------------------- 1 | import { NavigationComponent, Options } from 'react-native-navigation'; 2 | 3 | class MyScreen extends NavigationComponent { 4 | static options: Options = { 5 | topBar: { 6 | title: { 7 | text: 'My Screen', 8 | }, 9 | }, 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.25.4/docs/style-screens/static-options-fn.tsx: -------------------------------------------------------------------------------- 1 | import { View } from 'react-native'; 2 | import { NavigationComponentProps, NavigationFunctionComponent } from 'react-native-navigation'; 3 | 4 | const MyFunctionalScreen: NavigationFunctionComponent = (props: NavigationComponentProps) => { 5 | return ; 6 | }; 7 | 8 | MyFunctionalScreen.options = { 9 | topBar: { 10 | title: { 11 | text: 'My Screen', 12 | }, 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.25.4/docs/third-party-react-context/index.tsx: -------------------------------------------------------------------------------- 1 | // index.tsx 2 | import { Navigation } from 'react-native-navigation'; 3 | import { CounterContextProvider } from './CounterContext'; 4 | import { App } from './App'; 5 | 6 | Navigation.registerComponent( 7 | 'App', 8 | () => (props) => ( 9 | 10 | 11 | 12 | ), 13 | () => App 14 | ); 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.25.4/docs/third-party-typescript/typed-props-in-commands.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | interface Props { 4 | name: string; 5 | } 6 | 7 | Navigation.push(componentId, { 8 | component: { 9 | name: 'MyComponent', 10 | passProps: { 11 | name: 'Bob', 12 | // @ts-expect-error 13 | color: 'red', // Compilation error! color isn't declared in Props 14 | }, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.32.1/api/options-animations.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-animations 3 | title: Animations 4 | sidebar_label: Animations 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.32.1/api/options-preview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-preview 3 | title: Preview (iOS) 4 | sidebar_label: Preview (iOS) 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.32.1/docs/stack-backNavigation.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: stack-backNavigation 3 | title: Back Navigation 4 | sidebar_label: Back navigation 5 | --- 6 | 7 | ## Disabling back navigation 8 | 9 | ## Handling back navigation 10 | 11 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.32.1/docs/style-screens/merge-options.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | Navigation.mergeOptions(componentId, { 4 | topBar: { 5 | background: { 6 | color: 'red', 7 | }, 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.32.1/docs/style-screens/static-options-class.tsx: -------------------------------------------------------------------------------- 1 | import { NavigationComponent, Options } from 'react-native-navigation'; 2 | 3 | class MyScreen extends NavigationComponent { 4 | static options: Options = { 5 | topBar: { 6 | title: { 7 | text: 'My Screen', 8 | }, 9 | }, 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.32.1/docs/style-screens/static-options-fn.tsx: -------------------------------------------------------------------------------- 1 | import { View } from 'react-native'; 2 | import { NavigationComponentProps, NavigationFunctionComponent } from 'react-native-navigation'; 3 | 4 | const MyFunctionalScreen: NavigationFunctionComponent = (props: NavigationComponentProps) => { 5 | return ; 6 | }; 7 | 8 | MyFunctionalScreen.options = { 9 | topBar: { 10 | title: { 11 | text: 'My Screen', 12 | }, 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.32.1/docs/third-party-react-context/index.tsx: -------------------------------------------------------------------------------- 1 | // index.tsx 2 | import { Navigation } from 'react-native-navigation'; 3 | import { CounterContextProvider } from './CounterContext'; 4 | import { App } from './App'; 5 | 6 | Navigation.registerComponent( 7 | 'App', 8 | () => (props) => ( 9 | 10 | 11 | 12 | ), 13 | () => App 14 | ); 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.32.1/docs/third-party-typescript/typed-props-in-commands.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | interface Props { 4 | name: string; 5 | } 6 | 7 | Navigation.push(componentId, { 8 | component: { 9 | name: 'MyComponent', 10 | passProps: { 11 | name: 'Bob', 12 | // @ts-expect-error 13 | color: 'red', // Compilation error! color isn't declared in Props 14 | }, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.37.0/api/options-animations.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-animations 3 | title: Animations 4 | sidebar_label: Animations 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.37.0/api/options-preview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-preview 3 | title: Preview (iOS) 4 | sidebar_label: Preview (iOS) 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.37.0/docs/stack-backNavigation.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: stack-backNavigation 3 | title: Back Navigation 4 | sidebar_label: Back navigation 5 | --- 6 | 7 | ## Disabling back navigation 8 | 9 | ## Handling back navigation 10 | 11 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.37.0/docs/style-screens/merge-options.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | Navigation.mergeOptions(componentId, { 4 | topBar: { 5 | background: { 6 | color: 'red', 7 | }, 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.37.0/docs/style-screens/static-options-class.tsx: -------------------------------------------------------------------------------- 1 | import { NavigationComponent, Options } from 'react-native-navigation'; 2 | 3 | class MyScreen extends NavigationComponent { 4 | static options: Options = { 5 | topBar: { 6 | title: { 7 | text: 'My Screen', 8 | }, 9 | }, 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.37.0/docs/style-screens/static-options-fn.tsx: -------------------------------------------------------------------------------- 1 | import { View } from 'react-native'; 2 | import { NavigationComponentProps, NavigationFunctionComponent } from 'react-native-navigation'; 3 | 4 | const MyFunctionalScreen: NavigationFunctionComponent = (props: NavigationComponentProps) => { 5 | return ; 6 | }; 7 | 8 | MyFunctionalScreen.options = { 9 | topBar: { 10 | title: { 11 | text: 'My Screen', 12 | }, 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.37.0/docs/third-party-react-context/index.tsx: -------------------------------------------------------------------------------- 1 | // index.tsx 2 | import { Navigation } from 'react-native-navigation'; 3 | import { CounterContextProvider } from './CounterContext'; 4 | import { App } from './App'; 5 | 6 | Navigation.registerComponent( 7 | 'App', 8 | () => (props) => ( 9 | 10 | 11 | 12 | ), 13 | () => App 14 | ); 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.37.0/docs/third-party-typescript/typed-props-in-commands.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | interface Props { 4 | name: string; 5 | } 6 | 7 | Navigation.push(componentId, { 8 | component: { 9 | name: 'MyComponent', 10 | passProps: { 11 | name: 'Bob', 12 | // @ts-expect-error 13 | color: 'red', // Compilation error! color isn't declared in Props 14 | }, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.7.0/api/options-animations.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-animations 3 | title: Animations 4 | sidebar_label: Animations 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.7.0/api/options-preview.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: options-preview 3 | title: Preview (iOS) 4 | sidebar_label: Preview (iOS) 5 | --- 6 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.7.0/docs/stack-backNavigation.mdx: -------------------------------------------------------------------------------- 1 | --- 2 | id: stack-backNavigation 3 | title: Back Navigation 4 | sidebar_label: Back navigation 5 | --- 6 | 7 | ## Disabling back navigation 8 | 9 | ## Handling back navigation 10 | 11 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.7.0/docs/style-screens/command-options.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | function showUserProfileScreen(user: User) { 4 | Navigation.push(componentId, { 5 | component: { 6 | name: 'ProfileScreen', 7 | passProps: { user }, 8 | options: { 9 | topBar: { 10 | title: { 11 | text: user.name, 12 | }, 13 | }, 14 | }, 15 | }, 16 | }); 17 | } 18 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.7.0/docs/style-screens/merge-options.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | Navigation.mergeOptions(componentId, { 4 | topBar: { 5 | background: { 6 | color: 'red', 7 | }, 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.7.0/docs/style-screens/static-options-class.tsx: -------------------------------------------------------------------------------- 1 | import { NavigationComponent, Options } from 'react-native-navigation'; 2 | 3 | class MyScreen extends NavigationComponent { 4 | static options: Options = { 5 | topBar: { 6 | title: { 7 | text: 'My Screen', 8 | }, 9 | }, 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.7.0/docs/style-screens/static-options-fn.tsx: -------------------------------------------------------------------------------- 1 | import { View } from 'react-native'; 2 | import { NavigationComponentProps, NavigationFunctionComponent } from 'react-native-navigation'; 3 | 4 | const MyFunctionalScreen: NavigationFunctionComponent = (props: NavigationComponentProps) => { 5 | return ; 6 | }; 7 | 8 | MyFunctionalScreen.options = { 9 | topBar: { 10 | title: { 11 | text: 'My Screen', 12 | }, 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.7.0/docs/third-party-react-context/index.tsx: -------------------------------------------------------------------------------- 1 | // index.tsx 2 | import { Navigation } from 'react-native-navigation'; 3 | import { CounterContextProvider } from './CounterContext'; 4 | import { App } from './App'; 5 | 6 | Navigation.registerComponent( 7 | 'App', 8 | () => (props) => ( 9 | 10 | 11 | 12 | ), 13 | () => App 14 | ); 15 | -------------------------------------------------------------------------------- /website/versioned_docs/version-7.7.0/docs/third-party-typescript/typed-props-in-commands.tsx: -------------------------------------------------------------------------------- 1 | import { Navigation } from 'react-native-navigation'; 2 | 3 | interface Props { 4 | name: string; 5 | } 6 | 7 | Navigation.push(componentId, { 8 | component: { 9 | name: 'MyComponent', 10 | passProps: { 11 | name: 'Bob', 12 | // @ts-expect-error 13 | color: 'red', // Compilation error! color isn't declared in Props 14 | }, 15 | }, 16 | }); 17 | -------------------------------------------------------------------------------- /website/versions.json: -------------------------------------------------------------------------------- 1 | [ 2 | "7.37.0", 3 | "7.32.1", 4 | "7.25.4", 5 | "7.11.2", 6 | "7.7.0", 7 | "6.12.2" 8 | ] 9 | --------------------------------------------------------------------------------