@apexnative/navigation 1.0.0-alpha.5 → 1.0.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/ApexNavigation.podspec +2 -1
  2. package/CHANGELOG.md +32 -0
  3. package/README.md +1 -1
  4. package/android/CLAUDE.md +31 -20
  5. package/android/CORE.md +12 -8
  6. package/android/consumer-rules.pro +6 -0
  7. package/android/src/main/java/dev/apexnative/navigation/NavigationActivity.kt +36 -5
  8. package/android/src/main/java/dev/apexnative/navigation/options/BottomTabOptions.kt +1 -1
  9. package/android/src/main/java/dev/apexnative/navigation/options/BottomTabsOptions.kt +13 -8
  10. package/android/src/main/java/dev/apexnative/navigation/options/ButtonOptions.kt +1 -1
  11. package/android/src/main/java/dev/apexnative/navigation/options/LargeTitleOptions.kt +1 -1
  12. package/android/src/main/java/dev/apexnative/navigation/options/LayoutAnimation.kt +1 -1
  13. package/android/src/main/java/dev/apexnative/navigation/options/OptionKey.kt +18 -0
  14. package/android/src/main/java/dev/apexnative/navigation/options/OptionPaths.kt +91 -0
  15. package/android/src/main/java/dev/apexnative/navigation/options/SheetOptions.kt +7 -4
  16. package/android/src/main/java/dev/apexnative/navigation/options/TitleOptions.kt +2 -2
  17. package/android/src/main/java/dev/apexnative/navigation/options/TopBarAppearanceOptions.kt +1 -1
  18. package/android/src/main/java/dev/apexnative/navigation/options/TopBarOptions.kt +16 -7
  19. package/android/src/main/java/dev/apexnative/navigation/react/ContentHeights.kt +95 -0
  20. package/android/src/main/java/dev/apexnative/navigation/react/ContentMounts.kt +66 -0
  21. package/android/src/main/java/dev/apexnative/navigation/react/NavigationTurboModule.kt +7 -3
  22. package/android/src/main/java/dev/apexnative/navigation/react/OptionsCommands.kt +41 -3
  23. package/android/src/main/java/dev/apexnative/navigation/react/ReactView.kt +16 -1
  24. package/android/src/main/java/dev/apexnative/navigation/react/ReloadCoordinator.kt +0 -2
  25. package/android/src/main/java/dev/apexnative/navigation/react/ScreenEnvironment.kt +177 -0
  26. package/android/src/main/java/dev/apexnative/navigation/react/ScreenRegions.kt +12 -49
  27. package/android/src/main/java/dev/apexnative/navigation/react/ScrollEvents.kt +49 -128
  28. package/android/src/main/java/dev/apexnative/navigation/safearea/SafeAreaView.kt +6 -6
  29. package/android/src/main/java/dev/apexnative/navigation/slots/SlotScreenView.kt +27 -7
  30. package/android/src/main/java/dev/apexnative/navigation/slots/SlotView.kt +12 -1
  31. package/android/src/main/java/dev/apexnative/navigation/utils/MaterialTheme.kt +5 -6
  32. package/android/src/main/java/dev/apexnative/navigation/utils/SystemAnimations.kt +36 -0
  33. package/android/src/main/java/dev/apexnative/navigation/utils/ViewExtensions.kt +0 -13
  34. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/ArrangementController.kt +9 -7
  35. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsCollapseBehavior.kt +5 -3
  36. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsController.kt +13 -10
  37. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/CustomTabRowGeometry.kt +22 -0
  38. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabsRoom.kt +0 -5
  39. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ComponentViewController.kt +7 -8
  40. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenSafeArea.kt +29 -11
  41. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/externalcomponent/ExternalComponentViewController.kt +2 -6
  42. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalCoordinator.kt +20 -2
  43. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalSheet.kt +443 -58
  44. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalViews.kt +33 -5
  45. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/SheetBack.kt +42 -0
  46. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/SheetStops.kt +60 -2
  47. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/Navigator.kt +4 -0
  48. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/ParentController.kt +3 -6
  49. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuMotion.kt +8 -2
  50. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/BackPreview.kt +32 -4
  51. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/PreparedFrame.kt +3 -3
  52. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackCommands.kt +2 -2
  53. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackController.kt +50 -7
  54. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackQueue.kt +15 -3
  55. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackViews.kt +10 -4
  56. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabMotion.kt +142 -0
  57. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabPresenter.kt +215 -43
  58. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/StackSearchPresenter.kt +25 -26
  59. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/BarRowTransition.kt +3 -2
  60. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/ButtonPlaces.kt +11 -5
  61. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarPresenter.kt +36 -38
  62. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/viewcontroller/ScrollEventListener.kt +6 -9
  63. package/android/src/main/java/dev/apexnative/navigation/views/animations/AnimationLayer.kt +73 -0
  64. package/android/src/main/java/dev/apexnative/navigation/views/animations/ValueInterpolation.kt +14 -0
  65. package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/BottomTabsLayout.kt +61 -2
  66. package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/CustomTabRow.kt +72 -10
  67. package/android/src/main/java/dev/apexnative/navigation/views/element/ElementTransitions.kt +129 -179
  68. package/android/src/main/java/dev/apexnative/navigation/views/element/TargetsWait.kt +8 -1
  69. package/android/src/main/java/dev/apexnative/navigation/views/element/TransitionLayer.kt +37 -112
  70. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ElementPictures.kt +67 -3
  71. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/FlightGeometry.kt +346 -36
  72. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ImageMorph.kt +199 -0
  73. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/SharedAnimatorFactory.kt +55 -42
  74. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/TextMorph.kt +176 -0
  75. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ViewMorph.kt +108 -0
  76. package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabCopy.kt +85 -0
  77. package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabMenu.kt +13 -0
  78. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TitleBar.kt +5 -24
  79. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TopBar.kt +51 -34
  80. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarButtonComponentCell.kt +6 -6
  81. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarButtonView.kt +113 -0
  82. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarMenu.kt +219 -0
  83. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonBar.kt +121 -175
  84. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonMenus.kt +34 -64
  85. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonRow.kt +216 -0
  86. package/android/src/main/jni/ANNContentHeights.cpp +82 -0
  87. package/android/src/main/res/drawable/apex_navigation_ic_arrow_right.xml +14 -0
  88. package/android/src/main/res/layout/apex_navigation_menu_header.xml +19 -0
  89. package/android/src/main/res/layout/apex_navigation_menu_item.xml +68 -0
  90. package/android/src/main/res/values/styles.xml +1 -1
  91. package/android/src/main/res/values-night/styles.xml +1 -1
  92. package/cli/doctor/checks/app.js +16 -1
  93. package/cli/project.js +4 -0
  94. package/cli/setup/index.js +5 -0
  95. package/cli/setup/steps/metro.js +46 -0
  96. package/docs-md/architecture/native-screens.md +4 -0
  97. package/docs-md/architecture/theme-and-context.md +131 -12
  98. package/docs-md/architecture/transitions.md +46 -5
  99. package/docs-md/containers/modals.md +2 -0
  100. package/docs-md/containers/overlays.md +1 -1
  101. package/docs-md/containers/side-menu.md +1 -1
  102. package/docs-md/containers/tabs.md +2 -0
  103. package/docs-md/flows/bottom-sheets.md +4 -2
  104. package/docs-md/fundamentals/screens-and-props.md +9 -1
  105. package/docs-md/fundamentals/starting-the-app.md +1 -1
  106. package/docs-md/guides/cli.md +3 -1
  107. package/docs-md/help/glossary.md +2 -2
  108. package/docs-md/help/troubleshooting.md +22 -1
  109. package/docs-md/index.json +41 -1
  110. package/docs-md/migration/from-expo-router.md +1 -1
  111. package/docs-md/migration/from-react-native-navigation.md +1 -1
  112. package/docs-md/migration/from-react-navigation.md +2 -2
  113. package/docs-md/screen-ui/back-and-gestures.md +17 -1
  114. package/docs-md/screen-ui/bar-buttons.md +5 -5
  115. package/docs-md/screen-ui/search.md +1 -1
  116. package/docs-md/screen-ui/system-ui.md +16 -11
  117. package/docs-md/screen-ui/toolbar-and-fab.md +4 -2
  118. package/docs-md/screen-ui/top-bar.md +8 -4
  119. package/docs-md/start/installation.md +16 -1
  120. package/ios/Animations/ANNFrameDriver.h +55 -15
  121. package/ios/Animations/ANNFrameDriver.mm +216 -60
  122. package/ios/Animations/ANNTransitionAnimator.h +26 -5
  123. package/ios/Animations/ANNTransitionAnimator.mm +49 -3
  124. package/ios/Animations/ANNTransitionPlan.h +2 -2
  125. package/ios/Animations/ANNTransitionPlan.mm +10 -0
  126. package/ios/Animations/Elements/ANNElementFinder.h +2 -2
  127. package/ios/Animations/Elements/ANNElementFinder.mm +2 -2
  128. package/ios/Animations/Elements/ANNElementTransition.h +3 -3
  129. package/ios/Animations/Elements/ANNElementTransition.mm +2 -2
  130. package/ios/Animations/Elements/ANNSharedElementFlight.h +3 -3
  131. package/ios/Animations/Elements/ANNSharedElementFlight.mm +249 -45
  132. package/ios/Animations/Interpolators/ANNInterpolate.h +2 -30
  133. package/ios/Animations/Interpolators/ANNTransformParts.h +48 -0
  134. package/ios/Animations/Interpolators/ANNTransformParts.mm +507 -0
  135. package/ios/Animations/Interpolators/ANNViewTracks.h +9 -6
  136. package/ios/Animations/Interpolators/ANNViewTracks.mm +100 -30
  137. package/ios/CLAUDE.md +32 -22
  138. package/ios/CORE.md +25 -21
  139. package/ios/Contract/ANNCommandRunner.h +8 -7
  140. package/ios/Contract/ANNCommandRunner.mm +21 -27
  141. package/ios/Contract/ANNLayoutNode.h +3 -3
  142. package/ios/Contract/ANNLayoutReader.h +3 -3
  143. package/ios/Core/ANNAppDelegate.mm +0 -2
  144. package/ios/Core/ANNDeepLinkQueue.h +6 -5
  145. package/ios/Core/ANNDeepLinkQueue.mm +22 -10
  146. package/ios/Core/ANNJavaScriptCalls.h +11 -12
  147. package/ios/Core/ANNJavaScriptCalls.mm +7 -16
  148. package/ios/Core/ANNReloadCoordinator.mm +4 -8
  149. package/ios/Core/ANNSceneDelegate.mm +2 -2
  150. package/ios/Core/ApexNavigation+Internal.h +1 -1
  151. package/ios/Core/ApexNavigation.mm +6 -2
  152. package/ios/Layouts/Arrangement/ANNArrangementState.h +2 -17
  153. package/ios/Layouts/Arrangement/ANNArrangementState.mm +0 -38
  154. package/ios/Layouts/Arrangement/ANNArrangementViewController.mm +4 -4
  155. package/ios/Layouts/Root/ANNRootCoordinator.mm +45 -15
  156. package/ios/Layouts/Screen/ANNComponentViewController.h +2 -2
  157. package/ios/Layouts/Screen/ANNComponentViewController.mm +13 -23
  158. package/ios/Layouts/Screen/ANNPreviewInteraction.h +7 -4
  159. package/ios/Layouts/Screen/ANNPreviewInteraction.mm +72 -10
  160. package/ios/Layouts/Screen/ANNScreenEnvironment.h +63 -0
  161. package/ios/Layouts/Screen/ANNScreenEnvironment.mm +181 -0
  162. package/ios/Layouts/Screen/ANNScreenRegions.h +3 -18
  163. package/ios/Layouts/Screen/ANNScreenRegions.mm +0 -38
  164. package/ios/Layouts/Screen/ANNScreenSafeArea.h +4 -9
  165. package/ios/Layouts/Screen/ANNScreenSafeArea.mm +14 -16
  166. package/ios/Layouts/Stack/ANNPreviewPush.h +7 -6
  167. package/ios/Layouts/Stack/ANNPreviewPush.mm +57 -5
  168. package/ios/Layouts/Stack/ANNStackAnimatingDelegate.h +11 -2
  169. package/ios/Layouts/Stack/ANNStackAnimatingDelegate.mm +14 -7
  170. package/ios/Layouts/Stack/ANNStackController.h +8 -0
  171. package/ios/Layouts/Stack/ANNStackController.mm +153 -11
  172. package/ios/Layouts/Stack/ANNSwipePopInteraction.h +26 -0
  173. package/ios/Layouts/Stack/ANNSwipePopInteraction.mm +185 -0
  174. package/ios/Layouts/Stack/InteractivePopGestureDelegate.mm +28 -4
  175. package/ios/Layouts/Tabs/ANNBottomTabsAccessoryView.h +12 -1
  176. package/ios/Layouts/Tabs/ANNBottomTabsAccessoryView.mm +23 -0
  177. package/ios/Layouts/Tabs/ANNBottomTabsController.mm +2 -1
  178. package/ios/Layouts/Tabs/ANNBottomTabsCustomRow.mm +8 -3
  179. package/ios/Layouts/Tabs/ANNBottomTabsPresenter.h +4 -0
  180. package/ios/Layouts/Tabs/ANNBottomTabsPresenter.mm +123 -36
  181. package/ios/Layouts/Tabs/ANNTabsDesign.h +6 -5
  182. package/ios/Layouts/Tabs/ANNTabsDesign.mm +9 -1
  183. package/ios/Layouts/Tabs/UITabBar+utils.h +5 -5
  184. package/ios/Layouts/Tabs/UITabBar+utils.mm +32 -13
  185. package/ios/Options/ANNAnimationOptions.h +2 -1
  186. package/ios/Options/ANNAnimationOptions.mm +1 -1
  187. package/ios/Options/ANNBottomTabsOptions.h +2 -0
  188. package/ios/Options/ANNBottomTabsOptions.mm +1 -0
  189. package/ios/Options/ANNOptions.h +25 -0
  190. package/ios/Options/ANNOptions.mm +157 -1
  191. package/ios/Options/ANNOptionsReader.mm +108 -0
  192. package/ios/Options/ANNStackPopAnimationOptions.h +13 -0
  193. package/ios/Options/ANNStackPopAnimationOptions.mm +11 -0
  194. package/ios/Options/Params/ANNParam.h +15 -0
  195. package/ios/Options/Params/ANNParam.mm +61 -0
  196. package/ios/Options/Params/Color.h +3 -0
  197. package/ios/Options/Params/Color.mm +21 -0
  198. package/ios/Options/Params/ColorParser.h +4 -3
  199. package/ios/Options/Params/ColorParser.mm +22 -4
  200. package/ios/Options/Params/Image.h +4 -0
  201. package/ios/Options/Params/Image.mm +20 -0
  202. package/ios/React/ANNReactView.mm +6 -25
  203. package/ios/React/ANNSafeAreaViewComponentView.mm +26 -15
  204. package/ios/React/ANNSurfaceHostingView.h +14 -0
  205. package/ios/React/ANNSurfaceHostingView.mm +144 -1
  206. package/ios/React/Slots/ANNSlotScreenView.mm +8 -2
  207. package/ios/TopBar/ANNBackButtonPresenter.mm +6 -5
  208. package/ios/TopBar/ANNBarAppearance.h +2 -1
  209. package/ios/TopBar/ANNBarAppearance.mm +111 -30
  210. package/ios/TopBar/ANNBarBackgroundComponent.mm +16 -0
  211. package/ios/TopBar/ANNBarButtonComponentView.h +4 -4
  212. package/ios/TopBar/ANNBarButtonComponentView.mm +1 -1
  213. package/ios/TopBar/ANNBarButtons.h +5 -3
  214. package/ios/TopBar/ANNBarButtons.mm +186 -17
  215. package/ios/TopBar/ANNLargeTitlePresenter.mm +24 -4
  216. package/ios/TopBar/ANNMainList.h +3 -0
  217. package/ios/TopBar/ANNMainList.mm +4 -0
  218. package/ios/TopBar/ANNScrollEdgeEffects.h +22 -6
  219. package/ios/TopBar/ANNScrollEdgeEffects.mm +123 -16
  220. package/ios/TopBar/ANNSearchPresenter.mm +2 -2
  221. package/ios/TopBar/ANNSearchResultsViewController.mm +5 -5
  222. package/ios/TopBar/ANNTopBarPresenter.h +3 -2
  223. package/ios/TopBar/ANNTopBarPresenter.mm +95 -22
  224. package/ios/TurboModules/ANNTurboModule.mm +66 -16
  225. package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotState.cpp +20 -0
  226. package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotState.h +5 -14
  227. package/lib/module/ARCHITECTURE.md +17 -7
  228. package/lib/module/adapters/NativeANNTurboModule.js.map +1 -1
  229. package/lib/module/api/app/AppRegistry.js +14 -2
  230. package/lib/module/api/app/AppRegistry.js.map +1 -1
  231. package/lib/module/api/app/createNavigation.js +188 -66
  232. package/lib/module/api/app/createNavigation.js.map +1 -1
  233. package/lib/module/api/events/navigationEvents.js +6 -2
  234. package/lib/module/api/events/navigationEvents.js.map +1 -1
  235. package/lib/module/api/hooks/useSafeAreaInsets.js +4 -3
  236. package/lib/module/api/hooks/useSafeAreaInsets.js.map +1 -1
  237. package/lib/module/api/linking/linking.js +11 -0
  238. package/lib/module/api/linking/linking.js.map +1 -1
  239. package/lib/module/api/options/OptionsChain.js +2 -2
  240. package/lib/module/api/screens/defineScreen.js +45 -3
  241. package/lib/module/api/screens/defineScreen.js.map +1 -1
  242. package/lib/module/api/screens/nativeScreens.js +31 -6
  243. package/lib/module/api/screens/nativeScreens.js.map +1 -1
  244. package/lib/module/api/screens/registerScreens.js +172 -35
  245. package/lib/module/api/screens/registerScreens.js.map +1 -1
  246. package/lib/module/api/theme/theme.js +5 -0
  247. package/lib/module/api/theme/theme.js.map +1 -1
  248. package/lib/module/engine/commands.js +42 -2
  249. package/lib/module/engine/commands.js.map +1 -1
  250. package/lib/module/engine/layout.js +7 -2
  251. package/lib/module/engine/layout.js.map +1 -1
  252. package/lib/module/engine/nativeScreens.js +9 -0
  253. package/lib/module/engine/nativeScreens.js.map +1 -1
  254. package/lib/module/engine/options.js +5 -4
  255. package/lib/module/engine/options.js.map +1 -1
  256. package/lib/module/engine/optionsChange.js +102 -0
  257. package/lib/module/engine/optionsChange.js.map +1 -0
  258. package/lib/module/engine/refresh.js +85 -0
  259. package/lib/module/engine/refresh.js.map +1 -0
  260. package/lib/module/engine/rememberedOptions.js +60 -0
  261. package/lib/module/engine/rememberedOptions.js.map +1 -1
  262. package/lib/module/engine/screens.js +55 -4
  263. package/lib/module/engine/screens.js.map +1 -1
  264. package/lib/typescript/adapters/NativeANNTurboModule.d.ts +7 -0
  265. package/lib/typescript/adapters/NativeANNTurboModule.d.ts.map +1 -1
  266. package/lib/typescript/api/app/AppRegistry.d.ts.map +1 -1
  267. package/lib/typescript/api/app/createNavigation.d.ts +8 -3
  268. package/lib/typescript/api/app/createNavigation.d.ts.map +1 -1
  269. package/lib/typescript/api/events/navigationEvents.d.ts +2 -2
  270. package/lib/typescript/api/events/navigationEvents.d.ts.map +1 -1
  271. package/lib/typescript/api/hooks/useSafeAreaInsets.d.ts +4 -3
  272. package/lib/typescript/api/hooks/useSafeAreaInsets.d.ts.map +1 -1
  273. package/lib/typescript/api/index.d.ts +1 -1
  274. package/lib/typescript/api/index.d.ts.map +1 -1
  275. package/lib/typescript/api/linking/linking.d.ts +8 -0
  276. package/lib/typescript/api/linking/linking.d.ts.map +1 -1
  277. package/lib/typescript/api/options/OptionsChain.d.ts +2 -2
  278. package/lib/typescript/api/screens/defineScreen.d.ts +23 -4
  279. package/lib/typescript/api/screens/defineScreen.d.ts.map +1 -1
  280. package/lib/typescript/api/screens/nativeScreens.d.ts +8 -1
  281. package/lib/typescript/api/screens/nativeScreens.d.ts.map +1 -1
  282. package/lib/typescript/api/screens/registerScreens.d.ts.map +1 -1
  283. package/lib/typescript/api/theme/theme.d.ts +2 -0
  284. package/lib/typescript/api/theme/theme.d.ts.map +1 -1
  285. package/lib/typescript/engine/commands.d.ts +5 -0
  286. package/lib/typescript/engine/commands.d.ts.map +1 -1
  287. package/lib/typescript/engine/layout.d.ts.map +1 -1
  288. package/lib/typescript/engine/nativeScreens.d.ts +5 -0
  289. package/lib/typescript/engine/nativeScreens.d.ts.map +1 -1
  290. package/lib/typescript/engine/optionsChange.d.ts +28 -0
  291. package/lib/typescript/engine/optionsChange.d.ts.map +1 -0
  292. package/lib/typescript/engine/refresh.d.ts +35 -0
  293. package/lib/typescript/engine/refresh.d.ts.map +1 -0
  294. package/lib/typescript/engine/rememberedOptions.d.ts +13 -0
  295. package/lib/typescript/engine/rememberedOptions.d.ts.map +1 -1
  296. package/lib/typescript/engine/screens.d.ts +27 -6
  297. package/lib/typescript/engine/screens.d.ts.map +1 -1
  298. package/lib/typescript/interfaces/ComponentEvents.d.ts +2 -2
  299. package/lib/typescript/interfaces/options/animations.d.ts +44 -14
  300. package/lib/typescript/interfaces/options/animations.d.ts.map +1 -1
  301. package/lib/typescript/interfaces/options/bottomTabs.d.ts +19 -6
  302. package/lib/typescript/interfaces/options/bottomTabs.d.ts.map +1 -1
  303. package/lib/typescript/interfaces/options/buttons.d.ts +10 -10
  304. package/lib/typescript/interfaces/options/modals.d.ts +6 -7
  305. package/lib/typescript/interfaces/options/modals.d.ts.map +1 -1
  306. package/lib/typescript/interfaces/options/stack.d.ts +8 -3
  307. package/lib/typescript/interfaces/options/stack.d.ts.map +1 -1
  308. package/lib/typescript/interfaces/options/system.d.ts +8 -5
  309. package/lib/typescript/interfaces/options/system.d.ts.map +1 -1
  310. package/lib/typescript/interfaces/options/toolbar.d.ts +2 -2
  311. package/lib/typescript/interfaces/options/topBar.d.ts +46 -29
  312. package/lib/typescript/interfaces/options/topBar.d.ts.map +1 -1
  313. package/metro/acceptPlugin.js +57 -0
  314. package/metro/babelTransformer.js +45 -0
  315. package/metro/index.js +36 -0
  316. package/package.json +3 -1
  317. package/src/ARCHITECTURE.md +17 -7
  318. package/src/adapters/NativeANNTurboModule.ts +7 -0
  319. package/src/api/app/AppRegistry.ts +16 -2
  320. package/src/api/app/createNavigation.ts +201 -69
  321. package/src/api/events/navigationEvents.ts +9 -3
  322. package/src/api/hooks/useSafeAreaInsets.ts +4 -3
  323. package/src/api/index.ts +1 -0
  324. package/src/api/linking/linking.ts +22 -1
  325. package/src/api/options/OptionsChain.ts +2 -2
  326. package/src/api/screens/defineScreen.ts +49 -5
  327. package/src/api/screens/nativeScreens.ts +40 -4
  328. package/src/api/screens/registerScreens.tsx +170 -42
  329. package/src/api/theme/theme.ts +5 -0
  330. package/src/engine/commands.ts +51 -6
  331. package/src/engine/layout.ts +11 -2
  332. package/src/engine/nativeScreens.ts +10 -1
  333. package/src/engine/options.ts +6 -8
  334. package/src/engine/optionsChange.ts +107 -0
  335. package/src/engine/refresh.ts +97 -0
  336. package/src/engine/rememberedOptions.ts +70 -0
  337. package/src/engine/screens.tsx +53 -8
  338. package/src/interfaces/ComponentEvents.ts +2 -2
  339. package/src/interfaces/options/animations.ts +44 -14
  340. package/src/interfaces/options/bottomTabs.ts +19 -6
  341. package/src/interfaces/options/buttons.ts +10 -10
  342. package/src/interfaces/options/modals.ts +6 -7
  343. package/src/interfaces/options/stack.ts +8 -3
  344. package/src/interfaces/options/system.ts +8 -5
  345. package/src/interfaces/options/toolbar.ts +2 -2
  346. package/src/interfaces/options/topBar.ts +46 -29
  347. package/android/src/main/java/dev/apexnative/navigation/react/ArrangementStates.kt +0 -42
  348. package/android/src/main/java/dev/apexnative/navigation/react/ScreenInsets.kt +0 -70
  349. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/CustomTabRowPlacer.kt +0 -223
  350. package/android/src/main/java/dev/apexnative/navigation/views/element/ElementStub.kt +0 -31
  351. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ImageMatrixAnimator.kt +0 -136
  352. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PlainViewAnimator.kt +0 -86
  353. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PropertyAnimatorCreator.kt +0 -33
  354. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ReactImageAnimator.kt +0 -64
  355. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/TextChangeAnimator.kt +0 -177
  356. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ViewChangeAnimator.kt +0 -137
  357. package/ios/Layouts/Screen/ANNScreenInsets.h +0 -30
  358. package/ios/Layouts/Screen/ANNScreenInsets.mm +0 -70
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ import { DevSettings } from 'react-native';
3
4
  import { setDefaultOptions, setRoot } from "../../engine/commands.js";
4
5
  import { enableSlots, withSlots } from "../../engine/slots.js";
5
6
  import { listenToNativeScreens, startHost } from "../../engine/nativeScreens.js";
7
+ import { sameValue } from "../../engine/optionsChange.js";
8
+ import { familyOf, keepStateOf, refreshRuns } from "../../engine/refresh.js";
6
9
  import { listenToSplitViews } from "../../engine/places.js";
7
10
  import { hasNativeScreenHooks } from "../../engine/screens.js";
8
11
  import { addNavigationListeners } from "../events/navigationEvents.js";
@@ -12,7 +15,7 @@ import { listenToNativeScreenCalls } from "../screens/nativeScreenCalls.js";
12
15
  import { buildRoot, withDefaultTransition } from "../layout/Root.js";
13
16
  import { registerScreens } from "../screens/registerScreens.js";
14
17
  import { getAppContext, setAppContext } from "../context/appContext.js";
15
- import { initTheme, themedDefaultOptions } from "../theme/theme.js";
18
+ import { getDirection, getTheme, initTheme, setTheme, themedDefaultOptions } from "../theme/theme.js";
16
19
  import { setActiveApp } from "./activeApp.js";
17
20
  import { setStartFailure, START_FAILURE_SCREEN, startFailureScreen } from "./startFailure.js";
18
21
  import { releaseSplash, showsSplash, showSplash, SPLASH_ROOT, SPLASH_SCREEN, splashDone } from "./splash.js";
@@ -20,7 +23,7 @@ import { launchState } from "../../engine/launchState.js";
20
23
  import { watchBackListeners } from "../../engine/backListeners.js";
21
24
  import { resolveRoot } from "./roots.js";
22
25
  import { listenToDispatchedLinks } from "../linking/dispatchedLinks.js";
23
- import { launchLink, launchRoot, linksRelaunched, linksStarted, reportLink, setupLinking } from "../linking/linking.js";
26
+ import { launchLink, launchRoot, linksRelaunched, linksStarted, reportLink, setupLinking, updateLinking } from "../linking/linking.js";
24
27
  const NAVIGATION_APP = Symbol('apexnative.navigation.app');
25
28
 
26
29
  /** Where an error that goes to `onError` came from. */
@@ -32,6 +35,9 @@ const starts = new WeakMap();
32
35
 
33
36
  /** Starts the app, or brings back its root when the native side launches again. */
34
37
  export function startApp(app) {
38
+ // An app made after another launched knows once its module ran whether it is that app's next version.
39
+ const waiting = pending.get(app);
40
+ if (waiting) return waiting.then(() => startApp(app));
35
41
  const start = starts.get(app);
36
42
  if (!start) throw new Error('[navigation] Not an app made by createNavigation');
37
43
  return start();
@@ -55,7 +61,7 @@ export function startApp(app) {
55
61
  */
56
62
 
57
63
  export function isNavigationApp(value) {
58
- return typeof value === 'object' && value !== null && starts.has(value);
64
+ return typeof value === 'object' && value !== null && (starts.has(value) || pending.has(value));
59
65
  }
60
66
 
61
67
  /**
@@ -70,14 +76,18 @@ export function isNavigationApp(value) {
70
76
  * });
71
77
  */
72
78
  export function createNavigation(config) {
79
+ // The app that launched before, when this call may be its module running again after an edit (Fast Refresh): what
80
+ // the call starts waits until that is known.
81
+ const launched = __DEV__ ? hotCandidate() : undefined;
73
82
  // Counted from here: a "back again to leave" listener of the app's entry file comes after this call.
74
- watchBackListeners();
83
+ if (!launched) watchBackListeners();
75
84
  // idle: not started yet, or the last start failed. mounting: the first root is on its way. mounted: it is shown.
76
85
  let phase = 'idle';
77
86
  let screensRegistered = false;
78
87
  // The splash shows at the first start of this runtime only: a start that failed and runs again goes without it.
79
88
  let splashChecked = false;
80
89
  let listening = false;
90
+ let removeListeners;
81
91
  let prepared;
82
92
  let markMounted;
83
93
  // A new activity came while the first root was on its way (Android): its link is taken once that root is shown.
@@ -118,6 +128,56 @@ export function createNavigation(config) {
118
128
  } = config;
119
129
  return buildRoot(typeof root === 'function' ? root(context) : root);
120
130
  }
131
+
132
+ // The screens of the app, its groups, the screen of a failed start and the splash, with what wraps each of them.
133
+ function registerAppScreens() {
134
+ const wrapper = {
135
+ errorFallback: config.errorFallback,
136
+ loadingFallback: config.loadingFallback,
137
+ onError: config.onError && ((error, screen, componentStack) => config.onError?.(error, {
138
+ type: 'screen',
139
+ screen,
140
+ componentStack
141
+ }))
142
+ };
143
+ registerScreens([{
144
+ source: 'screens',
145
+ screens: config.screens ?? {}
146
+ }, ...Object.entries(config.groups ?? {}).map(([group, {
147
+ screens,
148
+ options
149
+ }]) => ({
150
+ source: `the group '${group}'`,
151
+ screens,
152
+ options
153
+ })), ...(config.errorFallback ? [{
154
+ source: 'the start',
155
+ screens: {
156
+ [START_FAILURE_SCREEN]: startFailureScreen(config.errorFallback)
157
+ }
158
+ }] : [])], {
159
+ ...wrapper,
160
+ provider: config.screenProvider
161
+ });
162
+ // The splash renders before willMount ends: a root of its own, without the app's providers, which may need what
163
+ // willMount prepares.
164
+ if (config.splash) {
165
+ registerScreens([{
166
+ source: 'the splash',
167
+ screens: {
168
+ [SPLASH_SCREEN]: config.splash.component
169
+ },
170
+ ownRoot: true
171
+ }], {
172
+ ...wrapper,
173
+ // A splash that failed to render can't call hide(): the start goes on without waiting for it.
174
+ onError: (error, screen, componentStack) => {
175
+ releaseSplash();
176
+ wrapper.onError?.(error, screen, componentStack);
177
+ }
178
+ });
179
+ }
180
+ }
121
181
  async function mount() {
122
182
  phase = 'mounting';
123
183
  // The state before the first root: the links wait for a newer one, which tells the screen they act from.
@@ -126,52 +186,7 @@ export function createNavigation(config) {
126
186
  let linkHandled = false;
127
187
  try {
128
188
  if (!screensRegistered) {
129
- const wrapper = {
130
- errorFallback: config.errorFallback,
131
- loadingFallback: config.loadingFallback,
132
- onError: config.onError && ((error, screen, componentStack) => config.onError?.(error, {
133
- type: 'screen',
134
- screen,
135
- componentStack
136
- }))
137
- };
138
- registerScreens([{
139
- source: 'screens',
140
- screens: config.screens ?? {}
141
- }, ...Object.entries(config.groups ?? {}).map(([group, {
142
- screens,
143
- options
144
- }]) => ({
145
- source: `the group '${group}'`,
146
- screens,
147
- options
148
- })), ...(config.errorFallback ? [{
149
- source: 'the start',
150
- screens: {
151
- [START_FAILURE_SCREEN]: startFailureScreen(config.errorFallback)
152
- }
153
- }] : [])], {
154
- ...wrapper,
155
- provider: config.screenProvider
156
- });
157
- // The splash renders before willMount ends: a root of its own, without the app's providers, which may need what
158
- // willMount prepares.
159
- if (config.splash) {
160
- registerScreens([{
161
- source: 'the splash',
162
- screens: {
163
- [SPLASH_SCREEN]: config.splash.component
164
- },
165
- ownRoot: true
166
- }], {
167
- ...wrapper,
168
- // A splash that failed to render can't call hide(): the start goes on without waiting for it.
169
- onError: (error, screen, componentStack) => {
170
- releaseSplash();
171
- wrapper.onError?.(error, screen, componentStack);
172
- }
173
- });
174
- }
189
+ registerAppScreens();
175
190
  screensRegistered = true;
176
191
  }
177
192
  // The link that launched the app is asked for first: on iOS the first React content to appear (the host below,
@@ -280,6 +295,7 @@ export function createNavigation(config) {
280
295
  }
281
296
  }
282
297
  async function launch() {
298
+ if (__DEV__) launchedApp = app;
283
299
  setActiveApp({
284
300
  roots: config.roots,
285
301
  presentation: config.presentation,
@@ -289,17 +305,7 @@ export function createNavigation(config) {
289
305
  listening = true;
290
306
  // The edges of `safeArea` go under the app's options; the window's color goes with them, as the native side
291
307
  // takes it from the default options.
292
- initTheme(config.theme, {
293
- under: config.safeArea && {
294
- layout: {
295
- safeAreaEdges: config.safeArea.edges
296
- }
297
- },
298
- options: config.options,
299
- over: config.window && {
300
- window: config.window
301
- }
302
- }, config.direction);
308
+ initTheme(config.theme, appDefaults(), config.direction);
303
309
  if (config.context !== undefined) setAppContext(config.context);
304
310
  if (config.appProvider) enableSlots(config.appProvider);
305
311
  listenToNavigationState();
@@ -308,7 +314,7 @@ export function createNavigation(config) {
308
314
  listenToNativeScreens();
309
315
  listenToSplitViews();
310
316
  listenToNativeScreenCalls();
311
- if (config.listeners) addNavigationListeners(config.listeners);
317
+ if (config.listeners) removeListeners = addNavigationListeners(config.listeners);
312
318
  }
313
319
  launchState.launch++;
314
320
  // A new activity has no default options: the last ones set come back, else the theme's and the app's.
@@ -328,23 +334,139 @@ export function createNavigation(config) {
328
334
  relaunchWaiters.splice(0).forEach(resume => resume());
329
335
  }
330
336
 
331
- // The links listen from now on: one that comes before the native side launches waits for the first root.
332
- if (config.linking) {
333
- setupLinking(config.linking, {
337
+ // The routes of the links, the roots they name and where their errors go.
338
+ function linkingOptions() {
339
+ return {
334
340
  roots: config.roots,
335
341
  onError: config.onError && ((error, url) => config.onError?.(error, {
336
342
  type: 'link',
337
343
  url
338
344
  }))
345
+ };
346
+ }
347
+
348
+ // Fast Refresh ran the module that makes the app again (development): its new config takes the place of the old.
349
+ // What only the start reads (the first root, willMount, the splash, the context) has done its part; the screens, the
350
+ // default options, the roots, the listeners and the links take the new one. A theme the same as before leaves the one
351
+ // the app set since. The providers and fallbacks are in the families of the ones before (`keepStateOf`): React
352
+ // Refresh puts the new ones in place, with the state of what they wrap.
353
+ function update(next) {
354
+ const before = config;
355
+ // The app's one tree is set up at the start, or not: a provider added or taken out starts the app again.
356
+ if (!before.appProvider !== !next.appProvider) {
357
+ DevSettings.reload('[navigation] appProvider was added or taken out');
358
+ return;
359
+ }
360
+ config = next;
361
+ if (screensRegistered) registerAppScreens();
362
+ setActiveApp({
363
+ roots: config.roots,
364
+ presentation: config.presentation,
365
+ mounted
339
366
  });
367
+ // A direction the app set since stays too, unless the edit changes the config's.
368
+ const defaultsBefore = themedDefaultOptions();
369
+ const direction = sameValue(before.direction, next.direction) ? getDirection() : next.direction;
370
+ initTheme(getTheme(), appDefaults(), direction);
371
+ if (!sameValue(before.theme, next.theme)) {
372
+ setTheme(next.theme ?? {});
373
+ } else {
374
+ const defaults = themedDefaultOptions();
375
+ if (!sameValue(defaultsBefore, defaults)) setDefaultOptions(defaults ?? {});
376
+ }
377
+ if (listening) {
378
+ removeListeners?.();
379
+ removeListeners = config.listeners && addNavigationListeners(config.listeners);
380
+ }
381
+ if (config.linking && linkingStarted) updateLinking(config.linking, linkingOptions());else startLinking();
382
+ }
383
+
384
+ // The default options of the app, under and over the theme's.
385
+ function appDefaults() {
386
+ return {
387
+ under: config.safeArea && {
388
+ layout: {
389
+ safeAreaEdges: config.safeArea.edges
390
+ }
391
+ },
392
+ options: config.options,
393
+ over: config.window && {
394
+ window: config.window
395
+ }
396
+ };
397
+ }
398
+
399
+ // The links listen from now on: one that comes before the native side launches waits for the first root.
400
+ let linkingStarted = false;
401
+ function startLinking() {
402
+ if (!config.linking || linkingStarted) return;
403
+ linkingStarted = true;
404
+ setupLinking(config.linking, linkingOptions());
405
+ }
406
+
407
+ // The components of the app keep their state across Fast Refresh, as the screens' do.
408
+ function keepComponentsState() {
409
+ if (!__DEV__) return;
410
+ keepStateOf(app, config.appProvider, 'appProvider');
411
+ keepStateOf(app, config.screenProvider, 'screenProvider');
412
+ keepStateOf(app, config.errorFallback, 'errorFallback');
413
+ keepStateOf(app, config.loadingFallback, 'loadingFallback');
414
+ keepStateOf(app, config.splash?.component, 'splash');
340
415
  }
341
416
  const app = {
342
417
  [NAVIGATION_APP]: true
343
418
  };
344
- starts.set(app, () => reportStart(launch));
419
+ keepComponentsState();
420
+ const start = () => {
421
+ startLinking();
422
+ starts.set(app, () => reportStart(launch));
423
+ if (__DEV__) updates.set(app, update);
424
+ };
425
+ if (!launched) {
426
+ start();
427
+ return app;
428
+ }
429
+ // Once the module ran, Metro has put its exports in the families of the ones of its run before: the same family as
430
+ // the app that launched, or the app's entry registering it under the app's name again (an app it doesn't export),
431
+ // means this is its module again, and the app that runs takes the new config.
432
+ pending.set(app, Promise.resolve().then(() => {
433
+ pending.delete(app);
434
+ const family = familyOf(app);
435
+ if (family && family === familyOf(launched) || replacing.delete(app)) {
436
+ updates.get(launched)?.(config);
437
+ starts.set(app, starts.get(launched));
438
+ updates.set(app, updates.get(launched));
439
+ return;
440
+ }
441
+ watchBackListeners();
442
+ start();
443
+ }));
345
444
  return app;
346
445
  }
347
446
 
447
+ // The app that launched in this runtime, and what takes the config of its module when it runs again (development).
448
+ let launchedApp;
449
+ const updates = new WeakMap();
450
+ // The apps made after the launch until their module ran, and those the app's entry registered again under its name.
451
+ const pending = new WeakMap();
452
+ const replacing = new WeakSet();
453
+
454
+ /**
455
+ * Notes an app the entry file registers under the name of the app that launched: the entry ran again after an edit
456
+ * (development), and the new app is the old one's next version.
457
+ */
458
+ export function noteReplacingApp(app) {
459
+ if (__DEV__ && launchedApp && typeof app === 'object' && app !== null && NAVIGATION_APP in app) {
460
+ replacing.add(app);
461
+ }
462
+ }
463
+
464
+ // The app that launched, when React Refresh runs and a new app may be its module running again: one its module
465
+ // exports (Metro gives it a family), or one the entry registers again under the app's name.
466
+ function hotCandidate() {
467
+ return launchedApp && refreshRuns() ? launchedApp : undefined;
468
+ }
469
+
348
470
  // A willMount that never ends keeps the splash screen for good: in development the app hears of it.
349
471
  function warnIfLong(willMount) {
350
472
  const timer = setTimeout(() => console.warn('[navigation] willMount: still running after 10 s; the splash stays until it ends'), 10_000);
@@ -1 +1 @@
1
- {"version":3,"names":["setDefaultOptions","setRoot","enableSlots","withSlots","listenToNativeScreens","startHost","listenToSplitViews","hasNativeScreenHooks","addNavigationListeners","getNavigationState","listenToNavigationState","watchSideMenus","listenToNativeScreenCalls","buildRoot","withDefaultTransition","registerScreens","getAppContext","setAppContext","initTheme","themedDefaultOptions","setActiveApp","setStartFailure","START_FAILURE_SCREEN","startFailureScreen","releaseSplash","showsSplash","showSplash","SPLASH_ROOT","SPLASH_SCREEN","splashDone","launchState","watchBackListeners","resolveRoot","listenToDispatchedLinks","launchLink","launchRoot","linksRelaunched","linksStarted","reportLink","setupLinking","NAVIGATION_APP","Symbol","starts","WeakMap","startApp","app","start","get","Error","isNavigationApp","value","has","createNavigation","config","phase","screensRegistered","splashChecked","listening","prepared","markMounted","relaunchedWhileMounting","relaunchWaiters","relaunchedAfter","launch","Promise","resolve","push","mounted","prepare","then","willMount","catch","undefined","__DEV__","warnIfLong","firstRoot","context","roots","initialRoot","target","name","param","Array","isArray","root","mount","stateBefore","link","linkHandled","wrapper","errorFallback","loadingFallback","onError","error","screen","componentStack","type","source","screens","Object","entries","groups","map","group","options","provider","screenProvider","splash","component","ownRoot","linkTaken","linking","splashLeaves","id","linked","handled","sent","afterSplash","withTransition","transition","rootLaunch","rootId","setLinkedRoot","url","sentIn","shown","restoreRoot","didMount","showStartFailure","failureShown","retry","reportStart","run","presentation","theme","under","safeArea","layout","safeAreaEdges","edges","over","window","direction","appProvider","listeners","defaultOptions","splice","forEach","resume","set","timer","setTimeout","console","warn","clear","clearTimeout"],"sourceRoot":"../../../../src","sources":["api/app/createNavigation.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DevSettings","setDefaultOptions","setRoot","enableSlots","withSlots","listenToNativeScreens","startHost","sameValue","familyOf","keepStateOf","refreshRuns","listenToSplitViews","hasNativeScreenHooks","addNavigationListeners","getNavigationState","listenToNavigationState","watchSideMenus","listenToNativeScreenCalls","buildRoot","withDefaultTransition","registerScreens","getAppContext","setAppContext","getDirection","getTheme","initTheme","setTheme","themedDefaultOptions","setActiveApp","setStartFailure","START_FAILURE_SCREEN","startFailureScreen","releaseSplash","showsSplash","showSplash","SPLASH_ROOT","SPLASH_SCREEN","splashDone","launchState","watchBackListeners","resolveRoot","listenToDispatchedLinks","launchLink","launchRoot","linksRelaunched","linksStarted","reportLink","setupLinking","updateLinking","NAVIGATION_APP","Symbol","starts","WeakMap","startApp","app","waiting","pending","get","then","start","Error","isNavigationApp","value","has","createNavigation","config","launched","__DEV__","hotCandidate","undefined","phase","screensRegistered","splashChecked","listening","removeListeners","prepared","markMounted","relaunchedWhileMounting","relaunchWaiters","relaunchedAfter","launch","Promise","resolve","push","mounted","prepare","willMount","catch","warnIfLong","firstRoot","context","roots","initialRoot","target","name","param","Array","isArray","root","registerAppScreens","wrapper","errorFallback","loadingFallback","onError","error","screen","componentStack","type","source","screens","Object","entries","groups","map","group","options","provider","screenProvider","splash","component","ownRoot","mount","stateBefore","link","linkHandled","linkTaken","linking","splashLeaves","id","linked","handled","sent","afterSplash","withTransition","transition","rootLaunch","rootId","setLinkedRoot","url","sentIn","shown","restoreRoot","didMount","showStartFailure","failureShown","retry","reportStart","run","launchedApp","presentation","theme","appDefaults","direction","appProvider","listeners","defaultOptions","splice","forEach","resume","linkingOptions","update","next","before","reload","defaultsBefore","defaults","linkingStarted","startLinking","under","safeArea","layout","safeAreaEdges","edges","over","window","keepComponentsState","set","updates","delete","family","replacing","WeakSet","noteReplacingApp","add","timer","setTimeout","console","warn","clear","clearTimeout"],"sourceRoot":"../../../../src","sources":["api/app/createNavigation.ts"],"mappings":"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","ignoreList":[]}
@@ -59,11 +59,15 @@ export function onNavigationEvent(name, handler) {
59
59
  return onNativeEvent(nativeName, deliver);
60
60
  }
61
61
 
62
- /** Listens to the events of `listeners`, for as long as the app runs. */
62
+ /** Listens to the events of `listeners` until the function it gives is called. */
63
63
  export function addNavigationListeners(listeners) {
64
+ const removers = [];
64
65
  for (const name of Object.keys(listeners)) {
65
66
  const handler = listeners[name];
66
- if (handler) onNavigationEvent(name, handler);
67
+ if (handler) {
68
+ removers.push(onNavigationEvent(name, handler));
69
+ }
67
70
  }
71
+ return () => removers.forEach(remove => remove());
68
72
  }
69
73
  //# sourceMappingURL=navigationEvents.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["toScreenEvent","onNativeEvent","onNavigationStateChange","SCREEN_EVENTS","Set","NATIVE_EVENTS","screenWillAppear","screenDidAppear","screenDidDisappear","screenPopped","buttonPressed","tabSelected","tabPressed","tabLongPressed","modalDismissed","modalDismissAttempted","searchChanged","searchSubmitted","searchCancelled","searchSuggestionPicked","sheetDetentChanged","splitViewDisplayModeChanged","keyCommandPressed","titleRenamed","accessoryPlacementChanged","previewCompleted","SCREEN_APPEARANCE","onNavigationEvent","name","handler","deliver","nativeName","has","event","componentType","addNavigationListeners","listeners","Object","keys"],"sourceRoot":"../../../../src","sources":["api/events/navigationEvents.ts"],"mappings":";;AAAA,SAA6BA,aAAa,QAAQ,wBAAqB;AACvE,SAASC,aAAa,QAAQ,wBAAqB;AAyBnD,SAA+BC,uBAAuB,QAAQ,6BAA0B;;AAExF;;AAuCA;;AAsBA;AACA,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAAsB,CACjD,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,CACnB,CAAC;;AAEF;;AAKA;AACA,MAAMC,aAAiF,GAAG;EACxFC,gBAAgB,EAAE,qBAAqB;EACvCC,eAAe,EAAE,oBAAoB;EACrCC,kBAAkB,EAAE,uBAAuB;EAC3CC,YAAY,EAAE,cAAc;EAC5BC,aAAa,EAAE,yBAAyB;EACxCC,WAAW,EAAE,mBAAmB;EAChCC,UAAU,EAAE,kBAAkB;EAC9BC,cAAc,EAAE,sBAAsB;EACtCC,cAAc,EAAE,gBAAgB;EAChCC,qBAAqB,EAAE,yBAAyB;EAChDC,aAAa,EAAE,kBAAkB;EACjCC,eAAe,EAAE,oBAAoB;EACrCC,eAAe,EAAE,wBAAwB;EACzCC,sBAAsB,EAAE,wBAAwB;EAChDC,kBAAkB,EAAE,oBAAoB;EACxCC,2BAA2B,EAAE,6BAA6B;EAC1DC,iBAAiB,EAAE,mBAAmB;EACtCC,YAAY,EAAE,cAAc;EAC5BC,yBAAyB,EAAE,iCAAiC;EAC5DC,gBAAgB,EAAE;AACpB,CAAC;;AAED;AACA,MAAMC,iBAAiB,GAAG,IAAItB,GAAG,CAAsB,CACrD,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,CACrB,CAAC;;AAEF;AACA,OAAO,SAASuB,iBAAiBA,CAC/BC,IAAU,EACVC,OAAgD,EACpC;EACZ;EACA,IAAID,IAAI,KAAK,cAAc,EAAE;IAC3B,OAAO1B,uBAAuB,CAAC2B,OAA2C,CAAC;EAC7E;EACA,MAAMC,OAAO,GAAGD,OAAmC;EACnD,MAAME,UAAU,GAAG1B,aAAa,CAACuB,IAAI,CAA+B;EACpE,IAAIF,iBAAiB,CAACM,GAAG,CAACJ,IAAI,CAAC,EAAE;IAC/B,OAAO3B,aAAa,CAAiD8B,UAAU,EAAGE,KAAK,IAAK;MAC1F,IAAIA,KAAK,CAACC,aAAa,KAAK,WAAW,EAAEJ,OAAO,CAAC9B,aAAa,CAACiC,KAAK,CAAC,CAAC;IACxE,CAAC,CAAC;EACJ;EACA,IAAI9B,aAAa,CAAC6B,GAAG,CAACJ,IAAI,CAAC,EAAE;IAC3B,OAAO3B,aAAa,CAA0B8B,UAAU,EAAGE,KAAK,IAC9DH,OAAO,CAAC9B,aAAa,CAACiC,KAAK,CAAC,CAC9B,CAAC;EACH;EACA,OAAOhC,aAAa,CAAC8B,UAAU,EAAED,OAAO,CAAC;AAC3C;;AAEA;AACA,OAAO,SAASK,sBAAsBA,CAACC,SAA8B,EAAE;EACrE,KAAK,MAAMR,IAAI,IAAIS,MAAM,CAACC,IAAI,CAACF,SAAS,CAAC,EAA2B;IAClE,MAAMP,OAAO,GAAGO,SAAS,CAACR,IAAI,CAAC;IAC/B,IAAIC,OAAO,EAAEF,iBAAiB,CAACC,IAAI,EAAEC,OAAyD,CAAC;EACjG;AACF","ignoreList":[]}
1
+ {"version":3,"names":["toScreenEvent","onNativeEvent","onNavigationStateChange","SCREEN_EVENTS","Set","NATIVE_EVENTS","screenWillAppear","screenDidAppear","screenDidDisappear","screenPopped","buttonPressed","tabSelected","tabPressed","tabLongPressed","modalDismissed","modalDismissAttempted","searchChanged","searchSubmitted","searchCancelled","searchSuggestionPicked","sheetDetentChanged","splitViewDisplayModeChanged","keyCommandPressed","titleRenamed","accessoryPlacementChanged","previewCompleted","SCREEN_APPEARANCE","onNavigationEvent","name","handler","deliver","nativeName","has","event","componentType","addNavigationListeners","listeners","removers","Object","keys","push","forEach","remove"],"sourceRoot":"../../../../src","sources":["api/events/navigationEvents.ts"],"mappings":";;AAAA,SAA6BA,aAAa,QAAQ,wBAAqB;AACvE,SAASC,aAAa,QAAQ,wBAAqB;AAyBnD,SAA+BC,uBAAuB,QAAQ,6BAA0B;;AAExF;;AAuCA;;AAsBA;AACA,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAAsB,CACjD,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,CACnB,CAAC;;AAEF;;AAKA;AACA,MAAMC,aAAiF,GAAG;EACxFC,gBAAgB,EAAE,qBAAqB;EACvCC,eAAe,EAAE,oBAAoB;EACrCC,kBAAkB,EAAE,uBAAuB;EAC3CC,YAAY,EAAE,cAAc;EAC5BC,aAAa,EAAE,yBAAyB;EACxCC,WAAW,EAAE,mBAAmB;EAChCC,UAAU,EAAE,kBAAkB;EAC9BC,cAAc,EAAE,sBAAsB;EACtCC,cAAc,EAAE,gBAAgB;EAChCC,qBAAqB,EAAE,yBAAyB;EAChDC,aAAa,EAAE,kBAAkB;EACjCC,eAAe,EAAE,oBAAoB;EACrCC,eAAe,EAAE,wBAAwB;EACzCC,sBAAsB,EAAE,wBAAwB;EAChDC,kBAAkB,EAAE,oBAAoB;EACxCC,2BAA2B,EAAE,6BAA6B;EAC1DC,iBAAiB,EAAE,mBAAmB;EACtCC,YAAY,EAAE,cAAc;EAC5BC,yBAAyB,EAAE,iCAAiC;EAC5DC,gBAAgB,EAAE;AACpB,CAAC;;AAED;AACA,MAAMC,iBAAiB,GAAG,IAAItB,GAAG,CAAsB,CACrD,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,CACrB,CAAC;;AAEF;AACA,OAAO,SAASuB,iBAAiBA,CAC/BC,IAAU,EACVC,OAAgD,EACpC;EACZ;EACA,IAAID,IAAI,KAAK,cAAc,EAAE;IAC3B,OAAO1B,uBAAuB,CAAC2B,OAA2C,CAAC;EAC7E;EACA,MAAMC,OAAO,GAAGD,OAAmC;EACnD,MAAME,UAAU,GAAG1B,aAAa,CAACuB,IAAI,CAA+B;EACpE,IAAIF,iBAAiB,CAACM,GAAG,CAACJ,IAAI,CAAC,EAAE;IAC/B,OAAO3B,aAAa,CAAiD8B,UAAU,EAAGE,KAAK,IAAK;MAC1F,IAAIA,KAAK,CAACC,aAAa,KAAK,WAAW,EAAEJ,OAAO,CAAC9B,aAAa,CAACiC,KAAK,CAAC,CAAC;IACxE,CAAC,CAAC;EACJ;EACA,IAAI9B,aAAa,CAAC6B,GAAG,CAACJ,IAAI,CAAC,EAAE;IAC3B,OAAO3B,aAAa,CAA0B8B,UAAU,EAAGE,KAAK,IAC9DH,OAAO,CAAC9B,aAAa,CAACiC,KAAK,CAAC,CAC9B,CAAC;EACH;EACA,OAAOhC,aAAa,CAAC8B,UAAU,EAAED,OAAO,CAAC;AAC3C;;AAEA;AACA,OAAO,SAASK,sBAAsBA,CAACC,SAA8B,EAAc;EACjF,MAAMC,QAAwB,GAAG,EAAE;EACnC,KAAK,MAAMT,IAAI,IAAIU,MAAM,CAACC,IAAI,CAACH,SAAS,CAAC,EAA2B;IAClE,MAAMP,OAAO,GAAGO,SAAS,CAACR,IAAI,CAAC;IAC/B,IAAIC,OAAO,EAAE;MACXQ,QAAQ,CAACG,IAAI,CACXb,iBAAiB,CAACC,IAAI,EAAEC,OAAyD,CACnF,CAAC;IACH;EACF;EACA,OAAO,MAAMQ,QAAQ,CAACI,OAAO,CAAEC,MAAM,IAAKA,MAAM,CAAC,CAAC,CAAC;AACrD","ignoreList":[]}
@@ -7,13 +7,14 @@ import { useScreen } from "./screenHooks.js";
7
7
  /**
8
8
  * How much of this screen's content the bars and the system still cover on each side, past what the screen keeps its
9
9
  * content off itself (`layout.safeAreaEdges`): 0 on an edge the screen pads, the whole inset on an edge its content goes
10
- * under — under a top bar, under the vertical bar at the side of iPhone Duo, every edge with `safeAreaEdges: []`. A list
11
- * adds exactly this to its own padding. The native side measures every screen on its own, also the screens of
10
+ * under — the bottom by default (the home indicator, the navigation bar, a tab bar or toolbar the screen goes under),
11
+ * under a top bar, under the vertical bar at the side of iPhone Duo, every edge with `safeAreaEdges: []`. A list adds
12
+ * exactly this to its own padding. The native side measures every screen on its own, also the screens of
12
13
  * `appProvider`.
13
14
  *
14
15
  * @example
15
16
  * const insets = useSafeAreaInsets();
16
- * <ScrollView contentContainerStyle={{ paddingLeft: 16 + insets.left, paddingRight: 16 + insets.right }} />
17
+ * <ScrollView contentContainerStyle={{ paddingBottom: 16 + insets.bottom }} />
17
18
  */
18
19
  export function useSafeAreaInsets() {
19
20
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useSyncExternalStore","getScreenInsets","subscribeScreenInsets","useScreen","useSafeAreaInsets","id","subscribe","onChange"],"sourceRoot":"../../../../src","sources":["api/hooks/useSafeAreaInsets.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,oBAAoB,QAAQ,OAAO;AACzD,SAA0BC,eAAe,EAAEC,qBAAqB,QAAQ,6BAA0B;AAClG,SAASC,SAAS,QAAQ,kBAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAe;EAC9C,MAAM;IAAEC;EAAG,CAAC,GAAGF,SAAS,CAAC,CAAC;EAC1B,MAAMG,SAAS,GAAGP,WAAW,CAC1BQ,QAAoB,IAAKL,qBAAqB,CAACG,EAAE,EAAEE,QAAQ,CAAC,EAC7D,CAACF,EAAE,CACL,CAAC;EACD,OAAOL,oBAAoB,CAACM,SAAS,EAAE,MAAML,eAAe,CAACI,EAAE,CAAC,CAAC;AACnE","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useSyncExternalStore","getScreenInsets","subscribeScreenInsets","useScreen","useSafeAreaInsets","id","subscribe","onChange"],"sourceRoot":"../../../../src","sources":["api/hooks/useSafeAreaInsets.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,oBAAoB,QAAQ,OAAO;AACzD,SAA0BC,eAAe,EAAEC,qBAAqB,QAAQ,6BAA0B;AAClG,SAASC,SAAS,QAAQ,kBAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAA,EAAe;EAC9C,MAAM;IAAEC;EAAG,CAAC,GAAGF,SAAS,CAAC,CAAC;EAC1B,MAAMG,SAAS,GAAGP,WAAW,CAC1BQ,QAAoB,IAAKL,qBAAqB,CAACG,EAAE,EAAEE,QAAQ,CAAC,EAC7D,CAACF,EAAE,CACL,CAAC;EACD,OAAOL,oBAAoB,CAACM,SAAS,EAAE,MAAML,eAAe,CAACI,EAAE,CAAC,CAAC;AACnE","ignoreList":[]}
@@ -48,6 +48,17 @@ export function setupLinking(linking, options) {
48
48
  setPendingLinkOpener(link => run(link, routeOf(link), false));
49
49
  }
50
50
 
51
+ /**
52
+ * Takes the routes, the roots and `onError` of an app whose module ran again after an edit (Fast Refresh, development):
53
+ * the links that come from now on find the new routes.
54
+ */
55
+ export function updateLinking(linking, options) {
56
+ config = linking;
57
+ roots = options.roots;
58
+ onError = options.onError;
59
+ routes = compileRoutes(Object.keys(linking.routes));
60
+ }
61
+
51
62
  /**
52
63
  * The link that launched the app, matched as the app starts (`unmatched` may run commands then); the same one for
53
64
  * every try of the first start.
@@ -1 +1 @@
1
- {"version":3,"names":["Linking","Platform","getLaunchLink","resolveRoot","commandsStarted","whenCommandsSettle","getAppContext","subscribeAppContext","buildRoot","navigation","getNavigationState","whenScreenAfter","compileRoutes","matchLink","parseLink","getPendingLink","setPendingLink","setPendingLinkOpener","config","roots","routes","onError","started","early","launchUrl","launch","pendingCheck","whenFailed","Set","setupLinking","linking","options","OS","takeLaunchUrl","Object","keys","addEventListener","url","receive","openPendingWhenAllowed","link","run","routeOf","launchLink","then","find","undefined","catch","Promise","resolve","launchRoot","handled","route","start","allowed","root","toRoot","params","infoOf","error","report","reportLink","linksStarted","stateBefore","handle","splice","forEach","next","initial","linksRelaunched","push","parsed","prefixes","unmatched","__DEV__","console","warn","when","has","add","path","pattern","query","info","props","open","switchToTarget","target","switchTo","Array","isArray","slice","pending","commandsBefore","setTimeout"],"sourceRoot":"../../../../src","sources":["api/linking/linking.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Linking","Platform","getLaunchLink","resolveRoot","commandsStarted","whenCommandsSettle","getAppContext","subscribeAppContext","buildRoot","navigation","getNavigationState","whenScreenAfter","compileRoutes","matchLink","parseLink","getPendingLink","setPendingLink","setPendingLinkOpener","config","roots","routes","onError","started","early","launchUrl","launch","pendingCheck","whenFailed","Set","setupLinking","linking","options","OS","takeLaunchUrl","Object","keys","addEventListener","url","receive","openPendingWhenAllowed","link","run","routeOf","updateLinking","launchLink","then","find","undefined","catch","Promise","resolve","launchRoot","handled","route","start","allowed","root","toRoot","params","infoOf","error","report","reportLink","linksStarted","stateBefore","handle","splice","forEach","next","initial","linksRelaunched","push","parsed","prefixes","unmatched","__DEV__","console","warn","when","has","add","path","pattern","query","info","props","open","switchToTarget","target","switchTo","Array","isArray","slice","pending","commandsBefore","setTimeout"],"sourceRoot":"../../../../src","sources":["api/linking/linking.ts"],"mappings":"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","ignoreList":[]}
@@ -65,8 +65,8 @@ export class OptionsChain {
65
65
 
66
66
  /**
67
67
  * The edges on which the screen keeps its content out of its safe area (bars, status bar, home indicator, cutout);
68
- * none with no edge. Without it: all four on Android, and on iOS every edge but those where the content goes under
69
- * a bar. On iOS a large title leaves the top out by itself.
68
+ * none with no edge. Without it: the top and the sides, but those where the content goes under a bar; the bottom is
69
+ * free, and a list keeps clear of it with `useSafeAreaInsets()`. A large title leaves the top out by itself.
70
70
  */
71
71
  safeArea(...edges) {
72
72
  return this.layout({
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ import { createElement } from 'react';
4
+ import { keepStateOf, newestType, redefined } from "../../engine/refresh.js";
3
5
  import { getAppContext } from "../context/appContext.js";
4
6
  import { readScreenOptions, ScreenOptions } from "../options/ScreenOptions.js";
5
7
  import { getTheme } from "../theme/theme.js";
@@ -10,12 +12,52 @@ import { getTheme } from "../theme/theme.js";
10
12
 
11
13
  /** A screen with what goes with it. */
12
14
 
15
+ const SCREEN_DEFINITION = Symbol('apexnative.navigation.screenDefinition');
16
+
17
+ /**
18
+ * A screen of `defineScreen`: a component of its own, which renders the screen's component and carries the screen's
19
+ * definition. It goes right into `screens` of createNavigation, and rendered on its own (a test) it renders the screen.
20
+ */
21
+
13
22
  /**
14
- * Describes a screen next to its component, so its registration stays one line. The same object can go right into
15
- * `screens` of createNavigation.
23
+ * Describes a screen next to its component, so its registration stays one line. It gives a component that renders the
24
+ * screen and goes right into `screens` of createNavigation: a file that exports only its screens stays a boundary of
25
+ * Fast Refresh, so an edit of the screen, its options too, updates it in place instead of reloading the app.
16
26
  */
17
27
  export function defineScreen(definition) {
18
- return definition;
28
+ const {
29
+ component
30
+ } = definition;
31
+ // A component of each definition, so the app's own component stays as it is for any other use of it.
32
+ const Component = component;
33
+ function Screen(props) {
34
+ return /*#__PURE__*/createElement(Component, props);
35
+ }
36
+ Screen.displayName = component.displayName ?? component.name;
37
+ Object.defineProperty(Screen, SCREEN_DEFINITION, {
38
+ value: definition
39
+ });
40
+ keepStateOf(Screen, component);
41
+ redefined(Screen);
42
+ return Screen;
43
+ }
44
+
45
+ /**
46
+ * The definition a screen of `defineScreen` carries, the newest one after Fast Refresh ran the screen's module again;
47
+ * undefined for anything else.
48
+ */
49
+ export function definitionOf(value) {
50
+ return isDefinedScreen(value) ? ownDefinitionOf(newestType(value)) : undefined;
51
+ }
52
+
53
+ /** The definition a screen of `defineScreen` carries itself, not a newer one; undefined for anything else. */
54
+ export function ownDefinitionOf(value) {
55
+ return isDefinedScreen(value) ? value[SCREEN_DEFINITION] : undefined;
56
+ }
57
+
58
+ /** Whether the value is a screen of `defineScreen`. */
59
+ export function isDefinedScreen(value) {
60
+ return (typeof value === 'function' || typeof value === 'object') && value !== null && SCREEN_DEFINITION in value;
19
61
  }
20
62
  export function buildScreenOptions(input, props) {
21
63
  if (!input) return {};