@symbiote-native/navigation 2.0.3 → 2.1.0

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 (155) hide show
  1. package/build/angular/drawer/index.js +6 -4
  2. package/build/angular/stack/index.d.ts +2 -0
  3. package/build/angular/stack/index.js +23 -3
  4. package/build/angular/tabs/index.d.ts +1 -1
  5. package/build/angular/tabs/index.js +20 -7
  6. package/build/core/index.d.ts +2 -1
  7. package/build/core/index.js +5 -1
  8. package/build/core/stack-router-state/index.d.ts +2 -0
  9. package/build/core/stack-router-state/index.js +44 -0
  10. package/build/core/tab-router-state/index.d.ts +1 -0
  11. package/build/core/tab-router-state/index.js +19 -0
  12. package/build/react/drawer/index.js +23 -13
  13. package/build/react/stack/index.js +13 -2
  14. package/build/react/tabs/index.js +23 -9
  15. package/build/svelte/attachments.d.ts +5 -0
  16. package/build/svelte/attachments.js +61 -0
  17. package/build/svelte/descriptor-subtree.d.ts +3 -0
  18. package/build/svelte/descriptor-subtree.js +37 -0
  19. package/build/svelte/drawer/drawer-props.d.ts +14 -0
  20. package/build/svelte/drawer/drawer-props.js +3 -0
  21. package/build/svelte/drawer/index.d.ts +10 -0
  22. package/build/svelte/drawer/index.js +6 -0
  23. package/build/svelte/drawer/index.svelte +421 -0
  24. package/build/svelte/drawer/index.svelte.d.ts +10 -0
  25. package/build/svelte/drawer-screen-props.d.ts +13 -0
  26. package/build/svelte/drawer-screen-props.js +4 -0
  27. package/build/svelte/drawer-screen.svelte +24 -0
  28. package/build/svelte/drawer-screen.svelte.d.ts +4 -0
  29. package/build/svelte/index.d.ts +21 -0
  30. package/build/svelte/index.js +20 -0
  31. package/build/svelte/linking.svelte.d.ts +2 -0
  32. package/build/svelte/linking.svelte.js +55 -0
  33. package/build/svelte/navigation-context.d.ts +14 -0
  34. package/build/svelte/navigation-context.js +44 -0
  35. package/build/svelte/navigation-scope.svelte +24 -0
  36. package/build/svelte/navigation-scope.svelte.d.ts +9 -0
  37. package/build/svelte/registry-host.d.ts +1 -0
  38. package/build/svelte/registry-host.js +26 -0
  39. package/build/svelte/runes/index.d.ts +12 -0
  40. package/build/svelte/runes/index.js +12 -0
  41. package/build/svelte/runes/use-drawer-navigation.svelte.d.ts +6 -0
  42. package/build/svelte/runes/use-drawer-navigation.svelte.js +19 -0
  43. package/build/svelte/runes/use-focus-effect.svelte.d.ts +1 -0
  44. package/build/svelte/runes/use-focus-effect.svelte.js +31 -0
  45. package/build/svelte/runes/use-is-focused.svelte.d.ts +3 -0
  46. package/build/svelte/runes/use-is-focused.svelte.js +34 -0
  47. package/build/svelte/runes/use-navigation-state.svelte.d.ts +4 -0
  48. package/build/svelte/runes/use-navigation-state.svelte.js +39 -0
  49. package/build/svelte/runes/use-navigation.svelte.d.ts +9 -0
  50. package/build/svelte/runes/use-navigation.svelte.js +22 -0
  51. package/build/svelte/runes/use-route.svelte.d.ts +4 -0
  52. package/build/svelte/runes/use-route.svelte.js +12 -0
  53. package/build/svelte/runes/use-stack-navigation.svelte.d.ts +6 -0
  54. package/build/svelte/runes/use-stack-navigation.svelte.js +22 -0
  55. package/build/svelte/runes/use-tab-navigation.svelte.d.ts +6 -0
  56. package/build/svelte/runes/use-tab-navigation.svelte.js +19 -0
  57. package/build/svelte/screen-props.d.ts +21 -0
  58. package/build/svelte/screen-props.js +6 -0
  59. package/build/svelte/screen-registry.d.ts +17 -0
  60. package/build/svelte/screen-registry.js +57 -0
  61. package/build/svelte/screen.svelte +28 -0
  62. package/build/svelte/screen.svelte.d.ts +4 -0
  63. package/build/svelte/stack/index.d.ts +14 -0
  64. package/build/svelte/stack/index.js +7 -0
  65. package/build/svelte/stack/index.svelte +224 -0
  66. package/build/svelte/stack/index.svelte.d.ts +15 -0
  67. package/build/svelte/stack/stack-props.d.ts +20 -0
  68. package/build/svelte/stack/stack-props.js +4 -0
  69. package/build/svelte/stack/stack-screen.svelte +148 -0
  70. package/build/svelte/stack/stack-screen.svelte.d.ts +4 -0
  71. package/build/svelte/tab-screen-props.d.ts +13 -0
  72. package/build/svelte/tab-screen-props.js +4 -0
  73. package/build/svelte/tab-screen.svelte +26 -0
  74. package/build/svelte/tab-screen.svelte.d.ts +4 -0
  75. package/build/svelte/tabs/index.d.ts +8 -0
  76. package/build/svelte/tabs/index.js +6 -0
  77. package/build/svelte/tabs/index.svelte +247 -0
  78. package/build/svelte/tabs/index.svelte.d.ts +8 -0
  79. package/build/svelte/tabs/tab-props.d.ts +7 -0
  80. package/build/svelte/tabs/tab-props.js +3 -0
  81. package/build/vue/drawer/index.js +6 -5
  82. package/build/vue/stack/index.js +26 -12
  83. package/build/vue/tabs/index.js +48 -35
  84. package/build-ngc/angular/drawer/index.js +9 -7
  85. package/build-ngc/angular/drawer/index.js.map +1 -1
  86. package/build-ngc/angular/drawer-screen.directive.js +3 -3
  87. package/build-ngc/angular/navigation-context.service.js +3 -3
  88. package/build-ngc/angular/navigation-scope.directive.js +3 -3
  89. package/build-ngc/angular/screen.directive.js +3 -3
  90. package/build-ngc/angular/search-bar-ref.directive.js +3 -3
  91. package/build-ngc/angular/stack/index.d.ts +2 -0
  92. package/build-ngc/angular/stack/index.js +26 -6
  93. package/build-ngc/angular/stack/index.js.map +1 -1
  94. package/build-ngc/angular/tab-screen.directive.js +3 -3
  95. package/build-ngc/angular/tabs/index.d.ts +1 -1
  96. package/build-ngc/angular/tabs/index.js +23 -10
  97. package/build-ngc/angular/tabs/index.js.map +1 -1
  98. package/build-ngc/core/index.d.ts +2 -1
  99. package/build-ngc/core/index.js +5 -1
  100. package/build-ngc/core/index.js.map +1 -1
  101. package/build-ngc/core/stack-router-state/index.d.ts +2 -0
  102. package/build-ngc/core/stack-router-state/index.js +45 -0
  103. package/build-ngc/core/stack-router-state/index.js.map +1 -0
  104. package/build-ngc/core/tab-router-state/index.d.ts +1 -0
  105. package/build-ngc/core/tab-router-state/index.js +19 -0
  106. package/build-ngc/core/tab-router-state/index.js.map +1 -1
  107. package/package.json +28 -14
  108. package/src/angular/drawer/index.ts +6 -4
  109. package/src/angular/stack/index.ts +23 -2
  110. package/src/angular/tabs/index.ts +19 -5
  111. package/src/core/index.ts +11 -1
  112. package/src/core/stack-router-state/index.ts +49 -0
  113. package/src/core/tab-router-state/index.ts +25 -0
  114. package/src/react/drawer/index.ts +28 -13
  115. package/src/react/stack/index.ts +15 -1
  116. package/src/react/tabs/index.ts +43 -10
  117. package/src/svelte/attachments.ts +68 -0
  118. package/src/svelte/descriptor-subtree.ts +49 -0
  119. package/src/svelte/drawer/drawer-props.ts +28 -0
  120. package/src/svelte/drawer/index.svelte +421 -0
  121. package/src/svelte/drawer/index.ts +10 -0
  122. package/src/svelte/drawer-screen-props.ts +20 -0
  123. package/src/svelte/drawer-screen.svelte +24 -0
  124. package/src/svelte/fabric-tree.test-helper.ts +61 -0
  125. package/src/svelte/index.ts +71 -0
  126. package/src/svelte/linking.svelte.ts +66 -0
  127. package/src/svelte/navigation-context.ts +62 -0
  128. package/src/svelte/navigation-scope.svelte +24 -0
  129. package/src/svelte/registry-host.ts +26 -0
  130. package/src/svelte/runes/index.ts +17 -0
  131. package/src/svelte/runes/use-drawer-navigation.svelte.ts +29 -0
  132. package/src/svelte/runes/use-focus-effect.svelte.ts +35 -0
  133. package/src/svelte/runes/use-is-focused.svelte.ts +38 -0
  134. package/src/svelte/runes/use-navigation-state.svelte.ts +46 -0
  135. package/src/svelte/runes/use-navigation.svelte.ts +39 -0
  136. package/src/svelte/runes/use-route.svelte.ts +16 -0
  137. package/src/svelte/runes/use-stack-navigation.svelte.ts +32 -0
  138. package/src/svelte/runes/use-tab-navigation.svelte.ts +29 -0
  139. package/src/svelte/screen-props.ts +45 -0
  140. package/src/svelte/screen-registry.ts +92 -0
  141. package/src/svelte/screen.svelte +28 -0
  142. package/src/svelte/stack/index.svelte +224 -0
  143. package/src/svelte/stack/index.ts +11 -0
  144. package/src/svelte/stack/stack-props.ts +31 -0
  145. package/src/svelte/stack/stack-screen.svelte +148 -0
  146. package/src/svelte/svelte-ambient.d.ts +6 -0
  147. package/src/svelte/svelte-compile.test-helper.ts +143 -0
  148. package/src/svelte/tab-screen-props.ts +20 -0
  149. package/src/svelte/tab-screen.svelte +26 -0
  150. package/src/svelte/tabs/index.svelte +247 -0
  151. package/src/svelte/tabs/index.ts +10 -0
  152. package/src/svelte/tabs/tab-props.ts +13 -0
  153. package/src/vue/drawer/index.ts +6 -5
  154. package/src/vue/stack/index.ts +28 -11
  155. package/src/vue/tabs/index.ts +68 -65
@@ -9,10 +9,10 @@ export class DrawerScreenDirective {
9
9
  component;
10
10
  options;
11
11
  initialParams;
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DrawerScreenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: DrawerScreenDirective, isStandalone: true, selector: "ng-template[symbioteDrawerScreen]", inputs: { name: "name", component: "component", options: "options", initialParams: "initialParams" }, ngImport: i0 });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DrawerScreenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: DrawerScreenDirective, isStandalone: true, selector: "ng-template[symbioteDrawerScreen]", inputs: { name: "name", component: "component", options: "options", initialParams: "initialParams" }, ngImport: i0 });
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DrawerScreenDirective, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: DrawerScreenDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
18
  selector: 'ng-template[symbioteDrawerScreen]',
@@ -42,10 +42,10 @@ export class NavigationContextService {
42
42
  setRoute(route) {
43
43
  this.routeSignal.set(route);
44
44
  }
45
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NavigationContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NavigationContextService });
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NavigationContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
46
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NavigationContextService });
47
47
  }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NavigationContextService, decorators: [{
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NavigationContextService, decorators: [{
49
49
  type: Injectable
50
50
  }] });
51
51
  // Every injectX function (./injectors/*) opens with the same optional-inject-then-throw guard;
@@ -19,10 +19,10 @@ export class NavigationScopeDirective {
19
19
  this.context.navigation = this.navigation;
20
20
  this.context.emitter = this.emitter;
21
21
  }
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NavigationScopeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
23
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: NavigationScopeDirective, isStandalone: true, selector: "[symbioteNavigationScope]", inputs: { route: ["symbioteNavigationScope", "route"], navigation: "navigation", emitter: "emitter" }, providers: [NavigationContextService], usesOnChanges: true, ngImport: i0 });
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NavigationScopeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
23
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: NavigationScopeDirective, isStandalone: true, selector: "[symbioteNavigationScope]", inputs: { route: ["symbioteNavigationScope", "route"], navigation: "navigation", emitter: "emitter" }, providers: [NavigationContextService], usesOnChanges: true, ngImport: i0 });
24
24
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: NavigationScopeDirective, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: NavigationScopeDirective, decorators: [{
26
26
  type: Directive,
27
27
  args: [{
28
28
  selector: '[symbioteNavigationScope]',
@@ -12,10 +12,10 @@ export class ScreenDirective {
12
12
  component;
13
13
  options;
14
14
  initialParams;
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ScreenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: ScreenDirective, isStandalone: true, selector: "ng-template[symbioteScreen]", inputs: { name: "name", component: "component", options: "options", initialParams: "initialParams" }, ngImport: i0 });
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScreenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: ScreenDirective, isStandalone: true, selector: "ng-template[symbioteScreen]", inputs: { name: "name", component: "component", options: "options", initialParams: "initialParams" }, ngImport: i0 });
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ScreenDirective, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ScreenDirective, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: 'ng-template[symbioteScreen]',
@@ -28,10 +28,10 @@ export class SearchBarRefDirective {
28
28
  if (this.ref)
29
29
  this.ref.current = null;
30
30
  }
31
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SearchBarRefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
32
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: SearchBarRefDirective, isStandalone: true, selector: "[symbioteSearchBarRef]", inputs: { ref: ["symbioteSearchBarRef", "ref"] }, ngImport: i0 });
31
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SearchBarRefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
32
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: SearchBarRefDirective, isStandalone: true, selector: "[symbioteSearchBarRef]", inputs: { ref: ["symbioteSearchBarRef", "ref"] }, ngImport: i0 });
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SearchBarRefDirective, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SearchBarRefDirective, decorators: [{
35
35
  type: Directive,
36
36
  args: [{
37
37
  selector: '[symbioteSearchBarRef]',
@@ -33,9 +33,11 @@ export declare class Stack implements AfterContentInit, OnDestroy, INavigatorHan
33
33
  ngAfterContentInit(): void;
34
34
  ngOnDestroy(): void;
35
35
  private rebuildRegistry;
36
+ private reconcileWithRegistry;
36
37
  private initializeState;
37
38
  private createRoute;
38
39
  private dispatch;
40
+ private commitState;
39
41
  emitterFor(routeKey: string): INavigationEmitter;
40
42
  private mergedOptionsFor;
41
43
  componentFor(route: IRoute<unknown>): Type<unknown> | null;
@@ -35,7 +35,7 @@
35
35
  // self-registers instead: `adapters/angular/babel-register-composed.cjs` (a Metro babel preset
36
36
  // applied bundle-wide, not scoped to adapters/angular) scans this package's own AOT-compiled
37
37
  // (`ngc`) `ɵɵngDeclareComponent({selector: 'Stack', ...})` output and auto-calls
38
- // `registerComposedComponent('Stack')` at bundle time - same mechanism `.examples/angular`
38
+ // `registerComposedComponent('Stack')` at bundle time - same mechanism `examples/angular`
39
39
  // navigation-demo screens and `@symbiote-native/slider`'s `Slider` rely on for their own composed
40
40
  // components mounted statically or via `NgComponentOutlet`. Unregistered, `createElement('Stack')`
41
41
  // falls through to a real `createNode` call and RN paints its own "Unimplemented component"
@@ -47,7 +47,7 @@ import { ChangeDetectionStrategy, Component, ContentChildren, Input, NO_ERRORS_S
47
47
  import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';
48
48
  import { SymbioteHostPropsDirective } from '@symbiote-native/angular';
49
49
  import { Platform, dlog } from '@symbiote-native/engine';
50
- import { NAVIGATION_EVENT_BLUR, NAVIGATION_EVENT_FOCUS, NAVIGATION_EVENT_STATE, RNS_MODAL_SCREEN_VIEW_NAME, SCREEN_ON_APPEAR, SCREEN_ON_DISAPPEAR, SCREEN_ON_DISMISSED, SCREEN_ON_HEADER_BACK_BUTTON_CLICKED, STACK_ON_FINISH_TRANSITIONING, buildSearchBarPassthrough, createInitialNavigatorState, createNavigationEmitter, navigatorReducer, resolveHeaderInModalStackStyle, resolveScreenRenderPlan, resolveStackProps, } from '../../core';
50
+ import { NAVIGATION_EVENT_BLUR, NAVIGATION_EVENT_FOCUS, NAVIGATION_EVENT_STATE, RNS_MODAL_SCREEN_VIEW_NAME, SCREEN_ON_APPEAR, SCREEN_ON_DISAPPEAR, SCREEN_ON_DISMISSED, SCREEN_ON_HEADER_BACK_BUTTON_CLICKED, STACK_ON_FINISH_TRANSITIONING, buildSearchBarPassthrough, createInitialNavigatorState, createNavigationEmitter, navigatorReducer, reconcileStackRoutes, resolveHeaderInModalStackStyle, resolveScreenRenderPlan, resolveStackProps, } from '../../core';
51
51
  import { NavigationScopeDirective } from '../navigation-scope.directive';
52
52
  import { SearchBarRefDirective } from '../search-bar-ref.directive';
53
53
  import { ScreenDirective } from '../screen.directive';
@@ -104,6 +104,21 @@ export class Stack {
104
104
  for (const screen of this.screenChildren) {
105
105
  this.registry.set(screen.name, screen);
106
106
  }
107
+ this.reconcileWithRegistry();
108
+ }
109
+ // A `<ng-template symbioteScreen>` marker can leave the @ContentChildren query (a marker behind
110
+ // an `@if`, a data-driven screen list) while its route is still in the pushed history, which
111
+ // would leave that entry with nothing for componentFor() to mount (reconcileStackRoutes' header).
112
+ // The signal write lives HERE, in the query-change callback, and never in a computed/template
113
+ // accessor - reconciliation is a reaction to the registry changing, not a derivation of it.
114
+ reconcileWithRegistry() {
115
+ const current = this.stateSignal();
116
+ if (current === undefined)
117
+ return;
118
+ const next = reconcileStackRoutes(current, [...this.registry.keys()]);
119
+ if (next === current)
120
+ return;
121
+ this.commitState(next);
107
122
  }
108
123
  initializeState() {
109
124
  if (this.stateSignal() !== undefined)
@@ -124,7 +139,12 @@ export class Stack {
124
139
  const current = this.stateSignal();
125
140
  if (current === undefined)
126
141
  return;
127
- const next = navigatorReducer(current, action);
142
+ this.commitState(navigatorReducer(current, action));
143
+ }
144
+ // The one write path into stateSignal, shared by a dispatched action and a registry-driven
145
+ // reconciliation: both invalidate the plan cache, broadcast to every still-live route, and prune
146
+ // the emitters of routes that are gone.
147
+ commitState(next) {
128
148
  this.planCache.clear();
129
149
  this.stateSignal.set(next);
130
150
  const liveRouteKeys = new Set(next.routes.map(route => route.key));
@@ -238,8 +258,8 @@ export class Stack {
238
258
  searchBarProps(route, index) {
239
259
  return this.planFor(route, index).searchBarProps ?? {};
240
260
  }
241
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Stack, deps: [], target: i0.ɵɵFactoryTarget.Component });
242
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: Stack, isStandalone: true, selector: "Stack", inputs: { initialRouteName: "initialRouteName", screenOptions: "screenOptions" }, queries: [{ propertyName: "screenChildren", predicate: ScreenDirective }], ngImport: i0, template: `
261
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Stack, deps: [], target: i0.ɵɵFactoryTarget.Component });
262
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: Stack, isStandalone: true, selector: "Stack", inputs: { initialRouteName: "initialRouteName", screenOptions: "screenOptions" }, queries: [{ propertyName: "screenChildren", predicate: ScreenDirective }], ngImport: i0, template: `
243
263
  @if (state(); as currentState) {
244
264
  <RNSScreenStack [symbioteHostProps]="stackHostProps()">
245
265
  @for (route of currentState.routes; track route.key; let idx = $index) {
@@ -310,7 +330,7 @@ export class Stack {
310
330
  </ng-template>
311
331
  `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NavigationScopeDirective, selector: "[symbioteNavigationScope]", inputs: ["symbioteNavigationScope", "navigation", "emitter"] }, { kind: "directive", type: SearchBarRefDirective, selector: "[symbioteSearchBarRef]", inputs: ["symbioteSearchBarRef"] }, { kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
312
332
  }
313
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Stack, decorators: [{
333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Stack, decorators: [{
314
334
  type: Component,
315
335
  args: [{
316
336
  selector: 'Stack',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/stack/index.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,+FAA+F;AAC/F,kGAAkG;AAClG,mGAAmG;AACnG,6FAA6F;AAC7F,kGAAkG;AAClG,iGAAiG;AACjG,qFAAqF;AACrF,mGAAmG;AACnG,mGAAmG;AACnG,qCAAqC;AACrC,+FAA+F;AAC/F,kGAAkG;AAClG,mGAAmG;AACnG,yFAAyF;AACzF,4FAA4F;AAC5F,EAAE;AACF,+EAA+E;AAC/E,kGAAkG;AAClG,6FAA6F;AAC7F,kGAAkG;AAClG,+FAA+F;AAC/F,+FAA+F;AAC/F,mGAAmG;AACnG,2FAA2F;AAC3F,wFAAwF;AACxF,mGAAmG;AACnG,yFAAyF;AACzF,+FAA+F;AAC/F,4BAA4B;AAC5B,EAAE;AACF,8FAA8F;AAC9F,6FAA6F;AAC7F,0FAA0F;AAC1F,+FAA+F;AAC/F,6FAA6F;AAC7F,iFAAiF;AACjF,2FAA2F;AAC3F,kGAAkG;AAClG,mGAAmG;AACnG,4FAA4F;AAC5F,0FAA0F;AAC1F,2FAA2F;AAC3F,kGAAkG;AAClG,QAAQ;AAER,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,eAAe,EACf,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,MAAM,GAIP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,oCAAoC,EACpC,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC3B,uBAAuB,EACvB,gBAAgB,EAChB,8BAA8B,EAC9B,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAWpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;;AAKtD,gGAAgG;AAChG,sFAAsF;AACtF,MAAM,kBAAkB,GAAuB,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC;AAEvF,IAAI,oBAAoB,GAAG,CAAC,CAAC;AAqF7B,MAAM,OAAO,KAAK;IACmC,cAAc,CAA8B;IAEtF,gBAAgB,CAAU;IAC1B,aAAa,CAAyB;IAEtC,kBAAkB,GAA4B,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAE5D,aAAa,GAAG,SAAS,CAAC,oBAAoB,IAAI,CAAC,CAAC,EAAE,CAAC;IACxE,yFAAyF;IACzF,yFAAyF;IACzF,0FAA0F;IAC1F,gGAAgG;IAChG,yFAAyF;IACzF,4FAA4F;IAC5F,iGAAiG;IAChF,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC9C,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IAClE,qFAAqF;IACrF,0FAA0F;IAC1F,2FAA2F;IAC3F,4EAA4E;IAC3D,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;IAC1D,aAAa,GAAG,CAAC,CAAC;IAClB,0BAA0B,CAA0C;IAE3D,WAAW,GAAG,MAAM,CAA8B,SAAS;oFAAC,CAAC;IACrE,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IAEtC,IAAI,GAAG,CAAC,IAAY,EAAE,MAAgB,EAAQ,EAAE,CACvD,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAChE,GAAG,GAAG,CAAC,KAAc,EAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACtE,QAAQ,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,KAAK,GAAG,CAAC,GAAW,EAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACrE,OAAO,GAAG,CAAC,IAAY,EAAE,MAAgB,EAAQ,EAAE,CAC1D,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACnE,SAAS,GAAG,CAAC,MAAe,EAAE,GAAY,EAAQ,EAAE,CAC3D,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,KAAK,GAAG,CAAC,SAA0B,EAAQ,EAAE,CACpD,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5C,SAAS,GAAG,GAAY,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAEjF,kBAAkB;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;YAC3E,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,0BAA0B,EAAE,WAAW,EAAE,CAAC;IACjD,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS;YAAE,OAAO;QAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACpF,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YACnE,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,2BAA2B,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CACtF,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAClB,2BAA2B,CACzB,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,aAAa,CAAC,CACvF,CACF,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,IAAY,EAAE,MAAe;QAC/C,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;QACxB,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACtF,CAAC;IAEO,QAAQ,CAAC,MAAwB;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAClC,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACnE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,uBAAuB,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,KAAsB;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAuB,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACpE,MAAM,GAAG,GACP,KAAK,KAAK,SAAS;YACjB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU;gBACnC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC5B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACtB,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,GAAG,EAAE,CAAC;IAC3C,CAAC;IAED,YAAY,CAAC,KAAsB;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,IAAI,IAAI,CAAC;IAC1D,CAAC;IAED,cAAc;QACZ,OAAO,iBAAiB,CAAC;YACvB,WAAW,EAAE;gBACX,CAAC,6BAA6B,CAAC,EAAE,GAAG,EAAE,CACpC,IAAI,CAAC,qCAAqC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;aAC1D;SACF,CAAC,CAAC;IACL,CAAC;IAED,sFAAsF;IACtF,8FAA8F;IAC9F,iGAAiG;IACjG,8FAA8F;IAC9F,gGAAgG;IAChG,gGAAgG;IAChG,0FAA0F;IAC1F,2FAA2F;IAC3F,gGAAgG;IAChG,kGAAkG;IAC1F,OAAO,CAAC,KAAsB,EAAE,KAAa;QACnD,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,gBAAgB,GAAG,aAAa,CAAC,sBAAsB,CAAC;QAC9D,MAAM,IAAI,GAAG,uBAAuB,CAAC;YACnC,QAAQ,EAAE,KAAK,CAAC,GAAG;YACnB,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC;YAClD,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,kBAAkB;YAC5B,SAAS,EAAE,QAAQ,CAAC,EAAE,KAAK,SAAS;YACpC,iBAAiB,EAAE;gBACjB,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACrE,CAAC,oCAAoC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACtF,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE;oBACvB,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,oBAAoB,CAAC,CAAC;oBACtD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBAC1D,CAAC;gBACD,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE;oBAC1B,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,sBAAsB,CAAC,CAAC;oBACxD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACzD,CAAC;aACF;YACD,oBAAoB,EAAE,gBAAgB;gBACpC,CAAC,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;gBAC7C,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,KAAsB,EAAE,KAAa;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,cAAc,KAAK,0BAA0B,CAAC;IAClF,CAAC;IAED,SAAS,CAAC,KAAsB,EAAE,KAAa;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC;IAC5C,CAAC;IAED,eAAe,CAAC,KAAsB,EAAE,KAAa;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,WAAW,CAAC;IAChD,CAAC;IAED,eAAe;QACb,OAAO,EAAE,KAAK,EAAE,8BAA8B,EAAE,EAAE,CAAC;IACrD,CAAC;IAED,gBAAgB,CAAC,KAAsB,EAAE,KAAa;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;IAC7E,CAAC;IAED,mBAAmB,CAAC,KAAsB,EAAE,KAAa;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,mBAAmB,CAAC;IACxD,CAAC;IAED,iBAAiB,CAAC,KAAsB,EAAE,KAAa;QACrD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC;IACvD,CAAC;IAED,YAAY,CAAC,KAAsB;QACjC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,sBAAsB,KAAK,SAAS,CAAC;IAC3E,CAAC;IAED,YAAY,CAAC,KAAsB;QACjC,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,GAAG,CAAC;IAClE,CAAC;IAED,cAAc,CAAC,KAAsB,EAAE,KAAa;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC;IACzD,CAAC;uGAtNU,KAAK;2FAAL,KAAK,kLACC,eAAe,6BAxEtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqET,4DA5EC,gBAAgB,oJAChB,iBAAiB,yRACjB,wBAAwB,oIACxB,qBAAqB,qGACrB,0BAA0B;;2FA0EjB,KAAK;kBAnFjB,SAAS;mBAAC;oBACT,QAAQ,EAAE,OAAO;oBACjB,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,OAAO,EAAE;wBACP,gBAAgB;wBAChB,iBAAiB;wBACjB,wBAAwB;wBACxB,qBAAqB;wBACrB,0BAA0B;qBAC3B;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqET;iBACF;;sBAEE,eAAe;uBAAC,eAAe;;sBAE/B,KAAK;;sBACL,KAAK"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/stack/index.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,10 @@ export class TabScreenDirective {
9
9
  component;
10
10
  options;
11
11
  initialParams;
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TabScreenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: TabScreenDirective, isStandalone: true, selector: "ng-template[symbioteTabScreen]", inputs: { name: "name", component: "component", options: "options", initialParams: "initialParams" }, ngImport: i0 });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TabScreenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
13
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: TabScreenDirective, isStandalone: true, selector: "ng-template[symbioteTabScreen]", inputs: { name: "name", component: "component", options: "options", initialParams: "initialParams" }, ngImport: i0 });
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TabScreenDirective, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: TabScreenDirective, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
18
  selector: 'ng-template[symbioteTabScreen]',
@@ -33,7 +33,7 @@ export declare class Tab implements AfterContentInit, OnDestroy, ITabNavigatorHa
33
33
  ngOnDestroy(): void;
34
34
  private rebuildRegistry;
35
35
  private routesFromRegistry;
36
- private initializeState;
36
+ private syncRegistry;
37
37
  private dispatch;
38
38
  private resolveTabOptions;
39
39
  focusedRoute(): IRoute<unknown> | undefined;
@@ -19,7 +19,7 @@ import { ChangeDetectionStrategy, Component, ContentChildren, Input, QueryList,
19
19
  import { NgComponentOutlet } from '@angular/common';
20
20
  import { dlog } from '@symbiote-native/engine';
21
21
  import { DescriptorOutlet, View } from '@symbiote-native/angular';
22
- import { NAVIGATION_EVENT_BLUR, NAVIGATION_EVENT_FOCUS, createInitialTabState, createNavigationEmitter, diffFocusedRoute, isFocusedRoute, renderTabBar, tabRouterReducer, } from '../../core';
22
+ import { NAVIGATION_EVENT_BLUR, NAVIGATION_EVENT_FOCUS, createInitialTabState, createNavigationEmitter, diffFocusedRoute, isFocusedRoute, reconcileTabRoutes, renderTabBar, tabRouterReducer, } from '../../core';
23
23
  import { NavigationScopeDirective } from '../navigation-scope.directive';
24
24
  import { TabScreenDirective } from '../tab-screen.directive';
25
25
  import * as i0 from "@angular/core";
@@ -45,10 +45,9 @@ export class Tab {
45
45
  jumpTo = (name, params) => this.dispatch({ type: 'jumpTo', name, params });
46
46
  setParams = (params, key) => this.dispatch({ type: 'setParams', key, params });
47
47
  ngAfterContentInit() {
48
- this.rebuildRegistry();
49
- this.initializeState();
48
+ this.syncRegistry();
50
49
  this.tabScreenChildrenSubscription = this.tabScreenChildren.changes.subscribe(() => {
51
- this.rebuildRegistry();
50
+ this.syncRegistry();
52
51
  });
53
52
  }
54
53
  ngOnDestroy() {
@@ -69,12 +68,26 @@ export class Tab {
69
68
  params: entry.initialParams,
70
69
  }));
71
70
  }
72
- initializeState() {
73
- if (this.stateSignal() !== undefined)
74
- return;
71
+ // A <ng-template symbioteTabScreen> can appear or disappear after mount (a marker behind an
72
+ // @if, a data-driven screen list), so the route list follows the LIVE query instead of staying
73
+ // frozen at whatever ngAfterContentInit first saw: reconcileTabRoutes (core) keeps each
74
+ // surviving route's key and accumulated params and moves focus only when the focused route is
75
+ // the one that left. Runs from the query's own `changes` subscription - an ordinary imperative
76
+ // callback, deliberately not a computed, since this writes the state signal.
77
+ syncRegistry() {
78
+ this.rebuildRegistry();
75
79
  const routes = this.routesFromRegistry();
76
80
  if (routes.length === 0)
77
81
  dlog('Tab: no <ng-template symbioteTabScreen> children registered');
82
+ const current = this.stateSignal();
83
+ if (current !== undefined) {
84
+ this.stateSignal.set(reconcileTabRoutes(current, routes));
85
+ return;
86
+ }
87
+ // Seeding an empty list would resolve initialRouteName against nothing and lose it once the
88
+ // markers do arrive, so the state stays unseeded until at least one has registered.
89
+ if (routes.length === 0)
90
+ return;
78
91
  this.stateSignal.set(createInitialTabState(routes, this.initialRouteName));
79
92
  }
80
93
  dispatch(action) {
@@ -174,8 +187,8 @@ export class Tab {
174
187
  : this.screenOptions;
175
188
  return renderTabBar({ items, style: focusedOptions?.tabBarStyle, passthrough: {} });
176
189
  }
177
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Tab, deps: [], target: i0.ɵɵFactoryTarget.Component });
178
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: Tab, isStandalone: true, selector: "Tab", inputs: { initialRouteName: "initialRouteName", screenOptions: "screenOptions" }, queries: [{ propertyName: "tabScreenChildren", predicate: TabScreenDirective }], ngImport: i0, template: `
190
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Tab, deps: [], target: i0.ɵɵFactoryTarget.Component });
191
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: Tab, isStandalone: true, selector: "Tab", inputs: { initialRouteName: "initialRouteName", screenOptions: "screenOptions" }, queries: [{ propertyName: "tabScreenChildren", predicate: TabScreenDirective }], ngImport: i0, template: `
179
192
  <View [style]="rootStyle">
180
193
  <View [style]="contentStyle">
181
194
  @if (focusedRoute(); as route) {
@@ -194,7 +207,7 @@ export class Tab {
194
207
  </View>
195
208
  `, isInline: true, dependencies: [{ kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: NavigationScopeDirective, selector: "[symbioteNavigationScope]", inputs: ["symbioteNavigationScope", "navigation", "emitter"] }, { kind: "component", type: DescriptorOutlet, selector: "symbiote-descriptor-outlet", inputs: ["node"] }, { kind: "component", type: View, selector: "symbiote-view, View" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
196
209
  }
197
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Tab, decorators: [{
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: Tab, decorators: [{
198
211
  type: Component,
199
212
  args: [{
200
213
  selector: 'Tab',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/tabs/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/angular/tabs/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export * from './constants';
2
2
  export { createInitialNavigatorState, navigatorReducer, computeActivityState, isTopRoute, } from './navigator-state';
3
3
  export type { IRoute, INavigatorState, INavigatorAction } from './navigator-state';
4
+ export { reconcileStackRoutes } from './stack-router-state';
4
5
  export type { IStackAnimation, IStackPresentation, IHeaderBackButtonDisplayMode, IHeaderUserInterfaceStyle, IOptionalBooleanNativeProp, ISheetAllowedDetents, ISheetLargestUndimmedDetent, ISheetInitialDetent, IHeaderBarButtonIcon, IHeaderBarButtonItemBadge, IHeaderBarButtonItemAction, IHeaderBarButtonMenuAction, IHeaderBarButtonSubmenu, IHeaderBarButtonItemMenu, IHeaderBarButtonItemSpacing, IHeaderBarButtonItem, ISearchBarAutoCapitalize, ISearchBarPlacement, ISearchBarOptions, IScreenOrientation, IScreenOptions, INavigatorPlatform, IScreenViewProps, IHeaderConfigViewProps, IStackViewProps, ISearchBarViewProps, } from './navigator-props';
5
6
  export { resolveHeaderConfigView, resolveScreenView, resolveSearchBarView } from './screen-options';
6
7
  export { buildSearchBarHandle } from './search-bar-commands';
@@ -11,7 +12,7 @@ export { serializeNavigatorState, deserializeNavigatorState } from './state-pers
11
12
  export { createNavigationEmitter, diffFocusedRoute, NAVIGATION_EVENT_FOCUS, NAVIGATION_EVENT_BLUR, NAVIGATION_EVENT_STATE, NAVIGATION_EVENT_BEFORE_REMOVE, } from './navigation-events';
12
13
  export type { INavigationEmitter, INavigationEventListener, INavigationEventName, IFocusTransition, } from './navigation-events';
13
14
  export { isRecord } from './guards';
14
- export { createInitialTabState, tabRouterReducer, isFocusedRoute } from './tab-router-state';
15
+ export { createInitialTabState, tabRouterReducer, reconcileTabRoutes, isFocusedRoute, } from './tab-router-state';
15
16
  export type { ITabRouterState, ITabRouterAction } from './tab-router-state';
16
17
  export type { ITabBarIcon, ITabOptions } from './tab-options';
17
18
  export { renderTabBarItem, renderTabBar } from './render-tabs';
@@ -7,6 +7,10 @@
7
7
  // the descriptor bridge.
8
8
  export * from './constants';
9
9
  export { createInitialNavigatorState, navigatorReducer, computeActivityState, isTopRoute, } from './navigator-state';
10
+ // Drops history entries whose `<Stack.Screen>` marker has unregistered - see
11
+ // stack-router-state.ts's header for why the Stack's history needs this and the Tab's projection
12
+ // does not.
13
+ export { reconcileStackRoutes } from './stack-router-state';
10
14
  export { resolveHeaderConfigView, resolveScreenView, resolveSearchBarView } from './screen-options';
11
15
  export { buildSearchBarHandle } from './search-bar-commands';
12
16
  export { resolveScreenProps, resolveStackProps, renderHeaderConfig, resolveSearchBarProps, resolveScreenContentWrapperStyle, resolveScreenViewName, isHeaderInModal, resolveHeaderInModalStackStyle, resolveHeaderInModalScreenStyle, buildSearchBarPassthrough, resolveScreenRenderPlan, } from './render-stack';
@@ -18,7 +22,7 @@ export { createNavigationEmitter, diffFocusedRoute, NAVIGATION_EVENT_FOCUS, NAVI
18
22
  export { isRecord } from './guards';
19
23
  // Bottom-tabs navigator: a FOCUSED-INDEX router (not a stack - see tab-router-state.ts) driving
20
24
  // a pure-JS tab bar render, framework-agnostic and shared verbatim by every adapter.
21
- export { createInitialTabState, tabRouterReducer, isFocusedRoute } from './tab-router-state';
25
+ export { createInitialTabState, tabRouterReducer, reconcileTabRoutes, isFocusedRoute, } from './tab-router-state';
22
26
  export { renderTabBarItem, renderTabBar } from './render-tabs';
23
27
  // Linking config: resolves a URL to a route (and back), the piece @react-navigation's
24
28
  // NavigationContainer `linking` prop provides on top of the framework-agnostic Linking module.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,2FAA2F;AAC3F,gFAAgF;AAChF,yFAAyF;AACzF,2FAA2F;AAC3F,+FAA+F;AAC/F,yBAAyB;AAEzB,cAAc,aAAa,CAAC;AAE5B,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAgC3B,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,gCAAgC,EAChC,qBAAqB,EACrB,eAAe,EACf,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAQ7B,8FAA8F;AAC9F,+FAA+F;AAC/F,kGAAkG;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,gGAAgG;AAChG,qFAAqF;AACrF,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAK7F,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG/D,sFAAsF;AACtF,+FAA+F;AAC/F,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,4EAA4E;AAC5E,iGAAiG;AACjG,iGAAiG;AACjG,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAW/B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,EAC/B,iCAAiC,EACjC,iCAAiC,EACjC,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAYjE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,2FAA2F;AAC3F,gFAAgF;AAChF,yFAAyF;AACzF,2FAA2F;AAC3F,+FAA+F;AAC/F,yBAAyB;AAEzB,cAAc,aAAa,CAAC;AAE5B,OAAO,EACL,2BAA2B,EAC3B,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAG3B,6EAA6E;AAC7E,iGAAiG;AACjG,YAAY;AACZ,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AA+B5D,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAEpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,gCAAgC,EAChC,qBAAqB,EACrB,eAAe,EACf,8BAA8B,EAC9B,+BAA+B,EAC/B,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEzF,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAQ7B,8FAA8F;AAC9F,+FAA+F;AAC/F,kGAAkG;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,gGAAgG;AAChG,qFAAqF;AACrF,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG/D,sFAAsF;AACtF,+FAA+F;AAC/F,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,4EAA4E;AAC5E,iGAAiG;AACjG,iGAAiG;AACjG,OAAO,EACL,8BAA8B,EAC9B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAW/B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,4BAA4B,EAC5B,+BAA+B,EAC/B,iCAAiC,EACjC,iCAAiC,EACjC,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAYjE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { INavigatorState } from '../navigator-state';
2
+ export declare function reconcileStackRoutes(state: INavigatorState, registeredNames: readonly string[]): INavigatorState;
@@ -0,0 +1,45 @@
1
+ // StackRouter: the registry-reconciliation half (framework-agnostic, zero render). A Stack's route
2
+ // list is navigation HISTORY, not a projection of the registered `<Stack.Screen>` markers the way a
3
+ // Tab's is (tab-router-state) - it seeds exactly one route and grows only through push/replace. So
4
+ // a marker that unregisters while its route still sits in the history (a marker behind an `{#if}`,
5
+ // a data-driven screen list) leaves behind an entry nothing can render: the route stays, the
6
+ // adapter's componentFor() finds no screen, and the user is parked on a blank RNSScreen with no
7
+ // way to tell what happened. Mirrors @react-navigation/routers' StackRouter.getStateForRouteNames-
8
+ // Change, which filters those routes out of the history and pulls the focused index back into
9
+ // range.
10
+ //
11
+ // Deliberately NOT a navigatorReducer action: this is not something a caller dispatches, it is a
12
+ // reaction to the registry changing underneath an unchanged history, and each adapter observes
13
+ // that change through its own lifecycle. Keeping it a separate pure function lets every adapter
14
+ // wire it its own way without teaching the reducer about a registry it has never seen.
15
+ // The contract, and the two places it deliberately parts from upstream:
16
+ //
17
+ // - SURVIVORS KEEP THEIR IDENTITY. A stack route's key is COUNTER-derived (every adapter's
18
+ // createRoute increments a per-navigator sequence), not name-derived like a tab route's, so
19
+ // re-deriving the list from the registry would hand every survivor a brand-new key and remount
20
+ // live screens. Only the phantom entries go; every other route object passes through by
21
+ // reference, params included.
22
+ //
23
+ // - THE FOCUSED ROUTE IS THE TOP ONE. This state carries no `index` field: the focused route is
24
+ // always the last one (see computeActivityState's comment for why no route can outrank it), so
25
+ // upstream's `index: Math.min(state.index, routes.length - 1)` degenerates here to "the last
26
+ // survivor". Dropping the FOCUSED route therefore lands the user on the nearest still-registered
27
+ // route beneath it - where a pop() would have left them - rather than on nothing.
28
+ //
29
+ // - THE ROUTE LIST IS NEVER EMPTIED. `routes.length - 1` IS the focused index, so an empty list
30
+ // means no focused route at all - the blank screen this function exists to prevent. When nothing
31
+ // in the history survives (every marker gone, or the whole screen set swapped for new names) the
32
+ // state is returned UNCHANGED. Upstream instead pushes a freshly nanoid()-keyed route for
33
+ // initialRouteName; we cannot, because minting a route key belongs to the caller here
34
+ // (navigator-state.ts's header) and a derivation that mints one would allocate a new key on every
35
+ // re-run. Unchanged is also the right answer for the usual cause of a momentarily empty registry
36
+ // - markers unregistering and re-registering across a re-render - since the next run reconciles
37
+ // for real.
38
+ export function reconcileStackRoutes(state, registeredNames) {
39
+ const routes = state.routes.filter(route => registeredNames.includes(route.name));
40
+ // filter preserves order, so an unchanged length means nothing was dropped.
41
+ if (routes.length === state.routes.length || routes.length === 0)
42
+ return state;
43
+ return { routes };
44
+ }
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/stack-router-state/index.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,oGAAoG;AACpG,mGAAmG;AACnG,mGAAmG;AACnG,6FAA6F;AAC7F,gGAAgG;AAChG,mGAAmG;AACnG,8FAA8F;AAC9F,SAAS;AACT,EAAE;AACF,iGAAiG;AACjG,+FAA+F;AAC/F,gGAAgG;AAChG,uFAAuF;AAIvF,wEAAwE;AACxE,EAAE;AACF,2FAA2F;AAC3F,8FAA8F;AAC9F,iGAAiG;AACjG,0FAA0F;AAC1F,gCAAgC;AAChC,EAAE;AACF,gGAAgG;AAChG,iGAAiG;AACjG,+FAA+F;AAC/F,mGAAmG;AACnG,oFAAoF;AACpF,EAAE;AACF,gGAAgG;AAChG,mGAAmG;AACnG,mGAAmG;AACnG,4FAA4F;AAC5F,wFAAwF;AACxF,oGAAoG;AACpG,mGAAmG;AACnG,kGAAkG;AAClG,cAAc;AACd,MAAM,UAAU,oBAAoB,CAClC,KAAsB,EACtB,eAAkC;IAElC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,4EAA4E;IAC5E,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/E,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
@@ -15,5 +15,6 @@ export type ITabRouterAction = {
15
15
  params: unknown;
16
16
  };
17
17
  export declare function createInitialTabState(routes: readonly IRouteEntry[], initialRouteName?: string): ITabRouterState;
18
+ export declare function reconcileTabRoutes(state: ITabRouterState, nextRoutes: readonly IRouteEntry[]): ITabRouterState;
18
19
  export declare function tabRouterReducer(state: ITabRouterState, action: ITabRouterAction): ITabRouterState;
19
20
  export declare function isFocusedRoute(index: number, focusedIndex: number): boolean;
@@ -14,6 +14,25 @@ export function createInitialTabState(routes, initialRouteName) {
14
14
  const index = routes.findIndex(route => route.name === initialRouteName);
15
15
  return { routes, index: index === -1 ? INITIAL_FOCUSED_INDEX : index };
16
16
  }
17
+ // A screen marker can appear or disappear after mount (a marker behind an `{#if}`, a data-driven
18
+ // screen list), so a navigator's route list has to follow its registry instead of staying frozen
19
+ // at whatever createInitialTabState saw first. Mirrors TabRouter.getStateForRouteNamesChange:
20
+ // membership and order come from `nextRoutes`, but a route that survives keeps its IDENTITY (its
21
+ // key) and everything jumpTo/setParams accumulated onto its params - only genuinely new names
22
+ // take their entry from `nextRoutes`. Focus follows the previously focused route's NAME, so an
23
+ // unrelated screen disappearing never moves the user; when the focused route is the one that
24
+ // disappeared, focus falls back to the first route, the same landing spot every unresolvable
25
+ // focus gets here (createInitialTabState's own fallback).
26
+ export function reconcileTabRoutes(state, nextRoutes) {
27
+ const routes = nextRoutes.map(next => state.routes.find(route => route.name === next.name) ?? next);
28
+ const isUnchanged = routes.length === state.routes.length &&
29
+ routes.every((route, at) => route === state.routes[at]);
30
+ if (isUnchanged)
31
+ return state;
32
+ const focusedName = state.routes[state.index]?.name;
33
+ const index = routes.findIndex(route => route.name === focusedName);
34
+ return { routes, index: index === -1 ? INITIAL_FOCUSED_INDEX : index };
35
+ }
17
36
  // jumpTo moves the focused index to an existing route by name and optionally merges params
18
37
  // (navigation.jumpTo(name, params) - the tab-actions doc's own signature); it never adds,
19
38
  // removes, or reorders routes (mirrors TabRouter: JUMP_TO is a no-op when the target name isn't
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/tab-router-state/index.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,+FAA+F;AAC/F,iGAAiG;AACjG,4FAA4F;AAC5F,uFAAuF;AACvF,0FAA0F;AAC1F,8FAA8F;AAC9F,+DAA+D;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAgBxC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,MAAM,UAAU,qBAAqB,CACnC,MAA8B,EAC9B,gBAAyB;IAEzB,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;IACpF,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;IACzE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AACzE,CAAC;AAED,2FAA2F;AAC3F,0FAA0F;AAC1F,gGAAgG;AAChG,iGAAiG;AACjG,iGAAiG;AACjG,MAAM,UAAU,gBAAgB,CAC9B,KAAsB,EACtB,MAAwB;IAExB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1E,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC;YAC7D,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjF,OAAO,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACrC,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;YACxE,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjF,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC;QAC9B,CAAC;QAED;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,YAAoB;IAChE,OAAO,KAAK,KAAK,YAAY,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/tab-router-state/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symbiote-native/navigation",
3
- "version": "2.0.3",
3
+ "version": "2.1.0",
4
4
  "description": "Native stack navigator for SymbioteNative, built on react-native-screens' native view primitives (RNSScreen/RNSScreenStack) — one framework-agnostic core, reachable from the React, Vue, and Angular adapters.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -30,6 +30,10 @@
30
30
  "types": "./build/vue/index.d.ts",
31
31
  "default": "./build/vue/index.js"
32
32
  },
33
+ "./svelte": {
34
+ "types": "./build/svelte/index.d.ts",
35
+ "default": "./build/svelte/index.js"
36
+ },
33
37
  "./angular": {
34
38
  "types": "./build-ngc/angular/index.d.ts",
35
39
  "default": "./build-ngc/angular/index.js"
@@ -141,19 +145,21 @@
141
145
  },
142
146
  "dependencies": {
143
147
  "react-native-screens": "4.26.0",
144
- "@symbiote-native/components": "0.3.0"
148
+ "@symbiote-native/components": "0.4.0"
145
149
  },
146
150
  "peerDependencies": {
147
151
  "@angular/common": ">=20",
148
152
  "@angular/core": ">=20",
153
+ "@symbiote-native/angular": ">=0.6.2",
149
154
  "@symbiote-native/engine": ">=0.1.7",
155
+ "@symbiote-native/react": ">=0.2.8",
156
+ "@symbiote-native/svelte": ">=0.1.0",
157
+ "@symbiote-native/vue": ">=0.3.8",
150
158
  "@vue/runtime-core": "^3.5.13",
151
159
  "react": ">=19.0.0",
152
160
  "react-native": ">=0.86",
153
- "vue": ">=3.5.0",
154
- "@symbiote-native/angular": "0.6.2",
155
- "@symbiote-native/react": "0.2.8",
156
- "@symbiote-native/vue": "0.3.8"
161
+ "svelte": ">=5.56.0",
162
+ "vue": ">=3.5.0"
157
163
  },
158
164
  "peerDependenciesMeta": {
159
165
  "@angular/common": {
@@ -168,6 +174,9 @@
168
174
  "@symbiote-native/react": {
169
175
  "optional": true
170
176
  },
177
+ "@symbiote-native/svelte": {
178
+ "optional": true
179
+ },
171
180
  "@symbiote-native/vue": {
172
181
  "optional": true
173
182
  },
@@ -177,25 +186,30 @@
177
186
  "react": {
178
187
  "optional": true
179
188
  },
189
+ "svelte": {
190
+ "optional": true
191
+ },
180
192
  "vue": {
181
193
  "optional": true
182
194
  }
183
195
  },
184
196
  "devDependencies": {
185
- "@angular/common": "^22",
186
- "@angular/compiler": "^22",
187
- "@angular/compiler-cli": "^22",
188
- "@angular/core": "^22",
197
+ "@angular/common": "~22.0.8",
198
+ "@angular/compiler": "~22.0.8",
199
+ "@angular/compiler-cli": "~22.0.8",
200
+ "@angular/core": "~22.0.8",
189
201
  "@types/node": "^26.0.0",
190
202
  "@types/react": "^19.2.0",
191
203
  "@vue/runtime-core": "^3.5.13",
192
204
  "react": "19.2.3",
205
+ "svelte": "^5.56.0",
193
206
  "typescript": "~6.0.0",
194
- "@symbiote-native/angular": "0.6.2",
195
- "@symbiote-native/engine": "0.1.7",
196
- "@symbiote-native/react": "0.2.8",
207
+ "@symbiote-native/angular": "0.7.0",
208
+ "@symbiote-native/engine": "0.2.0",
209
+ "@symbiote-native/react": "0.3.0",
210
+ "@symbiote-native/svelte": "0.2.0",
197
211
  "@symbiote-native/test-utils": "0.1.6",
198
- "@symbiote-native/vue": "0.3.8"
212
+ "@symbiote-native/vue": "0.4.0"
199
213
  },
200
214
  "scripts": {
201
215
  "clean": "rm -rf build-ngc",