one 1.21.13 → 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (750) hide show
  1. package/dist/cjs/Root.cjs +2 -2
  2. package/dist/cjs/Root.native.js +2 -2
  3. package/dist/cjs/Root.native.js.map +1 -1
  4. package/dist/cjs/cli/build.cjs +9 -17
  5. package/dist/cjs/cli/build.native.js +8 -16
  6. package/dist/cjs/cli/build.native.js.map +1 -1
  7. package/dist/cjs/cli.native.js.map +1 -1
  8. package/dist/cjs/clientLoaderResolver.native.js.map +1 -1
  9. package/dist/cjs/config.native.js.map +1 -1
  10. package/dist/cjs/constants.native.js.map +1 -1
  11. package/dist/cjs/constants.test.native.js.map +1 -1
  12. package/dist/cjs/createAPIRoute.native.js.map +1 -1
  13. package/dist/cjs/createApp.cjs +12 -35
  14. package/dist/cjs/createHandleRequest.cjs +4 -2
  15. package/dist/cjs/createHandleRequest.native.js +4 -2
  16. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  17. package/dist/cjs/fallbackViews/Sitemap.cjs +123 -55
  18. package/dist/cjs/fallbackViews/Sitemap.native.js.map +1 -1
  19. package/dist/cjs/fallbackViews/Unmatched.cjs +92 -37
  20. package/dist/cjs/fallbackViews/Unmatched.native.js.map +1 -1
  21. package/dist/cjs/fork/NavigationContainer.cjs +6 -28
  22. package/dist/cjs/fork/NavigationContainer.native.js +5 -27
  23. package/dist/cjs/fork/NavigationContainer.native.js.map +1 -1
  24. package/dist/cjs/{router/renderingRegistry.cjs → fork/localeDirection.cjs} +6 -29
  25. package/dist/cjs/{router/web/ScreenRenderContext.cjs → fork/localeDirection.native.js} +10 -12
  26. package/dist/cjs/fork/localeDirection.native.js.map +1 -0
  27. package/dist/cjs/fork/theme.cjs +71 -0
  28. package/dist/cjs/{router/renderingRegistry.native.js → fork/theme.native.js} +7 -31
  29. package/dist/cjs/fork/theme.native.js.map +1 -0
  30. package/dist/cjs/headless/Presentations.cjs +51 -0
  31. package/dist/cjs/headless/Presentations.native.js +56 -0
  32. package/dist/cjs/headless/Presentations.native.js.map +1 -0
  33. package/dist/cjs/headless/children.cjs +43 -0
  34. package/dist/cjs/headless/children.native.js +46 -0
  35. package/dist/cjs/headless/children.native.js.map +1 -0
  36. package/dist/cjs/headless/devHeadlessNote.cjs +34 -0
  37. package/dist/cjs/{router/web/ScreenRenderContext.native.js → headless/devHeadlessNote.native.js} +11 -12
  38. package/dist/cjs/headless/devHeadlessNote.native.js.map +1 -0
  39. package/dist/cjs/headless/keepMounted.cjs +58 -0
  40. package/dist/cjs/headless/keepMounted.native.js +64 -0
  41. package/dist/cjs/headless/keepMounted.native.js.map +1 -0
  42. package/dist/cjs/headless/types.cjs +18 -0
  43. package/dist/cjs/headless/types.native.js +21 -0
  44. package/dist/cjs/headless/types.native.js.map +1 -0
  45. package/dist/cjs/headless/useDrawer.cjs +83 -0
  46. package/dist/cjs/headless/useDrawer.native.js +95 -0
  47. package/dist/cjs/headless/useDrawer.native.js.map +1 -0
  48. package/dist/cjs/headless/useStack.cjs +75 -0
  49. package/dist/cjs/headless/useStack.native.js +79 -0
  50. package/dist/cjs/headless/useStack.native.js.map +1 -0
  51. package/dist/cjs/headless/useTabs.cjs +62 -0
  52. package/dist/cjs/headless/useTabs.native.js +65 -0
  53. package/dist/cjs/headless/useTabs.native.js.map +1 -0
  54. package/dist/cjs/index.cjs +8 -3
  55. package/dist/cjs/index.native.js +8 -3
  56. package/dist/cjs/index.native.js.map +1 -1
  57. package/dist/cjs/layouts/Drawer.cjs +71 -42
  58. package/dist/cjs/layouts/Drawer.native.js +1 -25
  59. package/dist/cjs/layouts/Drawer.native.js.map +1 -1
  60. package/dist/cjs/layouts/Stack.cjs +9 -13
  61. package/dist/cjs/layouts/Stack.native.js +11 -13
  62. package/dist/cjs/layouts/Stack.native.js.map +1 -1
  63. package/dist/cjs/layouts/Tabs.cjs +104 -88
  64. package/dist/cjs/layouts/Tabs.native.js +1 -13
  65. package/dist/cjs/layouts/Tabs.native.js.map +1 -1
  66. package/dist/cjs/layouts/stack-navigator.cjs +10 -2
  67. package/dist/cjs/layouts/stack-navigator.native.js +5 -1
  68. package/dist/cjs/layouts/stack-navigator.native.js.map +1 -1
  69. package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.cjs +4 -0
  70. package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.native.js +4 -0
  71. package/dist/cjs/layouts/stack-utils/StackHeaderBackButton.native.js.map +1 -1
  72. package/dist/cjs/layouts/stack-utils/StackHeaderComponent.cjs +13 -9
  73. package/dist/cjs/layouts/stack-utils/StackHeaderComponent.native.js +13 -9
  74. package/dist/cjs/layouts/stack-utils/StackHeaderComponent.native.js.map +1 -1
  75. package/dist/cjs/layouts/stack-utils/StackHeaderLeft.cjs +4 -0
  76. package/dist/cjs/layouts/stack-utils/StackHeaderLeft.native.js +4 -0
  77. package/dist/cjs/layouts/stack-utils/StackHeaderLeft.native.js.map +1 -1
  78. package/dist/cjs/layouts/stack-utils/StackHeaderRight.cjs +4 -0
  79. package/dist/cjs/layouts/stack-utils/StackHeaderRight.native.js +4 -0
  80. package/dist/cjs/layouts/stack-utils/StackHeaderRight.native.js.map +1 -1
  81. package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.cjs +4 -0
  82. package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.native.js +4 -0
  83. package/dist/cjs/layouts/stack-utils/StackHeaderSearchBar.native.js.map +1 -1
  84. package/dist/cjs/layouts/stack-utils/StackHeaderTitle.cjs +8 -4
  85. package/dist/cjs/layouts/stack-utils/StackHeaderTitle.native.js +8 -4
  86. package/dist/cjs/layouts/stack-utils/StackHeaderTitle.native.js.map +1 -1
  87. package/dist/cjs/layouts/stack-utils/StackScreen.cjs +10 -23
  88. package/dist/cjs/layouts/stack-utils/StackScreen.native.js +21 -27
  89. package/dist/cjs/layouts/stack-utils/StackScreen.native.js.map +1 -1
  90. package/dist/cjs/layouts/stack-utils/__tests__/composition.test.cjs +11 -6
  91. package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js +15 -6
  92. package/dist/cjs/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
  93. package/dist/cjs/layouts/stack-utils/index.cjs +2 -0
  94. package/dist/cjs/layouts/stack-utils/index.native.js +2 -0
  95. package/dist/cjs/layouts/stack-utils/index.native.js.map +1 -1
  96. package/dist/cjs/layouts/withLayoutContext.cjs +2 -2
  97. package/dist/cjs/layouts/withLayoutContext.native.js +2 -2
  98. package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
  99. package/dist/cjs/link/Link.cjs +55 -69
  100. package/dist/cjs/link/Link.native.js.map +1 -1
  101. package/dist/cjs/link/useLinkTo.cjs +3 -17
  102. package/dist/cjs/link/useLinkTo.native.js +1 -23
  103. package/dist/cjs/link/useLinkTo.native.js.map +1 -1
  104. package/dist/cjs/metro-config/withOne.test.cjs +2 -2
  105. package/dist/cjs/metro-config/withOne.test.native.js +2 -2
  106. package/dist/cjs/metro-config/withOne.test.native.js.map +1 -1
  107. package/dist/cjs/router/getRouteArtifactPath.test.native.js.map +1 -1
  108. package/dist/cjs/router/router.cjs +2 -2
  109. package/dist/cjs/router/router.native.js +2 -2
  110. package/dist/cjs/router/router.native.js.map +1 -1
  111. package/dist/cjs/router/useScreens.cjs +31 -72
  112. package/dist/cjs/router/useScreens.native.js +15 -71
  113. package/dist/cjs/router/useScreens.native.js.map +1 -1
  114. package/dist/cjs/router/web/WebStackNavigator.cjs +8 -7
  115. package/dist/cjs/router/web/WebStackNavigator.native.js +8 -7
  116. package/dist/cjs/router/web/WebStackNavigator.native.js.map +1 -1
  117. package/dist/cjs/router/web/WebStackView.cjs +108 -131
  118. package/dist/cjs/router/web/WebStackView.native.js +117 -176
  119. package/dist/cjs/router/web/WebStackView.native.js.map +1 -1
  120. package/dist/cjs/router/web/stackStateUtils.native.js.map +1 -1
  121. package/dist/cjs/screensFeatureFlags.cjs +1 -16
  122. package/dist/cjs/screensFeatureFlags.native.js +3 -3
  123. package/dist/cjs/screensFeatureFlags.native.js.map +1 -1
  124. package/dist/cjs/typed-routes/generateRouteTypes.cjs +3 -10
  125. package/dist/cjs/typed-routes/generateRouteTypes.native.js +3 -10
  126. package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
  127. package/dist/cjs/ui/Slot.cjs +4 -25
  128. package/dist/cjs/ui/Slot.native.js.map +1 -1
  129. package/dist/cjs/ui/TabList.cjs +7 -19
  130. package/dist/cjs/ui/TabList.native.js.map +1 -1
  131. package/dist/cjs/ui/TabSlot.cjs +15 -47
  132. package/dist/cjs/ui/TabSlot.native.js.map +1 -1
  133. package/dist/cjs/ui/TabTrigger.cjs +30 -134
  134. package/dist/cjs/ui/TabTrigger.native.js +14 -115
  135. package/dist/cjs/ui/TabTrigger.native.js.map +1 -1
  136. package/dist/cjs/ui/Tabs.cjs +15 -155
  137. package/dist/cjs/ui/Tabs.native.js +4 -144
  138. package/dist/cjs/ui/Tabs.native.js.map +1 -1
  139. package/dist/cjs/ui/Tabs.shared.cjs +160 -0
  140. package/dist/cjs/ui/Tabs.shared.native.js +174 -0
  141. package/dist/cjs/ui/Tabs.shared.native.js.map +1 -0
  142. package/dist/cjs/ui/useTabTrigger.cjs +122 -0
  143. package/dist/cjs/ui/useTabTrigger.native.js +125 -0
  144. package/dist/cjs/ui/useTabTrigger.native.js.map +1 -0
  145. package/dist/cjs/useBlocker.cjs +55 -93
  146. package/dist/cjs/useLoader.native.js +0 -18
  147. package/dist/cjs/useLoader.native.js.map +1 -1
  148. package/dist/cjs/utils/platform.cjs +28 -0
  149. package/dist/cjs/utils/platform.native.js +32 -0
  150. package/dist/cjs/utils/platform.native.js.map +1 -0
  151. package/dist/cjs/utils/routeIndex.cjs +80 -0
  152. package/dist/cjs/utils/routeIndex.native.js +86 -0
  153. package/dist/cjs/utils/routeIndex.native.js.map +1 -0
  154. package/dist/cjs/utils/routeIndex.test.cjs +51 -0
  155. package/dist/cjs/utils/routeIndex.test.native.js +54 -0
  156. package/dist/cjs/utils/routeIndex.test.native.js.map +1 -0
  157. package/dist/cjs/utils/style.cjs +21 -1
  158. package/dist/cjs/utils/style.native.js +40 -1
  159. package/dist/cjs/utils/style.native.js.map +1 -1
  160. package/dist/cjs/views/LoadProgressBar.cjs +59 -23
  161. package/dist/cjs/views/LoadProgressBar.native.js.map +1 -1
  162. package/dist/cjs/views/Protected.cjs +4 -0
  163. package/dist/cjs/views/Protected.native.js +4 -0
  164. package/dist/cjs/views/Protected.native.js.map +1 -1
  165. package/dist/cjs/views/RootErrorBoundary.cjs +107 -148
  166. package/dist/cjs/views/RootErrorBoundary.native.js +30 -140
  167. package/dist/cjs/views/RootErrorBoundary.native.js.map +1 -1
  168. package/dist/cjs/views/RouteErrorView.cjs +108 -0
  169. package/dist/cjs/views/RouteErrorView.native.js +110 -0
  170. package/dist/cjs/views/RouteErrorView.native.js.map +1 -0
  171. package/dist/cjs/views/Screen.cjs +5 -1
  172. package/dist/cjs/views/Screen.native.js +4 -0
  173. package/dist/cjs/views/Screen.native.js.map +1 -1
  174. package/dist/cjs/vite/getManifest.cjs +4 -20
  175. package/dist/cjs/vite/getManifest.native.js +4 -20
  176. package/dist/cjs/vite/getManifest.native.js.map +1 -1
  177. package/dist/cjs/vite/one.cjs +12 -46
  178. package/dist/cjs/vite/one.native.js +23 -59
  179. package/dist/cjs/vite/one.native.js.map +1 -1
  180. package/dist/cjs/vite/plugins/bundledDevPlugin.cjs +130 -0
  181. package/dist/cjs/vite/plugins/bundledDevPlugin.native.js +154 -0
  182. package/dist/cjs/vite/plugins/bundledDevPlugin.native.js.map +1 -0
  183. package/dist/cjs/vite/plugins/devtoolsPlugin.cjs +4 -0
  184. package/dist/cjs/vite/plugins/devtoolsPlugin.native.js +5 -0
  185. package/dist/cjs/vite/plugins/devtoolsPlugin.native.js.map +1 -1
  186. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +15 -6
  187. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +15 -5
  188. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  189. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.cjs +12 -2
  190. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js +12 -2
  191. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
  192. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.cjs +10 -6
  193. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +11 -7
  194. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  195. package/dist/cjs/vite/plugins/routeModuleHmrPlugin.cjs +79 -0
  196. package/dist/cjs/vite/plugins/routeModuleHmrPlugin.native.js +84 -0
  197. package/dist/cjs/vite/plugins/routeModuleHmrPlugin.native.js.map +1 -0
  198. package/dist/cjs/vite/plugins/routeModuleHmrPlugin.test.cjs +74 -0
  199. package/dist/cjs/vite/plugins/routeModuleHmrPlugin.test.native.js +83 -0
  200. package/dist/cjs/vite/plugins/routeModuleHmrPlugin.test.native.js.map +1 -0
  201. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +11 -5
  202. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +20 -10
  203. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  204. package/dist/cjs/vite/plugins/virtualEntryPlugin.test.cjs +10 -2
  205. package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js +14 -2
  206. package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
  207. package/dist/esm/Root.mjs +1 -1
  208. package/dist/esm/Root.mjs.map +1 -1
  209. package/dist/esm/Root.native.js +1 -1
  210. package/dist/esm/Root.native.js.map +1 -1
  211. package/dist/esm/cli/build.mjs +9 -17
  212. package/dist/esm/cli/build.mjs.map +1 -1
  213. package/dist/esm/cli/build.native.js +8 -16
  214. package/dist/esm/cli/build.native.js.map +1 -1
  215. package/dist/esm/createApp.mjs +12 -35
  216. package/dist/esm/createApp.mjs.map +1 -1
  217. package/dist/esm/createHandleRequest.mjs +4 -2
  218. package/dist/esm/createHandleRequest.mjs.map +1 -1
  219. package/dist/esm/createHandleRequest.native.js +4 -2
  220. package/dist/esm/createHandleRequest.native.js.map +1 -1
  221. package/dist/esm/fallbackViews/Sitemap.mjs +110 -53
  222. package/dist/esm/fallbackViews/Sitemap.mjs.map +1 -1
  223. package/dist/esm/fallbackViews/Sitemap.native.js.map +1 -1
  224. package/dist/esm/fallbackViews/Unmatched.mjs +89 -34
  225. package/dist/esm/fallbackViews/Unmatched.mjs.map +1 -1
  226. package/dist/esm/fallbackViews/Unmatched.native.js.map +1 -1
  227. package/dist/esm/fork/NavigationContainer.mjs +6 -28
  228. package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
  229. package/dist/esm/fork/NavigationContainer.native.js +5 -27
  230. package/dist/esm/fork/NavigationContainer.native.js.map +1 -1
  231. package/dist/esm/fork/localeDirection.mjs +5 -0
  232. package/dist/esm/fork/localeDirection.mjs.map +1 -0
  233. package/dist/esm/fork/localeDirection.native.js +6 -0
  234. package/dist/esm/fork/localeDirection.native.js.map +1 -0
  235. package/dist/esm/fork/theme.mjs +45 -0
  236. package/dist/esm/fork/theme.mjs.map +1 -0
  237. package/dist/esm/fork/theme.native.js +3 -0
  238. package/dist/esm/fork/theme.native.js.map +1 -0
  239. package/dist/esm/headless/Presentations.mjs +25 -0
  240. package/dist/esm/headless/Presentations.mjs.map +1 -0
  241. package/dist/esm/headless/Presentations.native.js +28 -0
  242. package/dist/esm/headless/Presentations.native.js.map +1 -0
  243. package/dist/esm/headless/children.mjs +16 -0
  244. package/dist/esm/headless/children.mjs.map +1 -0
  245. package/dist/esm/headless/children.native.js +16 -0
  246. package/dist/esm/headless/children.native.js.map +1 -0
  247. package/dist/esm/headless/devHeadlessNote.mjs +9 -0
  248. package/dist/esm/headless/devHeadlessNote.mjs.map +1 -0
  249. package/dist/esm/headless/devHeadlessNote.native.js +9 -0
  250. package/dist/esm/headless/devHeadlessNote.native.js.map +1 -0
  251. package/dist/esm/headless/keepMounted.mjs +32 -0
  252. package/dist/esm/headless/keepMounted.mjs.map +1 -0
  253. package/dist/esm/headless/keepMounted.native.js +36 -0
  254. package/dist/esm/headless/keepMounted.native.js.map +1 -0
  255. package/dist/esm/headless/types.mjs +2 -0
  256. package/dist/esm/headless/types.mjs.map +1 -0
  257. package/dist/esm/headless/types.native.js +2 -0
  258. package/dist/esm/headless/types.native.js.map +1 -0
  259. package/dist/esm/headless/useDrawer.mjs +57 -0
  260. package/dist/esm/headless/useDrawer.mjs.map +1 -0
  261. package/dist/esm/headless/useDrawer.native.js +67 -0
  262. package/dist/esm/headless/useDrawer.native.js.map +1 -0
  263. package/dist/esm/headless/useStack.mjs +49 -0
  264. package/dist/esm/headless/useStack.mjs.map +1 -0
  265. package/dist/esm/headless/useStack.native.js +51 -0
  266. package/dist/esm/headless/useStack.native.js.map +1 -0
  267. package/dist/esm/headless/useTabs.mjs +37 -0
  268. package/dist/esm/headless/useTabs.mjs.map +1 -0
  269. package/dist/esm/headless/useTabs.native.js +38 -0
  270. package/dist/esm/headless/useTabs.native.js.map +1 -0
  271. package/dist/esm/index.js +5 -2
  272. package/dist/esm/index.js.map +1 -1
  273. package/dist/esm/index.mjs +5 -2
  274. package/dist/esm/index.mjs.map +1 -1
  275. package/dist/esm/index.native.js +5 -2
  276. package/dist/esm/index.native.js.map +1 -1
  277. package/dist/esm/layouts/Drawer.mjs +69 -29
  278. package/dist/esm/layouts/Drawer.mjs.map +1 -1
  279. package/dist/esm/layouts/Drawer.native.js +2 -26
  280. package/dist/esm/layouts/Drawer.native.js.map +1 -1
  281. package/dist/esm/layouts/Stack.mjs +10 -14
  282. package/dist/esm/layouts/Stack.mjs.map +1 -1
  283. package/dist/esm/layouts/Stack.native.js +12 -14
  284. package/dist/esm/layouts/Stack.native.js.map +1 -1
  285. package/dist/esm/layouts/Tabs.mjs +101 -74
  286. package/dist/esm/layouts/Tabs.mjs.map +1 -1
  287. package/dist/esm/layouts/Tabs.native.js +2 -14
  288. package/dist/esm/layouts/Tabs.native.js.map +1 -1
  289. package/dist/esm/layouts/stack-navigator.mjs +8 -1
  290. package/dist/esm/layouts/stack-navigator.mjs.map +1 -1
  291. package/dist/esm/layouts/stack-navigator.native.js +4 -1
  292. package/dist/esm/layouts/stack-navigator.native.js.map +1 -1
  293. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.mjs +4 -0
  294. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.mjs.map +1 -1
  295. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.native.js +4 -0
  296. package/dist/esm/layouts/stack-utils/StackHeaderBackButton.native.js.map +1 -1
  297. package/dist/esm/layouts/stack-utils/StackHeaderComponent.mjs +7 -3
  298. package/dist/esm/layouts/stack-utils/StackHeaderComponent.mjs.map +1 -1
  299. package/dist/esm/layouts/stack-utils/StackHeaderComponent.native.js +7 -3
  300. package/dist/esm/layouts/stack-utils/StackHeaderComponent.native.js.map +1 -1
  301. package/dist/esm/layouts/stack-utils/StackHeaderLeft.mjs +4 -0
  302. package/dist/esm/layouts/stack-utils/StackHeaderLeft.mjs.map +1 -1
  303. package/dist/esm/layouts/stack-utils/StackHeaderLeft.native.js +4 -0
  304. package/dist/esm/layouts/stack-utils/StackHeaderLeft.native.js.map +1 -1
  305. package/dist/esm/layouts/stack-utils/StackHeaderRight.mjs +4 -0
  306. package/dist/esm/layouts/stack-utils/StackHeaderRight.mjs.map +1 -1
  307. package/dist/esm/layouts/stack-utils/StackHeaderRight.native.js +4 -0
  308. package/dist/esm/layouts/stack-utils/StackHeaderRight.native.js.map +1 -1
  309. package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.mjs +4 -0
  310. package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.mjs.map +1 -1
  311. package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.native.js +4 -0
  312. package/dist/esm/layouts/stack-utils/StackHeaderSearchBar.native.js.map +1 -1
  313. package/dist/esm/layouts/stack-utils/StackHeaderTitle.mjs +9 -5
  314. package/dist/esm/layouts/stack-utils/StackHeaderTitle.mjs.map +1 -1
  315. package/dist/esm/layouts/stack-utils/StackHeaderTitle.native.js +9 -5
  316. package/dist/esm/layouts/stack-utils/StackHeaderTitle.native.js.map +1 -1
  317. package/dist/esm/layouts/stack-utils/StackScreen.mjs +10 -23
  318. package/dist/esm/layouts/stack-utils/StackScreen.mjs.map +1 -1
  319. package/dist/esm/layouts/stack-utils/StackScreen.native.js +23 -29
  320. package/dist/esm/layouts/stack-utils/StackScreen.native.js.map +1 -1
  321. package/dist/esm/layouts/stack-utils/__tests__/composition.test.mjs +12 -7
  322. package/dist/esm/layouts/stack-utils/__tests__/composition.test.mjs.map +1 -1
  323. package/dist/esm/layouts/stack-utils/__tests__/composition.test.native.js +16 -7
  324. package/dist/esm/layouts/stack-utils/__tests__/composition.test.native.js.map +1 -1
  325. package/dist/esm/layouts/stack-utils/index.mjs +2 -0
  326. package/dist/esm/layouts/stack-utils/index.mjs.map +1 -1
  327. package/dist/esm/layouts/stack-utils/index.native.js +2 -0
  328. package/dist/esm/layouts/stack-utils/index.native.js.map +1 -1
  329. package/dist/esm/layouts/withLayoutContext.mjs +2 -2
  330. package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
  331. package/dist/esm/layouts/withLayoutContext.native.js +2 -2
  332. package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
  333. package/dist/esm/link/Link.mjs +57 -68
  334. package/dist/esm/link/Link.mjs.map +1 -1
  335. package/dist/esm/link/useLinkTo.mjs +4 -19
  336. package/dist/esm/link/useLinkTo.mjs.map +1 -1
  337. package/dist/esm/link/useLinkTo.native.js +2 -25
  338. package/dist/esm/link/useLinkTo.native.js.map +1 -1
  339. package/dist/esm/metro-config/withOne.test.mjs +2 -2
  340. package/dist/esm/metro-config/withOne.test.mjs.map +1 -1
  341. package/dist/esm/metro-config/withOne.test.native.js +2 -2
  342. package/dist/esm/metro-config/withOne.test.native.js.map +1 -1
  343. package/dist/esm/router/getRouteArtifactPath.test.mjs.map +1 -1
  344. package/dist/esm/router/getRouteArtifactPath.test.native.js.map +1 -1
  345. package/dist/esm/router/router.mjs +2 -2
  346. package/dist/esm/router/router.mjs.map +1 -1
  347. package/dist/esm/router/router.native.js +2 -2
  348. package/dist/esm/router/router.native.js.map +1 -1
  349. package/dist/esm/router/useScreens.mjs +30 -71
  350. package/dist/esm/router/useScreens.mjs.map +1 -1
  351. package/dist/esm/router/useScreens.native.js +13 -69
  352. package/dist/esm/router/useScreens.native.js.map +1 -1
  353. package/dist/esm/router/useScreens.test.mjs +1 -1
  354. package/dist/esm/router/useScreens.test.mjs.map +1 -1
  355. package/dist/esm/router/web/WebStackNavigator.mjs +5 -4
  356. package/dist/esm/router/web/WebStackNavigator.mjs.map +1 -1
  357. package/dist/esm/router/web/WebStackNavigator.native.js +5 -4
  358. package/dist/esm/router/web/WebStackNavigator.native.js.map +1 -1
  359. package/dist/esm/router/web/WebStackView.mjs +99 -131
  360. package/dist/esm/router/web/WebStackView.mjs.map +1 -1
  361. package/dist/esm/router/web/WebStackView.native.js +107 -175
  362. package/dist/esm/router/web/WebStackView.native.js.map +1 -1
  363. package/dist/esm/router/web/stackStateUtils.mjs.map +1 -1
  364. package/dist/esm/router/web/stackStateUtils.native.js.map +1 -1
  365. package/dist/esm/screensFeatureFlags.mjs +1 -16
  366. package/dist/esm/screensFeatureFlags.mjs.map +1 -1
  367. package/dist/esm/screensFeatureFlags.native.js.map +1 -1
  368. package/dist/esm/typed-routes/generateRouteTypes.mjs +3 -10
  369. package/dist/esm/typed-routes/generateRouteTypes.mjs.map +1 -1
  370. package/dist/esm/typed-routes/generateRouteTypes.native.js +3 -10
  371. package/dist/esm/typed-routes/generateRouteTypes.native.js.map +1 -1
  372. package/dist/esm/ui/Slot.mjs +1 -22
  373. package/dist/esm/ui/Slot.mjs.map +1 -1
  374. package/dist/esm/ui/Slot.native.js.map +1 -1
  375. package/dist/esm/ui/TabList.mjs +3 -15
  376. package/dist/esm/ui/TabList.mjs.map +1 -1
  377. package/dist/esm/ui/TabList.native.js.map +1 -1
  378. package/dist/esm/ui/TabSlot.mjs +12 -44
  379. package/dist/esm/ui/TabSlot.mjs.map +1 -1
  380. package/dist/esm/ui/TabSlot.native.js.map +1 -1
  381. package/dist/esm/ui/TabTrigger.mjs +25 -129
  382. package/dist/esm/ui/TabTrigger.mjs.map +1 -1
  383. package/dist/esm/ui/TabTrigger.native.js +13 -114
  384. package/dist/esm/ui/TabTrigger.native.js.map +1 -1
  385. package/dist/esm/ui/Tabs.mjs +7 -145
  386. package/dist/esm/ui/Tabs.mjs.map +1 -1
  387. package/dist/esm/ui/Tabs.native.js +5 -143
  388. package/dist/esm/ui/Tabs.native.js.map +1 -1
  389. package/dist/esm/ui/Tabs.shared.mjs +134 -0
  390. package/dist/esm/ui/Tabs.shared.mjs.map +1 -0
  391. package/dist/esm/ui/Tabs.shared.native.js +145 -0
  392. package/dist/esm/ui/Tabs.shared.native.js.map +1 -0
  393. package/dist/esm/ui/useTabTrigger.mjs +96 -0
  394. package/dist/esm/ui/useTabTrigger.mjs.map +1 -0
  395. package/dist/esm/ui/useTabTrigger.native.js +96 -0
  396. package/dist/esm/ui/useTabTrigger.native.js.map +1 -0
  397. package/dist/esm/useBlocker.mjs +55 -93
  398. package/dist/esm/useBlocker.mjs.map +1 -1
  399. package/dist/esm/useLoader.native.js +0 -18
  400. package/dist/esm/useLoader.native.js.map +1 -1
  401. package/dist/esm/utils/platform.mjs +3 -0
  402. package/dist/esm/utils/platform.mjs.map +1 -0
  403. package/dist/esm/utils/platform.native.js +4 -0
  404. package/dist/esm/utils/platform.native.js.map +1 -0
  405. package/dist/esm/utils/routeIndex.mjs +43 -0
  406. package/dist/esm/utils/routeIndex.mjs.map +1 -0
  407. package/dist/esm/utils/routeIndex.native.js +46 -0
  408. package/dist/esm/utils/routeIndex.native.js.map +1 -0
  409. package/dist/esm/utils/routeIndex.test.mjs +52 -0
  410. package/dist/esm/utils/routeIndex.test.mjs.map +1 -0
  411. package/dist/esm/utils/routeIndex.test.native.js +52 -0
  412. package/dist/esm/utils/routeIndex.test.native.js.map +1 -0
  413. package/dist/esm/utils/style.mjs +20 -1
  414. package/dist/esm/utils/style.mjs.map +1 -1
  415. package/dist/esm/utils/style.native.js +39 -1
  416. package/dist/esm/utils/style.native.js.map +1 -1
  417. package/dist/esm/views/LoadProgressBar.mjs +45 -20
  418. package/dist/esm/views/LoadProgressBar.mjs.map +1 -1
  419. package/dist/esm/views/LoadProgressBar.native.js.map +1 -1
  420. package/dist/esm/views/Protected.mjs +4 -0
  421. package/dist/esm/views/Protected.mjs.map +1 -1
  422. package/dist/esm/views/Protected.native.js +4 -0
  423. package/dist/esm/views/Protected.native.js.map +1 -1
  424. package/dist/esm/views/RootErrorBoundary.mjs +106 -147
  425. package/dist/esm/views/RootErrorBoundary.mjs.map +1 -1
  426. package/dist/esm/views/RootErrorBoundary.native.js +37 -145
  427. package/dist/esm/views/RootErrorBoundary.native.js.map +1 -1
  428. package/dist/esm/views/RouteErrorView.mjs +83 -0
  429. package/dist/esm/views/RouteErrorView.mjs.map +1 -0
  430. package/dist/esm/views/RouteErrorView.native.js +82 -0
  431. package/dist/esm/views/RouteErrorView.native.js.map +1 -0
  432. package/dist/esm/views/Screen.mjs +4 -0
  433. package/dist/esm/views/Screen.mjs.map +1 -1
  434. package/dist/esm/views/Screen.native.js +4 -0
  435. package/dist/esm/views/Screen.native.js.map +1 -1
  436. package/dist/esm/vite/getManifest.mjs +4 -9
  437. package/dist/esm/vite/getManifest.mjs.map +1 -1
  438. package/dist/esm/vite/getManifest.native.js +4 -9
  439. package/dist/esm/vite/getManifest.native.js.map +1 -1
  440. package/dist/esm/vite/one.mjs +12 -46
  441. package/dist/esm/vite/one.mjs.map +1 -1
  442. package/dist/esm/vite/one.native.js +23 -59
  443. package/dist/esm/vite/one.native.js.map +1 -1
  444. package/dist/esm/vite/plugins/bundledDevPlugin.mjs +94 -0
  445. package/dist/esm/vite/plugins/bundledDevPlugin.mjs.map +1 -0
  446. package/dist/esm/vite/plugins/bundledDevPlugin.native.js +115 -0
  447. package/dist/esm/vite/plugins/bundledDevPlugin.native.js.map +1 -0
  448. package/dist/esm/vite/plugins/devtoolsPlugin.mjs +4 -0
  449. package/dist/esm/vite/plugins/devtoolsPlugin.mjs.map +1 -1
  450. package/dist/esm/vite/plugins/devtoolsPlugin.native.js +5 -0
  451. package/dist/esm/vite/plugins/devtoolsPlugin.native.js.map +1 -1
  452. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +15 -6
  453. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  454. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +15 -5
  455. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
  456. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs +12 -2
  457. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.mjs.map +1 -1
  458. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js +12 -2
  459. package/dist/esm/vite/plugins/fileSystemRouterPlugin.test.native.js.map +1 -1
  460. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs +10 -6
  461. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs.map +1 -1
  462. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +11 -7
  463. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  464. package/dist/esm/vite/plugins/routeModuleHmrPlugin.mjs +43 -0
  465. package/dist/esm/vite/plugins/routeModuleHmrPlugin.mjs.map +1 -0
  466. package/dist/esm/vite/plugins/routeModuleHmrPlugin.native.js +45 -0
  467. package/dist/esm/vite/plugins/routeModuleHmrPlugin.native.js.map +1 -0
  468. package/dist/esm/vite/plugins/routeModuleHmrPlugin.test.mjs +75 -0
  469. package/dist/esm/vite/plugins/routeModuleHmrPlugin.test.mjs.map +1 -0
  470. package/dist/esm/vite/plugins/routeModuleHmrPlugin.test.native.js +81 -0
  471. package/dist/esm/vite/plugins/routeModuleHmrPlugin.test.native.js.map +1 -0
  472. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +11 -5
  473. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  474. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +20 -10
  475. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  476. package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs +10 -2
  477. package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs.map +1 -1
  478. package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js +14 -2
  479. package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
  480. package/package.json +27 -28
  481. package/src/Root.tsx +2 -6
  482. package/src/cli/build.ts +25 -37
  483. package/src/createApp.tsx +15 -42
  484. package/src/createHandleRequest.ts +6 -2
  485. package/src/fallbackViews/Sitemap.web.tsx +149 -0
  486. package/src/fallbackViews/Unmatched.web.tsx +91 -0
  487. package/src/fork/NavigationContainer.tsx +12 -39
  488. package/src/fork/localeDirection.native.ts +6 -0
  489. package/src/fork/localeDirection.ts +11 -0
  490. package/src/fork/theme.native.ts +1 -0
  491. package/src/fork/theme.ts +41 -0
  492. package/src/headless/Presentations.tsx +37 -0
  493. package/src/headless/children.ts +25 -0
  494. package/src/headless/devHeadlessNote.ts +13 -0
  495. package/src/headless/keepMounted.tsx +46 -0
  496. package/src/headless/types.ts +72 -0
  497. package/src/headless/useDrawer.tsx +88 -0
  498. package/src/headless/useStack.ts +74 -0
  499. package/src/headless/useTabs.ts +40 -0
  500. package/src/index.ts +14 -18
  501. package/src/layouts/Drawer.tsx +4 -35
  502. package/src/layouts/Drawer.web.tsx +117 -0
  503. package/src/layouts/Stack.tsx +54 -62
  504. package/src/layouts/Tabs.tsx +6 -32
  505. package/src/layouts/Tabs.web.tsx +151 -0
  506. package/src/layouts/stack-navigator.ts +6 -2
  507. package/src/layouts/stack-navigator.web.ts +8 -0
  508. package/src/layouts/stack-utils/StackHeaderBackButton.tsx +4 -0
  509. package/src/layouts/stack-utils/StackHeaderComponent.tsx +7 -3
  510. package/src/layouts/stack-utils/StackHeaderLeft.tsx +4 -0
  511. package/src/layouts/stack-utils/StackHeaderRight.tsx +4 -0
  512. package/src/layouts/stack-utils/StackHeaderSearchBar.tsx +4 -0
  513. package/src/layouts/stack-utils/StackHeaderTitle.tsx +9 -5
  514. package/src/layouts/stack-utils/StackScreen.tsx +31 -36
  515. package/src/layouts/stack-utils/__tests__/composition.test.tsx +12 -11
  516. package/src/layouts/stack-utils/index.tsx +2 -0
  517. package/src/layouts/withLayoutContext.tsx +5 -2
  518. package/src/link/Link.web.tsx +84 -0
  519. package/src/link/useLinkTo.tsx +2 -2
  520. package/src/metro-config/withOne.test.ts +5 -4
  521. package/src/router/getRouteArtifactPath.test.ts +1 -6
  522. package/src/router/router.ts +2 -2
  523. package/src/router/useScreens.tsx +31 -71
  524. package/src/router/web/WebStackNavigator.tsx +22 -20
  525. package/src/router/web/WebStackView.tsx +148 -188
  526. package/src/router/web/stackStateUtils.ts +2 -1
  527. package/src/screensFeatureFlags.native.ts +23 -0
  528. package/src/screensFeatureFlags.ts +3 -23
  529. package/src/typed-routes/generateRouteTypes.ts +4 -10
  530. package/src/ui/Slot.web.tsx +9 -0
  531. package/src/ui/TabList.web.tsx +27 -0
  532. package/src/ui/TabSlot.web.tsx +90 -0
  533. package/src/ui/TabTrigger.tsx +33 -249
  534. package/src/ui/TabTrigger.web.tsx +71 -0
  535. package/src/ui/Tabs.shared.tsx +230 -0
  536. package/src/ui/Tabs.tsx +5 -295
  537. package/src/ui/Tabs.web.tsx +40 -0
  538. package/src/ui/useTabTrigger.ts +182 -0
  539. package/src/useBlocker.ts +2 -3
  540. package/src/useLoader.ts +6 -2
  541. package/src/utils/platform.ts +7 -0
  542. package/src/utils/platform.web.ts +1 -0
  543. package/src/utils/routeIndex.test.ts +55 -0
  544. package/src/utils/routeIndex.ts +59 -0
  545. package/src/utils/style.ts +22 -1
  546. package/src/views/LoadProgressBar.web.tsx +135 -0
  547. package/src/views/Protected.tsx +4 -1
  548. package/src/views/RootErrorBoundary.tsx +2 -158
  549. package/src/views/RootErrorBoundary.web.tsx +163 -0
  550. package/src/views/RouteErrorView.tsx +66 -0
  551. package/src/views/RouteErrorView.web.tsx +62 -0
  552. package/src/views/Screen.tsx +3 -0
  553. package/src/vite/getManifest.ts +4 -6
  554. package/src/vite/one.ts +13 -59
  555. package/src/vite/plugins/bundledDevPlugin.ts +119 -0
  556. package/src/vite/plugins/devtoolsPlugin.ts +19 -0
  557. package/src/vite/plugins/fileSystemRouterPlugin.test.ts +19 -11
  558. package/src/vite/plugins/fileSystemRouterPlugin.tsx +31 -6
  559. package/src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx +22 -11
  560. package/src/vite/plugins/routeModuleHmrPlugin.test.ts +73 -0
  561. package/src/vite/plugins/routeModuleHmrPlugin.ts +54 -0
  562. package/src/vite/plugins/virtualEntryPlugin.test.ts +10 -1
  563. package/src/vite/plugins/virtualEntryPlugin.ts +37 -9
  564. package/src/vite/types.ts +11 -0
  565. package/types/Root.d.ts +1 -1
  566. package/types/Root.d.ts.map +1 -1
  567. package/types/cli/build.d.ts.map +1 -1
  568. package/types/createApp.d.ts.map +1 -1
  569. package/types/createHandleRequest.d.ts +2 -1
  570. package/types/createHandleRequest.d.ts.map +1 -1
  571. package/types/fallbackViews/Sitemap.web.d.ts +4 -0
  572. package/types/fallbackViews/Sitemap.web.d.ts.map +1 -0
  573. package/types/fallbackViews/Unmatched.web.d.ts +2 -0
  574. package/types/fallbackViews/Unmatched.web.d.ts.map +1 -0
  575. package/types/fork/NavigationContainer.d.ts.map +1 -1
  576. package/types/fork/localeDirection.d.ts +9 -0
  577. package/types/fork/localeDirection.d.ts.map +1 -0
  578. package/types/fork/localeDirection.native.d.ts +3 -0
  579. package/types/fork/localeDirection.native.d.ts.map +1 -0
  580. package/types/fork/theme.d.ts +4 -0
  581. package/types/fork/theme.d.ts.map +1 -0
  582. package/types/fork/theme.native.d.ts +2 -0
  583. package/types/fork/theme.native.d.ts.map +1 -0
  584. package/types/fork/useLinking.native.d.ts +4 -4
  585. package/types/headless/Presentations.d.ts +13 -0
  586. package/types/headless/Presentations.d.ts.map +1 -0
  587. package/types/headless/children.d.ts +5 -0
  588. package/types/headless/children.d.ts.map +1 -0
  589. package/types/headless/devHeadlessNote.d.ts +2 -0
  590. package/types/headless/devHeadlessNote.d.ts.map +1 -0
  591. package/types/headless/keepMounted.d.ts +9 -0
  592. package/types/headless/keepMounted.d.ts.map +1 -0
  593. package/types/headless/types.d.ts +59 -0
  594. package/types/headless/types.d.ts.map +1 -0
  595. package/types/headless/useDrawer.d.ts +19 -0
  596. package/types/headless/useDrawer.d.ts.map +1 -0
  597. package/types/headless/useStack.d.ts +16 -0
  598. package/types/headless/useStack.d.ts.map +1 -0
  599. package/types/headless/useTabs.d.ts +3 -0
  600. package/types/headless/useTabs.d.ts.map +1 -0
  601. package/types/index.d.ts +6 -2
  602. package/types/index.d.ts.map +1 -1
  603. package/types/layouts/Drawer.d.ts +5 -15
  604. package/types/layouts/Drawer.d.ts.map +1 -1
  605. package/types/layouts/Drawer.web.d.ts +5 -0
  606. package/types/layouts/Drawer.web.d.ts.map +1 -0
  607. package/types/layouts/Stack.d.ts +8 -17
  608. package/types/layouts/Stack.d.ts.map +1 -1
  609. package/types/layouts/Tabs.d.ts +5 -15
  610. package/types/layouts/Tabs.d.ts.map +1 -1
  611. package/types/layouts/Tabs.web.d.ts +20 -0
  612. package/types/layouts/Tabs.web.d.ts.map +1 -0
  613. package/types/layouts/stack-navigator.d.ts +3 -2
  614. package/types/layouts/stack-navigator.d.ts.map +1 -1
  615. package/types/layouts/stack-navigator.web.d.ts +6 -0
  616. package/types/layouts/stack-navigator.web.d.ts.map +1 -1
  617. package/types/layouts/stack-utils/StackHeaderBackButton.d.ts.map +1 -1
  618. package/types/layouts/stack-utils/StackHeaderComponent.d.ts +1 -1
  619. package/types/layouts/stack-utils/StackHeaderComponent.d.ts.map +1 -1
  620. package/types/layouts/stack-utils/StackHeaderLeft.d.ts.map +1 -1
  621. package/types/layouts/stack-utils/StackHeaderRight.d.ts.map +1 -1
  622. package/types/layouts/stack-utils/StackHeaderSearchBar.d.ts.map +1 -1
  623. package/types/layouts/stack-utils/StackHeaderTitle.d.ts +1 -1
  624. package/types/layouts/stack-utils/StackHeaderTitle.d.ts.map +1 -1
  625. package/types/layouts/stack-utils/StackScreen.d.ts +5 -12
  626. package/types/layouts/stack-utils/StackScreen.d.ts.map +1 -1
  627. package/types/layouts/stack-utils/index.d.ts +1 -0
  628. package/types/layouts/stack-utils/index.d.ts.map +1 -1
  629. package/types/layouts/withLayoutContext.d.ts.map +1 -1
  630. package/types/link/Link.web.d.ts +3 -0
  631. package/types/link/Link.web.d.ts.map +1 -0
  632. package/types/link/useLinkTo.d.ts +1 -1
  633. package/types/link/useLinkTo.d.ts.map +1 -1
  634. package/types/router/router.d.ts.map +1 -1
  635. package/types/router/useScreens.d.ts.map +1 -1
  636. package/types/router/web/WebStackNavigator.d.ts.map +1 -1
  637. package/types/router/web/WebStackView.d.ts +9 -25
  638. package/types/router/web/WebStackView.d.ts.map +1 -1
  639. package/types/router/web/stackStateUtils.d.ts +1 -1
  640. package/types/router/web/stackStateUtils.d.ts.map +1 -1
  641. package/types/screensFeatureFlags.d.ts.map +1 -1
  642. package/types/screensFeatureFlags.native.d.ts +2 -0
  643. package/types/screensFeatureFlags.native.d.ts.map +1 -0
  644. package/types/typed-routes/generateRouteTypes.d.ts +1 -1
  645. package/types/typed-routes/generateRouteTypes.d.ts.map +1 -1
  646. package/types/ui/Slot.web.d.ts +5 -0
  647. package/types/ui/Slot.web.d.ts.map +1 -0
  648. package/types/ui/TabContext.d.ts +7 -7
  649. package/types/ui/TabList.web.d.ts +11 -0
  650. package/types/ui/TabList.web.d.ts.map +1 -0
  651. package/types/ui/TabRouter.d.ts +5 -5
  652. package/types/ui/TabRouter.d.ts.map +1 -1
  653. package/types/ui/TabSlot.web.d.ts +24 -0
  654. package/types/ui/TabSlot.web.d.ts.map +1 -0
  655. package/types/ui/TabTrigger.d.ts +4 -75
  656. package/types/ui/TabTrigger.d.ts.map +1 -1
  657. package/types/ui/TabTrigger.web.d.ts +11 -0
  658. package/types/ui/TabTrigger.web.d.ts.map +1 -0
  659. package/types/ui/Tabs.d.ts +2 -249
  660. package/types/ui/Tabs.d.ts.map +1 -1
  661. package/types/ui/Tabs.shared.d.ts +201 -0
  662. package/types/ui/Tabs.shared.d.ts.map +1 -0
  663. package/types/ui/Tabs.web.d.ts +10 -0
  664. package/types/ui/Tabs.web.d.ts.map +1 -0
  665. package/types/ui/useTabTrigger.d.ts +49 -0
  666. package/types/ui/useTabTrigger.d.ts.map +1 -0
  667. package/types/useBlocker.d.ts.map +1 -1
  668. package/types/useLoader.d.ts.map +1 -1
  669. package/types/utils/platform.d.ts +6 -0
  670. package/types/utils/platform.d.ts.map +1 -0
  671. package/types/utils/platform.web.d.ts +2 -0
  672. package/types/utils/platform.web.d.ts.map +1 -0
  673. package/types/utils/routeIndex.d.ts +10 -0
  674. package/types/utils/routeIndex.d.ts.map +1 -0
  675. package/types/utils/routeIndex.test.d.ts +2 -0
  676. package/types/utils/routeIndex.test.d.ts.map +1 -0
  677. package/types/utils/style.d.ts +6 -1
  678. package/types/utils/style.d.ts.map +1 -1
  679. package/types/views/LoadProgressBar.web.d.ts +21 -0
  680. package/types/views/LoadProgressBar.web.d.ts.map +1 -0
  681. package/types/views/Protected.d.ts.map +1 -1
  682. package/types/views/RootErrorBoundary.d.ts.map +1 -1
  683. package/types/views/RootErrorBoundary.web.d.ts +20 -0
  684. package/types/views/RootErrorBoundary.web.d.ts.map +1 -0
  685. package/types/views/RouteErrorView.d.ts +9 -0
  686. package/types/views/RouteErrorView.d.ts.map +1 -0
  687. package/types/views/RouteErrorView.web.d.ts +3 -0
  688. package/types/views/RouteErrorView.web.d.ts.map +1 -0
  689. package/types/views/Screen.d.ts.map +1 -1
  690. package/types/vite/getManifest.d.ts +2 -1
  691. package/types/vite/getManifest.d.ts.map +1 -1
  692. package/types/vite/one.d.ts.map +1 -1
  693. package/types/vite/plugins/bundledDevPlugin.d.ts +3 -0
  694. package/types/vite/plugins/bundledDevPlugin.d.ts.map +1 -0
  695. package/types/vite/plugins/devtoolsPlugin.d.ts.map +1 -1
  696. package/types/vite/plugins/fileSystemRouterPlugin.d.ts +2 -1
  697. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  698. package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts +2 -1
  699. package/types/vite/plugins/generateFileSystemRouteTypesPlugin.d.ts.map +1 -1
  700. package/types/vite/plugins/routeModuleHmrPlugin.d.ts +3 -0
  701. package/types/vite/plugins/routeModuleHmrPlugin.d.ts.map +1 -0
  702. package/types/vite/plugins/routeModuleHmrPlugin.test.d.ts +2 -0
  703. package/types/vite/plugins/routeModuleHmrPlugin.test.d.ts.map +1 -0
  704. package/types/vite/plugins/virtualEntryPlugin.d.ts +2 -0
  705. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
  706. package/types/vite/types.d.ts +10 -0
  707. package/types/vite/types.d.ts.map +1 -1
  708. package/vendor/react-dom/package.json +1 -1
  709. package/dist/cjs/fork/SSRNavigationContainer.cjs +0 -149
  710. package/dist/cjs/fork/SSRNavigationContainer.native.js +0 -199
  711. package/dist/cjs/fork/SSRNavigationContainer.native.js.map +0 -1
  712. package/dist/cjs/router/renderingRegistry.native.js.map +0 -1
  713. package/dist/cjs/router/web/ScreenRenderContext.native.js.map +0 -1
  714. package/dist/cjs/router/web/__tests__/WebStackView.runtime.test.cjs +0 -295
  715. package/dist/cjs/router/web/__tests__/WebStackView.runtime.test.native.js +0 -335
  716. package/dist/cjs/router/web/__tests__/WebStackView.runtime.test.native.js.map +0 -1
  717. package/dist/cjs/router/web/__tests__/WebStackView.test.cjs +0 -464
  718. package/dist/cjs/router/web/__tests__/WebStackView.test.native.js +0 -515
  719. package/dist/cjs/router/web/__tests__/WebStackView.test.native.js.map +0 -1
  720. package/dist/esm/fork/SSRNavigationContainer.mjs +0 -124
  721. package/dist/esm/fork/SSRNavigationContainer.mjs.map +0 -1
  722. package/dist/esm/fork/SSRNavigationContainer.native.js +0 -160
  723. package/dist/esm/fork/SSRNavigationContainer.native.js.map +0 -1
  724. package/dist/esm/router/renderingRegistry.mjs +0 -26
  725. package/dist/esm/router/renderingRegistry.mjs.map +0 -1
  726. package/dist/esm/router/renderingRegistry.native.js +0 -26
  727. package/dist/esm/router/renderingRegistry.native.js.map +0 -1
  728. package/dist/esm/router/web/ScreenRenderContext.mjs +0 -10
  729. package/dist/esm/router/web/ScreenRenderContext.mjs.map +0 -1
  730. package/dist/esm/router/web/ScreenRenderContext.native.js +0 -10
  731. package/dist/esm/router/web/ScreenRenderContext.native.js.map +0 -1
  732. package/dist/esm/router/web/__tests__/WebStackView.runtime.test.mjs +0 -272
  733. package/dist/esm/router/web/__tests__/WebStackView.runtime.test.mjs.map +0 -1
  734. package/dist/esm/router/web/__tests__/WebStackView.runtime.test.native.js +0 -309
  735. package/dist/esm/router/web/__tests__/WebStackView.runtime.test.native.js.map +0 -1
  736. package/dist/esm/router/web/__tests__/WebStackView.test.mjs +0 -465
  737. package/dist/esm/router/web/__tests__/WebStackView.test.mjs.map +0 -1
  738. package/dist/esm/router/web/__tests__/WebStackView.test.native.js +0 -513
  739. package/dist/esm/router/web/__tests__/WebStackView.test.native.js.map +0 -1
  740. package/src/fork/SSRNavigationContainer.tsx +0 -148
  741. package/src/router/renderingRegistry.ts +0 -109
  742. package/src/router/web/ScreenRenderContext.tsx +0 -61
  743. package/src/router/web/__tests__/WebStackView.runtime.test.tsx +0 -309
  744. package/src/router/web/__tests__/WebStackView.test.tsx +0 -444
  745. package/types/fork/SSRNavigationContainer.d.ts +0 -16
  746. package/types/fork/SSRNavigationContainer.d.ts.map +0 -1
  747. package/types/router/renderingRegistry.d.ts +0 -90
  748. package/types/router/renderingRegistry.d.ts.map +0 -1
  749. package/types/router/web/ScreenRenderContext.d.ts +0 -46
  750. package/types/router/web/ScreenRenderContext.d.ts.map +0 -1
@@ -1,12 +1,9 @@
1
- import { useState } from "react";
2
- import { Platform, StyleSheet } from "react-native-web";
3
- import { Screen, ScreenContainer } from "react-native-screens";
1
+ import { Activity, Fragment, useState } from "react";
4
2
  import { useNavigatorContext } from "../views/Navigator.mjs";
5
3
  import { TabContext } from "./TabContext.mjs";
6
4
  import { jsx } from "react/jsx-runtime";
7
5
  function useTabSlot({
8
- detachInactiveScreens = ["android", "ios", "web"].includes(Platform.OS),
9
- style,
6
+ detachInactiveScreens = true,
10
7
  renderFn = defaultTabsSlotRender
11
8
  } = {}) {
12
9
  const {
@@ -24,10 +21,7 @@ function useTabSlot({
24
21
  [focusedRouteKey]: true
25
22
  });
26
23
  }
27
- return /* @__PURE__ */jsx(ScreenContainer, {
28
- enabled: detachInactiveScreens,
29
- hasTwoStates: true,
30
- style: [styles.screenContainer, style],
24
+ return /* @__PURE__ */jsx(Fragment, {
31
25
  children: state.routes.map((route, index) => {
32
26
  const descriptor = descriptors[route.key];
33
27
  return /* @__PURE__ */jsx(TabContext.Provider, {
@@ -52,48 +46,22 @@ function defaultTabsSlotRender(descriptor, {
52
46
  }) {
53
47
  const {
54
48
  lazy = true,
55
- unmountOnBlur,
56
- freezeOnBlur
49
+ unmountOnBlur
57
50
  } = descriptor.options;
58
- if (unmountOnBlur && !isFocused) {
59
- return null;
51
+ if ((unmountOnBlur || detachInactiveScreens) && !isFocused) return null;
52
+ if (lazy && !loaded && !isFocused) return null;
53
+ if (!isFocused) {
54
+ return /* @__PURE__ */jsx(Activity, {
55
+ mode: "hidden",
56
+ children: descriptor.render()
57
+ }, descriptor.route.key);
60
58
  }
61
- if (lazy && !loaded && !isFocused) {
62
- return null;
63
- }
64
- return /* @__PURE__ */jsx(Screen, {
65
- enabled: detachInactiveScreens,
66
- activityState: isFocused ? 2 : 0,
67
- freezeOnBlur,
68
- style: [styles.screen, isFocused ? styles.focused : styles.unfocused],
59
+ return /* @__PURE__ */jsx(Fragment, {
69
60
  children: descriptor.render()
70
61
  }, descriptor.route.key);
71
62
  }
72
63
  function isTabSlot(child) {
73
64
  return child.type === TabSlot;
74
65
  }
75
- const styles = StyleSheet.create({
76
- screen: {
77
- flex: 1,
78
- position: "relative",
79
- height: "100%"
80
- },
81
- screenContainer: {
82
- flexShrink: 0,
83
- flexGrow: 1
84
- },
85
- focused: {
86
- zIndex: 1,
87
- display: "flex",
88
- flexShrink: 0,
89
- flexGrow: 1
90
- },
91
- unfocused: {
92
- zIndex: -1,
93
- display: "none",
94
- flexShrink: 1,
95
- flexGrow: 0
96
- }
97
- });
98
66
  export { TabSlot, defaultTabsSlotRender, isTabSlot, useTabSlot };
99
67
  //# sourceMappingURL=TabSlot.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","Platform","StyleSheet","Screen","ScreenContainer","useNavigatorContext","TabContext","jsx","useTabSlot","detachInactiveScreens","includes","OS","style","renderFn","defaultTabsSlotRender","state","descriptorsRef","descriptors","current","focusedRouteKey","routes","index","key","loaded","setLoaded","enabled","hasTwoStates","styles","screenContainer","children","map","route","descriptor","Provider","value","options","isFocused","TabSlot","props","lazy","unmountOnBlur","freezeOnBlur","activityState","screen","focused","unfocused","render","isTabSlot","child","type","create","flex","position","height","flexShrink","flexGrow","zIndex","display"],"sources":["../../../src/ui/TabSlot.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Activity","Fragment","useState","useNavigatorContext","TabContext","jsx","useTabSlot","detachInactiveScreens","renderFn","defaultTabsSlotRender","state","descriptorsRef","descriptors","current","focusedRouteKey","routes","index","key","loaded","setLoaded","children","map","route","descriptor","Provider","value","options","isFocused","TabSlot","props","lazy","unmountOnBlur","mode","render","isTabSlot","child","type"],"sources":["TabSlot.mjs"],"sourcesContent":["import {\n Activity,\n Fragment,\n useState\n} from \"react\";\nimport { useNavigatorContext } from \"../views/Navigator\";\nimport { TabContext } from \"./TabContext\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction useTabSlot({\n detachInactiveScreens = true,\n renderFn = defaultTabsSlotRender\n} = {}) {\n const { state, descriptorsRef } = useNavigatorContext();\n const descriptors = descriptorsRef.current;\n const focusedRouteKey = state.routes[state.index].key;\n const [loaded, setLoaded] = useState({ [focusedRouteKey]: true });\n if (!loaded[focusedRouteKey]) {\n setLoaded({ ...loaded, [focusedRouteKey]: true });\n }\n return /* @__PURE__ */ jsx(Fragment, { children: state.routes.map((route, index) => {\n const descriptor = descriptors[route.key];\n return /* @__PURE__ */ jsx(TabContext.Provider, { value: descriptor.options, children: renderFn(descriptor, {\n index,\n isFocused: state.index === index,\n loaded: loaded[route.key],\n detachInactiveScreens\n }) }, descriptor.route.key);\n }) });\n}\nfunction TabSlot(props) {\n return useTabSlot(props);\n}\nfunction defaultTabsSlotRender(descriptor, { isFocused, loaded, detachInactiveScreens }) {\n const { lazy = true, unmountOnBlur } = descriptor.options;\n if ((unmountOnBlur || detachInactiveScreens) && !isFocused) return null;\n if (lazy && !loaded && !isFocused) return null;\n if (!isFocused) {\n return /* @__PURE__ */ jsx(Activity, { mode: \"hidden\", children: descriptor.render() }, descriptor.route.key);\n }\n return /* @__PURE__ */ jsx(Fragment, { children: descriptor.render() }, descriptor.route.key);\n}\nfunction isTabSlot(child) {\n return child.type === TabSlot;\n}\nexport {\n TabSlot,\n defaultTabsSlotRender,\n isTabSlot,\n useTabSlot\n};\n//# sourceMappingURL=TabSlot.web.js.map\n"],"mappings":"AAAA,SACEA,QAAQ,EACRC,QAAQ,EACRC,QAAQ,QACH,OAAO;AACd,SAASC,mBAAmB,QAAQ,wBAAoB;AACxD,SAASC,UAAU,QAAQ,kBAAc;AACzC,SAASC,GAAG,QAAQ,mBAAmB;AACvC,SAASC,UAAUA,CAAC;EAClBC,qBAAqB,GAAG,IAAI;EAC5BC,QAAQ,GAAGC;AACb,CAAC,GAAG,CAAC,CAAC,EAAE;EACN,MAAM;IAAEC,KAAK;IAAEC;EAAe,CAAC,GAAGR,mBAAmB,CAAC,CAAC;EACvD,MAAMS,WAAW,GAAGD,cAAc,CAACE,OAAO;EAC1C,MAAMC,eAAe,GAAGJ,KAAK,CAACK,MAAM,CAACL,KAAK,CAACM,KAAK,CAAC,CAACC,GAAG;EACrD,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGjB,QAAQ,CAAC;IAAE,CAACY,eAAe,GAAG;EAAK,CAAC,CAAC;EACjE,IAAI,CAACI,MAAM,CAACJ,eAAe,CAAC,EAAE;IAC5BK,SAAS,CAAC;MAAE,GAAGD,MAAM;MAAE,CAACJ,eAAe,GAAG;IAAK,CAAC,CAAC;EACnD;EACA,OAAO,eAAgBT,GAAG,CAACJ,QAAQ,EAAE;IAAEmB,QAAQ,EAAEV,KAAK,CAACK,MAAM,CAACM,GAAG,CAAC,CAACC,KAAK,EAAEN,KAAK,KAAK;MAClF,MAAMO,UAAU,GAAGX,WAAW,CAACU,KAAK,CAACL,GAAG,CAAC;MACzC,OAAO,eAAgBZ,GAAG,CAACD,UAAU,CAACoB,QAAQ,EAAE;QAAEC,KAAK,EAAEF,UAAU,CAACG,OAAO;QAAEN,QAAQ,EAAEZ,QAAQ,CAACe,UAAU,EAAE;UAC1GP,KAAK;UACLW,SAAS,EAAEjB,KAAK,CAACM,KAAK,KAAKA,KAAK;UAChCE,MAAM,EAAEA,MAAM,CAACI,KAAK,CAACL,GAAG,CAAC;UACzBV;QACF,CAAC;MAAE,CAAC,EAAEgB,UAAU,CAACD,KAAK,CAACL,GAAG,CAAC;IAC7B,CAAC;EAAE,CAAC,CAAC;AACP;AACA,SAASW,OAAOA,CAACC,KAAK,EAAE;EACtB,OAAOvB,UAAU,CAACuB,KAAK,CAAC;AAC1B;AACA,SAASpB,qBAAqBA,CAACc,UAAU,EAAE;EAAEI,SAAS;EAAET,MAAM;EAAEX;AAAsB,CAAC,EAAE;EACvF,MAAM;IAAEuB,IAAI,GAAG,IAAI;IAAEC;EAAc,CAAC,GAAGR,UAAU,CAACG,OAAO;EACzD,IAAI,CAACK,aAAa,IAAIxB,qBAAqB,KAAK,CAACoB,SAAS,EAAE,OAAO,IAAI;EACvE,IAAIG,IAAI,IAAI,CAACZ,MAAM,IAAI,CAACS,SAAS,EAAE,OAAO,IAAI;EAC9C,IAAI,CAACA,SAAS,EAAE;IACd,OAAO,eAAgBtB,GAAG,CAACL,QAAQ,EAAE;MAAEgC,IAAI,EAAE,QAAQ;MAAEZ,QAAQ,EAAEG,UAAU,CAACU,MAAM,CAAC;IAAE,CAAC,EAAEV,UAAU,CAACD,KAAK,CAACL,GAAG,CAAC;EAC/G;EACA,OAAO,eAAgBZ,GAAG,CAACJ,QAAQ,EAAE;IAAEmB,QAAQ,EAAEG,UAAU,CAACU,MAAM,CAAC;EAAE,CAAC,EAAEV,UAAU,CAACD,KAAK,CAACL,GAAG,CAAC;AAC/F;AACA,SAASiB,SAASA,CAACC,KAAK,EAAE;EACxB,OAAOA,KAAK,CAACC,IAAI,KAAKR,OAAO;AAC/B;AACA,SACEA,OAAO,EACPnB,qBAAqB,EACrByB,SAAS,EACT5B,UAAU","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","useState","Platform","StyleSheet","Screen","ScreenContainer","useNavigatorContext","TabContext","useTabSlot","detachInactiveScreens","includes","OS","style","renderFn","defaultTabsSlotRender","arguments","length","state","descriptorsRef","descriptors","current","focusedRouteKey","routes","index","key","loaded","setLoaded","enabled","hasTwoStates","styles","screenContainer","children","map","route","descriptor","Provider","value","options","isFocused","TabSlot","props","param","lazy","unmountOnBlur","freezeOnBlur","activityState","screen","focused","unfocused","render","isTabSlot","child","type","create","flex","position","height","flexShrink","flexGrow","zIndex","display"],"sources":["../../../src/ui/TabSlot.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","useState","Platform","StyleSheet","Screen","ScreenContainer","useNavigatorContext","TabContext","useTabSlot","detachInactiveScreens","includes","OS","style","renderFn","defaultTabsSlotRender","arguments","length","state","descriptorsRef","descriptors","current","focusedRouteKey","routes","index","key","loaded","setLoaded","enabled","hasTwoStates","styles","screenContainer","children","map","route","descriptor","Provider","value","options","isFocused"],"sources":["../../../src/ui/TabSlot.web.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAAA,GAAA,IAAAC,IAAA;AAAA,SACEC,QAAA;AAAA,SAEAC,QAAA,EAAAC,UAAA;AAAA,SAEAC,MAAA,EAAAC,eAAA;AAAA,SACKC,mBAAA;AAGP,SAASC,UAAA,gCAA2B;AACpC,SAASC,WAAA;EAoCC;IAAAC,qBAAA,IAnBH,SAAS,EACd,OACA,MACF,CAAkBC,QAAI,CAAAR,QAAA,CAAAS,EAAA;IAAAC,KAAA;IAAAC,QAAA,GAAAC;EAAA,IAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;EACpB;IAAME,KAAE;IAAAC;EAAO,IAAeZ,mBAAI;EAClC,IAAAa,WAAM,GAAAD,cAAc,CAAAE,OAAe;EACnC,IAAAC,eAAM,GAAAJ,KAAkB,CAAAK,MAAM,CAAAL,KAAO,CAAAM,KAAM,EAAKC,GAAE;EAClD,KAAAC,MAAO,EAAAC,SAAQ,IAASzB,QAAI;IAE5B,CAAAoB,eAAY;EACV;EACF,KAAAI,MAAA,CAAAJ,eAAA;IAEAK,SACE;MAEI,GAAAD,MAAM;MAEN,CAAAJ,eACE;IACwB,EACpB;EAAA;EAC2B,OAC3B,eAAerB,IAAM,CAAGK,eAAA;IAAAsB,OACxB,EAAAlB,qBAAA;IACFmB,YANwB,MAAW;IASxChB,KACH,GAEJiB,MAAA,CAAAC,eAAA,EAEOlB,KAAS,CACd;IACFmB,QAAA,EAAAd,KAAA,CAAAK,MAAA,CAAAU,GAAA,WAAAC,KAAA,EAAAV,KAAA;MAEO,IAASW,UAAA,GAAAf,WACd,CAAAc,KAAA,CAAAT,GACA,CAAE;MAEF,OAAQ,eAAaxB,IAAA,CAAAO,UAAkB,CAAA4B,QAAW;QAE7CC,KAAA,EAAAF,UAAiB,CAAAG,OAAA;QAClBN,QAAS,EAAAlB,QAAW,CAAAqB,UAAW;UAE9BX,KAAA;UACHe,SACE,EAAArB,KAAA,CAAAM,KAAC,KAAAA,KAAA;UAILE,MAAA,EAAAA,MAAA,CAAAQ,KAAA,CAAAT,GAAA;UAEOf;QACT;MAKO,GAASyB,UAAU,CAAAD,KAAA,CAA+DT,GAAA;IACvF;EACF","ignoreList":[]}
@@ -1,20 +1,7 @@
1
- import { Slot } from "@radix-ui/react-slot";
2
- import { use, useCallback } from "react";
3
- import { Pressable, StyleSheet } from "react-native-web";
4
- import { appendBaseUrl } from "../fork/getPathFromState-mods.mjs";
5
- import { router } from "../router/imperative-api.mjs";
6
- import { stripGroupSegmentsFromPath } from "../router/matchers.mjs";
7
- import { useNavigatorContext } from "../views/Navigator.mjs";
8
- import { TabTriggerMapContext } from "./TabContext.mjs";
1
+ import { Link } from "../link/Link.mjs";
2
+ import { shouldHandleMouseEvent, useTabTrigger } from "./useTabTrigger.mjs";
3
+ import { useTabTrigger as useTabTrigger2 } from "./useTabTrigger.mjs";
9
4
  import { jsx } from "react/jsx-runtime";
10
- const TabTriggerSlot = Slot;
11
- function shouldHandleMouseEvent(e) {
12
- if (!e) return true;
13
- if ("button" in e) {
14
- return !e.metaKey && !e.altKey && !e.ctrlKey && !e.shiftKey && (e.button == null || e.button === 0) && [void 0, null, "", "self"].includes(e.currentTarget.target);
15
- }
16
- return true;
17
- }
18
5
  function TabTrigger({
19
6
  asChild,
20
7
  name,
@@ -30,124 +17,33 @@ function TabTrigger({
30
17
  resetOnFocus,
31
18
  ...props
32
19
  });
33
- if (asChild) {
34
- return /* @__PURE__ */jsx(TabTriggerSlot, {
35
- style: styles.tabTrigger,
36
- ...props,
37
- ...triggerProps,
38
- href: trigger?.resolvedHref,
39
- children: props.children
40
- });
41
- } else {
42
- const reactNativeWebProps = {
43
- href: trigger?.resolvedHref
44
- };
45
- return /* @__PURE__ */jsx(Pressable, {
46
- style: styles.tabTrigger,
47
- ...reactNativeWebProps,
48
- ...props,
49
- ...triggerProps,
20
+ const resolvedHref = trigger?.resolvedHref ?? href;
21
+ if (!resolvedHref) {
22
+ return /* @__PURE__ */jsx("button", {
23
+ type: "button",
24
+ onClick: event => triggerProps.onPress?.(event),
50
25
  children: props.children
51
26
  });
52
27
  }
28
+ return /* @__PURE__ */jsx(Link, {
29
+ ...props,
30
+ href: resolvedHref,
31
+ asChild,
32
+ onPress: event => {
33
+ if (!shouldHandleMouseEvent(event)) return;
34
+ event.preventDefault();
35
+ triggerProps.onPress?.(event);
36
+ },
37
+ onLongPress: triggerProps.onLongPress,
38
+ "aria-current": trigger?.isFocused ? "page" : void 0,
39
+ ...(asChild ? {
40
+ isFocused: Boolean(trigger?.isFocused)
41
+ } : null),
42
+ children: props.children
43
+ });
53
44
  }
54
45
  function isTabTrigger(child) {
55
46
  return child.type === TabTrigger;
56
47
  }
57
- function useTabTrigger(options) {
58
- const {
59
- state,
60
- navigation
61
- } = useNavigatorContext();
62
- const {
63
- name,
64
- resetOnFocus,
65
- onPress,
66
- onLongPress
67
- } = options;
68
- const triggerMap = use(TabTriggerMapContext);
69
- const getTrigger = useCallback(name2 => {
70
- const config = triggerMap[name2];
71
- if (!config) {
72
- return;
73
- }
74
- return {
75
- isFocused: state.index === config.index,
76
- route: state.routes[config.index],
77
- resolvedHref: stripGroupSegmentsFromPath(appendBaseUrl(config.href)),
78
- ...config
79
- };
80
- }, [triggerMap, state]);
81
- const trigger = name !== void 0 ? getTrigger(name) : void 0;
82
- const switchTab = useCallback((name2, options2) => {
83
- const config = triggerMap[name2];
84
- if (config) {
85
- if (config.type === "external") {
86
- return router.navigate(config.href);
87
- } else {
88
- return navigation?.dispatch({
89
- ...config.action,
90
- type: "JUMP_TO",
91
- payload: {
92
- ...config.action.payload,
93
- ...options2
94
- }
95
- });
96
- }
97
- } else {
98
- return navigation?.dispatch({
99
- type: "JUMP_TO",
100
- payload: {
101
- name: name2
102
- }
103
- });
104
- }
105
- }, [navigation, triggerMap]);
106
- const handleOnPress = useCallback(event => {
107
- onPress?.(event);
108
- if (!trigger) return;
109
- if (event?.isDefaultPrevented()) return;
110
- navigation?.emit({
111
- type: "tabPress",
112
- target: trigger.type === "internal" ? trigger.route.key : trigger?.href,
113
- canPreventDefault: true
114
- });
115
- if (!shouldHandleMouseEvent(event)) return;
116
- if (trigger.isFocused) return;
117
- switchTab(name, {
118
- resetOnFocus
119
- });
120
- }, [onPress, name, resetOnFocus, trigger, navigation, switchTab]);
121
- const handleOnLongPress = useCallback(event => {
122
- onLongPress?.(event);
123
- if (!trigger) return;
124
- if (event?.isDefaultPrevented()) return;
125
- navigation?.emit({
126
- type: "tabLongPress",
127
- target: trigger.type === "internal" ? trigger.route.key : trigger?.href
128
- });
129
- if (!shouldHandleMouseEvent(event)) return;
130
- switchTab(name, {
131
- resetOnFocus
132
- });
133
- }, [onLongPress, name, resetOnFocus, trigger, navigation, switchTab]);
134
- const triggerProps = {
135
- isFocused: Boolean(trigger?.isFocused),
136
- onPress: handleOnPress,
137
- onLongPress: handleOnLongPress
138
- };
139
- return {
140
- switchTab,
141
- getTrigger,
142
- trigger,
143
- triggerProps
144
- };
145
- }
146
- const styles = StyleSheet.create({
147
- tabTrigger: {
148
- flexDirection: "row",
149
- justifyContent: "space-between"
150
- }
151
- });
152
- export { TabTrigger, isTabTrigger, useTabTrigger };
48
+ export { TabTrigger, isTabTrigger, useTabTrigger2 as useTabTrigger };
153
49
  //# sourceMappingURL=TabTrigger.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["Slot","use","useCallback","Pressable","StyleSheet","appendBaseUrl","router","stripGroupSegmentsFromPath","useNavigatorContext","TabTriggerMapContext","jsx","TabTriggerSlot","shouldHandleMouseEvent","e","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","TabTrigger","asChild","name","href","resetOnFocus","props","trigger","triggerProps","useTabTrigger","style","styles","tabTrigger","resolvedHref","children","reactNativeWebProps","isTabTrigger","child","type","options","state","navigation","onPress","onLongPress","triggerMap","getTrigger","config","isFocused","index","route","routes","switchTab","options2","navigate","dispatch","action","payload","name2","handleOnPress","event","isDefaultPrevented","emit","key","canPreventDefault","handleOnLongPress","Boolean","create","flexDirection","justifyContent"],"sources":["../../../src/ui/TabTrigger.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Link","shouldHandleMouseEvent","useTabTrigger","useTabTrigger2","jsx","TabTrigger","asChild","name","href","resetOnFocus","props","trigger","triggerProps","resolvedHref","type","onClick","event","onPress","children","preventDefault","onLongPress","isFocused","Boolean","isTabTrigger","child"],"sources":["TabTrigger.mjs"],"sourcesContent":["import { Link } from \"../link/Link\";\nimport {\n shouldHandleMouseEvent,\n useTabTrigger\n} from \"./useTabTrigger\";\nimport { useTabTrigger as useTabTrigger2 } from \"./useTabTrigger\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction TabTrigger({\n asChild,\n name,\n href,\n resetOnFocus,\n ...props\n}) {\n const { trigger, triggerProps } = useTabTrigger({\n name,\n resetOnFocus,\n ...props\n });\n const resolvedHref = trigger?.resolvedHref ?? href;\n if (!resolvedHref) {\n return /* @__PURE__ */ jsx(\"button\", { type: \"button\", onClick: (event) => triggerProps.onPress?.(event), children: props.children });\n }\n return /* @__PURE__ */ jsx(\n Link,\n {\n ...props,\n href: resolvedHref,\n asChild,\n onPress: (event) => {\n if (!shouldHandleMouseEvent(event)) return;\n event.preventDefault();\n triggerProps.onPress?.(event);\n },\n onLongPress: triggerProps.onLongPress,\n \"aria-current\": trigger?.isFocused ? \"page\" : void 0,\n ...asChild ? { isFocused: Boolean(trigger?.isFocused) } : null,\n children: props.children\n }\n );\n}\nfunction isTabTrigger(child) {\n return child.type === TabTrigger;\n}\nexport {\n TabTrigger,\n isTabTrigger,\n useTabTrigger2 as useTabTrigger\n};\n//# sourceMappingURL=TabTrigger.web.js.map\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,kBAAc;AACnC,SACEC,sBAAsB,EACtBC,aAAa,QACR,qBAAiB;AACxB,SAASA,aAAa,IAAIC,cAAc,QAAQ,qBAAiB;AACjE,SAASC,GAAG,QAAQ,mBAAmB;AACvC,SAASC,UAAUA,CAAC;EAClBC,OAAO;EACPC,IAAI;EACJC,IAAI;EACJC,YAAY;EACZ,GAAGC;AACL,CAAC,EAAE;EACD,MAAM;IAAEC,OAAO;IAAEC;EAAa,CAAC,GAAGV,aAAa,CAAC;IAC9CK,IAAI;IACJE,YAAY;IACZ,GAAGC;EACL,CAAC,CAAC;EACF,MAAMG,YAAY,GAAGF,OAAO,EAAEE,YAAY,IAAIL,IAAI;EAClD,IAAI,CAACK,YAAY,EAAE;IACjB,OAAO,eAAgBT,GAAG,CAAC,QAAQ,EAAE;MAAEU,IAAI,EAAE,QAAQ;MAAEC,OAAO,EAAGC,KAAK,IAAKJ,YAAY,CAACK,OAAO,GAAGD,KAAK,CAAC;MAAEE,QAAQ,EAAER,KAAK,CAACQ;IAAS,CAAC,CAAC;EACvI;EACA,OAAO,eAAgBd,GAAG,CACxBJ,IAAI,EACJ;IACE,GAAGU,KAAK;IACRF,IAAI,EAAEK,YAAY;IAClBP,OAAO;IACPW,OAAO,EAAGD,KAAK,IAAK;MAClB,IAAI,CAACf,sBAAsB,CAACe,KAAK,CAAC,EAAE;MACpCA,KAAK,CAACG,cAAc,CAAC,CAAC;MACtBP,YAAY,CAACK,OAAO,GAAGD,KAAK,CAAC;IAC/B,CAAC;IACDI,WAAW,EAAER,YAAY,CAACQ,WAAW;IACrC,cAAc,EAAET,OAAO,EAAEU,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;IACpD,IAAGf,OAAO,GAAG;MAAEe,SAAS,EAAEC,OAAO,CAACX,OAAO,EAAEU,SAAS;IAAE,CAAC,GAAG,IAAI;IAC9DH,QAAQ,EAAER,KAAK,CAACQ;EAClB,CACF,CAAC;AACH;AACA,SAASK,YAAYA,CAACC,KAAK,EAAE;EAC3B,OAAOA,KAAK,CAACV,IAAI,KAAKT,UAAU;AAClC;AACA,SACEA,UAAU,EACVkB,YAAY,EACZpB,cAAc,IAAID,aAAa","ignoreList":[]}
@@ -1,20 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Slot } from "@radix-ui/react-slot";
3
- import { use, useCallback } from "react";
4
3
  import { Pressable, StyleSheet } from "react-native";
5
- import { appendBaseUrl } from "../fork/getPathFromState-mods.native.js";
6
- import { router } from "../router/imperative-api.native.js";
7
- import { stripGroupSegmentsFromPath } from "../router/matchers.native.js";
8
- import { useNavigatorContext } from "../views/Navigator.native.js";
9
- import { TabTriggerMapContext } from "./TabContext.native.js";
4
+ import { useTabTrigger } from "./useTabTrigger.native.js";
5
+ import { useTabTrigger as useTabTrigger2 } from "./useTabTrigger.native.js";
10
6
  var TabTriggerSlot = Slot;
11
- function shouldHandleMouseEvent(e) {
12
- if (!e) return true;
13
- if ("button" in e) {
14
- return !e.metaKey && !e.altKey && !e.ctrlKey && !e.shiftKey && (e.button == null || e.button === 0) && [void 0, null, "", "self"].includes(e.currentTarget.target);
15
- }
16
- return true;
17
- }
18
7
  function TabTrigger(param) {
19
8
  var {
20
9
  asChild,
@@ -39,116 +28,26 @@ function TabTrigger(param) {
39
28
  href: trigger === null || trigger === void 0 ? void 0 : trigger.resolvedHref,
40
29
  children: props.children
41
30
  });
42
- } else {
43
- var reactNativeWebProps = {
44
- href: trigger === null || trigger === void 0 ? void 0 : trigger.resolvedHref
45
- };
46
- return /* @__PURE__ */_jsx(Pressable, {
47
- style: styles.tabTrigger,
48
- ...reactNativeWebProps,
49
- ...props,
50
- ...triggerProps,
51
- children: props.children
52
- });
53
31
  }
32
+ var reactNativeWebProps = {
33
+ href: trigger === null || trigger === void 0 ? void 0 : trigger.resolvedHref
34
+ };
35
+ return /* @__PURE__ */_jsx(Pressable, {
36
+ style: styles.tabTrigger,
37
+ ...reactNativeWebProps,
38
+ ...props,
39
+ ...triggerProps,
40
+ children: props.children
41
+ });
54
42
  }
55
43
  function isTabTrigger(child) {
56
44
  return child.type === TabTrigger;
57
45
  }
58
- function useTabTrigger(options) {
59
- var {
60
- state,
61
- navigation
62
- } = useNavigatorContext();
63
- var {
64
- name,
65
- resetOnFocus,
66
- onPress,
67
- onLongPress
68
- } = options;
69
- var triggerMap = use(TabTriggerMapContext);
70
- var getTrigger = useCallback(function (name2) {
71
- var config = triggerMap[name2];
72
- if (!config) {
73
- return;
74
- }
75
- return {
76
- isFocused: state.index === config.index,
77
- route: state.routes[config.index],
78
- resolvedHref: stripGroupSegmentsFromPath(appendBaseUrl(config.href)),
79
- ...config
80
- };
81
- }, [triggerMap, state]);
82
- var trigger = name !== void 0 ? getTrigger(name) : void 0;
83
- var switchTab = useCallback(function (name2, options2) {
84
- var config = triggerMap[name2];
85
- if (config) {
86
- if (config.type === "external") {
87
- return router.navigate(config.href);
88
- } else {
89
- return navigation === null || navigation === void 0 ? void 0 : navigation.dispatch({
90
- ...config.action,
91
- type: "JUMP_TO",
92
- payload: {
93
- ...config.action.payload,
94
- ...options2
95
- }
96
- });
97
- }
98
- } else {
99
- return navigation === null || navigation === void 0 ? void 0 : navigation.dispatch({
100
- type: "JUMP_TO",
101
- payload: {
102
- name: name2
103
- }
104
- });
105
- }
106
- }, [navigation, triggerMap]);
107
- var handleOnPress = useCallback(function (event) {
108
- onPress === null || onPress === void 0 ? void 0 : onPress(event);
109
- if (!trigger) return;
110
- if (event === null || event === void 0 ? void 0 : event.isDefaultPrevented()) return;
111
- navigation === null || navigation === void 0 ? void 0 : navigation.emit({
112
- type: "tabPress",
113
- target: trigger.type === "internal" ? trigger.route.key : trigger === null || trigger === void 0 ? void 0 : trigger.href,
114
- canPreventDefault: true
115
- });
116
- if (!shouldHandleMouseEvent(event)) return;
117
- if (trigger.isFocused) return;
118
- switchTab(name, {
119
- resetOnFocus
120
- });
121
- }, [onPress, name, resetOnFocus, trigger, navigation, switchTab]);
122
- var handleOnLongPress = useCallback(function (event) {
123
- onLongPress === null || onLongPress === void 0 ? void 0 : onLongPress(event);
124
- if (!trigger) return;
125
- if (event === null || event === void 0 ? void 0 : event.isDefaultPrevented()) return;
126
- navigation === null || navigation === void 0 ? void 0 : navigation.emit({
127
- type: "tabLongPress",
128
- target: trigger.type === "internal" ? trigger.route.key : trigger === null || trigger === void 0 ? void 0 : trigger.href
129
- });
130
- if (!shouldHandleMouseEvent(event)) return;
131
- switchTab(name, {
132
- resetOnFocus
133
- });
134
- }, [onLongPress, name, resetOnFocus, trigger, navigation, switchTab]);
135
- var triggerProps = {
136
- isFocused: Boolean(trigger === null || trigger === void 0 ? void 0 : trigger.isFocused),
137
- onPress: handleOnPress,
138
- onLongPress: handleOnLongPress
139
- };
140
- return {
141
- switchTab,
142
- getTrigger,
143
- trigger,
144
- triggerProps
145
- };
146
- }
147
46
  var styles = StyleSheet.create({
148
47
  tabTrigger: {
149
48
  flexDirection: "row",
150
49
  justifyContent: "space-between"
151
50
  }
152
51
  });
153
- export { TabTrigger, isTabTrigger, useTabTrigger };
52
+ export { TabTrigger, isTabTrigger, useTabTrigger2 as useTabTrigger };
154
53
  //# sourceMappingURL=TabTrigger.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","Slot","use","useCallback","Pressable","StyleSheet","appendBaseUrl","router","stripGroupSegmentsFromPath","useNavigatorContext","TabTriggerMapContext","TabTriggerSlot","shouldHandleMouseEvent","e","metaKey","altKey","ctrlKey","shiftKey","button","includes","currentTarget","target","TabTrigger","param","asChild","name","href","resetOnFocus","props","trigger","triggerProps","useTabTrigger","style","styles","tabTrigger","resolvedHref","children","reactNativeWebProps","isTabTrigger","child","type","options","state","navigation","onPress","onLongPress","triggerMap","getTrigger","name2","config","isFocused","index","route","routes","switchTab","options2","navigate","dispatch","action","payload","handleOnPress","event","isDefaultPrevented","emit","key","canPreventDefault","handleOnLongPress","Boolean","create","flexDirection","justifyContent"],"sources":["../../../src/ui/TabTrigger.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","Slot","Pressable","StyleSheet","useTabTrigger","useTabTrigger2","TabTriggerSlot","TabTrigger","param","asChild","name","href","resetOnFocus","props","trigger","triggerProps","style","styles","tabTrigger","resolvedHref","children","reactNativeWebProps","isTabTrigger","child","type","create","flexDirection","justifyContent"],"sources":["../../../src/ui/TabTrigger.web.tsx"],"sourcesContent":[null],"mappings":"AAEA,SAASA,GAAA,IAAAC,IAAA,QAAY;AACrB,SAAAC,IAAA;AAAA,SACEC,SAAA,EAAAC,UAAA;AAAA,SACAC,aAAA;AAAA,SAEKA,aAAA,IAAAC,cAAA;AAUP,IAAAC,cAAS,GAAAL,IAAA;AAoBH,SAAAM,WAAAC,KAAA;EAhBC;IAAAC,OAAS;IAAAC,IAAW;IAAAC,IAAA;IAAAC,YAAA;IAAA,GAAAC;EAAA,IAAAL,KAAA;EACzB;IAAAM,OAAA;IAAAC;EAAA,IAAAX,aAAA;IACAM,IAAA;IACAE,YAAA;IACA,GAAAC;EACA;EACF,IAAoBJ,OAAA;IAClB,OAAQ,eAAST,IAAA,CAAaM,cAAI;MAChCU,KAAA,EAAAC,MAAA,CAAAC,UAAA;MACA,GAAAL,KAAA;MACA,GAAGE,YAAA;MACJJ,IAAA,EAAAG,OAAA,aAAAA,OAAA,uBAAAA,OAAA,CAAAK,YAAA;MACDC,QAAM,EAAAP,KAAA,CAAAO;IAEN,EAAI;EACF;EAKF,IAAAC,mBAAA;IAEAV,IAAA,EACEG,OAAA,aAAAA,OAAA,uBAAAA,OAAA,CAAAK;EAAA;EAAC,sBAAAnB,IAAA,CAAAE,SAAA;IAAAc,KACM,EAAAC,MAAA,CAAAC,UAAA;IAAA,GACLG,mBAAM;IAAA,GACNR,KAAA;IAAA,GACAE,YAAU;IAERK,QAAI,EAACP,KAAA,CAAAO;EACL;AACA;AAAmC,SACrCE,aAAAC,KAAA;EAAA,OACAA,KAAA,CAAAC,IAAa,KAAAjB,UAAa;AAAA;AACkB,IAAAU,MACvC,GAAAd,UAAY,CAAAsB,MAAA;EAA2CP,UAE3D;IAAMQ,aAAA;IACTC,cAAA;EAEJ;AAKO;AAGL,SACFpB,UAAA,E","ignoreList":[]}