@react-navigation/core 8.0.0-alpha.11 → 8.0.0-alpha.12

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.
@@ -17,6 +17,13 @@ import { useRoute } from "./useRoute.js";
17
17
  * - When screen is a nested navigator: merges path params with navigator screen params
18
18
  * - Otherwise: merges path params with screen component params
19
19
  */
20
+ import { jsx as _jsx } from "react/jsx-runtime";
21
+ /**
22
+ * Helper to create a typed `createXScreen` for static configuration.
23
+ */
24
+ export function createScreenFactory() {
25
+ return config => config;
26
+ }
20
27
 
21
28
  /**
22
29
  * Props for a screen component which is rendered by a static navigator.
@@ -26,7 +33,7 @@ import { useRoute } from "./useRoute.js";
26
33
  /**
27
34
  * Infer the param list from the static navigation config.
28
35
  */
29
- import { jsx as _jsx } from "react/jsx-runtime";
36
+
30
37
  const MemoizedScreen = /*#__PURE__*/React.memo(({
31
38
  component
32
39
  }) => {
@@ -1 +1 @@
1
- {"version":3,"names":["React","isValidElementType","useRoute","jsx","_jsx","MemoizedScreen","memo","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","getComponent","Error","element","shouldRender","createComponentForStaticConfig","tree","Navigator","Group","config","groups","items","key","push","group","groupItems","navigationKey","length","NavigatorComponent","_","screenOptions","options","screenListeners","createPathConfigForStaticNavigation","auto","initialScreenHasPath","initialScreenConfig","createPathConfigForTree","t","o","skipInitialDetection","createPathConfigForScreens","groupLinking","initialRouteName","fromEntries","sort","a","b","screenConfig","groupPath","path","normalizePath","replace","linking","assign","parse","stringify","skipInitialDetectionInChild","undefined","toLowerCase","filter","keys","forEach"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","isValidElementType","useRoute","jsx","_jsx","createScreenFactory","config","MemoizedScreen","memo","component","route","children","createElement","displayName","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","getComponent","Error","element","shouldRender","createComponentForStaticConfig","tree","Navigator","Group","groups","items","key","push","group","groupItems","navigationKey","length","NavigatorComponent","_","screenOptions","options","screenListeners","createPathConfigForStaticNavigation","auto","initialScreenHasPath","initialScreenConfig","createPathConfigForTree","t","o","skipInitialDetection","createPathConfigForScreens","groupLinking","initialRouteName","fromEntries","sort","a","b","screenConfig","groupPath","path","normalizePath","replace","linking","assign","parse","stringify","skipInitialDetectionInChild","undefined","toLowerCase","filter","keys","forEach"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,13 +4,14 @@ import * as React from 'react';
4
4
  import { Group } from "./Group.js";
5
5
  import { Screen } from "./Screen.js";
6
6
  import { createComponentForStaticConfig } from "./StaticNavigation.js";
7
-
8
7
  /**
9
- * Higher order component to create a `Navigator` and `Screen` pair.
10
- * Custom navigators should wrap the navigator component in `createNavigator` before exporting.
8
+ * Higher order function to create a navigator factory
9
+ * A navigator factory creates a navigator:
10
+ * - `Navigator` and `Screen` pairs for dynamic configuration
11
+ * - Static navigator object for static configuration
11
12
  *
12
13
  * @param Navigator The navigator component to wrap.
13
- * @returns Factory method to create a `Navigator` and `Screen` pair.
14
+ * @returns Factory method to create a navigator
14
15
  */
15
16
  export function createNavigatorFactory(Navigator) {
16
17
  const displayName = Navigator.displayName ?? Navigator.name ?? 'Navigator';
@@ -1 +1 @@
1
- {"version":3,"names":["React","Group","Screen","createComponentForStaticConfig","createNavigatorFactory","Navigator","displayName","name","createNavigator","config","NavigatorComponent","with","DecoratorComponent","WithComponent","createElement","getComponent"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,MAAM,QAAQ,aAAU;AACjC,SAASC,8BAA8B,QAAQ,uBAAoB;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAACC,SAAmC,EAAE;EAC1E,MAAMC,WAAW,GAAGD,SAAS,CAACC,WAAW,IAAID,SAAS,CAACE,IAAI,IAAI,WAAW;EAE1E,SAASC,eAAeA,CAACC,MAAY,EAAO;IAC1C,IAAIA,MAAM,IAAI,IAAI,EAAE;MAClB,MAAMC,kBAAkB,GAAGP,8BAA8B,CACvD;QACEE,SAAS;QACTH,MAAM;QACND,KAAK;QACLQ;MACF,CAAC,EACDH,WACF,CAAC;MAED,OAAO;QACLG,MAAM;QACNE,IAAIA,CACFC,kBAEE,EACF;UACA,MAAMC,aAAa,GAAGA,CAAA,KAAM;YAC1B,oBAAOb,KAAK,CAACc,aAAa,CAACF,kBAAkB,EAAE;cAC7CP,SAAS,EAAEK;YACb,CAAC,CAAC;UACJ,CAAC;UAEDG,aAAa,CAACP,WAAW,GAAG,GAAGA,WAAW,MAAM;UAEhD,OAAO;YACLG,MAAM;YACNM,YAAY,EAAEA,CAAA,KAAMF;UACtB,CAAC;QACH,CAAC;QACDE,YAAYA,CAAA,EAAG;UACb,OAAOL,kBAAkB;QAC3B;MACF,CAAC;IACH;IAEA,OAAO;MACLL,SAAS;MACTH,MAAM;MACND;IACF,CAAC;EACH;EAEA,OAAOO,eAAe;AACxB","ignoreList":[]}
1
+ {"version":3,"names":["React","Group","Screen","createComponentForStaticConfig","createNavigatorFactory","Navigator","displayName","name","createNavigator","config","NavigatorComponent","with","DecoratorComponent","WithComponent","createElement","getComponent"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,MAAM,QAAQ,aAAU;AACjC,SACEC,8BAA8B,QAGzB,uBAAoB;AAyB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCC,SAAmC,EACH;EAChC,MAAMC,WAAW,GAAGD,SAAS,CAACC,WAAW,IAAID,SAAS,CAACE,IAAI,IAAI,WAAW;EAE1E,SAASC,eAAeA,CAACC,MAAY,EAAO;IAC1C,IAAIA,MAAM,IAAI,IAAI,EAAE;MAClB,MAAMC,kBAAkB,GAAGP,8BAA8B,CACvD;QACEE,SAAS;QACTH,MAAM;QACND,KAAK;QACLQ;MACF,CAAC,EACDH,WACF,CAAC;MAED,OAAO;QACLG,MAAM;QACNE,IAAIA,CACFC,kBAEE,EACF;UACA,MAAMC,aAAa,GAAGA,CAAA,KAAM;YAC1B,oBAAOb,KAAK,CAACc,aAAa,CAACF,kBAAkB,EAAE;cAC7CP,SAAS,EAAEK;YACb,CAAC,CAAC;UACJ,CAAC;UAEDG,aAAa,CAACP,WAAW,GAAG,GAAGA,WAAW,MAAM;UAEhD,OAAO;YACLG,MAAM;YACNM,YAAY,EAAEA,CAAA,KAAMF;UACtB,CAAC;QACH,CAAC;QACDE,YAAYA,CAAA,EAAG;UACb,OAAOL,kBAAkB;QAC3B;MACF,CAAC;IACH;IAEA,OAAO;MACLL,SAAS;MACTH,MAAM;MACND;IACF,CAAC;EACH;EAEA,OAAOO,eAAe;AACxB","ignoreList":[]}
@@ -16,7 +16,7 @@ export { NavigationMetaContext } from "./NavigationMetaContext.js";
16
16
  export { NavigationContext, NavigationProvider, NavigationRouteContext } from "./NavigationProvider.js";
17
17
  export { PreventRemoveContext } from "./PreventRemoveContext.js";
18
18
  export { PreventRemoveProvider } from "./PreventRemoveProvider.js";
19
- export { createPathConfigForStaticNavigation } from "./StaticNavigation.js";
19
+ export { createPathConfigForStaticNavigation, createScreenFactory } from "./StaticNavigation.js";
20
20
  export { ThemeContext } from "./theming/ThemeContext.js";
21
21
  export { ThemeProvider } from "./theming/ThemeProvider.js";
22
22
  export { useTheme } from "./theming/useTheme.js";
@@ -1 +1 @@
1
- {"version":3,"names":["BaseNavigationContainer","createNavigationContainerRef","createNavigatorFactory","CurrentRenderContext","findFocusedRoute","getActionFromState","getFocusedRouteNameFromRoute","getPathFromState","getStateFromPath","NavigationContainerRefContext","NavigationHelpersContext","NavigationIndependentTree","NavigationMetaContext","NavigationContext","NavigationProvider","NavigationRouteContext","PreventRemoveContext","PreventRemoveProvider","createPathConfigForStaticNavigation","ThemeContext","ThemeProvider","useTheme","useFocusEffect","useIsFocused","useNavigation","useNavigationBuilder","useNavigationContainerRef","useNavigationIndependentTree","useNavigationState","usePreventRemove","usePreventRemoveContext","useRoute","useStateForPath","validatePathConfig"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,6BAA6B,QAAQ,oCAAiC;AAC/E,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,sBAAsB,QACjB,yBAAsB;AAC7B,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,mCAAmC,QAQ9B,uBAAoB;AAC3B,SAASC,YAAY,QAAQ,2BAAwB;AACrD,SAASC,aAAa,QAAQ,4BAAyB;AACvD,SAASC,QAAQ,QAAQ,uBAAoB;AAC7C,cAAc,YAAS;AACvB,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,eAAe,QAAQ,sBAAmB;AAEnD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,cAAc,2BAA2B","ignoreList":[]}
1
+ {"version":3,"names":["BaseNavigationContainer","createNavigationContainerRef","createNavigatorFactory","CurrentRenderContext","findFocusedRoute","getActionFromState","getFocusedRouteNameFromRoute","getPathFromState","getStateFromPath","NavigationContainerRefContext","NavigationHelpersContext","NavigationIndependentTree","NavigationMetaContext","NavigationContext","NavigationProvider","NavigationRouteContext","PreventRemoveContext","PreventRemoveProvider","createPathConfigForStaticNavigation","createScreenFactory","ThemeContext","ThemeProvider","useTheme","useFocusEffect","useIsFocused","useNavigation","useNavigationBuilder","useNavigationContainerRef","useNavigationIndependentTree","useNavigationState","usePreventRemove","usePreventRemoveContext","useRoute","useStateForPath","validatePathConfig"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SACEC,sBAAsB,QAEjB,6BAA0B;AACjC,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,6BAA6B,QAAQ,oCAAiC;AAC/E,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,sBAAsB,QACjB,yBAAsB;AAC7B,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SACEC,mCAAmC,EACnCC,mBAAmB,QASd,uBAAoB;AAC3B,SAASC,YAAY,QAAQ,2BAAwB;AACrD,SAASC,aAAa,QAAQ,4BAAyB;AACvD,SAASC,QAAQ,QAAQ,uBAAoB;AAC7C,cAAc,YAAS;AACvB,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,yBAAyB,QAAQ,gCAA6B;AACvE,SAASC,4BAA4B,QAAQ,mCAAgC;AAC7E,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,eAAe,QAAQ,sBAAmB;AAEnD,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,cAAc,2BAA2B","ignoreList":[]}
@@ -42,4 +42,11 @@ export class PrivateValueStore {}
42
42
  * The hook can be used in `NavigationContainer` directly, not inside of a navigator.
43
43
  * So navigator specific methods won't be available.
44
44
  */
45
+
46
+ // Only use action helpers if all values are functions
47
+
48
+ /**
49
+ * Adds a proper `ParamList` to a type bag interface
50
+ * So it can be used as `this['ParamList']`
51
+ */
45
52
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PrivateValueStore"],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":";;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8NA,OAAO,MAAMA,iBAAiB,CAA4B;;AAkpB1D;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["PrivateValueStore"],"sourceRoot":"../../src","sources":["types.tsx"],"mappings":";;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA8NA,OAAO,MAAMA,iBAAiB,CAA4B;;AAopB1D;AACA;AACA;AACA;AACA;AACA;;AA4OA;;AAuBA;AACA;AACA;AACA","ignoreList":[]}
@@ -18,8 +18,8 @@ export function useNavigationState(...args) {
18
18
  let navigation, stateListener, selector;
19
19
  if (typeof args[0] === 'string') {
20
20
  // `useNavigation` uses `use` internally, so it's fine to call it conditionally
21
- // @ts-expect-error we can't specify the type here
22
- // eslint-disable-next-line react-hooks/rules-of-hooks
21
+ // Cast to a non-generic signature to skip overload resolution - otherwise TS
22
+ // eagerly expands `NavigationListForNested<RootNavigator>` at this call site.
23
23
  navigation = useNavigation(args[0]);
24
24
  selector = args[1];
25
25
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useLatestCallback","useSyncExternalStoreWithSelector","useNavigation","jsx","_jsx","useNavigationState","args","navigation","stateListener","selector","use","NavigationStateListenerContext","Error","subscribe","useCallback","callback","addListener","getSnapshot","getState","value","NavigationStateListenerProvider","state","children","listeners","useRef","stateRef","current","push","filter","cb","useLayoutEffect","forEach","context","useMemo","Provider","createContext","undefined"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,SAASC,gCAAgC,QAAQ,uCAAuC;AAOxF,SAASC,aAAa,QAAQ,oBAAiB;;AAgB/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,SAAAC,GAAA,IAAAC,IAAA;AAoBA,OAAO,SAASC,kBAAkBA,CAAC,GAAGC,IAAe,EAAW;EAC9D,IAAIC,UAAqD,EACvDC,aAAkD,EAClDC,QAAQ;EAEV,IAAI,OAAOH,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;IAC/B;IACA;IACA;IACAC,UAAU,GAAGL,aAAa,CAACI,IAAI,CAAC,CAAC,CAAC,CAAC;IACnCG,QAAQ,GAAGH,IAAI,CAAC,CAAC,CAAC;EACpB,CAAC,MAAM;IACLG,QAAQ,GAAGH,IAAI,CAAC,CAAC,CAAC;EACpB;EAEA,IAAIC,UAAU,IAAI,IAAI,EAAE;IACtBC,aAAa,GAAGT,KAAK,CAACW,GAAG,CAACC,8BAA8B,CAAC;IAEzD,IAAIH,aAAa,IAAI,IAAI,EAAE;MACzB,MAAM,IAAII,KAAK,CACb,0EACF,CAAC;IACH;EACF;EAEA,MAAMC,SAAS,GAAGd,KAAK,CAACe,WAAW,CAChCC,QAAoB,IAAK;IACxB,IAAIR,UAAU,EAAE;MACd,OAAOA,UAAU,CAACS,WAAW,CAAC,OAAO,EAAED,QAAQ,CAAC;IAClD,CAAC,MAAM,IAAIP,aAAa,EAAE;MACxB,OAAOA,aAAa,CAACK,SAAS,CAACE,QAAQ,CAAC;IAC1C,CAAC,MAAM;MACL,MAAM,IAAIH,KAAK,CACb,uEACF,CAAC;IACH;EACF,CAAC,EACD,CAACL,UAAU,EAAEC,aAAa,CAC5B,CAAC;EAED,MAAMS,WAAW,GAAGV,UAAU,GAC1BA,UAAU,CAACW,QAAQ,GACnBV,aAAa,EAAEU,QAAQ;EAE3B,IAAID,WAAW,IAAI,IAAI,EAAE;IACvB,MAAM,IAAIL,KAAK,CAAC,0DAA0D,CAAC;EAC7E;EAEA,IAAI,OAAOH,QAAQ,KAAK,UAAU,EAAE;IAClC,MAAM,IAAIG,KAAK,CACb,6CAA6C,OAAOH,QAAQ,IAC9D,CAAC;EACH;EAEA,MAAMU,KAAK,GAAGlB,gCAAgC,CAC5CY,SAAS,EACTI,WAAW,EACXA,WAAW;EACX;EACAR,QACF,CAAC;EAED,OAAOU,KAAK;AACd;AAEA,OAAO,SAASC,+BAA+BA,CAAC;EAC9CC,KAAK;EACLC;AAIF,CAAC,EAAE;EACD,MAAMC,SAAS,GAAGxB,KAAK,CAACyB,MAAM,CAAiB,EAAE,CAAC;EAClD,MAAMC,QAAQ,GAAG1B,KAAK,CAACyB,MAAM,CAACH,KAAK,CAAC;EAEpC,MAAMH,QAAQ,GAAGlB,iBAAiB,CAAC,MAAMyB,QAAQ,CAACC,OAAO,CAAC;EAE1D,MAAMb,SAAS,GAAGb,iBAAiB,CAAEe,QAAoB,IAAK;IAC5DQ,SAAS,CAACG,OAAO,CAACC,IAAI,CAACZ,QAAQ,CAAC;IAEhC,OAAO,MAAM;MACXQ,SAAS,CAACG,OAAO,GAAGH,SAAS,CAACG,OAAO,CAACE,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKd,QAAQ,CAAC;IACvE,CAAC;EACH,CAAC,CAAC;EAEFhB,KAAK,CAAC+B,eAAe,CAAC,MAAM;IAC1BL,QAAQ,CAACC,OAAO,GAAGL,KAAK;IACxBE,SAAS,CAACG,OAAO,CAACK,OAAO,CAAEhB,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EACrD,CAAC,EAAE,CAACM,KAAK,CAAC,CAAC;EAEX,MAAMW,OAAO,GAAGjC,KAAK,CAACkC,OAAO,CAC3B,OAAO;IACLf,QAAQ;IACRL;EACF,CAAC,CAAC,EACF,CAACK,QAAQ,EAAEL,SAAS,CACtB,CAAC;EAED,oBACET,IAAA,CAACO,8BAA8B,CAACuB,QAAQ;IAACf,KAAK,EAAEa,OAAQ;IAAAV,QAAA,EACrDA;EAAQ,CAC8B,CAAC;AAE9C;AAEA,MAAMX,8BAA8B,gBAAGZ,KAAK,CAACoC,aAAa,CAExDC,SAAS,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useLatestCallback","useSyncExternalStoreWithSelector","useNavigation","jsx","_jsx","useNavigationState","args","navigation","stateListener","selector","use","NavigationStateListenerContext","Error","subscribe","useCallback","callback","addListener","getSnapshot","getState","value","NavigationStateListenerProvider","state","children","listeners","useRef","stateRef","current","push","filter","cb","useLayoutEffect","forEach","context","useMemo","Provider","createContext","undefined"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,SAASC,gCAAgC,QAAQ,uCAAuC;AAOxF,SAASC,aAAa,QAAQ,oBAAiB;;AAgB/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,SAAAC,GAAA,IAAAC,IAAA;AAoBA,OAAO,SAASC,kBAAkBA,CAAC,GAAGC,IAAe,EAAW;EAC9D,IAAIC,UAAqD,EACvDC,aAAkD,EAClDC,QAAQ;EAEV,IAAI,OAAOH,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;IAC/B;IACA;IACA;IACAC,UAAU,GACRL,aAAa,CACbI,IAAI,CAAC,CAAC,CAAC,CAAC;IACVG,QAAQ,GAAGH,IAAI,CAAC,CAAC,CAAC;EACpB,CAAC,MAAM;IACLG,QAAQ,GAAGH,IAAI,CAAC,CAAC,CAAC;EACpB;EAEA,IAAIC,UAAU,IAAI,IAAI,EAAE;IACtBC,aAAa,GAAGT,KAAK,CAACW,GAAG,CAACC,8BAA8B,CAAC;IAEzD,IAAIH,aAAa,IAAI,IAAI,EAAE;MACzB,MAAM,IAAII,KAAK,CACb,0EACF,CAAC;IACH;EACF;EAEA,MAAMC,SAAS,GAAGd,KAAK,CAACe,WAAW,CAChCC,QAAoB,IAAK;IACxB,IAAIR,UAAU,EAAE;MACd,OAAOA,UAAU,CAACS,WAAW,CAAC,OAAO,EAAED,QAAQ,CAAC;IAClD,CAAC,MAAM,IAAIP,aAAa,EAAE;MACxB,OAAOA,aAAa,CAACK,SAAS,CAACE,QAAQ,CAAC;IAC1C,CAAC,MAAM;MACL,MAAM,IAAIH,KAAK,CACb,uEACF,CAAC;IACH;EACF,CAAC,EACD,CAACL,UAAU,EAAEC,aAAa,CAC5B,CAAC;EAED,MAAMS,WAAW,GAAGV,UAAU,GAC1BA,UAAU,CAACW,QAAQ,GACnBV,aAAa,EAAEU,QAAQ;EAE3B,IAAID,WAAW,IAAI,IAAI,EAAE;IACvB,MAAM,IAAIL,KAAK,CAAC,0DAA0D,CAAC;EAC7E;EAEA,IAAI,OAAOH,QAAQ,KAAK,UAAU,EAAE;IAClC,MAAM,IAAIG,KAAK,CACb,6CAA6C,OAAOH,QAAQ,IAC9D,CAAC;EACH;EAEA,MAAMU,KAAK,GAAGlB,gCAAgC,CAC5CY,SAAS,EACTI,WAAW,EACXA,WAAW;EACX;EACAR,QACF,CAAC;EAED,OAAOU,KAAK;AACd;AAEA,OAAO,SAASC,+BAA+BA,CAAC;EAC9CC,KAAK;EACLC;AAIF,CAAC,EAAE;EACD,MAAMC,SAAS,GAAGxB,KAAK,CAACyB,MAAM,CAAiB,EAAE,CAAC;EAClD,MAAMC,QAAQ,GAAG1B,KAAK,CAACyB,MAAM,CAACH,KAAK,CAAC;EAEpC,MAAMH,QAAQ,GAAGlB,iBAAiB,CAAC,MAAMyB,QAAQ,CAACC,OAAO,CAAC;EAE1D,MAAMb,SAAS,GAAGb,iBAAiB,CAAEe,QAAoB,IAAK;IAC5DQ,SAAS,CAACG,OAAO,CAACC,IAAI,CAACZ,QAAQ,CAAC;IAEhC,OAAO,MAAM;MACXQ,SAAS,CAACG,OAAO,GAAGH,SAAS,CAACG,OAAO,CAACE,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKd,QAAQ,CAAC;IACvE,CAAC;EACH,CAAC,CAAC;EAEFhB,KAAK,CAAC+B,eAAe,CAAC,MAAM;IAC1BL,QAAQ,CAACC,OAAO,GAAGL,KAAK;IACxBE,SAAS,CAACG,OAAO,CAACK,OAAO,CAAEhB,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EACrD,CAAC,EAAE,CAACM,KAAK,CAAC,CAAC;EAEX,MAAMW,OAAO,GAAGjC,KAAK,CAACkC,OAAO,CAC3B,OAAO;IACLf,QAAQ;IACRL;EACF,CAAC,CAAC,EACF,CAACK,QAAQ,EAAEL,SAAS,CACtB,CAAC;EAED,oBACET,IAAA,CAACO,8BAA8B,CAACuB,QAAQ;IAACf,KAAK,EAAEa,OAAQ;IAAAV,QAAA,EACrDA;EAAQ,CAC8B,CAAC;AAE9C;AAEA,MAAMX,8BAA8B,gBAAGZ,KAAK,CAACoC,aAAa,CAExDC,SAAS,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import type { NavigationState, ParamListBase, Route } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
- import type { DefaultNavigatorOptions, EventMapBase, NavigationListBase, NavigatorScreenParams, NavigatorTypeBagBase, PathConfig, PathConfigMap, RouteGroupConfig, ScreenListeners, Theme } from './types';
3
+ import type { DefaultNavigatorOptions, EventMapBase, NavigationListBase, NavigatorScreenParams, NavigatorTypeBagBase, NavigatorTypeBagFor, PathConfig, PathConfigMap, RouteGroupConfig, ScreenListeners, Theme } from './types';
4
4
  import type { AnyToUnknown, FlatType, HasArguments, InferParamsFromLinking, KeysOf, StandardSchemaV1, UnionToIntersection, ValidPathPattern } from './utilities';
5
5
  type ParamsForScreenComponent<T> = T extends (...args: any[]) => any ? HasArguments<T> extends true ? T extends React.ComponentType<{
6
6
  route: {
@@ -12,16 +12,16 @@ type ParamsForScreenComponent<T> = T extends (...args: any[]) => any ? HasArgume
12
12
  };
13
13
  }> ? Params : undefined;
14
14
  type ParamsForNestedNavigator<T extends {
15
- config: StaticConfig<NavigatorTypeBagBase>;
15
+ config: any;
16
16
  }, ParamList extends {} = StaticParamList<T>> = {
17
17
  [RouteName in keyof ParamList]-?: undefined extends ParamList[RouteName] ? never : RouteName;
18
18
  }[keyof ParamList] extends never ? NavigatorScreenParams<ParamList> | undefined : NavigatorScreenParams<ParamList>;
19
19
  type ParamsForScreen<T> = T extends {
20
20
  screen: {
21
- config: StaticConfig<NavigatorTypeBagBase>;
21
+ config: any;
22
22
  };
23
23
  } ? ParamsForNestedNavigator<T['screen']> : T extends {
24
- config: StaticConfig<NavigatorTypeBagBase>;
24
+ config: any;
25
25
  } ? ParamsForNestedNavigator<T> : T extends {
26
26
  screen: React.ComponentType<any>;
27
27
  } ? ParamsForScreenComponent<T['screen']> : ParamsForScreenComponent<T>;
@@ -37,9 +37,10 @@ type MergeLinkingAndScreenParams<LinkingParams, ScreenParams> = undefined extend
37
37
  * - When screen is a nested navigator: merges path params with navigator screen params
38
38
  * - Otherwise: merges path params with screen component params
39
39
  */
40
- type ParamsForConfig<Linking, Screen> = undefined extends Linking ? ParamsForScreen<Screen> : ShouldInferFromLinking<Linking> extends true ? Screen extends {
41
- config: StaticConfig<NavigatorTypeBagBase>;
42
- } ? FlatType<InferParamsFromLinking<Linking>> & ParamsForScreen<Screen> : MergeLinkingAndScreenParams<InferParamsFromLinking<Linking>, ParamsForScreen<Screen>> : ParamsForScreen<Screen>;
40
+ type ParamsForConfig<Linking, Screen> = ParamsForConfigInternal<Linking, Screen, ParamsForScreen<Screen>>;
41
+ type ParamsForConfigInternal<Linking, Screen, SP> = undefined extends Linking ? SP : ShouldInferFromLinking<Linking> extends true ? Screen extends {
42
+ config: any;
43
+ } ? FlatType<InferParamsFromLinking<Linking>> & SP : MergeLinkingAndScreenParams<InferParamsFromLinking<Linking>, SP> : SP;
43
44
  type ParamListForScreens<Screens> = {
44
45
  [Key in KeysOf<Screens>]: Screens[Key] extends StaticScreenConfig<infer Linking, infer Screen, any, any, any, any> ? ParamsForConfig<Linking, Screen> : ParamsForScreen<Screens[Key]>;
45
46
  };
@@ -105,6 +106,15 @@ export type StaticScreenConfigLinking = string | (StaticScreenConfigLinkingAlias
105
106
  * Additional path alias that will be matched to the same screen.
106
107
  */
107
108
  alias?: (string | StaticScreenConfigLinkingAlias)[];
109
+ /**
110
+ * Name of the initial route to use for the nested navigator when the path matches.
111
+ */
112
+ initialRouteName?: string | undefined;
113
+ /**
114
+ * Path configuration for child screens in the nested navigator.
115
+ * Only supported when the screen renders a navigator with dynamic API.
116
+ */
117
+ screens?: PathConfigMap<ParamListBase> | undefined;
108
118
  }) | undefined;
109
119
  export type StaticScreenConfigScreen = React.ComponentType<any> | StaticNavigation<any>;
110
120
  export type StaticScreenConfig<Linking extends StaticScreenConfigLinking, Screen, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation, Params = ParamsForConfig<Linking, Screen>> = {
@@ -221,7 +231,12 @@ export type StaticScreenConfig<Linking extends StaticScreenConfigLinking, Screen
221
231
  */
222
232
  navigationKey?: string;
223
233
  };
224
- type StaticConfigScreens<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>> = {
234
+ export type StaticScreenFactory<in out Bag extends NavigatorTypeBagBase> = <const Linking extends StaticScreenConfigLinking, const Screen extends StaticScreenConfigScreen>(config: StaticScreenConfig<Linking, Screen, Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'][keyof Bag['ParamList']]>) => StaticScreenConfig<Linking, Screen, Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'][keyof Bag['ParamList']]>;
235
+ /**
236
+ * Helper to create a typed `createXScreen` for static configuration.
237
+ */
238
+ export declare function createScreenFactory<TypeBag extends NavigatorTypeBagBase>(): StaticScreenFactory<NavigatorTypeBagFor<TypeBag, ParamListBase>>;
239
+ type StaticConfigScreens<in out ParamList extends ParamListBase, in out State extends NavigationState, in out ScreenOptions extends {}, in out EventMap extends EventMapBase, in out NavigationList extends NavigationListBase<ParamList>> = {
225
240
  [RouteName in keyof ParamList]: React.ComponentType<any> | StaticNavigation<any> | StaticScreenConfig<{
226
241
  path: string;
227
242
  parse?: Record<string, ((value: string) => any) | StandardSchemaV1<any, any>>;
@@ -260,7 +275,7 @@ type StaticConfigGroup<ParamList extends ParamListBase, State extends Navigation
260
275
  screens: StaticConfigScreens<ParamList, State, ScreenOptions, EventMap, NavigationList>;
261
276
  };
262
277
  export type StaticConfig<Bag extends NavigatorTypeBagBase> = StaticConfigInternal<Bag['ParamList'], Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'], Bag['Navigator']>;
263
- type StaticConfigInternal<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>, Navigator extends React.ComponentType<any>> = Omit<Omit<React.ComponentProps<Navigator>, keyof DefaultNavigatorOptions<ParamListBase, NavigationState, {}, EventMapBase, NavigationList[keyof ParamList]>> & DefaultNavigatorOptions<ParamList, State, ScreenOptions, EventMap, NavigationList[keyof ParamList]>, 'screens' | 'children'> & ({
278
+ type StaticConfigInternal<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>, Navigator extends React.ComponentType<any>> = Omit<Omit<React.ComponentProps<Navigator>, keyof DefaultNavigatorOptions<any, any, any, any, any>> & DefaultNavigatorOptions<ParamList, State, ScreenOptions, EventMap, NavigationList[keyof ParamList]>, 'screens' | 'children'> & ({
264
279
  /**
265
280
  * Screens to render in the navigator and their configuration.
266
281
  */
@@ -287,7 +302,7 @@ type StaticConfigInternal<ParamList extends ParamListBase, State extends Navigat
287
302
  * Props for a screen component which is rendered by a static navigator.
288
303
  * Takes the route params as a generic argument.
289
304
  */
290
- export type StaticScreenProps<T extends Record<string, unknown> | undefined> = {
305
+ export type StaticScreenProps<in out T extends Record<string, unknown> | undefined> = {
291
306
  route: {
292
307
  params: T;
293
308
  };
@@ -298,7 +313,7 @@ export type StaticScreenProps<T extends Record<string, unknown> | undefined> = {
298
313
  export type StaticParamList<T extends {
299
314
  readonly config: any;
300
315
  }> = FlatType<ParamListForScreens<T['config']['screens']> & ParamListForGroups<T['config']['groups']>>;
301
- export type StaticNavigation<NavigatorTypeBag extends NavigatorTypeBagBase> = {
316
+ export type StaticNavigation<in out NavigatorTypeBag extends NavigatorTypeBagBase> = {
302
317
  config: StaticConfig<NavigatorTypeBag>;
303
318
  getComponent: () => React.ComponentType<{}>;
304
319
  };
@@ -1 +1 @@
1
- {"version":3,"file":"StaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/StaticNavigation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StaticNavigation.d.ts","sourceRoot":"","sources":["../../../src/StaticNavigation.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,21 @@
1
+ import type { ParamListBase } from '@react-navigation/routers';
1
2
  import * as React from 'react';
3
+ import { type StaticConfig, type StaticParamList } from './StaticNavigation';
4
+ import type { NavigatorTypeBagBase, NavigatorTypeBagFor, TypedNavigator } from './types';
5
+ export type TypedNavigatorFactory<in out TypeBag extends NavigatorTypeBagBase> = {
6
+ <const ParamList extends ParamListBase>(): TypedNavigator<NavigatorTypeBagFor<TypeBag, ParamList>, undefined>;
7
+ <const Config extends StaticConfig<NavigatorTypeBagFor<TypeBag, ParamListBase>>>(config: Config): TypedNavigator<NavigatorTypeBagFor<TypeBag, StaticParamList<{
8
+ config: Config;
9
+ }>>, Config>;
10
+ };
2
11
  /**
3
- * Higher order component to create a `Navigator` and `Screen` pair.
4
- * Custom navigators should wrap the navigator component in `createNavigator` before exporting.
12
+ * Higher order function to create a navigator factory
13
+ * A navigator factory creates a navigator:
14
+ * - `Navigator` and `Screen` pairs for dynamic configuration
15
+ * - Static navigator object for static configuration
5
16
  *
6
17
  * @param Navigator The navigator component to wrap.
7
- * @returns Factory method to create a `Navigator` and `Screen` pair.
18
+ * @returns Factory method to create a navigator
8
19
  */
9
- export declare function createNavigatorFactory(Navigator: React.ComponentType<any>): (config?: any) => any;
20
+ export declare function createNavigatorFactory<TypeBag extends NavigatorTypeBagBase>(Navigator: React.ComponentType<any>): TypedNavigatorFactory<TypeBag>;
10
21
  //# sourceMappingURL=createNavigatorFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createNavigatorFactory.d.ts","sourceRoot":"","sources":["../../../src/createNavigatorFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,aAGtC,GAAG,KAAG,GAAG,CA8C5C"}
1
+ {"version":3,"file":"createNavigatorFactory.d.ts","sourceRoot":"","sources":["../../../src/createNavigatorFactory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,MAAM,MAAM,qBAAqB,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,SAAS,oBAAoB,IAC3E;IACE,CAAC,KAAK,CAAC,SAAS,SAAS,aAAa,KAAK,cAAc,CACvD,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,EACvC,SAAS,CACV,CAAC;IACF,CACE,KAAK,CAAC,MAAM,SAAS,YAAY,CAC/B,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAC5C,EAED,MAAM,EAAE,MAAM,GACb,cAAc,CACf,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,EACjE,MAAM,CACP,CAAC;CACH,CAAC;AAEJ;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,SAAS,oBAAoB,EACzE,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAClC,qBAAqB,CAAC,OAAO,CAAC,CAiDhC"}
@@ -1,6 +1,6 @@
1
1
  export { BaseNavigationContainer } from './BaseNavigationContainer';
2
2
  export { createNavigationContainerRef } from './createNavigationContainerRef';
3
- export { createNavigatorFactory } from './createNavigatorFactory';
3
+ export { createNavigatorFactory, type TypedNavigatorFactory, } from './createNavigatorFactory';
4
4
  export { CurrentRenderContext } from './CurrentRenderContext';
5
5
  export { findFocusedRoute } from './findFocusedRoute';
6
6
  export { getActionFromState } from './getActionFromState';
@@ -14,7 +14,7 @@ export { NavigationMetaContext } from './NavigationMetaContext';
14
14
  export { NavigationContext, NavigationProvider, NavigationRouteContext, } from './NavigationProvider';
15
15
  export { PreventRemoveContext } from './PreventRemoveContext';
16
16
  export { PreventRemoveProvider } from './PreventRemoveProvider';
17
- export { createPathConfigForStaticNavigation, type StaticConfig, type StaticNavigation, type StaticParamList, type StaticScreenConfig, type StaticScreenConfigLinking, type StaticScreenConfigScreen, type StaticScreenProps, } from './StaticNavigation';
17
+ export { createPathConfigForStaticNavigation, createScreenFactory, type StaticConfig, type StaticNavigation, type StaticParamList, type StaticScreenConfig, type StaticScreenConfigLinking, type StaticScreenConfigScreen, type StaticScreenFactory, type StaticScreenProps, } from './StaticNavigation';
18
18
  export { ThemeContext } from './theming/ThemeContext';
19
19
  export { ThemeProvider } from './theming/ThemeProvider';
20
20
  export { useTheme } from './theming/useTheme';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,mCAAmC,EACnC,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EACL,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,mCAAmC,EACnC,mBAAmB,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,cAAc,2BAA2B,CAAC"}
@@ -104,7 +104,7 @@ export type EventMapBase = Record<string, {
104
104
  data?: any;
105
105
  canPreventDefault?: boolean | undefined;
106
106
  }>;
107
- export type EventMapCore<State extends NavigationState> = {
107
+ export type EventMapCore<in out State extends NavigationState> = {
108
108
  focus: {
109
109
  data: undefined;
110
110
  };
@@ -146,8 +146,8 @@ export type EventArg<EventName, CanPreventDefault extends boolean | undefined =
146
146
  } : {
147
147
  readonly data: Readonly<Data>;
148
148
  });
149
- export type EventListenerCallback<EventMap extends EventMapBase, EventName extends keyof EventMap, EventCanPreventDefault extends boolean | undefined = EventMap[EventName]['canPreventDefault']> = (e: EventArg<EventName, undefined extends EventCanPreventDefault ? false : EventCanPreventDefault, EventMap[EventName]['data']>) => void;
150
- export type EventConsumer<EventMap extends EventMapBase> = {
149
+ export type EventListenerCallback<in out EventMap extends EventMapBase, in out EventName extends keyof EventMap, in out EventCanPreventDefault extends boolean | undefined = EventMap[EventName]['canPreventDefault']> = (e: EventArg<EventName, undefined extends EventCanPreventDefault ? false : EventCanPreventDefault, EventMap[EventName]['data']>) => void;
150
+ export type EventConsumer<in out EventMap extends EventMapBase> = {
151
151
  /**
152
152
  * Subscribe to events from the parent navigator.
153
153
  *
@@ -157,7 +157,7 @@ export type EventConsumer<EventMap extends EventMapBase> = {
157
157
  addListener<EventName extends KeyOf<EventMap>>(type: EventName, callback: EventListenerCallback<EventMap, EventName>): () => void;
158
158
  removeListener<EventName extends KeyOf<EventMap>>(type: EventName, callback: EventListenerCallback<EventMap, EventName>): void;
159
159
  };
160
- export type EventEmitter<EventMap extends EventMapBase> = {
160
+ export type EventEmitter<in out EventMap extends EventMapBase> = {
161
161
  /**
162
162
  * Emit an event to child screens.
163
163
  *
@@ -292,7 +292,7 @@ type NavigationHelpersCommon<ParamList extends ParamListBase, State extends Navi
292
292
  getState(): State;
293
293
  } & PrivateValueStore<[ParamList, unknown, unknown]>;
294
294
  type ParamType<ParamList extends {}, RouteName extends keyof ParamList | unknown, IsPartial extends boolean = false> = RouteName extends keyof ParamList ? ParamList[RouteName] extends undefined ? undefined : IsPartial extends true ? Partial<ParamList[RouteName]> : ParamList[RouteName] : unknown;
295
- type NavigationHelpersRoute<ParamList extends {}, RouteName extends keyof ParamList = KeyOf<ParamList>> = {
295
+ type NavigationHelpersRoute<in out ParamList extends {}, in out RouteName extends keyof ParamList = KeyOf<ParamList>> = {
296
296
  /**
297
297
  * Update the param object for the route.
298
298
  * The new params will be shallow merged with the old one.
@@ -360,8 +360,8 @@ export type NavigationProp<ParamList extends {}, RouteName extends keyof ParamLi
360
360
  getParent(routeName: RouteName): NavigationProp<ParamList, RouteName, State, ScreenOptions, EventMap, ActionHelpers>;
361
361
  getParent(): NavigationProp<ParamListBase> | undefined;
362
362
  } & NavigationHelpersRoute<ParamList, RouteName> & ActionHelpers & EventConsumer<EventMap & EventMapCore<State>> & PrivateValueStore<[ParamList, RouteName, EventMap]>;
363
- export type RouteProp<ParamList extends ParamListBase, RouteName extends keyof ParamList = KeyOf<ParamList>> = Route<Extract<RouteName, string>, ParamList[RouteName]>;
364
- export type CompositeNavigationProp<A extends NavigationProp<ParamListBase, any, any, any, any>, B extends NavigationProp<ParamListBase, any, any, any, any>> = Omit<A & B, keyof NavigationProp<any, any, any, any, any>> & Omit<NavigationProp<
363
+ export type RouteProp<in out ParamList extends ParamListBase, in out RouteName extends keyof ParamList = KeyOf<ParamList>> = Route<Extract<RouteName, string>, ParamList[RouteName]>;
364
+ export type CompositeNavigationProp<A extends NavigationProp<ParamListBase, any, any, any, any>, B extends NavigationProp<ParamListBase, any, any, any, any>> = CompositeNavigationPropInternal<A, B,
365
365
  /**
366
366
  * Param list from both navigation objects needs to be combined
367
367
  * For example, we should be able to navigate to screens in both A and B
@@ -371,25 +371,14 @@ ParamListOfNavigationProp<A> & ParamListOfNavigationProp<B>,
371
371
  * The route name should refer to the route name specified in the first type
372
372
  */
373
373
  RouteNameOfNavigationProp<A>,
374
- /**
375
- * The type of state should refer to the state specified in the first type
376
- */
377
- StateOfNavigationProp<A>,
378
- /**
379
- * Screen options should refer to the options specified in the first type
380
- */
381
- ScreenOptionsOfNavigationProp<A>,
382
374
  /**
383
375
  * Event map should refer to the config specified in the first type
384
376
  */
385
- EventMapOfNavigationProp<A>>, 'getParent'> & {
377
+ EventMapOfNavigationProp<A>>;
378
+ type CompositeNavigationPropInternal<A extends NavigationProp<ParamListBase, any, any, any, any>, B extends NavigationProp<ParamListBase, any, any, any, any>, ParamList extends {}, RouteName extends keyof ParamList, EventMap extends EventMapBase> = Omit<A & B, keyof NavigationProp<any, any, any, any, any>> & Omit<NavigationProp<ParamList, RouteName, StateOfNavigationProp<A>, ScreenOptionsOfNavigationProp<A>, EventMap>, 'getParent'> & {
386
379
  getParent: A['getParent'] & B['getParent'];
387
380
  } & // Mapped types don't preserve protected members
388
- PrivateValueStore<[
389
- ParamListOfNavigationProp<A> & ParamListOfNavigationProp<B>,
390
- RouteNameOfNavigationProp<A>,
391
- EventMapOfNavigationProp<A>
392
- ]>;
381
+ PrivateValueStore<[ParamList, RouteName, EventMap]>;
393
382
  type ParamListOfNavigationProp<T> = T extends PrivateValueStore<[infer ParamList, any, any]> ? ParamList : never;
394
383
  type RouteNameOfNavigationProp<T> = T extends PrivateValueStore<[any, infer RouteName, any]> ? RouteName : unknown;
395
384
  type StateOfNavigationProp<T> = T extends {
@@ -399,23 +388,23 @@ type ScreenOptionsOfNavigationProp<T> = T extends {
399
388
  setOptions: (options: Partial<infer ScreenOptions>) => void;
400
389
  } ? ScreenOptions : {};
401
390
  type EventMapOfNavigationProp<T> = T extends PrivateValueStore<[any, any, infer EventMap]> ? EventMap : {};
402
- export type CompositeScreenProps<A extends {
391
+ export type CompositeScreenProps<in out A extends {
403
392
  navigation: NavigationProp<ParamListBase, string, any, any, any>;
404
393
  route: RouteProp<ParamListBase>;
405
- }, B extends {
394
+ }, in out B extends {
406
395
  navigation: NavigationProp<ParamListBase, string, any, any, any>;
407
396
  }> = {
408
397
  navigation: CompositeNavigationProp<A['navigation'], B['navigation']>;
409
398
  route: A['route'];
410
399
  };
411
- export type ScreenLayoutArgs<ParamList extends ParamListBase, RouteName extends keyof ParamList, ScreenOptions extends {}, Navigation> = {
400
+ export type ScreenLayoutArgs<in out ParamList extends ParamListBase, in out RouteName extends keyof ParamList, in out ScreenOptions extends {}, in out Navigation> = {
412
401
  route: RouteProp<ParamList, RouteName>;
413
402
  options: ScreenOptions;
414
403
  navigation: Navigation;
415
404
  theme: Theme;
416
405
  children: React.ReactElement;
417
406
  };
418
- export type Descriptor<ScreenOptions extends {}, Navigation extends NavigationProp<ParamListBase, any, any, any, any>, Route extends RouteProp<any, any>> = {
407
+ export type Descriptor<out ScreenOptions extends {}, out Navigation extends NavigationProp<ParamListBase, any, any, any, any>, out Route extends RouteProp<any, any>> = {
419
408
  /**
420
409
  * Render the component associated with this route.
421
410
  */
@@ -433,7 +422,7 @@ export type Descriptor<ScreenOptions extends {}, Navigation extends NavigationPr
433
422
  */
434
423
  navigation: Navigation;
435
424
  };
436
- export type ScreenListeners<State extends NavigationState, EventMap extends EventMapBase> = Partial<{
425
+ export type ScreenListeners<in out State extends NavigationState, in out EventMap extends EventMapBase> = Partial<{
437
426
  [EventName in keyof (EventMap & EventMapCore<State>)]: EventListenerCallback<EventMap & EventMapCore<State>, EventName>;
438
427
  }>;
439
428
  type ScreenComponentType<ParamList extends ParamListBase, RouteName extends keyof ParamList> = React.ComponentType<{
@@ -465,7 +454,7 @@ export type RouteConfigComponent<ParamList extends ParamListBase, RouteName exte
465
454
  component?: never | undefined;
466
455
  getComponent?: never | undefined;
467
456
  };
468
- export type RouteConfigProps<ParamList extends ParamListBase, RouteName extends keyof ParamList, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation> = {
457
+ export type RouteConfigProps<in out ParamList extends ParamListBase, in out RouteName extends keyof ParamList, in out State extends NavigationState, in out ScreenOptions extends {}, in out EventMap extends EventMapBase, in out Navigation> = {
469
458
  /**
470
459
  * Optional key for this screen. This doesn't need to be unique.
471
460
  * If the key changes, existing screens with this name will be removed or reset.
@@ -512,7 +501,7 @@ export type RouteConfigProps<ParamList extends ParamListBase, RouteName extends
512
501
  initialParams?: Partial<ParamList[RouteName]> | undefined;
513
502
  };
514
503
  export type RouteConfig<ParamList extends ParamListBase, RouteName extends keyof ParamList, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, Navigation> = RouteConfigProps<ParamList, RouteName, State, ScreenOptions, EventMap, Navigation> & RouteConfigComponent<ParamList, RouteName>;
515
- export type RouteGroupConfig<ParamList extends ParamListBase, ScreenOptions extends {}, Navigation> = {
504
+ export type RouteGroupConfig<in out ParamList extends ParamListBase, in out ScreenOptions extends {}, in out Navigation> = {
516
505
  /**
517
506
  * Optional key for the screens in this group.
518
507
  * If the key changes, all existing screens in this group will be removed or reset.
@@ -669,7 +658,7 @@ type BasicNavigationList<ParamList extends {}, ExcludedRouteNames, Parent extend
669
658
  export type NavigationListForNavigator<Navigator> = Navigator extends TypedNavigator<infer Bag, any> ? Bag['NavigationList'] : Navigator extends PrivateValueStore<[any, infer NavigationList, any]> ? NavigationList : {};
670
659
  export type NavigationListForNested<Navigator> = FlatType<NavigationListForNestedInternal<Navigator> & (Navigator extends TypedNavigator<infer Bag, any> ? BasicNavigationList<Bag['ParamList'], keyof NavigationListForNestedInternal<Navigator>, undefined> : Navigator extends PrivateValueStore<[infer ParamList, any, any]> ? ParamList extends {} ? BasicNavigationList<ParamList, keyof NavigationListForNestedInternal<Navigator>, undefined> : {} : {})>;
671
660
  type NavigationListForNestedInternal<Navigator> = NavigationListForNavigator<Navigator> & NavigationListForStaticConfig<NavigationListForNavigator<Navigator>, Navigator>;
672
- type NavigationListWithComposite<Parent extends NavigationProp<any, any, any, any, any>, NavigatorList extends Record<string, any>> = {
661
+ type NavigationListWithComposite<in out Parent extends NavigationProp<any, any, any, any, any>, in out NavigatorList extends Record<string, any>> = {
673
662
  [K in keyof NavigatorList]: CompositeNavigationProp<NavigatorList[K], Parent>;
674
663
  };
675
664
  type NavigationListForStaticConfig<ParentList, Navigator> = Navigator extends {
@@ -723,23 +712,34 @@ export type NavigationContainerRef<ParamList extends {}> = Omit<NavigationHelper
723
712
  export type NavigationContainerRefWithCurrent<ParamList extends {}> = NavigationContainerRef<ParamList> & {
724
713
  current: NavigationContainerRef<ParamList> | null;
725
714
  };
726
- export type NavigationListBase<ParamList extends ParamListBase> = {
715
+ export type NavigationListBase<in out ParamList extends ParamListBase> = {
727
716
  [RouteName in keyof ParamList]: unknown;
728
717
  };
729
- export type NavigatorTypeBagBase = {
718
+ type ActionHelpersOf<T> = T extends Record<string, (...args: any) => void> ? T : {};
719
+ export interface NavigatorTypeBagBase {
730
720
  ParamList: {};
731
721
  State: NavigationState;
732
722
  ScreenOptions: {};
733
723
  EventMap: {};
734
- NavigationList: NavigationListBase<ParamListBase>;
724
+ ActionHelpers: {};
725
+ NavigationList: {
726
+ [RouteName in keyof this['ParamList']]: NavigationProp<this['ParamList'], RouteName, this['State'], this['ScreenOptions'], this['EventMap'], ActionHelpersOf<this['ActionHelpers']>>;
727
+ };
735
728
  Navigator: React.ComponentType<any>;
729
+ }
730
+ /**
731
+ * Adds a proper `ParamList` to a type bag interface
732
+ * So it can be used as `this['ParamList']`
733
+ */
734
+ export type NavigatorTypeBagFor<TypeBag extends NavigatorTypeBagBase, ParamList extends {}> = TypeBag & {
735
+ ParamList: ParamList;
736
736
  };
737
737
  type TypedNavigatorComponent<Bag extends NavigatorTypeBagBase> = React.ComponentType<Omit<React.ComponentProps<TypedNavigatorInternal<Bag['ParamList'], Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'], Bag['Navigator']>['Navigator']>, 'children'>>;
738
738
  type TypedNavigatorStaticDecorated<Bag extends NavigatorTypeBagBase, Config> = {
739
739
  getComponent: () => React.ComponentType<{}>;
740
740
  config: Config;
741
741
  } & PrivateValueStore<[Bag['ParamList'], Bag['NavigationList'], unknown]>;
742
- type TypedNavigatorStatic<Bag extends NavigatorTypeBagBase, Config> = {
742
+ type TypedNavigatorStatic<in out Bag extends NavigatorTypeBagBase, in out Config> = {
743
743
  config: Config;
744
744
  with: (Component: React.ComponentType<{
745
745
  Navigator: TypedNavigatorComponent<Bag>;
@@ -747,7 +747,7 @@ type TypedNavigatorStatic<Bag extends NavigatorTypeBagBase, Config> = {
747
747
  getComponent: () => TypedNavigatorComponent<Bag>;
748
748
  };
749
749
  export type TypedNavigator<Bag extends NavigatorTypeBagBase, Config = unknown> = (undefined extends Config ? TypedNavigatorInternal<Bag['ParamList'], Bag['State'], Bag['ScreenOptions'], Bag['EventMap'], Bag['NavigationList'], Bag['Navigator']> : TypedNavigatorStatic<Bag, Config>) & PrivateValueStore<[Bag['ParamList'], Bag['NavigationList'], unknown]>;
750
- type TypedNavigatorInternal<ParamList extends ParamListBase, State extends NavigationState, ScreenOptions extends {}, EventMap extends EventMapBase, NavigationList extends NavigationListBase<ParamList>, Navigator extends React.ComponentType<any>> = {
750
+ type TypedNavigatorInternal<in out ParamList extends ParamListBase, in out State extends NavigationState, in out ScreenOptions extends {}, in out EventMap extends EventMapBase, in out NavigationList extends NavigationListBase<ParamList>, in out Navigator extends React.ComponentType<any>> = {
751
751
  /**
752
752
  * Navigator component which manages the child screens.
753
753
  */