@apexnative/navigation 1.0.0-alpha.6 → 1.0.0-alpha.8

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 (242) hide show
  1. package/ApexNavigation.podspec +2 -1
  2. package/CHANGELOG.md +15 -0
  3. package/android/CLAUDE.md +19 -10
  4. package/android/CORE.md +3 -2
  5. package/android/consumer-rules.pro +6 -0
  6. package/android/src/main/java/dev/apexnative/navigation/options/BottomTabOptions.kt +1 -1
  7. package/android/src/main/java/dev/apexnative/navigation/options/ButtonOptions.kt +1 -1
  8. package/android/src/main/java/dev/apexnative/navigation/options/LargeTitleOptions.kt +1 -1
  9. package/android/src/main/java/dev/apexnative/navigation/options/LayoutAnimation.kt +1 -1
  10. package/android/src/main/java/dev/apexnative/navigation/options/OptionKey.kt +18 -0
  11. package/android/src/main/java/dev/apexnative/navigation/options/OptionPaths.kt +91 -0
  12. package/android/src/main/java/dev/apexnative/navigation/options/SheetOptions.kt +7 -4
  13. package/android/src/main/java/dev/apexnative/navigation/options/TitleOptions.kt +2 -2
  14. package/android/src/main/java/dev/apexnative/navigation/options/TopBarAppearanceOptions.kt +1 -1
  15. package/android/src/main/java/dev/apexnative/navigation/options/TopBarOptions.kt +16 -7
  16. package/android/src/main/java/dev/apexnative/navigation/react/ContentHeights.kt +95 -0
  17. package/android/src/main/java/dev/apexnative/navigation/react/ContentMounts.kt +66 -0
  18. package/android/src/main/java/dev/apexnative/navigation/react/NavigationTurboModule.kt +4 -0
  19. package/android/src/main/java/dev/apexnative/navigation/react/OptionsCommands.kt +41 -3
  20. package/android/src/main/java/dev/apexnative/navigation/react/ReactView.kt +16 -1
  21. package/android/src/main/java/dev/apexnative/navigation/slots/SlotScreenView.kt +27 -7
  22. package/android/src/main/java/dev/apexnative/navigation/slots/SlotView.kt +12 -1
  23. package/android/src/main/java/dev/apexnative/navigation/utils/MaterialTheme.kt +5 -6
  24. package/android/src/main/java/dev/apexnative/navigation/utils/SystemAnimations.kt +36 -0
  25. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalSheet.kt +329 -55
  26. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/ModalViews.kt +26 -5
  27. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/modal/SheetStops.kt +60 -2
  28. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/sidemenu/SideMenuMotion.kt +8 -2
  29. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/BackPreview.kt +32 -4
  30. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackController.kt +46 -7
  31. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackQueue.kt +15 -3
  32. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/StackViews.kt +7 -4
  33. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabMotion.kt +142 -0
  34. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/fab/FabPresenter.kt +215 -43
  35. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/search/StackSearchPresenter.kt +25 -26
  36. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/BarRowTransition.kt +3 -2
  37. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/ButtonPlaces.kt +11 -5
  38. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarPresenter.kt +86 -39
  39. package/android/src/main/java/dev/apexnative/navigation/viewcontrollers/stack/topbar/TopBarVisibility.kt +9 -2
  40. package/android/src/main/java/dev/apexnative/navigation/views/element/ElementTransitions.kt +124 -181
  41. package/android/src/main/java/dev/apexnative/navigation/views/element/TargetsWait.kt +8 -1
  42. package/android/src/main/java/dev/apexnative/navigation/views/element/TransitionLayer.kt +37 -112
  43. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ElementPictures.kt +56 -3
  44. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/FlightGeometry.kt +170 -153
  45. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ImageMorph.kt +199 -0
  46. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/SharedAnimatorFactory.kt +55 -45
  47. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/{TextChangeAnimator.kt → TextMorph.kt} +79 -129
  48. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ViewMorph.kt +108 -0
  49. package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabCopy.kt +85 -0
  50. package/android/src/main/java/dev/apexnative/navigation/views/stack/fab/FabMenu.kt +13 -0
  51. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TitleBar.kt +5 -24
  52. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/TopBar.kt +51 -34
  53. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarButtonComponentCell.kt +6 -6
  54. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarButtonView.kt +113 -0
  55. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/BarMenu.kt +219 -0
  56. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonBar.kt +121 -175
  57. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonMenus.kt +34 -64
  58. package/android/src/main/java/dev/apexnative/navigation/views/stack/topbar/titlebar/ButtonRow.kt +216 -0
  59. package/android/src/main/jni/ANNContentHeights.cpp +82 -0
  60. package/android/src/main/res/drawable/apex_navigation_ic_arrow_right.xml +14 -0
  61. package/android/src/main/res/layout/apex_navigation_menu_header.xml +19 -0
  62. package/android/src/main/res/layout/apex_navigation_menu_item.xml +68 -0
  63. package/android/src/main/res/values/styles.xml +1 -1
  64. package/android/src/main/res/values-night/styles.xml +1 -1
  65. package/cli/doctor/checks/app.js +16 -1
  66. package/cli/project.js +4 -0
  67. package/cli/setup/index.js +5 -0
  68. package/cli/setup/steps/metro.js +46 -0
  69. package/docs-md/architecture/native-screens.md +4 -0
  70. package/docs-md/architecture/theme-and-context.md +131 -12
  71. package/docs-md/architecture/transitions.md +43 -4
  72. package/docs-md/flows/bottom-sheets.md +4 -2
  73. package/docs-md/fundamentals/screens-and-props.md +9 -1
  74. package/docs-md/guides/cli.md +3 -1
  75. package/docs-md/help/troubleshooting.md +1 -1
  76. package/docs-md/index.json +29 -1
  77. package/docs-md/screen-ui/back-and-gestures.md +3 -1
  78. package/docs-md/screen-ui/bar-buttons.md +1 -1
  79. package/docs-md/screen-ui/toolbar-and-fab.md +2 -0
  80. package/docs-md/start/installation.md +16 -1
  81. package/ios/Animations/ANNFrameDriver.h +55 -15
  82. package/ios/Animations/ANNFrameDriver.mm +214 -60
  83. package/ios/Animations/ANNTransitionAnimator.h +26 -5
  84. package/ios/Animations/ANNTransitionAnimator.mm +49 -3
  85. package/ios/Animations/ANNTransitionPlan.h +2 -2
  86. package/ios/Animations/ANNTransitionPlan.mm +10 -0
  87. package/ios/Animations/Elements/ANNElementFinder.h +2 -2
  88. package/ios/Animations/Elements/ANNElementFinder.mm +2 -2
  89. package/ios/Animations/Elements/ANNElementTransition.h +3 -3
  90. package/ios/Animations/Elements/ANNElementTransition.mm +2 -2
  91. package/ios/Animations/Elements/ANNSharedElementFlight.h +3 -3
  92. package/ios/Animations/Elements/ANNSharedElementFlight.mm +181 -43
  93. package/ios/Animations/Interpolators/ANNViewTracks.h +6 -5
  94. package/ios/Animations/Interpolators/ANNViewTracks.mm +51 -21
  95. package/ios/CLAUDE.md +19 -8
  96. package/ios/CORE.md +1 -1
  97. package/ios/Core/ANNAppDelegate.mm +0 -2
  98. package/ios/Core/ANNDeepLinkQueue.h +6 -5
  99. package/ios/Core/ANNDeepLinkQueue.mm +22 -10
  100. package/ios/Core/ANNSceneDelegate.mm +2 -2
  101. package/ios/Core/ANNUtils.h +7 -0
  102. package/ios/Core/ANNUtils.mm +10 -0
  103. package/ios/Core/ApexNavigation.mm +6 -2
  104. package/ios/Layouts/Overlay/ANNOverlayCoordinator.mm +1 -7
  105. package/ios/Layouts/Root/ANNRootCoordinator.mm +45 -15
  106. package/ios/Layouts/Screen/ANNComponentViewController.mm +4 -1
  107. package/ios/Layouts/Stack/ANNStackAnimatingDelegate.h +11 -2
  108. package/ios/Layouts/Stack/ANNStackAnimatingDelegate.mm +14 -7
  109. package/ios/Layouts/Stack/ANNStackController.h +8 -0
  110. package/ios/Layouts/Stack/ANNStackController.mm +153 -11
  111. package/ios/Layouts/Stack/ANNSwipePopInteraction.h +26 -0
  112. package/ios/Layouts/Stack/ANNSwipePopInteraction.mm +185 -0
  113. package/ios/Layouts/Stack/InteractivePopGestureDelegate.mm +28 -4
  114. package/ios/Layouts/Tabs/ANNTabsPreloadWindow.mm +2 -4
  115. package/ios/Options/ANNAnimationOptions.h +2 -1
  116. package/ios/Options/ANNAnimationOptions.mm +1 -1
  117. package/ios/Options/ANNOptions.h +7 -0
  118. package/ios/Options/ANNOptions.mm +45 -0
  119. package/ios/Options/ANNOptionsReader.mm +2 -4
  120. package/ios/Options/ANNStackPopAnimationOptions.h +13 -0
  121. package/ios/Options/ANNStackPopAnimationOptions.mm +11 -0
  122. package/ios/Options/Params/ColorParser.h +4 -3
  123. package/ios/Options/Params/ColorParser.mm +22 -4
  124. package/ios/React/ANNSurfaceHostingView.h +8 -0
  125. package/ios/React/ANNSurfaceHostingView.mm +28 -1
  126. package/ios/React/Slots/ANNSlotHost.mm +1 -3
  127. package/ios/React/Slots/ANNSlotScreenView.mm +8 -2
  128. package/ios/TurboModules/ANNTurboModule.mm +46 -0
  129. package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotState.cpp +20 -0
  130. package/ios/cpp/react/renderer/components/ApexNavigationSpec/ANNSlotState.h +5 -14
  131. package/lib/module/ARCHITECTURE.md +9 -3
  132. package/lib/module/adapters/NativeANNTurboModule.js.map +1 -1
  133. package/lib/module/api/app/AppRegistry.js +14 -2
  134. package/lib/module/api/app/AppRegistry.js.map +1 -1
  135. package/lib/module/api/app/createNavigation.js +188 -66
  136. package/lib/module/api/app/createNavigation.js.map +1 -1
  137. package/lib/module/api/events/navigationEvents.js +6 -2
  138. package/lib/module/api/events/navigationEvents.js.map +1 -1
  139. package/lib/module/api/linking/linking.js +11 -0
  140. package/lib/module/api/linking/linking.js.map +1 -1
  141. package/lib/module/api/screens/defineScreen.js +45 -3
  142. package/lib/module/api/screens/defineScreen.js.map +1 -1
  143. package/lib/module/api/screens/nativeScreens.js +31 -6
  144. package/lib/module/api/screens/nativeScreens.js.map +1 -1
  145. package/lib/module/api/screens/registerScreens.js +193 -35
  146. package/lib/module/api/screens/registerScreens.js.map +1 -1
  147. package/lib/module/api/theme/theme.js +5 -0
  148. package/lib/module/api/theme/theme.js.map +1 -1
  149. package/lib/module/engine/commands.js +21 -1
  150. package/lib/module/engine/commands.js.map +1 -1
  151. package/lib/module/engine/layout.js +7 -2
  152. package/lib/module/engine/layout.js.map +1 -1
  153. package/lib/module/engine/nativeScreens.js +9 -0
  154. package/lib/module/engine/nativeScreens.js.map +1 -1
  155. package/lib/module/engine/options.js +5 -4
  156. package/lib/module/engine/options.js.map +1 -1
  157. package/lib/module/engine/optionsChange.js +102 -0
  158. package/lib/module/engine/optionsChange.js.map +1 -0
  159. package/lib/module/engine/refresh.js +85 -0
  160. package/lib/module/engine/refresh.js.map +1 -0
  161. package/lib/module/engine/rememberedOptions.js +60 -0
  162. package/lib/module/engine/rememberedOptions.js.map +1 -1
  163. package/lib/module/engine/screens.js +26 -0
  164. package/lib/module/engine/screens.js.map +1 -1
  165. package/lib/typescript/adapters/NativeANNTurboModule.d.ts +7 -0
  166. package/lib/typescript/adapters/NativeANNTurboModule.d.ts.map +1 -1
  167. package/lib/typescript/api/app/AppRegistry.d.ts.map +1 -1
  168. package/lib/typescript/api/app/createNavigation.d.ts +5 -0
  169. package/lib/typescript/api/app/createNavigation.d.ts.map +1 -1
  170. package/lib/typescript/api/events/navigationEvents.d.ts +2 -2
  171. package/lib/typescript/api/events/navigationEvents.d.ts.map +1 -1
  172. package/lib/typescript/api/index.d.ts +1 -1
  173. package/lib/typescript/api/index.d.ts.map +1 -1
  174. package/lib/typescript/api/linking/linking.d.ts +8 -0
  175. package/lib/typescript/api/linking/linking.d.ts.map +1 -1
  176. package/lib/typescript/api/screens/defineScreen.d.ts +23 -4
  177. package/lib/typescript/api/screens/defineScreen.d.ts.map +1 -1
  178. package/lib/typescript/api/screens/nativeScreens.d.ts +8 -1
  179. package/lib/typescript/api/screens/nativeScreens.d.ts.map +1 -1
  180. package/lib/typescript/api/screens/registerScreens.d.ts.map +1 -1
  181. package/lib/typescript/api/theme/theme.d.ts +2 -0
  182. package/lib/typescript/api/theme/theme.d.ts.map +1 -1
  183. package/lib/typescript/engine/commands.d.ts +5 -0
  184. package/lib/typescript/engine/commands.d.ts.map +1 -1
  185. package/lib/typescript/engine/layout.d.ts.map +1 -1
  186. package/lib/typescript/engine/nativeScreens.d.ts +5 -0
  187. package/lib/typescript/engine/nativeScreens.d.ts.map +1 -1
  188. package/lib/typescript/engine/optionsChange.d.ts +28 -0
  189. package/lib/typescript/engine/optionsChange.d.ts.map +1 -0
  190. package/lib/typescript/engine/refresh.d.ts +35 -0
  191. package/lib/typescript/engine/refresh.d.ts.map +1 -0
  192. package/lib/typescript/engine/rememberedOptions.d.ts +13 -0
  193. package/lib/typescript/engine/rememberedOptions.d.ts.map +1 -1
  194. package/lib/typescript/engine/screens.d.ts +7 -0
  195. package/lib/typescript/engine/screens.d.ts.map +1 -1
  196. package/lib/typescript/interfaces/ComponentEvents.d.ts +2 -2
  197. package/lib/typescript/interfaces/options/animations.d.ts +40 -15
  198. package/lib/typescript/interfaces/options/animations.d.ts.map +1 -1
  199. package/lib/typescript/interfaces/options/bottomTabs.d.ts +2 -2
  200. package/lib/typescript/interfaces/options/buttons.d.ts +2 -2
  201. package/lib/typescript/interfaces/options/modals.d.ts +6 -7
  202. package/lib/typescript/interfaces/options/modals.d.ts.map +1 -1
  203. package/lib/typescript/interfaces/options/stack.d.ts +8 -3
  204. package/lib/typescript/interfaces/options/stack.d.ts.map +1 -1
  205. package/lib/typescript/interfaces/options/topBar.d.ts +14 -0
  206. package/lib/typescript/interfaces/options/topBar.d.ts.map +1 -1
  207. package/metro/acceptPlugin.js +57 -0
  208. package/metro/babelTransformer.js +45 -0
  209. package/metro/index.js +36 -0
  210. package/package.json +3 -1
  211. package/src/ARCHITECTURE.md +9 -3
  212. package/src/adapters/NativeANNTurboModule.ts +7 -0
  213. package/src/api/app/AppRegistry.ts +16 -2
  214. package/src/api/app/createNavigation.ts +198 -66
  215. package/src/api/events/navigationEvents.ts +9 -3
  216. package/src/api/index.ts +1 -0
  217. package/src/api/linking/linking.ts +22 -1
  218. package/src/api/screens/defineScreen.ts +49 -5
  219. package/src/api/screens/nativeScreens.ts +40 -4
  220. package/src/api/screens/registerScreens.tsx +185 -42
  221. package/src/api/theme/theme.ts +5 -0
  222. package/src/engine/commands.ts +21 -0
  223. package/src/engine/layout.ts +11 -2
  224. package/src/engine/nativeScreens.ts +10 -1
  225. package/src/engine/options.ts +6 -8
  226. package/src/engine/optionsChange.ts +107 -0
  227. package/src/engine/refresh.ts +97 -0
  228. package/src/engine/rememberedOptions.ts +70 -0
  229. package/src/engine/screens.tsx +24 -0
  230. package/src/interfaces/ComponentEvents.ts +2 -2
  231. package/src/interfaces/options/animations.ts +40 -15
  232. package/src/interfaces/options/bottomTabs.ts +2 -2
  233. package/src/interfaces/options/buttons.ts +2 -2
  234. package/src/interfaces/options/modals.ts +6 -7
  235. package/src/interfaces/options/stack.ts +8 -3
  236. package/src/interfaces/options/topBar.ts +14 -0
  237. package/android/src/main/java/dev/apexnative/navigation/views/element/ElementStub.kt +0 -31
  238. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ImageMatrixAnimator.kt +0 -134
  239. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PlainViewAnimator.kt +0 -78
  240. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/PropertyAnimatorCreator.kt +0 -33
  241. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ReactImageAnimator.kt +0 -57
  242. package/android/src/main/java/dev/apexnative/navigation/views/element/animators/ViewChangeAnimator.kt +0 -146
@@ -0,0 +1,35 @@
1
+ /** The versions of one component React Refresh keeps, `current` the newest. */
2
+ interface Family {
3
+ current: unknown;
4
+ }
5
+ /** Whether React Refresh runs: development with Metro. */
6
+ export declare function refreshRuns(): boolean;
7
+ /** The family a component's versions are kept in; undefined in a release build or for a value Metro didn't export. */
8
+ export declare function familyOf(type: unknown): Family | undefined;
9
+ /**
10
+ * The newest version of a component after Fast Refresh ran its module again; the component itself when there is none
11
+ * newer, and in a release build.
12
+ */
13
+ export declare function newestType<T extends object>(type: T): T;
14
+ /** Sets what runs when a module makes a screen again: Fast Refresh ran it after an edit. */
15
+ export declare function onRedefined(listener: (screen: object) => void): void;
16
+ /**
17
+ * Tells about a screen a module made, once the module ran: Metro registers its exports after it, so the family of the
18
+ * screen is known by then, and a new version of a screen that shows is found by it. Development only.
19
+ */
20
+ export declare function redefined(screen: object): void;
21
+ /**
22
+ * Puts a component a screen or the app renders (`owner`: the screen, or the app made by createNavigation; `role`: which
23
+ * of its components) in a family of its own, once the owner's module ran and Metro has given the owner its family: the
24
+ * next version of the owner registers its component under the same id, so React Refresh keeps the component's state
25
+ * when the module runs again, also when the module doesn't export it. A component React Refresh knows already (its
26
+ * module exports it, or Babel registered it) keeps its own family. Development only.
27
+ */
28
+ export declare function keepStateOf(owner: object, component: unknown, role?: string): void;
29
+ /**
30
+ * Makes React Refresh mount a component of the library again, not keep its state, when a new version of it comes: its
31
+ * hooks are the app's, which may have changed, and the library's code has no signature of them. Development only.
32
+ */
33
+ export declare function resetOnEdit(type: object): void;
34
+ export {};
35
+ //# sourceMappingURL=refresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../src/engine/refresh.ts"],"names":[],"mappings":"AAKA,+EAA+E;AAC/E,UAAU,MAAM;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAoBD,0DAA0D;AAC1D,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAED,sHAAsH;AACtH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE1D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAEvD;AAID,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAI9C;AAMD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,SAAc,GAAG,IAAI,CAcvF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9C"}
@@ -11,8 +11,21 @@ export interface SentRoot {
11
11
  * in that root. The options that act once (a tab to select, a menu to open) stay in no node and are not remembered.
12
12
  */
13
13
  export declare function rememberMergedOptions(id: string, options: Options): void;
14
+ /** Takes the options at the paths, such as `['topBar', 'subtitle']`, out of those remembered for the node with the id. */
15
+ export declare function forgetMergedPaths(id: string, paths: readonly string[][]): void;
14
16
  /** Forgets the merged options of a node that went; a node of the last root keeps them until another root goes out. */
15
17
  export declare function forgetMergedOptions(id: string): void;
18
+ /** Notes the own options a screen of the name shows with (development). */
19
+ export declare function noteOwnOptions(id: string, name: string, options: Options): void;
20
+ /** Notes a merge into a screen's own options (development). */
21
+ export declare function noteMergedOwnOptions(id: string, options: Options): void;
22
+ /** The own options of a screen as JavaScript sent them (development); undefined for a screen it didn't note. */
23
+ export declare function ownOptionsOf(id: string): Options | undefined;
24
+ /**
25
+ * The ids of the screens of the name the native side has, mounted in React or not yet (a tab not selected yet), as
26
+ * development notes them.
27
+ */
28
+ export declare function notedScreens(name: string): string[];
16
29
  /** The options merged into the node with the id, as remembered; undefined without any. */
17
30
  export declare function mergedOptionsOf(id: string): Options | undefined;
18
31
  /** The root the native side got last; undefined before the first one. */
@@ -1 +1 @@
1
- {"version":3,"file":"rememberedOptions.d.ts","sourceRoot":"","sources":["../../../src/engine/rememberedOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAU,CAAC;AAS3C,uEAAuE;AACvE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClB;AAKD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAKxE;AAED,sHAAsH;AACtH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE/D;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAkBlF"}
1
+ {"version":3,"file":"rememberedOptions.d.ts","sourceRoot":"","sources":["../../../src/engine/rememberedOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAU,CAAC;AAS3C,uEAAuE;AACvE,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClB;AAKD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAKxE;AAED,0HAA0H;AAC1H,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,IAAI,CAK9E;AAiCD,sHAAsH;AACtH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGpD;AAMD,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAE/E;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAGvE;AAED,gHAAgH;AAChH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnD;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE/D;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAE/C;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAoBlF"}
@@ -52,6 +52,13 @@ export type NativeRootProps = {
52
52
  componentId: string;
53
53
  rootTag?: number;
54
54
  } & Record<string, unknown>;
55
+ /**
56
+ * Notes a screen as shown, a React root or slot of it or the controller of a native screen, until the function it
57
+ * gives is called.
58
+ */
59
+ export declare function noteShown(componentId: string, name: string): () => void;
60
+ /** The ids of the screens with the name that show now. */
61
+ export declare function shownScreens(name: string): string[];
55
62
  /** Whether a React root of the screen with the id is mounted now (a slot of the app's one tree doesn't count). */
56
63
  export declare function hasRoot(componentId: string): boolean;
57
64
  /** What runs when the root of a screen unmounts: the screen is gone. */
@@ -1 +1 @@
1
- {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../src/engine/screens.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../src/engine/screens.tsx"],"names":[],"mappings":"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"}
@@ -85,8 +85,8 @@ export interface SheetDetentChangedEvent {
85
85
  /** The id of the visible screen of the modal. */
86
86
  componentId: string;
87
87
  /**
88
- * The detent the sheet stopped at: `'medium'`, `'large'`, or a height (points on iOS, dp on Android). `'content'`
89
- * is sent on iOS for a detent that fits the content; Android names such a detent `'medium'`.
88
+ * The detent the sheet stopped at: `'medium'`, `'large'`, `'content'` (the detent that fits the content), or a
89
+ * height (points on iOS, dp on Android).
90
90
  */
91
91
  detent: 'medium' | 'large' | 'content' | number;
92
92
  }
@@ -240,8 +240,8 @@ export type ElementAnimation = AppearingElementAnimation | DisappearingElementAn
240
240
  * element's value, and a missing end is that value (a turn read from −180° to 180°, as React Native draws it). `x`
241
241
  * and `y` are the position in the parent of the element on both platforms. As on a side of a screen, don't set `x`
242
242
  * with `translationX` or `y` with `translationY` on one element: the translation plays and the position doesn't.
243
- * (Android) A view whose parent is a React view with `removeClippedSubviews` turned on, such as a child of a clipping
244
- * list, is not moved: it counts as not found.
243
+ * The element plays where it is, in its screen: it moves with its screen, its parents clip it, and the views drawn
244
+ * after it in its screen stay over it.
245
245
  */
246
246
  export interface ElementTransition {
247
247
  /** The `nativeID` of the view to animate. */
@@ -271,15 +271,20 @@ export interface ElementTransition {
271
271
  * A view that flies from the screen that goes to the screen that comes, changing its place, size, corners and look on
272
272
  * the way. A pair whose view is not found on either screen is skipped while the rest plays, and the transition waits
273
273
  * until the views are found. A pair that fails on the way (an error in its start or its flight) is skipped too, with a
274
- * warning in the log: its views show and hide with their screens, and the transition and its command go on. (iOS) So is
275
- * a pair with a view without a size, or one whose picture can't be taken. Without an animation of the screens of its
276
- * own, the screen that comes fades in (or the one that goes fades out) in 300 ms around the pair. Text keeps its
277
- * proportions and changes its picture within a quarter of the flight. A view turned or scaled by its own `transform` or
278
- * by a parent's flies from where it shows, and its angle goes to the other view's along the shorter arc. The angle is
279
- * the one React Native draws, from −180° to 180°: `rotate: '270deg'` turns back a quarter, and no pair spins a full
280
- * turn. (Android) A picture that doesn't load within a second drops out of the transition, and so does a pair with a
281
- * view whose parent is a React view with `removeClippedSubviews` turned on: it counts as not found. A skew and a tilt
282
- * (`skewX`, `rotateX`, …) don't fly: the view flies without them and has them again at the end.
274
+ * warning in the log: its views show and hide with their screens, and the transition and its command go on. So is a
275
+ * pair with a view without a size, or one whose picture can't be taken. Without an animation of the screens of its
276
+ * own, the screen that comes fades in (or the one that goes fades out) in 300 ms around the pair. What flies is a copy:
277
+ * pictures of the two views taken as the transition starts, while the views stay hidden in their places; what changes
278
+ * in them meanwhile shows when they are back. A view its parents cut (`overflow: hidden`, a scroll view, the edge of
279
+ * its screen) shows only the part they leave visible, and that part goes to the one of the other view on the way.
280
+ * Text keeps its proportions, flies whole and changes its picture within a quarter of the flight. A view turned or
281
+ * scaled by its own `transform` or by a parent's flies from where it shows, and its angle goes to the other view's
282
+ * along the shorter arc. The angle is the one React Native draws, from −180° to 180°:
283
+ * `rotate: '270deg'` turns back a quarter, and no pair spins a full turn. (Android) An image without a background or a
284
+ * border flies as the image of the view that comes, from the part and place the fit (`resizeMode`) shows in one view
285
+ * to those in the other, and an animated image plays on; images of other proportions fly as pictures. An image that
286
+ * doesn't load within a second drops out of the transition. A skew and a tilt (`skewX`, `rotateX`, …) don't fly: the
287
+ * view flies without them and has them again at the end.
283
288
  */
284
289
  export interface SharedElementTransition {
285
290
  /** The `nativeID` of the view on the screen that goes. */
@@ -384,14 +389,27 @@ export interface StackPushAnimationOptions extends StackAnimationOptions {
384
389
  zoom?: ZoomTransitionOptions;
385
390
  }
386
391
  /**
387
- * The animation of a pop, read from the screen that goes. As {@link StackAnimationOptions}, with the preview of the
388
- * back gesture on Android.
392
+ * The animation of a pop, read from the screen that goes. As {@link StackAnimationOptions}, with the swipe back of iOS
393
+ * and the preview of the back gesture on Android.
389
394
  */
390
395
  export interface StackPopAnimationOptions extends StackAnimationOptions {
396
+ /**
397
+ * (iOS) Whether the swipe back plays this pop under the finger. Without it, the swipe back plays UIKit's slide, and
398
+ * the pop's own animation plays only for the back button and `pop`. With `true`, the swipe from the edge plays the
399
+ * pop's own animation as far as the finger has gone across the screen: the user can stop halfway, and letting go
400
+ * finishes the pop or puts the screen back, the rest playing faster after a quick flick. It applies only when the pop
401
+ * has an animation of its own (`content`, `elementTransitions`, `sharedElementTransitions`). The top bar shows the
402
+ * screen under from the start of the swipe, as UIKit does in a transition of its own, and comes back when the swipe
403
+ * is given up. On iOS 26 the swipe from the content stays off for a screen with an own pop.
404
+ * Android ignores it: a pop with an animation of its own plays when the back gesture ends.
405
+ * @default false
406
+ */
407
+ interactive?: boolean;
391
408
  /**
392
409
  * (Android 14+) Whether the back gesture on a pushed screen previews its pop as the user swipes: the screen shrinks
393
410
  * and follows the finger, the screen under it shows behind. `false` pops the screen when the gesture is released,
394
- * as on Android 13 and older; back still pops it. iOS ignores it: its swipe back is UIKit's.
411
+ * as on Android 13 and older; back still pops it. iOS ignores it: its swipe back is UIKit's, or the pop's own
412
+ * animation with `interactive`.
395
413
  * @default true
396
414
  */
397
415
  preview?: boolean;
@@ -444,6 +462,12 @@ export interface ModalAnimationOptions extends EnterExitAnimationOptions {
444
462
  * options of the command. A change by `mergeOptions` is for the next command and animates nothing itself. A theme
445
463
  * switch or a rotation does not change an animation. Without a key, the transition is the platform's own.
446
464
  *
465
+ * The system's setting to reduce motion is respected, with no option to turn that off. (iOS) With Reduce Motion on, a
466
+ * transition of these keys is a fade of the same length: the screen that comes fades in (a push, `setStackRoot`, a
467
+ * modal's show, `setRoot`), the screen that goes fades out (a pop, a dismissal); no element moves. (Android) With
468
+ * Remove animations on (or the animator duration scale at 0), the transitions end at once, no element moves and none
469
+ * is waited for, a side menu opens and closes without its slide, and a sheet shows and closes without it.
470
+ *
447
471
  * ```ts
448
472
  * const options: Options = {
449
473
  * animations: {
@@ -459,7 +483,8 @@ export interface AnimationOptions {
459
483
  push?: StackPushAnimationOptions;
460
484
  /**
461
485
  * The pop of a screen, also `popTo` and `popToRoot`, read from the screen that goes. The swipe back of iOS is
462
- * UIKit's; the back gesture of Android previews the pop (`preview`).
486
+ * UIKit's, or the pop's own animation under the finger (`interactive`); the back gesture of Android previews the pop
487
+ * (`preview`).
463
488
  */
464
489
  pop?: StackPopAnimationOptions;
465
490
  /** The replacing of the screens of a stack, read from the new top screen. */
@@ -1 +1 @@
1
- {"version":3,"file":"animations.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/animations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"animations.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/animations.ts"],"names":[],"mappings":"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"}
@@ -192,8 +192,8 @@ export interface OptionsBottomTabs {
192
192
  */
193
193
  drawBehind?: boolean;
194
194
  /**
195
- * The background color of the bar; `null` gives the default one. On Android the default is the surface color of the
196
- * Material 3 theme. Before iOS 26, and in the compatibility mode (`UIDesignRequiresCompatibility` in Info.plist: iOS 26, and iOS 27
195
+ * The background color of the bar; `null` gives the default one. On Android the default is the surface container color
196
+ * (`colorSurfaceContainer`) of the Material 3 theme. Before iOS 26, and in the compatibility mode (`UIDesignRequiresCompatibility` in Info.plist: iOS 26, and iOS 27
197
197
  * only for an app built with an SDK before iOS 27), the bar is opaque with the color, or system opaque without it,
198
198
  * and a transparent color makes it transparent. On iOS 26 and later with glass the color is ignored
199
199
  * with one warning, since the system has no color for glass, while a transparent color gives a transparent bar. The
@@ -126,7 +126,7 @@ export interface OptionsTopBarButtonMenu {
126
126
  * A button of the top bar (`leftButtons`, `rightButtons`, `centerButtons`) or of the toolbar (`toolbar.buttons`). The
127
127
  * kinds are picked by the fields that are set. On iOS, the first that fits wins: a `component`, then an icon with text
128
128
  * and `showText`, then an icon with `iconBackground` or `iconInsets`, then an SF Symbol, an image `icon`, a `text`,
129
- * a `systemItem`; a button with none of them is not shown. On Android a button is a menu item of the bar: text, icon
129
+ * a `systemItem`; a button with none of them is not shown. On Android a button is a button of the bar's row: text, icon
130
130
  * or a component. Lists of buttons are replaced as a whole and take nothing from the lists of lower layers.
131
131
  *
132
132
  * Text, icon, color and similar fields are the same in all four places; where a place or a side differs, the field
@@ -171,7 +171,7 @@ export interface OptionsTopBarButton {
171
171
  systemItem?: SystemItemIcon;
172
172
  /**
173
173
  * The text of the button. A button with an icon keeps it as a label for the overflow menu, the customization panel
174
- * and VoiceOver (iOS) or as the text of the menu item (Android, where it also shows when there is room).
174
+ * and VoiceOver (iOS), or for TalkBack, the tooltip of a long press and the overflow menu (Android).
175
175
  */
176
176
  text?: string;
177
177
  /** The text a screen reader says for the button. */
@@ -41,8 +41,7 @@ export type OptionsModalTransitionStyle = 'coverVertical' | 'crossDissolve' | 'f
41
41
  *
42
42
  * On iOS `'medium'` and `'large'` are the system stops; a number and `'content'` need iOS 16 and are left out below it
43
43
  * with a warning in the log. On Android `'medium'` is half of the window, `'large'` the full height under the status
44
- * bar, a number is capped at `'large'`, and `'content'` stands in as `'medium'` because the Material sheet has no
45
- * height by content.
44
+ * bar, a number is capped at `'large'`, and `'content'` is the height of the content, measured as on iOS.
46
45
  */
47
46
  export type OptionsModalSheetDetent = 'medium' | 'large' | 'content' | number;
48
47
  /**
@@ -56,11 +55,11 @@ export type OptionsModalSheetDetent = 'medium' | 'large' | 'content' | number;
56
55
  export interface OptionsModalSheet {
57
56
  /**
58
57
  * The stops the sheet can rest on, and the user drags it between, in any order: on both platforms they are sorted by
59
- * height and repeats dropped. On iOS `'medium'` counts as half of `'large'` there, and `'content'` takes its place by
60
- * the height of the content, again whenever that changes; a list left empty by unsupported values gives
61
- * `['large']`. On Android the Material sheet has three resting places at most: the lowest stop of the list, the
62
- * highest, and `'medium'` between them when the list has both `'medium'` and `'large'`. A stop without a place is
63
- * dropped.
58
+ * height and repeats dropped. On iOS `'medium'` counts as half of `'large'` there, and on both `'content'` takes its
59
+ * place by the height of the content, again whenever that changes; on iOS a list left empty by unsupported values
60
+ * gives `['large']`. On Android the Material sheet has three resting places at most: the lowest stop of the list, the
61
+ * highest, and one between them, `selectedDetent` when it stands there, else the lowest of the others; the rest are
62
+ * dropped. Stops of the same height there are one.
64
63
  * @default ['large']
65
64
  */
66
65
  detents?: OptionsModalSheetDetent[];
@@ -1 +1 @@
1
- {"version":3,"file":"modals.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/modals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,6BAA6B,GACrC,WAAW,GACX,WAAW,GACX,YAAY,GACZ,gBAAgB,GAChB,oBAAoB,GACpB,gBAAgB,GAChB,SAAS,CAAC;AAEd;;;;;;;;;GASG;AACH,MAAM,MAAM,2BAA2B,GACrC,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACpC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACvD;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mCAAmC;AACnC,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,mEAAmE;IACnE,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,mDAAmD;IACnD,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"modals.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/modals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,6BAA6B,GACrC,WAAW,GACX,WAAW,GACX,YAAY,GACZ,gBAAgB,GAChB,oBAAoB,GACpB,gBAAgB,GAChB,SAAS,CAAC;AAEd;;;;;;;;;GASG;AACH,MAAM,MAAM,2BAA2B,GACrC,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACpC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACvD;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,mCAAmC;AACnC,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAErE;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,mEAAmE;IACnE,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,mDAAmD;IACnD,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -37,13 +37,18 @@ export interface HardwareBackButtonOptions {
37
37
  }
38
38
  /**
39
39
  * (Android) A floating action button over the screen, or an entry of its menu. The button shows while its screen is
40
- * on top of the stack; without the option there is none. `mergeOptions` and the default options of the app apply, and
41
- * the colors of the theme are read again when the theme changes.
40
+ * on top of the stack; without the option there is none. It changes as a push or a pop starts and moves with its
41
+ * screen, as the tab bar does: the new screen's button comes in with it, the old one goes out with the screen it
42
+ * belongs to, and an open menu closes. With an animation of the screens' own the old button shrinks away and the new
43
+ * one grows as it starts; during the back gesture the button of the screen under the top shows with that screen.
44
+ * `mergeOptions` and the default options of the app apply, and the colors of the theme are read again when the theme
45
+ * changes.
42
46
  */
43
47
  export interface OptionsFab {
44
48
  /**
45
49
  * The identifier of the button. A press reports it, and the app finds the `onPress` of the button by it. A button
46
- * without an `id` doesn't show. The same `id` on a later show or merge updates the button; another `id` replaces it.
50
+ * without an `id` doesn't show. The same `id` on a later show or merge updates the button, which stays in place
51
+ * while the screens move; another `id` replaces it.
47
52
  * For an entry of `actions` it is the id of that entry's own press.
48
53
  */
49
54
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAU,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IAClD;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,kHAAkH;IAClH,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB"}
1
+ {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,aAAU,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IAClD;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,kHAAkH;IAClH,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB"}
@@ -633,6 +633,20 @@ export interface OptionsTopBar {
633
633
  centerButtonColor?: Color;
634
634
  /** (iOS 16+) The color of the disabled center buttons that have no `disabledColor` of their own. */
635
635
  centerButtonDisabledColor?: Color;
636
+ /**
637
+ * (Android) The background of the bar's menus: "⋮" and the menus of the buttons, their submenus too. Without it the
638
+ * bar's color (`background.color`, else the theme's surface), unless the bar lets something through; then the
639
+ * theme's surface container color. It follows light and dark mode; an open menu closes as the mode switches. iOS
640
+ * draws its system menus in the system's colors.
641
+ */
642
+ menuBackgroundColor?: Color;
643
+ /**
644
+ * (Android) The color of the text and the icons of the items of the bar's menus, and of the titles of their
645
+ * submenus. Without it the title's color (`title.color`) when the menu takes the bar's color, else the theme's
646
+ * colors. A destructive item stays red, and a button moved into "⋮" keeps its own color or the side's
647
+ * (`rightButtonColor`). A disabled item is dimmed. An open menu closes when either menu color is merged.
648
+ */
649
+ menuTextColor?: Color;
636
650
  /**
637
651
  * Whether the content of the screen goes under the bar, starting at the top of the screen. The screen goes under the
638
652
  * bar by itself in some cases (a large title that may show, `hideOnScroll`, a hidden bar, an explicit translucent
@@ -1 +1 @@
1
- {"version":3,"file":"topBar.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/topBar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"topBar.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/options/topBar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ // @ts-check
2
+ 'use strict';
3
+
4
+ // A Babel plugin, development only: a module that imports `createNavigation` from the navigation accepts its own updates
5
+ // (`module.hot.accept()`). Metro then runs it again when it or a module only it imports changes, instead of reloading
6
+ // the app, and the navigation gives the new config to the app that runs.
7
+
8
+ const PACKAGE = '@apexnative/navigation';
9
+
10
+ /**
11
+ * @param {{ template: { statement: { ast: (strings: TemplateStringsArray) => unknown } } }} babel
12
+ */
13
+ function acceptPlugin({ template }) {
14
+ return {
15
+ name: 'apexnative-navigation-accept',
16
+ visitor: {
17
+ Program: {
18
+ /**
19
+ * Read on entering, before the other plugins turn the imports into requires.
20
+ * @param {{ node: { body: ImportNode[] } }} path
21
+ * @param {{ makesApp?: boolean }} state
22
+ */
23
+ enter(path, state) {
24
+ state.makesApp = path.node.body.some(importsCreateNavigation);
25
+ },
26
+ /**
27
+ * @param {{ pushContainer: (key: string, node: unknown) => void }} path
28
+ * @param {{ makesApp?: boolean }} state
29
+ */
30
+ exit(path, state) {
31
+ if (!state.makesApp) return;
32
+ path.pushContainer(
33
+ 'body',
34
+ template.statement.ast`if (module.hot) { module.hot.accept(); }`
35
+ );
36
+ },
37
+ },
38
+ },
39
+ };
40
+ }
41
+
42
+ /**
43
+ * @typedef {{ type: string, source?: { value: string },
44
+ * specifiers?: { type: string, imported?: { name?: string, value?: string } }[] }} ImportNode
45
+ */
46
+
47
+ /** @param {ImportNode} node */
48
+ function importsCreateNavigation(node) {
49
+ if (node.type !== 'ImportDeclaration' || node.source?.value !== PACKAGE) return false;
50
+ return (node.specifiers ?? []).some(
51
+ (specifier) =>
52
+ specifier.type === 'ImportSpecifier' &&
53
+ (specifier.imported?.name ?? specifier.imported?.value) === 'createNavigation'
54
+ );
55
+ }
56
+
57
+ module.exports = acceptPlugin;
@@ -0,0 +1,45 @@
1
+ // @ts-check
2
+ 'use strict';
3
+
4
+ // The navigation's Babel transformer: the app's own transformer with two changes, in development only.
5
+ //
6
+ // - React Native's transformer adds React Refresh's Babel plugin only when Metro's options say `hot`, and Metro gives
7
+ // them no `hot` any more. Without the plugin React Refresh knows only what a module exports: a component of a screen
8
+ // file that it doesn't export loses its state at every edit. The option goes in again here.
9
+ // - A module that makes the app (`createNavigation`) accepts its own updates, so an edit of the screens map, or of a
10
+ // module only it imports, runs it again instead of reloading the app; the app that runs takes the new config.
11
+
12
+ const accept = require('./acceptPlugin');
13
+
14
+ const upstreamPath = process.env.APEX_NAVIGATION_BABEL_TRANSFORMER;
15
+ if (!upstreamPath) {
16
+ throw new Error(
17
+ "[navigation] The navigation's Babel transformer runs only through withApexNavigation in metro.config.js"
18
+ );
19
+ }
20
+ /** @type {{ transform: (args: TransformArgs) => unknown, getCacheKey?: () => string }} */
21
+ const upstream = require(upstreamPath);
22
+
23
+ /**
24
+ * @typedef {{ filename: string, options: { dev: boolean, hot?: boolean }, plugins?: unknown[], src: string }}
25
+ * TransformArgs
26
+ */
27
+
28
+ /** @param {TransformArgs} args */
29
+ function transform(args) {
30
+ const { filename, options } = args;
31
+ if (!options.dev) return upstream.transform(args);
32
+ const own = !filename.includes('node_modules');
33
+ return upstream.transform({
34
+ ...args,
35
+ options: { ...options, hot: true },
36
+ plugins: own ? [...(args.plugins ?? []), accept] : args.plugins,
37
+ });
38
+ }
39
+
40
+ // The cache of transformed files changes with this transformer, not only with the one it goes in front of.
41
+ function getCacheKey() {
42
+ return `apexnative-navigation-1:${upstream.getCacheKey?.() ?? ''}`;
43
+ }
44
+
45
+ module.exports = { ...upstream, transform, getCacheKey };
package/metro/index.js ADDED
@@ -0,0 +1,36 @@
1
+ // @ts-check
2
+ 'use strict';
3
+
4
+ // The Metro setup of the navigation, for the app's metro.config.js:
5
+ //
6
+ // const { withApexNavigation } = require('@apexnative/navigation/metro');
7
+ // module.exports = withApexNavigation(mergeConfig(getDefaultConfig(__dirname), config));
8
+ //
9
+ // It puts the navigation's Babel transformer in front of the app's own (React Native's, or the one the app set), so an
10
+ // edit in development updates the app by Fast Refresh instead of reloading it.
11
+
12
+ const path = require('node:path');
13
+
14
+ /** The variable that tells the navigation's transformer which transformer it goes in front of. */
15
+ const UPSTREAM = 'APEX_NAVIGATION_BABEL_TRANSFORMER';
16
+
17
+ /**
18
+ * The app's Metro config with the navigation's Babel transformer in front of the one it had. Metro starts its
19
+ * transform workers after it read the config, so they find the transformer the app had through the environment.
20
+ * @template {{ projectRoot?: string, transformer?: { babelTransformerPath?: string } }} Config
21
+ * @param {Config} config
22
+ * @returns {Config}
23
+ */
24
+ function withApexNavigation(config) {
25
+ const transformer = config.transformer ?? {};
26
+ const own = require.resolve('./babelTransformer');
27
+ if (transformer.babelTransformerPath === own) return config;
28
+ process.env[UPSTREAM] =
29
+ transformer.babelTransformerPath ??
30
+ require.resolve('@react-native/metro-babel-transformer', {
31
+ paths: [config.projectRoot ?? process.cwd(), path.join(__dirname, '..')],
32
+ });
33
+ return { ...config, transformer: { ...transformer, babelTransformerPath: own } };
34
+ }
35
+
36
+ module.exports = { withApexNavigation, UPSTREAM };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apexnative/navigation",
3
- "version": "1.0.0-alpha.6",
3
+ "version": "1.0.0-alpha.8",
4
4
  "description": "Native navigation for React Native: platform stacks, tabs, modals and side menus on iOS, iPadOS and Android",
5
5
  "keywords": [
6
6
  "react-native",
@@ -31,6 +31,7 @@
31
31
  "types": "./lib/typescript/index.d.ts",
32
32
  "default": "./lib/module/index.js"
33
33
  },
34
+ "./metro": "./metro/index.js",
34
35
  "./package.json": "./package.json"
35
36
  },
36
37
  "files": [
@@ -39,6 +40,7 @@
39
40
  "android",
40
41
  "ios",
41
42
  "cli",
43
+ "metro",
42
44
  "CHANGELOG.md",
43
45
  "docs-md",
44
46
  "*.podspec",