one 1.1.388 → 1.1.390

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 (602) hide show
  1. package/dist/cjs/Root.cjs +7 -11
  2. package/dist/cjs/Root.js +7 -14
  3. package/dist/cjs/Root.js.map +1 -1
  4. package/dist/cjs/Root.native.js +22 -15
  5. package/dist/cjs/Root.native.js.map +2 -2
  6. package/dist/cjs/cli/build.cjs +1 -1
  7. package/dist/cjs/cli/build.js +1 -1
  8. package/dist/cjs/cli/build.js.map +1 -1
  9. package/dist/cjs/cli/build.native.js +1 -1
  10. package/dist/cjs/cli/build.native.js.map +1 -1
  11. package/dist/cjs/constants.cjs +5 -1
  12. package/dist/cjs/constants.js +3 -1
  13. package/dist/cjs/constants.js.map +1 -1
  14. package/dist/cjs/constants.native.js +5 -1
  15. package/dist/cjs/constants.native.js.map +2 -2
  16. package/dist/cjs/createApp.cjs +22 -82
  17. package/dist/cjs/createApp.js +17 -75
  18. package/dist/cjs/createApp.js.map +1 -1
  19. package/dist/cjs/createApp.native.js +0 -1
  20. package/dist/cjs/createApp.native.js.map +2 -2
  21. package/dist/cjs/createHandleRequest.cjs +1 -1
  22. package/dist/cjs/createHandleRequest.js +1 -1
  23. package/dist/cjs/createHandleRequest.js.map +1 -1
  24. package/dist/cjs/createHandleRequest.native.js +1 -1
  25. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  26. package/dist/cjs/fork/getPathFromState.cjs +1 -1
  27. package/dist/cjs/fork/getPathFromState.js +1 -1
  28. package/dist/cjs/fork/getPathFromState.native.js +1 -1
  29. package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
  30. package/dist/cjs/fork/getStateFromPath.cjs +1 -1
  31. package/dist/cjs/fork/getStateFromPath.js +1 -1
  32. package/dist/cjs/fork/getStateFromPath.js.map +1 -1
  33. package/dist/cjs/fork/getStateFromPath.native.js +1 -1
  34. package/dist/cjs/fork/getStateFromPath.native.js.map +1 -1
  35. package/dist/cjs/getReactNavigationConfig.cjs +1 -1
  36. package/dist/cjs/getReactNavigationConfig.js +1 -1
  37. package/dist/cjs/getReactNavigationConfig.native.js +1 -1
  38. package/dist/cjs/hooks.cjs +2 -2
  39. package/dist/cjs/hooks.js +1 -1
  40. package/dist/cjs/hooks.js.map +1 -1
  41. package/dist/cjs/hooks.native.js +1 -1
  42. package/dist/cjs/hooks.native.js.map +1 -1
  43. package/dist/cjs/index.cjs +3 -3
  44. package/dist/cjs/index.js +2 -2
  45. package/dist/cjs/index.js.map +1 -1
  46. package/dist/cjs/index.native.js +2 -2
  47. package/dist/cjs/index.native.js.map +1 -1
  48. package/dist/cjs/layouts/Tabs.js +32 -28
  49. package/dist/cjs/layouts/Tabs.js.map +1 -1
  50. package/dist/cjs/layouts/Tabs.native.js.map +1 -1
  51. package/dist/cjs/layouts/withLayoutContext.cjs +16 -11
  52. package/dist/cjs/layouts/withLayoutContext.js +11 -7
  53. package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
  54. package/dist/cjs/layouts/withLayoutContext.native.js +10 -7
  55. package/dist/cjs/layouts/withLayoutContext.native.js.map +2 -2
  56. package/dist/cjs/link/useLinkTo.cjs +1 -1
  57. package/dist/cjs/link/useLinkTo.js +1 -1
  58. package/dist/cjs/link/useLinkTo.native.js +1 -1
  59. package/dist/cjs/render.cjs +3 -2
  60. package/dist/cjs/render.js +3 -2
  61. package/dist/cjs/render.js.map +1 -1
  62. package/dist/cjs/{Route.js.map → router/Route.js.map} +1 -1
  63. package/dist/cjs/{Route.native.js.map → router/Route.native.js.map} +1 -1
  64. package/dist/cjs/{createRoute.cjs → router/createRoute.cjs} +1 -1
  65. package/dist/cjs/{createRoute.js → router/createRoute.js} +1 -1
  66. package/dist/cjs/{createRoute.js.map → router/createRoute.js.map} +1 -1
  67. package/dist/cjs/{createRoute.native.js → router/createRoute.native.js} +1 -1
  68. package/dist/cjs/{createRoute.native.js.map → router/createRoute.native.js.map} +1 -1
  69. package/dist/cjs/router/filterRootHTML.cjs +62 -0
  70. package/dist/cjs/router/filterRootHTML.js +49 -0
  71. package/dist/cjs/router/filterRootHTML.js.map +6 -0
  72. package/dist/cjs/router/filterRootHTML.native.js +55 -0
  73. package/dist/cjs/router/filterRootHTML.native.js.map +6 -0
  74. package/dist/cjs/{getLinkingConfig.cjs → router/getLinkingConfig.cjs} +2 -2
  75. package/dist/cjs/{getLinkingConfig.js → router/getLinkingConfig.js} +1 -1
  76. package/dist/cjs/router/getLinkingConfig.js.map +6 -0
  77. package/dist/cjs/{getLinkingConfig.native.js → router/getLinkingConfig.native.js} +1 -1
  78. package/dist/cjs/router/getLinkingConfig.native.js.map +6 -0
  79. package/dist/cjs/{getRoutes.cjs → router/getRoutes.cjs} +3 -3
  80. package/dist/cjs/{getRoutes.js → router/getRoutes.js} +2 -2
  81. package/dist/cjs/{getRoutes.js.map → router/getRoutes.js.map} +2 -2
  82. package/dist/cjs/{getRoutes.native.js → router/getRoutes.native.js} +2 -2
  83. package/dist/cjs/{getRoutes.native.js.map → router/getRoutes.native.js.map} +2 -2
  84. package/dist/cjs/{imperative-api.cjs → router/imperative-api.cjs} +1 -1
  85. package/dist/cjs/{imperative-api.js → router/imperative-api.js} +1 -1
  86. package/dist/cjs/{imperative-api.js.map → router/imperative-api.js.map} +1 -1
  87. package/dist/cjs/{imperative-api.native.js → router/imperative-api.native.js} +1 -1
  88. package/dist/cjs/{imperative-api.native.js.map → router/imperative-api.native.js.map} +2 -2
  89. package/dist/cjs/{matchers.js.map → router/matchers.js.map} +1 -1
  90. package/dist/cjs/{matchers.native.js.map → router/matchers.native.js.map} +1 -1
  91. package/dist/cjs/router/router.cjs +6 -6
  92. package/dist/cjs/router/router.js +1 -1
  93. package/dist/cjs/router/router.js.map +1 -1
  94. package/dist/cjs/router/router.native.js +1 -1
  95. package/dist/cjs/router/router.native.js.map +1 -1
  96. package/dist/cjs/{sortRoutes.js.map → router/sortRoutes.js.map} +1 -1
  97. package/dist/cjs/{sortRoutes.native.js.map → router/sortRoutes.native.js.map} +1 -1
  98. package/dist/cjs/{useNavigation.js.map → router/useNavigation.js.map} +1 -1
  99. package/dist/cjs/{useNavigation.native.js.map → router/useNavigation.native.js.map} +1 -1
  100. package/dist/cjs/{useScreens.cjs → router/useScreens.cjs} +63 -12
  101. package/dist/cjs/{useScreens.js → router/useScreens.js} +35 -9
  102. package/dist/cjs/router/useScreens.js.map +6 -0
  103. package/dist/cjs/{useScreens.native.js → router/useScreens.native.js} +16 -9
  104. package/dist/cjs/router/useScreens.native.js.map +6 -0
  105. package/dist/cjs/{useViteRoutes.js.map → router/useViteRoutes.js.map} +1 -1
  106. package/dist/cjs/{useViteRoutes.native.js.map → router/useViteRoutes.native.js.map} +1 -1
  107. package/dist/cjs/server/createRoutesManifest.cjs +1 -1
  108. package/dist/cjs/server/createRoutesManifest.js +1 -1
  109. package/dist/cjs/server/createRoutesManifest.js.map +1 -1
  110. package/dist/cjs/server/createRoutesManifest.native.js +1 -1
  111. package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
  112. package/dist/cjs/server/getServerManifest.cjs +2 -2
  113. package/dist/cjs/server/getServerManifest.js +1 -1
  114. package/dist/cjs/server/getServerManifest.js.map +1 -1
  115. package/dist/cjs/server/getServerManifest.native.js +1 -1
  116. package/dist/cjs/server/getServerManifest.native.js.map +1 -1
  117. package/dist/cjs/server/oneServe.cjs +1 -1
  118. package/dist/cjs/server/oneServe.js +1 -1
  119. package/dist/cjs/server/oneServe.js.map +1 -1
  120. package/dist/cjs/server/oneServe.native.js +1 -1
  121. package/dist/cjs/server/oneServe.native.js.map +1 -1
  122. package/dist/cjs/typed-routes/generateRouteTypes.cjs +1 -1
  123. package/dist/cjs/typed-routes/generateRouteTypes.js +1 -1
  124. package/dist/cjs/typed-routes/generateRouteTypes.js.map +1 -1
  125. package/dist/cjs/typed-routes/generateRouteTypes.native.js +1 -1
  126. package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
  127. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.cjs +2 -2
  128. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js +1 -1
  129. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js.map +1 -1
  130. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js +1 -1
  131. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
  132. package/dist/cjs/useLoader.cjs +2 -2
  133. package/dist/cjs/useLoader.js +1 -1
  134. package/dist/cjs/useLoader.js.map +1 -1
  135. package/dist/cjs/useLoader.native.js +1 -1
  136. package/dist/cjs/useLoader.native.js.map +1 -1
  137. package/dist/cjs/{cleanUrl.cjs → utils/cleanUrl.cjs} +3 -3
  138. package/dist/cjs/{cleanUrl.js → utils/cleanUrl.js} +1 -1
  139. package/dist/cjs/{cleanUrl.js.map → utils/cleanUrl.js.map} +2 -2
  140. package/dist/cjs/{cleanUrl.native.js → utils/cleanUrl.native.js} +1 -1
  141. package/dist/cjs/{cleanUrl.native.js.map → utils/cleanUrl.native.js.map} +2 -2
  142. package/dist/cjs/{platform.js.map → utils/platform.js.map} +1 -1
  143. package/dist/cjs/{platform.native.js.map → utils/platform.native.js.map} +1 -1
  144. package/dist/cjs/utils/redirect.cjs +1 -1
  145. package/dist/cjs/utils/redirect.js +1 -1
  146. package/dist/cjs/utils/redirect.native.js +1 -1
  147. package/dist/cjs/utils/redirect.native.js.map +1 -1
  148. package/dist/cjs/utils/serverContext.cjs +54 -0
  149. package/dist/cjs/utils/serverContext.js +51 -0
  150. package/dist/cjs/utils/serverContext.js.map +6 -0
  151. package/dist/cjs/utils/serverContext.native.js +55 -0
  152. package/dist/cjs/utils/serverContext.native.js.map +6 -0
  153. package/dist/cjs/utils/useConstant.cjs +44 -0
  154. package/dist/cjs/utils/useConstant.js +35 -0
  155. package/dist/cjs/utils/useConstant.js.map +6 -0
  156. package/dist/cjs/utils/useConstant.native.js +44 -0
  157. package/dist/cjs/utils/useConstant.native.js.map +6 -0
  158. package/dist/cjs/utils/withStaticProperties.cjs +56 -0
  159. package/dist/cjs/utils/withStaticProperties.js +44 -0
  160. package/dist/cjs/utils/withStaticProperties.js.map +6 -0
  161. package/dist/cjs/utils/withStaticProperties.native.js +53 -0
  162. package/dist/cjs/utils/withStaticProperties.native.js.map +6 -0
  163. package/dist/cjs/views/EmptyRoute.cjs +1 -1
  164. package/dist/cjs/views/EmptyRoute.js +1 -1
  165. package/dist/cjs/views/EmptyRoute.native.js +1 -1
  166. package/dist/cjs/views/LoadProgressBar.cjs +1 -1
  167. package/dist/cjs/views/LoadProgressBar.js +1 -1
  168. package/dist/cjs/views/LoadProgressBar.js.map +1 -1
  169. package/dist/cjs/views/LoadProgressBar.native.js +1 -1
  170. package/dist/cjs/views/LoadProgressBar.native.js.map +1 -1
  171. package/dist/cjs/views/Navigator.cjs +2 -2
  172. package/dist/cjs/views/Navigator.js +1 -1
  173. package/dist/cjs/views/Navigator.js.map +1 -1
  174. package/dist/cjs/views/Navigator.native.js +1 -1
  175. package/dist/cjs/views/Navigator.native.js.map +1 -1
  176. package/dist/cjs/views/Screen.cjs +1 -1
  177. package/dist/cjs/views/Screen.js +1 -1
  178. package/dist/cjs/views/Screen.native.js +1 -1
  179. package/dist/cjs/vite/DevHead.cjs +59 -0
  180. package/dist/cjs/vite/DevHead.js +54 -0
  181. package/dist/cjs/vite/DevHead.js.map +6 -0
  182. package/dist/cjs/vite/DevHead.native.js +29 -0
  183. package/dist/cjs/vite/DevHead.native.js.map +6 -0
  184. package/dist/cjs/vite/one.cjs +1 -27
  185. package/dist/cjs/vite/one.js +0 -25
  186. package/dist/cjs/vite/one.js.map +1 -1
  187. package/dist/cjs/vite/one.native.js +0 -25
  188. package/dist/cjs/vite/one.native.js.map +1 -1
  189. package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +6 -8
  190. package/dist/cjs/vite/plugins/SSRCSSPlugin.js +6 -8
  191. package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
  192. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +7 -9
  193. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +2 -2
  194. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +8 -4
  195. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +10 -5
  196. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  197. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +11 -6
  198. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
  199. package/dist/cjs/vite/plugins/fixDependenciesPlugin.cjs +1 -1
  200. package/dist/cjs/vite/plugins/fixDependenciesPlugin.js +1 -1
  201. package/dist/cjs/vite/plugins/fixDependenciesPlugin.js.map +1 -1
  202. package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js +1 -1
  203. package/dist/cjs/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
  204. package/dist/cjs/zero/useQuery.cjs +3 -2
  205. package/dist/cjs/zero/useQuery.js +2 -2
  206. package/dist/cjs/zero/useQuery.js.map +1 -1
  207. package/dist/cjs/zero/useQuery.native.js +1 -1
  208. package/dist/cjs/zero/useQuery.native.js.map +2 -2
  209. package/dist/esm/Root.js +10 -17
  210. package/dist/esm/Root.js.map +1 -1
  211. package/dist/esm/Root.mjs +8 -12
  212. package/dist/esm/Root.mjs.map +1 -1
  213. package/dist/esm/Root.native.js +25 -18
  214. package/dist/esm/Root.native.js.map +2 -2
  215. package/dist/esm/cli/build.js +1 -1
  216. package/dist/esm/cli/build.mjs +1 -1
  217. package/dist/esm/cli/build.native.js +1 -1
  218. package/dist/esm/constants.js +3 -1
  219. package/dist/esm/constants.js.map +1 -1
  220. package/dist/esm/constants.mjs +4 -2
  221. package/dist/esm/constants.mjs.map +1 -1
  222. package/dist/esm/constants.native.js +3 -1
  223. package/dist/esm/constants.native.js.map +2 -2
  224. package/dist/esm/createApp.js +22 -76
  225. package/dist/esm/createApp.js.map +1 -1
  226. package/dist/esm/createApp.mjs +23 -83
  227. package/dist/esm/createApp.mjs.map +1 -1
  228. package/dist/esm/createApp.native.js +0 -1
  229. package/dist/esm/createApp.native.js.map +2 -2
  230. package/dist/esm/createHandleRequest.js +1 -1
  231. package/dist/esm/createHandleRequest.js.map +1 -1
  232. package/dist/esm/createHandleRequest.mjs +1 -1
  233. package/dist/esm/createHandleRequest.mjs.map +1 -1
  234. package/dist/esm/createHandleRequest.native.js +1 -1
  235. package/dist/esm/createHandleRequest.native.js.map +1 -1
  236. package/dist/esm/fork/getPathFromState.js +1 -1
  237. package/dist/esm/fork/getPathFromState.mjs +1 -1
  238. package/dist/esm/fork/getPathFromState.native.js +1 -1
  239. package/dist/esm/fork/getStateFromPath.js +1 -1
  240. package/dist/esm/fork/getStateFromPath.mjs +1 -1
  241. package/dist/esm/fork/getStateFromPath.native.js +1 -1
  242. package/dist/esm/getReactNavigationConfig.js +1 -1
  243. package/dist/esm/getReactNavigationConfig.mjs +1 -1
  244. package/dist/esm/getReactNavigationConfig.native.js +1 -1
  245. package/dist/esm/hooks.js +2 -2
  246. package/dist/esm/hooks.mjs +2 -2
  247. package/dist/esm/hooks.native.js +2 -2
  248. package/dist/esm/index.js +3 -3
  249. package/dist/esm/index.mjs +3 -3
  250. package/dist/esm/index.native.js +3 -3
  251. package/dist/esm/layouts/Tabs.js +32 -28
  252. package/dist/esm/layouts/Tabs.js.map +1 -1
  253. package/dist/esm/layouts/Tabs.mjs.map +1 -1
  254. package/dist/esm/layouts/Tabs.native.js.map +1 -1
  255. package/dist/esm/layouts/withLayoutContext.js +13 -8
  256. package/dist/esm/layouts/withLayoutContext.js.map +1 -1
  257. package/dist/esm/layouts/withLayoutContext.mjs +16 -11
  258. package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
  259. package/dist/esm/layouts/withLayoutContext.native.js +12 -8
  260. package/dist/esm/layouts/withLayoutContext.native.js.map +2 -2
  261. package/dist/esm/link/useLinkTo.js +1 -1
  262. package/dist/esm/link/useLinkTo.mjs +1 -1
  263. package/dist/esm/link/useLinkTo.native.js +1 -1
  264. package/dist/esm/render.js +3 -2
  265. package/dist/esm/render.js.map +1 -1
  266. package/dist/esm/render.mjs +3 -2
  267. package/dist/esm/render.mjs.map +1 -1
  268. package/dist/esm/{Route.js.map → router/Route.js.map} +1 -1
  269. package/dist/esm/router/Route.mjs.map +1 -0
  270. package/dist/esm/{Route.native.js.map → router/Route.native.js.map} +1 -1
  271. package/dist/esm/{createRoute.js → router/createRoute.js} +1 -1
  272. package/dist/esm/{createRoute.js.map → router/createRoute.js.map} +1 -1
  273. package/dist/esm/{createRoute.mjs → router/createRoute.mjs} +1 -1
  274. package/dist/esm/router/createRoute.mjs.map +1 -0
  275. package/dist/esm/{createRoute.native.js → router/createRoute.native.js} +1 -1
  276. package/dist/esm/{createRoute.native.js.map → router/createRoute.native.js.map} +1 -1
  277. package/dist/esm/router/filterRootHTML.js +33 -0
  278. package/dist/esm/router/filterRootHTML.js.map +6 -0
  279. package/dist/esm/router/filterRootHTML.mjs +39 -0
  280. package/dist/esm/router/filterRootHTML.mjs.map +1 -0
  281. package/dist/esm/router/filterRootHTML.native.js +34 -0
  282. package/dist/esm/router/filterRootHTML.native.js.map +6 -0
  283. package/dist/esm/{getLinkingConfig.js → router/getLinkingConfig.js} +7 -2
  284. package/dist/esm/router/getLinkingConfig.js.map +6 -0
  285. package/dist/esm/{getLinkingConfig.mjs → router/getLinkingConfig.mjs} +2 -2
  286. package/dist/esm/router/getLinkingConfig.mjs.map +1 -0
  287. package/dist/esm/{getLinkingConfig.native.js → router/getLinkingConfig.native.js} +2 -2
  288. package/dist/esm/router/getLinkingConfig.native.js.map +6 -0
  289. package/dist/esm/{getRoutes.js → router/getRoutes.js} +3 -3
  290. package/dist/esm/{getRoutes.js.map → router/getRoutes.js.map} +2 -2
  291. package/dist/esm/{getRoutes.mjs → router/getRoutes.mjs} +3 -3
  292. package/dist/esm/router/getRoutes.mjs.map +1 -0
  293. package/dist/esm/{getRoutes.native.js → router/getRoutes.native.js} +3 -3
  294. package/dist/esm/{getRoutes.native.js.map → router/getRoutes.native.js.map} +2 -2
  295. package/dist/esm/{imperative-api.js → router/imperative-api.js} +1 -1
  296. package/dist/esm/{imperative-api.js.map → router/imperative-api.js.map} +1 -1
  297. package/dist/esm/{imperative-api.mjs → router/imperative-api.mjs} +1 -1
  298. package/dist/esm/router/imperative-api.mjs.map +1 -0
  299. package/dist/esm/{imperative-api.native.js → router/imperative-api.native.js} +1 -1
  300. package/dist/esm/{imperative-api.native.js.map → router/imperative-api.native.js.map} +1 -1
  301. package/dist/esm/{matchers.js.map → router/matchers.js.map} +1 -1
  302. package/dist/esm/router/matchers.mjs.map +1 -0
  303. package/dist/esm/{matchers.native.js.map → router/matchers.native.js.map} +1 -1
  304. package/dist/esm/router/router.js +6 -6
  305. package/dist/esm/router/router.mjs +6 -6
  306. package/dist/esm/router/router.native.js +6 -6
  307. package/dist/esm/{sortRoutes.js.map → router/sortRoutes.js.map} +1 -1
  308. package/dist/esm/router/sortRoutes.mjs.map +1 -0
  309. package/dist/esm/{sortRoutes.native.js.map → router/sortRoutes.native.js.map} +1 -1
  310. package/dist/esm/{useNavigation.js.map → router/useNavigation.js.map} +1 -1
  311. package/dist/esm/router/useNavigation.mjs.map +1 -0
  312. package/dist/esm/{useNavigation.native.js.map → router/useNavigation.native.js.map} +1 -1
  313. package/dist/esm/{useScreens.js → router/useScreens.js} +45 -14
  314. package/dist/esm/router/useScreens.js.map +6 -0
  315. package/dist/esm/{useScreens.mjs → router/useScreens.mjs} +65 -14
  316. package/dist/esm/router/useScreens.mjs.map +1 -0
  317. package/dist/esm/{useScreens.native.js → router/useScreens.native.js} +26 -14
  318. package/dist/esm/router/useScreens.native.js.map +6 -0
  319. package/dist/esm/{useViteRoutes.js.map → router/useViteRoutes.js.map} +1 -1
  320. package/dist/esm/router/useViteRoutes.mjs.map +1 -0
  321. package/dist/esm/{useViteRoutes.native.js.map → router/useViteRoutes.native.js.map} +1 -1
  322. package/dist/esm/server/createRoutesManifest.js +1 -1
  323. package/dist/esm/server/createRoutesManifest.mjs +1 -1
  324. package/dist/esm/server/createRoutesManifest.native.js +1 -1
  325. package/dist/esm/server/getServerManifest.js +2 -2
  326. package/dist/esm/server/getServerManifest.mjs +2 -2
  327. package/dist/esm/server/getServerManifest.native.js +2 -2
  328. package/dist/esm/server/oneServe.js +1 -1
  329. package/dist/esm/server/oneServe.mjs +1 -1
  330. package/dist/esm/server/oneServe.native.js +1 -1
  331. package/dist/esm/typed-routes/generateRouteTypes.js +1 -1
  332. package/dist/esm/typed-routes/generateRouteTypes.mjs +1 -1
  333. package/dist/esm/typed-routes/generateRouteTypes.native.js +1 -1
  334. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.js +2 -2
  335. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.mjs +2 -2
  336. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.native.js +2 -2
  337. package/dist/esm/useLoader.js +2 -2
  338. package/dist/esm/useLoader.mjs +2 -2
  339. package/dist/esm/useLoader.native.js +2 -2
  340. package/dist/esm/{cleanUrl.js → utils/cleanUrl.js} +3 -3
  341. package/dist/esm/{cleanUrl.js.map → utils/cleanUrl.js.map} +1 -1
  342. package/dist/esm/{cleanUrl.mjs → utils/cleanUrl.mjs} +3 -3
  343. package/dist/esm/utils/cleanUrl.mjs.map +1 -0
  344. package/dist/esm/{cleanUrl.native.js → utils/cleanUrl.native.js} +3 -3
  345. package/dist/esm/{cleanUrl.native.js.map → utils/cleanUrl.native.js.map} +1 -1
  346. package/dist/esm/{platform.js.map → utils/platform.js.map} +1 -1
  347. package/dist/esm/utils/platform.mjs.map +1 -0
  348. package/dist/esm/{platform.native.js.map → utils/platform.native.js.map} +1 -1
  349. package/dist/esm/utils/redirect.js +1 -1
  350. package/dist/esm/utils/redirect.mjs +1 -1
  351. package/dist/esm/utils/redirect.native.js +1 -1
  352. package/dist/esm/utils/serverContext.js +35 -0
  353. package/dist/esm/utils/serverContext.js.map +6 -0
  354. package/dist/esm/utils/serverContext.mjs +28 -0
  355. package/dist/esm/utils/serverContext.mjs.map +1 -0
  356. package/dist/esm/utils/serverContext.native.js +32 -0
  357. package/dist/esm/utils/serverContext.native.js.map +6 -0
  358. package/dist/esm/utils/useConstant.js +11 -0
  359. package/dist/esm/utils/useConstant.js.map +6 -0
  360. package/dist/esm/utils/useConstant.mjs +10 -0
  361. package/dist/esm/utils/useConstant.mjs.map +1 -0
  362. package/dist/esm/utils/useConstant.native.js +15 -0
  363. package/dist/esm/utils/useConstant.native.js.map +6 -0
  364. package/dist/esm/utils/withStaticProperties.js +20 -0
  365. package/dist/esm/utils/withStaticProperties.js.map +6 -0
  366. package/dist/esm/utils/withStaticProperties.mjs +22 -0
  367. package/dist/esm/utils/withStaticProperties.mjs.map +1 -0
  368. package/dist/esm/utils/withStaticProperties.native.js +25 -0
  369. package/dist/esm/utils/withStaticProperties.native.js.map +6 -0
  370. package/dist/esm/views/EmptyRoute.js +1 -1
  371. package/dist/esm/views/EmptyRoute.mjs +1 -1
  372. package/dist/esm/views/EmptyRoute.native.js +1 -1
  373. package/dist/esm/views/LoadProgressBar.js +1 -1
  374. package/dist/esm/views/LoadProgressBar.mjs +1 -1
  375. package/dist/esm/views/LoadProgressBar.native.js +1 -1
  376. package/dist/esm/views/Navigator.js +2 -2
  377. package/dist/esm/views/Navigator.mjs +2 -2
  378. package/dist/esm/views/Navigator.native.js +2 -2
  379. package/dist/esm/views/Screen.js +1 -1
  380. package/dist/esm/views/Screen.mjs +1 -1
  381. package/dist/esm/views/Screen.native.js +1 -1
  382. package/dist/esm/vite/DevHead.js +39 -0
  383. package/dist/esm/vite/DevHead.js.map +6 -0
  384. package/dist/esm/vite/DevHead.mjs +36 -0
  385. package/dist/esm/vite/DevHead.mjs.map +1 -0
  386. package/dist/esm/vite/DevHead.native.js +9 -0
  387. package/dist/esm/vite/DevHead.native.js.map +6 -0
  388. package/dist/esm/vite/one.js +0 -25
  389. package/dist/esm/vite/one.js.map +1 -1
  390. package/dist/esm/vite/one.mjs +1 -27
  391. package/dist/esm/vite/one.mjs.map +1 -1
  392. package/dist/esm/vite/one.native.js +0 -25
  393. package/dist/esm/vite/one.native.js.map +1 -1
  394. package/dist/esm/vite/plugins/SSRCSSPlugin.js +6 -8
  395. package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
  396. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +7 -8
  397. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
  398. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +7 -8
  399. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +2 -2
  400. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +10 -4
  401. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  402. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +7 -3
  403. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  404. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +11 -5
  405. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
  406. package/dist/esm/vite/plugins/fixDependenciesPlugin.js +1 -1
  407. package/dist/esm/vite/plugins/fixDependenciesPlugin.js.map +1 -1
  408. package/dist/esm/vite/plugins/fixDependenciesPlugin.mjs +1 -1
  409. package/dist/esm/vite/plugins/fixDependenciesPlugin.mjs.map +1 -1
  410. package/dist/esm/vite/plugins/fixDependenciesPlugin.native.js +1 -1
  411. package/dist/esm/vite/plugins/fixDependenciesPlugin.native.js.map +1 -1
  412. package/dist/esm/zero/useQuery.js +2 -1
  413. package/dist/esm/zero/useQuery.js.map +1 -1
  414. package/dist/esm/zero/useQuery.mjs +2 -1
  415. package/dist/esm/zero/useQuery.mjs.map +1 -1
  416. package/dist/esm/zero/useQuery.native.js +2 -1
  417. package/dist/esm/zero/useQuery.native.js.map +2 -2
  418. package/package.json +8 -14
  419. package/src/Root.tsx +27 -42
  420. package/src/cli/build.ts +1 -1
  421. package/src/constants.ts +4 -0
  422. package/src/createApp.native.tsx +1 -1
  423. package/src/createApp.tsx +23 -82
  424. package/src/createHandleRequest.ts +3 -2
  425. package/src/fork/getPathFromState.ts +1 -1
  426. package/src/fork/getStateFromPath.ts +2 -2
  427. package/src/getReactNavigationConfig.ts +2 -2
  428. package/src/hooks.tsx +2 -2
  429. package/src/index.ts +3 -3
  430. package/src/layouts/Tabs.tsx +40 -33
  431. package/src/layouts/withLayoutContext.tsx +16 -21
  432. package/src/link/useLinkTo.tsx +1 -1
  433. package/src/render.tsx +3 -5
  434. package/src/{Route.tsx → router/Route.tsx} +2 -2
  435. package/src/{createRoute.ts → router/createRoute.ts} +2 -2
  436. package/src/router/filterRootHTML.ts +81 -0
  437. package/src/{getLinkingConfig.ts → router/getLinkingConfig.ts} +8 -3
  438. package/src/{getRoutes.ts → router/getRoutes.ts} +5 -5
  439. package/src/{imperative-api.ts → router/imperative-api.ts} +2 -2
  440. package/src/router/router.ts +7 -7
  441. package/src/{useScreens.tsx → router/useScreens.tsx} +78 -54
  442. package/src/{useViteRoutes.tsx → router/useViteRoutes.tsx} +2 -2
  443. package/src/server/createRoutesManifest.ts +3 -3
  444. package/src/server/getServerManifest.ts +3 -3
  445. package/src/server/oneServe.ts +1 -1
  446. package/src/typed-routes/generateRouteTypes.ts +1 -1
  447. package/src/typed-routes/getTypedRoutesDeclarationFile.ts +3 -3
  448. package/src/useLoader.ts +2 -2
  449. package/src/{cleanUrl.ts → utils/cleanUrl.ts} +3 -3
  450. package/src/utils/redirect.ts +1 -1
  451. package/src/utils/serverContext.tsx +52 -0
  452. package/src/utils/useConstant.ts +18 -0
  453. package/src/utils/withStaticProperties.ts +32 -0
  454. package/src/views/EmptyRoute.tsx +1 -1
  455. package/src/views/LoadProgressBar.tsx +1 -1
  456. package/src/views/Navigator.tsx +2 -2
  457. package/src/views/Screen.tsx +1 -1
  458. package/src/vite/DevHead.tsx +39 -0
  459. package/src/vite/one.ts +0 -28
  460. package/src/vite/plugins/SSRCSSPlugin.ts +6 -10
  461. package/src/vite/plugins/fileSystemRouterPlugin.tsx +12 -6
  462. package/src/vite/plugins/fixDependenciesPlugin.ts +2 -1
  463. package/src/zero/useQuery.ts +2 -1
  464. package/types/Root.d.ts +3 -2
  465. package/types/Root.d.ts.map +1 -1
  466. package/types/constants.d.ts +2 -0
  467. package/types/constants.d.ts.map +1 -1
  468. package/types/createApp.d.ts.map +1 -1
  469. package/types/createHandleRequest.d.ts +1 -1
  470. package/types/createHandleRequest.d.ts.map +1 -1
  471. package/types/fork/getStateFromPath.d.ts +1 -1
  472. package/types/fork/getStateFromPath.d.ts.map +1 -1
  473. package/types/getReactNavigationConfig.d.ts +1 -1
  474. package/types/getReactNavigationConfig.d.ts.map +1 -1
  475. package/types/index.d.ts +3 -3
  476. package/types/index.d.ts.map +1 -1
  477. package/types/layouts/Drawer.d.ts +1 -1
  478. package/types/layouts/Stack.d.ts +1 -1
  479. package/types/layouts/Tabs.d.ts +1 -5
  480. package/types/layouts/Tabs.d.ts.map +1 -1
  481. package/types/layouts/withLayoutContext.d.ts +5 -4
  482. package/types/layouts/withLayoutContext.d.ts.map +1 -1
  483. package/types/render.d.ts.map +1 -1
  484. package/types/{Route.d.ts → router/Route.d.ts} +2 -2
  485. package/types/router/Route.d.ts.map +1 -0
  486. package/types/{createRoute.d.ts → router/createRoute.d.ts} +1 -1
  487. package/types/router/createRoute.d.ts.map +1 -0
  488. package/types/router/filterRootHTML.d.ts +19 -0
  489. package/types/router/filterRootHTML.d.ts.map +1 -0
  490. package/types/{getLinkingConfig.d.ts → router/getLinkingConfig.d.ts} +2 -2
  491. package/types/router/getLinkingConfig.d.ts.map +1 -0
  492. package/types/{getRoutes.d.ts → router/getRoutes.d.ts} +1 -1
  493. package/types/router/getRoutes.d.ts.map +1 -0
  494. package/types/router/imperative-api.d.ts +3 -0
  495. package/types/router/imperative-api.d.ts.map +1 -0
  496. package/types/router/matchers.d.ts.map +1 -0
  497. package/types/router/router.d.ts +2 -2
  498. package/types/router/router.d.ts.map +1 -1
  499. package/types/router/sortRoutes.d.ts.map +1 -0
  500. package/types/router/useNavigation.d.ts.map +1 -0
  501. package/types/{useScreens.d.ts → router/useScreens.d.ts} +3 -1
  502. package/types/router/useScreens.d.ts.map +1 -0
  503. package/types/{useViteRoutes.d.ts → router/useViteRoutes.d.ts} +2 -2
  504. package/types/router/useViteRoutes.d.ts.map +1 -0
  505. package/types/server/createRoutesManifest.d.ts +3 -3
  506. package/types/server/createRoutesManifest.d.ts.map +1 -1
  507. package/types/server/getServerManifest.d.ts +1 -1
  508. package/types/server/getServerManifest.d.ts.map +1 -1
  509. package/types/utils/cleanUrl.d.ts.map +1 -0
  510. package/types/utils/platform.d.ts.map +1 -0
  511. package/types/utils/serverContext.d.ts +14 -0
  512. package/types/utils/serverContext.d.ts.map +1 -0
  513. package/types/utils/useConstant.d.ts +2 -0
  514. package/types/utils/useConstant.d.ts.map +1 -0
  515. package/types/utils/withStaticProperties.d.ts +4 -0
  516. package/types/utils/withStaticProperties.d.ts.map +1 -0
  517. package/types/vite/DevHead.d.ts +2 -0
  518. package/types/vite/DevHead.d.ts.map +1 -0
  519. package/types/vite/one.d.ts.map +1 -1
  520. package/types/vite/plugins/SSRCSSPlugin.d.ts +0 -1
  521. package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
  522. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  523. package/types/vite/plugins/fixDependenciesPlugin.d.ts.map +1 -1
  524. package/types/zero/useQuery.d.ts.map +1 -1
  525. package/dist/cjs/getLinkingConfig.js.map +0 -6
  526. package/dist/cjs/getLinkingConfig.native.js.map +0 -6
  527. package/dist/cjs/useScreens.js.map +0 -6
  528. package/dist/cjs/useScreens.native.js.map +0 -6
  529. package/dist/esm/Route.mjs.map +0 -1
  530. package/dist/esm/cleanUrl.mjs.map +0 -1
  531. package/dist/esm/createRoute.mjs.map +0 -1
  532. package/dist/esm/getLinkingConfig.js.map +0 -6
  533. package/dist/esm/getLinkingConfig.mjs.map +0 -1
  534. package/dist/esm/getLinkingConfig.native.js.map +0 -6
  535. package/dist/esm/getRoutes.mjs.map +0 -1
  536. package/dist/esm/imperative-api.mjs.map +0 -1
  537. package/dist/esm/matchers.mjs.map +0 -1
  538. package/dist/esm/platform.mjs.map +0 -1
  539. package/dist/esm/sortRoutes.mjs.map +0 -1
  540. package/dist/esm/useNavigation.mjs.map +0 -1
  541. package/dist/esm/useScreens.js.map +0 -6
  542. package/dist/esm/useScreens.mjs.map +0 -1
  543. package/dist/esm/useScreens.native.js.map +0 -6
  544. package/dist/esm/useViteRoutes.mjs.map +0 -1
  545. package/types/Route.d.ts.map +0 -1
  546. package/types/cleanUrl.d.ts.map +0 -1
  547. package/types/createRoute.d.ts.map +0 -1
  548. package/types/getLinkingConfig.d.ts.map +0 -1
  549. package/types/getRoutes.d.ts.map +0 -1
  550. package/types/imperative-api.d.ts +0 -3
  551. package/types/imperative-api.d.ts.map +0 -1
  552. package/types/matchers.d.ts.map +0 -1
  553. package/types/platform.d.ts.map +0 -1
  554. package/types/sortRoutes.d.ts.map +0 -1
  555. package/types/useNavigation.d.ts.map +0 -1
  556. package/types/useScreens.d.ts.map +0 -1
  557. package/types/useViteRoutes.d.ts.map +0 -1
  558. /package/dist/cjs/{Route.cjs → router/Route.cjs} +0 -0
  559. /package/dist/cjs/{Route.js → router/Route.js} +0 -0
  560. /package/dist/cjs/{Route.native.js → router/Route.native.js} +0 -0
  561. /package/dist/cjs/{matchers.cjs → router/matchers.cjs} +0 -0
  562. /package/dist/cjs/{matchers.js → router/matchers.js} +0 -0
  563. /package/dist/cjs/{matchers.native.js → router/matchers.native.js} +0 -0
  564. /package/dist/cjs/{sortRoutes.cjs → router/sortRoutes.cjs} +0 -0
  565. /package/dist/cjs/{sortRoutes.js → router/sortRoutes.js} +0 -0
  566. /package/dist/cjs/{sortRoutes.native.js → router/sortRoutes.native.js} +0 -0
  567. /package/dist/cjs/{useNavigation.cjs → router/useNavigation.cjs} +0 -0
  568. /package/dist/cjs/{useNavigation.js → router/useNavigation.js} +0 -0
  569. /package/dist/cjs/{useNavigation.native.js → router/useNavigation.native.js} +0 -0
  570. /package/dist/cjs/{useViteRoutes.cjs → router/useViteRoutes.cjs} +0 -0
  571. /package/dist/cjs/{useViteRoutes.js → router/useViteRoutes.js} +0 -0
  572. /package/dist/cjs/{useViteRoutes.native.js → router/useViteRoutes.native.js} +0 -0
  573. /package/dist/cjs/{platform.cjs → utils/platform.cjs} +0 -0
  574. /package/dist/cjs/{platform.js → utils/platform.js} +0 -0
  575. /package/dist/cjs/{platform.native.js → utils/platform.native.js} +0 -0
  576. /package/dist/esm/{Route.js → router/Route.js} +0 -0
  577. /package/dist/esm/{Route.mjs → router/Route.mjs} +0 -0
  578. /package/dist/esm/{Route.native.js → router/Route.native.js} +0 -0
  579. /package/dist/esm/{matchers.js → router/matchers.js} +0 -0
  580. /package/dist/esm/{matchers.mjs → router/matchers.mjs} +0 -0
  581. /package/dist/esm/{matchers.native.js → router/matchers.native.js} +0 -0
  582. /package/dist/esm/{sortRoutes.js → router/sortRoutes.js} +0 -0
  583. /package/dist/esm/{sortRoutes.mjs → router/sortRoutes.mjs} +0 -0
  584. /package/dist/esm/{sortRoutes.native.js → router/sortRoutes.native.js} +0 -0
  585. /package/dist/esm/{useNavigation.js → router/useNavigation.js} +0 -0
  586. /package/dist/esm/{useNavigation.mjs → router/useNavigation.mjs} +0 -0
  587. /package/dist/esm/{useNavigation.native.js → router/useNavigation.native.js} +0 -0
  588. /package/dist/esm/{useViteRoutes.js → router/useViteRoutes.js} +0 -0
  589. /package/dist/esm/{useViteRoutes.mjs → router/useViteRoutes.mjs} +0 -0
  590. /package/dist/esm/{useViteRoutes.native.js → router/useViteRoutes.native.js} +0 -0
  591. /package/dist/esm/{platform.js → utils/platform.js} +0 -0
  592. /package/dist/esm/{platform.mjs → utils/platform.mjs} +0 -0
  593. /package/dist/esm/{platform.native.js → utils/platform.native.js} +0 -0
  594. /package/src/{matchers.ts → router/matchers.ts} +0 -0
  595. /package/src/{sortRoutes.ts → router/sortRoutes.ts} +0 -0
  596. /package/src/{useNavigation.ts → router/useNavigation.ts} +0 -0
  597. /package/src/{platform.ts → utils/platform.ts} +0 -0
  598. /package/types/{matchers.d.ts → router/matchers.d.ts} +0 -0
  599. /package/types/{sortRoutes.d.ts → router/sortRoutes.d.ts} +0 -0
  600. /package/types/{useNavigation.d.ts → router/useNavigation.d.ts} +0 -0
  601. /package/types/{cleanUrl.d.ts → utils/cleanUrl.d.ts} +0 -0
  602. /package/types/{platform.d.ts → utils/platform.d.ts} +0 -0
@@ -1,10 +1,10 @@
1
1
  import type { EventMapBase, NavigationState } from '@react-navigation/native'
2
2
  import React from 'react'
3
-
4
- import { useContextKey } from '../Route'
3
+ import { useContextKey } from '../router/Route'
5
4
  import type { PickPartial } from '../types'
6
- import { useSortedScreens, type ScreenProps } from '../useScreens'
5
+ import { useSortedScreens, type ScreenProps } from '../router/useScreens'
7
6
  import { Screen } from '../views/Screen'
7
+ import { withStaticProperties } from '../utils/withStaticProperties'
8
8
 
9
9
  export function useFilterScreenChildren(
10
10
  children: React.ReactNode,
@@ -19,6 +19,7 @@ export function useFilterScreenChildren(
19
19
  ) {
20
20
  return React.useMemo(() => {
21
21
  const customChildren: any[] = []
22
+
22
23
  const screens = React.Children.map(children, (child) => {
23
24
  if (React.isValidElement(child) && child && child.type === Screen) {
24
25
  if (!child.props.name) {
@@ -43,7 +44,7 @@ export function useFilterScreenChildren(
43
44
  `Layout children must be of type Screen, all other children are ignored. To use custom children, create a custom <Layout />. Update Layout Route at: "app${contextKey}/_layout"`
44
45
  )
45
46
  }
46
- })
47
+ })?.filter(Boolean)
47
48
 
48
49
  // Add an assertion for development
49
50
  if (process.env.NODE_ENV !== 'production') {
@@ -73,23 +74,19 @@ export function withLayoutContext<
73
74
  options: ScreenProps<TOptions, State, EventMap>[]
74
75
  ) => ScreenProps<TOptions, State, EventMap>[],
75
76
  options?: { props: any }
76
- ): React.ForwardRefExoticComponent<
77
- React.PropsWithoutRef<PickPartial<React.ComponentProps<T>, 'children'>> &
78
- React.RefAttributes<unknown>
79
- > & {
80
- Screen: (props: ScreenProps<TOptions, State, EventMap>) => null
81
- } {
82
- const Navigator = React.forwardRef<unknown, React.ComponentProps<T>>(
83
- ({ children: userDefinedChildren, ...props }, ref) => {
77
+ ) {
78
+ return withStaticProperties(
79
+ React.forwardRef<unknown, PickPartial<React.ComponentProps<T>, 'children'>>((propsIn, ref) => {
80
+ const { children, ...props } = propsIn as React.ComponentProps<T>
84
81
  const contextKey = useContextKey()
85
-
86
- const { screens } = useFilterScreenChildren(userDefinedChildren, {
82
+ const { screens } = useFilterScreenChildren(children, {
87
83
  contextKey,
88
84
  })
89
85
 
90
86
  const processed = processor ? processor(screens ?? []) : screens
91
-
92
- const sorted = useSortedScreens(processed ?? [])
87
+ const sorted = useSortedScreens(processed ?? [], {
88
+ onlyMatching: true,
89
+ })
93
90
 
94
91
  // Prevent throwing an error when there are no screens.
95
92
  if (!sorted.length) {
@@ -101,11 +98,9 @@ export function withLayoutContext<
101
98
  {sorted}
102
99
  </Nav>
103
100
  )
101
+ }),
102
+ {
103
+ Screen,
104
104
  }
105
105
  )
106
-
107
- // @ts-expect-error
108
- Navigator.Screen = Screen
109
- // @ts-expect-error
110
- return Navigator
111
106
  }
@@ -3,7 +3,7 @@ import { Platform, type GestureResponderEvent } from 'react-native'
3
3
 
4
4
  import { appendBaseUrl } from '../fork/getPathFromState'
5
5
  import { useOneRouter } from '../router/router'
6
- import { stripGroupSegmentsFromPath } from '../matchers'
6
+ import { stripGroupSegmentsFromPath } from '../router/matchers'
7
7
 
8
8
  function eventShouldPreventDefault(
9
9
  e: React.MouseEvent<HTMLAnchorElement, MouseEvent> | GestureResponderEvent
package/src/render.tsx CHANGED
@@ -9,15 +9,14 @@ export function render(element: React.ReactNode) {
9
9
  globalThis['__vxrnVersion']++
10
10
  globalThis['__vxrnRoot'].render(element)
11
11
  } else {
12
- // const deferLoad = requestAnimationFrame || setImmediate
13
- // deferLoad(() => {
14
12
  startTransition(() => {
13
+ const rootElement = document as any
15
14
  if (globalThis['__vxrnIsSPA']) {
16
- const root = createRoot(document.body)
15
+ const root = createRoot(rootElement)
17
16
  globalThis['__vxrnRoot'] = root
18
17
  root.render(element)
19
18
  } else {
20
- globalThis['__vxrnRoot'] = hydrateRoot(document.body, element, {
19
+ globalThis['__vxrnRoot'] = hydrateRoot(rootElement, element, {
21
20
  onRecoverableError(...args) {
22
21
  console.groupCollapsed(
23
22
  `[one] Non-critical recoverable React error occurred, expand group to see details`
@@ -35,6 +34,5 @@ export function render(element: React.ReactNode) {
35
34
  })
36
35
  }
37
36
  })
38
- // })
39
37
  }
40
38
  }
@@ -1,8 +1,8 @@
1
1
  import React, { createContext, useContext, type ReactNode } from 'react'
2
2
 
3
3
  import { getContextKey } from './matchers'
4
- import type { ErrorBoundaryProps } from './views/Try'
5
- import type { One } from './vite/types'
4
+ import type { ErrorBoundaryProps } from '../views/Try'
5
+ import type { One } from '../vite/types'
6
6
 
7
7
  export type DynamicConvention = { name: string; deep: boolean; notFound?: boolean }
8
8
 
@@ -1,5 +1,5 @@
1
- import { useActiveParams, useParams, usePathname } from './hooks'
2
- import type { OneRouter } from './interfaces/router'
1
+ import { useActiveParams, useParams, usePathname } from '../hooks'
2
+ import type { OneRouter } from '../interfaces/router'
3
3
 
4
4
  export function createRoute<Path>() {
5
5
  type Route = OneRouter.Route<Path>
@@ -0,0 +1,81 @@
1
+ import { cloneElement, isValidElement } from 'react'
2
+
3
+ type Props = Record<string, any>
4
+
5
+ export type FoundRootHTML = {
6
+ children: React.ReactElement
7
+ htmlProps?: Props
8
+ bodyProps?: Props
9
+ head?: React.ReactElement
10
+ }
11
+
12
+ /**
13
+ * To enable custom <html> and other html-like stuff in the root _layout
14
+ * we are doing some fancy stuff, namely, just capturing the root layout return
15
+ * value and deep-mapping over it.
16
+ *
17
+ * On server, we filter it out and hoist it to the parent root html in createApp
18
+ *
19
+ * On client, we just filter it out completely as in One we don't hydrate html
20
+ */
21
+
22
+ export function filterRootHTML(el: React.ReactNode): FoundRootHTML {
23
+ let htmlProps: Props | undefined
24
+ let bodyProps: React.ReactElement | undefined
25
+ let head: React.ReactElement | undefined
26
+
27
+ function traverse(element: React.ReactNode) {
28
+ if (!element || typeof element !== 'object') {
29
+ return element
30
+ }
31
+ if (Array.isArray(element)) {
32
+ return element.map(traverse)
33
+ }
34
+
35
+ const reactElement = element as React.ReactElement
36
+ const { type, props } = reactElement
37
+
38
+ if (type === 'html') {
39
+ const { children, ...restProps } = reactElement.props
40
+ htmlProps = restProps
41
+ return traverse(children)
42
+ }
43
+
44
+ if (type === 'head') {
45
+ head = reactElement
46
+ return null
47
+ }
48
+
49
+ if (type === 'body') {
50
+ const { children, ...restProps } = reactElement.props
51
+ bodyProps = restProps
52
+ return children
53
+ }
54
+
55
+ if (process.env.TAMAGUI_TARGET === 'native') {
56
+ if (
57
+ isValidElement(element) &&
58
+ typeof element.type === 'string' &&
59
+ element.type.toLowerCase() === element.type
60
+ ) {
61
+ // filter out things like <meta /> etc on native
62
+ // because it could just be thown in <html> or a fragment to be hoisted on web
63
+ return null
64
+ }
65
+ }
66
+
67
+ return element
68
+ }
69
+
70
+ const children =
71
+ traverse(el) ||
72
+ // if none found, we assume they aren't returning any html so just pass it on
73
+ el
74
+
75
+ return {
76
+ children,
77
+ htmlProps,
78
+ bodyProps,
79
+ head,
80
+ }
81
+ }
@@ -1,8 +1,13 @@
1
1
  import { getActionFromState, type LinkingOptions } from '@react-navigation/native'
2
2
  import type { RouteNode } from './Route'
3
- import type { State } from './fork/getPathFromState'
4
- import { getReactNavigationConfig, type Screen } from './getReactNavigationConfig'
5
- import { addEventListener, getInitialURL, getPathFromState, getStateFromPath } from './link/linking'
3
+ import type { State } from '../fork/getPathFromState'
4
+ import { getReactNavigationConfig, type Screen } from '../getReactNavigationConfig'
5
+ import {
6
+ addEventListener,
7
+ getInitialURL,
8
+ getPathFromState,
9
+ getStateFromPath,
10
+ } from '../link/linking'
6
11
 
7
12
  export function getNavigationConfig(
8
13
  routes: RouteNode,
@@ -1,4 +1,4 @@
1
- import { getDefaultRenderMode } from './config'
1
+ import { getDefaultRenderMode } from '../config'
2
2
  import {
3
3
  matchArrayGroupName,
4
4
  matchDeepDynamicRouteName,
@@ -7,8 +7,8 @@ import {
7
7
  removeSupportedExtensions,
8
8
  } from './matchers'
9
9
  import type { DynamicConvention, RouteNode } from './Route'
10
- import { getPageExport } from './utils/getPageExport'
11
- import type { One } from './vite/types'
10
+ import { getPageExport } from '../utils/getPageExport'
11
+ import type { One } from '../vite/types'
12
12
  // import { Unmatched } from './views/Unmatched'
13
13
 
14
14
  export type Options = {
@@ -242,7 +242,7 @@ function getDirectoryTree(contextModule: One.RouteContext, options: Options) {
242
242
  {
243
243
  type: 'layout',
244
244
  loadRoute: () => ({
245
- default: (require('./views/Navigator') as typeof import('./views/Navigator'))
245
+ default: (require('../views/Navigator') as typeof import('../views/Navigator'))
246
246
  .DefaultNavigator,
247
247
  }),
248
248
  // Generate a fake file name for the directory
@@ -481,7 +481,7 @@ function appendSitemapRoute(directory: DirectoryNode) {
481
481
  {
482
482
  loadRoute() {
483
483
  // console.warn(`Loading sitemap`)
484
- // const { Sitemap, getNavOptions } = require('./views/Sitemap')
484
+ // const { Sitemap, getNavOptions } = require('../views/Sitemap')
485
485
  // return { default: Sitemap, getNavOptions }
486
486
  return { default: () => null, getNavOptions: () => {} }
487
487
  },
@@ -1,5 +1,5 @@
1
- import * as store from './router/router'
2
- import type { OneRouter } from './interfaces/router'
1
+ import * as store from './router'
2
+ import type { OneRouter } from '../interfaces/router'
3
3
 
4
4
  export const router: OneRouter.Router = {
5
5
  navigate: store.navigate,
@@ -8,19 +8,19 @@ import * as Linking from 'expo-linking'
8
8
  import { nanoid } from 'nanoid/non-secure'
9
9
  import { Fragment, startTransition, useSyncExternalStore, type ComponentType } from 'react'
10
10
  import { Platform } from 'react-native'
11
- import type { RouteNode } from '../Route'
12
- import { getLoaderPath, getPreloadPath } from '../cleanUrl'
11
+ import type { RouteNode } from './Route'
12
+ import { getLoaderPath, getPreloadPath } from '../utils/cleanUrl'
13
13
  import type { State } from '../fork/getPathFromState'
14
14
  import { deepEqual, getPathDataFromState } from '../fork/getPathFromState'
15
15
  import { stripBaseUrl } from '../fork/getStateFromPath'
16
- import { getLinkingConfig, type OneLinkingOptions } from '../getLinkingConfig'
17
- import { getRoutes } from '../getRoutes'
16
+ import { getLinkingConfig, type OneLinkingOptions } from './getLinkingConfig'
17
+ import { getRoutes } from './getRoutes'
18
18
  import type { OneRouter } from '../interfaces/router'
19
19
  import { resolveHref } from '../link/href'
20
20
  import { resolve } from '../link/path'
21
- import { matchDynamicName } from '../matchers'
22
- import { sortRoutes } from '../sortRoutes'
23
- import { getQualifiedRouteComponent } from '../useScreens'
21
+ import { matchDynamicName } from './matchers'
22
+ import { sortRoutes } from './sortRoutes'
23
+ import { getQualifiedRouteComponent } from './useScreens'
24
24
  import { assertIsReady } from '../utils/assertIsReady'
25
25
  import { dynamicImport } from '../utils/dynamicImport'
26
26
  import { removeSearch } from '../utils/removeSearch'
@@ -1,4 +1,5 @@
1
1
  import { createNavigatorFactory } from '@react-navigation/core'
2
+ import { SafeAreaProviderCompat } from '@react-navigation/elements'
2
3
  import type {
3
4
  EventMapBase,
4
5
  NavigationState,
@@ -6,7 +7,15 @@ import type {
6
7
  RouteProp,
7
8
  ScreenListeners,
8
9
  } from '@react-navigation/native'
9
- import React, { Suspense, useEffect } from 'react'
10
+ import React, { forwardRef, Suspense, useEffect } from 'react'
11
+ import { getPageExport } from '../utils/getPageExport'
12
+ import { getServerContext, ServerContextScript } from '../utils/serverContext'
13
+ import { useConstant } from '../utils/useConstant'
14
+ import { EmptyRoute } from '../views/EmptyRoute'
15
+ import { RootErrorBoundary } from '../views/RootErrorBoundary'
16
+ import { Try } from '../views/Try'
17
+ import { DevHead } from '../vite/DevHead'
18
+ import { filterRootHTML } from './filterRootHTML'
10
19
  import {
11
20
  Route,
12
21
  useRouteNode,
@@ -15,10 +24,6 @@ import {
15
24
  type RouteNode,
16
25
  } from './Route'
17
26
  import { sortRoutesWithInitial } from './sortRoutes'
18
- import { getPageExport } from './utils/getPageExport'
19
- import { EmptyRoute } from './views/EmptyRoute'
20
- import { RootErrorBoundary } from './views/RootErrorBoundary'
21
- import { Try } from './views/Try'
22
27
 
23
28
  // `@react-navigation/core` does not expose the Screen or Group components directly, so we have to
24
29
  // do this hack.
@@ -52,13 +57,15 @@ export type ScreenProps<
52
57
  function getSortedChildren(
53
58
  children: RouteNode[],
54
59
  order?: ScreenProps[],
55
- initialRouteName?: string
60
+ initialRouteName?: string,
61
+ options?: { onlyMatching?: boolean }
56
62
  ): { route: RouteNode; props: Partial<ScreenProps> }[] {
57
63
  if (!order?.length) {
58
64
  return children
59
65
  .sort(sortRoutesWithInitial(initialRouteName))
60
66
  .map((route) => ({ route, props: {} }))
61
67
  }
68
+
62
69
  const entries = [...children]
63
70
 
64
71
  const ordered = order
@@ -98,9 +105,13 @@ function getSortedChildren(
98
105
  }[]
99
106
 
100
107
  // Add any remaining children
101
- ordered.push(
102
- ...entries.sort(sortRoutesWithInitial(initialRouteName)).map((route) => ({ route, props: {} }))
103
- )
108
+ if (!options?.onlyMatching) {
109
+ ordered.push(
110
+ ...entries
111
+ .sort(sortRoutesWithInitial(initialRouteName))
112
+ .map((route) => ({ route, props: {} }))
113
+ )
114
+ }
104
115
 
105
116
  return ordered
106
117
  }
@@ -108,12 +119,15 @@ function getSortedChildren(
108
119
  /**
109
120
  * @returns React Navigation screens sorted by the `route` property.
110
121
  */
111
- export function useSortedScreens(order: ScreenProps[]): React.ReactNode[] {
122
+ export function useSortedScreens(
123
+ order: ScreenProps[],
124
+ options?: { onlyMatching?: boolean }
125
+ ): React.ReactNode[] {
112
126
  const node = useRouteNode()
113
127
 
114
128
  const sortedScreens = React.useMemo(() => {
115
129
  const sorted = node?.children?.length
116
- ? getSortedChildren(node.children, order, node.initialRouteName)
130
+ ? getSortedChildren(node.children, order, node.initialRouteName, options)
117
131
  : []
118
132
 
119
133
  return sorted.map((value) => routeToScreen(value.route, value.props))
@@ -154,52 +168,63 @@ export function getQualifiedRouteComponent(value: RouteNode) {
154
168
  return qualifiedStore.get(value)!
155
169
  }
156
170
 
157
- let ScreenComponent: React.ForwardRefExoticComponent<React.RefAttributes<unknown>>
158
-
159
- // if (One_ROUTER_IMPORT_MODE === 'lazy') {
160
- // ScreenComponent = React.forwardRef((props, ref) => {
161
- // // for native avoid suspense for now
162
- // const [loaded, setLoaded] = useState<any>(null)
163
-
164
- // useEffect(() => {
165
- // try {
166
- // const found = value.loadRoute()
167
- // if (found) {
168
- // setLoaded(found)
169
- // }
170
- // } catch (err) {
171
- // if (err instanceof Promise) {
172
- // err
173
- // .then((res) => {
174
- // setLoaded(res)
175
- // })
176
- // .catch((err) => {
177
- // console.error(`Error loading route`, err)
178
- // })
179
- // } else {
180
- // setLoaded(err as any)
181
- // }
182
- // }
183
- // }, [])
184
-
185
- // if (loaded) {
186
- // const Component = getPageExport(fromImport(loaded)) as React.ComponentType<any>
187
- // return (
188
- // // <Suspense fallback={null}>
189
- // <Component {...props} ref={ref} />
190
- // // </Suspense>
191
- // )
192
- // }
193
-
194
- // return null
195
- // })
196
- // } else {
171
+ let ScreenComponent: React.ForwardRefExoticComponent<{ segment: string; key?: string }>
172
+
197
173
  ScreenComponent = React.forwardRef((props, ref) => {
198
174
  const res = value.loadRoute()
199
- const Component = getPageExport(fromImport(res)) as React.ComponentType<any>
175
+ const Component = useConstant(() => {
176
+ const BaseComponent = getPageExport(fromImport(res)) as React.ComponentType<any>
177
+ const serverContext = getServerContext()
178
+
179
+ // root layout do special html handling only
180
+ if (props.segment === '') {
181
+ return forwardRef((props, ref) => {
182
+ // @ts-expect-error
183
+ const out = BaseComponent(props, ref)
184
+ const { children, bodyProps, head, htmlProps } = filterRootHTML(out)
185
+ const { children: headChildren, ...headProps } = head?.props || {}
186
+
187
+ if (process.env.TAMAGUI_TARGET === 'native') {
188
+ // on native we just ignore all html/body/head
189
+ return children
190
+ }
191
+
192
+ const contents = (
193
+ <>
194
+ <head key="head" {...headProps}>
195
+ <DevHead />
196
+ <script
197
+ dangerouslySetInnerHTML={{
198
+ __html: `globalThis['global'] = globalThis`,
199
+ }}
200
+ />
201
+ {serverContext?.css?.map((file) => {
202
+ return <link key={file} rel="stylesheet" href={file} />
203
+ })}
204
+ <ServerContextScript />
205
+ {headChildren}
206
+ </head>
207
+ <body key="body" suppressHydrationWarning {...bodyProps}>
208
+ <SafeAreaProviderCompat>{children}</SafeAreaProviderCompat>
209
+ </body>
210
+ </>
211
+ )
212
+
213
+ return (
214
+ // tamagui and libraries can add className on hydration to have ssr safe styling
215
+ // so supress hydration warnings here
216
+ <html suppressHydrationWarning lang="en-US" {...htmlProps}>
217
+ {contents}
218
+ </html>
219
+ )
220
+ })
221
+ }
222
+
223
+ return BaseComponent
224
+ })
200
225
 
201
226
  if (process.env.NODE_ENV === 'development' && process.env.DEBUG === 'one') {
202
- console.groupCollapsed(`Render ${props.key}`)
227
+ console.groupCollapsed(`Render ${props.key} ${props.segment}`)
203
228
  console.info(`res`, res)
204
229
  console.info(`value`, value)
205
230
  console.info(`fromImport`, fromImport(res))
@@ -213,7 +238,6 @@ export function getQualifiedRouteComponent(value: RouteNode) {
213
238
  // </Suspense>
214
239
  )
215
240
  })
216
- // }
217
241
 
218
242
  const wrapSuspense = (children: any) => {
219
243
  if (process.env.TAMAGUI_TARGET === 'native') {
@@ -1,5 +1,5 @@
1
- import type { GlobbedRouteImports } from './types'
2
- import type { One } from './vite/types'
1
+ import type { GlobbedRouteImports } from '../types'
2
+ import type { One } from '../vite/types'
3
3
 
4
4
  // essentially a development helper
5
5
 
@@ -1,9 +1,9 @@
1
- import { type Options, getRoutes } from '../getRoutes'
1
+ import { type Options, getRoutes } from '../router/getRoutes'
2
2
  import { getServerManifest } from './getServerManifest'
3
- import type { RouteNode } from '../Route'
3
+ import type { RouteNode } from '../router/Route'
4
4
  import type { One } from '../vite/types'
5
5
 
6
- export { type Options } from '../getRoutes'
6
+ export { type Options } from '../router/getRoutes'
7
7
 
8
8
  export type RouteInfo<TRegex = string> = {
9
9
  file: string
@@ -8,9 +8,9 @@
8
8
  *
9
9
  * Based on https://github.com/vercel/next.js/blob/1df2686bc9964f1a86c444701fa5cbf178669833/packages/next/src/shared/lib/router/utils/route-regex.ts
10
10
  */
11
- import type { RouteNode } from '../Route'
12
- import { getContextKey, matchGroupName } from '../matchers'
13
- import { sortRoutes } from '../sortRoutes'
11
+ import type { RouteNode } from '../router/Route'
12
+ import { getContextKey, matchGroupName } from '../router/matchers'
13
+ import { sortRoutes } from '../router/sortRoutes'
14
14
  import type { One } from '../vite/types'
15
15
 
16
16
  // TODO: Share these types across cli, server, router, etc.
@@ -2,7 +2,7 @@ import type { Hono, MiddlewareHandler } from 'hono'
2
2
  import type { BlankEnv } from 'hono/types'
3
3
  import { extname, join } from 'node:path'
4
4
  import { getServerEntry } from 'vxrn/serve'
5
- import { getPathFromLoaderPath } from '../cleanUrl'
5
+ import { getPathFromLoaderPath } from '../utils/cleanUrl'
6
6
  import { LOADER_JS_POSTFIX_UNCACHED } from '../constants'
7
7
  import { compileManifest, getURLfromRequestURL, type RequestHandlers } from '../createHandleRequest'
8
8
  import type { RenderAppProps } from '../types'
@@ -1,7 +1,7 @@
1
1
  import FSExtra from 'fs-extra'
2
2
  import { writeFile } from 'node:fs/promises'
3
3
  import { dirname } from 'node:path'
4
- import { globbedRoutesToRouteContext } from '../useViteRoutes'
4
+ import { globbedRoutesToRouteContext } from '../router/useViteRoutes'
5
5
  import { globDir } from '../utils/globDir'
6
6
  import { getTypedRoutesDeclarationFile } from './getTypedRoutesDeclarationFile'
7
7
 
@@ -1,6 +1,6 @@
1
- import { getRoutes } from '../getRoutes'
2
- import { isTypedRoute, removeSupportedExtensions } from '../matchers'
3
- import type { RouteNode } from '../Route'
1
+ import { getRoutes } from '../router/getRoutes'
2
+ import { isTypedRoute, removeSupportedExtensions } from '../router/matchers'
3
+ import type { RouteNode } from '../router/Route'
4
4
  import type { One } from '../vite/types'
5
5
 
6
6
  // /[...param1]/ - Match [...param1]
package/src/useLoader.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  /* eslint-disable react-hooks/rules-of-hooks */
2
2
  import { useEffect, useRef } from 'react'
3
- import { getLoaderPath } from './cleanUrl'
3
+ import { getLoaderPath } from './utils/cleanUrl'
4
4
  import { useActiveParams, useParams } from './hooks'
5
5
  import { resolveHref } from './link/href'
6
- import { useRouteNode } from './Route'
6
+ import { useRouteNode } from './router/Route'
7
7
  import { preloadingLoader } from './router/router'
8
8
  import type { LoaderProps } from './types'
9
9
  import { dynamicImport } from './utils/dynamicImport'
@@ -3,9 +3,9 @@ import {
3
3
  LOADER_JS_POSTFIX,
4
4
  LOADER_JS_POSTFIX_REGEX,
5
5
  PRELOAD_JS_POSTFIX,
6
- } from './constants'
7
- import { getURL } from './getURL'
8
- import { removeSearch } from './utils/removeSearch'
6
+ } from '../constants'
7
+ import { getURL } from '../getURL'
8
+ import { removeSearch } from './removeSearch'
9
9
 
10
10
  function cleanUrl(path: string) {
11
11
  return (
@@ -1,5 +1,5 @@
1
1
  import { getURL } from '../getURL'
2
- import { router } from '../imperative-api'
2
+ import { router } from '../router/imperative-api'
3
3
 
4
4
  export const redirect = (path: string, status?: number) => {
5
5
  if (process.env.VITE_ENVIRONMENT === 'client') {
@@ -0,0 +1,52 @@
1
+ type ServerContext = {
2
+ css?: string[]
3
+ postRenderData?: any
4
+ loaderData?: any
5
+ loaderProps?: any
6
+ mode?: 'spa' | 'ssg' | 'ssr'
7
+ }
8
+
9
+ type MaybeServerContext = null | ServerContext
10
+
11
+ export const SERVER_CONTEXT_POST_RENDER_STRING = `_one_post_render_data_`
12
+ const SERVER_CONTEXT_KEY = '__one_server_context__'
13
+ const isClient = typeof document !== 'undefined'
14
+
15
+ let serverContext: MaybeServerContext = globalThis[SERVER_CONTEXT_KEY] || null
16
+
17
+ export function setServerContext(c: ServerContext) {
18
+ if (isClient) {
19
+ serverContext ||= {
20
+ postRenderData: SERVER_CONTEXT_POST_RENDER_STRING,
21
+ }
22
+ Object.assign(serverContext, c)
23
+ } else {
24
+ globalThis[SERVER_CONTEXT_KEY] = c
25
+ }
26
+ }
27
+
28
+ export function getServerContext() {
29
+ if (isClient) {
30
+ return serverContext
31
+ }
32
+ return globalThis[SERVER_CONTEXT_KEY] as MaybeServerContext
33
+ }
34
+
35
+ export function ServerContextScript() {
36
+ const context = getServerContext()
37
+ if (!context) {
38
+ throw new Error(`no server context, internal one bug`)
39
+ }
40
+ return (
41
+ <script
42
+ async
43
+ // @ts-ignore
44
+ href={SERVER_CONTEXT_KEY}
45
+ dangerouslySetInnerHTML={{
46
+ __html: `
47
+ globalThis["${SERVER_CONTEXT_KEY}"] = ${JSON.stringify(context)};
48
+ `,
49
+ }}
50
+ />
51
+ )
52
+ }