@apexnative/navigation 1.0.0-alpha.0 → 1.0.0-alpha.10

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 (574) hide show
  1. package/ApexNavigation.podspec +2 -1
  2. package/CHANGELOG.md +128 -0
  3. package/README.md +147 -51
  4. package/android/CLAUDE.md +78 -25
  5. package/android/CORE.md +49 -25
  6. package/android/RECIPES.md +13 -6
  7. package/android/consumer-rules.pro +6 -0
  8. package/android/src/main/java/dev/apexnative/navigation/NavigationActivity.kt +85 -10
  9. package/android/src/main/java/dev/apexnative/navigation/NavigationApplication.kt +34 -13
  10. package/android/src/main/java/dev/apexnative/navigation/layout/LayoutChecks.kt +5 -1
  11. package/android/src/main/java/dev/apexnative/navigation/layout/LayoutNode.kt +6 -2
  12. package/android/src/main/java/dev/apexnative/navigation/nativescreen/NativeScreenContext.kt +2 -2
  13. package/android/src/main/java/dev/apexnative/navigation/options/AnimationsOptions.kt +2 -2
  14. package/android/src/main/java/dev/apexnative/navigation/options/BottomTabOptions.kt +1 -1
  15. package/android/src/main/java/dev/apexnative/navigation/options/BottomTabsOptions.kt +13 -8
  16. package/android/src/main/java/dev/apexnative/navigation/options/ButtonMenuOptions.kt +2 -2
  17. package/android/src/main/java/dev/apexnative/navigation/options/ButtonOptions.kt +3 -3
  18. package/android/src/main/java/dev/apexnative/navigation/options/HardwareBackButtonOptions.kt +9 -1
  19. package/android/src/main/java/dev/apexnative/navigation/options/LargeTitleOptions.kt +1 -1
  20. package/android/src/main/java/dev/apexnative/navigation/options/LayoutAnimation.kt +1 -1
  21. package/android/src/main/java/dev/apexnative/navigation/options/OptionKey.kt +18 -0
  22. package/android/src/main/java/dev/apexnative/navigation/options/OptionPaths.kt +91 -0
  23. package/android/src/main/java/dev/apexnative/navigation/options/OptionsCache.kt +8 -4
  24. package/android/src/main/java/dev/apexnative/navigation/options/SheetOptions.kt +7 -4
  25. package/android/src/main/java/dev/apexnative/navigation/options/SideMenuOptions.kt +6 -1
  26. package/android/src/main/java/dev/apexnative/navigation/options/StackAnimationOptions.kt +40 -2
  27. package/android/src/main/java/dev/apexnative/navigation/options/StatusBarOptions.kt +7 -3
  28. package/android/src/main/java/dev/apexnative/navigation/options/TitleOptions.kt +2 -2
  29. package/android/src/main/java/dev/apexnative/navigation/options/TopBarAppearanceOptions.kt +1 -1
  30. package/android/src/main/java/dev/apexnative/navigation/options/TopBarOptions.kt +16 -7
  31. package/android/src/main/java/dev/apexnative/navigation/options/UserChoices.kt +159 -0
  32. package/android/src/main/java/dev/apexnative/navigation/react/CommandAnswer.kt +29 -36
  33. package/android/src/main/java/dev/apexnative/navigation/react/CommandContract.kt +59 -0
  34. package/android/src/main/java/dev/apexnative/navigation/react/ContentHeights.kt +95 -0
  35. package/android/src/main/java/dev/apexnative/navigation/react/ContentMounts.kt +66 -0
  36. package/android/src/main/java/dev/apexnative/navigation/react/ErrorTexts.kt +75 -60
  37. package/android/src/main/java/dev/apexnative/navigation/react/Hinge.kt +35 -23
  38. package/android/src/main/java/dev/apexnative/navigation/react/NavigationTurboModule.kt +12 -7
  39. package/android/src/main/java/dev/apexnative/navigation/react/OptionsCommands.kt +42 -4
  40. package/android/src/main/java/dev/apexnative/navigation/react/PendingCalls.kt +48 -0
  41. package/android/src/main/java/dev/apexnative/navigation/react/ReactView.kt +54 -20
  42. package/android/src/main/java/dev/apexnative/navigation/react/ReloadCoordinator.kt +7 -6
  43. package/android/src/main/java/dev/apexnative/navigation/react/ScreenEnvironment.kt +177 -0
  44. package/android/src/main/java/dev/apexnative/navigation/react/ScreenRegions.kt +19 -50
  45. package/android/src/main/java/dev/apexnative/navigation/react/ScrollEvents.kt +49 -128
  46. package/android/src/main/java/dev/apexnative/navigation/react/events/AppearanceDispatcher.kt +50 -81
  47. package/android/src/main/java/dev/apexnative/navigation/react/events/EventContract.kt +226 -0
  48. package/android/src/main/java/dev/apexnative/navigation/react/events/EventEmitter.kt +135 -94
  49. package/android/src/main/java/dev/apexnative/navigation/react/events/NavigationState.kt +154 -0
  50. package/android/src/main/java/dev/apexnative/navigation/react/events/ScreenAppearance.kt +0 -6
  51. package/android/src/main/java/dev/apexnative/navigation/safearea/SafeAreaView.kt +12 -10
  52. package/android/src/main/java/dev/apexnative/navigation/slots/SlotContainers.kt +10 -7
  53. package/android/src/main/java/dev/apexnative/navigation/slots/SlotScreenView.kt +39 -19
  54. package/android/src/main/java/dev/apexnative/navigation/slots/SlotView.kt +16 -4
  55. package/android/src/main/java/dev/apexnative/navigation/slots/SlotViews.kt +40 -0
  56. package/android/src/main/java/dev/apexnative/navigation/utils/ImageKey.kt +66 -0
  57. package/android/src/main/java/dev/apexnative/navigation/utils/ImageLoader.kt +7 -89
  58. package/android/src/main/java/dev/apexnative/navigation/utils/ImageRequests.kt +76 -0
  59. package/android/src/main/java/dev/apexnative/navigation/utils/MaterialTheme.kt +5 -6
  60. package/android/src/main/java/dev/apexnative/navigation/utils/OptionImages.kt +262 -0
  61. package/android/src/main/java/dev/apexnative/navigation/utils/SystemAnimations.kt +36 -0
  62. package/android/src/main/java/dev/apexnative/navigation/utils/UiUtils.kt +3 -3
  63. package/android/src/main/java/dev/apexnative/navigation/utils/ViewController.kt +3 -1
  64. package/android/src/main/java/dev/apexnative/navigation/utils/ViewExtensions.kt +0 -13
  65. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/ArrangementController.kt +10 -7
  66. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/arrangement/SecondaryScreenPresenter.kt +13 -5
  67. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/AppliedTabCalls.kt +49 -0
  68. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsCollapseBehavior.kt +5 -3
  69. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsController.kt +108 -34
  70. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/BottomTabsPresenter.kt +25 -24
  71. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/CustomTabRowGeometry.kt +22 -0
  72. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabItems.kt +3 -3
  73. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/TabsRoom.kt +0 -5
  74. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ComponentPresenter.kt +28 -7
  75. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ComponentViewController.kt +12 -9
  76. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ContentReadiness.kt +2 -2
  77. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/RenderWait.kt +27 -7
  78. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenFrame.kt +1 -1
  79. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenReadiness.kt +103 -56
  80. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/component/ScreenSafeArea.kt +29 -11
  81. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/externalcomponent/ExternalComponentViewController.kt +2 -6
  82. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalAnimations.kt +22 -24
  83. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalCoordinator.kt +109 -21
  84. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalRecord.kt +21 -6
  85. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalSheet.kt +476 -73
  86. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalViews.kt +57 -25
  87. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/SheetBack.kt +42 -0
  88. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/SheetStops.kt +83 -0
  89. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/BackCallbackCheck.kt +50 -0
  90. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/BackCallbackState.kt +49 -14
  91. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/Navigator.kt +71 -12
  92. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/navigator/RootCoordinator.kt +37 -11
  93. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/overlay/OverlayCoordinator.kt +10 -8
  94. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/Capabilities.kt +11 -4
  95. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/ContainerBackground.kt +3 -3
  96. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/parent/ParentController.kt +6 -6
  97. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuController.kt +42 -9
  98. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuMotion.kt +19 -8
  99. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuPresenter.kt +16 -7
  100. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuRules.kt +43 -4
  101. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitPanes.kt +23 -0
  102. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/splitview/SplitViewController.kt +77 -17
  103. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/BackPreview.kt +315 -0
  104. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/PreparedFrame.kt +3 -3
  105. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackCommands.kt +30 -20
  106. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackController.kt +216 -18
  107. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackDisplay.kt +26 -1
  108. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackQueue.kt +149 -41
  109. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackTransitions.kt +26 -8
  110. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackViews.kt +115 -6
  111. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabMotion.kt +142 -0
  112. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabPresenter.kt +222 -48
  113. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/ScreenSearch.kt +3 -5
  114. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/StackSearchPresenter.kt +30 -34
  115. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/BarComponents.kt +5 -51
  116. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/BarRowTransition.kt +3 -2
  117. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/ButtonPlaces.kt +11 -5
  118. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/MenuChecks.kt +13 -56
  119. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarPresenter.kt +219 -54
  120. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarVisibility.kt +9 -2
  121. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/viewcontroller/ScrollEventListener.kt +6 -9
  122. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/viewcontroller/ViewController.kt +75 -21
  123. package/android/src/main/java/dev/apexnative/navigation/views/animations/AnimationLayer.kt +73 -0
  124. package/android/src/main/java/dev/apexnative/navigation/views/animations/Curves.kt +29 -11
  125. package/android/src/main/java/dev/apexnative/navigation/views/animations/ValueInterpolation.kt +14 -0
  126. package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/BottomTabs.kt +9 -7
  127. package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/BottomTabsLayout.kt +61 -2
  128. package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/CustomBottomTabItemView.kt +0 -5
  129. package/android/src/main/java/dev/apexnative/navigation/views/bottomtabs/CustomTabRow.kt +72 -10
  130. package/android/src/main/java/dev/apexnative/navigation/views/element/ElementStep.kt +31 -0
  131. package/android/src/main/java/dev/apexnative/navigation/views/element/ElementTransitions.kt +143 -135
  132. package/android/src/main/java/dev/apexnative/navigation/views/element/TargetsWait.kt +13 -5
  133. package/android/src/main/java/dev/apexnative/navigation/views/element/TransitionLayer.kt +37 -112
  134. package/android/src/main/java/dev/apexnative/navigation/views/element/TransitionTargets.kt +9 -6
  135. package/android/src/main/java/dev/apexnative/navigation/views/element/TransitionViews.kt +100 -0
  136. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ElementPictures.kt +112 -4
  137. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/FlightGeometry.kt +346 -36
  138. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ImageMorph.kt +199 -0
  139. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/SharedAnimatorFactory.kt +56 -41
  140. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/TextMorph.kt +176 -0
  141. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ViewMorph.kt +108 -0
  142. package/android/src/main/java/dev/apexnative/navigation/views/sidemenu/SideMenuView.kt +12 -3
  143. package/android/src/main/java/dev/apexnative/navigation/views/stack/ScreenEdge.kt +45 -0
  144. package/android/src/main/java/dev/apexnative/navigation/views/stack/StackLayout.kt +140 -1
  145. package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/Fab.kt +14 -10
  146. package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabCopy.kt +85 -0
  147. package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabMenu.kt +13 -0
  148. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TitleBar.kt +5 -17
  149. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TopBar.kt +73 -34
  150. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarButtonComponentCell.kt +6 -6
  151. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarButtonView.kt +113 -0
  152. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarMenu.kt +219 -0
  153. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonBar.kt +125 -178
  154. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonMenus.kt +34 -64
  155. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonRow.kt +216 -0
  156. package/android/src/main/jni/ANNContentHeights.cpp +82 -0
  157. package/android/src/main/res/drawable/apex_navigation_ic_arrow_right.xml +14 -0
  158. package/android/src/main/res/layout/apex_navigation_menu_header.xml +19 -0
  159. package/android/src/main/res/layout/apex_navigation_menu_item.xml +68 -0
  160. package/android/src/main/res/values/styles.xml +1 -1
  161. package/android/src/main/res/values-night/styles.xml +1 -1
  162. package/cli/app.js +1 -1
  163. package/cli/doctor/checks/app.js +77 -14
  164. package/cli/doctor/checks/splash.js +4 -22
  165. package/cli/migrate/native.js +18 -0
  166. package/cli/project.js +10 -2
  167. package/cli/setup/index.js +18 -0
  168. package/cli/setup/source.js +2 -1
  169. package/cli/setup/steps/appDelegate.js +66 -11
  170. package/cli/setup/steps/mainApplication.js +134 -19
  171. package/cli/setup/steps/metro.js +46 -0
  172. package/cli/setup/steps/sceneDelegate.js +108 -0
  173. package/cli/splash/index.js +3 -1
  174. package/cli/upgrade/changelog.js +2 -2
  175. package/docs-md/architecture/native-screens.md +4 -0
  176. package/docs-md/architecture/theme-and-context.md +131 -12
  177. package/docs-md/architecture/transitions.md +58 -12
  178. package/docs-md/containers/modals.md +8 -4
  179. package/docs-md/containers/overlays.md +3 -1
  180. package/docs-md/containers/side-menu.md +19 -2
  181. package/docs-md/containers/tabs.md +5 -1
  182. package/docs-md/flows/bottom-sheets.md +4 -2
  183. package/docs-md/flows/forms-in-a-modal.md +1 -1
  184. package/docs-md/fundamentals/screens-and-props.md +9 -1
  185. package/docs-md/fundamentals/starting-the-app.md +1 -1
  186. package/docs-md/guides/cli.md +4 -3
  187. package/docs-md/guides/deep-links.md +15 -33
  188. package/docs-md/help/glossary.md +4 -4
  189. package/docs-md/help/troubleshooting.md +44 -6
  190. package/docs-md/index.json +57 -1
  191. package/docs-md/migration/from-expo-router.md +1 -1
  192. package/docs-md/migration/from-react-native-navigation.md +9 -3
  193. package/docs-md/migration/from-react-navigation.md +2 -2
  194. package/docs-md/screen-ui/back-and-gestures.md +46 -2
  195. package/docs-md/screen-ui/bar-buttons.md +5 -5
  196. package/docs-md/screen-ui/search.md +1 -1
  197. package/docs-md/screen-ui/system-ui.md +17 -12
  198. package/docs-md/screen-ui/toolbar-and-fab.md +4 -2
  199. package/docs-md/screen-ui/top-bar.md +8 -4
  200. package/docs-md/start/installation.md +21 -3
  201. package/ios/Animations/ANNFrameDriver.h +55 -15
  202. package/ios/Animations/ANNFrameDriver.mm +216 -60
  203. package/ios/Animations/ANNTransitionAnimator.h +26 -5
  204. package/ios/Animations/ANNTransitionAnimator.mm +61 -13
  205. package/ios/Animations/ANNTransitionPlan.h +2 -2
  206. package/ios/Animations/ANNTransitionPlan.mm +10 -0
  207. package/ios/Animations/ANNTransitionWait.mm +6 -7
  208. package/ios/Animations/Elements/ANNElementFinder.h +57 -0
  209. package/ios/Animations/Elements/ANNElementFinder.mm +174 -2
  210. package/ios/Animations/Elements/ANNElementTransition.h +10 -8
  211. package/ios/Animations/Elements/ANNElementTransition.mm +19 -21
  212. package/ios/Animations/Elements/ANNSharedElementFlight.h +16 -11
  213. package/ios/Animations/Elements/ANNSharedElementFlight.mm +308 -69
  214. package/ios/Animations/Interpolators/ANNInterpolate.h +2 -30
  215. package/ios/Animations/Interpolators/ANNTransformParts.h +48 -0
  216. package/ios/Animations/Interpolators/ANNTransformParts.mm +507 -0
  217. package/ios/Animations/Interpolators/ANNViewTracks.h +9 -6
  218. package/ios/Animations/Interpolators/ANNViewTracks.mm +100 -30
  219. package/ios/CLAUDE.md +60 -24
  220. package/ios/CORE.md +44 -34
  221. package/ios/Contract/ANNCommandAnswer.h +13 -5
  222. package/ios/Contract/ANNCommandAnswer.mm +40 -32
  223. package/ios/Contract/ANNCommandContract.h +15 -0
  224. package/ios/Contract/ANNCommandContract.mm +78 -0
  225. package/ios/Contract/ANNCommandRunner.h +10 -9
  226. package/ios/Contract/ANNCommandRunner.mm +22 -28
  227. package/ios/Contract/ANNErrorTexts.h +6 -2
  228. package/ios/Contract/ANNErrorTexts.mm +18 -10
  229. package/ios/Contract/ANNLayoutNode.h +3 -3
  230. package/ios/Contract/ANNLayoutReader.h +3 -3
  231. package/ios/Core/ANNAppDelegate.mm +0 -2
  232. package/ios/Core/ANNAppearanceDispatcher.h +5 -4
  233. package/ios/Core/ANNAppearanceDispatcher.mm +12 -1
  234. package/ios/Core/ANNDeepLinkQueue.h +22 -2
  235. package/ios/Core/ANNDeepLinkQueue.mm +121 -14
  236. package/ios/Core/ANNErrorHandler.h +9 -4
  237. package/ios/Core/ANNErrorHandler.mm +20 -2
  238. package/ios/Core/ANNEventContract.h +246 -0
  239. package/ios/Core/ANNEventContract.mm +225 -0
  240. package/ios/Core/ANNEventEmitter.h +6 -2
  241. package/ios/Core/ANNEventEmitter.mm +117 -80
  242. package/ios/Core/ANNHinge.h +6 -0
  243. package/ios/Core/ANNHinge.mm +15 -4
  244. package/ios/Core/ANNJavaScriptCalls.h +33 -0
  245. package/ios/Core/ANNJavaScriptCalls.mm +52 -0
  246. package/ios/Core/ANNLayoutProtocol.h +5 -5
  247. package/ios/Core/ANNNavigationState.h +7 -5
  248. package/ios/Core/ANNNavigationState.mm +8 -7
  249. package/ios/Core/ANNNodeHelper.h +32 -12
  250. package/ios/Core/ANNNodeHelper.mm +100 -3
  251. package/ios/Core/ANNParking.h +5 -4
  252. package/ios/Core/ANNReloadCoordinator.mm +5 -12
  253. package/ios/Core/ANNRenderWait.h +20 -6
  254. package/ios/Core/ANNRenderWait.mm +143 -56
  255. package/ios/Core/ANNSceneDelegate.mm +25 -15
  256. package/ios/Core/ANNSystemUI.h +3 -2
  257. package/ios/Core/ANNSystemUI.mm +7 -0
  258. package/ios/Core/ANNUtils.h +7 -0
  259. package/ios/Core/ANNUtils.mm +10 -0
  260. package/ios/Core/ApexNavigation+Internal.h +1 -1
  261. package/ios/Core/ApexNavigation.mm +7 -6
  262. package/ios/Core/UIViewController+LayoutProtocol.h +9 -2
  263. package/ios/Core/UIViewController+LayoutProtocol.mm +8 -0
  264. package/ios/Layouts/Arrangement/ANNArrangementState.h +2 -17
  265. package/ios/Layouts/Arrangement/ANNArrangementState.mm +0 -38
  266. package/ios/Layouts/Arrangement/ANNArrangementViewController.mm +10 -8
  267. package/ios/Layouts/Modal/ANNModalCoordinator.h +1 -1
  268. package/ios/Layouts/Modal/ANNModalCoordinator.mm +57 -16
  269. package/ios/Layouts/Modal/ANNModalPresentation.h +8 -5
  270. package/ios/Layouts/Modal/ANNModalPresentation.mm +12 -12
  271. package/ios/Layouts/Modal/ANNSheetPresenter.mm +83 -1
  272. package/ios/Layouts/Overlay/ANNOverlayCoordinator.mm +2 -8
  273. package/ios/Layouts/Root/ANNRootCoordinator.mm +58 -19
  274. package/ios/Layouts/Root/ANNSplashViewController.h +5 -3
  275. package/ios/Layouts/Root/ANNSplashViewController.mm +147 -0
  276. package/ios/Layouts/Screen/ANNComponentPresenter.h +11 -3
  277. package/ios/Layouts/Screen/ANNComponentPresenter.mm +34 -6
  278. package/ios/Layouts/Screen/ANNComponentViewController.h +15 -13
  279. package/ios/Layouts/Screen/ANNComponentViewController.mm +130 -75
  280. package/ios/Layouts/Screen/ANNNativeScreenContext.mm +7 -5
  281. package/ios/Layouts/Screen/ANNPreviewInteraction.h +7 -4
  282. package/ios/Layouts/Screen/ANNPreviewInteraction.mm +72 -10
  283. package/ios/Layouts/Screen/ANNScreenEnvironment.h +63 -0
  284. package/ios/Layouts/Screen/ANNScreenEnvironment.mm +181 -0
  285. package/ios/Layouts/Screen/ANNScreenPlace.h +53 -0
  286. package/ios/Layouts/Screen/ANNScreenPlace.mm +205 -0
  287. package/ios/Layouts/Screen/ANNScreenRegions.h +3 -18
  288. package/ios/Layouts/Screen/ANNScreenRegions.mm +9 -44
  289. package/ios/Layouts/Screen/ANNScreenSafeArea.h +4 -9
  290. package/ios/Layouts/Screen/ANNScreenSafeArea.mm +14 -16
  291. package/ios/Layouts/Screen/ANNScreenSettling.h +32 -0
  292. package/ios/Layouts/Screen/ANNScreenSettling.mm +137 -0
  293. package/ios/Layouts/SideMenu/ANNSideMenuTypes.h +8 -0
  294. package/ios/Layouts/SideMenu/ANNSideMenuViewController.mm +83 -14
  295. package/ios/Layouts/SplitView/ANNSplitViewCommands.h +3 -2
  296. package/ios/Layouts/SplitView/ANNSplitViewCommands.mm +105 -39
  297. package/ios/Layouts/SplitView/ANNSplitViewController.mm +7 -8
  298. package/ios/Layouts/Stack/ANNPreviewPush.h +7 -6
  299. package/ios/Layouts/Stack/ANNPreviewPush.mm +142 -27
  300. package/ios/Layouts/Stack/ANNStackAnimatingDelegate.h +11 -2
  301. package/ios/Layouts/Stack/ANNStackAnimatingDelegate.mm +14 -7
  302. package/ios/Layouts/Stack/ANNStackCommands.mm +1 -0
  303. package/ios/Layouts/Stack/ANNStackController.h +8 -0
  304. package/ios/Layouts/Stack/ANNStackController.mm +184 -16
  305. package/ios/Layouts/Stack/ANNStackQueue.h +5 -2
  306. package/ios/Layouts/Stack/ANNStackQueue.mm +56 -43
  307. package/ios/Layouts/Stack/ANNSwipePopInteraction.h +26 -0
  308. package/ios/Layouts/Stack/ANNSwipePopInteraction.mm +185 -0
  309. package/ios/Layouts/Stack/InteractivePopGestureDelegate.mm +28 -4
  310. package/ios/Layouts/Stack/UINavigationController+ANNCommands.h +4 -2
  311. package/ios/Layouts/Stack/UINavigationController+ANNCommands.mm +2 -3
  312. package/ios/Layouts/Tabs/ANNBottomTabItemBuilder.h +4 -0
  313. package/ios/Layouts/Tabs/ANNBottomTabItemBuilder.mm +11 -0
  314. package/ios/Layouts/Tabs/ANNBottomTabsAccessoryView.h +12 -1
  315. package/ios/Layouts/Tabs/ANNBottomTabsAccessoryView.mm +23 -0
  316. package/ios/Layouts/Tabs/ANNBottomTabsController.h +3 -0
  317. package/ios/Layouts/Tabs/ANNBottomTabsController.mm +237 -57
  318. package/ios/Layouts/Tabs/ANNBottomTabsCustomRow.mm +8 -3
  319. package/ios/Layouts/Tabs/ANNBottomTabsPresenter.h +6 -2
  320. package/ios/Layouts/Tabs/ANNBottomTabsPresenter.mm +232 -43
  321. package/ios/Layouts/Tabs/ANNTabsDesign.h +6 -5
  322. package/ios/Layouts/Tabs/ANNTabsDesign.mm +9 -1
  323. package/ios/Layouts/Tabs/UITabBar+utils.h +5 -5
  324. package/ios/Layouts/Tabs/UITabBar+utils.mm +32 -13
  325. package/ios/Options/ANNAnimationOptions.h +2 -1
  326. package/ios/Options/ANNAnimationOptions.mm +1 -1
  327. package/ios/Options/ANNBottomTabsOptions.h +2 -0
  328. package/ios/Options/ANNBottomTabsOptions.mm +1 -0
  329. package/ios/Options/ANNOptions.h +25 -0
  330. package/ios/Options/ANNOptions.mm +157 -1
  331. package/ios/Options/ANNOptionsCache.h +7 -6
  332. package/ios/Options/ANNOptionsReader.mm +108 -0
  333. package/ios/Options/ANNSearchBarOptions.h +4 -3
  334. package/ios/Options/ANNSheetOptions.h +4 -1
  335. package/ios/Options/ANNSideMenuOptions.h +2 -0
  336. package/ios/Options/ANNSideMenuOptions.mm +2 -0
  337. package/ios/Options/ANNStackPopAnimationOptions.h +13 -0
  338. package/ios/Options/ANNStackPopAnimationOptions.mm +11 -0
  339. package/ios/Options/ANNUserChoice.h +57 -0
  340. package/ios/Options/ANNUserChoice.mm +44 -0
  341. package/ios/Options/Params/ANNImageSource.h +61 -0
  342. package/ios/Options/Params/ANNImageSource.mm +101 -0
  343. package/ios/Options/Params/ANNOptionImages.h +37 -0
  344. package/ios/Options/Params/ANNOptionImages.mm +284 -0
  345. package/ios/Options/Params/ANNParam.h +15 -0
  346. package/ios/Options/Params/ANNParam.mm +61 -0
  347. package/ios/Options/Params/Color.h +3 -0
  348. package/ios/Options/Params/Color.mm +21 -0
  349. package/ios/Options/Params/ColorParser.h +4 -3
  350. package/ios/Options/Params/ColorParser.mm +22 -4
  351. package/ios/Options/Params/Image.h +15 -2
  352. package/ios/Options/Params/Image.mm +35 -2
  353. package/ios/Options/Params/ImageParser.h +5 -5
  354. package/ios/Options/Params/ImageParser.mm +28 -46
  355. package/ios/Public/ApexNavigation/ANNSceneDelegate.h +3 -0
  356. package/ios/Public/ApexNavigation/ApexNavigation.h +1 -1
  357. package/ios/RECIPES.md +13 -6
  358. package/ios/React/ANNReactView.mm +6 -25
  359. package/ios/React/ANNSafeAreaViewComponentView.mm +28 -17
  360. package/ios/React/ANNSurfaceHostingView.h +14 -0
  361. package/ios/React/ANNSurfaceHostingView.mm +144 -1
  362. package/ios/React/Slots/ANNSlotComponentView.mm +24 -17
  363. package/ios/React/Slots/ANNSlotContainers.h +14 -6
  364. package/ios/React/Slots/ANNSlotContainers.mm +75 -2
  365. package/ios/React/Slots/ANNSlotHost.mm +1 -3
  366. package/ios/React/Slots/ANNSlotScreenView.mm +8 -2
  367. package/ios/TopBar/ANNBackButtonPresenter.mm +6 -5
  368. package/ios/TopBar/ANNBarAppearance.h +2 -1
  369. package/ios/TopBar/ANNBarAppearance.mm +111 -30
  370. package/ios/TopBar/ANNBarBackgroundComponent.mm +16 -0
  371. package/ios/TopBar/ANNBarButtonComponentView.h +4 -4
  372. package/ios/TopBar/ANNBarButtonComponentView.mm +1 -1
  373. package/ios/TopBar/ANNBarButtons.h +14 -8
  374. package/ios/TopBar/ANNBarButtons.mm +397 -80
  375. package/ios/TopBar/ANNIconButtonImage.h +1 -0
  376. package/ios/TopBar/ANNIconButtonImage.mm +34 -1
  377. package/ios/TopBar/ANNLargeTitlePresenter.h +13 -0
  378. package/ios/TopBar/ANNLargeTitlePresenter.mm +50 -7
  379. package/ios/TopBar/ANNMainList.h +3 -0
  380. package/ios/TopBar/ANNMainList.mm +4 -0
  381. package/ios/TopBar/ANNScrollEdgeEffects.h +22 -6
  382. package/ios/TopBar/ANNScrollEdgeEffects.mm +123 -16
  383. package/ios/TopBar/ANNSearchPresenter.mm +172 -21
  384. package/ios/TopBar/ANNSearchResultsViewController.mm +29 -6
  385. package/ios/TopBar/ANNTopBarPresenter.h +8 -2
  386. package/ios/TopBar/ANNTopBarPresenter.mm +155 -33
  387. package/ios/TurboModules/ANNTurboEventEmitter.mm +4 -35
  388. package/ios/TurboModules/ANNTurboModule.mm +104 -33
  389. package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotState.cpp +20 -0
  390. package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotState.h +5 -14
  391. package/lib/module/ARCHITECTURE.md +40 -27
  392. package/lib/module/adapters/NativeANNTurboModule.js.map +1 -1
  393. package/lib/module/api/app/AppRegistry.js +14 -2
  394. package/lib/module/api/app/AppRegistry.js.map +1 -1
  395. package/lib/module/api/app/createNavigation.js +190 -66
  396. package/lib/module/api/app/createNavigation.js.map +1 -1
  397. package/lib/module/api/commands/commands.js +54 -6
  398. package/lib/module/api/commands/commands.js.map +1 -1
  399. package/lib/module/api/events/navigationEvents.js +6 -2
  400. package/lib/module/api/events/navigationEvents.js.map +1 -1
  401. package/lib/module/api/hooks/useNavigation.js +8 -3
  402. package/lib/module/api/hooks/useNavigation.js.map +1 -1
  403. package/lib/module/api/hooks/useSafeAreaInsets.js +4 -3
  404. package/lib/module/api/hooks/useSafeAreaInsets.js.map +1 -1
  405. package/lib/module/api/linking/dispatchedLinks.js +23 -0
  406. package/lib/module/api/linking/dispatchedLinks.js.map +1 -0
  407. package/lib/module/api/linking/linking.js +11 -0
  408. package/lib/module/api/linking/linking.js.map +1 -1
  409. package/lib/module/api/navigation.js.map +1 -1
  410. package/lib/module/api/options/OptionsChain.js +2 -2
  411. package/lib/module/api/screens/defineScreen.js +45 -3
  412. package/lib/module/api/screens/defineScreen.js.map +1 -1
  413. package/lib/module/api/screens/nativeScreens.js +31 -6
  414. package/lib/module/api/screens/nativeScreens.js.map +1 -1
  415. package/lib/module/api/screens/registerScreens.js +193 -35
  416. package/lib/module/api/screens/registerScreens.js.map +1 -1
  417. package/lib/module/api/theme/theme.js +5 -0
  418. package/lib/module/api/theme/theme.js.map +1 -1
  419. package/lib/module/engine/commands.js +51 -9
  420. package/lib/module/engine/commands.js.map +1 -1
  421. package/lib/module/engine/layout.js +20 -11
  422. package/lib/module/engine/layout.js.map +1 -1
  423. package/lib/module/engine/nativeScreens.js +9 -0
  424. package/lib/module/engine/nativeScreens.js.map +1 -1
  425. package/lib/module/engine/options.js +49 -15
  426. package/lib/module/engine/options.js.map +1 -1
  427. package/lib/module/engine/optionsChange.js +102 -0
  428. package/lib/module/engine/optionsChange.js.map +1 -0
  429. package/lib/module/engine/places.js +52 -7
  430. package/lib/module/engine/places.js.map +1 -1
  431. package/lib/module/engine/props.js +30 -1
  432. package/lib/module/engine/props.js.map +1 -1
  433. package/lib/module/engine/refresh.js +85 -0
  434. package/lib/module/engine/refresh.js.map +1 -0
  435. package/lib/module/engine/rememberedOptions.js +61 -1
  436. package/lib/module/engine/rememberedOptions.js.map +1 -1
  437. package/lib/module/engine/screens.js +77 -16
  438. package/lib/module/engine/screens.js.map +1 -1
  439. package/lib/module/interfaces/contract/commands.json +101 -0
  440. package/lib/module/interfaces/contract/errors.json +275 -0
  441. package/lib/typescript/adapters/NativeANNTurboModule.d.ts +12 -2
  442. package/lib/typescript/adapters/NativeANNTurboModule.d.ts.map +1 -1
  443. package/lib/typescript/api/app/AppRegistry.d.ts.map +1 -1
  444. package/lib/typescript/api/app/createNavigation.d.ts +8 -3
  445. package/lib/typescript/api/app/createNavigation.d.ts.map +1 -1
  446. package/lib/typescript/api/commands/commands.d.ts.map +1 -1
  447. package/lib/typescript/api/commands/presentation.d.ts +4 -3
  448. package/lib/typescript/api/commands/presentation.d.ts.map +1 -1
  449. package/lib/typescript/api/events/navigationEvents.d.ts +3 -3
  450. package/lib/typescript/api/events/navigationEvents.d.ts.map +1 -1
  451. package/lib/typescript/api/hooks/useNavigation.d.ts +1 -1
  452. package/lib/typescript/api/hooks/useNavigation.d.ts.map +1 -1
  453. package/lib/typescript/api/hooks/useSafeAreaInsets.d.ts +4 -3
  454. package/lib/typescript/api/hooks/useSafeAreaInsets.d.ts.map +1 -1
  455. package/lib/typescript/api/index.d.ts +1 -1
  456. package/lib/typescript/api/index.d.ts.map +1 -1
  457. package/lib/typescript/api/linking/dispatchedLinks.d.ts +7 -0
  458. package/lib/typescript/api/linking/dispatchedLinks.d.ts.map +1 -0
  459. package/lib/typescript/api/linking/linking.d.ts +8 -0
  460. package/lib/typescript/api/linking/linking.d.ts.map +1 -1
  461. package/lib/typescript/api/navigation.d.ts +4 -1
  462. package/lib/typescript/api/navigation.d.ts.map +1 -1
  463. package/lib/typescript/api/options/OptionsChain.d.ts +2 -2
  464. package/lib/typescript/api/screens/defineScreen.d.ts +23 -4
  465. package/lib/typescript/api/screens/defineScreen.d.ts.map +1 -1
  466. package/lib/typescript/api/screens/nativeScreens.d.ts +8 -1
  467. package/lib/typescript/api/screens/nativeScreens.d.ts.map +1 -1
  468. package/lib/typescript/api/screens/registerScreens.d.ts.map +1 -1
  469. package/lib/typescript/api/theme/theme.d.ts +2 -0
  470. package/lib/typescript/api/theme/theme.d.ts.map +1 -1
  471. package/lib/typescript/engine/commands.d.ts +5 -0
  472. package/lib/typescript/engine/commands.d.ts.map +1 -1
  473. package/lib/typescript/engine/layout.d.ts.map +1 -1
  474. package/lib/typescript/engine/nativeScreens.d.ts +5 -0
  475. package/lib/typescript/engine/nativeScreens.d.ts.map +1 -1
  476. package/lib/typescript/engine/options.d.ts +5 -2
  477. package/lib/typescript/engine/options.d.ts.map +1 -1
  478. package/lib/typescript/engine/optionsChange.d.ts +28 -0
  479. package/lib/typescript/engine/optionsChange.d.ts.map +1 -0
  480. package/lib/typescript/engine/places.d.ts +7 -2
  481. package/lib/typescript/engine/places.d.ts.map +1 -1
  482. package/lib/typescript/engine/props.d.ts +8 -1
  483. package/lib/typescript/engine/props.d.ts.map +1 -1
  484. package/lib/typescript/engine/refresh.d.ts +35 -0
  485. package/lib/typescript/engine/refresh.d.ts.map +1 -0
  486. package/lib/typescript/engine/rememberedOptions.d.ts +13 -0
  487. package/lib/typescript/engine/rememberedOptions.d.ts.map +1 -1
  488. package/lib/typescript/engine/screens.d.ts +27 -6
  489. package/lib/typescript/engine/screens.d.ts.map +1 -1
  490. package/lib/typescript/interfaces/ComponentEvents.d.ts +4 -4
  491. package/lib/typescript/interfaces/ComponentEvents.d.ts.map +1 -1
  492. package/lib/typescript/interfaces/Events.d.ts +28 -10
  493. package/lib/typescript/interfaces/Events.d.ts.map +1 -1
  494. package/lib/typescript/interfaces/Options.d.ts +1 -1
  495. package/lib/typescript/interfaces/Options.d.ts.map +1 -1
  496. package/lib/typescript/interfaces/options/animations.d.ts +80 -22
  497. package/lib/typescript/interfaces/options/animations.d.ts.map +1 -1
  498. package/lib/typescript/interfaces/options/bottomTabs.d.ts +21 -7
  499. package/lib/typescript/interfaces/options/bottomTabs.d.ts.map +1 -1
  500. package/lib/typescript/interfaces/options/buttons.d.ts +23 -15
  501. package/lib/typescript/interfaces/options/buttons.d.ts.map +1 -1
  502. package/lib/typescript/interfaces/options/modals.d.ts +34 -26
  503. package/lib/typescript/interfaces/options/modals.d.ts.map +1 -1
  504. package/lib/typescript/interfaces/options/sideMenu.d.ts +23 -6
  505. package/lib/typescript/interfaces/options/sideMenu.d.ts.map +1 -1
  506. package/lib/typescript/interfaces/options/stack.d.ts +17 -3
  507. package/lib/typescript/interfaces/options/stack.d.ts.map +1 -1
  508. package/lib/typescript/interfaces/options/system.d.ts +18 -11
  509. package/lib/typescript/interfaces/options/system.d.ts.map +1 -1
  510. package/lib/typescript/interfaces/options/toolbar.d.ts +2 -2
  511. package/lib/typescript/interfaces/options/topBar.d.ts +68 -38
  512. package/lib/typescript/interfaces/options/topBar.d.ts.map +1 -1
  513. package/metro/acceptPlugin.js +57 -0
  514. package/metro/babelTransformer.js +45 -0
  515. package/metro/index.js +36 -0
  516. package/package.json +4 -25
  517. package/src/ARCHITECTURE.md +40 -27
  518. package/src/adapters/NativeANNTurboModule.ts +12 -2
  519. package/src/api/app/AppRegistry.ts +16 -2
  520. package/src/api/app/createNavigation.ts +203 -69
  521. package/src/api/commands/commands.ts +48 -7
  522. package/src/api/commands/presentation.ts +4 -3
  523. package/src/api/events/navigationEvents.ts +10 -4
  524. package/src/api/hooks/useNavigation.ts +9 -4
  525. package/src/api/hooks/useSafeAreaInsets.ts +4 -3
  526. package/src/api/index.ts +1 -0
  527. package/src/api/linking/dispatchedLinks.ts +18 -0
  528. package/src/api/linking/linking.ts +22 -1
  529. package/src/api/navigation.ts +4 -1
  530. package/src/api/options/OptionsChain.ts +2 -2
  531. package/src/api/screens/defineScreen.ts +49 -5
  532. package/src/api/screens/nativeScreens.ts +40 -4
  533. package/src/api/screens/registerScreens.tsx +185 -42
  534. package/src/api/theme/theme.ts +5 -0
  535. package/src/engine/commands.ts +70 -13
  536. package/src/engine/layout.ts +27 -11
  537. package/src/engine/nativeScreens.ts +10 -1
  538. package/src/engine/options.ts +45 -19
  539. package/src/engine/optionsChange.ts +107 -0
  540. package/src/engine/places.ts +65 -7
  541. package/src/engine/props.ts +30 -1
  542. package/src/engine/refresh.ts +97 -0
  543. package/src/engine/rememberedOptions.ts +74 -1
  544. package/src/engine/screens.tsx +76 -21
  545. package/src/interfaces/ComponentEvents.ts +4 -4
  546. package/src/interfaces/Events.ts +29 -10
  547. package/src/interfaces/Options.ts +1 -0
  548. package/src/interfaces/contract/commands.json +101 -0
  549. package/src/interfaces/contract/errors.json +275 -0
  550. package/src/interfaces/options/animations.ts +81 -22
  551. package/src/interfaces/options/bottomTabs.ts +21 -7
  552. package/src/interfaces/options/buttons.ts +23 -15
  553. package/src/interfaces/options/modals.ts +34 -26
  554. package/src/interfaces/options/sideMenu.ts +24 -6
  555. package/src/interfaces/options/stack.ts +17 -3
  556. package/src/interfaces/options/system.ts +18 -11
  557. package/src/interfaces/options/toolbar.ts +2 -2
  558. package/src/interfaces/options/topBar.ts +68 -38
  559. package/android/src/main/java/dev/apexnative/navigation/react/ArrangementStates.kt +0 -41
  560. package/android/src/main/java/dev/apexnative/navigation/react/ScreenInsets.kt +0 -69
  561. package/android/src/main/java/dev/apexnative/navigation/react/events/NavigationStateReporter.kt +0 -62
  562. package/android/src/main/java/dev/apexnative/navigation/react/events/StateHold.kt +0 -62
  563. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/bottomtabs/CustomTabRowPlacer.kt +0 -223
  564. package/android/src/main/java/dev/apexnative/navigation/views/element/ElementStub.kt +0 -31
  565. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ImageMatrixAnimator.kt +0 -138
  566. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PlainViewAnimator.kt +0 -88
  567. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PropertyAnimatorCreator.kt +0 -33
  568. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ReactImageAnimator.kt +0 -66
  569. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/TextChangeAnimator.kt +0 -179
  570. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ViewChangeAnimator.kt +0 -139
  571. package/ios/Layouts/Screen/ANNScreenInsets.h +0 -30
  572. package/ios/Layouts/Screen/ANNScreenInsets.mm +0 -68
  573. package/ios/Layouts/Tabs/ANNTabsPreloadWindow.h +0 -27
  574. package/ios/Layouts/Tabs/ANNTabsPreloadWindow.mm +0 -55
@@ -7,6 +7,7 @@ import { nextId } from "./ids.js";
7
7
  import { showNativeScreen } from "./nativeScreens.js";
8
8
  import { toNativeOptions } from "./options.js";
9
9
  import { setProps } from "./props.js";
10
+ import { noteOwnOptions } from "./rememberedOptions.js";
10
11
  import { getStartInfo } from "./native.js";
11
12
  import { noteAlone } from "./places.js";
12
13
  import { arrangementOf, checkArrangement, isReactScreen, nativeScreenName, rendersInSlot, screenKey, screenOptions } from "./screens.js";
@@ -56,6 +57,9 @@ function screen(component, inPair = false, keyed = !inPair) {
56
57
  if (nativeName) {
57
58
  // A native screen: its props go to the native side as data, its own options over those of the show.
58
59
  const options = takeButtonHandlers(id, component.options ?? {});
60
+ if (__DEV__) {
61
+ noteOwnOptions(id, name, mergeOptions(screenOptions(name, props ?? {}), component.options ?? {}));
62
+ }
59
63
  const node = external({
60
64
  id,
61
65
  name: nativeName,
@@ -66,8 +70,9 @@ function screen(component, inPair = false, keyed = !inPair) {
66
70
  }
67
71
  // The screen's own options under those of the show (a command has them there already: merging again changes
68
72
  // nothing).
69
- const own = screenOptions(name, props ?? {});
70
- const options = takeButtonHandlers(id, mergeOptions(own, component.options ?? {}));
73
+ const own = mergeOptions(screenOptions(name, props ?? {}), component.options ?? {});
74
+ noteOwnOptions(id, name, own);
75
+ const options = takeButtonHandlers(id, own);
71
76
  const key = keyed ? screenKey(name, props ?? {}) : undefined;
72
77
  setProps(id, props);
73
78
  return {
@@ -75,7 +80,7 @@ function screen(component, inPair = false, keyed = !inPair) {
75
80
  type: 'Component',
76
81
  data: {
77
82
  name: rendersInSlot(name) ? slotName(id, name) : name,
78
- options: toNativeOptions(options),
83
+ options: toNativeOptions(options, id),
79
84
  ...(key !== undefined && {
80
85
  key
81
86
  })
@@ -136,23 +141,25 @@ function arrangement(component, name, pair) {
136
141
  };
137
142
  }
138
143
  function external(component) {
144
+ const id = component.id || nextId('ExternalComponent');
139
145
  return {
140
- id: component.id || nextId('ExternalComponent'),
146
+ id,
141
147
  type: 'ExternalComponent',
142
148
  data: {
143
149
  name: String(component.name),
144
- options: toNativeOptions(component.options),
150
+ options: toNativeOptions(component.options, id),
145
151
  passProps: component.passProps
146
152
  },
147
153
  children: []
148
154
  };
149
155
  }
150
156
  function parent(type, id, options, children = []) {
157
+ const nodeId = id || nextId(type);
151
158
  return {
152
- id: id || nextId(type),
159
+ id: nodeId,
153
160
  type,
154
161
  data: {
155
- options: toNativeOptions(options)
162
+ options: toNativeOptions(options, nodeId)
156
163
  },
157
164
  children: children.map(toNativeLayout)
158
165
  };
@@ -174,11 +181,12 @@ function sideMenu(menu) {
174
181
  data: {},
175
182
  children: [toNativeLayout(content)]
176
183
  });
184
+ const id = menu.id || nextId('SideMenuRoot');
177
185
  return {
178
- id: menu.id || nextId('SideMenuRoot'),
186
+ id,
179
187
  type: 'SideMenuRoot',
180
188
  data: {
181
- options: toNativeOptions(menu.options)
189
+ options: toNativeOptions(menu.options, id)
182
190
  },
183
191
  children: [...(menu.left ? [side('SideMenuLeft', menu.left)] : []), side('SideMenuCenter', menu.center), ...(menu.right ? [side('SideMenuRight', menu.right)] : [])]
184
192
  };
@@ -189,11 +197,12 @@ function sideMenu(menu) {
189
197
  function splitView(split) {
190
198
  const columns = [['primary', split.master], ['secondary', split.detail], ['supplementary', split.supplementary], ['compact', split.compact], ['inspector', split.inspector]].filter(column => column[1] !== undefined);
191
199
  const present = split.master && split.detail ? columns : [];
200
+ const id = split.id || nextId('SplitView');
192
201
  return {
193
- id: split.id || nextId('SplitView'),
202
+ id,
194
203
  type: 'SplitView',
195
204
  data: {
196
- options: toNativeOptions(split.options),
205
+ options: toNativeOptions(split.options, id),
197
206
  columns: present.map(([column]) => column)
198
207
  },
199
208
  children: present.map(([, content]) => toNativeLayout(content))
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","mergeOptions","takeButtonHandlers","nextId","showNativeScreen","toNativeOptions","setProps","getStartInfo","noteAlone","arrangementOf","checkArrangement","isReactScreen","nativeScreenName","rendersInSlot","screenKey","screenOptions","slotName","showTabs","TAB_PRESS_HANDLERS","MAX_ANDROID_BOTTOM_TABS","toNativeLayout","layout","sideMenu","bottomTabs","stack","id","options","children","parent","component","screen","externalComponent","external","splitView","Error","Object","keys","join","inPair","keyed","name","String","pair","undefined","arrangement","props","passProps","nativeName","node","own","key","type","data","secondaryProps","part","partName","partProps","primary","arrangements","alone","style","axes","fraction","primaryEdge","compact","secondary","map","tabs","count","length","OS","menu","side","content","left","center","right","split","columns","master","detail","supplementary","inspector","filter","column","present"],"sourceRoot":"../../../src","sources":["engine/layout.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Platform","mergeOptions","takeButtonHandlers","nextId","showNativeScreen","toNativeOptions","setProps","noteOwnOptions","getStartInfo","noteAlone","arrangementOf","checkArrangement","isReactScreen","nativeScreenName","rendersInSlot","screenKey","screenOptions","slotName","showTabs","TAB_PRESS_HANDLERS","MAX_ANDROID_BOTTOM_TABS","toNativeLayout","layout","sideMenu","bottomTabs","stack","id","options","children","parent","component","screen","externalComponent","external","splitView","Error","Object","keys","join","inPair","keyed","name","String","pair","undefined","arrangement","props","passProps","nativeName","__DEV__","node","own","key","type","data","secondaryProps","part","partName","partProps","primary","arrangements","alone","style","axes","fraction","primaryEdge","compact","secondary","nodeId","map","tabs","count","length","OS","menu","side","content","left","center","right","split","columns","master","detail","supplementary","inspector","filter","column","present"],"sourceRoot":"../../../src","sources":["engine/layout.ts"],"mappings":"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","ignoreList":[]}
@@ -45,6 +45,7 @@ export function showNativeScreen(node, name, props) {
45
45
  const screen = {
46
46
  id: node.id,
47
47
  name,
48
+ given: props,
48
49
  props: toNativeProps(props)
49
50
  };
50
51
  const Controller = nativeScreenController(name);
@@ -112,6 +113,14 @@ export function callNativeScreenFunction(id, name, args) {
112
113
  return fn(...args);
113
114
  }
114
115
 
116
+ /** The native screens with the name that are open, each with the props its command gave. */
117
+ export function openNativeScreens(name) {
118
+ return [...screens.values()].filter(screen => screen.name === name).map(screen => ({
119
+ id: screen.id,
120
+ props: screen.given
121
+ }));
122
+ }
123
+
115
124
  /** The native screen with the id, for the navigation of its calls. */
116
125
  export function nativeScreenInfo(id) {
117
126
  const screen = screens.get(id);
@@ -1 +1 @@
1
- {"version":3,"names":["commands","native","onNativeEvent","forgetPlace","forgetMergedOptions","nativeScreenController","HOST_TIMEOUT_MS","screens","Map","shown","hooks","listeners","Set","hostMounted","hostWaiters","listening","nativeScreenHooks","subscribe","listener","add","delete","get","showNativeScreen","node","name","props","screen","id","toNativeProps","Controller","first","deferred","hook","key","componentId","onProps","result","propsChanged","onError","error","reject","writeProps","set","updateHooks","whenNativeScreensReady","nodes","send","shownScreens","externalNodes","flatMap","length","release","forEach","forget","waiting","filter","sent","catch","startHost","then","Promise","all","map","promise","callNativeScreenFunction","args","Error","fn","functions","nativeScreenInfo","answerNativeScreenCall","callId","outcome","value","JSON","parse","stringify","message","String","resolveNativeScreenCall","hostMountedChanged","mounted","started","clear","resolve","clearTimeout","timer","setTimeout","listenToNativeScreens","data","changed","json","removed","keys","has","names","namesJson","Object","updateNativeScreenProps","passProps","fromEntries","entries","undefined","values","type","children","onResolve","onReject"],"sourceRoot":"../../../src","sources":["engine/nativeScreens.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["commands","native","onNativeEvent","forgetPlace","forgetMergedOptions","nativeScreenController","HOST_TIMEOUT_MS","screens","Map","shown","hooks","listeners","Set","hostMounted","hostWaiters","listening","nativeScreenHooks","subscribe","listener","add","delete","get","showNativeScreen","node","name","props","screen","id","given","toNativeProps","Controller","first","deferred","hook","key","componentId","onProps","result","propsChanged","onError","error","reject","writeProps","set","updateHooks","whenNativeScreensReady","nodes","send","shownScreens","externalNodes","flatMap","length","release","forEach","forget","waiting","filter","sent","catch","startHost","then","Promise","all","map","promise","callNativeScreenFunction","args","Error","fn","functions","openNativeScreens","values","nativeScreenInfo","answerNativeScreenCall","callId","outcome","value","JSON","parse","stringify","message","String","resolveNativeScreenCall","hostMountedChanged","mounted","started","clear","resolve","clearTimeout","timer","setTimeout","listenToNativeScreens","data","changed","json","removed","keys","has","names","namesJson","Object","updateNativeScreenProps","passProps","fromEntries","entries","undefined","type","children","onResolve","onReject"],"sourceRoot":"../../../src","sources":["engine/nativeScreens.ts"],"mappings":"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","ignoreList":[]}
@@ -1,17 +1,26 @@
1
1
  "use strict";
2
2
 
3
- import { DynamicColorIOS, Image, Platform, processColor } from 'react-native';
3
+ import { Image, Platform, processColor } from 'react-native';
4
4
  import { nextId } from "./ids.js";
5
- import { rememberButtonRoot, setProps } from "./props.js";
5
+ import { rememberButtonRoot, rememberOptionsComponent, setProps } from "./props.js";
6
6
  /**
7
7
  * The options as the native side reads them: colors in the format of the platform, images resolved, and every
8
8
  * component in them with an id of its own (its props stay in JavaScript). Options come in their own form only:
9
- * animations with `enter` and `exit`, `searchBar` and `interpolation` as objects.
9
+ * animations with `enter` and `exit`, `searchBar` and `interpolation` as objects. `owner` is the id of the node the
10
+ * options are for, or `'defaultOptions'`: a component without an id of its own gets one made of the owner, its place
11
+ * in the options and its name, the same for every `mergeOptions` of the node, so the native side keeps the mounted
12
+ * component and only its props change. Without an owner each conversion gives it a new one.
10
13
  */
11
- export function toNativeOptions(options) {
12
- return convert(options);
14
+ export function toNativeOptions(options, owner) {
15
+ return convert(options, undefined, {
16
+ owner,
17
+ path: ''
18
+ });
13
19
  }
14
20
 
21
+ // Where a value is in the options being converted: the node they are for, and the path to the value
22
+ // (`topBar.rightButtons[0].component`).
23
+
15
24
  /**
16
25
  * Options as the native side reads them over others, merged as the native side merges them: groups key by key, while
17
26
  * a color or an image, an object here too, replaces what was there as any value does. `undefined` keeps it.
@@ -30,11 +39,19 @@ export function mergeNativeOptions(base, over) {
30
39
  function isGroup(value) {
31
40
  return isFields(value) && !Array.isArray(value);
32
41
  }
33
- function convert(value, key) {
42
+ function convert(value, key, place) {
34
43
  if (key !== undefined && isColor(key)) return nativeColor(value);
35
44
  if (key !== undefined && isImage(key)) return nativeImage(value);
36
45
  if (Array.isArray(value)) {
37
- const items = value.map(item => convert(item));
46
+ // An item is known by its id where it has one (a button, a suggestion), so a component keeps its root when the
47
+ // list around it changes; by its place in the list otherwise.
48
+ const items = value.map((item, index) => {
49
+ const id = isFields(item) && typeof item.id === 'string' && item.id ? item.id : index;
50
+ return convert(item, undefined, {
51
+ ...place,
52
+ path: `${place.path}[${id}]`
53
+ });
54
+ });
38
55
  if (key?.endsWith('Buttons') || key === 'buttons') items.forEach(noteButtonRoot);
39
56
  return key?.endsWith('Buttons') ? items.map(takeButtonProps) : items;
40
57
  }
@@ -42,9 +59,13 @@ function convert(value, key) {
42
59
  const result = {};
43
60
  for (const [name, item] of Object.entries(withSymbols(value))) {
44
61
  // The props of a component are its own, not options.
45
- result[name] = name === 'passProps' ? item : convert(item, name);
62
+ const path = place.path ? `${place.path}.${name}` : name;
63
+ result[name] = name === 'passProps' ? item : convert(item, name, {
64
+ ...place,
65
+ path
66
+ });
46
67
  }
47
- return key === 'component' || key === 'resultsComponent' ? takeComponentProps(result) : result;
68
+ return key === 'component' || key === 'resultsComponent' ? takeComponentProps(result, place) : result;
48
69
  }
49
70
  function isColor(key) {
50
71
  return (key === 'color' || key.endsWith('Color')) && key !== 'bkgColor';
@@ -98,18 +119,30 @@ function isFields(value) {
98
119
  return typeof value === 'object' && value !== null;
99
120
  }
100
121
 
101
- // A component in the options gets an id; the native side creates it with that id, and its props wait here.
122
+ // A component in the options gets an id; the native side creates it with that id, and its props wait here. Without
123
+ // an id of its own it is the owner's, the place of the component (`topBar.title`, `topBar.rightButtons[Save]` by the
124
+ // button's id, `topBar.searchBar.resultsComponent`) and its name: another name there is another component.
102
125
  function takeComponentProps({
103
126
  passProps,
104
127
  ...component
105
- }) {
106
- const componentId = component.id || nextId('CustomComponent');
128
+ }, place) {
129
+ const componentId = component.id || componentIdAt(place, component.name);
107
130
  if (passProps) setProps(componentId, passProps);
108
131
  return {
109
132
  ...component,
110
133
  componentId
111
134
  };
112
135
  }
136
+ function componentIdAt({
137
+ owner,
138
+ path
139
+ }, name) {
140
+ if (owner === undefined) return nextId('CustomComponent');
141
+ const at = path.endsWith('.component') ? path.slice(0, -'.component'.length) : path;
142
+ const id = `${owner}/${at}/${String(name)}`;
143
+ rememberOptionsComponent(owner, id);
144
+ return id;
145
+ }
113
146
 
114
147
  // The component of a bar button (the top bar's `*Buttons`, the toolbar's `buttons`) is a root the native side only
115
148
  // sizes: its wrapper centers the content in the button's slot.
@@ -135,16 +168,17 @@ function nativeColor(value) {
135
168
  return Platform.OS === 'ios' ? iosColor(value) : androidColor(value);
136
169
  }
137
170
 
138
- // One color, a pair for the light and the dark appearance, or a semantic color; null takes the color away.
171
+ // One color, a pair for the light and the dark appearance, or a semantic color; null takes the color away. A pair goes
172
+ // as `{ light, dark }`, an app's `DynamicColorIOS` too; a side without a color is left out and shows the platform's.
139
173
  function iosColor(value) {
140
174
  if (value === null) return 'NoColor';
141
175
  if (!isFields(value)) return processColor(value);
142
176
  if ('semantic' in value) return value;
143
177
  const pair = 'dynamic' in value ? value.dynamic : value;
144
- return DynamicColorIOS({
178
+ return {
145
179
  light: processColor(pair.light),
146
180
  dark: processColor(pair.dark)
147
- });
181
+ };
148
182
  }
149
183
 
150
184
  // Android always takes a pair; one color goes to both, and the side without a color has none.
@@ -1 +1 @@
1
- {"version":3,"names":["DynamicColorIOS","Image","Platform","processColor","nextId","rememberButtonRoot","setProps","toNativeOptions","options","convert","mergeNativeOptions","base","over","result","key","next","Object","entries","undefined","previous","isColor","isImage","isGroup","value","isFields","Array","isArray","nativeColor","nativeImage","items","map","item","endsWith","forEach","noteButtonRoot","takeButtonProps","name","withSymbols","takeComponentProps","SYMBOL_FIELDS","icon","selectedIcon","isPlatformIcon","fields","field","symbolField","own","OS","ios","android","system","resolveAssetSource","passProps","component","componentId","id","button","rest","iosColor","androidColor","pair","dynamic","light","dark","color","appearance"],"sourceRoot":"../../../src","sources":["engine/options.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Image","Platform","processColor","nextId","rememberButtonRoot","rememberOptionsComponent","setProps","toNativeOptions","options","owner","convert","undefined","path","mergeNativeOptions","base","over","result","key","next","Object","entries","previous","isColor","isImage","isGroup","value","isFields","Array","isArray","place","nativeColor","nativeImage","items","map","item","index","id","endsWith","forEach","noteButtonRoot","takeButtonProps","name","withSymbols","takeComponentProps","SYMBOL_FIELDS","icon","selectedIcon","isPlatformIcon","fields","field","symbolField","own","OS","ios","android","system","resolveAssetSource","passProps","component","componentId","componentIdAt","at","slice","length","String","button","rest","iosColor","androidColor","pair","dynamic","light","dark","color","appearance"],"sourceRoot":"../../../src","sources":["engine/options.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ /** What an edit of a screen's options changed: the options to merge, and the paths of the options it took out. */
4
+
5
+ /**
6
+ * What `next` changes of `previous`, both the options of one screen. Objects compare key by key; anything else, an
7
+ * array such as buttons too, changes as a whole, and a function by identity (`sameValue`).
8
+ */
9
+ export function optionsChange(previous, next) {
10
+ const removed = [];
11
+ const merge = changed(previous, next, [], removed);
12
+ return merge ? {
13
+ merge,
14
+ removed
15
+ } : {
16
+ removed
17
+ };
18
+ }
19
+ function changed(previous, next, path, removed) {
20
+ if (isWholeValue(path) && isPlainObject(previous) && isPlainObject(next)) {
21
+ if (sameValue(previous, next)) return undefined;
22
+ // A part of it taken out: the native side may merge the parts, so the value goes first.
23
+ if (Object.keys(previous).some(key => next[key] === undefined)) removed.push(path);
24
+ return next;
25
+ }
26
+ if (!isPlainObject(previous) || !isPlainObject(next)) {
27
+ return sameValue(previous, next) ? undefined : next;
28
+ }
29
+ const result = {};
30
+ for (const [key, value] of Object.entries(next)) {
31
+ if (value === undefined) continue;
32
+ const change = changed(previous[key], value, [...path, key], removed);
33
+ if (change !== undefined) result[key] = change;
34
+ }
35
+ for (const [key, value] of Object.entries(previous)) {
36
+ if (value !== undefined && next[key] === undefined) removed.push([...path, key]);
37
+ }
38
+ return Object.keys(result).length > 0 ? result : undefined;
39
+ }
40
+
41
+ // A color (`{ light, dark }`), an icon or an image, and a menu are one value each on the native side, not a group: a
42
+ // part of one taken out goes as the whole value again.
43
+ function isWholeValue(path) {
44
+ const key = path[path.length - 1];
45
+ return key !== undefined && /^(color|icon|image|menu)$|(Color|Icon|Image)$/.test(key);
46
+ }
47
+
48
+ /**
49
+ * Whether two values are the same: plain objects key by key, arrays item by item, anything else, functions too, by
50
+ * identity. A module that ran again makes its functions anew, so they count as changed: Hermes keeps no source to tell
51
+ * an edited one, and sending a button's handler again costs little. With `functionsAlike` any two functions are alike.
52
+ */
53
+ export function sameValue(a, b, functionsAlike = false) {
54
+ if (functionsAlike && typeof a === 'function' && typeof b === 'function') return true;
55
+ if (Array.isArray(a) && Array.isArray(b)) {
56
+ return a.length === b.length && a.every((item, index) => sameValue(item, b[index], functionsAlike));
57
+ }
58
+ if (isPlainObject(a) && isPlainObject(b)) {
59
+ const keys = new Set([...Object.keys(a), ...Object.keys(b)]);
60
+ return [...keys].every(key => sameValue(a[key], b[key], functionsAlike));
61
+ }
62
+ return Object.is(a, b);
63
+ }
64
+ function isPlainObject(value) {
65
+ if (typeof value !== 'object' || value === null) return false;
66
+ const prototype = Object.getPrototypeOf(value);
67
+ return prototype === Object.prototype || prototype === null;
68
+ }
69
+
70
+ /**
71
+ * The part of an edit's change that the screen shows the old definition's value of: where the command that showed it,
72
+ * or a merge since, set another value, that value stays. `before` is what the old definition gave, `own` the screen's
73
+ * own options now.
74
+ */
75
+ export function changeOverOwn(change, before, own) {
76
+ // The functions of the definition are made anew each time it is read (a chain's button handlers): any function
77
+ // there stands for the definition's.
78
+ const fromDefinition = path => sameValue(valueAt(own, path), valueAt(before, path), true);
79
+ const removed = change.removed.filter(fromDefinition);
80
+ const merge = change.merge && keptWhere(change.merge, [], fromDefinition);
81
+ return merge ? {
82
+ merge,
83
+ removed
84
+ } : {
85
+ removed
86
+ };
87
+ }
88
+ function keptWhere(value, path, keep) {
89
+ if (!isPlainObject(value) || isWholeValue(path)) return keep(path) ? value : undefined;
90
+ const result = {};
91
+ for (const [key, item] of Object.entries(value)) {
92
+ const kept = keptWhere(item, [...path, key], keep);
93
+ if (kept !== undefined) result[key] = kept;
94
+ }
95
+ return Object.keys(result).length > 0 ? result : undefined;
96
+ }
97
+
98
+ /** The value at a path of options, such as `['topBar', 'title', 'text']`; undefined where there is none. */
99
+ export function valueAt(options, path) {
100
+ return path.reduce((value, key) => isPlainObject(value) ? value[key] : undefined, options);
101
+ }
102
+ //# sourceMappingURL=optionsChange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["optionsChange","previous","next","removed","merge","changed","path","isWholeValue","isPlainObject","sameValue","undefined","Object","keys","some","key","push","result","value","entries","change","length","test","a","b","functionsAlike","Array","isArray","every","item","index","Set","is","prototype","getPrototypeOf","changeOverOwn","before","own","fromDefinition","valueAt","filter","keptWhere","keep","kept","options","reduce"],"sourceRoot":"../../../src","sources":["engine/optionsChange.ts"],"mappings":"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","ignoreList":[]}