@rangojs/router 0.0.0-experimental.0b82333f

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 (1108) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +899 -0
  3. package/dist/__internal.d.ts +83 -0
  4. package/dist/__internal.d.ts.map +1 -0
  5. package/dist/__internal.js +19 -0
  6. package/dist/__internal.js.map +1 -0
  7. package/dist/__mocks__/version.d.ts +7 -0
  8. package/dist/__mocks__/version.d.ts.map +1 -0
  9. package/dist/__mocks__/version.js +7 -0
  10. package/dist/__mocks__/version.js.map +1 -0
  11. package/dist/__tests__/client-href.test.d.ts +2 -0
  12. package/dist/__tests__/client-href.test.d.ts.map +1 -0
  13. package/dist/__tests__/client-href.test.js +74 -0
  14. package/dist/__tests__/client-href.test.js.map +1 -0
  15. package/dist/__tests__/component-utils.test.d.ts +2 -0
  16. package/dist/__tests__/component-utils.test.d.ts.map +1 -0
  17. package/dist/__tests__/component-utils.test.js +51 -0
  18. package/dist/__tests__/component-utils.test.js.map +1 -0
  19. package/dist/__tests__/event-controller.test.d.ts +2 -0
  20. package/dist/__tests__/event-controller.test.d.ts.map +1 -0
  21. package/dist/__tests__/event-controller.test.js +538 -0
  22. package/dist/__tests__/event-controller.test.js.map +1 -0
  23. package/dist/__tests__/helpers/route-tree.d.ts +118 -0
  24. package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
  25. package/dist/__tests__/helpers/route-tree.js +374 -0
  26. package/dist/__tests__/helpers/route-tree.js.map +1 -0
  27. package/dist/__tests__/match-result.test.d.ts +2 -0
  28. package/dist/__tests__/match-result.test.d.ts.map +1 -0
  29. package/dist/__tests__/match-result.test.js +154 -0
  30. package/dist/__tests__/match-result.test.js.map +1 -0
  31. package/dist/__tests__/navigation-store.test.d.ts +2 -0
  32. package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
  33. package/dist/__tests__/navigation-store.test.js +440 -0
  34. package/dist/__tests__/navigation-store.test.js.map +1 -0
  35. package/dist/__tests__/partial-update.test.d.ts +2 -0
  36. package/dist/__tests__/partial-update.test.d.ts.map +1 -0
  37. package/dist/__tests__/partial-update.test.js +1009 -0
  38. package/dist/__tests__/partial-update.test.js.map +1 -0
  39. package/dist/__tests__/reverse-types.test.d.ts +8 -0
  40. package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
  41. package/dist/__tests__/reverse-types.test.js +656 -0
  42. package/dist/__tests__/reverse-types.test.js.map +1 -0
  43. package/dist/__tests__/route-definition.test.d.ts +2 -0
  44. package/dist/__tests__/route-definition.test.d.ts.map +1 -0
  45. package/dist/__tests__/route-definition.test.js +55 -0
  46. package/dist/__tests__/route-definition.test.js.map +1 -0
  47. package/dist/__tests__/router-helpers.test.d.ts +2 -0
  48. package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
  49. package/dist/__tests__/router-helpers.test.js +377 -0
  50. package/dist/__tests__/router-helpers.test.js.map +1 -0
  51. package/dist/__tests__/router-integration-2.test.d.ts +2 -0
  52. package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
  53. package/dist/__tests__/router-integration-2.test.js +426 -0
  54. package/dist/__tests__/router-integration-2.test.js.map +1 -0
  55. package/dist/__tests__/router-integration.test.d.ts +2 -0
  56. package/dist/__tests__/router-integration.test.d.ts.map +1 -0
  57. package/dist/__tests__/router-integration.test.js +1051 -0
  58. package/dist/__tests__/router-integration.test.js.map +1 -0
  59. package/dist/__tests__/search-params.test.d.ts +5 -0
  60. package/dist/__tests__/search-params.test.d.ts.map +1 -0
  61. package/dist/__tests__/search-params.test.js +306 -0
  62. package/dist/__tests__/search-params.test.js.map +1 -0
  63. package/dist/__tests__/segment-system.test.d.ts +2 -0
  64. package/dist/__tests__/segment-system.test.d.ts.map +1 -0
  65. package/dist/__tests__/segment-system.test.js +627 -0
  66. package/dist/__tests__/segment-system.test.js.map +1 -0
  67. package/dist/__tests__/static-handler-types.test.d.ts +8 -0
  68. package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
  69. package/dist/__tests__/static-handler-types.test.js +63 -0
  70. package/dist/__tests__/static-handler-types.test.js.map +1 -0
  71. package/dist/__tests__/urls.test.d.ts +2 -0
  72. package/dist/__tests__/urls.test.d.ts.map +1 -0
  73. package/dist/__tests__/urls.test.js +421 -0
  74. package/dist/__tests__/urls.test.js.map +1 -0
  75. package/dist/__tests__/use-mount.test.d.ts +2 -0
  76. package/dist/__tests__/use-mount.test.d.ts.map +1 -0
  77. package/dist/__tests__/use-mount.test.js +35 -0
  78. package/dist/__tests__/use-mount.test.js.map +1 -0
  79. package/dist/bin/rango.d.ts +2 -0
  80. package/dist/bin/rango.d.ts.map +1 -0
  81. package/dist/bin/rango.js +1601 -0
  82. package/dist/bin/rango.js.map +1 -0
  83. package/dist/browser/event-controller.d.ts +191 -0
  84. package/dist/browser/event-controller.d.ts.map +1 -0
  85. package/dist/browser/event-controller.js +559 -0
  86. package/dist/browser/event-controller.js.map +1 -0
  87. package/dist/browser/index.d.ts +2 -0
  88. package/dist/browser/index.d.ts.map +1 -0
  89. package/dist/browser/index.js +14 -0
  90. package/dist/browser/index.js.map +1 -0
  91. package/dist/browser/link-interceptor.d.ts +38 -0
  92. package/dist/browser/link-interceptor.d.ts.map +1 -0
  93. package/dist/browser/link-interceptor.js +99 -0
  94. package/dist/browser/link-interceptor.js.map +1 -0
  95. package/dist/browser/logging.d.ts +10 -0
  96. package/dist/browser/logging.d.ts.map +1 -0
  97. package/dist/browser/logging.js +29 -0
  98. package/dist/browser/logging.js.map +1 -0
  99. package/dist/browser/lru-cache.d.ts +17 -0
  100. package/dist/browser/lru-cache.d.ts.map +1 -0
  101. package/dist/browser/lru-cache.js +50 -0
  102. package/dist/browser/lru-cache.js.map +1 -0
  103. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  104. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  105. package/dist/browser/merge-segment-loaders.js +102 -0
  106. package/dist/browser/merge-segment-loaders.js.map +1 -0
  107. package/dist/browser/navigation-bridge.d.ts +102 -0
  108. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  109. package/dist/browser/navigation-bridge.js +708 -0
  110. package/dist/browser/navigation-bridge.js.map +1 -0
  111. package/dist/browser/navigation-client.d.ts +25 -0
  112. package/dist/browser/navigation-client.d.ts.map +1 -0
  113. package/dist/browser/navigation-client.js +157 -0
  114. package/dist/browser/navigation-client.js.map +1 -0
  115. package/dist/browser/navigation-store.d.ts +101 -0
  116. package/dist/browser/navigation-store.d.ts.map +1 -0
  117. package/dist/browser/navigation-store.js +625 -0
  118. package/dist/browser/navigation-store.js.map +1 -0
  119. package/dist/browser/partial-update.d.ts +75 -0
  120. package/dist/browser/partial-update.d.ts.map +1 -0
  121. package/dist/browser/partial-update.js +426 -0
  122. package/dist/browser/partial-update.js.map +1 -0
  123. package/dist/browser/react/Link.d.ts +86 -0
  124. package/dist/browser/react/Link.d.ts.map +1 -0
  125. package/dist/browser/react/Link.js +128 -0
  126. package/dist/browser/react/Link.js.map +1 -0
  127. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  128. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  129. package/dist/browser/react/NavigationProvider.js +216 -0
  130. package/dist/browser/react/NavigationProvider.js.map +1 -0
  131. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  132. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  133. package/dist/browser/react/ScrollRestoration.js +57 -0
  134. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  135. package/dist/browser/react/context.d.ts +46 -0
  136. package/dist/browser/react/context.d.ts.map +1 -0
  137. package/dist/browser/react/context.js +10 -0
  138. package/dist/browser/react/context.js.map +1 -0
  139. package/dist/browser/react/index.d.ts +11 -0
  140. package/dist/browser/react/index.d.ts.map +1 -0
  141. package/dist/browser/react/index.js +22 -0
  142. package/dist/browser/react/index.js.map +1 -0
  143. package/dist/browser/react/location-state-shared.d.ts +63 -0
  144. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  145. package/dist/browser/react/location-state-shared.js +81 -0
  146. package/dist/browser/react/location-state-shared.js.map +1 -0
  147. package/dist/browser/react/location-state.d.ts +23 -0
  148. package/dist/browser/react/location-state.d.ts.map +1 -0
  149. package/dist/browser/react/location-state.js +29 -0
  150. package/dist/browser/react/location-state.js.map +1 -0
  151. package/dist/browser/react/mount-context.d.ts +24 -0
  152. package/dist/browser/react/mount-context.d.ts.map +1 -0
  153. package/dist/browser/react/mount-context.js +24 -0
  154. package/dist/browser/react/mount-context.js.map +1 -0
  155. package/dist/browser/react/use-action.d.ts +64 -0
  156. package/dist/browser/react/use-action.d.ts.map +1 -0
  157. package/dist/browser/react/use-action.js +134 -0
  158. package/dist/browser/react/use-action.js.map +1 -0
  159. package/dist/browser/react/use-client-cache.d.ts +41 -0
  160. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  161. package/dist/browser/react/use-client-cache.js +39 -0
  162. package/dist/browser/react/use-client-cache.js.map +1 -0
  163. package/dist/browser/react/use-handle.d.ts +31 -0
  164. package/dist/browser/react/use-handle.d.ts.map +1 -0
  165. package/dist/browser/react/use-handle.js +144 -0
  166. package/dist/browser/react/use-handle.js.map +1 -0
  167. package/dist/browser/react/use-href.d.ts +33 -0
  168. package/dist/browser/react/use-href.d.ts.map +1 -0
  169. package/dist/browser/react/use-href.js +39 -0
  170. package/dist/browser/react/use-href.js.map +1 -0
  171. package/dist/browser/react/use-link-status.d.ts +37 -0
  172. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  173. package/dist/browser/react/use-link-status.js +99 -0
  174. package/dist/browser/react/use-link-status.js.map +1 -0
  175. package/dist/browser/react/use-mount.d.ts +25 -0
  176. package/dist/browser/react/use-mount.d.ts.map +1 -0
  177. package/dist/browser/react/use-mount.js +30 -0
  178. package/dist/browser/react/use-mount.js.map +1 -0
  179. package/dist/browser/react/use-navigation.d.ts +27 -0
  180. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  181. package/dist/browser/react/use-navigation.js +87 -0
  182. package/dist/browser/react/use-navigation.js.map +1 -0
  183. package/dist/browser/react/use-segments.d.ts +38 -0
  184. package/dist/browser/react/use-segments.d.ts.map +1 -0
  185. package/dist/browser/react/use-segments.js +130 -0
  186. package/dist/browser/react/use-segments.js.map +1 -0
  187. package/dist/browser/request-controller.d.ts +26 -0
  188. package/dist/browser/request-controller.d.ts.map +1 -0
  189. package/dist/browser/request-controller.js +147 -0
  190. package/dist/browser/request-controller.js.map +1 -0
  191. package/dist/browser/rsc-router.d.ts +129 -0
  192. package/dist/browser/rsc-router.d.ts.map +1 -0
  193. package/dist/browser/rsc-router.js +195 -0
  194. package/dist/browser/rsc-router.js.map +1 -0
  195. package/dist/browser/scroll-restoration.d.ts +93 -0
  196. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  197. package/dist/browser/scroll-restoration.js +321 -0
  198. package/dist/browser/scroll-restoration.js.map +1 -0
  199. package/dist/browser/segment-structure-assert.d.ts +17 -0
  200. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  201. package/dist/browser/segment-structure-assert.js +59 -0
  202. package/dist/browser/segment-structure-assert.js.map +1 -0
  203. package/dist/browser/server-action-bridge.d.ts +26 -0
  204. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  205. package/dist/browser/server-action-bridge.js +668 -0
  206. package/dist/browser/server-action-bridge.js.map +1 -0
  207. package/dist/browser/shallow.d.ts +12 -0
  208. package/dist/browser/shallow.d.ts.map +1 -0
  209. package/dist/browser/shallow.js +34 -0
  210. package/dist/browser/shallow.js.map +1 -0
  211. package/dist/browser/types.d.ts +369 -0
  212. package/dist/browser/types.d.ts.map +1 -0
  213. package/dist/browser/types.js +2 -0
  214. package/dist/browser/types.js.map +1 -0
  215. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  216. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  217. package/dist/build/__tests__/generate-cli.test.js +237 -0
  218. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  219. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  220. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  221. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  222. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  223. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  224. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  225. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  226. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  227. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  228. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  229. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  230. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  231. package/dist/build/generate-manifest.d.ts +81 -0
  232. package/dist/build/generate-manifest.d.ts.map +1 -0
  233. package/dist/build/generate-manifest.js +276 -0
  234. package/dist/build/generate-manifest.js.map +1 -0
  235. package/dist/build/generate-route-types.d.ts +115 -0
  236. package/dist/build/generate-route-types.d.ts.map +1 -0
  237. package/dist/build/generate-route-types.js +740 -0
  238. package/dist/build/generate-route-types.js.map +1 -0
  239. package/dist/build/index.d.ts +21 -0
  240. package/dist/build/index.d.ts.map +1 -0
  241. package/dist/build/index.js +21 -0
  242. package/dist/build/index.js.map +1 -0
  243. package/dist/build/route-trie.d.ts +71 -0
  244. package/dist/build/route-trie.d.ts.map +1 -0
  245. package/dist/build/route-trie.js +175 -0
  246. package/dist/build/route-trie.js.map +1 -0
  247. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  248. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  249. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  250. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  251. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  252. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  253. package/dist/cache/__tests__/document-cache.test.js +345 -0
  254. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  256. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  257. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  258. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  259. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  260. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  261. package/dist/cache/__tests__/memory-store.test.js +367 -0
  262. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  263. package/dist/cache/cache-scope.d.ts +102 -0
  264. package/dist/cache/cache-scope.d.ts.map +1 -0
  265. package/dist/cache/cache-scope.js +440 -0
  266. package/dist/cache/cache-scope.js.map +1 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  268. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  269. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  270. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  271. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  272. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  273. package/dist/cache/cf/cf-cache-store.js +242 -0
  274. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  275. package/dist/cache/cf/index.d.ts +14 -0
  276. package/dist/cache/cf/index.d.ts.map +1 -0
  277. package/dist/cache/cf/index.js +17 -0
  278. package/dist/cache/cf/index.js.map +1 -0
  279. package/dist/cache/document-cache.d.ts +64 -0
  280. package/dist/cache/document-cache.d.ts.map +1 -0
  281. package/dist/cache/document-cache.js +228 -0
  282. package/dist/cache/document-cache.js.map +1 -0
  283. package/dist/cache/index.d.ts +19 -0
  284. package/dist/cache/index.d.ts.map +1 -0
  285. package/dist/cache/index.js +21 -0
  286. package/dist/cache/index.js.map +1 -0
  287. package/dist/cache/memory-segment-store.d.ts +110 -0
  288. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  289. package/dist/cache/memory-segment-store.js +117 -0
  290. package/dist/cache/memory-segment-store.js.map +1 -0
  291. package/dist/cache/memory-store.d.ts +41 -0
  292. package/dist/cache/memory-store.d.ts.map +1 -0
  293. package/dist/cache/memory-store.js +191 -0
  294. package/dist/cache/memory-store.js.map +1 -0
  295. package/dist/cache/types.d.ts +317 -0
  296. package/dist/cache/types.d.ts.map +1 -0
  297. package/dist/cache/types.js +12 -0
  298. package/dist/cache/types.js.map +1 -0
  299. package/dist/client.d.ts +248 -0
  300. package/dist/client.d.ts.map +1 -0
  301. package/dist/client.js +367 -0
  302. package/dist/client.js.map +1 -0
  303. package/dist/client.rsc.d.ts +26 -0
  304. package/dist/client.rsc.d.ts.map +1 -0
  305. package/dist/client.rsc.js +46 -0
  306. package/dist/client.rsc.js.map +1 -0
  307. package/dist/component-utils.d.ts +36 -0
  308. package/dist/component-utils.d.ts.map +1 -0
  309. package/dist/component-utils.js +61 -0
  310. package/dist/component-utils.js.map +1 -0
  311. package/dist/components/DefaultDocument.d.ts +13 -0
  312. package/dist/components/DefaultDocument.d.ts.map +1 -0
  313. package/dist/components/DefaultDocument.js +15 -0
  314. package/dist/components/DefaultDocument.js.map +1 -0
  315. package/dist/debug.d.ts +58 -0
  316. package/dist/debug.d.ts.map +1 -0
  317. package/dist/debug.js +157 -0
  318. package/dist/debug.js.map +1 -0
  319. package/dist/default-error-boundary.d.ts +11 -0
  320. package/dist/default-error-boundary.d.ts.map +1 -0
  321. package/dist/default-error-boundary.js +45 -0
  322. package/dist/default-error-boundary.js.map +1 -0
  323. package/dist/deps/browser.d.ts +2 -0
  324. package/dist/deps/browser.d.ts.map +1 -0
  325. package/dist/deps/browser.js +3 -0
  326. package/dist/deps/browser.js.map +1 -0
  327. package/dist/deps/html-stream-client.d.ts +2 -0
  328. package/dist/deps/html-stream-client.d.ts.map +1 -0
  329. package/dist/deps/html-stream-client.js +3 -0
  330. package/dist/deps/html-stream-client.js.map +1 -0
  331. package/dist/deps/html-stream-server.d.ts +2 -0
  332. package/dist/deps/html-stream-server.d.ts.map +1 -0
  333. package/dist/deps/html-stream-server.js +3 -0
  334. package/dist/deps/html-stream-server.js.map +1 -0
  335. package/dist/deps/rsc.d.ts +2 -0
  336. package/dist/deps/rsc.d.ts.map +1 -0
  337. package/dist/deps/rsc.js +4 -0
  338. package/dist/deps/rsc.js.map +1 -0
  339. package/dist/deps/ssr.d.ts +2 -0
  340. package/dist/deps/ssr.d.ts.map +1 -0
  341. package/dist/deps/ssr.js +3 -0
  342. package/dist/deps/ssr.js.map +1 -0
  343. package/dist/errors.d.ts +174 -0
  344. package/dist/errors.d.ts.map +1 -0
  345. package/dist/errors.js +241 -0
  346. package/dist/errors.js.map +1 -0
  347. package/dist/handle.d.ts +78 -0
  348. package/dist/handle.d.ts.map +1 -0
  349. package/dist/handle.js +82 -0
  350. package/dist/handle.js.map +1 -0
  351. package/dist/handles/MetaTags.d.ts +14 -0
  352. package/dist/handles/MetaTags.d.ts.map +1 -0
  353. package/dist/handles/MetaTags.js +136 -0
  354. package/dist/handles/MetaTags.js.map +1 -0
  355. package/dist/handles/index.d.ts +6 -0
  356. package/dist/handles/index.d.ts.map +1 -0
  357. package/dist/handles/index.js +6 -0
  358. package/dist/handles/index.js.map +1 -0
  359. package/dist/handles/meta.d.ts +39 -0
  360. package/dist/handles/meta.d.ts.map +1 -0
  361. package/dist/handles/meta.js +202 -0
  362. package/dist/handles/meta.js.map +1 -0
  363. package/dist/host/__tests__/errors.test.d.ts +2 -0
  364. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  365. package/dist/host/__tests__/errors.test.js +76 -0
  366. package/dist/host/__tests__/errors.test.js.map +1 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  369. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  370. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  371. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  372. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  373. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  374. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  375. package/dist/host/__tests__/router.test.d.ts +2 -0
  376. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  377. package/dist/host/__tests__/router.test.js +241 -0
  378. package/dist/host/__tests__/router.test.js.map +1 -0
  379. package/dist/host/__tests__/testing.test.d.ts +2 -0
  380. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  381. package/dist/host/__tests__/testing.test.js +64 -0
  382. package/dist/host/__tests__/testing.test.js.map +1 -0
  383. package/dist/host/__tests__/utils.test.d.ts +2 -0
  384. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  385. package/dist/host/__tests__/utils.test.js +29 -0
  386. package/dist/host/__tests__/utils.test.js.map +1 -0
  387. package/dist/host/cookie-handler.d.ts +34 -0
  388. package/dist/host/cookie-handler.d.ts.map +1 -0
  389. package/dist/host/cookie-handler.js +124 -0
  390. package/dist/host/cookie-handler.js.map +1 -0
  391. package/dist/host/errors.d.ts +56 -0
  392. package/dist/host/errors.d.ts.map +1 -0
  393. package/dist/host/errors.js +79 -0
  394. package/dist/host/errors.js.map +1 -0
  395. package/dist/host/index.d.ts +29 -0
  396. package/dist/host/index.d.ts.map +1 -0
  397. package/dist/host/index.js +32 -0
  398. package/dist/host/index.js.map +1 -0
  399. package/dist/host/pattern-matcher.d.ts +36 -0
  400. package/dist/host/pattern-matcher.d.ts.map +1 -0
  401. package/dist/host/pattern-matcher.js +172 -0
  402. package/dist/host/pattern-matcher.js.map +1 -0
  403. package/dist/host/router.d.ts +26 -0
  404. package/dist/host/router.d.ts.map +1 -0
  405. package/dist/host/router.js +218 -0
  406. package/dist/host/router.js.map +1 -0
  407. package/dist/host/testing.d.ts +36 -0
  408. package/dist/host/testing.d.ts.map +1 -0
  409. package/dist/host/testing.js +55 -0
  410. package/dist/host/testing.js.map +1 -0
  411. package/dist/host/types.d.ts +115 -0
  412. package/dist/host/types.d.ts.map +1 -0
  413. package/dist/host/types.js +7 -0
  414. package/dist/host/types.js.map +1 -0
  415. package/dist/host/utils.d.ts +21 -0
  416. package/dist/host/utils.d.ts.map +1 -0
  417. package/dist/host/utils.js +23 -0
  418. package/dist/host/utils.js.map +1 -0
  419. package/dist/href-client.d.ts +131 -0
  420. package/dist/href-client.d.ts.map +1 -0
  421. package/dist/href-client.js +64 -0
  422. package/dist/href-client.js.map +1 -0
  423. package/dist/href-context.d.ts +29 -0
  424. package/dist/href-context.d.ts.map +1 -0
  425. package/dist/href-context.js +21 -0
  426. package/dist/href-context.js.map +1 -0
  427. package/dist/index.d.ts +73 -0
  428. package/dist/index.d.ts.map +1 -0
  429. package/dist/index.js +91 -0
  430. package/dist/index.js.map +1 -0
  431. package/dist/index.rsc.d.ts +32 -0
  432. package/dist/index.rsc.d.ts.map +1 -0
  433. package/dist/index.rsc.js +40 -0
  434. package/dist/index.rsc.js.map +1 -0
  435. package/dist/internal-debug.d.ts +2 -0
  436. package/dist/internal-debug.d.ts.map +1 -0
  437. package/dist/internal-debug.js +5 -0
  438. package/dist/internal-debug.js.map +1 -0
  439. package/dist/loader.d.ts +14 -0
  440. package/dist/loader.d.ts.map +1 -0
  441. package/dist/loader.js +20 -0
  442. package/dist/loader.js.map +1 -0
  443. package/dist/loader.rsc.d.ts +19 -0
  444. package/dist/loader.rsc.d.ts.map +1 -0
  445. package/dist/loader.rsc.js +99 -0
  446. package/dist/loader.rsc.js.map +1 -0
  447. package/dist/network-error-thrower.d.ts +17 -0
  448. package/dist/network-error-thrower.d.ts.map +1 -0
  449. package/dist/network-error-thrower.js +14 -0
  450. package/dist/network-error-thrower.js.map +1 -0
  451. package/dist/outlet-context.d.ts +13 -0
  452. package/dist/outlet-context.d.ts.map +1 -0
  453. package/dist/outlet-context.js +3 -0
  454. package/dist/outlet-context.js.map +1 -0
  455. package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
  456. package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
  457. package/dist/prerender/__tests__/param-hash.test.js +148 -0
  458. package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
  459. package/dist/prerender/param-hash.d.ts +16 -0
  460. package/dist/prerender/param-hash.d.ts.map +1 -0
  461. package/dist/prerender/param-hash.js +36 -0
  462. package/dist/prerender/param-hash.js.map +1 -0
  463. package/dist/prerender/store.d.ts +38 -0
  464. package/dist/prerender/store.d.ts.map +1 -0
  465. package/dist/prerender/store.js +61 -0
  466. package/dist/prerender/store.js.map +1 -0
  467. package/dist/prerender.d.ts +66 -0
  468. package/dist/prerender.d.ts.map +1 -0
  469. package/dist/prerender.js +57 -0
  470. package/dist/prerender.js.map +1 -0
  471. package/dist/reverse.d.ts +196 -0
  472. package/dist/reverse.d.ts.map +1 -0
  473. package/dist/reverse.js +78 -0
  474. package/dist/reverse.js.map +1 -0
  475. package/dist/root-error-boundary.d.ts +33 -0
  476. package/dist/root-error-boundary.d.ts.map +1 -0
  477. package/dist/root-error-boundary.js +165 -0
  478. package/dist/root-error-boundary.js.map +1 -0
  479. package/dist/route-content-wrapper.d.ts +46 -0
  480. package/dist/route-content-wrapper.d.ts.map +1 -0
  481. package/dist/route-content-wrapper.js +77 -0
  482. package/dist/route-content-wrapper.js.map +1 -0
  483. package/dist/route-definition.d.ts +421 -0
  484. package/dist/route-definition.d.ts.map +1 -0
  485. package/dist/route-definition.js +868 -0
  486. package/dist/route-definition.js.map +1 -0
  487. package/dist/route-map-builder.d.ts +155 -0
  488. package/dist/route-map-builder.d.ts.map +1 -0
  489. package/dist/route-map-builder.js +237 -0
  490. package/dist/route-map-builder.js.map +1 -0
  491. package/dist/route-types.d.ts +165 -0
  492. package/dist/route-types.d.ts.map +1 -0
  493. package/dist/route-types.js +7 -0
  494. package/dist/route-types.js.map +1 -0
  495. package/dist/router/__tests__/handler-context.test.d.ts +2 -0
  496. package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
  497. package/dist/router/__tests__/handler-context.test.js +65 -0
  498. package/dist/router/__tests__/handler-context.test.js.map +1 -0
  499. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
  500. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
  501. package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
  502. package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
  503. package/dist/router/__tests__/match-context.test.d.ts +2 -0
  504. package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
  505. package/dist/router/__tests__/match-context.test.js +92 -0
  506. package/dist/router/__tests__/match-context.test.js.map +1 -0
  507. package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
  508. package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
  509. package/dist/router/__tests__/match-pipelines.test.js +417 -0
  510. package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
  511. package/dist/router/__tests__/match-result.test.d.ts +2 -0
  512. package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
  513. package/dist/router/__tests__/match-result.test.js +457 -0
  514. package/dist/router/__tests__/match-result.test.js.map +1 -0
  515. package/dist/router/__tests__/on-error.test.d.ts +2 -0
  516. package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
  517. package/dist/router/__tests__/on-error.test.js +678 -0
  518. package/dist/router/__tests__/on-error.test.js.map +1 -0
  519. package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
  520. package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
  521. package/dist/router/__tests__/pattern-matching.test.js +629 -0
  522. package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
  523. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
  524. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
  525. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
  526. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
  527. package/dist/router/error-handling.d.ts +77 -0
  528. package/dist/router/error-handling.d.ts.map +1 -0
  529. package/dist/router/error-handling.js +202 -0
  530. package/dist/router/error-handling.js.map +1 -0
  531. package/dist/router/handler-context.d.ts +20 -0
  532. package/dist/router/handler-context.d.ts.map +1 -0
  533. package/dist/router/handler-context.js +198 -0
  534. package/dist/router/handler-context.js.map +1 -0
  535. package/dist/router/intercept-resolution.d.ts +66 -0
  536. package/dist/router/intercept-resolution.d.ts.map +1 -0
  537. package/dist/router/intercept-resolution.js +246 -0
  538. package/dist/router/intercept-resolution.js.map +1 -0
  539. package/dist/router/loader-resolution.d.ts +64 -0
  540. package/dist/router/loader-resolution.d.ts.map +1 -0
  541. package/dist/router/loader-resolution.js +284 -0
  542. package/dist/router/loader-resolution.js.map +1 -0
  543. package/dist/router/logging.d.ts +15 -0
  544. package/dist/router/logging.d.ts.map +1 -0
  545. package/dist/router/logging.js +99 -0
  546. package/dist/router/logging.js.map +1 -0
  547. package/dist/router/manifest.d.ts +22 -0
  548. package/dist/router/manifest.d.ts.map +1 -0
  549. package/dist/router/manifest.js +181 -0
  550. package/dist/router/manifest.js.map +1 -0
  551. package/dist/router/match-api.d.ts +35 -0
  552. package/dist/router/match-api.d.ts.map +1 -0
  553. package/dist/router/match-api.js +406 -0
  554. package/dist/router/match-api.js.map +1 -0
  555. package/dist/router/match-context.d.ts +206 -0
  556. package/dist/router/match-context.d.ts.map +1 -0
  557. package/dist/router/match-context.js +17 -0
  558. package/dist/router/match-context.js.map +1 -0
  559. package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
  560. package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
  561. package/dist/router/match-middleware/background-revalidation.js +75 -0
  562. package/dist/router/match-middleware/background-revalidation.js.map +1 -0
  563. package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
  564. package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
  565. package/dist/router/match-middleware/cache-lookup.js +257 -0
  566. package/dist/router/match-middleware/cache-lookup.js.map +1 -0
  567. package/dist/router/match-middleware/cache-store.d.ts +113 -0
  568. package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
  569. package/dist/router/match-middleware/cache-store.js +108 -0
  570. package/dist/router/match-middleware/cache-store.js.map +1 -0
  571. package/dist/router/match-middleware/index.d.ts +81 -0
  572. package/dist/router/match-middleware/index.d.ts.map +1 -0
  573. package/dist/router/match-middleware/index.js +80 -0
  574. package/dist/router/match-middleware/index.js.map +1 -0
  575. package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
  576. package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
  577. package/dist/router/match-middleware/intercept-resolution.js +134 -0
  578. package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
  579. package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
  580. package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
  581. package/dist/router/match-middleware/segment-resolution.js +53 -0
  582. package/dist/router/match-middleware/segment-resolution.js.map +1 -0
  583. package/dist/router/match-pipelines.d.ts +147 -0
  584. package/dist/router/match-pipelines.d.ts.map +1 -0
  585. package/dist/router/match-pipelines.js +82 -0
  586. package/dist/router/match-pipelines.js.map +1 -0
  587. package/dist/router/match-result.d.ts +126 -0
  588. package/dist/router/match-result.d.ts.map +1 -0
  589. package/dist/router/match-result.js +93 -0
  590. package/dist/router/match-result.js.map +1 -0
  591. package/dist/router/metrics.d.ts +20 -0
  592. package/dist/router/metrics.d.ts.map +1 -0
  593. package/dist/router/metrics.js +47 -0
  594. package/dist/router/metrics.js.map +1 -0
  595. package/dist/router/middleware.d.ts +249 -0
  596. package/dist/router/middleware.d.ts.map +1 -0
  597. package/dist/router/middleware.js +434 -0
  598. package/dist/router/middleware.js.map +1 -0
  599. package/dist/router/middleware.test.d.ts +2 -0
  600. package/dist/router/middleware.test.d.ts.map +1 -0
  601. package/dist/router/middleware.test.js +816 -0
  602. package/dist/router/middleware.test.js.map +1 -0
  603. package/dist/router/pattern-matching.d.ts +149 -0
  604. package/dist/router/pattern-matching.d.ts.map +1 -0
  605. package/dist/router/pattern-matching.js +349 -0
  606. package/dist/router/pattern-matching.js.map +1 -0
  607. package/dist/router/revalidation.d.ts +44 -0
  608. package/dist/router/revalidation.d.ts.map +1 -0
  609. package/dist/router/revalidation.js +147 -0
  610. package/dist/router/revalidation.js.map +1 -0
  611. package/dist/router/router-context.d.ts +135 -0
  612. package/dist/router/router-context.d.ts.map +1 -0
  613. package/dist/router/router-context.js +36 -0
  614. package/dist/router/router-context.js.map +1 -0
  615. package/dist/router/segment-resolution.d.ts +127 -0
  616. package/dist/router/segment-resolution.d.ts.map +1 -0
  617. package/dist/router/segment-resolution.js +919 -0
  618. package/dist/router/segment-resolution.js.map +1 -0
  619. package/dist/router/trie-matching.d.ts +40 -0
  620. package/dist/router/trie-matching.d.ts.map +1 -0
  621. package/dist/router/trie-matching.js +127 -0
  622. package/dist/router/trie-matching.js.map +1 -0
  623. package/dist/router/types.d.ts +136 -0
  624. package/dist/router/types.d.ts.map +1 -0
  625. package/dist/router/types.js +7 -0
  626. package/dist/router/types.js.map +1 -0
  627. package/dist/router.d.ts +753 -0
  628. package/dist/router.d.ts.map +1 -0
  629. package/dist/router.gen.d.ts +6 -0
  630. package/dist/router.gen.d.ts.map +1 -0
  631. package/dist/router.gen.js +6 -0
  632. package/dist/router.gen.js.map +1 -0
  633. package/dist/router.js +1304 -0
  634. package/dist/router.js.map +1 -0
  635. package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
  636. package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
  637. package/dist/rsc/__tests__/helpers.test.js +140 -0
  638. package/dist/rsc/__tests__/helpers.test.js.map +1 -0
  639. package/dist/rsc/handler.d.ts +45 -0
  640. package/dist/rsc/handler.d.ts.map +1 -0
  641. package/dist/rsc/handler.js +1172 -0
  642. package/dist/rsc/handler.js.map +1 -0
  643. package/dist/rsc/helpers.d.ts +16 -0
  644. package/dist/rsc/helpers.d.ts.map +1 -0
  645. package/dist/rsc/helpers.js +55 -0
  646. package/dist/rsc/helpers.js.map +1 -0
  647. package/dist/rsc/index.d.ts +22 -0
  648. package/dist/rsc/index.d.ts.map +1 -0
  649. package/dist/rsc/index.js +23 -0
  650. package/dist/rsc/index.js.map +1 -0
  651. package/dist/rsc/nonce.d.ts +9 -0
  652. package/dist/rsc/nonce.d.ts.map +1 -0
  653. package/dist/rsc/nonce.js +18 -0
  654. package/dist/rsc/nonce.js.map +1 -0
  655. package/dist/rsc/types.d.ts +206 -0
  656. package/dist/rsc/types.d.ts.map +1 -0
  657. package/dist/rsc/types.js +8 -0
  658. package/dist/rsc/types.js.map +1 -0
  659. package/dist/search-params.d.ts +103 -0
  660. package/dist/search-params.d.ts.map +1 -0
  661. package/dist/search-params.js +74 -0
  662. package/dist/search-params.js.map +1 -0
  663. package/dist/segment-system.d.ts +75 -0
  664. package/dist/segment-system.d.ts.map +1 -0
  665. package/dist/segment-system.js +336 -0
  666. package/dist/segment-system.js.map +1 -0
  667. package/dist/server/context.d.ts +245 -0
  668. package/dist/server/context.d.ts.map +1 -0
  669. package/dist/server/context.js +197 -0
  670. package/dist/server/context.js.map +1 -0
  671. package/dist/server/fetchable-loader-store.d.ts +18 -0
  672. package/dist/server/fetchable-loader-store.d.ts.map +1 -0
  673. package/dist/server/fetchable-loader-store.js +18 -0
  674. package/dist/server/fetchable-loader-store.js.map +1 -0
  675. package/dist/server/handle-store.d.ts +85 -0
  676. package/dist/server/handle-store.d.ts.map +1 -0
  677. package/dist/server/handle-store.js +142 -0
  678. package/dist/server/handle-store.js.map +1 -0
  679. package/dist/server/loader-registry.d.ts +55 -0
  680. package/dist/server/loader-registry.d.ts.map +1 -0
  681. package/dist/server/loader-registry.js +132 -0
  682. package/dist/server/loader-registry.js.map +1 -0
  683. package/dist/server/request-context.d.ts +226 -0
  684. package/dist/server/request-context.d.ts.map +1 -0
  685. package/dist/server/request-context.js +290 -0
  686. package/dist/server/request-context.js.map +1 -0
  687. package/dist/server/root-layout.d.ts +4 -0
  688. package/dist/server/root-layout.d.ts.map +1 -0
  689. package/dist/server/root-layout.js +5 -0
  690. package/dist/server/root-layout.js.map +1 -0
  691. package/dist/server.d.ts +15 -0
  692. package/dist/server.d.ts.map +1 -0
  693. package/dist/server.js +20 -0
  694. package/dist/server.js.map +1 -0
  695. package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
  696. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
  697. package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
  698. package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
  699. package/dist/ssr/index.d.ts +98 -0
  700. package/dist/ssr/index.d.ts.map +1 -0
  701. package/dist/ssr/index.js +158 -0
  702. package/dist/ssr/index.js.map +1 -0
  703. package/dist/static-handler.d.ts +50 -0
  704. package/dist/static-handler.d.ts.map +1 -0
  705. package/dist/static-handler.gen.d.ts +5 -0
  706. package/dist/static-handler.gen.d.ts.map +1 -0
  707. package/dist/static-handler.gen.js +5 -0
  708. package/dist/static-handler.gen.js.map +1 -0
  709. package/dist/static-handler.js +29 -0
  710. package/dist/static-handler.js.map +1 -0
  711. package/dist/theme/ThemeProvider.d.ts +20 -0
  712. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  713. package/dist/theme/ThemeProvider.js +240 -0
  714. package/dist/theme/ThemeProvider.js.map +1 -0
  715. package/dist/theme/ThemeScript.d.ts +48 -0
  716. package/dist/theme/ThemeScript.d.ts.map +1 -0
  717. package/dist/theme/ThemeScript.js +13 -0
  718. package/dist/theme/ThemeScript.js.map +1 -0
  719. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  720. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  721. package/dist/theme/__tests__/theme.test.js +103 -0
  722. package/dist/theme/__tests__/theme.test.js.map +1 -0
  723. package/dist/theme/constants.d.ts +29 -0
  724. package/dist/theme/constants.d.ts.map +1 -0
  725. package/dist/theme/constants.js +48 -0
  726. package/dist/theme/constants.js.map +1 -0
  727. package/dist/theme/index.d.ts +31 -0
  728. package/dist/theme/index.d.ts.map +1 -0
  729. package/dist/theme/index.js +36 -0
  730. package/dist/theme/index.js.map +1 -0
  731. package/dist/theme/theme-context.d.ts +40 -0
  732. package/dist/theme/theme-context.d.ts.map +1 -0
  733. package/dist/theme/theme-context.js +60 -0
  734. package/dist/theme/theme-context.js.map +1 -0
  735. package/dist/theme/theme-script.d.ts +27 -0
  736. package/dist/theme/theme-script.d.ts.map +1 -0
  737. package/dist/theme/theme-script.js +147 -0
  738. package/dist/theme/theme-script.js.map +1 -0
  739. package/dist/theme/types.d.ts +163 -0
  740. package/dist/theme/types.d.ts.map +1 -0
  741. package/dist/theme/types.js +11 -0
  742. package/dist/theme/types.js.map +1 -0
  743. package/dist/theme/use-theme.d.ts +12 -0
  744. package/dist/theme/use-theme.d.ts.map +1 -0
  745. package/dist/theme/use-theme.js +40 -0
  746. package/dist/theme/use-theme.js.map +1 -0
  747. package/dist/types.d.ts +1479 -0
  748. package/dist/types.d.ts.map +1 -0
  749. package/dist/types.js +10 -0
  750. package/dist/types.js.map +1 -0
  751. package/dist/urls.d.ts +441 -0
  752. package/dist/urls.d.ts.map +1 -0
  753. package/dist/urls.gen.d.ts +8 -0
  754. package/dist/urls.gen.d.ts.map +1 -0
  755. package/dist/urls.gen.js +8 -0
  756. package/dist/urls.gen.js.map +1 -0
  757. package/dist/urls.js +443 -0
  758. package/dist/urls.js.map +1 -0
  759. package/dist/use-loader.d.ts +127 -0
  760. package/dist/use-loader.d.ts.map +1 -0
  761. package/dist/use-loader.js +237 -0
  762. package/dist/use-loader.js.map +1 -0
  763. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  764. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  765. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  766. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  767. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  768. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  769. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  770. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  771. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  772. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  773. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  774. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  775. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  776. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  777. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  778. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  779. package/dist/vite/ast-handler-extract.d.ts +49 -0
  780. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  781. package/dist/vite/ast-handler-extract.js +249 -0
  782. package/dist/vite/ast-handler-extract.js.map +1 -0
  783. package/dist/vite/expose-action-id.d.ts +19 -0
  784. package/dist/vite/expose-action-id.d.ts.map +1 -0
  785. package/dist/vite/expose-action-id.js +250 -0
  786. package/dist/vite/expose-action-id.js.map +1 -0
  787. package/dist/vite/expose-id-utils.d.ts +69 -0
  788. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  789. package/dist/vite/expose-id-utils.js +289 -0
  790. package/dist/vite/expose-id-utils.js.map +1 -0
  791. package/dist/vite/expose-internal-ids.d.ts +22 -0
  792. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  793. package/dist/vite/expose-internal-ids.js +886 -0
  794. package/dist/vite/expose-internal-ids.js.map +1 -0
  795. package/dist/vite/index.d.ts +149 -0
  796. package/dist/vite/index.d.ts.map +1 -0
  797. package/dist/vite/index.js +5214 -0
  798. package/dist/vite/index.js.map +1 -0
  799. package/dist/vite/index.named-routes.gen.ts +103 -0
  800. package/dist/vite/package-resolution.d.ts +43 -0
  801. package/dist/vite/package-resolution.d.ts.map +1 -0
  802. package/dist/vite/package-resolution.js +112 -0
  803. package/dist/vite/package-resolution.js.map +1 -0
  804. package/dist/vite/virtual-entries.d.ts +25 -0
  805. package/dist/vite/virtual-entries.d.ts.map +1 -0
  806. package/dist/vite/virtual-entries.js +110 -0
  807. package/dist/vite/virtual-entries.js.map +1 -0
  808. package/package.json +177 -0
  809. package/skills/breadcrumbs/SKILL.md +250 -0
  810. package/skills/cache-guide/SKILL.md +262 -0
  811. package/skills/caching/SKILL.md +220 -0
  812. package/skills/composability/SKILL.md +172 -0
  813. package/skills/debug-manifest/SKILL.md +112 -0
  814. package/skills/document-cache/SKILL.md +182 -0
  815. package/skills/fonts/SKILL.md +167 -0
  816. package/skills/hooks/SKILL.md +704 -0
  817. package/skills/host-router/SKILL.md +218 -0
  818. package/skills/intercept/SKILL.md +313 -0
  819. package/skills/layout/SKILL.md +310 -0
  820. package/skills/links/SKILL.md +239 -0
  821. package/skills/loader/SKILL.md +596 -0
  822. package/skills/middleware/SKILL.md +339 -0
  823. package/skills/mime-routes/SKILL.md +128 -0
  824. package/skills/parallel/SKILL.md +305 -0
  825. package/skills/prerender/SKILL.md +643 -0
  826. package/skills/rango/SKILL.md +118 -0
  827. package/skills/response-routes/SKILL.md +411 -0
  828. package/skills/route/SKILL.md +385 -0
  829. package/skills/router-setup/SKILL.md +439 -0
  830. package/skills/tailwind/SKILL.md +129 -0
  831. package/skills/theme/SKILL.md +79 -0
  832. package/skills/typesafety/SKILL.md +623 -0
  833. package/skills/use-cache/SKILL.md +324 -0
  834. package/src/__internal.ts +273 -0
  835. package/src/bin/rango.ts +321 -0
  836. package/src/browser/action-coordinator.ts +97 -0
  837. package/src/browser/action-response-classifier.ts +99 -0
  838. package/src/browser/event-controller.ts +899 -0
  839. package/src/browser/history-state.ts +80 -0
  840. package/src/browser/index.ts +18 -0
  841. package/src/browser/intercept-utils.ts +52 -0
  842. package/src/browser/link-interceptor.ts +141 -0
  843. package/src/browser/logging.ts +55 -0
  844. package/src/browser/merge-segment-loaders.ts +134 -0
  845. package/src/browser/navigation-bridge.ts +640 -0
  846. package/src/browser/navigation-client.ts +215 -0
  847. package/src/browser/navigation-store.ts +806 -0
  848. package/src/browser/navigation-transaction.ts +295 -0
  849. package/src/browser/network-error-handler.ts +61 -0
  850. package/src/browser/partial-update.ts +552 -0
  851. package/src/browser/prefetch/cache.ts +154 -0
  852. package/src/browser/prefetch/fetch.ts +135 -0
  853. package/src/browser/prefetch/observer.ts +65 -0
  854. package/src/browser/prefetch/policy.ts +48 -0
  855. package/src/browser/prefetch/queue.ts +88 -0
  856. package/src/browser/rango-state.ts +112 -0
  857. package/src/browser/react/Link.tsx +360 -0
  858. package/src/browser/react/NavigationProvider.tsx +386 -0
  859. package/src/browser/react/ScrollRestoration.tsx +94 -0
  860. package/src/browser/react/context.ts +59 -0
  861. package/src/browser/react/filter-segment-order.ts +11 -0
  862. package/src/browser/react/index.ts +52 -0
  863. package/src/browser/react/location-state-shared.ts +162 -0
  864. package/src/browser/react/location-state.ts +107 -0
  865. package/src/browser/react/mount-context.ts +37 -0
  866. package/src/browser/react/nonce-context.ts +23 -0
  867. package/src/browser/react/shallow-equal.ts +27 -0
  868. package/src/browser/react/use-action.ts +218 -0
  869. package/src/browser/react/use-client-cache.ts +58 -0
  870. package/src/browser/react/use-handle.ts +162 -0
  871. package/src/browser/react/use-href.tsx +40 -0
  872. package/src/browser/react/use-link-status.ts +135 -0
  873. package/src/browser/react/use-mount.ts +31 -0
  874. package/src/browser/react/use-navigation.ts +99 -0
  875. package/src/browser/react/use-params.ts +65 -0
  876. package/src/browser/react/use-pathname.ts +47 -0
  877. package/src/browser/react/use-router.ts +63 -0
  878. package/src/browser/react/use-search-params.ts +56 -0
  879. package/src/browser/react/use-segments.ts +171 -0
  880. package/src/browser/response-adapter.ts +73 -0
  881. package/src/browser/rsc-router.tsx +431 -0
  882. package/src/browser/scroll-restoration.ts +384 -0
  883. package/src/browser/segment-reconciler.ts +216 -0
  884. package/src/browser/segment-structure-assert.ts +83 -0
  885. package/src/browser/server-action-bridge.ts +667 -0
  886. package/src/browser/shallow.ts +40 -0
  887. package/src/browser/types.ts +538 -0
  888. package/src/browser/validate-redirect-origin.ts +29 -0
  889. package/src/build/generate-manifest.ts +438 -0
  890. package/src/build/generate-route-types.ts +36 -0
  891. package/src/build/index.ts +35 -0
  892. package/src/build/route-trie.ts +265 -0
  893. package/src/build/route-types/ast-helpers.ts +25 -0
  894. package/src/build/route-types/ast-route-extraction.ts +98 -0
  895. package/src/build/route-types/codegen.ts +102 -0
  896. package/src/build/route-types/include-resolution.ts +411 -0
  897. package/src/build/route-types/param-extraction.ts +48 -0
  898. package/src/build/route-types/per-module-writer.ts +128 -0
  899. package/src/build/route-types/router-processing.ts +469 -0
  900. package/src/build/route-types/scan-filter.ts +78 -0
  901. package/src/build/runtime-discovery.ts +231 -0
  902. package/src/cache/background-task.ts +34 -0
  903. package/src/cache/cache-key-utils.ts +44 -0
  904. package/src/cache/cache-policy.ts +125 -0
  905. package/src/cache/cache-runtime.ts +338 -0
  906. package/src/cache/cache-scope.ts +382 -0
  907. package/src/cache/cf/cf-cache-store.ts +540 -0
  908. package/src/cache/cf/index.ts +25 -0
  909. package/src/cache/document-cache.ts +369 -0
  910. package/src/cache/handle-capture.ts +81 -0
  911. package/src/cache/handle-snapshot.ts +41 -0
  912. package/src/cache/index.ts +43 -0
  913. package/src/cache/memory-segment-store.ts +328 -0
  914. package/src/cache/profile-registry.ts +73 -0
  915. package/src/cache/read-through-swr.ts +134 -0
  916. package/src/cache/segment-codec.ts +256 -0
  917. package/src/cache/taint.ts +98 -0
  918. package/src/cache/types.ts +342 -0
  919. package/src/client.rsc.tsx +85 -0
  920. package/src/client.tsx +601 -0
  921. package/src/component-utils.ts +76 -0
  922. package/src/components/DefaultDocument.tsx +27 -0
  923. package/src/context-var.ts +86 -0
  924. package/src/debug.ts +243 -0
  925. package/src/default-error-boundary.tsx +88 -0
  926. package/src/deps/browser.ts +8 -0
  927. package/src/deps/html-stream-client.ts +2 -0
  928. package/src/deps/html-stream-server.ts +2 -0
  929. package/src/deps/rsc.ts +10 -0
  930. package/src/deps/ssr.ts +2 -0
  931. package/src/errors.ts +365 -0
  932. package/src/handle.ts +135 -0
  933. package/src/handles/MetaTags.tsx +246 -0
  934. package/src/handles/breadcrumbs.ts +66 -0
  935. package/src/handles/index.ts +7 -0
  936. package/src/handles/meta.ts +264 -0
  937. package/src/host/cookie-handler.ts +165 -0
  938. package/src/host/errors.ts +97 -0
  939. package/src/host/index.ts +53 -0
  940. package/src/host/pattern-matcher.ts +214 -0
  941. package/src/host/router.ts +352 -0
  942. package/src/host/testing.ts +79 -0
  943. package/src/host/types.ts +146 -0
  944. package/src/host/utils.ts +25 -0
  945. package/src/href-client.ts +222 -0
  946. package/src/index.rsc.ts +233 -0
  947. package/src/index.ts +277 -0
  948. package/src/internal-debug.ts +11 -0
  949. package/src/loader.rsc.ts +89 -0
  950. package/src/loader.ts +64 -0
  951. package/src/network-error-thrower.tsx +23 -0
  952. package/src/outlet-context.ts +15 -0
  953. package/src/outlet-provider.tsx +45 -0
  954. package/src/prerender/param-hash.ts +37 -0
  955. package/src/prerender/store.ts +185 -0
  956. package/src/prerender.ts +463 -0
  957. package/src/reverse.ts +330 -0
  958. package/src/root-error-boundary.tsx +289 -0
  959. package/src/route-content-wrapper.tsx +196 -0
  960. package/src/route-definition/dsl-helpers.ts +934 -0
  961. package/src/route-definition/helper-factories.ts +200 -0
  962. package/src/route-definition/helpers-types.ts +430 -0
  963. package/src/route-definition/index.ts +52 -0
  964. package/src/route-definition/redirect.ts +93 -0
  965. package/src/route-definition.ts +1 -0
  966. package/src/route-map-builder.ts +275 -0
  967. package/src/route-name.ts +53 -0
  968. package/src/route-types.ts +259 -0
  969. package/src/router/content-negotiation.ts +116 -0
  970. package/src/router/debug-manifest.ts +72 -0
  971. package/src/router/error-handling.ts +287 -0
  972. package/src/router/find-match.ts +158 -0
  973. package/src/router/handler-context.ts +451 -0
  974. package/src/router/intercept-resolution.ts +395 -0
  975. package/src/router/lazy-includes.ts +234 -0
  976. package/src/router/loader-resolution.ts +420 -0
  977. package/src/router/logging.ts +248 -0
  978. package/src/router/manifest.ts +267 -0
  979. package/src/router/match-api.ts +620 -0
  980. package/src/router/match-context.ts +266 -0
  981. package/src/router/match-handlers.ts +440 -0
  982. package/src/router/match-middleware/background-revalidation.ts +223 -0
  983. package/src/router/match-middleware/cache-lookup.ts +634 -0
  984. package/src/router/match-middleware/cache-store.ts +295 -0
  985. package/src/router/match-middleware/index.ts +81 -0
  986. package/src/router/match-middleware/intercept-resolution.ts +306 -0
  987. package/src/router/match-middleware/segment-resolution.ts +192 -0
  988. package/src/router/match-pipelines.ts +179 -0
  989. package/src/router/match-result.ts +219 -0
  990. package/src/router/metrics.ts +282 -0
  991. package/src/router/middleware-cookies.ts +55 -0
  992. package/src/router/middleware-types.ts +222 -0
  993. package/src/router/middleware.ts +748 -0
  994. package/src/router/pattern-matching.ts +563 -0
  995. package/src/router/prerender-match.ts +402 -0
  996. package/src/router/preview-match.ts +170 -0
  997. package/src/router/revalidation.ts +289 -0
  998. package/src/router/router-context.ts +316 -0
  999. package/src/router/router-interfaces.ts +452 -0
  1000. package/src/router/router-options.ts +592 -0
  1001. package/src/router/router-registry.ts +24 -0
  1002. package/src/router/segment-resolution/fresh.ts +570 -0
  1003. package/src/router/segment-resolution/helpers.ts +263 -0
  1004. package/src/router/segment-resolution/loader-cache.ts +198 -0
  1005. package/src/router/segment-resolution/revalidation.ts +1239 -0
  1006. package/src/router/segment-resolution/static-store.ts +67 -0
  1007. package/src/router/segment-resolution.ts +21 -0
  1008. package/src/router/segment-wrappers.ts +289 -0
  1009. package/src/router/telemetry-otel.ts +299 -0
  1010. package/src/router/telemetry.ts +300 -0
  1011. package/src/router/timeout.ts +148 -0
  1012. package/src/router/trie-matching.ts +239 -0
  1013. package/src/router/types.ts +170 -0
  1014. package/src/router.ts +1002 -0
  1015. package/src/rsc/handler-context.ts +45 -0
  1016. package/src/rsc/handler.ts +1089 -0
  1017. package/src/rsc/helpers.ts +198 -0
  1018. package/src/rsc/index.ts +36 -0
  1019. package/src/rsc/loader-fetch.ts +209 -0
  1020. package/src/rsc/manifest-init.ts +86 -0
  1021. package/src/rsc/nonce.ts +32 -0
  1022. package/src/rsc/origin-guard.ts +141 -0
  1023. package/src/rsc/progressive-enhancement.ts +379 -0
  1024. package/src/rsc/response-error.ts +37 -0
  1025. package/src/rsc/response-route-handler.ts +347 -0
  1026. package/src/rsc/rsc-rendering.ts +237 -0
  1027. package/src/rsc/runtime-warnings.ts +42 -0
  1028. package/src/rsc/server-action.ts +348 -0
  1029. package/src/rsc/ssr-setup.ts +128 -0
  1030. package/src/rsc/types.ts +263 -0
  1031. package/src/search-params.ts +230 -0
  1032. package/src/segment-system.tsx +454 -0
  1033. package/src/server/context.ts +591 -0
  1034. package/src/server/cookie-store.ts +190 -0
  1035. package/src/server/fetchable-loader-store.ts +37 -0
  1036. package/src/server/handle-store.ts +308 -0
  1037. package/src/server/loader-registry.ts +133 -0
  1038. package/src/server/request-context.ts +914 -0
  1039. package/src/server/root-layout.tsx +10 -0
  1040. package/src/server/tsconfig.json +14 -0
  1041. package/src/server.ts +51 -0
  1042. package/src/ssr/index.tsx +365 -0
  1043. package/src/static-handler.ts +114 -0
  1044. package/src/theme/ThemeProvider.tsx +297 -0
  1045. package/src/theme/ThemeScript.tsx +61 -0
  1046. package/src/theme/constants.ts +62 -0
  1047. package/src/theme/index.ts +48 -0
  1048. package/src/theme/theme-context.ts +44 -0
  1049. package/src/theme/theme-script.ts +155 -0
  1050. package/src/theme/types.ts +182 -0
  1051. package/src/theme/use-theme.ts +44 -0
  1052. package/src/types/boundaries.ts +158 -0
  1053. package/src/types/cache-types.ts +198 -0
  1054. package/src/types/error-types.ts +192 -0
  1055. package/src/types/global-namespace.ts +100 -0
  1056. package/src/types/handler-context.ts +687 -0
  1057. package/src/types/index.ts +88 -0
  1058. package/src/types/loader-types.ts +183 -0
  1059. package/src/types/route-config.ts +170 -0
  1060. package/src/types/route-entry.ts +102 -0
  1061. package/src/types/segments.ts +148 -0
  1062. package/src/types.ts +1 -0
  1063. package/src/urls/include-helper.ts +197 -0
  1064. package/src/urls/index.ts +53 -0
  1065. package/src/urls/path-helper-types.ts +339 -0
  1066. package/src/urls/path-helper.ts +329 -0
  1067. package/src/urls/pattern-types.ts +95 -0
  1068. package/src/urls/response-types.ts +106 -0
  1069. package/src/urls/type-extraction.ts +372 -0
  1070. package/src/urls/urls-function.ts +98 -0
  1071. package/src/urls.ts +1 -0
  1072. package/src/use-loader.tsx +354 -0
  1073. package/src/vite/discovery/bundle-postprocess.ts +184 -0
  1074. package/src/vite/discovery/discover-routers.ts +344 -0
  1075. package/src/vite/discovery/prerender-collection.ts +385 -0
  1076. package/src/vite/discovery/route-types-writer.ts +258 -0
  1077. package/src/vite/discovery/self-gen-tracking.ts +47 -0
  1078. package/src/vite/discovery/state.ts +110 -0
  1079. package/src/vite/discovery/virtual-module-codegen.ts +203 -0
  1080. package/src/vite/index.ts +16 -0
  1081. package/src/vite/plugin-types.ts +131 -0
  1082. package/src/vite/plugins/cjs-to-esm.ts +93 -0
  1083. package/src/vite/plugins/client-ref-dedup.ts +115 -0
  1084. package/src/vite/plugins/client-ref-hashing.ts +105 -0
  1085. package/src/vite/plugins/expose-action-id.ts +365 -0
  1086. package/src/vite/plugins/expose-id-utils.ts +287 -0
  1087. package/src/vite/plugins/expose-ids/export-analysis.ts +296 -0
  1088. package/src/vite/plugins/expose-ids/handler-transform.ts +179 -0
  1089. package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
  1090. package/src/vite/plugins/expose-ids/router-transform.ts +110 -0
  1091. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1092. package/src/vite/plugins/expose-internal-ids.ts +569 -0
  1093. package/src/vite/plugins/refresh-cmd.ts +65 -0
  1094. package/src/vite/plugins/use-cache-transform.ts +323 -0
  1095. package/src/vite/plugins/version-injector.ts +83 -0
  1096. package/src/vite/plugins/version-plugin.ts +254 -0
  1097. package/src/vite/plugins/version.d.ts +12 -0
  1098. package/src/vite/plugins/virtual-entries.ts +123 -0
  1099. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1100. package/src/vite/rango.ts +510 -0
  1101. package/src/vite/router-discovery.ts +785 -0
  1102. package/src/vite/utils/ast-handler-extract.ts +517 -0
  1103. package/src/vite/utils/banner.ts +36 -0
  1104. package/src/vite/utils/bundle-analysis.ts +137 -0
  1105. package/src/vite/utils/manifest-utils.ts +70 -0
  1106. package/src/vite/utils/package-resolution.ts +121 -0
  1107. package/src/vite/utils/prerender-utils.ts +189 -0
  1108. package/src/vite/utils/shared-utils.ts +169 -0
package/dist/client.js ADDED
@@ -0,0 +1,367 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Component, createElement, useContext, useMemo, Suspense, } from "react";
4
+ import { OutletContext } from "./outlet-context.js";
5
+ import { RouteContentWrapper, LoaderBoundary, } from "./route-content-wrapper.js";
6
+ /**
7
+ * Outlet component - renders child content in layouts
8
+ *
9
+ * If the current segment defines a loading component, the outlet content
10
+ * is wrapped in Suspense with the loading component as fallback.
11
+ * This means during navigation/streaming, React's Suspense will automatically
12
+ * show the loading skeleton until the content is ready.
13
+ *
14
+ * When a name prop is provided (e.g., "@modal"), renders content from
15
+ * the parallel segment with that slot name instead of the default content.
16
+ * This is used for parallel routes and intercepting routes.
17
+ *
18
+ * @param name - Optional slot name for parallel/intercept content (must start with @)
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * function BlogLayout() {
23
+ * return (
24
+ * <div>
25
+ * <h1>Blog</h1>
26
+ * <Outlet />
27
+ * </div>
28
+ * );
29
+ * }
30
+ *
31
+ * // With named slot for modal/parallel content:
32
+ * function KanbanLayout() {
33
+ * return (
34
+ * <div>
35
+ * <KanbanBoard />
36
+ * <Outlet name="@modal" />
37
+ * <Outlet />
38
+ * </div>
39
+ * );
40
+ * }
41
+ * ```
42
+ */
43
+ export function Outlet({ name } = {}) {
44
+ const context = useContext(OutletContext);
45
+ // If name provided, render parallel/intercept content for that slot
46
+ if (name) {
47
+ const segment = context?.parallel?.find((seg) => seg.slot === name) ?? null;
48
+ if (!segment)
49
+ return null;
50
+ // Determine the content to render
51
+ let content;
52
+ if (segment.loading || segment.component instanceof Promise) {
53
+ // Use RouteContentWrapper to handle Suspense wrapping properly
54
+ content = (_jsx(RouteContentWrapper, { content: segment.component instanceof Promise
55
+ ? segment.component
56
+ : Promise.resolve(segment.component), fallback: segment.loading, segmentId: segment.id }));
57
+ }
58
+ else {
59
+ content = segment.component ?? null;
60
+ }
61
+ // If segment has a layout, wrap appropriately
62
+ if (segment.layout) {
63
+ // Check if this segment has loaders that need streaming
64
+ // The layout renders immediately, LoaderBoundary becomes the outlet content
65
+ // When layout renders <Outlet />, it gets the LoaderBoundary which suspends
66
+ if (segment.loaderDataPromise && segment.loaderIds) {
67
+ const loaderAwareContent = (_jsx(LoaderBoundary, { loaderDataPromise: segment.loaderDataPromise, loaderIds: segment.loaderIds, fallback: segment.loading, outletKey: segment.id + "-loader", outletContent: null, segment: segment, children: content }));
68
+ return (_jsx(OutletProvider, { content: loaderAwareContent, segment: segment, children: segment.layout }));
69
+ }
70
+ // No loaders - wrap in OutletProvider so layout can use <Outlet />
71
+ return (_jsx(OutletProvider, { content: content, segment: segment, children: segment.layout }));
72
+ }
73
+ // No layout but has loaders - wrap content with LoaderBoundary for useLoader context
74
+ // This is common for intercept routes that use useLoader without a custom layout
75
+ if (segment.loaderDataPromise && segment.loaderIds) {
76
+ return (_jsx(LoaderBoundary, { loaderDataPromise: segment.loaderDataPromise, loaderIds: segment.loaderIds, fallback: segment.loading, outletKey: segment.id + "-loader", outletContent: null, segment: segment, children: content }));
77
+ }
78
+ return content;
79
+ }
80
+ // Default: render child content
81
+ const content = context?.content ?? null;
82
+ // If this segment defines a loading component, wrap outlet content with Suspense
83
+ // The loading component becomes the Suspense fallback, shown during streaming/navigation
84
+ if (context?.loading) {
85
+ return _jsx(Suspense, { fallback: context.loading, children: content });
86
+ }
87
+ return content;
88
+ }
89
+ /**
90
+ * ParallelOutlet component - renders content for a named parallel slot
91
+ *
92
+ * If the parallel segment defines a loading component, the content
93
+ * is wrapped in Suspense with the loading component as fallback.
94
+ * This enables streaming and navigation loading states for parallels.
95
+ *
96
+ * @param name - The slot name (must start with @, e.g., "@modal", "@sidebar")
97
+ *
98
+ * @example
99
+ * ```tsx
100
+ * function DashboardLayout() {
101
+ * return (
102
+ * <div>
103
+ * <h1>Dashboard</h1>
104
+ * <ParallelOutlet name="@sidebar" />
105
+ * <ParallelOutlet name="@modal" />
106
+ * </div>
107
+ * );
108
+ * }
109
+ * ```
110
+ */
111
+ export function ParallelOutlet({ name }) {
112
+ const context = useContext(OutletContext);
113
+ const segment = useMemo(() => {
114
+ if (!context?.parallel)
115
+ return null;
116
+ return context.parallel.find((seg) => seg.slot === name) ?? null;
117
+ }, [context, name]);
118
+ if (!segment)
119
+ return null;
120
+ // Determine the content to render
121
+ let content;
122
+ if (segment.loading || segment.component instanceof Promise) {
123
+ // Use RouteContentWrapper to handle Suspense wrapping properly
124
+ content = (_jsx(RouteContentWrapper, { content: segment.component instanceof Promise
125
+ ? segment.component
126
+ : Promise.resolve(segment.component), fallback: segment.loading, segmentId: segment.id }));
127
+ }
128
+ else {
129
+ content = segment.component ?? null;
130
+ }
131
+ // If segment has a layout, wrap appropriately
132
+ if (segment.layout) {
133
+ // Check if this segment has loaders that need streaming
134
+ // The layout renders immediately, LoaderBoundary becomes the outlet content
135
+ if (segment.loaderDataPromise && segment.loaderIds) {
136
+ const loaderAwareContent = (_jsx(LoaderBoundary, { loaderDataPromise: segment.loaderDataPromise, loaderIds: segment.loaderIds, fallback: segment.loading, outletKey: segment.id + "-loader", outletContent: null, segment: segment, children: content }));
137
+ return (_jsx(OutletProvider, { content: loaderAwareContent, segment: segment, children: segment.layout }));
138
+ }
139
+ // No loaders - wrap in OutletProvider so layout can use <Outlet />
140
+ return (_jsx(OutletProvider, { content: content, segment: segment, children: segment.layout }));
141
+ }
142
+ // No layout but has loaders - wrap content with LoaderBoundary for useLoader context
143
+ // This is common for intercept routes that use useLoader without a custom layout
144
+ if (segment.loaderDataPromise && segment.loaderIds) {
145
+ return (_jsx(LoaderBoundary, { loaderDataPromise: segment.loaderDataPromise, loaderIds: segment.loaderIds, fallback: segment.loading, outletKey: segment.id + "-loader", outletContent: null, segment: segment, children: content }));
146
+ }
147
+ return content;
148
+ }
149
+ /**
150
+ * Provider for outlet content - used internally by renderSegments
151
+ *
152
+ * Stores a reference to parent context so useLoader can walk up the chain
153
+ * to find loader data from parent layouts. If this segment defines a loading
154
+ * component, Outlet will wrap content with Suspense using that as fallback.
155
+ */
156
+ export function OutletProvider({ content, parallel, segment, loaderData, children, }) {
157
+ // Get parent context to enable walking up the chain for loader lookups
158
+ const parentContext = useContext(OutletContext);
159
+ const value = useMemo(() => ({
160
+ content,
161
+ parallel,
162
+ segment,
163
+ loaderData,
164
+ parent: parentContext,
165
+ loading: segment?.loading,
166
+ }), [content, parallel, segment, loaderData, parentContext]);
167
+ return (_jsx(OutletContext.Provider, { value: value, children: children }));
168
+ }
169
+ /**
170
+ * Hook to access outlet content programmatically
171
+ *
172
+ * Alternative to using <Outlet /> component. Useful when you need
173
+ * direct access to the outlet content in your logic.
174
+ *
175
+ * @example
176
+ * ```tsx
177
+ * function BlogLayout() {
178
+ * const outlet = useOutlet();
179
+ * return <div><h1>Blog</h1>{outlet}</div>;
180
+ * }
181
+ * ```
182
+ */
183
+ export function useOutlet() {
184
+ const context = useContext(OutletContext);
185
+ return context?.content ?? null;
186
+ }
187
+ // Loader hooks - re-exported from dedicated file
188
+ export { useLoader, useFetchLoader, } from "./use-loader.js";
189
+ /**
190
+ * Hook to access all loader data in the current context
191
+ *
192
+ * Returns a record of all loader data available in the current outlet context
193
+ * and all parent contexts. Useful for debugging or when you need access to
194
+ * multiple loaders.
195
+ *
196
+ * @returns Record of loader name to data, or empty object if no loaders
197
+ *
198
+ * @example
199
+ * ```tsx
200
+ * "use client";
201
+ * import { useLoaderData } from "rsc-router/client";
202
+ *
203
+ * export function DebugPanel() {
204
+ * const loaderData = useLoaderData();
205
+ * return <pre>{JSON.stringify(loaderData, null, 2)}</pre>;
206
+ * }
207
+ * ```
208
+ */
209
+ export function useLoaderData() {
210
+ const context = useContext(OutletContext);
211
+ // Collect all loader data from the context chain
212
+ // Child loaders override parent loaders with the same name
213
+ const result = {};
214
+ const stack = [];
215
+ // Build stack from current to root
216
+ let current = context;
217
+ while (current) {
218
+ stack.push(current);
219
+ current = current.parent;
220
+ }
221
+ // Apply from root to current (so children override parents)
222
+ for (let i = stack.length - 1; i >= 0; i--) {
223
+ const ctx = stack[i];
224
+ if (ctx.loaderData) {
225
+ Object.assign(result, ctx.loaderData);
226
+ }
227
+ }
228
+ return result;
229
+ }
230
+ // Implementation - function is ignored at runtime on client
231
+ // The $$id is injected by Vite plugin as hidden third parameter
232
+ export function createLoader(_fn, _fetchable, __injectedId) {
233
+ return {
234
+ __brand: "loader",
235
+ $$id: __injectedId || "",
236
+ };
237
+ }
238
+ /**
239
+ * Client-side ErrorBoundary component
240
+ *
241
+ * Catches JavaScript errors in child components during rendering,
242
+ * in lifecycle methods, and in constructors of the whole tree below them.
243
+ * Displays a fallback UI instead of the component tree that crashed.
244
+ *
245
+ * Use this to wrap client components that might throw during hydration
246
+ * or user interaction. For server-side errors (middleware, loaders, handlers),
247
+ * use the errorBoundary() helper in route definitions instead.
248
+ *
249
+ * @example
250
+ * ```tsx
251
+ * "use client";
252
+ * import { ErrorBoundary } from "rsc-router/client";
253
+ *
254
+ * function MyComponent() {
255
+ * return (
256
+ * <ErrorBoundary fallback={<div>Something went wrong</div>}>
257
+ * <ComponentThatMightThrow />
258
+ * </ErrorBoundary>
259
+ * );
260
+ * }
261
+ *
262
+ * // Or with a function fallback for more control:
263
+ * function MyComponent() {
264
+ * return (
265
+ * <ErrorBoundary
266
+ * fallback={({ error, reset }) => (
267
+ * <div>
268
+ * <p>Error: {error.message}</p>
269
+ * <button onClick={reset}>Try again</button>
270
+ * </div>
271
+ * )}
272
+ * >
273
+ * <ComponentThatMightThrow />
274
+ * </ErrorBoundary>
275
+ * );
276
+ * }
277
+ * ```
278
+ */
279
+ export class ErrorBoundary extends Component {
280
+ constructor(props) {
281
+ super(props);
282
+ this.reset = () => {
283
+ this.setState({ hasError: false, error: null });
284
+ };
285
+ this.state = { hasError: false, error: null };
286
+ }
287
+ static getDerivedStateFromError(error) {
288
+ return { hasError: true, error };
289
+ }
290
+ componentDidCatch(error, errorInfo) {
291
+ console.error("[ErrorBoundary] Error caught:", error, errorInfo);
292
+ this.props.onError?.(error, errorInfo);
293
+ }
294
+ render() {
295
+ if (this.state.hasError && this.state.error) {
296
+ const { fallback } = this.props;
297
+ // Create error info for the fallback
298
+ const errorInfo = {
299
+ message: this.state.error.message,
300
+ name: this.state.error.name,
301
+ stack: this.state.error.stack,
302
+ cause: this.state.error.cause,
303
+ segmentId: "client",
304
+ segmentType: "route",
305
+ };
306
+ // Render fallback - use createElement so hooks work in function fallbacks
307
+ if (typeof fallback === "function") {
308
+ return createElement(fallback, { error: errorInfo, reset: this.reset });
309
+ }
310
+ return fallback;
311
+ }
312
+ return this.props.children;
313
+ }
314
+ }
315
+ // ============================================================================
316
+ // Re-exports from browser/react for convenience
317
+ // These are the most commonly used client-side navigation utilities
318
+ // ============================================================================
319
+ // Navigation hooks
320
+ export { useNavigation, } from "./browser/react/use-navigation.js";
321
+ // Action state tracking hook
322
+ export { useAction, } from "./browser/react/use-action.js";
323
+ // Segments state hook
324
+ export { useSegments, } from "./browser/react/use-segments.js";
325
+ // Client cache controls hook
326
+ export { useClientCache, } from "./browser/react/use-client-cache.js";
327
+ // Provider
328
+ export { NavigationProvider, } from "./browser/react/NavigationProvider.js";
329
+ // Link component
330
+ export { Link, } from "./browser/react/Link.js";
331
+ // Link status hook
332
+ export { useLinkStatus, } from "./browser/react/use-link-status.js";
333
+ // Scroll restoration
334
+ export { ScrollRestoration, useScrollRestoration, } from "./browser/react/ScrollRestoration.js";
335
+ // Handle API - for accumulating data across route segments
336
+ export { createHandle, isHandle } from "./handle.js";
337
+ // Handle data hook
338
+ export { useHandle } from "./browser/react/use-handle.js";
339
+ // Built-in handles
340
+ export { Meta } from "./handles/meta.js";
341
+ export { MetaTags } from "./handles/MetaTags.js";
342
+ // Location state - type-safe navigation state
343
+ export { createLocationState, useLocationState, } from "./browser/react/location-state.js";
344
+ // Type-safe href for client-side path validation
345
+ export { href } from "./href-client.js";
346
+ /**
347
+ * Type guard for checking if a response envelope contains an error.
348
+ *
349
+ * @example
350
+ * ```typescript
351
+ * const result: ResponseEnvelope<Product> = await fetch(url).then(r => r.json());
352
+ * if (isResponseError(result)) {
353
+ * console.log(result.error.message, result.error.code);
354
+ * return;
355
+ * }
356
+ * result.data // fully typed as Product
357
+ * ```
358
+ */
359
+ export function isResponseError(result) {
360
+ return result.error !== undefined;
361
+ }
362
+ // Mount context for include() scoped components
363
+ export { useMount } from "./browser/react/use-mount.js";
364
+ export { MountContext } from "./browser/react/mount-context.js";
365
+ // Mount-aware href hook - auto-prefixes paths with include() mount
366
+ export { useHref } from "./browser/react/use-href.js";
367
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * RSC-environment version of client exports
3
+ *
4
+ * This file is used when importing "rsc-router/client" from RSC (server components).
5
+ * It re-exports the server's createLoader so that loader definitions work in both
6
+ * environments with the same import.
7
+ *
8
+ * The bundler uses the "react-server" export condition to select this file
9
+ * in RSC context, while the regular client.tsx is used in client components.
10
+ */
11
+ export { Outlet, ParallelOutlet, OutletProvider, useOutlet, useLoader, useLoaderData, ErrorBoundary, type ErrorBoundaryProps, } from "./client.js";
12
+ export { createLoader } from "./route-definition.js";
13
+ export { Link, type LinkProps, type PrefetchStrategy, } from "./browser/react/Link.js";
14
+ export { ScrollRestoration, type ScrollRestorationProps, } from "./browser/react/ScrollRestoration.js";
15
+ export { NavigationProvider, type NavigationProviderProps, } from "./browser/react/NavigationProvider.js";
16
+ export { href } from "./href-client.js";
17
+ export { MountContext } from "./browser/react/mount-context.js";
18
+ export { createHandle, isHandle, type Handle } from "./handle.js";
19
+ export { Meta } from "./handles/meta.js";
20
+ export { MetaTags } from "./handles/MetaTags.js";
21
+ export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
22
+ export { createLocationState, type LocationStateDefinition, type LocationStateEntry, } from "./browser/react/location-state-shared.js";
23
+ export { useHref } from "./browser/react/use-href.js";
24
+ export { useHandle } from "./browser/react/use-handle.js";
25
+ export { useLocationState } from "./browser/react/location-state.js";
26
+ //# sourceMappingURL=client.rsc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.rsc.d.ts","sourceRoot":"","sources":["../src/client.rsc.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EACL,MAAM,EACN,cAAc,EACd,cAAc,EACd,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,EACb,KAAK,kBAAkB,GACxB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EACL,IAAI,EACJ,KAAK,SAAS,EACd,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAOhE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAIlE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAI5E,OAAO,EACL,mBAAmB,EACnB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * RSC-environment version of client exports
3
+ *
4
+ * This file is used when importing "rsc-router/client" from RSC (server components).
5
+ * It re-exports the server's createLoader so that loader definitions work in both
6
+ * environments with the same import.
7
+ *
8
+ * The bundler uses the "react-server" export condition to select this file
9
+ * in RSC context, while the regular client.tsx is used in client components.
10
+ */
11
+ // Re-export everything from client.tsx (Outlet, useLoader, etc.)
12
+ // These are safe to use in RSC context
13
+ export { Outlet, ParallelOutlet, OutletProvider, useOutlet, useLoader, useLoaderData, ErrorBoundary, } from "./client.js";
14
+ // Re-export the server's createLoader for RSC context
15
+ // This version includes the actual loader function
16
+ export { createLoader } from "./route-definition.js";
17
+ // Re-export Link component (can be used in server components)
18
+ export { Link, } from "./browser/react/Link.js";
19
+ // Re-export ScrollRestoration (can be used in server components)
20
+ export { ScrollRestoration, } from "./browser/react/ScrollRestoration.js";
21
+ // Re-export NavigationProvider (needed for setup)
22
+ export { NavigationProvider, } from "./browser/react/NavigationProvider.js";
23
+ // Re-export href function (can be used in server components)
24
+ export { href } from "./href-client.js";
25
+ // Mount context re-exports (useMount is client-only, but MountContext can be referenced)
26
+ export { MountContext } from "./browser/react/mount-context.js";
27
+ // Note: useNavigation, useAction, useClientCache are NOT re-exported here
28
+ // because they use client-side state and should only be used in client components
29
+ // Handle API - for accumulating data across route segments
30
+ // Works in both RSC and client contexts
31
+ export { createHandle, isHandle } from "./handle.js";
32
+ // Built-in handles
33
+ // Meta handle works in RSC context
34
+ export { Meta } from "./handles/meta.js";
35
+ // MetaTags is a "use client" component that can be imported from RSC
36
+ export { MetaTags } from "./handles/MetaTags.js";
37
+ // Location state - createLocationState works in RSC (just creates definition)
38
+ // useLocationState is NOT exported here as it uses client hooks
39
+ export { createLocationState, } from "./browser/react/location-state-shared.js";
40
+ // Re-export useHref - it's a "use client" hook
41
+ export { useHref } from "./browser/react/use-href.js";
42
+ // Re-export useHandle - it's a "use client" hook
43
+ export { useHandle } from "./browser/react/use-handle.js";
44
+ // Re-export useLocationState - it's a "use client" hook
45
+ export { useLocationState } from "./browser/react/location-state.js";
46
+ //# sourceMappingURL=client.rsc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.rsc.js","sourceRoot":"","sources":["../src/client.rsc.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,iEAAiE;AACjE,uCAAuC;AACvC,OAAO,EACL,MAAM,EACN,cAAc,EACd,cAAc,EACd,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,GAEd,MAAM,aAAa,CAAC;AAErB,sDAAsD;AACtD,mDAAmD;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,8DAA8D;AAC9D,OAAO,EACL,IAAI,GAGL,MAAM,yBAAyB,CAAC;AAEjC,iEAAiE;AACjE,OAAO,EACL,iBAAiB,GAElB,MAAM,sCAAsC,CAAC;AAE9C,kDAAkD;AAClD,OAAO,EACL,kBAAkB,GAEnB,MAAM,uCAAuC,CAAC;AAE/C,6DAA6D;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,yFAAyF;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,0EAA0E;AAC1E,kFAAkF;AAElF,2DAA2D;AAC3D,wCAAwC;AACxC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAC;AAElE,mBAAmB;AACnB,mCAAmC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,qEAAqE;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,8EAA8E;AAC9E,gEAAgE;AAChE,OAAO,EACL,mBAAmB,GAGpB,MAAM,0CAA0C,CAAC;AAElD,+CAA+C;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,iDAAiD;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,wDAAwD;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Component utilities for RSC
3
+ *
4
+ * Helpers for working with React Server Components and client components.
5
+ */
6
+ import type { ComponentType } from "react";
7
+ /**
8
+ * Check if a component is a client component (has "use client" directive).
9
+ *
10
+ * Client components are marked by the bundler with:
11
+ * - $$typeof: Symbol.for("react.client.reference")
12
+ * - $$id: string (module identifier)
13
+ *
14
+ * @param component - The component to check
15
+ * @returns true if the component has client reference marker
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * import { MyComponent } from "./my-component"; // has "use client"
20
+ *
21
+ * if (!isClientComponent(MyComponent)) {
22
+ * throw new Error("MyComponent must be a client component");
23
+ * }
24
+ * ```
25
+ */
26
+ export declare function isClientComponent(component: ComponentType<unknown> | unknown): boolean;
27
+ /**
28
+ * Assert that a component is a client component.
29
+ * Throws a descriptive error if not.
30
+ *
31
+ * @param component - The component to check
32
+ * @param name - Name to use in error message (e.g., "document")
33
+ * @throws Error if the component is not a client component
34
+ */
35
+ export declare function assertClientComponent(component: ComponentType<unknown> | unknown, name: string): asserts component is ComponentType<unknown>;
36
+ //# sourceMappingURL=component-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-utils.d.ts","sourceRoot":"","sources":["../src/component-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAS3C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,GAC1C,OAAO,CAMT;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,EAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,SAAS,IAAI,aAAa,CAAC,OAAO,CAAC,CAgB7C"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Component utilities for RSC
3
+ *
4
+ * Helpers for working with React Server Components and client components.
5
+ */
6
+ /**
7
+ * Symbol used by React to mark client component references.
8
+ * When a file has "use client" directive, the bundler transforms the exports
9
+ * to include this symbol on $$typeof.
10
+ */
11
+ const CLIENT_REFERENCE = Symbol.for("react.client.reference");
12
+ /**
13
+ * Check if a component is a client component (has "use client" directive).
14
+ *
15
+ * Client components are marked by the bundler with:
16
+ * - $$typeof: Symbol.for("react.client.reference")
17
+ * - $$id: string (module identifier)
18
+ *
19
+ * @param component - The component to check
20
+ * @returns true if the component has client reference marker
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * import { MyComponent } from "./my-component"; // has "use client"
25
+ *
26
+ * if (!isClientComponent(MyComponent)) {
27
+ * throw new Error("MyComponent must be a client component");
28
+ * }
29
+ * ```
30
+ */
31
+ export function isClientComponent(component) {
32
+ if (typeof component !== "function") {
33
+ return false;
34
+ }
35
+ const withMeta = component;
36
+ return withMeta.$$typeof === CLIENT_REFERENCE;
37
+ }
38
+ /**
39
+ * Assert that a component is a client component.
40
+ * Throws a descriptive error if not.
41
+ *
42
+ * @param component - The component to check
43
+ * @param name - Name to use in error message (e.g., "document")
44
+ * @throws Error if the component is not a client component
45
+ */
46
+ export function assertClientComponent(component, name) {
47
+ if (typeof component !== "function") {
48
+ throw new Error(`${name} must be a client component function with "use client" directive. ` +
49
+ `Make sure to pass the component itself, not a JSX element: ` +
50
+ `${name}: My${capitalize(name)} (correct) vs ${name}: <My${capitalize(name)} /> (incorrect)`);
51
+ }
52
+ if (!isClientComponent(component)) {
53
+ throw new Error(`${name} must be a client component with "use client" directive at the top of the file. ` +
54
+ `Server components cannot be used as the ${name} because their function reference ` +
55
+ `cannot be serialized in the RSC payload. Add "use client" to your ${name} file.`);
56
+ }
57
+ }
58
+ function capitalize(str) {
59
+ return str.charAt(0).toUpperCase() + str.slice(1);
60
+ }
61
+ //# sourceMappingURL=component-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-utils.js","sourceRoot":"","sources":["../src/component-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAE9D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAA2C;IAE3C,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,SAAkC,CAAC;IACpD,OAAO,QAAQ,CAAC,QAAQ,KAAK,gBAAgB,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAA2C,EAC3C,IAAY;IAEZ,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,oEAAoE;YACzE,6DAA6D;YAC7D,GAAG,IAAI,OAAO,UAAU,CAAC,IAAI,CAAC,iBAAiB,IAAI,QAAQ,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAC/F,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,kFAAkF;YACvF,2CAA2C,IAAI,oCAAoC;YACnF,qEAAqE,IAAI,QAAQ,CACpF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { ReactNode, ReactElement } from "react";
2
+ /**
3
+ * Default document component that provides a basic HTML structure.
4
+ * Used when no custom document is provided to createRouter.
5
+ * Includes MetaTags for automatic charset, viewport, and route meta support.
6
+ *
7
+ * Uses suppressHydrationWarning on <html> because the theme script
8
+ * may modify class/style attributes before React hydrates.
9
+ */
10
+ export declare function DefaultDocument({ children }: {
11
+ children: ReactNode;
12
+ }): ReactElement;
13
+ //# sourceMappingURL=DefaultDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultDocument.d.ts","sourceRoot":"","sources":["../../src/components/DefaultDocument.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGrD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CASnF"}
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { MetaTags } from "../handles/MetaTags.js";
4
+ /**
5
+ * Default document component that provides a basic HTML structure.
6
+ * Used when no custom document is provided to createRouter.
7
+ * Includes MetaTags for automatic charset, viewport, and route meta support.
8
+ *
9
+ * Uses suppressHydrationWarning on <html> because the theme script
10
+ * may modify class/style attributes before React hydrates.
11
+ */
12
+ export function DefaultDocument({ children }) {
13
+ return (_jsxs("html", { lang: "en", suppressHydrationWarning: true, children: [_jsx("head", { children: _jsx(MetaTags, {}) }), _jsx("body", { children: children })] }));
14
+ }
15
+ //# sourceMappingURL=DefaultDocument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultDocument.js","sourceRoot":"","sources":["../../src/components/DefaultDocument.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAA2B;IACnE,OAAO,CACL,gBAAM,IAAI,EAAC,IAAI,EAAC,wBAAwB,mBACtC,yBACE,KAAC,QAAQ,KAAG,GACP,EACP,yBAAO,QAAQ,GAAQ,IAClB,CACR,CAAC;AACJ,CAAC"}