one 1.26.0 → 2.0.0-beta.33.1

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 (964) hide show
  1. package/dist/cjs/Root.native.js.map +1 -1
  2. package/dist/cjs/__mocks__/@react-navigation/native-stack.native.js.map +1 -1
  3. package/dist/cjs/__mocks__/expo-linking.native.js.map +1 -1
  4. package/dist/cjs/__mocks__/expo-modules-core.native.js.map +1 -1
  5. package/dist/cjs/__mocks__/react-native-screens.native.js.map +1 -1
  6. package/dist/cjs/__tests__/polyfills-mobile.test.native.js.map +1 -1
  7. package/dist/cjs/babel-plugins/environment-guard.native.js.map +1 -1
  8. package/dist/cjs/babel-plugins/inline-one-server-url.native.js.map +1 -1
  9. package/dist/cjs/babel-plugins/one-router-metro.native.js.map +1 -1
  10. package/dist/cjs/babel-plugins/one-router-metro.test.native.js.map +1 -1
  11. package/dist/cjs/babel-plugins/remove-server-code.native.js.map +1 -1
  12. package/dist/cjs/babel-preset/index.native.js.map +1 -1
  13. package/dist/cjs/babel-preset/index.test.native.js.map +1 -1
  14. package/dist/cjs/babel-preset/integration.test.native.js.map +1 -1
  15. package/dist/cjs/cli/build.native.js.map +1 -1
  16. package/dist/cjs/cli/buildPage.native.js.map +1 -1
  17. package/dist/cjs/cli/buildPageWorker.native.js.map +1 -1
  18. package/dist/cjs/cli/checkNodeVersion.native.js.map +1 -1
  19. package/dist/cjs/cli/daemon.native.js.map +1 -1
  20. package/dist/cjs/cli/dev.native.js.map +1 -1
  21. package/dist/cjs/cli/generateBundlerConfig.native.js.map +1 -1
  22. package/dist/cjs/cli/generateBundlerConfig.test.native.js.map +1 -1
  23. package/dist/cjs/cli/generateRoutes.native.js.map +1 -1
  24. package/dist/cjs/cli/generateSitemap.native.js.map +1 -1
  25. package/dist/cjs/cli/generateSitemap.test.native.js.map +1 -1
  26. package/dist/cjs/cli/install-error-handlers.native.js.map +1 -1
  27. package/dist/cjs/cli/label-process.native.js.map +1 -1
  28. package/dist/cjs/cli/main.native.js.map +1 -1
  29. package/dist/cjs/cli/patch.native.js.map +1 -1
  30. package/dist/cjs/cli/patch.test.native.js.map +1 -1
  31. package/dist/cjs/cli/prebuild.native.js.map +1 -1
  32. package/dist/cjs/cli/prebuild.test.native.js.map +1 -1
  33. package/dist/cjs/cli/runAndroid.native.js.map +1 -1
  34. package/dist/cjs/cli/runIos.native.js.map +1 -1
  35. package/dist/cjs/cli/securityScan.native.js.map +1 -1
  36. package/dist/cjs/cli/serverRouteModules.native.js.map +1 -1
  37. package/dist/cjs/cli/workerPool.native.js.map +1 -1
  38. package/dist/cjs/cli.native.js.map +1 -1
  39. package/dist/cjs/clientLoaderResolver.native.js.map +1 -1
  40. package/dist/cjs/config.native.js.map +1 -1
  41. package/dist/cjs/constants.native.js.map +1 -1
  42. package/dist/cjs/constants.test.native.js.map +1 -1
  43. package/dist/cjs/createAPIRoute.native.js.map +1 -1
  44. package/dist/cjs/createApp.native.js +25 -1
  45. package/dist/cjs/createApp.native.js.map +1 -1
  46. package/dist/cjs/createDevHandleRequest.native.js.map +1 -1
  47. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  48. package/dist/cjs/createHandleRequest.test.native.js.map +1 -1
  49. package/dist/cjs/createMiddleware.native.js.map +1 -1
  50. package/dist/cjs/daemon/index.native.js.map +1 -1
  51. package/dist/cjs/daemon/ipc.native.js.map +1 -1
  52. package/dist/cjs/daemon/picker.native.js.map +1 -1
  53. package/dist/cjs/daemon/proxy.native.js.map +1 -1
  54. package/dist/cjs/daemon/registry.native.js.map +1 -1
  55. package/dist/cjs/daemon/server.native.js.map +1 -1
  56. package/dist/cjs/daemon/tui.native.js.map +1 -1
  57. package/dist/cjs/daemon/types.native.js.map +1 -1
  58. package/dist/cjs/daemon/utils.native.js.map +1 -1
  59. package/dist/cjs/devtools/registry.native.js.map +1 -1
  60. package/dist/cjs/drawer.native.js.map +1 -1
  61. package/dist/cjs/fallbackViews/Sitemap.cjs +1 -1
  62. package/dist/cjs/fallbackViews/Sitemap.native.js +1 -1
  63. package/dist/cjs/fallbackViews/Sitemap.native.js.map +1 -1
  64. package/dist/cjs/fallbackViews/Unmatched.native.js.map +1 -1
  65. package/dist/cjs/fork/NavigationContainer.cjs +25 -51
  66. package/dist/cjs/fork/NavigationContainer.native.js +29 -56
  67. package/dist/cjs/fork/NavigationContainer.native.js.map +1 -1
  68. package/dist/cjs/fork/__tests__/getPathFromState.test.native.js.map +1 -1
  69. package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js.map +1 -1
  70. package/dist/cjs/fork/_shared.native.js.map +1 -1
  71. package/dist/cjs/fork/createMemoryHistory.native.js.map +1 -1
  72. package/dist/cjs/fork/createMemoryHistory.test.native.js.map +1 -1
  73. package/dist/cjs/fork/extractPathFromURL.native.js.map +1 -1
  74. package/dist/cjs/fork/extractPathFromURL.test.native.js.map +1 -1
  75. package/dist/cjs/fork/findFocusedRoute.native.js.map +1 -1
  76. package/dist/cjs/fork/getPathFromState-mods.native.js.map +1 -1
  77. package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
  78. package/dist/cjs/fork/getPathFromState.test.native.js.map +1 -1
  79. package/dist/cjs/fork/getStateFromPath-mods.native.js.map +1 -1
  80. package/dist/cjs/fork/getStateFromPath.native.js.map +1 -1
  81. package/dist/cjs/fork/getStateFromPath.test.native.js.map +1 -1
  82. package/dist/cjs/fork/useLinking.cjs +18 -15
  83. package/dist/cjs/fork/useLinking.native.js +12 -21
  84. package/dist/cjs/fork/useLinking.native.js.map +1 -1
  85. package/dist/cjs/fork/useLinking.native.test.cjs +1 -1
  86. package/dist/cjs/fork/useLinking.native.test.native.js +1 -1
  87. package/dist/cjs/fork/useLinking.native.test.native.js.map +1 -1
  88. package/dist/cjs/fork/useThenable.native.js.map +1 -1
  89. package/dist/cjs/fork/validatePathConfig.cjs +9 -2
  90. package/dist/cjs/fork/validatePathConfig.native.js +9 -2
  91. package/dist/cjs/fork/validatePathConfig.native.js.map +1 -1
  92. package/dist/cjs/getReactNavigationConfig.cjs +49 -4
  93. package/dist/cjs/getReactNavigationConfig.native.js +55 -4
  94. package/dist/cjs/getReactNavigationConfig.native.js.map +1 -1
  95. package/dist/cjs/getURL.native.test.native.js.map +1 -1
  96. package/dist/cjs/head/Head.native.js.map +1 -1
  97. package/dist/cjs/head/HeadModule.native.js.map +1 -1
  98. package/dist/cjs/head/index.native.js.map +1 -1
  99. package/dist/cjs/head/types.native.js.map +1 -1
  100. package/dist/cjs/head/url.native.js.map +1 -1
  101. package/dist/cjs/headless/Presentations.native.js.map +1 -1
  102. package/dist/cjs/headless/__tests__/useStack.test.cjs +7 -15
  103. package/dist/cjs/headless/__tests__/useStack.test.native.js +7 -15
  104. package/dist/cjs/headless/__tests__/useStack.test.native.js.map +1 -1
  105. package/dist/cjs/headless/children.native.js.map +1 -1
  106. package/dist/cjs/headless/keepMounted.native.js.map +1 -1
  107. package/dist/cjs/headless/types.native.js.map +1 -1
  108. package/dist/cjs/headless/useDrawer.native.js.map +1 -1
  109. package/dist/cjs/headless/useStack.cjs +1 -2
  110. package/dist/cjs/headless/useStack.native.js +1 -2
  111. package/dist/cjs/headless/useStack.native.js.map +1 -1
  112. package/dist/cjs/headless/useTabs.native.js.map +1 -1
  113. package/dist/cjs/headless-server.native.js.map +1 -1
  114. package/dist/cjs/headless.native.js.map +1 -1
  115. package/dist/cjs/hooks.native.js.map +1 -1
  116. package/dist/cjs/hooks.test.native.js.map +1 -1
  117. package/dist/cjs/href.native.js.map +1 -1
  118. package/dist/cjs/image/getImageData.native.js.map +1 -1
  119. package/dist/cjs/image.native.js.map +1 -1
  120. package/dist/cjs/index.native.js +1 -1
  121. package/dist/cjs/index.native.js.map +1 -1
  122. package/dist/cjs/interfaces/router.native.js.map +1 -1
  123. package/dist/cjs/layouts/Drawer.native.js.map +1 -1
  124. package/dist/cjs/layouts/Stack.cjs +9 -12
  125. package/dist/cjs/layouts/Stack.native.js +11 -14
  126. package/dist/cjs/layouts/Stack.native.js.map +1 -1
  127. package/dist/cjs/layouts/Tabs.native.js +3 -84
  128. package/dist/cjs/layouts/Tabs.native.js.map +1 -1
  129. package/dist/cjs/layouts/nativeTabsOptions.cjs +49 -0
  130. package/dist/cjs/layouts/nativeTabsOptions.native.js +52 -0
  131. package/dist/cjs/layouts/nativeTabsOptions.native.js.map +1 -0
  132. package/dist/cjs/layouts/stack-navigator.native.js.map +1 -1
  133. package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.cjs +4 -1
  134. package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.native.js +4 -1
  135. package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.native.js.map +1 -1
  136. package/dist/cjs/layouts/stack-utils/StackHeaderComponent.native.js.map +1 -1
  137. package/dist/cjs/layouts/stack-utils/StackHeaderLeft.native.js.map +1 -1
  138. package/dist/cjs/layouts/stack-utils/StackHeaderRight.native.js.map +1 -1
  139. package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.native.js.map +1 -1
  140. package/dist/cjs/layouts/stack-utils/StackHeaderTitle.cjs +2 -2
  141. package/dist/cjs/layouts/stack-utils/StackHeaderTitle.native.js +2 -2
  142. package/dist/cjs/layouts/stack-utils/StackHeaderTitle.native.js.map +1 -1
  143. package/dist/cjs/layouts/stack-utils/StackScreen.cjs +3 -6
  144. package/dist/cjs/layouts/stack-utils/StackScreen.native.js +4 -7
  145. package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +1 -1
  146. package/dist/cjs/layouts/stack-utils/__tests__/composition.test.cjs +14 -14
  147. package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js +14 -14
  148. package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
  149. package/dist/cjs/layouts/stack-utils/index.cjs +0 -2
  150. package/dist/cjs/layouts/stack-utils/index.native.js +0 -2
  151. package/dist/cjs/layouts/stack-utils/index.native.js.map +1 -1
  152. package/dist/cjs/layouts/withLayoutContext.cjs +0 -1
  153. package/dist/cjs/layouts/withLayoutContext.native.js +0 -1
  154. package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
  155. package/dist/cjs/layouts/withLayoutContext.test.cjs +18 -0
  156. package/dist/cjs/layouts/withLayoutContext.test.native.js +24 -0
  157. package/dist/cjs/layouts/withLayoutContext.test.native.js.map +1 -1
  158. package/dist/cjs/lazyWithRetry.native.js.map +1 -1
  159. package/dist/cjs/link/Link.native.js.map +1 -1
  160. package/dist/cjs/link/Redirect.native.js.map +1 -1
  161. package/dist/cjs/link/Redirect.test.native.js.map +1 -1
  162. package/dist/cjs/link/getLinking.native.js.map +1 -1
  163. package/dist/cjs/link/href.native.js.map +1 -1
  164. package/dist/cjs/link/path.native.js.map +1 -1
  165. package/dist/cjs/link/prefetchIntent.native.js.map +1 -1
  166. package/dist/cjs/link/prefetchIntent.test.native.js.map +1 -1
  167. package/dist/cjs/link/prefetchViewport.native.js.map +1 -1
  168. package/dist/cjs/link/prefetchViewport.test.native.js.map +1 -1
  169. package/dist/cjs/link/useLinkTo.native.js.map +1 -1
  170. package/dist/cjs/link/useLoadedNavigation.native.js.map +1 -1
  171. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -1
  172. package/dist/cjs/metro-config/buildOneMetroResolverOverrides.test.native.js.map +1 -1
  173. package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.native.js.map +1 -1
  174. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +1 -1
  175. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  176. package/dist/cjs/metro-config/withOne.native.js.map +1 -1
  177. package/dist/cjs/metro-config/withOne.test.native.js.map +1 -1
  178. package/dist/cjs/native-transforms.native.js.map +1 -1
  179. package/dist/cjs/notFoundState.native.js.map +1 -1
  180. package/dist/cjs/package-exports.test.native.js.map +1 -1
  181. package/dist/cjs/polyfills-mobile.native.js.map +1 -1
  182. package/dist/cjs/polyfills-server.native.js.map +1 -1
  183. package/dist/cjs/router/FlagsContext.native.js.map +1 -1
  184. package/dist/cjs/router/Route.cjs +10 -3
  185. package/dist/cjs/router/Route.native.js +13 -3
  186. package/dist/cjs/router/Route.native.js.map +1 -1
  187. package/dist/cjs/router/RouteInfoContext.native.js.map +1 -1
  188. package/dist/cjs/router/RouterStore.native.js.map +1 -1
  189. package/dist/cjs/router/SpaShellContext.native.js.map +1 -1
  190. package/dist/cjs/router/conditionalSlotPathname.test.native.js.map +1 -1
  191. package/dist/cjs/router/createRoute.native.js.map +1 -1
  192. package/dist/cjs/router/diagnoseRouteLoadFailure.native.js.map +1 -1
  193. package/dist/cjs/router/filterRootHTML.native.js.map +1 -1
  194. package/dist/cjs/router/findRouteNode.cjs +10 -10
  195. package/dist/cjs/router/findRouteNode.native.js +13 -29
  196. package/dist/cjs/router/findRouteNode.native.js.map +1 -1
  197. package/dist/cjs/router/findRouteNode.test.cjs +88 -0
  198. package/dist/cjs/router/findRouteNode.test.native.js +94 -0
  199. package/dist/cjs/router/findRouteNode.test.native.js.map +1 -0
  200. package/dist/cjs/router/getLinkingConfig.native.js.map +1 -1
  201. package/dist/cjs/router/getLinkingConfig.test.cjs +9 -0
  202. package/dist/cjs/router/getLinkingConfig.test.native.js +9 -0
  203. package/dist/cjs/router/getLinkingConfig.test.native.js.map +1 -1
  204. package/dist/cjs/router/getNormalizedStatePath.cjs +2 -1
  205. package/dist/cjs/router/getNormalizedStatePath.native.js +2 -1
  206. package/dist/cjs/router/getNormalizedStatePath.native.js.map +1 -1
  207. package/dist/cjs/router/getRouteArtifactPath.native.js.map +1 -1
  208. package/dist/cjs/router/getRouteArtifactPath.test.native.js.map +1 -1
  209. package/dist/cjs/router/getRouteInfo.cjs +6 -2
  210. package/dist/cjs/router/getRouteInfo.native.js +6 -2
  211. package/dist/cjs/router/getRouteInfo.native.js.map +1 -1
  212. package/dist/cjs/router/getRouteInfo.test.cjs +56 -0
  213. package/dist/cjs/router/getRouteInfo.test.native.js +65 -0
  214. package/dist/cjs/router/getRouteInfo.test.native.js.map +1 -0
  215. package/dist/cjs/router/getRoutes.native.js.map +1 -1
  216. package/dist/cjs/router/getRoutes.test.native.js.map +1 -1
  217. package/dist/cjs/router/glob-patterns.native.js.map +1 -1
  218. package/dist/cjs/router/hmrImport.native.test.native.js.map +1 -1
  219. package/dist/cjs/router/imperative-api.native.js.map +1 -1
  220. package/dist/cjs/router/interceptRoutes.native.js.map +1 -1
  221. package/dist/cjs/router/isIndexPath.cjs +1 -1
  222. package/dist/cjs/router/isIndexPath.native.js +2 -1
  223. package/dist/cjs/router/isIndexPath.native.js.map +1 -1
  224. package/dist/cjs/router/isStateAwaitingNavigatorMount.cjs +2 -1
  225. package/dist/cjs/router/isStateAwaitingNavigatorMount.native.js +2 -1
  226. package/dist/cjs/router/isStateAwaitingNavigatorMount.native.js.map +1 -1
  227. package/dist/cjs/router/lastAction.native.js.map +1 -1
  228. package/dist/cjs/router/linkToOrphaned.test.native.js.map +1 -1
  229. package/dist/cjs/router/linkingConfig.native.js.map +1 -1
  230. package/dist/cjs/router/matchers.native.js.map +1 -1
  231. package/dist/cjs/router/matchers.test.native.js.map +1 -1
  232. package/dist/cjs/router/params.native.js.map +1 -1
  233. package/dist/cjs/router/path.cjs +1 -0
  234. package/dist/cjs/router/path.native.js +1 -0
  235. package/dist/cjs/router/path.native.js.map +1 -1
  236. package/dist/cjs/router/path.test.native.js.map +1 -1
  237. package/dist/cjs/router/protectedRoutes.test.native.js.map +1 -1
  238. package/dist/cjs/router/routeHmr.native.js +2 -5
  239. package/dist/cjs/router/routeHmr.native.js.map +1 -1
  240. package/dist/cjs/router/routeHmr.native.test.cjs +23 -9
  241. package/dist/cjs/router/routeHmr.native.test.native.js +27 -9
  242. package/dist/cjs/router/routeHmr.native.test.native.js.map +1 -1
  243. package/dist/cjs/router/router.cjs +12 -14
  244. package/dist/cjs/router/router.native.js +13 -14
  245. package/dist/cjs/router/router.native.js.map +1 -1
  246. package/dist/cjs/router/serverLocationContext.native.js.map +1 -1
  247. package/dist/cjs/router/sitemap.native.js.map +1 -1
  248. package/dist/cjs/router/sitemap.test.native.js.map +1 -1
  249. package/dist/cjs/router/sortRoutes.native.js.map +1 -1
  250. package/dist/cjs/router/useInitializeOneRouter.native.js.map +1 -1
  251. package/dist/cjs/router/useInitializeOneRouter.preview-lifecycle.test.native.js.map +1 -1
  252. package/dist/cjs/router/useNavigation.cjs +30 -8
  253. package/dist/cjs/router/useNavigation.native.js +32 -8
  254. package/dist/cjs/router/useNavigation.native.js.map +1 -1
  255. package/dist/cjs/router/useScreens.cjs +19 -21
  256. package/dist/cjs/router/useScreens.native.js +19 -21
  257. package/dist/cjs/router/useScreens.native.js.map +1 -1
  258. package/dist/cjs/router/useScreens.test.cjs +78 -0
  259. package/dist/cjs/router/useScreens.test.native.js +88 -1
  260. package/dist/cjs/router/useScreens.test.native.js.map +1 -1
  261. package/dist/cjs/router/useViteRoutes.cjs +3 -2
  262. package/dist/cjs/router/useViteRoutes.native.js +3 -2
  263. package/dist/cjs/router/useViteRoutes.native.js.map +1 -1
  264. package/dist/cjs/router/useViteRoutes.test.native.js.map +1 -1
  265. package/dist/cjs/router/utils/getNavigateAction.cjs +2 -2
  266. package/dist/cjs/router/utils/getNavigateAction.native.js +5 -4
  267. package/dist/cjs/router/utils/getNavigateAction.native.js.map +1 -1
  268. package/dist/cjs/router/utils/getNavigateAction.test.cjs +37 -6
  269. package/dist/cjs/router/utils/getNavigateAction.test.native.js +37 -6
  270. package/dist/cjs/router/utils/getNavigateAction.test.native.js.map +1 -1
  271. package/dist/cjs/router/web/WebStackNavigator.native.js.map +1 -1
  272. package/dist/cjs/router/web/WebStackView.cjs +1 -1
  273. package/dist/cjs/router/web/WebStackView.native.js +1 -1
  274. package/dist/cjs/router/web/WebStackView.native.js.map +1 -1
  275. package/dist/cjs/router/web/__tests__/stackStateUtils.test.cjs +21 -1
  276. package/dist/cjs/router/web/__tests__/stackStateUtils.test.native.js +23 -1
  277. package/dist/cjs/router/web/__tests__/stackStateUtils.test.native.js.map +1 -1
  278. package/dist/cjs/router/web/stackStateUtils.cjs +1 -1
  279. package/dist/cjs/router/web/stackStateUtils.native.js +1 -1
  280. package/dist/cjs/router/web/stackStateUtils.native.js.map +1 -1
  281. package/dist/cjs/serve-worker.native.js.map +1 -1
  282. package/dist/cjs/serve.native.js.map +1 -1
  283. package/dist/cjs/server/ServerContextScript.native.js.map +1 -1
  284. package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
  285. package/dist/cjs/server/getServerManifest.native.js.map +1 -1
  286. package/dist/cjs/server/getServerManifest.test.native.js.map +1 -1
  287. package/dist/cjs/server/oneServe.native.js.map +1 -1
  288. package/dist/cjs/server/routeExportsFromEntry.native.js.map +1 -1
  289. package/dist/cjs/server/setServerGlobals.native.js.map +1 -1
  290. package/dist/cjs/server/setupBuildOptions.native.js.map +1 -1
  291. package/dist/cjs/server/setupServerGlobals.native.js.map +1 -1
  292. package/dist/cjs/server/ssrLoaderData.native.js.map +1 -1
  293. package/dist/cjs/server/staticHtmlFetcher.native.js.map +1 -1
  294. package/dist/cjs/server/workerHandler.native.js.map +1 -1
  295. package/dist/cjs/server/workerHandler.test.native.js.map +1 -1
  296. package/dist/cjs/server-render.native.js.map +1 -1
  297. package/dist/cjs/skewProtection.native.js.map +1 -1
  298. package/dist/cjs/testing-utils.native.js.map +1 -1
  299. package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
  300. package/dist/cjs/typed-routes/generateRouteTypes.test.native.js.map +1 -1
  301. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
  302. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.test.native.js.map +1 -1
  303. package/dist/cjs/typed-routes/injectRouteHelpers.native.js.map +1 -1
  304. package/dist/cjs/types.native.js.map +1 -1
  305. package/dist/cjs/ui/Slot.cjs +3 -3
  306. package/dist/cjs/ui/Slot.native.js +1 -25
  307. package/dist/cjs/ui/Slot.native.js.map +1 -1
  308. package/dist/cjs/ui/TabContext.native.js.map +1 -1
  309. package/dist/cjs/ui/TabList.cjs +4 -5
  310. package/dist/cjs/ui/TabList.native.js +2 -15
  311. package/dist/cjs/ui/TabList.native.js.map +1 -1
  312. package/dist/cjs/ui/TabRouter.native.js.map +1 -1
  313. package/dist/cjs/ui/TabSlot.cjs +3 -3
  314. package/dist/cjs/ui/TabSlot.native.js +11 -43
  315. package/dist/cjs/ui/TabSlot.native.js.map +1 -1
  316. package/dist/cjs/ui/TabTrigger.cjs +3 -3
  317. package/dist/cjs/ui/TabTrigger.native.js +24 -22
  318. package/dist/cjs/ui/TabTrigger.native.js.map +1 -1
  319. package/dist/cjs/ui/Tabs.cjs +9 -10
  320. package/dist/cjs/ui/Tabs.native.js +2 -9
  321. package/dist/cjs/ui/Tabs.native.js.map +1 -1
  322. package/dist/cjs/ui/Tabs.shared.cjs +1 -4
  323. package/dist/cjs/ui/Tabs.shared.native.js +1 -4
  324. package/dist/cjs/ui/Tabs.shared.native.js.map +1 -1
  325. package/dist/cjs/ui/common.cjs +6 -5
  326. package/dist/cjs/ui/common.native.js +10 -7
  327. package/dist/cjs/ui/common.native.js.map +1 -1
  328. package/dist/cjs/ui/index.native.js +2 -4
  329. package/dist/cjs/ui/index.native.js.map +1 -1
  330. package/dist/cjs/ui/useComponent.native.js.map +1 -1
  331. package/dist/cjs/ui/useTabTrigger.native.js.map +1 -1
  332. package/dist/cjs/useFocusEffect.cjs +7 -1
  333. package/dist/cjs/useFocusEffect.native.js +9 -4
  334. package/dist/cjs/useFocusEffect.native.js.map +1 -1
  335. package/dist/cjs/useLoader.native.js.map +1 -1
  336. package/dist/cjs/useMatches.native.js.map +1 -1
  337. package/dist/cjs/useMatches.test.native.js.map +1 -1
  338. package/dist/cjs/useServerHeadInsertion.native.js.map +1 -1
  339. package/dist/cjs/utils/assertIsReady.native.js.map +1 -1
  340. package/dist/cjs/utils/buildOutputPointer.native.js.map +1 -1
  341. package/dist/cjs/utils/buildOutputPointer.test.native.js.map +1 -1
  342. package/dist/cjs/utils/children.native.js.map +1 -1
  343. package/dist/cjs/utils/cleanUrl.native.js.map +1 -1
  344. package/dist/cjs/utils/cleanUrl.test.native.js.map +1 -1
  345. package/dist/cjs/utils/dynamicImport.native.js.map +1 -1
  346. package/dist/cjs/utils/dynamicImport.test.native.js.map +1 -1
  347. package/dist/cjs/utils/ensureExists.native.js.map +1 -1
  348. package/dist/cjs/utils/evictOldest.native.js.map +1 -1
  349. package/dist/cjs/utils/existsAsync.native.js.map +1 -1
  350. package/dist/cjs/utils/findRootLayout.native.js.map +1 -1
  351. package/dist/cjs/utils/getPageExport.native.js.map +1 -1
  352. package/dist/cjs/utils/getPathnameFromFilePath.native.js.map +1 -1
  353. package/dist/cjs/utils/getPathnameFromFilePath.test.native.js.map +1 -1
  354. package/dist/cjs/utils/getRouterRootFromOneOptions.native.js.map +1 -1
  355. package/dist/cjs/utils/globDir.native.js.map +1 -1
  356. package/dist/cjs/utils/hashString.native.js.map +1 -1
  357. package/dist/cjs/utils/htmlEscape.native.js.map +1 -1
  358. package/dist/cjs/utils/isResponse.native.js.map +1 -1
  359. package/dist/cjs/utils/isRolldown.native.js.map +1 -1
  360. package/dist/cjs/utils/isStatus.native.js.map +1 -1
  361. package/dist/cjs/utils/pLimit.native.js.map +1 -1
  362. package/dist/cjs/utils/platform.native.js.map +1 -1
  363. package/dist/cjs/utils/posixPathContract.test.native.js.map +1 -1
  364. package/dist/cjs/utils/promiseWithResolvers.native.js.map +1 -1
  365. package/dist/cjs/utils/rand.native.js.map +1 -1
  366. package/dist/cjs/utils/redirect.native.js.map +1 -1
  367. package/dist/cjs/utils/removeParams.native.js.map +1 -1
  368. package/dist/cjs/utils/removeSearch.native.js.map +1 -1
  369. package/dist/cjs/utils/removeUndefined.native.js.map +1 -1
  370. package/dist/cjs/utils/routeFileWatch.native.js.map +1 -1
  371. package/dist/cjs/utils/routeFileWatch.test.native.js.map +1 -1
  372. package/dist/cjs/utils/routeIndex.native.js.map +1 -1
  373. package/dist/cjs/utils/routeIndex.test.native.js.map +1 -1
  374. package/dist/cjs/utils/style.native.js.map +1 -1
  375. package/dist/cjs/utils/toAbsolute.native.js.map +1 -1
  376. package/dist/cjs/utils/toServerOutputPath.native.js.map +1 -1
  377. package/dist/cjs/utils/toServerOutputPath.test.native.js.map +1 -1
  378. package/dist/cjs/utils/trackLoaderDependencies.native.js.map +1 -1
  379. package/dist/cjs/utils/url.native.js.map +1 -1
  380. package/dist/cjs/utils/useConstant.native.js.map +1 -1
  381. package/dist/cjs/utils/watchFile.native.js.map +1 -1
  382. package/dist/cjs/utils/weakKey.native.js.map +1 -1
  383. package/dist/cjs/utils/weakMemo.native.js.map +1 -1
  384. package/dist/cjs/utils/withStaticProperties.native.js.map +1 -1
  385. package/dist/cjs/utils/workerImport.native.js.map +1 -1
  386. package/dist/cjs/validateParams.native.js.map +1 -1
  387. package/dist/cjs/validateSearch.native.js.map +1 -1
  388. package/dist/cjs/vercel/build/buildVercelOutputDirectory.native.js.map +1 -1
  389. package/dist/cjs/vercel/build/config/vc-build-output-config-base.native.js.map +1 -1
  390. package/dist/cjs/vercel/build/config/vc-config-base.native.js.map +1 -1
  391. package/dist/cjs/vercel/build/config/vc-package-base.native.js.map +1 -1
  392. package/dist/cjs/vercel/build/generate/createApiServerlessFunction.native.js.map +1 -1
  393. package/dist/cjs/vercel/build/generate/createSsrServerlessFunction.native.js.map +1 -1
  394. package/dist/cjs/vercel/build/getPathFromRoute.native.js.map +1 -1
  395. package/dist/cjs/views/EmptyRoute.native.js.map +1 -1
  396. package/dist/cjs/views/ErrorBoundary.native.js.map +1 -1
  397. package/dist/cjs/views/LoadProgressBar.native.js.map +1 -1
  398. package/dist/cjs/views/Navigator.cjs +2 -19
  399. package/dist/cjs/views/Navigator.native.js +2 -23
  400. package/dist/cjs/views/Navigator.native.js.map +1 -1
  401. package/dist/cjs/views/Protected.native.js.map +1 -1
  402. package/dist/cjs/views/RootErrorBoundary.native.js.map +1 -1
  403. package/dist/cjs/views/RouteErrorView.native.js.map +1 -1
  404. package/dist/cjs/views/Screen.native.js.map +1 -1
  405. package/dist/cjs/views/ScrollBehavior.native.js.map +1 -1
  406. package/dist/cjs/views/ScrollBehavior.test.native.js.map +1 -1
  407. package/dist/cjs/views/SourceInspector.native.js.map +1 -1
  408. package/dist/cjs/views/SuspenseFallback.native.js.map +1 -1
  409. package/dist/cjs/views/Try.native.js.map +1 -1
  410. package/dist/cjs/vite/DevHead.native.js.map +1 -1
  411. package/dist/cjs/vite/cloudflareWranglerConfig.native.js.map +1 -1
  412. package/dist/cjs/vite/cloudflareWranglerConfig.test.native.js.map +1 -1
  413. package/dist/cjs/vite/constants.native.js.map +1 -1
  414. package/dist/cjs/vite/customNodeExternals.native.js.map +1 -1
  415. package/dist/cjs/vite/ensureTsConfig.native.js.map +1 -1
  416. package/dist/cjs/vite/findDepsToOptimize.native.js.map +1 -1
  417. package/dist/cjs/vite/getManifest.native.js.map +1 -1
  418. package/dist/cjs/vite/getManifest.test.native.js.map +1 -1
  419. package/dist/cjs/vite/loadConfig.native.js.map +1 -1
  420. package/dist/cjs/vite/makePluginWebOnly.native.js.map +1 -1
  421. package/dist/cjs/vite/one-server-only.test.native.js.map +1 -1
  422. package/dist/cjs/vite/one.native.js.map +1 -1
  423. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +1 -1
  424. package/dist/cjs/vite/plugins/bundledDevPlugin.native.js.map +1 -1
  425. package/dist/cjs/vite/plugins/clientTreeShakePlugin.native.js.map +1 -1
  426. package/dist/cjs/vite/plugins/clientTreeShakePlugin.test.native.js.map +1 -1
  427. package/dist/cjs/vite/plugins/criticalCSSPlugin.native.js.map +1 -1
  428. package/dist/cjs/vite/plugins/criticalCSSPlugin.test.native.js.map +1 -1
  429. package/dist/cjs/vite/plugins/devtoolsPlugin.native.js.map +1 -1
  430. package/dist/cjs/vite/plugins/environmentGuardPlugin.native.js.map +1 -1
  431. package/dist/cjs/vite/plugins/environmentGuardPlugin.test.native.js.map +1 -1
  432. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  433. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
  434. package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
  435. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  436. package/dist/cjs/vite/plugins/imageDataPlugin.native.js.map +1 -1
  437. package/dist/cjs/vite/plugins/imageDataPlugin.test.native.js.map +1 -1
  438. package/dist/cjs/vite/plugins/removeReactNativeWebAnimatedPlugin.native.js.map +1 -1
  439. package/dist/cjs/vite/plugins/routeModuleHmrPlugin.native.js.map +1 -1
  440. package/dist/cjs/vite/plugins/routeModuleHmrPlugin.test.native.js.map +1 -1
  441. package/dist/cjs/vite/plugins/sourceInspectorPlugin.cjs +7 -1
  442. package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js +7 -1
  443. package/dist/cjs/vite/plugins/sourceInspectorPlugin.native.js.map +1 -1
  444. package/dist/cjs/vite/plugins/sourceInspectorPlugin.test.cjs +15 -0
  445. package/dist/cjs/vite/plugins/sourceInspectorPlugin.test.native.js +16 -0
  446. package/dist/cjs/vite/plugins/sourceInspectorPlugin.test.native.js.map +1 -1
  447. package/dist/cjs/vite/plugins/useDomPlugin.native.js.map +1 -1
  448. package/dist/cjs/vite/plugins/virtualEntryConstants.native.js.map +1 -1
  449. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  450. package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
  451. package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js.map +1 -1
  452. package/dist/cjs/vite/plugins/workerdDevPlugin.native.js.map +1 -1
  453. package/dist/cjs/vite/plugins/workerdDevPlugin.test.native.js.map +1 -1
  454. package/dist/cjs/vite/resolveResponse.native.js.map +1 -1
  455. package/dist/cjs/vite/types.native.js.map +1 -1
  456. package/dist/cjs/vite-auto-warm.native.js.map +1 -1
  457. package/dist/cjs/vite.native.js.map +1 -1
  458. package/dist/cjs/zero/getQueryKey.native.js.map +1 -1
  459. package/dist/cjs/zero/isZeroQuery.native.js.map +1 -1
  460. package/dist/cjs/zero/resolveQuery.native.js.map +1 -1
  461. package/dist/cjs/zero/subscribeToQuery.native.js.map +1 -1
  462. package/dist/cjs/zero/types.native.js.map +1 -1
  463. package/dist/cjs/zero/useQuery.native.js.map +1 -1
  464. package/dist/cjs/zero/useQueryZero.native.js.map +1 -1
  465. package/dist/cjs/zero.native.js.map +1 -1
  466. package/dist/esm/createApp.native.js +25 -1
  467. package/dist/esm/createApp.native.js.map +1 -1
  468. package/dist/esm/fallbackViews/Sitemap.mjs +1 -1
  469. package/dist/esm/fallbackViews/Sitemap.mjs.map +1 -1
  470. package/dist/esm/fallbackViews/Sitemap.native.js +1 -1
  471. package/dist/esm/fallbackViews/Sitemap.native.js.map +1 -1
  472. package/dist/esm/fork/NavigationContainer.mjs +26 -52
  473. package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
  474. package/dist/esm/fork/NavigationContainer.native.js +30 -57
  475. package/dist/esm/fork/NavigationContainer.native.js.map +1 -1
  476. package/dist/esm/fork/getPathFromState.mjs.map +1 -1
  477. package/dist/esm/fork/useLinking.mjs +18 -15
  478. package/dist/esm/fork/useLinking.mjs.map +1 -1
  479. package/dist/esm/fork/useLinking.native.js +12 -21
  480. package/dist/esm/fork/useLinking.native.js.map +1 -1
  481. package/dist/esm/fork/useLinking.native.test.js +12 -17
  482. package/dist/esm/fork/useLinking.native.test.js.map +1 -1
  483. package/dist/esm/fork/useLinking.native.test.mjs +2 -2
  484. package/dist/esm/fork/useLinking.native.test.mjs.map +1 -1
  485. package/dist/esm/fork/useLinking.native.test.native.js +1 -1
  486. package/dist/esm/fork/useLinking.native.test.native.js.map +1 -1
  487. package/dist/esm/fork/validatePathConfig.mjs +9 -2
  488. package/dist/esm/fork/validatePathConfig.mjs.map +1 -1
  489. package/dist/esm/fork/validatePathConfig.native.js +9 -2
  490. package/dist/esm/fork/validatePathConfig.native.js.map +1 -1
  491. package/dist/esm/getReactNavigationConfig.mjs +48 -5
  492. package/dist/esm/getReactNavigationConfig.mjs.map +1 -1
  493. package/dist/esm/getReactNavigationConfig.native.js +54 -5
  494. package/dist/esm/getReactNavigationConfig.native.js.map +1 -1
  495. package/dist/esm/getURL.native.test.mjs +1 -1
  496. package/dist/esm/headless/__tests__/useStack.test.mjs +7 -15
  497. package/dist/esm/headless/__tests__/useStack.test.mjs.map +1 -1
  498. package/dist/esm/headless/__tests__/useStack.test.native.js +7 -15
  499. package/dist/esm/headless/__tests__/useStack.test.native.js.map +1 -1
  500. package/dist/esm/headless/useStack.mjs +1 -2
  501. package/dist/esm/headless/useStack.mjs.map +1 -1
  502. package/dist/esm/headless/useStack.native.js +1 -2
  503. package/dist/esm/headless/useStack.native.js.map +1 -1
  504. package/dist/esm/index.js.map +1 -1
  505. package/dist/esm/index.mjs.map +1 -1
  506. package/dist/esm/index.native.js.map +1 -1
  507. package/dist/esm/interfaces/router.mjs.map +1 -1
  508. package/dist/esm/interfaces/router.native.js.map +1 -1
  509. package/dist/esm/layouts/Stack.mjs +10 -13
  510. package/dist/esm/layouts/Stack.mjs.map +1 -1
  511. package/dist/esm/layouts/Stack.native.js +11 -14
  512. package/dist/esm/layouts/Stack.native.js.map +1 -1
  513. package/dist/esm/layouts/Tabs.native.js +4 -74
  514. package/dist/esm/layouts/Tabs.native.js.map +1 -1
  515. package/dist/esm/layouts/nativeTabsOptions.mjs +24 -0
  516. package/dist/esm/layouts/nativeTabsOptions.mjs.map +1 -0
  517. package/dist/esm/layouts/nativeTabsOptions.native.js +24 -0
  518. package/dist/esm/layouts/nativeTabsOptions.native.js.map +1 -0
  519. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.mjs +4 -1
  520. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.mjs.map +1 -1
  521. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.native.js +4 -1
  522. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.native.js.map +1 -1
  523. package/dist/esm/layouts/stack-utils/StackHeaderTitle.mjs +2 -2
  524. package/dist/esm/layouts/stack-utils/StackHeaderTitle.mjs.map +1 -1
  525. package/dist/esm/layouts/stack-utils/StackHeaderTitle.native.js +2 -2
  526. package/dist/esm/layouts/stack-utils/StackHeaderTitle.native.js.map +1 -1
  527. package/dist/esm/layouts/stack-utils/StackScreen.mjs +3 -6
  528. package/dist/esm/layouts/stack-utils/StackScreen.mjs.map +1 -1
  529. package/dist/esm/layouts/stack-utils/StackScreen.native.js +4 -7
  530. package/dist/esm/layouts/stack-utils/StackScreen.native.js.map +1 -1
  531. package/dist/esm/layouts/stack-utils/__tests__/composition.test.mjs +14 -14
  532. package/dist/esm/layouts/stack-utils/__tests__/composition.test.mjs.map +1 -1
  533. package/dist/esm/layouts/stack-utils/__tests__/composition.test.native.js +14 -14
  534. package/dist/esm/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
  535. package/dist/esm/layouts/stack-utils/index.mjs +1 -2
  536. package/dist/esm/layouts/stack-utils/index.mjs.map +1 -1
  537. package/dist/esm/layouts/stack-utils/index.native.js +1 -2
  538. package/dist/esm/layouts/stack-utils/index.native.js.map +1 -1
  539. package/dist/esm/layouts/withLayoutContext.mjs +0 -1
  540. package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
  541. package/dist/esm/layouts/withLayoutContext.native.js +0 -1
  542. package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
  543. package/dist/esm/layouts/withLayoutContext.test.mjs +18 -0
  544. package/dist/esm/layouts/withLayoutContext.test.mjs.map +1 -1
  545. package/dist/esm/layouts/withLayoutContext.test.native.js +24 -0
  546. package/dist/esm/layouts/withLayoutContext.test.native.js.map +1 -1
  547. package/dist/esm/link/useLoadedNavigation.mjs.map +1 -1
  548. package/dist/esm/link/useLoadedNavigation.native.js.map +1 -1
  549. package/dist/esm/router/Route.mjs +9 -3
  550. package/dist/esm/router/Route.mjs.map +1 -1
  551. package/dist/esm/router/Route.native.js +12 -3
  552. package/dist/esm/router/Route.native.js.map +1 -1
  553. package/dist/esm/router/findRouteNode.mjs +10 -10
  554. package/dist/esm/router/findRouteNode.mjs.map +1 -1
  555. package/dist/esm/router/findRouteNode.native.js +13 -29
  556. package/dist/esm/router/findRouteNode.native.js.map +1 -1
  557. package/dist/esm/router/findRouteNode.test.mjs +89 -0
  558. package/dist/esm/router/findRouteNode.test.mjs.map +1 -0
  559. package/dist/esm/router/findRouteNode.test.native.js +92 -0
  560. package/dist/esm/router/findRouteNode.test.native.js.map +1 -0
  561. package/dist/esm/router/getLinkingConfig.test.mjs +9 -0
  562. package/dist/esm/router/getLinkingConfig.test.mjs.map +1 -1
  563. package/dist/esm/router/getLinkingConfig.test.native.js +9 -0
  564. package/dist/esm/router/getLinkingConfig.test.native.js.map +1 -1
  565. package/dist/esm/router/getNormalizedStatePath.mjs +2 -1
  566. package/dist/esm/router/getNormalizedStatePath.mjs.map +1 -1
  567. package/dist/esm/router/getNormalizedStatePath.native.js +2 -1
  568. package/dist/esm/router/getNormalizedStatePath.native.js.map +1 -1
  569. package/dist/esm/router/getRouteInfo.mjs +5 -2
  570. package/dist/esm/router/getRouteInfo.mjs.map +1 -1
  571. package/dist/esm/router/getRouteInfo.native.js +5 -2
  572. package/dist/esm/router/getRouteInfo.native.js.map +1 -1
  573. package/dist/esm/router/getRouteInfo.test.mjs +57 -0
  574. package/dist/esm/router/getRouteInfo.test.mjs.map +1 -0
  575. package/dist/esm/router/getRouteInfo.test.native.js +63 -0
  576. package/dist/esm/router/getRouteInfo.test.native.js.map +1 -0
  577. package/dist/esm/router/hmrImport.native.test.mjs +1 -1
  578. package/dist/esm/router/isIndexPath.mjs +1 -1
  579. package/dist/esm/router/isIndexPath.mjs.map +1 -1
  580. package/dist/esm/router/isIndexPath.native.js +2 -1
  581. package/dist/esm/router/isIndexPath.native.js.map +1 -1
  582. package/dist/esm/router/isStateAwaitingNavigatorMount.mjs +2 -1
  583. package/dist/esm/router/isStateAwaitingNavigatorMount.mjs.map +1 -1
  584. package/dist/esm/router/isStateAwaitingNavigatorMount.native.js +2 -1
  585. package/dist/esm/router/isStateAwaitingNavigatorMount.native.js.map +1 -1
  586. package/dist/esm/router/path.mjs +1 -1
  587. package/dist/esm/router/path.mjs.map +1 -1
  588. package/dist/esm/router/path.native.js +1 -1
  589. package/dist/esm/router/path.native.js.map +1 -1
  590. package/dist/esm/router/routeHmr.native.js +2 -5
  591. package/dist/esm/router/routeHmr.native.js.map +1 -1
  592. package/dist/esm/router/routeHmr.native.test.js +21 -11
  593. package/dist/esm/router/routeHmr.native.test.js.map +1 -1
  594. package/dist/esm/router/routeHmr.native.test.mjs +24 -10
  595. package/dist/esm/router/routeHmr.native.test.mjs.map +1 -1
  596. package/dist/esm/router/routeHmr.native.test.native.js +27 -9
  597. package/dist/esm/router/routeHmr.native.test.native.js.map +1 -1
  598. package/dist/esm/router/router.mjs +11 -13
  599. package/dist/esm/router/router.mjs.map +1 -1
  600. package/dist/esm/router/router.native.js +12 -13
  601. package/dist/esm/router/router.native.js.map +1 -1
  602. package/dist/esm/router/useInitializeOneRouter.mjs.map +1 -1
  603. package/dist/esm/router/useInitializeOneRouter.native.js.map +1 -1
  604. package/dist/esm/router/useNavigation.mjs +32 -11
  605. package/dist/esm/router/useNavigation.mjs.map +1 -1
  606. package/dist/esm/router/useNavigation.native.js +34 -11
  607. package/dist/esm/router/useNavigation.native.js.map +1 -1
  608. package/dist/esm/router/useScreens.mjs +19 -20
  609. package/dist/esm/router/useScreens.mjs.map +1 -1
  610. package/dist/esm/router/useScreens.native.js +19 -20
  611. package/dist/esm/router/useScreens.native.js.map +1 -1
  612. package/dist/esm/router/useScreens.test.mjs +76 -0
  613. package/dist/esm/router/useScreens.test.mjs.map +1 -1
  614. package/dist/esm/router/useScreens.test.native.js +86 -0
  615. package/dist/esm/router/useScreens.test.native.js.map +1 -1
  616. package/dist/esm/router/useViteRoutes.mjs +3 -2
  617. package/dist/esm/router/useViteRoutes.mjs.map +1 -1
  618. package/dist/esm/router/useViteRoutes.native.js +3 -2
  619. package/dist/esm/router/useViteRoutes.native.js.map +1 -1
  620. package/dist/esm/router/utils/getNavigateAction.mjs +2 -2
  621. package/dist/esm/router/utils/getNavigateAction.mjs.map +1 -1
  622. package/dist/esm/router/utils/getNavigateAction.native.js +5 -4
  623. package/dist/esm/router/utils/getNavigateAction.native.js.map +1 -1
  624. package/dist/esm/router/utils/getNavigateAction.test.mjs +37 -6
  625. package/dist/esm/router/utils/getNavigateAction.test.mjs.map +1 -1
  626. package/dist/esm/router/utils/getNavigateAction.test.native.js +37 -6
  627. package/dist/esm/router/utils/getNavigateAction.test.native.js.map +1 -1
  628. package/dist/esm/router/web/WebStackView.mjs +1 -1
  629. package/dist/esm/router/web/WebStackView.mjs.map +1 -1
  630. package/dist/esm/router/web/WebStackView.native.js +1 -1
  631. package/dist/esm/router/web/WebStackView.native.js.map +1 -1
  632. package/dist/esm/router/web/__tests__/stackStateUtils.test.mjs +21 -1
  633. package/dist/esm/router/web/__tests__/stackStateUtils.test.mjs.map +1 -1
  634. package/dist/esm/router/web/__tests__/stackStateUtils.test.native.js +23 -1
  635. package/dist/esm/router/web/__tests__/stackStateUtils.test.native.js.map +1 -1
  636. package/dist/esm/router/web/stackStateUtils.mjs +1 -1
  637. package/dist/esm/router/web/stackStateUtils.mjs.map +1 -1
  638. package/dist/esm/router/web/stackStateUtils.native.js +1 -1
  639. package/dist/esm/router/web/stackStateUtils.native.js.map +1 -1
  640. package/dist/esm/ui/Slot.mjs.map +1 -1
  641. package/dist/esm/ui/Slot.native.js +1 -25
  642. package/dist/esm/ui/Slot.native.js.map +1 -1
  643. package/dist/esm/ui/TabContext.mjs.map +1 -1
  644. package/dist/esm/ui/TabContext.native.js.map +1 -1
  645. package/dist/esm/ui/TabList.mjs +1 -2
  646. package/dist/esm/ui/TabList.mjs.map +1 -1
  647. package/dist/esm/ui/TabList.native.js +2 -15
  648. package/dist/esm/ui/TabList.native.js.map +1 -1
  649. package/dist/esm/ui/TabSlot.mjs.map +1 -1
  650. package/dist/esm/ui/TabSlot.native.js +12 -44
  651. package/dist/esm/ui/TabSlot.native.js.map +1 -1
  652. package/dist/esm/ui/TabTrigger.mjs.map +1 -1
  653. package/dist/esm/ui/TabTrigger.native.js +25 -23
  654. package/dist/esm/ui/TabTrigger.native.js.map +1 -1
  655. package/dist/esm/ui/Tabs.mjs +1 -2
  656. package/dist/esm/ui/Tabs.mjs.map +1 -1
  657. package/dist/esm/ui/Tabs.native.js +2 -9
  658. package/dist/esm/ui/Tabs.native.js.map +1 -1
  659. package/dist/esm/ui/Tabs.shared.mjs +1 -4
  660. package/dist/esm/ui/Tabs.shared.mjs.map +1 -1
  661. package/dist/esm/ui/Tabs.shared.native.js +1 -4
  662. package/dist/esm/ui/Tabs.shared.native.js.map +1 -1
  663. package/dist/esm/ui/common.mjs +6 -5
  664. package/dist/esm/ui/common.mjs.map +1 -1
  665. package/dist/esm/ui/common.native.js +10 -7
  666. package/dist/esm/ui/common.native.js.map +1 -1
  667. package/dist/esm/ui/index.native.js +1 -1
  668. package/dist/esm/ui/index.native.js.map +1 -1
  669. package/dist/esm/useFocusEffect.mjs +8 -2
  670. package/dist/esm/useFocusEffect.mjs.map +1 -1
  671. package/dist/esm/useFocusEffect.native.js +10 -5
  672. package/dist/esm/useFocusEffect.native.js.map +1 -1
  673. package/dist/esm/views/Navigator.mjs +2 -19
  674. package/dist/esm/views/Navigator.mjs.map +1 -1
  675. package/dist/esm/views/Navigator.native.js +2 -23
  676. package/dist/esm/views/Navigator.native.js.map +1 -1
  677. package/dist/esm/vite/one.mjs.map +1 -1
  678. package/dist/esm/vite/one.native.js.map +1 -1
  679. package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs +7 -2
  680. package/dist/esm/vite/plugins/sourceInspectorPlugin.mjs.map +1 -1
  681. package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js +7 -2
  682. package/dist/esm/vite/plugins/sourceInspectorPlugin.native.js.map +1 -1
  683. package/dist/esm/vite/plugins/sourceInspectorPlugin.test.mjs +16 -1
  684. package/dist/esm/vite/plugins/sourceInspectorPlugin.test.mjs.map +1 -1
  685. package/dist/esm/vite/plugins/sourceInspectorPlugin.test.native.js +17 -1
  686. package/dist/esm/vite/plugins/sourceInspectorPlugin.test.native.js.map +1 -1
  687. package/package.json +32 -47
  688. package/src/__mocks__/@react-navigation/native-stack.ts +2 -2
  689. package/src/createApp.native.tsx +23 -1
  690. package/src/fallbackViews/Sitemap.tsx +1 -1
  691. package/src/fallbackViews/Sitemap.web.tsx +1 -1
  692. package/src/fork/NavigationContainer.tsx +36 -80
  693. package/src/fork/getPathFromState.ts +3 -3
  694. package/src/fork/useLinking.native.test.tsx +11 -15
  695. package/src/fork/useLinking.native.ts +13 -27
  696. package/src/fork/useLinking.ts +24 -21
  697. package/src/fork/validatePathConfig.ts +11 -4
  698. package/src/getReactNavigationConfig.ts +96 -4
  699. package/src/headless/__tests__/useStack.test.tsx +4 -13
  700. package/src/headless/types.ts +1 -2
  701. package/src/headless/useStack.ts +1 -2
  702. package/src/index.ts +0 -12
  703. package/src/interfaces/router.ts +2 -2
  704. package/src/layouts/Drawer.tsx +4 -2
  705. package/src/layouts/Stack.tsx +17 -36
  706. package/src/layouts/Tabs.tsx +6 -81
  707. package/src/layouts/nativeTabsOptions.ts +38 -0
  708. package/src/layouts/stack-utils/README.md +0 -1
  709. package/src/layouts/stack-utils/StackHeaderBackButton.tsx +1 -1
  710. package/src/layouts/stack-utils/StackHeaderTitle.tsx +2 -2
  711. package/src/layouts/stack-utils/StackScreen.tsx +5 -26
  712. package/src/layouts/stack-utils/__tests__/composition.test.tsx +14 -14
  713. package/src/layouts/stack-utils/index.tsx +0 -17
  714. package/src/layouts/withLayoutContext.test.tsx +16 -0
  715. package/src/layouts/withLayoutContext.tsx +2 -2
  716. package/src/link/useLoadedNavigation.ts +2 -1
  717. package/src/router/Route.tsx +12 -2
  718. package/src/router/findRouteNode.test.ts +92 -0
  719. package/src/router/findRouteNode.ts +22 -17
  720. package/src/router/getLinkingConfig.test.ts +13 -0
  721. package/src/router/getNormalizedStatePath.tsx +2 -1
  722. package/src/router/getRouteInfo.test.ts +54 -0
  723. package/src/router/getRouteInfo.ts +5 -2
  724. package/src/router/isIndexPath.ts +5 -2
  725. package/src/router/isStateAwaitingNavigatorMount.ts +4 -1
  726. package/src/router/path.ts +1 -1
  727. package/src/router/routeHmr.native.test.ts +23 -11
  728. package/src/router/routeHmr.native.ts +6 -4
  729. package/src/router/router.ts +10 -9
  730. package/src/router/useInitializeOneRouter.ts +2 -2
  731. package/src/router/useNavigation.ts +49 -14
  732. package/src/router/useScreens.test.tsx +72 -0
  733. package/src/router/useScreens.tsx +15 -21
  734. package/src/router/useViteRoutes.tsx +3 -2
  735. package/src/router/utils/getNavigateAction.test.ts +28 -6
  736. package/src/router/utils/getNavigateAction.ts +6 -3
  737. package/src/router/web/WebStackView.tsx +1 -1
  738. package/src/router/web/__tests__/stackStateUtils.test.ts +23 -1
  739. package/src/router/web/stackStateUtils.ts +3 -2
  740. package/src/ui/README.md +8 -16
  741. package/src/ui/Slot.tsx +4 -38
  742. package/src/ui/TabContext.tsx +2 -7
  743. package/src/ui/TabList.tsx +7 -19
  744. package/src/ui/TabSlot.tsx +17 -60
  745. package/src/ui/TabTrigger.tsx +22 -30
  746. package/src/ui/Tabs.shared.tsx +3 -6
  747. package/src/ui/Tabs.tsx +3 -10
  748. package/src/ui/common.tsx +7 -5
  749. package/src/ui/index.native.ts +1 -0
  750. package/src/useFocusEffect.ts +14 -4
  751. package/src/views/Navigator.tsx +5 -21
  752. package/src/vite/one.ts +3 -1
  753. package/src/vite/plugins/sourceInspectorPlugin.test.ts +39 -1
  754. package/src/vite/plugins/sourceInspectorPlugin.ts +24 -3
  755. package/types/__mocks__/@react-navigation/native-stack.d.ts +2 -2
  756. package/types/__mocks__/@react-navigation/native-stack.d.ts.map +1 -1
  757. package/types/createApp.native.d.ts.map +1 -1
  758. package/types/fork/NavigationContainer.d.ts +2 -7
  759. package/types/fork/NavigationContainer.d.ts.map +1 -1
  760. package/types/fork/findFocusedRoute.d.ts +12 -2
  761. package/types/fork/findFocusedRoute.d.ts.map +1 -1
  762. package/types/fork/useLinking.d.ts +1 -1
  763. package/types/fork/useLinking.d.ts.map +1 -1
  764. package/types/fork/useLinking.native.d.ts +4 -20
  765. package/types/fork/useLinking.native.d.ts.map +1 -1
  766. package/types/fork/validatePathConfig.d.ts.map +1 -1
  767. package/types/getReactNavigationConfig.d.ts +10 -0
  768. package/types/getReactNavigationConfig.d.ts.map +1 -1
  769. package/types/headless/types.d.ts +1 -4
  770. package/types/headless/types.d.ts.map +1 -1
  771. package/types/headless/useStack.d.ts.map +1 -1
  772. package/types/index.d.ts +1 -1
  773. package/types/index.d.ts.map +1 -1
  774. package/types/interfaces/router.d.ts +2 -2
  775. package/types/interfaces/router.d.ts.map +1 -1
  776. package/types/layouts/Drawer.d.ts +3 -108
  777. package/types/layouts/Drawer.d.ts.map +1 -1
  778. package/types/layouts/Drawer.web.d.ts +189 -2
  779. package/types/layouts/Drawer.web.d.ts.map +1 -1
  780. package/types/layouts/Stack.d.ts +7 -120
  781. package/types/layouts/Stack.d.ts.map +1 -1
  782. package/types/layouts/Tabs.d.ts +5 -100
  783. package/types/layouts/Tabs.d.ts.map +1 -1
  784. package/types/layouts/nativeTabsOptions.d.ts +8 -0
  785. package/types/layouts/nativeTabsOptions.d.ts.map +1 -0
  786. package/types/layouts/stack-navigator.d.ts +1 -2
  787. package/types/layouts/stack-navigator.d.ts.map +1 -1
  788. package/types/layouts/stack-navigator.web.d.ts +1 -1
  789. package/types/layouts/stack-navigator.web.d.ts.map +1 -1
  790. package/types/layouts/stack-utils/StackScreen.d.ts +1 -2
  791. package/types/layouts/stack-utils/StackScreen.d.ts.map +1 -1
  792. package/types/layouts/stack-utils/index.d.ts +1 -3
  793. package/types/layouts/stack-utils/index.d.ts.map +1 -1
  794. package/types/layouts/withLayoutContext.d.ts +1 -2
  795. package/types/layouts/withLayoutContext.d.ts.map +1 -1
  796. package/types/link/useLoadedNavigation.d.ts +2 -2
  797. package/types/link/useLoadedNavigation.d.ts.map +1 -1
  798. package/types/router/Route.d.ts +1 -0
  799. package/types/router/Route.d.ts.map +1 -1
  800. package/types/router/findRouteNode.d.ts +4 -1
  801. package/types/router/findRouteNode.d.ts.map +1 -1
  802. package/types/router/findRouteNode.test.d.ts +2 -0
  803. package/types/router/findRouteNode.test.d.ts.map +1 -0
  804. package/types/router/getNormalizedStatePath.d.ts.map +1 -1
  805. package/types/router/getRouteInfo.d.ts +5 -0
  806. package/types/router/getRouteInfo.d.ts.map +1 -1
  807. package/types/router/getRouteInfo.test.d.ts +2 -0
  808. package/types/router/getRouteInfo.test.d.ts.map +1 -0
  809. package/types/router/isIndexPath.d.ts.map +1 -1
  810. package/types/router/isStateAwaitingNavigatorMount.d.ts.map +1 -1
  811. package/types/router/path.d.ts +1 -0
  812. package/types/router/path.d.ts.map +1 -1
  813. package/types/router/routeHmr.native.d.ts.map +1 -1
  814. package/types/router/router.d.ts +2 -2
  815. package/types/router/router.d.ts.map +1 -1
  816. package/types/router/useNavigation.d.ts +4 -2
  817. package/types/router/useNavigation.d.ts.map +1 -1
  818. package/types/router/useScreens.d.ts +25 -1
  819. package/types/router/useScreens.d.ts.map +1 -1
  820. package/types/router/useViteRoutes.d.ts.map +1 -1
  821. package/types/router/utils/getNavigateAction.d.ts.map +1 -1
  822. package/types/router/web/WebStackNavigator.d.ts +1 -1
  823. package/types/router/web/WebStackNavigator.d.ts.map +1 -1
  824. package/types/router/web/stackStateUtils.d.ts +2 -1
  825. package/types/router/web/stackStateUtils.d.ts.map +1 -1
  826. package/types/ui/Slot.d.ts +2 -3
  827. package/types/ui/Slot.d.ts.map +1 -1
  828. package/types/ui/TabContext.d.ts +36 -84
  829. package/types/ui/TabContext.d.ts.map +1 -1
  830. package/types/ui/TabList.d.ts +4 -5
  831. package/types/ui/TabList.d.ts.map +1 -1
  832. package/types/ui/TabRouter.d.ts +31 -33
  833. package/types/ui/TabRouter.d.ts.map +1 -1
  834. package/types/ui/TabSlot.d.ts +5 -10
  835. package/types/ui/TabSlot.d.ts.map +1 -1
  836. package/types/ui/TabTrigger.d.ts +3 -2
  837. package/types/ui/TabTrigger.d.ts.map +1 -1
  838. package/types/ui/Tabs.d.ts.map +1 -1
  839. package/types/ui/Tabs.shared.d.ts +29 -137
  840. package/types/ui/Tabs.shared.d.ts.map +1 -1
  841. package/types/ui/common.d.ts +1 -1
  842. package/types/ui/common.d.ts.map +1 -1
  843. package/types/ui/index.native.d.ts +2 -0
  844. package/types/ui/index.native.d.ts.map +1 -0
  845. package/types/useFocusEffect.d.ts.map +1 -1
  846. package/types/views/Navigator.d.ts.map +1 -1
  847. package/types/views/Protected.d.ts +9 -1
  848. package/types/views/Protected.d.ts.map +1 -1
  849. package/types/vite/one.d.ts.map +1 -1
  850. package/types/vite/plugins/sourceInspectorPlugin.d.ts +9 -0
  851. package/types/vite/plugins/sourceInspectorPlugin.d.ts.map +1 -1
  852. package/dist/cjs/layouts/NativeTabs.cjs +0 -65
  853. package/dist/cjs/layouts/NativeTabs.native.js +0 -68
  854. package/dist/cjs/layouts/NativeTabs.native.js.map +0 -1
  855. package/dist/cjs/layouts/NativeTabs.test.cjs +0 -24
  856. package/dist/cjs/layouts/NativeTabs.test.native.js +0 -35
  857. package/dist/cjs/layouts/NativeTabs.test.native.js.map +0 -1
  858. package/dist/cjs/layouts/stack-utils/StackToolbar.cjs +0 -124
  859. package/dist/cjs/layouts/stack-utils/StackToolbar.native.js +0 -129
  860. package/dist/cjs/layouts/stack-utils/StackToolbar.native.js.map +0 -1
  861. package/dist/cjs/layouts/stack-utils/StackToolbar.shared.cjs +0 -57
  862. package/dist/cjs/layouts/stack-utils/StackToolbar.shared.native.js +0 -61
  863. package/dist/cjs/layouts/stack-utils/StackToolbar.shared.native.js.map +0 -1
  864. package/dist/cjs/layouts/stack-utils/StackToolbar.types.cjs +0 -18
  865. package/dist/cjs/layouts/stack-utils/StackToolbar.types.native.js +0 -21
  866. package/dist/cjs/layouts/stack-utils/StackToolbar.types.native.js.map +0 -1
  867. package/dist/cjs/layouts/stack-utils/StackToolbarImplementation.cjs +0 -39
  868. package/dist/cjs/layouts/stack-utils/StackToolbarImplementation.native.js +0 -41
  869. package/dist/cjs/layouts/stack-utils/StackToolbarImplementation.native.js.map +0 -1
  870. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.test.cjs +0 -66
  871. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.test.native.js +0 -99
  872. package/dist/cjs/layouts/stack-utils/__tests__/StackToolbar.test.native.js.map +0 -1
  873. package/dist/cjs/native-tabs.cjs +0 -29
  874. package/dist/cjs/native-tabs.native.js +0 -32
  875. package/dist/cjs/native-tabs.native.js.map +0 -1
  876. package/dist/cjs/stack-toolbar-implementation.cjs +0 -30
  877. package/dist/cjs/stack-toolbar-implementation.native.js +0 -33
  878. package/dist/cjs/stack-toolbar-implementation.native.js.map +0 -1
  879. package/dist/cjs/views/OneStackRouter.cjs +0 -46
  880. package/dist/cjs/views/OneStackRouter.native.js +0 -39
  881. package/dist/cjs/views/OneStackRouter.native.js.map +0 -1
  882. package/dist/esm/layouts/NativeTabs.mjs +0 -28
  883. package/dist/esm/layouts/NativeTabs.mjs.map +0 -1
  884. package/dist/esm/layouts/NativeTabs.native.js +0 -28
  885. package/dist/esm/layouts/NativeTabs.native.js.map +0 -1
  886. package/dist/esm/layouts/NativeTabs.test.mjs +0 -24
  887. package/dist/esm/layouts/NativeTabs.test.mjs.map +0 -1
  888. package/dist/esm/layouts/NativeTabs.test.native.js +0 -32
  889. package/dist/esm/layouts/NativeTabs.test.native.js.map +0 -1
  890. package/dist/esm/layouts/stack-utils/StackToolbar.mjs +0 -89
  891. package/dist/esm/layouts/stack-utils/StackToolbar.mjs.map +0 -1
  892. package/dist/esm/layouts/stack-utils/StackToolbar.native.js +0 -92
  893. package/dist/esm/layouts/stack-utils/StackToolbar.native.js.map +0 -1
  894. package/dist/esm/layouts/stack-utils/StackToolbar.shared.mjs +0 -31
  895. package/dist/esm/layouts/stack-utils/StackToolbar.shared.mjs.map +0 -1
  896. package/dist/esm/layouts/stack-utils/StackToolbar.shared.native.js +0 -32
  897. package/dist/esm/layouts/stack-utils/StackToolbar.shared.native.js.map +0 -1
  898. package/dist/esm/layouts/stack-utils/StackToolbar.types.mjs +0 -2
  899. package/dist/esm/layouts/stack-utils/StackToolbar.types.mjs.map +0 -1
  900. package/dist/esm/layouts/stack-utils/StackToolbar.types.native.js +0 -2
  901. package/dist/esm/layouts/stack-utils/StackToolbar.types.native.js.map +0 -1
  902. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.mjs +0 -12
  903. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.mjs.map +0 -1
  904. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.native.js +0 -12
  905. package/dist/esm/layouts/stack-utils/StackToolbarImplementation.native.js.map +0 -1
  906. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.mjs +0 -67
  907. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.mjs.map +0 -1
  908. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.native.js +0 -73
  909. package/dist/esm/layouts/stack-utils/__tests__/StackToolbar.test.native.js.map +0 -1
  910. package/dist/esm/native-tabs.mjs +0 -3
  911. package/dist/esm/native-tabs.mjs.map +0 -1
  912. package/dist/esm/native-tabs.native.js +0 -3
  913. package/dist/esm/native-tabs.native.js.map +0 -1
  914. package/dist/esm/stack-toolbar-implementation.mjs +0 -3
  915. package/dist/esm/stack-toolbar-implementation.mjs.map +0 -1
  916. package/dist/esm/stack-toolbar-implementation.native.js +0 -3
  917. package/dist/esm/stack-toolbar-implementation.native.js.map +0 -1
  918. package/dist/esm/views/OneStackRouter.mjs +0 -21
  919. package/dist/esm/views/OneStackRouter.mjs.map +0 -1
  920. package/dist/esm/views/OneStackRouter.native.js +0 -11
  921. package/dist/esm/views/OneStackRouter.native.js.map +0 -1
  922. package/src/layouts/NativeTabs.test.ts +0 -30
  923. package/src/layouts/NativeTabs.tsx +0 -46
  924. package/src/layouts/stack-utils/StackToolbar.shared.ts +0 -44
  925. package/src/layouts/stack-utils/StackToolbar.tsx +0 -134
  926. package/src/layouts/stack-utils/StackToolbar.types.ts +0 -100
  927. package/src/layouts/stack-utils/StackToolbarImplementation.tsx +0 -39
  928. package/src/layouts/stack-utils/__tests__/StackToolbar.test.tsx +0 -70
  929. package/src/native-tabs.ts +0 -1
  930. package/src/stack-toolbar-implementation.ts +0 -8
  931. package/src/ui/Slot.web.tsx +0 -9
  932. package/src/ui/TabList.web.tsx +0 -27
  933. package/src/ui/TabSlot.web.tsx +0 -90
  934. package/src/ui/TabTrigger.web.tsx +0 -71
  935. package/src/ui/Tabs.web.tsx +0 -40
  936. package/src/views/OneStackRouter.tsx +0 -75
  937. package/types/layouts/NativeTabs.d.ts +0 -8
  938. package/types/layouts/NativeTabs.d.ts.map +0 -1
  939. package/types/layouts/NativeTabs.test.d.ts +0 -2
  940. package/types/layouts/NativeTabs.test.d.ts.map +0 -1
  941. package/types/layouts/stack-utils/StackToolbar.d.ts +0 -28
  942. package/types/layouts/stack-utils/StackToolbar.d.ts.map +0 -1
  943. package/types/layouts/stack-utils/StackToolbar.shared.d.ts +0 -5
  944. package/types/layouts/stack-utils/StackToolbar.shared.d.ts.map +0 -1
  945. package/types/layouts/stack-utils/StackToolbar.types.d.ts +0 -83
  946. package/types/layouts/stack-utils/StackToolbar.types.d.ts.map +0 -1
  947. package/types/layouts/stack-utils/StackToolbarImplementation.d.ts +0 -12
  948. package/types/layouts/stack-utils/StackToolbarImplementation.d.ts.map +0 -1
  949. package/types/native-tabs.d.ts +0 -2
  950. package/types/native-tabs.d.ts.map +0 -1
  951. package/types/stack-toolbar-implementation.d.ts +0 -3
  952. package/types/stack-toolbar-implementation.d.ts.map +0 -1
  953. package/types/ui/Slot.web.d.ts +0 -5
  954. package/types/ui/Slot.web.d.ts.map +0 -1
  955. package/types/ui/TabList.web.d.ts +0 -11
  956. package/types/ui/TabList.web.d.ts.map +0 -1
  957. package/types/ui/TabSlot.web.d.ts +0 -24
  958. package/types/ui/TabSlot.web.d.ts.map +0 -1
  959. package/types/ui/TabTrigger.web.d.ts +0 -11
  960. package/types/ui/TabTrigger.web.d.ts.map +0 -1
  961. package/types/ui/Tabs.web.d.ts +0 -10
  962. package/types/ui/Tabs.web.d.ts.map +0 -1
  963. package/types/views/OneStackRouter.d.ts +0 -3
  964. package/types/views/OneStackRouter.d.ts.map +0 -1
@@ -137,3 +137,75 @@ describe('route SuspenseFallback', () => {
137
137
  expect(renderer!.toJSON()).toBeNull()
138
138
  })
139
139
  })
140
+
141
+ describe('ErrorBoundary route identity', () => {
142
+ it('preserves page state across a re-render when the route exports ErrorBoundary', async () => {
143
+ let mounts = 0
144
+ function Page() {
145
+ const [count, setCount] = React.useState(0)
146
+ React.useEffect(() => {
147
+ mounts += 1
148
+ }, [])
149
+ return (
150
+ <button data-count={count} onClick={() => setCount((value) => value + 1)}>
151
+ {count}
152
+ </button>
153
+ )
154
+ }
155
+ function ErrorBoundary() {
156
+ return <div data-error="1" />
157
+ }
158
+
159
+ const node = createRouteNode('spa', 'onboarding', './auth/onboarding.tsx', () => ({
160
+ default: Page,
161
+ ErrorBoundary,
162
+ }))
163
+ const Route = getQualifiedRouteComponent(node)
164
+
165
+ function Harness({ tick }: { tick: number }) {
166
+ return <Route tick={tick} />
167
+ }
168
+
169
+ let renderer: TestRenderer.ReactTestRenderer
170
+ await act(async () => {
171
+ renderer = TestRenderer.create(<Harness tick={0} />)
172
+ })
173
+
174
+ const button = renderer!.root.findByType('button')
175
+ expect(button.props['data-count']).toBe(0)
176
+ await act(async () => {
177
+ button.props.onClick()
178
+ })
179
+ expect(renderer!.root.findByType('button').props['data-count']).toBe(1)
180
+ expect(mounts).toBe(1)
181
+
182
+ await act(async () => {
183
+ renderer.update(<Harness tick={1} />)
184
+ })
185
+
186
+ expect(renderer!.root.findByType('button').props['data-count']).toBe(1)
187
+ expect(mounts).toBe(1)
188
+ })
189
+
190
+ it('still renders the exported ErrorBoundary when the page throws', async () => {
191
+ function Page(): React.ReactNode {
192
+ throw new Error('boom')
193
+ }
194
+ function ErrorBoundary({ error }: { error: Error; retry: () => Promise<void> }) {
195
+ return <div data-caught={error.message} />
196
+ }
197
+
198
+ const node = createRouteNode('spa', 'broken', './broken.tsx', () => ({
199
+ default: Page,
200
+ ErrorBoundary,
201
+ }))
202
+ const Route = getQualifiedRouteComponent(node)
203
+
204
+ let renderer: TestRenderer.ReactTestRenderer
205
+ await act(async () => {
206
+ renderer = TestRenderer.create(<Route />)
207
+ })
208
+
209
+ expect(renderer!.root.findByProps({ 'data-caught': 'boom' })).toBeTruthy()
210
+ })
211
+ })
@@ -20,6 +20,7 @@ import type { SuspenseFallbackProps } from '../views/SuspenseFallback'
20
20
  import { Try } from '../views/Try'
21
21
  import { DevHead } from '../vite/DevHead'
22
22
  import { getServerContext, useServerContext } from '../vite/one-server-only'
23
+ import { getReactNavigationRouteName } from '../getReactNavigationConfig'
23
24
  import { filterRootHTML } from './filterRootHTML'
24
25
  import {
25
26
  type DynamicConvention,
@@ -350,26 +351,16 @@ export function useSortedScreens(
350
351
  }
351
352
 
352
353
  function fromImport({ ErrorBoundary, SuspenseFallback, ...component }: LoadedRoute) {
353
- if (ErrorBoundary) {
354
- return {
355
- default: React.forwardRef((props: any, ref: any) => {
356
- const children = React.createElement(getPageExport(component) || EmptyRoute, {
357
- ...props,
358
- ref,
359
- })
360
- return <Try catch={ErrorBoundary}>{children}</Try>
361
- }),
362
- SuspenseFallback,
363
- }
364
- }
354
+ // keep ErrorBoundary on the returned module and wrap it in JSX below.
355
+ // a new forwardRef here remounts the route on every ScreenComponent render.
365
356
  if (process.env.NODE_ENV !== 'production') {
366
357
  const exported = getPageExport(component)
367
358
  if (exported && typeof exported === 'object' && Object.keys(exported).length === 0) {
368
- return { default: EmptyRoute, SuspenseFallback }
359
+ return { default: EmptyRoute, ErrorBoundary, SuspenseFallback }
369
360
  }
370
361
  }
371
362
 
372
- return { default: getPageExport(component), SuspenseFallback }
363
+ return { default: getPageExport(component), ErrorBoundary, SuspenseFallback }
373
364
  }
374
365
 
375
366
  function RouteSuspenseFallback({
@@ -422,9 +413,9 @@ export function getQualifiedRouteComponent(value: RouteNode) {
422
413
  }, [])
423
414
  }
424
415
 
425
- // native Fast Refresh: subscribe to the route-hot epoch (the routeHmr.native
426
- // store bumps it when vxrn reports a route module update) so this component
427
- // re-renders and re-runs loadRoute() to pick up the edited module's exports
416
+ // native Fast Refresh: subscribe to the route-hot epoch. route file patches
417
+ // are applied in place and do not bump it; a bump re-runs loadRoute() and
418
+ // remounts the screen.
428
419
  if (
429
420
  process.env.NODE_ENV === 'development' &&
430
421
  process.env.TAMAGUI_TARGET === 'native'
@@ -451,7 +442,8 @@ export function getQualifiedRouteComponent(value: RouteNode) {
451
442
  }
452
443
 
453
444
  const res = fromImport(value.loadRoute())
454
- const Component = getPageExport(res) as React.ComponentType<any>
445
+ const Component = (res.default || EmptyRoute) as React.ComponentType<any>
446
+ const CatchBoundary = res.ErrorBoundary
455
447
  const LayoutSuspenseFallback =
456
448
  value.type === 'layout' ? res.SuspenseFallback : undefined
457
449
  const match =
@@ -491,9 +483,10 @@ export function getQualifiedRouteComponent(value: RouteNode) {
491
483
  />
492
484
  )
493
485
  } else {
486
+ const page = <Component {...props} {...slotProps} {...loaderDataProps} ref={ref} />
494
487
  rendered = (
495
488
  <RouteErrorBoundary routeName={value.route}>
496
- <Component {...props} {...slotProps} {...loaderDataProps} ref={ref} />
489
+ {CatchBoundary ? <Try catch={CatchBoundary}>{page}</Try> : page}
497
490
  </RouteErrorBoundary>
498
491
  )
499
492
  }
@@ -638,13 +631,14 @@ function routeToScreen(
638
631
  route: RouteNode,
639
632
  { options, ...props }: Partial<ScreenProps> = {}
640
633
  ) {
634
+ const navigationRouteName = getReactNavigationRouteName(route)
641
635
  return (
642
636
  <Screen
643
637
  // Users can override the screen getId function.
644
638
  getId={createGetIdForRoute(route)}
645
639
  {...props}
646
- name={route.route}
647
- key={route.route}
640
+ name={navigationRouteName}
641
+ key={navigationRouteName}
648
642
  options={(args) => {
649
643
  // Only eager load generated components
650
644
  const staticOptions = route.generated ? route.loadRoute()?.getNavOptions : null
@@ -227,17 +227,18 @@ export function globbedRoutesToRouteContext(
227
227
  })
228
228
  },
229
229
  clearFile: (file: string) => {
230
- hmrVersion++
231
230
  const normalizedFile = file.replace(/\\/g, '/').replace(/^\//, '')
232
231
  const routeId = moduleKeys.find(
233
232
  (key) =>
234
233
  routePaths[key].replace(/\\/g, '/').replace(/^\//, '') === normalizedFile
235
234
  )
236
- if (!routeId) return
235
+ if (!routeId) return false
237
236
 
237
+ hmrVersion++
238
238
  delete loadedRoutes[routeId]
239
239
  delete promises[routeId]
240
240
  delete preloadedModules[routePaths[routeId]]
241
+ return true
241
242
  },
242
243
  getVersion: () => hmrVersion,
243
244
  }
@@ -24,7 +24,7 @@ describe('getNavigateAction', () => {
24
24
  key: 'page-1-Gc-TeIdZmx_jAcRD-SGcs',
25
25
  },
26
26
  ],
27
- preloadedRoutes: [],
27
+ retainedRouteKeys: [],
28
28
  }
29
29
 
30
30
  const action = getNavigateAction(actionState, navigationState)
@@ -36,6 +36,28 @@ describe('getNavigateAction', () => {
36
36
  })
37
37
  })
38
38
 
39
+ it('uses the focused route when the desired state includes a preloaded route', () => {
40
+ const actionState = {
41
+ index: 0,
42
+ routes: [{ name: 'page-2' }, { name: 'preloaded-page' }],
43
+ }
44
+ const navigationState = {
45
+ stale: false as const,
46
+ type: 'stack',
47
+ key: 'stack-pWRo04',
48
+ index: 0,
49
+ routeNames: ['page-1', 'page-2', 'preloaded-page'],
50
+ routes: [{ name: 'page-1', key: 'page-1-key' }],
51
+ retainedRouteKeys: [],
52
+ }
53
+
54
+ expect(getNavigateAction(actionState, navigationState)).toStrictEqual({
55
+ type: 'NAVIGATE',
56
+ target: 'stack-pWRo04',
57
+ payload: { key: undefined, name: 'page-2', params: {} },
58
+ })
59
+ })
60
+
39
61
  it('handles params', () => {
40
62
  const actionState = {
41
63
  routes: [
@@ -61,7 +83,7 @@ describe('getNavigateAction', () => {
61
83
  key: 'page-1-Gc-TeIdZmx_jAcRD-SGcs',
62
84
  },
63
85
  ],
64
- preloadedRoutes: [],
86
+ retainedRouteKeys: [],
65
87
  }
66
88
 
67
89
  const action = getNavigateAction(actionState, navigationState)
@@ -115,7 +137,7 @@ describe('getNavigateAction', () => {
115
137
  key: 'index-Kyz4PdQ7ZAvE0XFhBWydM',
116
138
  },
117
139
  ],
118
- preloadedRoutes: [],
140
+ retainedRouteKeys: [],
119
141
  }
120
142
 
121
143
  const action = getNavigateAction(actionState, navigationState)
@@ -184,7 +206,7 @@ describe('getNavigateAction', () => {
184
206
  key: 'index-Kyz4PdQ7ZAvE0XFhBWydM',
185
207
  },
186
208
  ],
187
- preloadedRoutes: [],
209
+ retainedRouteKeys: [],
188
210
  }
189
211
 
190
212
  const action = getNavigateAction(actionState, navigationState)
@@ -276,7 +298,7 @@ describe('getNavigateAction', () => {
276
298
  },
277
299
  },
278
300
  ],
279
- preloadedRoutes: [],
301
+ retainedRouteKeys: [],
280
302
  }
281
303
 
282
304
  const action = getNavigateAction(actionState, navigationState)
@@ -315,7 +337,7 @@ describe('getNavigateAction', () => {
315
337
  key: 'page-1-Gc-TeIdZmx_jAcRD-SGcs',
316
338
  },
317
339
  ],
318
- preloadedRoutes: [],
340
+ retainedRouteKeys: [],
319
341
  }
320
342
 
321
343
  const action = getNavigateAction(actionState, navigationState, 'PUSH')
@@ -34,7 +34,8 @@ export function getNavigateAction(
34
34
  while (actionState && navigationState) {
35
35
  const stateRoute = navigationState.routes[navigationState.index]
36
36
 
37
- actionStateRoute = actionState.routes[actionState.routes.length - 1]
37
+ actionStateRoute =
38
+ actionState.routes[actionState.index ?? actionState.routes.length - 1]
38
39
 
39
40
  const childState = actionStateRoute.state
40
41
  const nextNavigationState = stateRoute.state
@@ -54,7 +55,7 @@ export function getNavigateAction(
54
55
  break
55
56
  }
56
57
 
57
- actionState = childState
58
+ actionState = childState as OneRouter.ResultState
58
59
  navigationState = nextNavigationState as NavigationState
59
60
  }
60
61
 
@@ -73,7 +74,9 @@ export function getNavigateAction(
73
74
  payload.params = { ...actionStateRoute.params }
74
75
 
75
76
  actionStateRoute =
76
- actionStateRoute.state?.routes[actionStateRoute.state?.routes.length - 1]
77
+ actionStateRoute.state?.routes[
78
+ actionStateRoute.state.index ?? actionStateRoute.state.routes.length - 1
79
+ ]
77
80
 
78
81
  payload.params ??= {}
79
82
  payload = payload.params
@@ -103,7 +103,7 @@ function HeadlessStackView({
103
103
  state.routes.slice(0, lastBaseIndex + 1).map((route) => route.key)
104
104
  )
105
105
  const baseFocusedKey = state.routes[lastBaseIndex]?.key
106
- const overlayRoutes = state.routes.slice(lastBaseIndex + 1)
106
+ const overlayRoutes = state.routes.slice(lastBaseIndex + 1, state.index + 1)
107
107
 
108
108
  return (
109
109
  <Fragment>
@@ -27,7 +27,7 @@ function makeState(
27
27
  routes,
28
28
  type: 'stack',
29
29
  stale: false,
30
- preloadedRoutes: [],
30
+ retainedRouteKeys: [],
31
31
  } as unknown as StackNavigationState<ParamListBase>
32
32
  }
33
33
 
@@ -131,6 +131,18 @@ describe('convertStackStateToNonOverlayState', () => {
131
131
  expect(out.routes).toHaveLength(0)
132
132
  expect(out.index).toBe(0)
133
133
  })
134
+
135
+ it('ignores preloaded routes after the focused index', () => {
136
+ const state = makeState(['home', 'sheet', 'preloaded'], 1)
137
+ const descriptors = makeDescriptors(['home', 'sheet', 'preloaded'], {
138
+ home: 'card',
139
+ sheet: 'formSheet',
140
+ preloaded: 'card',
141
+ })
142
+ const out = convertStackStateToNonOverlayState(state, descriptors)
143
+ expect(out.routes.map((route) => route.name)).toEqual(['home'])
144
+ expect(out.index).toBe(0)
145
+ })
134
146
  })
135
147
 
136
148
  describe('findLastNonOverlayIndex', () => {
@@ -150,4 +162,14 @@ describe('findLastNonOverlayIndex', () => {
150
162
  const descriptors = makeDescriptors(['sheet'], { sheet: 'formSheet' })
151
163
  expect(findLastNonOverlayIndex(state, descriptors)).toBe(-1)
152
164
  })
165
+
166
+ it('does not treat a preloaded card as focused', () => {
167
+ const state = makeState(['home', 'sheet', 'preloaded'], 1)
168
+ const descriptors = makeDescriptors(['home', 'sheet', 'preloaded'], {
169
+ home: 'card',
170
+ sheet: 'formSheet',
171
+ preloaded: 'card',
172
+ })
173
+ expect(findLastNonOverlayIndex(state, descriptors)).toBe(0)
174
+ })
153
175
  })
@@ -35,7 +35,8 @@ export function isTransparentOverlay(
35
35
 
36
36
  /**
37
37
  * Returns the underlying navigation state for NativeStackView with the
38
- * trailing overlay suffix removed.
38
+ * trailing overlay suffix removed. Routes after `state.index` are preloaded
39
+ * routes in React Navigation 8, so they are not part of the visible stack.
39
40
  *
40
41
  * Important: we only strip the suffix of overlay routes at the top of the
41
42
  * stack. Overlay routes that are SANDWICHED between cards (e.g. user
@@ -79,7 +80,7 @@ export function findLastNonOverlayIndex(
79
80
  options: NativeStackNavigationOptions | undefined | null
80
81
  ) => boolean = isOverlayPresentation
81
82
  ): number {
82
- for (let i = state.routes.length - 1; i >= 0; i--) {
83
+ for (let i = state.index; i >= 0; i--) {
83
84
  if (!isOverlay(descriptors[state.routes[i]!.key]?.options)) {
84
85
  return i
85
86
  }
package/src/ui/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # One Headless UI Components
2
2
 
3
- Headless UI components for the One framework.
3
+ Web-only headless UI components for the One framework.
4
4
 
5
5
  ## Overview
6
6
 
7
- The headless tabs system provides complete control over tab navigation UI while maintaining full integration with One's file-based routing system. Unlike traditional tabs that use `@react-navigation/bottom-tabs` with opinionated styling, these components are completely unstyled.
7
+ The headless tabs system provides complete control over browser tab navigation UI while maintaining full integration with One's file-based routing system. These components render DOM elements and are completely unstyled. Use `Tabs` from `one` for React Navigation 8 tabs on iOS and Android.
8
8
 
9
9
  ## Installation
10
10
 
11
- The UI components are available through the `one/ui` submodule:
11
+ The web UI components are available through the `one/ui` submodule. Put a React Navigation `Tabs` layout in the route's `.native.tsx` sibling when the same route runs on native.
12
12
 
13
13
  ```tsx
14
14
  import { Tabs, TabList, TabTrigger, TabSlot } from 'one/ui'
@@ -100,22 +100,14 @@ function CustomTabBar() {
100
100
  const profile = useTabTrigger({ name: 'profile' })
101
101
 
102
102
  return (
103
- <View style={styles.customBar}>
104
- <Pressable {...home.triggerProps}>
105
- <Text style={home.trigger?.isFocused && styles.active}>
106
- Home
107
- </Text>
108
- </Pressable>
109
- <Pressable {...profile.triggerProps}>
110
- <Text style={profile.trigger?.isFocused && styles.active}>
111
- Profile
112
- </Text>
113
- </Pressable>
114
- </View>
103
+ <nav>
104
+ <button {...home.triggerProps}>Home</button>
105
+ <button {...profile.triggerProps}>Profile</button>
106
+ </nav>
115
107
  )
116
108
  }
117
109
  ```
118
110
 
119
111
  ## Example
120
112
 
121
- See `/examples/one-basic/app/tabs/` for a working example with custom-styled tabs.
113
+ See `/examples/one-basic/app/tabs/` for a working example with custom web tabs and an RN8 native sibling.
package/src/ui/Slot.tsx CHANGED
@@ -1,43 +1,9 @@
1
1
  import { Slot as RUISlot } from '@radix-ui/react-slot'
2
- import {
3
- type Component,
4
- type ForwardRefExoticComponent,
5
- forwardRef,
6
- type RefAttributes,
7
- useMemo,
8
- } from 'react'
9
- import { StyleSheet, type ViewProps } from 'react-native'
10
-
11
- /**
12
- * RadixUI has special logic to handle the merging of `style` and `className` props.
13
- * On the web styles are not allowed so Radix does not handle this scenario.
14
- * This could be fixed upstream (PR open), but it may not as RN is not their target
15
- * platform.
16
- *
17
- * This shim calls `StyleSheet.flatten` on the styles before we render the <Slot />
18
- *
19
- * @see https://github.com/expo/expo/issues/31352
20
- * @see https://github.com/radix-ui/primitives/issues/3107
21
- * @param Component
22
- * @returns
23
- */
24
- function ShimSlotForReactNative(Component: typeof RUISlot): typeof RUISlot {
25
- return forwardRef(function RNSlotHOC({ style, ...props }, ref) {
26
- if (process.env.NODE_ENV !== 'production') {
27
- if (Array.isArray(style)) {
28
- throw new Error(
29
- 'Slot does not support array styles. Use StyleSheet.flatten() or an object style instead.'
30
- )
31
- }
32
- }
33
- style = useMemo(() => StyleSheet.flatten(style), [style])
34
- return <Component ref={ref} {...props} style={style} />
35
- })
36
- }
2
+ import type { ForwardRefExoticComponent, HTMLAttributes, RefAttributes } from 'react'
37
3
 
38
4
  export interface Slot<
39
- Props = ViewProps,
40
- Ref = Component<ViewProps>,
5
+ Props = HTMLAttributes<HTMLElement>,
6
+ Ref = HTMLElement,
41
7
  > extends ForwardRefExoticComponent<Props & RefAttributes<Ref>> {}
42
8
 
43
- export const Slot: Slot = ShimSlotForReactNative(RUISlot) as Slot
9
+ export const Slot = RUISlot as Slot
@@ -24,7 +24,6 @@ export type ExpoTabsNavigatorScreenOptions = {
24
24
 
25
25
  export type ExpoTabsNavigatorOptions = DefaultNavigatorOptions<
26
26
  ParamListBase,
27
- string | undefined,
28
27
  TabNavigationState<ParamListBase>,
29
28
  ExpoTabsScreenOptions,
30
29
  TabNavigationEventMap,
@@ -37,20 +36,16 @@ export type ExpoTabsNavigatorOptions = DefaultNavigatorOptions<
37
36
  export type ExpoTabsNavigationProp<
38
37
  ParamList extends ParamListBase,
39
38
  RouteName extends keyof ParamList = keyof ParamList,
40
- NavigatorID extends string | undefined = undefined,
41
39
  > = NavigationProp<
42
40
  ParamList,
43
41
  RouteName,
44
- NavigatorID,
45
42
  TabNavigationState<ParamListBase>,
46
43
  ExpoTabsScreenOptions,
47
44
  TabNavigationEventMap
48
45
  >
49
46
 
50
- export type ExpoTabsScreenOptions = Pick<
51
- BottomTabNavigationOptions,
52
- 'title' | 'lazy' | 'freezeOnBlur'
53
- > & {
47
+ export type ExpoTabsScreenOptions = Pick<BottomTabNavigationOptions, 'title' | 'lazy'> & {
48
+ freezeOnBlur?: boolean
54
49
  params?: object
55
50
  title: string
56
51
  action: NavigationAction
@@ -1,10 +1,9 @@
1
- import type { ComponentProps, ReactElement } from 'react'
2
- import { StyleSheet, View, type ViewProps } from 'react-native'
1
+ import type { ComponentProps, HTMLAttributes, ReactElement } from 'react'
3
2
 
4
- import { ViewSlot } from './common'
3
+ import { Slot } from './Slot'
5
4
 
6
- export type TabListProps = ViewProps & {
7
- /** Forward props to child component and removes the extra `<View>`. Useful for custom wrappers. */
5
+ export type TabListProps = HTMLAttributes<HTMLElement> & {
6
+ /** Forward props to child component and removes the extra `<nav>`. Useful for custom wrappers. */
8
7
  asChild?: boolean
9
8
  }
10
9
 
@@ -21,9 +20,9 @@ export type TabListProps = ViewProps & {
21
20
  * </Tabs>
22
21
  * ```
23
22
  */
24
- export function TabList({ asChild, style, ...props }: TabListProps) {
25
- const Comp = asChild ? ViewSlot : View
26
- return <Comp style={[styles.tabList, style]} {...props} />
23
+ export function TabList({ asChild, ...props }: TabListProps) {
24
+ const Comp = asChild ? Slot : 'nav'
25
+ return <Comp {...props} />
27
26
  }
28
27
 
29
28
  /**
@@ -34,14 +33,3 @@ export function isTabList(
34
33
  ): child is ReactElement<ComponentProps<typeof TabList>> {
35
34
  return child.type === TabList
36
35
  }
37
-
38
- const styles = StyleSheet.create({
39
- tabList: {
40
- flexDirection: 'row',
41
- justifyContent: 'space-between',
42
- },
43
- tabTrigger: {
44
- flexDirection: 'row',
45
- justifyContent: 'space-between',
46
- },
47
- })
@@ -1,18 +1,12 @@
1
- import { type ComponentProps, type ReactElement, useState } from 'react'
2
- import { Platform, StyleSheet } from 'react-native'
3
- import { Screen, ScreenContainer } from 'react-native-screens'
1
+ import { Activity, Fragment, type ReactElement, useState } from 'react'
4
2
  import { useNavigatorContext } from '../views/Navigator'
5
3
  import { TabContext, type TabsDescriptor } from './TabContext'
6
4
  import type { TabListProps } from './TabList'
7
5
 
8
- export type TabSlotProps = ComponentProps<typeof ScreenContainer> & {
9
- /**
10
- * Remove inactive screens.
11
- */
6
+ export type TabSlotProps = {
7
+ /** Remove inactive screens from the visible DOM tree. */
12
8
  detachInactiveScreens?: boolean
13
- /**
14
- * Override how the `Screen` component is rendered.
15
- */
9
+ /** Override how each screen is rendered. */
16
10
  renderFn?: typeof defaultTabsSlotRender
17
11
  }
18
12
 
@@ -51,8 +45,7 @@ export type TabsSlotRenderOptions = {
51
45
  * ```
52
46
  */
53
47
  export function useTabSlot({
54
- detachInactiveScreens = ['android', 'ios', 'web'].includes(Platform.OS),
55
- style,
48
+ detachInactiveScreens = true,
56
49
  renderFn = defaultTabsSlotRender,
57
50
  }: TabSlotProps = {}) {
58
51
  const { state, descriptorsRef } = useNavigatorContext()
@@ -65,11 +58,7 @@ export function useTabSlot({
65
58
  }
66
59
 
67
60
  return (
68
- <ScreenContainer
69
- enabled={detachInactiveScreens}
70
- hasTwoStates
71
- style={[styles.screenContainer, style]}
72
- >
61
+ <Fragment>
73
62
  {state.routes.map((route, index) => {
74
63
  const descriptor = descriptors[route.key] as unknown as TabsDescriptor
75
64
 
@@ -84,7 +73,7 @@ export function useTabSlot({
84
73
  </TabContext.Provider>
85
74
  )
86
75
  })}
87
- </ScreenContainer>
76
+ </Fragment>
88
77
  )
89
78
  }
90
79
 
@@ -114,28 +103,20 @@ export function defaultTabsSlotRender(
114
103
  descriptor: TabsDescriptor,
115
104
  { isFocused, loaded, detachInactiveScreens }: TabsSlotRenderOptions
116
105
  ) {
117
- const { lazy = true, unmountOnBlur, freezeOnBlur } = descriptor.options
106
+ const { lazy = true, unmountOnBlur } = descriptor.options
118
107
 
119
- if (unmountOnBlur && !isFocused) {
120
- return null
121
- }
108
+ if ((unmountOnBlur || detachInactiveScreens) && !isFocused) return null
109
+ if (lazy && !loaded && !isFocused) return null
122
110
 
123
- if (lazy && !loaded && !isFocused) {
124
- // Don't render a lazy screen if we've never navigated to it
125
- return null
111
+ if (!isFocused) {
112
+ return (
113
+ <Activity key={descriptor.route.key} mode="hidden">
114
+ {descriptor.render()}
115
+ </Activity>
116
+ )
126
117
  }
127
118
 
128
- return (
129
- <Screen
130
- key={descriptor.route.key}
131
- enabled={detachInactiveScreens}
132
- activityState={isFocused ? 2 : 0}
133
- freezeOnBlur={freezeOnBlur}
134
- style={[styles.screen, isFocused ? styles.focused : styles.unfocused]}
135
- >
136
- {descriptor.render()}
137
- </Screen>
138
- )
119
+ return <Fragment key={descriptor.route.key}>{descriptor.render()}</Fragment>
139
120
  }
140
121
 
141
122
  /**
@@ -144,27 +125,3 @@ export function defaultTabsSlotRender(
144
125
  export function isTabSlot(child: ReactElement<any>): child is ReactElement<TabListProps> {
145
126
  return child.type === TabSlot
146
127
  }
147
-
148
- const styles = StyleSheet.create({
149
- screen: {
150
- flex: 1,
151
- position: 'relative',
152
- height: '100%',
153
- },
154
- screenContainer: {
155
- flexShrink: 0,
156
- flexGrow: 1,
157
- },
158
- focused: {
159
- zIndex: 1,
160
- display: 'flex',
161
- flexShrink: 0,
162
- flexGrow: 1,
163
- },
164
- unfocused: {
165
- zIndex: -1,
166
- display: 'none',
167
- flexShrink: 1,
168
- flexGrow: 0,
169
- },
170
- })