@react-navigation/core 8.0.0-alpha.4 → 8.0.0-alpha.41

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 (323) hide show
  1. package/README.md +17 -14
  2. package/lib/module/BaseNavigationContainer.js +173 -90
  3. package/lib/module/BaseNavigationContainer.js.map +1 -1
  4. package/lib/module/ConsumedParamsContext.js +5 -0
  5. package/lib/module/ConsumedParamsContext.js.map +1 -0
  6. package/lib/module/DataLoading.js +129 -0
  7. package/lib/module/DataLoading.js.map +1 -0
  8. package/lib/module/NavigationBuilderContext.js +7 -10
  9. package/lib/module/NavigationBuilderContext.js.map +1 -1
  10. package/lib/module/NavigationIndependentTree.js +54 -9
  11. package/lib/module/NavigationIndependentTree.js.map +1 -1
  12. package/lib/module/NavigationProvider.js +37 -12
  13. package/lib/module/NavigationProvider.js.map +1 -1
  14. package/lib/module/NavigationRootContext.js +8 -0
  15. package/lib/module/NavigationRootContext.js.map +1 -0
  16. package/lib/module/NavigationStateContext.js +3 -0
  17. package/lib/module/NavigationStateContext.js.map +1 -1
  18. package/lib/module/PreventRemoveContext.js.map +1 -1
  19. package/lib/module/PreventRemoveProvider.js +40 -31
  20. package/lib/module/PreventRemoveProvider.js.map +1 -1
  21. package/lib/module/SceneView.js +29 -57
  22. package/lib/module/SceneView.js.map +1 -1
  23. package/lib/module/StaticNavigation.js +219 -67
  24. package/lib/module/StaticNavigation.js.map +1 -1
  25. package/lib/module/StaticTreeContext.js +5 -0
  26. package/lib/module/StaticTreeContext.js.map +1 -0
  27. package/lib/module/createNavigationContainerRef.js +7 -9
  28. package/lib/module/createNavigationContainerRef.js.map +1 -1
  29. package/lib/module/createNavigatorFactory.js +27 -5
  30. package/lib/module/createNavigatorFactory.js.map +1 -1
  31. package/lib/module/findFocusedRoute.js +7 -4
  32. package/lib/module/findFocusedRoute.js.map +1 -1
  33. package/lib/module/getActionFromState.js +45 -20
  34. package/lib/module/getActionFromState.js.map +1 -1
  35. package/lib/module/getPathFromState.js +204 -94
  36. package/lib/module/getPathFromState.js.map +1 -1
  37. package/lib/module/getPatternParts.js +61 -14
  38. package/lib/module/getPatternParts.js.map +1 -1
  39. package/lib/module/getStateFromPath.js +608 -272
  40. package/lib/module/getStateFromPath.js.map +1 -1
  41. package/lib/module/getStateFromRouteParams.js +23 -0
  42. package/lib/module/getStateFromRouteParams.js.map +1 -0
  43. package/lib/module/index.js +7 -6
  44. package/lib/module/index.js.map +1 -1
  45. package/lib/module/internal.js +2 -0
  46. package/lib/module/internal.js.map +1 -0
  47. package/lib/module/isRecordEqual.js +1 -1
  48. package/lib/module/isRecordEqual.js.map +1 -1
  49. package/lib/module/queryString.js +71 -0
  50. package/lib/module/queryString.js.map +1 -0
  51. package/lib/module/theming/useTheme.js +1 -1
  52. package/lib/module/theming/useTheme.js.map +1 -1
  53. package/lib/module/types.js +35 -1
  54. package/lib/module/types.js.map +1 -1
  55. package/lib/module/useDescriptors.js +65 -25
  56. package/lib/module/useDescriptors.js.map +1 -1
  57. package/lib/module/useEventEmitter.js +48 -33
  58. package/lib/module/useEventEmitter.js.map +1 -1
  59. package/lib/module/useFocusEffect.js +4 -2
  60. package/lib/module/useFocusEffect.js.map +1 -1
  61. package/lib/module/useFocusEvents.js +15 -5
  62. package/lib/module/useFocusEvents.js.map +1 -1
  63. package/lib/module/useFocusedListenersChildrenAdapter.js +3 -3
  64. package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
  65. package/lib/module/useIsFocused.js +8 -12
  66. package/lib/module/useIsFocused.js.map +1 -1
  67. package/lib/module/useKeyedChildListeners.js +5 -2
  68. package/lib/module/useKeyedChildListeners.js.map +1 -1
  69. package/lib/module/useLazyValue.js.map +1 -1
  70. package/lib/module/useNavigation.js +4 -17
  71. package/lib/module/useNavigation.js.map +1 -1
  72. package/lib/module/useNavigationBuilder.js +244 -147
  73. package/lib/module/useNavigationBuilder.js.map +1 -1
  74. package/lib/module/useNavigationCache.js +92 -89
  75. package/lib/module/useNavigationCache.js.map +1 -1
  76. package/lib/module/useNavigationHelpers.js +22 -29
  77. package/lib/module/useNavigationHelpers.js.map +1 -1
  78. package/lib/module/useNavigationIndependentTree.js +1 -1
  79. package/lib/module/useNavigationIndependentTree.js.map +1 -1
  80. package/lib/module/useNavigationState.js +158 -46
  81. package/lib/module/useNavigationState.js.map +1 -1
  82. package/lib/module/useOnAction.js +58 -11
  83. package/lib/module/useOnAction.js.map +1 -1
  84. package/lib/module/useOnGetNavigation.js +26 -0
  85. package/lib/module/useOnGetNavigation.js.map +1 -0
  86. package/lib/module/useOnGetState.js +7 -4
  87. package/lib/module/useOnGetState.js.map +1 -1
  88. package/lib/module/useOnPreventRemove.js +40 -31
  89. package/lib/module/useOnPreventRemove.js.map +1 -1
  90. package/lib/module/useOnRouteFocus.js +2 -2
  91. package/lib/module/useOnRouteFocus.js.map +1 -1
  92. package/lib/module/useOptionsGetters.js +35 -27
  93. package/lib/module/useOptionsGetters.js.map +1 -1
  94. package/lib/module/usePreventRemove.js +11 -5
  95. package/lib/module/usePreventRemove.js.map +1 -1
  96. package/lib/module/usePreventRemoveContext.js +2 -2
  97. package/lib/module/usePreventRemoveContext.js.map +1 -1
  98. package/lib/module/useRegisterNavigator.js +3 -4
  99. package/lib/module/useRegisterNavigator.js.map +1 -1
  100. package/lib/module/useRoute.js +2 -0
  101. package/lib/module/useRoute.js.map +1 -1
  102. package/lib/module/useRouteCache.js +51 -35
  103. package/lib/module/useRouteCache.js.map +1 -1
  104. package/lib/module/useScheduleUpdate.js +12 -10
  105. package/lib/module/useScheduleUpdate.js.map +1 -1
  106. package/lib/module/useStateForPath.js +1 -1
  107. package/lib/module/useStateForPath.js.map +1 -1
  108. package/lib/module/useSyncState.js +37 -15
  109. package/lib/module/useSyncState.js.map +1 -1
  110. package/lib/module/validatePathConfig.js +50 -36
  111. package/lib/module/validatePathConfig.js.map +1 -1
  112. package/lib/typescript/src/BaseNavigationContainer.d.ts +6 -3
  113. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  114. package/lib/typescript/src/ConsumedParamsContext.d.ts +3 -0
  115. package/lib/typescript/src/ConsumedParamsContext.d.ts.map +1 -0
  116. package/lib/typescript/src/DataLoading.d.ts +21 -0
  117. package/lib/typescript/src/DataLoading.d.ts.map +1 -0
  118. package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -1
  119. package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -1
  120. package/lib/typescript/src/Group.d.ts +1 -1
  121. package/lib/typescript/src/Group.d.ts.map +1 -1
  122. package/lib/typescript/src/NavigationBuilderContext.d.ts +22 -14
  123. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  124. package/lib/typescript/src/NavigationContainerRefContext.d.ts +1 -1
  125. package/lib/typescript/src/NavigationContainerRefContext.d.ts.map +1 -1
  126. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts +4 -4
  127. package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts.map +1 -1
  128. package/lib/typescript/src/NavigationHelpersContext.d.ts +1 -1
  129. package/lib/typescript/src/NavigationHelpersContext.d.ts.map +1 -1
  130. package/lib/typescript/src/NavigationIndependentTree.d.ts +1 -1
  131. package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
  132. package/lib/typescript/src/NavigationProvider.d.ts +21 -18
  133. package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
  134. package/lib/typescript/src/NavigationRootContext.d.ts +8 -0
  135. package/lib/typescript/src/NavigationRootContext.d.ts.map +1 -0
  136. package/lib/typescript/src/NavigationStateContext.d.ts +3 -3
  137. package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -1
  138. package/lib/typescript/src/PreventRemoveContext.d.ts +1 -0
  139. package/lib/typescript/src/PreventRemoveContext.d.ts.map +1 -1
  140. package/lib/typescript/src/PreventRemoveProvider.d.ts +1 -1
  141. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  142. package/lib/typescript/src/SceneView.d.ts +5 -2
  143. package/lib/typescript/src/SceneView.d.ts.map +1 -1
  144. package/lib/typescript/src/Screen.d.ts +1 -1
  145. package/lib/typescript/src/Screen.d.ts.map +1 -1
  146. package/lib/typescript/src/StaticContainer.d.ts +1 -1
  147. package/lib/typescript/src/StaticContainer.d.ts.map +1 -1
  148. package/lib/typescript/src/StaticNavigation.d.ts +189 -111
  149. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  150. package/lib/typescript/src/StaticTreeContext.d.ts +4 -0
  151. package/lib/typescript/src/StaticTreeContext.d.ts.map +1 -0
  152. package/lib/typescript/src/createNavigationContainerRef.d.ts +1 -1
  153. package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
  154. package/lib/typescript/src/createNavigatorFactory.d.ts +23 -5
  155. package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
  156. package/lib/typescript/src/findFocusedRoute.d.ts +3 -8
  157. package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
  158. package/lib/typescript/src/getActionFromState.d.ts +4 -4
  159. package/lib/typescript/src/getActionFromState.d.ts.map +1 -1
  160. package/lib/typescript/src/getPathFromState.d.ts +3 -3
  161. package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
  162. package/lib/typescript/src/getPatternParts.d.ts +5 -2
  163. package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
  164. package/lib/typescript/src/getStateFromPath.d.ts +4 -7
  165. package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
  166. package/lib/typescript/src/getStateFromRouteParams.d.ts +3 -0
  167. package/lib/typescript/src/getStateFromRouteParams.d.ts.map +1 -0
  168. package/lib/typescript/src/index.d.ts +36 -33
  169. package/lib/typescript/src/index.d.ts.map +1 -1
  170. package/lib/typescript/src/internal.d.ts +3 -0
  171. package/lib/typescript/src/internal.d.ts.map +1 -0
  172. package/lib/typescript/src/isRecordEqual.d.ts.map +1 -1
  173. package/lib/typescript/src/queryString.d.ts +5 -0
  174. package/lib/typescript/src/queryString.d.ts.map +1 -0
  175. package/lib/typescript/src/theming/ThemeContext.d.ts +1 -1
  176. package/lib/typescript/src/theming/ThemeContext.d.ts.map +1 -1
  177. package/lib/typescript/src/theming/ThemeProvider.d.ts +2 -2
  178. package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -1
  179. package/lib/typescript/src/theming/useTheme.d.ts +1 -1
  180. package/lib/typescript/src/theming/useTheme.d.ts.map +1 -1
  181. package/lib/typescript/src/types.d.ts +265 -167
  182. package/lib/typescript/src/types.d.ts.map +1 -1
  183. package/lib/typescript/src/useChildListeners.d.ts +3 -3
  184. package/lib/typescript/src/useChildListeners.d.ts.map +1 -1
  185. package/lib/typescript/src/useDescriptors.d.ts +13 -11
  186. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  187. package/lib/typescript/src/useEventEmitter.d.ts +2 -2
  188. package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
  189. package/lib/typescript/src/useFocusEffect.d.ts.map +1 -1
  190. package/lib/typescript/src/useFocusEvents.d.ts +2 -2
  191. package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
  192. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +2 -2
  193. package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts.map +1 -1
  194. package/lib/typescript/src/useIsFocused.d.ts +4 -0
  195. package/lib/typescript/src/useIsFocused.d.ts.map +1 -1
  196. package/lib/typescript/src/useKeyedChildListeners.d.ts +4 -3
  197. package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
  198. package/lib/typescript/src/useLazyValue.d.ts.map +1 -1
  199. package/lib/typescript/src/useNavigation.d.ts +4 -2
  200. package/lib/typescript/src/useNavigation.d.ts.map +1 -1
  201. package/lib/typescript/src/useNavigationBuilder.d.ts +22 -63
  202. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  203. package/lib/typescript/src/useNavigationCache.d.ts +6 -5
  204. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  205. package/lib/typescript/src/useNavigationContainerRef.d.ts +1 -1
  206. package/lib/typescript/src/useNavigationContainerRef.d.ts.map +1 -1
  207. package/lib/typescript/src/useNavigationHelpers.d.ts +18 -58
  208. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  209. package/lib/typescript/src/useNavigationState.d.ts +19 -3
  210. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  211. package/lib/typescript/src/useOnAction.d.ts +9 -9
  212. package/lib/typescript/src/useOnAction.d.ts.map +1 -1
  213. package/lib/typescript/src/useOnGetNavigation.d.ts +12 -0
  214. package/lib/typescript/src/useOnGetNavigation.d.ts.map +1 -0
  215. package/lib/typescript/src/useOnGetState.d.ts +1 -1
  216. package/lib/typescript/src/useOnGetState.d.ts.map +1 -1
  217. package/lib/typescript/src/useOnPreventRemove.d.ts +5 -9
  218. package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
  219. package/lib/typescript/src/useOnRouteFocus.d.ts +6 -6
  220. package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -1
  221. package/lib/typescript/src/useOptionsGetters.d.ts +4 -4
  222. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  223. package/lib/typescript/src/usePreventRemove.d.ts.map +1 -1
  224. package/lib/typescript/src/usePreventRemoveContext.d.ts +2 -1
  225. package/lib/typescript/src/usePreventRemoveContext.d.ts.map +1 -1
  226. package/lib/typescript/src/useRegisterNavigator.d.ts.map +1 -1
  227. package/lib/typescript/src/useRoute.d.ts +7 -3
  228. package/lib/typescript/src/useRoute.d.ts.map +1 -1
  229. package/lib/typescript/src/useRouteCache.d.ts +7 -12
  230. package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
  231. package/lib/typescript/src/useScheduleUpdate.d.ts +5 -4
  232. package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
  233. package/lib/typescript/src/useStateForPath.d.ts +1 -1
  234. package/lib/typescript/src/useStateForPath.d.ts.map +1 -1
  235. package/lib/typescript/src/useSyncState.d.ts +1 -0
  236. package/lib/typescript/src/useSyncState.d.ts.map +1 -1
  237. package/lib/typescript/src/utilities.d.ts +79 -39
  238. package/lib/typescript/src/utilities.d.ts.map +1 -1
  239. package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
  240. package/package.json +26 -22
  241. package/src/BaseNavigationContainer.tsx +459 -332
  242. package/src/ConsumedParamsContext.tsx +5 -0
  243. package/src/DataLoading.tsx +206 -0
  244. package/src/NavigationBuilderContext.tsx +44 -25
  245. package/src/NavigationFocusedRouteStateContext.tsx +4 -4
  246. package/src/NavigationIndependentTree.tsx +60 -12
  247. package/src/NavigationProvider.tsx +59 -21
  248. package/src/NavigationRootContext.tsx +11 -0
  249. package/src/NavigationStateContext.tsx +6 -6
  250. package/src/PreventRemoveContext.tsx +1 -0
  251. package/src/PreventRemoveProvider.tsx +55 -56
  252. package/src/SceneView.tsx +31 -57
  253. package/src/StaticNavigation.tsx +715 -328
  254. package/src/StaticTreeContext.tsx +7 -0
  255. package/src/createNavigationContainerRef.tsx +12 -11
  256. package/src/createNavigatorFactory.tsx +92 -8
  257. package/src/findFocusedRoute.tsx +16 -16
  258. package/src/getActionFromState.tsx +87 -51
  259. package/src/getPathFromState.tsx +310 -134
  260. package/src/getPatternParts.tsx +98 -16
  261. package/src/getStateFromPath.tsx +971 -344
  262. package/src/getStateFromRouteParams.tsx +59 -0
  263. package/src/index.tsx +57 -6
  264. package/src/internal.tsx +2 -0
  265. package/src/isRecordEqual.tsx +3 -1
  266. package/src/queryString.ts +109 -0
  267. package/src/theming/useTheme.tsx +1 -1
  268. package/src/types.tsx +799 -377
  269. package/src/useDescriptors.tsx +151 -43
  270. package/src/useEventEmitter.tsx +53 -39
  271. package/src/useFocusEffect.tsx +5 -2
  272. package/src/useFocusEvents.tsx +19 -8
  273. package/src/useFocusedListenersChildrenAdapter.tsx +3 -3
  274. package/src/useIsFocused.tsx +18 -21
  275. package/src/useKeyedChildListeners.tsx +5 -2
  276. package/src/useLazyValue.tsx +2 -2
  277. package/src/useNavigation.tsx +9 -26
  278. package/src/useNavigationBuilder.tsx +370 -201
  279. package/src/useNavigationCache.tsx +148 -123
  280. package/src/useNavigationHelpers.tsx +27 -37
  281. package/src/useNavigationIndependentTree.tsx +1 -1
  282. package/src/useNavigationState.tsx +207 -69
  283. package/src/useOnAction.tsx +92 -18
  284. package/src/useOnGetNavigation.tsx +30 -0
  285. package/src/useOnGetState.tsx +8 -4
  286. package/src/useOnPreventRemove.tsx +78 -43
  287. package/src/useOnRouteFocus.tsx +11 -15
  288. package/src/useOptionsGetters.tsx +44 -30
  289. package/src/usePreventRemove.tsx +13 -5
  290. package/src/usePreventRemoveContext.tsx +2 -2
  291. package/src/useRegisterNavigator.tsx +4 -4
  292. package/src/useRoute.tsx +20 -6
  293. package/src/useRouteCache.tsx +57 -35
  294. package/src/useScheduleUpdate.tsx +13 -11
  295. package/src/useStateForPath.tsx +1 -1
  296. package/src/useSyncState.tsx +39 -15
  297. package/src/utilities.tsx +151 -35
  298. package/src/validatePathConfig.tsx +86 -57
  299. package/lib/module/CurrentRenderContext.js +0 -10
  300. package/lib/module/CurrentRenderContext.js.map +0 -1
  301. package/lib/module/NavigationMetaContext.js +0 -15
  302. package/lib/module/NavigationMetaContext.js.map +0 -1
  303. package/lib/module/checkSerializable.js +0 -46
  304. package/lib/module/checkSerializable.js.map +0 -1
  305. package/lib/module/useComponent.js +0 -34
  306. package/lib/module/useComponent.js.map +0 -1
  307. package/lib/module/useCurrentRender.js +0 -19
  308. package/lib/module/useCurrentRender.js.map +0 -1
  309. package/lib/typescript/src/CurrentRenderContext.d.ts +0 -9
  310. package/lib/typescript/src/CurrentRenderContext.d.ts.map +0 -1
  311. package/lib/typescript/src/NavigationMetaContext.d.ts +0 -12
  312. package/lib/typescript/src/NavigationMetaContext.d.ts.map +0 -1
  313. package/lib/typescript/src/checkSerializable.d.ts +0 -10
  314. package/lib/typescript/src/checkSerializable.d.ts.map +0 -1
  315. package/lib/typescript/src/useComponent.d.ts +0 -7
  316. package/lib/typescript/src/useComponent.d.ts.map +0 -1
  317. package/lib/typescript/src/useCurrentRender.d.ts +0 -14
  318. package/lib/typescript/src/useCurrentRender.d.ts.map +0 -1
  319. package/src/CurrentRenderContext.tsx +0 -9
  320. package/src/NavigationMetaContext.tsx +0 -14
  321. package/src/checkSerializable.tsx +0 -74
  322. package/src/useComponent.tsx +0 -37
  323. package/src/useCurrentRender.tsx +0 -31
@@ -1,52 +1,66 @@
1
1
  "use strict";
2
2
 
3
- const formatToList = items => Object.entries(items).map(([key, value]) => `- ${key} (${value})`).join('\n');
3
+ const ROOT_VALIDATION_LIST = ['- path (string)', '- initialRouteName (string)', '- screens (object)'].join('\n');
4
+ const NESTED_VALIDATION_LIST = [ROOT_VALIDATION_LIST, '- alias (array)', '- exact (boolean)', '- stringify (object)', '- parse (object)', '- shared (boolean)'].join('\n');
5
+ const getValidationType = (key, root) => {
6
+ switch (key) {
7
+ case 'path':
8
+ case 'initialRouteName':
9
+ return 'string';
10
+ case 'screens':
11
+ return 'object';
12
+ case 'alias':
13
+ return root ? undefined : 'array';
14
+ case 'exact':
15
+ case 'shared':
16
+ return root ? undefined : 'boolean';
17
+ case 'stringify':
18
+ case 'parse':
19
+ return root ? undefined : 'object';
20
+ default:
21
+ return undefined;
22
+ }
23
+ };
4
24
  export function validatePathConfig(config, root = true) {
5
- const validation = {
6
- path: 'string',
7
- initialRouteName: 'string',
8
- screens: 'object',
9
- ...(root ? null : {
10
- alias: 'array',
11
- exact: 'boolean',
12
- stringify: 'object',
13
- parse: 'object'
14
- })
15
- };
16
25
  if (typeof config !== 'object' || config === null) {
17
26
  throw new Error(`Expected the configuration to be an object, but got ${JSON.stringify(config)}.`);
18
27
  }
19
- const validationErrors = Object.fromEntries(Object.keys(config).map(key => {
20
- if (key in validation) {
21
- const type = validation[key];
22
- // @ts-expect-error: we know the key exists
23
- const value = config[key];
24
- if (value !== undefined) {
25
- if (type === 'array') {
26
- if (!Array.isArray(value)) {
27
- return [key, `expected 'Array', got '${typeof value}'`];
28
- }
29
- } else if (typeof value !== type) {
30
- return [key, `expected '${type}', got '${typeof value}'`];
31
- }
28
+ const pathConfig = config;
29
+ let validationErrors;
30
+ for (const key in pathConfig) {
31
+ const type = getValidationType(key, root);
32
+ if (type === undefined) {
33
+ (validationErrors ??= []).push(`- ${key} (extraneous)`);
34
+ continue;
35
+ }
36
+ const value = pathConfig[key];
37
+ if (value === undefined) {
38
+ continue;
39
+ }
40
+ if (type === 'array') {
41
+ if (!Array.isArray(value)) {
42
+ (validationErrors ??= []).push(`- ${key} (expected 'Array', got '${typeof value}')`);
32
43
  }
33
- } else {
34
- return [key, 'extraneous'];
44
+ } else if (typeof value !== type) {
45
+ (validationErrors ??= []).push(`- ${key} (expected '${type}', got '${typeof value}')`);
35
46
  }
36
- return null;
37
- }).filter(Boolean));
38
- if (Object.keys(validationErrors).length) {
39
- throw new Error(`Found invalid properties in the configuration:\n${formatToList(validationErrors)}\n\nYou can only specify the following properties:\n${formatToList(validation)}\n\nIf you want to specify configuration for screens, you need to specify them under a 'screens' property.\n\nSee https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.`);
40
47
  }
41
- if (root && 'path' in config && typeof config.path === 'string' && config.path.includes(':')) {
42
- throw new Error(`Found invalid path '${config.path}'. The 'path' in the top-level configuration cannot contain patterns for params.`);
48
+ if (validationErrors) {
49
+ throw new Error(`Found invalid properties in the configuration:\n${validationErrors.join('\n')}\n\nYou can only specify the following properties:\n${root ? ROOT_VALIDATION_LIST : NESTED_VALIDATION_LIST}\n\nIf you want to specify configuration for screens, you need to specify them under a 'screens' property.\n\nSee https://reactnavigation.org/docs/configuring-links for more details on how to specify a linking configuration.`);
43
50
  }
44
- if ('screens' in config && config.screens) {
45
- Object.entries(config.screens).forEach(([_, value]) => {
51
+ const path = pathConfig.path;
52
+ if (root && 'path' in pathConfig && typeof path === 'string' && path.includes(':')) {
53
+ throw new Error(`Found invalid path '${path}'. The 'path' in the top-level configuration cannot contain patterns for params.`);
54
+ }
55
+ const screens = pathConfig.screens;
56
+ if (screens && typeof screens === 'object') {
57
+ const screenConfig = screens;
58
+ for (const name in screenConfig) {
59
+ const value = screenConfig[name];
46
60
  if (typeof value !== 'string') {
47
61
  validatePathConfig(value, false);
48
62
  }
49
- });
63
+ }
50
64
  }
51
65
  }
52
66
  //# sourceMappingURL=validatePathConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["formatToList","items","Object","entries","map","key","value","join","validatePathConfig","config","root","validation","path","initialRouteName","screens","alias","exact","stringify","parse","Error","JSON","validationErrors","fromEntries","keys","type","undefined","Array","isArray","filter","Boolean","length","includes","forEach","_"],"sourceRoot":"../../src","sources":["validatePathConfig.tsx"],"mappings":";;AAAA,MAAMA,YAAY,GAAIC,KAA6B,IACjDC,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAClBG,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK,KAAKD,GAAG,KAAKC,KAAK,GAAG,CAAC,CAC5CC,IAAI,CAAC,IAAI,CAAC;AAEf,OAAO,SAASC,kBAAkBA,CAACC,MAAe,EAAEC,IAAI,GAAG,IAAI,EAAE;EAC/D,MAAMC,UAAU,GAAG;IACjBC,IAAI,EAAE,QAAQ;IACdC,gBAAgB,EAAE,QAAQ;IAC1BC,OAAO,EAAE,QAAQ;IACjB,IAAIJ,IAAI,GACJ,IAAI,GACJ;MACEK,KAAK,EAAE,OAAO;MACdC,KAAK,EAAE,SAAS;MAChBC,SAAS,EAAE,QAAQ;MACnBC,KAAK,EAAE;IACT,CAAC;EACP,CAAC;EAED,IAAI,OAAOT,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,EAAE;IACjD,MAAM,IAAIU,KAAK,CACb,uDAAuDC,IAAI,CAACH,SAAS,CACnER,MACF,CAAC,GACH,CAAC;EACH;EAEA,MAAMY,gBAAgB,GAAGnB,MAAM,CAACoB,WAAW,CACzCpB,MAAM,CAACqB,IAAI,CAACd,MAAM,CAAC,CAChBL,GAAG,CAAEC,GAAG,IAAK;IACZ,IAAIA,GAAG,IAAIM,UAAU,EAAE;MACrB,MAAMa,IAAI,GAAGb,UAAU,CAACN,GAAG,CAA4B;MACvD;MACA,MAAMC,KAAK,GAAGG,MAAM,CAACJ,GAAG,CAAC;MAEzB,IAAIC,KAAK,KAAKmB,SAAS,EAAE;QACvB,IAAID,IAAI,KAAK,OAAO,EAAE;UACpB,IAAI,CAACE,KAAK,CAACC,OAAO,CAACrB,KAAK,CAAC,EAAE;YACzB,OAAO,CAACD,GAAG,EAAE,0BAA0B,OAAOC,KAAK,GAAG,CAAC;UACzD;QACF,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAKkB,IAAI,EAAE;UAChC,OAAO,CAACnB,GAAG,EAAE,aAAamB,IAAI,WAAW,OAAOlB,KAAK,GAAG,CAAC;QAC3D;MACF;IACF,CAAC,MAAM;MACL,OAAO,CAACD,GAAG,EAAE,YAAY,CAAC;IAC5B;IAEA,OAAO,IAAI;EACb,CAAC,CAAC,CACDuB,MAAM,CAACC,OAAO,CACnB,CAAC;EAED,IAAI3B,MAAM,CAACqB,IAAI,CAACF,gBAAgB,CAAC,CAACS,MAAM,EAAE;IACxC,MAAM,IAAIX,KAAK,CACb,mDAAmDnB,YAAY,CAC7DqB,gBACF,CAAC,uDAAuDrB,YAAY,CAClEW,UACF,CAAC,kOACH,CAAC;EACH;EAEA,IACED,IAAI,IACJ,MAAM,IAAID,MAAM,IAChB,OAAOA,MAAM,CAACG,IAAI,KAAK,QAAQ,IAC/BH,MAAM,CAACG,IAAI,CAACmB,QAAQ,CAAC,GAAG,CAAC,EACzB;IACA,MAAM,IAAIZ,KAAK,CACb,uBAAuBV,MAAM,CAACG,IAAI,kFACpC,CAAC;EACH;EAEA,IAAI,SAAS,IAAIH,MAAM,IAAIA,MAAM,CAACK,OAAO,EAAE;IACzCZ,MAAM,CAACC,OAAO,CAACM,MAAM,CAACK,OAAO,CAAC,CAACkB,OAAO,CAAC,CAAC,CAACC,CAAC,EAAE3B,KAAK,CAAC,KAAK;MACrD,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;QAC7BE,kBAAkB,CAACF,KAAK,EAAE,KAAK,CAAC;MAClC;IACF,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
1
+ {"version":3,"names":["ROOT_VALIDATION_LIST","join","NESTED_VALIDATION_LIST","getValidationType","key","root","undefined","validatePathConfig","config","Error","JSON","stringify","pathConfig","validationErrors","type","push","value","Array","isArray","path","includes","screens","screenConfig","name"],"sourceRoot":"../../src","sources":["validatePathConfig.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,8 @@
1
- import { type ParamListBase } from '@react-navigation/routers';
2
1
  import * as React from 'react';
3
- import type { NavigationContainerProps, NavigationContainerRef } from './types';
2
+ import type { NavigationContainerProps, NavigationContainerRef, RootParamList } from './types.js';
3
+ type Props<ParamList extends {}> = NavigationContainerProps & {
4
+ ref?: React.Ref<NavigationContainerRef<ParamList>> | undefined;
5
+ };
4
6
  /**
5
7
  * Container component which holds the navigation state.
6
8
  * This should be rendered at the root wrapping the whole app.
@@ -13,5 +15,6 @@ import type { NavigationContainerProps, NavigationContainerRef } from './types';
13
15
  * @param props.children Child elements to render the content.
14
16
  * @param props.ref Ref object which refers to the navigation object containing helper methods.
15
17
  */
16
- export declare const BaseNavigationContainer: React.ForwardRefExoticComponent<NavigationContainerProps & React.RefAttributes<NavigationContainerRef<ParamListBase>>>;
18
+ export declare function BaseNavigationContainer<ParamList extends {} = RootParamList>({ initialState, onStateChange, onReady, onUnhandledAction, theme, children, ref, }: Props<ParamList>): React.JSX.Element;
19
+ export {};
17
20
  //# sourceMappingURL=BaseNavigationContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNavigationContainer.d.ts","sourceRoot":"","sources":["../../../src/BaseNavigationContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,aAAa,EAGnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,KAAK,EAEV,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AA4CjB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,wHA0YnC,CAAC"}
1
+ {"version":3,"file":"BaseNavigationContainer.d.ts","sourceRoot":"","sources":["../../../src/BaseNavigationContainer.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B,OAAO,KAAK,EAIV,wBAAwB,EACxB,sBAAsB,EACtB,aAAa,EACd,MAAM,YAAS,CAAC;AAYjB,KAAK,KAAK,CAAC,SAAS,SAAS,EAAE,IAAI,wBAAwB,GAAG;IAC5D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;CAChE,CAAC;AAgCF;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,SAAS,EAAE,GAAG,aAAa,EAAE,EAC5E,YAAY,EACZ,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,KAAK,EACL,QAAQ,EACR,GAAG,GACJ,EAAE,KAAK,CAAC,SAAS,CAAC,qBAuflB"}
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ export declare const ConsumedParamsContext: React.Context<WeakMap<object, true> | undefined>;
3
+ //# sourceMappingURL=ConsumedParamsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsumedParamsContext.d.ts","sourceRoot":"","sources":["../../../src/ConsumedParamsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,eAAO,MAAM,qBAAqB,kDAEtB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { NavigationState, PartialState } from '@react-navigation/routers';
2
+ import type { TreeForPathConfig } from './StaticNavigation.js';
3
+ /**
4
+ * Get loader for the focused route in a static config tree with given navigation state.
5
+ *
6
+ * @param tree The static navigation config.
7
+ * @param state The navigation state to extract the focused route path from.
8
+ * @returns A function that returns a `Promise<void>`, or `undefined` if no loaders are found.
9
+ *
10
+ * @example
11
+ * ```js
12
+ * const loader = getLoaderForState(RootStack, {
13
+ * index: 0,
14
+ * routes: [{ name: 'Home' }],
15
+ * });
16
+ * await loader?.();
17
+ * ```
18
+ */
19
+ export declare function getLoaderForState(tree: TreeForPathConfig, state: PartialState<NavigationState> | NavigationState | undefined): (() => Promise<void>) | undefined;
20
+ export declare function getLoaderForStateChange(tree: TreeForPathConfig, state: PartialState<NavigationState> | NavigationState | undefined, previousState: PartialState<NavigationState> | NavigationState | undefined, consumedParams: WeakMap<object, true> | undefined): (() => Promise<void>) | undefined;
21
+ //# sourceMappingURL=DataLoading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataLoading.d.ts","sourceRoot":"","sources":["../../../src/DataLoading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAoB,CAAC;AAkD5D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,eAAe,GAAG,SAAS,GACjE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAEnC;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,eAAe,GAAG,SAAS,EAClE,aAAa,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,eAAe,GAAG,SAAS,EAC1E,cAAc,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,GAChD,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CA4HnC"}
@@ -9,6 +9,6 @@ export declare const SingleNavigatorContext: React.Context<{
9
9
  /**
10
10
  * Component which ensures that there's only one navigator nested under it.
11
11
  */
12
- export declare function EnsureSingleNavigator({ children }: Props): import("react/jsx-runtime").JSX.Element;
12
+ export declare function EnsureSingleNavigator({ children }: Props): React.JSX.Element;
13
13
  export {};
14
14
  //# sourceMappingURL=EnsureSingleNavigator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnsureSingleNavigator.d.ts","sourceRoot":"","sources":["../../../src/EnsureSingleNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAIF,eAAO,MAAM,sBAAsB;kBAEf,MAAM,GAAG,IAAI;oBACX,MAAM,GAAG,IAAI;cAGvB,CAAC;AAEb;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAgCxD"}
1
+ {"version":3,"file":"EnsureSingleNavigator.d.ts","sourceRoot":"","sources":["../../../src/EnsureSingleNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAIF,eAAO,MAAM,sBAAsB;kBAEf,MAAM,GAAG,IAAI;oBACX,MAAM,GAAG,IAAI;cAGvB,CAAC;AAEb;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAgCxD"}
@@ -1,5 +1,5 @@
1
1
  import type { ParamListBase } from '@react-navigation/routers';
2
- import type { RouteGroupConfig } from './types';
2
+ import type { RouteGroupConfig } from './types.js';
3
3
  /**
4
4
  * Empty component used for grouping screen configs.
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/Group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;GAEG;AACH,wBAAgB,KAAK,CACnB,SAAS,SAAS,aAAa,EAC/B,aAAa,SAAS,EAAE,EACxB,UAAU,EACV,CAAC,EAAE,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,QAG1D"}
1
+ {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../src/Group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAS,CAAC;AAEhD;;GAEG;AACH,wBAAgB,KAAK,CACnB,SAAS,SAAS,aAAa,EAC/B,aAAa,SAAS,EAAE,EACxB,UAAU,EACV,CAAC,EAAE,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,QAG1D"}
@@ -1,12 +1,13 @@
1
- import type { NavigationAction, NavigationState, ParamListBase } from '@react-navigation/routers';
1
+ import type { NavigationAction, NavigationState, ParamListBase, PartialState } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
- import type { NavigationHelpers } from './types';
3
+ import type { NavigationHelpers } from './types.js';
4
4
  export type ListenerMap = {
5
5
  action: ChildActionListener;
6
6
  focus: FocusedNavigationListener;
7
7
  };
8
8
  export type KeyedListenerMap = {
9
9
  getState: GetStateListener;
10
+ getNavigation: GetNavigationListener;
10
11
  beforeRemove: ChildBeforeRemoveListener;
11
12
  };
12
13
  export type AddListener = <T extends keyof ListenerMap>(type: T, listener: ListenerMap[T]) => void;
@@ -18,15 +19,15 @@ export type FocusedNavigationListener = <T>(callback: FocusedNavigationCallback<
18
19
  result: T;
19
20
  };
20
21
  export type GetStateListener = () => NavigationState;
21
- export type ChildBeforeRemoveListener = (action: NavigationAction) => boolean;
22
- /**
23
- * Context which holds the required helpers needed to build nested navigators.
24
- */
25
- export declare const NavigationBuilderContext: React.Context<{
26
- onAction?: (action: NavigationAction, visitedNavigators?: Set<string>) => boolean;
27
- addListener?: AddListener;
28
- addKeyedListener?: AddKeyedListener;
29
- onRouteFocus?: (key: string) => void;
22
+ export type GetNavigationListener = () => NavigationHelpers<ParamListBase>;
23
+ export type WithStackTrace = (entry: (...args: never[]) => void, callback: () => void) => void;
24
+ export type ChildBeforeRemoveListener = (action: NavigationAction, nextState: NavigationState | PartialState<NavigationState> | undefined) => boolean;
25
+ type NavigationBuilderContextValue = {
26
+ canGoBack?: ((source?: string) => boolean) | undefined;
27
+ onAction?: ((action: NavigationAction, visitedNavigators?: Set<string>) => boolean) | undefined;
28
+ addListener?: AddListener | undefined;
29
+ addKeyedListener?: AddKeyedListener | undefined;
30
+ onRouteFocus?: ((key: string) => void) | undefined;
30
31
  onDispatchAction: (action: NavigationAction, noop: boolean) => void;
31
32
  onEmitEvent: (event: {
32
33
  type: string;
@@ -34,9 +35,16 @@ export declare const NavigationBuilderContext: React.Context<{
34
35
  target: string | undefined;
35
36
  data: unknown;
36
37
  }) => void;
37
- onOptionsChange: (options: object) => void;
38
+ onOptionsChange: () => void;
39
+ getIsStateEmitted: () => boolean;
38
40
  scheduleUpdate: (callback: () => void) => void;
39
41
  flushUpdates: () => void;
40
- stackRef?: React.MutableRefObject<string | undefined>;
41
- }>;
42
+ withStackTrace: WithStackTrace;
43
+ };
44
+ /**
45
+ * Context which holds the required helpers needed to build nested navigators.
46
+ */
47
+ export declare const NavigationBuilderContext: React.Context<NavigationBuilderContextValue | undefined>;
48
+ export declare function useNavigationBuilderContext(): NavigationBuilderContextValue;
49
+ export {};
42
50
  //# sourceMappingURL=NavigationBuilderContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationBuilderContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationBuilderContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,yBAAyB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,YAAY,EAAE,yBAAyB,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,MAAM,WAAW,EACpD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,KACrB,IAAI,CAAC;AAEV,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAC9D,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAC1B,IAAI,CAAC;AAEV,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAC5B,OAAO,CAAC;AAEb,MAAM,MAAM,yBAAyB,CAAC,CAAC,IAAI,CACzC,UAAU,EAAE,iBAAiB,CAAC,aAAa,CAAC,KACzC,CAAC,CAAC;AAEP,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,EACxC,QAAQ,EAAE,yBAAyB,CAAC,CAAC,CAAC,KACnC;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC;AAErD,MAAM,MAAM,yBAAyB,GAAG,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,wBAAwB;eACxB,CACT,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAC5B,OAAO;kBACE,WAAW;uBACN,gBAAgB;mBACpB,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;sBAClB,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI;iBACtD,CAAC,KAAK,EAAE;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,gBAAgB,EAAE,OAAO,GAAG,SAAS,CAAC;QACtC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,IAAI,EAAE,OAAO,CAAC;KACf,KAAK,IAAI;qBACO,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;oBAC1B,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI;kBAChC,MAAM,IAAI;eACb,KAAK,CAAC,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAC;EAWrD,CAAC"}
1
+ {"version":3,"file":"NavigationBuilderContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationBuilderContext.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { ParamListBase } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
- import type { NavigationContainerRef } from './types';
3
+ import type { NavigationContainerRef } from './types.js';
4
4
  /**
5
5
  * Context which holds the route prop for a screen.
6
6
  */
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationContainerRefContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationContainerRefContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,6BAA6B,kEAE9B,CAAC"}
1
+ {"version":3,"file":"NavigationContainerRefContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationContainerRefContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAS,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,6BAA6B,kEAE9B,CAAC"}
@@ -2,11 +2,11 @@ import * as React from 'react';
2
2
  export type FocusedRouteState = {
3
3
  routes: [
4
4
  {
5
- key?: string;
5
+ key?: string | undefined;
6
6
  name: string;
7
- params?: object;
8
- path?: string;
9
- state?: FocusedRouteState;
7
+ params?: object | undefined;
8
+ path?: string | undefined;
9
+ state?: FocusedRouteState | undefined;
10
10
  }
11
11
  ];
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationFocusedRouteStateContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationFocusedRouteStateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE;QACN;YACE,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,iBAAiB,CAAC;SAC3B;KACF,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kCAAkC,8CAEnC,CAAC"}
1
+ {"version":3,"file":"NavigationFocusedRouteStateContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationFocusedRouteStateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE;QACN;YACE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC1B,KAAK,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;SACvC;KACF,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kCAAkC,8CAEnC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { ParamListBase } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
- import type { NavigationHelpers } from './types';
3
+ import type { NavigationHelpers } from './types.js';
4
4
  /**
5
5
  * Context which holds the navigation helpers of the parent navigator.
6
6
  * Navigators should use this context in their view component.
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationHelpersContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationHelpersContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,6DAEzB,CAAC"}
1
+ {"version":3,"file":"NavigationHelpersContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationHelpersContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAS,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,6DAEzB,CAAC"}
@@ -4,5 +4,5 @@ import * as React from 'react';
4
4
  */
5
5
  export declare function NavigationIndependentTree({ children, }: {
6
6
  children: React.ReactNode;
7
- }): import("react/jsx-runtime").JSX.Element;
7
+ }): React.JSX.Element;
8
8
  //# sourceMappingURL=NavigationIndependentTree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationIndependentTree.d.ts","sourceRoot":"","sources":["../../../src/NavigationIndependentTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAeA"}
1
+ {"version":3,"file":"NavigationIndependentTree.d.ts","sourceRoot":"","sources":["../../../src/NavigationIndependentTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA0B/B;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBA+CA"}
@@ -1,44 +1,47 @@
1
1
  import type { ParamListBase, Route } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
- import type { NavigationProp } from './types';
3
+ import type { NavigationProp } from './types.js';
4
4
  /**
5
5
  * Context which holds the route prop for a screen.
6
6
  */
7
7
  export declare const NavigationRouteContext: React.Context<Readonly<{
8
8
  key: string;
9
9
  name: string;
10
- path?: string;
10
+ path?: string | undefined;
11
11
  history?: {
12
12
  type: "params";
13
- params: object;
14
- }[];
15
- } & Readonly<{
13
+ params: Readonly<object | undefined>;
14
+ }[] | undefined;
15
+ } & {
16
16
  params?: Readonly<object | undefined>;
17
- }>> | undefined>;
17
+ }> | undefined>;
18
18
  /**
19
19
  * Context which holds the navigation prop for a screen.
20
20
  */
21
21
  export declare const NavigationContext: React.Context<NavigationProp<ParamListBase> | undefined>;
22
- export declare const NavigationRouteNameContext: React.Context<string | undefined>;
23
- type Props = {
24
- route: Route<string>;
25
- navigation: NavigationProp<ParamListBase>;
26
- children: React.ReactNode;
27
- };
22
+ /**
23
+ * Context which indicates whether the component is inside a screen.
24
+ */
25
+ export declare const IsScreenContext: React.Context<boolean>;
28
26
  /**
29
27
  * Component to provide the navigation and route contexts to its children.
30
28
  */
31
29
  export declare const NamedRouteContextListContext: React.Context<Record<string, React.Context<Readonly<{
32
30
  key: string;
33
31
  name: string;
34
- path?: string;
32
+ path?: string | undefined;
35
33
  history?: {
36
34
  type: "params";
37
- params: object;
38
- }[];
39
- } & Readonly<{
35
+ params: Readonly<object | undefined>;
36
+ }[] | undefined;
37
+ } & {
40
38
  params?: Readonly<object | undefined>;
41
- }>>>> | undefined>;
42
- export declare function NavigationProvider({ route, navigation, children }: Props): import("react/jsx-runtime").JSX.Element;
39
+ }>>> | undefined>;
40
+ type Props = {
41
+ route: Route<string>;
42
+ navigation: NavigationProp<ParamListBase>;
43
+ children: React.ReactNode;
44
+ };
45
+ export declare function NavigationProvider({ route, navigation, children }: Props): React.JSX.Element;
43
46
  export {};
44
47
  //# sourceMappingURL=NavigationProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationProvider.d.ts","sourceRoot":"","sources":["../../../src/NavigationProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;gBAEvB,CAAC;AAEb;;GAEG;AACH,eAAO,MAAM,iBAAiB,0DAElB,CAAC;AAEb,eAAO,MAAM,0BAA0B,mCAE3B,CAAC;AAEb,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;kBAE7B,CAAC;AAEb,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,2CA0BxE"}
1
+ {"version":3,"file":"NavigationProvider.d.ts","sourceRoot":"","sources":["../../../src/NavigationProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAS,CAAC;AAS9C;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;eAEvB,CAAC;AAEb;;GAEG;AACH,eAAO,MAAM,iBAAiB,0DAElB,CAAC;AAEb;;GAEG;AACH,eAAO,MAAM,eAAe,wBAA6B,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;iBAE7B,CAAC;AAEb,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,qBAwDxE"}
@@ -0,0 +1,8 @@
1
+ import type { ParamListBase } from '@react-navigation/routers';
2
+ import * as React from 'react';
3
+ import type { GenericNavigation } from './types.js';
4
+ /**
5
+ * Context which holds the navigation object for components outside a screen.
6
+ */
7
+ export declare const NavigationRootContext: React.Context<GenericNavigation<ParamListBase> | undefined>;
8
+ //# sourceMappingURL=NavigationRootContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationRootContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationRootContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAS,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,qBAAqB,6DAEtB,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import type { NavigationState, PartialState } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
3
  export declare const NavigationStateContext: React.Context<{
4
- isDefault?: true;
5
- state?: NavigationState | PartialState<NavigationState>;
4
+ isDefault?: true | undefined;
5
+ state?: NavigationState | PartialState<NavigationState> | undefined;
6
6
  getKey: () => string | undefined;
7
7
  setKey: (key: string) => void;
8
8
  getState: () => NavigationState | PartialState<NavigationState> | undefined;
9
9
  setState: (state: NavigationState | PartialState<NavigationState> | undefined) => void;
10
+ subscribe: (callback: () => void) => () => void;
10
11
  getIsInitial: () => boolean;
11
- addOptionsGetter?: (key: string, getter: () => object | undefined | null) => void;
12
12
  }>;
13
13
  //# sourceMappingURL=NavigationStateContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationStateContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationStateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,eAAO,MAAM,sBAAsB;gBACrB,IAAI;YACR,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC;YAC/C,MAAM,MAAM,GAAG,SAAS;YACxB,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;cACnB,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS;cACjE,CACR,KAAK,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,KAC/D,IAAI;kBACK,MAAM,OAAO;uBACR,CACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,KACpC,IAAI;EAmBT,CAAC"}
1
+ {"version":3,"file":"NavigationStateContext.d.ts","sourceRoot":"","sources":["../../../src/NavigationStateContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,eAAO,MAAM,sBAAsB;gBACrB,IAAI,GAAG,SAAS;YACpB,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS;YAC3D,MAAM,MAAM,GAAG,SAAS;YACxB,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;cACnB,MAAM,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS;cACjE,CACR,KAAK,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,KAC/D,IAAI;eACE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI;kBACjC,MAAM,OAAO;EAsB3B,CAAC"}
@@ -9,5 +9,6 @@ export type PreventedRoutes = Record<string, {
9
9
  export declare const PreventRemoveContext: React.Context<{
10
10
  preventedRoutes: PreventedRoutes;
11
11
  setPreventRemove: (id: string, routeKey: string, preventRemove: boolean) => void;
12
+ notifyPreventRemove: () => void;
12
13
  } | undefined>;
13
14
  //# sourceMappingURL=PreventRemoveContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PreventRemoveContext.d.ts","sourceRoot":"","sources":["../../../src/PreventRemoveContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEzE,eAAO,MAAM,oBAAoB;qBAEV,eAAe;sBACd,CAChB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,KACnB,IAAI;cAGH,CAAC"}
1
+ {"version":3,"file":"PreventRemoveContext.d.ts","sourceRoot":"","sources":["../../../src/PreventRemoveContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,aAAa,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAEzE,eAAO,MAAM,oBAAoB;qBAEV,eAAe;sBACd,CAChB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,KACnB,IAAI;yBACY,MAAM,IAAI;cAGzB,CAAC"}
@@ -5,6 +5,6 @@ type Props = {
5
5
  /**
6
6
  * Component used for managing which routes have to be prevented from removal in native-stack.
7
7
  */
8
- export declare function PreventRemoveProvider({ children }: Props): import("react/jsx-runtime").JSX.Element;
8
+ export declare function PreventRemoveProvider({ children }: Props): React.JSX.Element;
9
9
  export {};
10
10
  //# sourceMappingURL=PreventRemoveProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PreventRemoveProvider.d.ts","sourceRoot":"","sources":["../../../src/PreventRemoveProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AA+BF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAiFxD"}
1
+ {"version":3,"file":"PreventRemoveProvider.d.ts","sourceRoot":"","sources":["../../../src/PreventRemoveProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAmBF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,qBA6FxD"}
@@ -1,5 +1,6 @@
1
1
  import type { NavigationState, ParamListBase, PartialState, Route } from '@react-navigation/routers';
2
- import type { NavigationProp, RouteConfigComponent } from './types';
2
+ import * as React from 'react';
3
+ import type { NavigationProp, RouteConfigComponent } from './types.js';
3
4
  type Props<State extends NavigationState, ScreenOptions extends {}> = {
4
5
  screen: RouteConfigComponent<ParamListBase, string> & {
5
6
  name: string;
@@ -7,8 +8,10 @@ type Props<State extends NavigationState, ScreenOptions extends {}> = {
7
8
  navigation: NavigationProp<ParamListBase, string, State, ScreenOptions>;
8
9
  route: Route<string>;
9
10
  routeState: NavigationState | PartialState<NavigationState> | undefined;
11
+ getFocusedRouteKey: () => string | undefined;
10
12
  getState: () => State;
11
13
  setState: (state: State) => void;
14
+ subscribe: (callback: () => void) => () => void;
12
15
  options: object;
13
16
  clearOptions: () => void;
14
17
  };
@@ -16,6 +19,6 @@ type Props<State extends NavigationState, ScreenOptions extends {}> = {
16
19
  * Component which takes care of rendering the screen for a route.
17
20
  * It provides all required contexts and applies optimizations when applicable.
18
21
  */
19
- export declare function SceneView<State extends NavigationState, ScreenOptions extends {}>({ screen, route, navigation, routeState, getState, setState, options, clearOptions, }: Props<State, ScreenOptions>): import("react/jsx-runtime").JSX.Element;
22
+ export declare function SceneView<State extends NavigationState, ScreenOptions extends {}>({ screen, route, navigation, routeState, getFocusedRouteKey, getState, setState, subscribe, options, clearOptions, }: Props<State, ScreenOptions>): React.JSX.Element;
20
23
  export {};
21
24
  //# sourceMappingURL=SceneView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SceneView.d.ts","sourceRoot":"","sources":["../../../src/SceneView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,KAAK,EACN,MAAM,2BAA2B,CAAC;AAWnC,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGpE,KAAK,KAAK,CAAC,KAAK,SAAS,eAAe,EAAE,aAAa,SAAS,EAAE,IAAI;IACpE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,UAAU,EAAE,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IACxE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IACxE,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,EACA,MAAM,EACN,KAAK,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,GACb,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,2CAoL7B"}
1
+ {"version":3,"file":"SceneView.d.ts","sourceRoot":"","sources":["../../../src/SceneView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,KAAK,EACN,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAS,CAAC;AAGpE,KAAK,KAAK,CAAC,KAAK,SAAS,eAAe,EAAE,aAAa,SAAS,EAAE,IAAI;IACpE,MAAM,EAAE,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,UAAU,EAAE,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IACxE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IACxE,kBAAkB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,EAAE,MAAM,KAAK,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,EACA,MAAM,EACN,KAAK,EACL,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,YAAY,GACb,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,qBAsJ7B"}
@@ -1,5 +1,5 @@
1
1
  import type { NavigationState, ParamListBase } from '@react-navigation/routers';
2
- import type { EventMapBase, RouteConfig } from './types';
2
+ import type { EventMapBase, RouteConfig } from './types.js';
3
3
  /**
4
4
  * Empty component used for specifying route configuration.
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Screen.d.ts","sourceRoot":"","sources":["../../../src/Screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzD;;GAEG;AACH,wBAAgB,MAAM,CACpB,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,EACjC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,YAAY,EAC7B,cAAc,EAEd,CAAC,EAAE,WAAW,CACZ,SAAS,EACT,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,CACf,QAIF"}
1
+ {"version":3,"file":"Screen.d.ts","sourceRoot":"","sources":["../../../src/Screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAS,CAAC;AAEzD;;GAEG;AACH,wBAAgB,MAAM,CACpB,SAAS,SAAS,aAAa,EAC/B,SAAS,SAAS,MAAM,SAAS,EACjC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,YAAY,EAC7B,cAAc,EAEd,CAAC,EAAE,WAAW,CACZ,SAAS,EACT,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,EACR,cAAc,CACf,QAIF"}
@@ -2,5 +2,5 @@ import * as React from 'react';
2
2
  /**
3
3
  * Component which prevents updates for children if no props changed
4
4
  */
5
- export declare const StaticContainer: React.NamedExoticComponent<any>;
5
+ export declare const StaticContainer: React.MemoExoticComponent<(props: any) => any>;
6
6
  //# sourceMappingURL=StaticContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticContainer.d.ts","sourceRoot":"","sources":["../../../src/StaticContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,eAAe,iCAwB3B,CAAC"}
1
+ {"version":3,"file":"StaticContainer.d.ts","sourceRoot":"","sources":["../../../src/StaticContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,eAAe,oCACM,GAAG,SAuBpC,CAAC"}