@tanstack/solid-router 1.167.0 → 1.167.2

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 (200) hide show
  1. package/dist/cjs/Asset.cjs +84 -127
  2. package/dist/cjs/Asset.cjs.map +1 -1
  3. package/dist/cjs/CatchBoundary.cjs +50 -68
  4. package/dist/cjs/CatchBoundary.cjs.map +1 -1
  5. package/dist/cjs/ClientOnly.cjs +61 -39
  6. package/dist/cjs/ClientOnly.cjs.map +1 -1
  7. package/dist/cjs/HeadContent.cjs +25 -19
  8. package/dist/cjs/HeadContent.cjs.map +1 -1
  9. package/dist/cjs/HeadContent.dev.cjs +38 -33
  10. package/dist/cjs/HeadContent.dev.cjs.map +1 -1
  11. package/dist/cjs/Match.cjs +330 -398
  12. package/dist/cjs/Match.cjs.map +1 -1
  13. package/dist/cjs/Matches.cjs +109 -151
  14. package/dist/cjs/Matches.cjs.map +1 -1
  15. package/dist/cjs/RouterProvider.cjs +28 -40
  16. package/dist/cjs/RouterProvider.cjs.map +1 -1
  17. package/dist/cjs/SafeFragment.cjs +7 -5
  18. package/dist/cjs/SafeFragment.cjs.map +1 -1
  19. package/dist/cjs/ScriptOnce.cjs +18 -20
  20. package/dist/cjs/ScriptOnce.cjs.map +1 -1
  21. package/dist/cjs/Scripts.cjs +41 -54
  22. package/dist/cjs/Scripts.cjs.map +1 -1
  23. package/dist/cjs/ScrollRestoration.cjs +26 -28
  24. package/dist/cjs/ScrollRestoration.cjs.map +1 -1
  25. package/dist/cjs/Transitioner.cjs +94 -129
  26. package/dist/cjs/Transitioner.cjs.map +1 -1
  27. package/dist/cjs/_virtual/_rolldown/runtime.cjs +23 -0
  28. package/dist/cjs/awaited.cjs +24 -51
  29. package/dist/cjs/awaited.cjs.map +1 -1
  30. package/dist/cjs/fileRoute.cjs +96 -91
  31. package/dist/cjs/fileRoute.cjs.map +1 -1
  32. package/dist/cjs/headContentUtils.cjs +132 -170
  33. package/dist/cjs/headContentUtils.cjs.map +1 -1
  34. package/dist/cjs/index.cjs +245 -176
  35. package/dist/cjs/index.dev.cjs +245 -176
  36. package/dist/cjs/lazyRouteComponent.cjs +48 -54
  37. package/dist/cjs/lazyRouteComponent.cjs.map +1 -1
  38. package/dist/cjs/link.cjs +304 -331
  39. package/dist/cjs/link.cjs.map +1 -1
  40. package/dist/cjs/matchContext.cjs +9 -23
  41. package/dist/cjs/matchContext.cjs.map +1 -1
  42. package/dist/cjs/not-found.cjs +26 -34
  43. package/dist/cjs/not-found.cjs.map +1 -1
  44. package/dist/cjs/renderRouteNotFound.cjs +23 -16
  45. package/dist/cjs/renderRouteNotFound.cjs.map +1 -1
  46. package/dist/cjs/route.cjs +200 -215
  47. package/dist/cjs/route.cjs.map +1 -1
  48. package/dist/cjs/router.cjs +18 -16
  49. package/dist/cjs/router.cjs.map +1 -1
  50. package/dist/cjs/routerContext.cjs +8 -22
  51. package/dist/cjs/routerContext.cjs.map +1 -1
  52. package/dist/cjs/scroll-restoration.cjs +25 -35
  53. package/dist/cjs/scroll-restoration.cjs.map +1 -1
  54. package/dist/cjs/ssr/RouterClient.cjs +31 -42
  55. package/dist/cjs/ssr/RouterClient.cjs.map +1 -1
  56. package/dist/cjs/ssr/RouterServer.cjs +44 -51
  57. package/dist/cjs/ssr/RouterServer.cjs.map +1 -1
  58. package/dist/cjs/ssr/client.cjs +2 -4
  59. package/dist/cjs/ssr/defaultRenderHandler.cjs +12 -16
  60. package/dist/cjs/ssr/defaultRenderHandler.cjs.map +1 -1
  61. package/dist/cjs/ssr/defaultStreamHandler.cjs +13 -18
  62. package/dist/cjs/ssr/defaultStreamHandler.cjs.map +1 -1
  63. package/dist/cjs/ssr/renderRouterToStream.cjs +27 -55
  64. package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -1
  65. package/dist/cjs/ssr/renderRouterToString.cjs +33 -57
  66. package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -1
  67. package/dist/cjs/ssr/server.cjs +18 -18
  68. package/dist/cjs/useBlocker.cjs +138 -173
  69. package/dist/cjs/useBlocker.cjs.map +1 -1
  70. package/dist/cjs/useBlocker.d.cts +8 -5
  71. package/dist/cjs/useCanGoBack.cjs +6 -5
  72. package/dist/cjs/useCanGoBack.cjs.map +1 -1
  73. package/dist/cjs/useLoaderData.cjs +12 -11
  74. package/dist/cjs/useLoaderData.cjs.map +1 -1
  75. package/dist/cjs/useLoaderDeps.cjs +12 -14
  76. package/dist/cjs/useLoaderDeps.cjs.map +1 -1
  77. package/dist/cjs/useLocation.cjs +6 -7
  78. package/dist/cjs/useLocation.cjs.map +1 -1
  79. package/dist/cjs/useMatch.cjs +27 -49
  80. package/dist/cjs/useMatch.cjs.map +1 -1
  81. package/dist/cjs/useNavigate.cjs +20 -38
  82. package/dist/cjs/useNavigate.cjs.map +1 -1
  83. package/dist/cjs/useParams.cjs +14 -13
  84. package/dist/cjs/useParams.cjs.map +1 -1
  85. package/dist/cjs/useRouteContext.cjs +9 -8
  86. package/dist/cjs/useRouteContext.cjs.map +1 -1
  87. package/dist/cjs/useRouter.cjs +13 -26
  88. package/dist/cjs/useRouter.cjs.map +1 -1
  89. package/dist/cjs/useRouterState.cjs +29 -37
  90. package/dist/cjs/useRouterState.cjs.map +1 -1
  91. package/dist/cjs/useSearch.cjs +13 -12
  92. package/dist/cjs/useSearch.cjs.map +1 -1
  93. package/dist/cjs/utils.cjs +58 -51
  94. package/dist/cjs/utils.cjs.map +1 -1
  95. package/dist/esm/Asset.js +82 -126
  96. package/dist/esm/Asset.js.map +1 -1
  97. package/dist/esm/CatchBoundary.js +46 -50
  98. package/dist/esm/CatchBoundary.js.map +1 -1
  99. package/dist/esm/ClientOnly.js +58 -22
  100. package/dist/esm/ClientOnly.js.map +1 -1
  101. package/dist/esm/HeadContent.dev.js +36 -32
  102. package/dist/esm/HeadContent.dev.js.map +1 -1
  103. package/dist/esm/HeadContent.js +23 -18
  104. package/dist/esm/HeadContent.js.map +1 -1
  105. package/dist/esm/Match.js +322 -378
  106. package/dist/esm/Match.js.map +1 -1
  107. package/dist/esm/Matches.js +102 -135
  108. package/dist/esm/Matches.js.map +1 -1
  109. package/dist/esm/RouterProvider.js +25 -39
  110. package/dist/esm/RouterProvider.js.map +1 -1
  111. package/dist/esm/SafeFragment.js +6 -5
  112. package/dist/esm/SafeFragment.js.map +1 -1
  113. package/dist/esm/ScriptOnce.js +16 -19
  114. package/dist/esm/ScriptOnce.js.map +1 -1
  115. package/dist/esm/Scripts.js +40 -54
  116. package/dist/esm/Scripts.js.map +1 -1
  117. package/dist/esm/ScrollRestoration.js +25 -29
  118. package/dist/esm/ScrollRestoration.js.map +1 -1
  119. package/dist/esm/Transitioner.js +90 -110
  120. package/dist/esm/Transitioner.js.map +1 -1
  121. package/dist/esm/awaited.js +21 -34
  122. package/dist/esm/awaited.js.map +1 -1
  123. package/dist/esm/fileRoute.js +90 -92
  124. package/dist/esm/fileRoute.js.map +1 -1
  125. package/dist/esm/headContentUtils.js +129 -152
  126. package/dist/esm/headContentUtils.js.map +1 -1
  127. package/dist/esm/index.dev.js +15 -115
  128. package/dist/esm/index.js +17 -116
  129. package/dist/esm/lazyRouteComponent.js +47 -54
  130. package/dist/esm/lazyRouteComponent.js.map +1 -1
  131. package/dist/esm/link.js +299 -314
  132. package/dist/esm/link.js.map +1 -1
  133. package/dist/esm/matchContext.js +7 -7
  134. package/dist/esm/matchContext.js.map +1 -1
  135. package/dist/esm/not-found.js +23 -33
  136. package/dist/esm/not-found.js.map +1 -1
  137. package/dist/esm/renderRouteNotFound.js +20 -15
  138. package/dist/esm/renderRouteNotFound.js.map +1 -1
  139. package/dist/esm/route.js +193 -218
  140. package/dist/esm/route.js.map +1 -1
  141. package/dist/esm/router.js +17 -17
  142. package/dist/esm/router.js.map +1 -1
  143. package/dist/esm/routerContext.js +6 -5
  144. package/dist/esm/routerContext.js.map +1 -1
  145. package/dist/esm/scroll-restoration.js +23 -34
  146. package/dist/esm/scroll-restoration.js.map +1 -1
  147. package/dist/esm/ssr/RouterClient.js +29 -41
  148. package/dist/esm/ssr/RouterClient.js.map +1 -1
  149. package/dist/esm/ssr/RouterServer.js +40 -48
  150. package/dist/esm/ssr/RouterServer.js.map +1 -1
  151. package/dist/esm/ssr/client.js +1 -4
  152. package/dist/esm/ssr/defaultRenderHandler.js +11 -15
  153. package/dist/esm/ssr/defaultRenderHandler.js.map +1 -1
  154. package/dist/esm/ssr/defaultStreamHandler.js +12 -17
  155. package/dist/esm/ssr/defaultStreamHandler.js.map +1 -1
  156. package/dist/esm/ssr/renderRouterToStream.js +24 -37
  157. package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
  158. package/dist/esm/ssr/renderRouterToString.js +31 -40
  159. package/dist/esm/ssr/renderRouterToString.js.map +1 -1
  160. package/dist/esm/ssr/server.js +3 -10
  161. package/dist/esm/useBlocker.d.ts +8 -5
  162. package/dist/esm/useBlocker.js +134 -155
  163. package/dist/esm/useBlocker.js.map +1 -1
  164. package/dist/esm/useCanGoBack.js +6 -5
  165. package/dist/esm/useCanGoBack.js.map +1 -1
  166. package/dist/esm/useLoaderData.js +12 -11
  167. package/dist/esm/useLoaderData.js.map +1 -1
  168. package/dist/esm/useLoaderDeps.js +12 -14
  169. package/dist/esm/useLoaderDeps.js.map +1 -1
  170. package/dist/esm/useLocation.js +6 -7
  171. package/dist/esm/useLocation.js.map +1 -1
  172. package/dist/esm/useMatch.js +23 -31
  173. package/dist/esm/useMatch.js.map +1 -1
  174. package/dist/esm/useNavigate.js +18 -22
  175. package/dist/esm/useNavigate.js.map +1 -1
  176. package/dist/esm/useParams.js +14 -13
  177. package/dist/esm/useParams.js.map +1 -1
  178. package/dist/esm/useRouteContext.js +9 -8
  179. package/dist/esm/useRouteContext.js.map +1 -1
  180. package/dist/esm/useRouter.js +9 -8
  181. package/dist/esm/useRouter.js.map +1 -1
  182. package/dist/esm/useRouterState.js +28 -37
  183. package/dist/esm/useRouterState.js.map +1 -1
  184. package/dist/esm/useSearch.js +13 -12
  185. package/dist/esm/useSearch.js.map +1 -1
  186. package/dist/esm/utils.js +56 -35
  187. package/dist/esm/utils.js.map +1 -1
  188. package/dist/source/useBlocker.d.ts +8 -5
  189. package/dist/source/useBlocker.jsx +2 -2
  190. package/dist/source/useBlocker.jsx.map +1 -1
  191. package/package.json +3 -3
  192. package/src/useBlocker.tsx +15 -10
  193. package/dist/cjs/index.cjs.map +0 -1
  194. package/dist/cjs/index.dev.cjs.map +0 -1
  195. package/dist/cjs/ssr/client.cjs.map +0 -1
  196. package/dist/cjs/ssr/server.cjs.map +0 -1
  197. package/dist/esm/index.dev.js.map +0 -1
  198. package/dist/esm/index.js.map +0 -1
  199. package/dist/esm/ssr/client.js.map +0 -1
  200. package/dist/esm/ssr/server.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Match.js","sources":["../../src/Match.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n createControlledPromise,\n getLocationChangeInfo,\n isNotFound,\n isRedirect,\n rootRouteId,\n} from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { Dynamic } from 'solid-js/web'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { CatchNotFound } from './not-found'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { renderRouteNotFound } from './renderRouteNotFound'\nimport { ScrollRestoration } from './scroll-restoration'\nimport type { AnyRoute, RootRouteOptions } from '@tanstack/router-core'\n\nexport const Match = (props: { matchId: string }) => {\n const router = useRouter()\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)\n\n // During navigation transitions, matches can be temporarily removed\n // Return null to avoid errors - the component will handle this gracefully\n if (!match) {\n return null\n }\n\n return {\n routeId: match.routeId,\n ssr: match.ssr,\n _displayPending: match._displayPending,\n }\n },\n })\n\n // If match doesn't exist yet, return null (component is being unmounted or not ready)\n if (!matchState()) return null\n\n const route: () => AnyRoute = () => router.routesById[matchState()!.routeId]\n\n const resolvePendingComponent = () =>\n route().options.pendingComponent ?? router.options.defaultPendingComponent\n\n const routeErrorComponent = () =>\n route().options.errorComponent ?? router.options.defaultErrorComponent\n\n const routeOnCatch = () =>\n route().options.onCatch ?? router.options.defaultOnCatch\n\n const routeNotFoundComponent = () =>\n route().isRoot\n ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n (route().options.notFoundComponent ??\n router.options.notFoundRoute?.options.component)\n : route().options.notFoundComponent\n\n const resolvedNoSsr =\n matchState()!.ssr === false || matchState()!.ssr === 'data-only'\n\n const ResolvedSuspenseBoundary = () => Solid.Suspense\n\n const ResolvedCatchBoundary = () =>\n routeErrorComponent() ? CatchBoundary : SafeFragment\n\n const ResolvedNotFoundBoundary = () =>\n routeNotFoundComponent() ? CatchNotFound : SafeFragment\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === props.matchId)\n return s.matches[index - 1]?.routeId as string\n },\n })\n\n const ShellComponent = route().isRoot\n ? ((route().options as RootRouteOptions).shellComponent ?? SafeFragment)\n : SafeFragment\n\n return (\n <ShellComponent>\n <matchContext.Provider value={() => props.matchId}>\n <Dynamic\n component={ResolvedSuspenseBoundary()}\n fallback={\n // Don't show fallback on server when using no-ssr mode to avoid hydration mismatch\n (isServer ?? router.isServer) || resolvedNoSsr ? undefined : (\n <Dynamic component={resolvePendingComponent()} />\n )\n }\n >\n <Dynamic\n component={ResolvedCatchBoundary()}\n getResetKey={() => resetKey()}\n errorComponent={routeErrorComponent() || ErrorComponent}\n onCatch={(error: Error) => {\n // Forward not found errors (we don't want to show the error component for these)\n if (isNotFound(error)) throw error\n warning(false, `Error in route match: ${matchState()!.routeId}`)\n routeOnCatch()?.(error)\n }}\n >\n <Dynamic\n component={ResolvedNotFoundBoundary()}\n fallback={(error: any) => {\n // If the current not found handler doesn't exist or it has a\n // route ID which doesn't match the current route, rethrow the error\n if (\n !routeNotFoundComponent() ||\n (error.routeId && error.routeId !== matchState()!.routeId) ||\n (!error.routeId && !route().isRoot)\n )\n throw error\n\n return (\n <Dynamic component={routeNotFoundComponent()} {...error} />\n )\n }}\n >\n <Solid.Switch>\n <Solid.Match when={resolvedNoSsr}>\n <Solid.Show\n when={!(isServer ?? router.isServer)}\n fallback={<Dynamic component={resolvePendingComponent()} />}\n >\n <MatchInner matchId={props.matchId} />\n </Solid.Show>\n </Solid.Match>\n <Solid.Match when={!resolvedNoSsr}>\n <MatchInner matchId={props.matchId} />\n </Solid.Match>\n </Solid.Switch>\n </Dynamic>\n </Dynamic>\n </Dynamic>\n </matchContext.Provider>\n\n {parentRouteId() === rootRouteId ? (\n <>\n <OnRendered />\n <ScrollRestoration />\n </>\n ) : null}\n </ShellComponent>\n )\n}\n\n// On Rendered can't happen above the root layout because it actually\n// renders a dummy dom element to track the rendered state of the app.\n// We render a script tag with a key that changes based on the current\n// location state.__TSR_key. Also, because it's below the root layout, it\n// allows us to fire onRendered events even after a hydration mismatch\n// error that occurred above the root layout (like bad head/link tags,\n// which is common).\nfunction OnRendered() {\n const router = useRouter()\n\n const location = useRouterState({\n select: (s) => {\n return s.resolvedLocation?.state.__TSR_key\n },\n })\n Solid.createEffect(\n Solid.on([location], () => {\n router.emit({\n type: 'onRendered',\n ...getLocationChangeInfo(router.state),\n })\n }),\n )\n return null\n}\n\nexport const MatchInner = (props: { matchId: string }): any => {\n const router = useRouter()\n\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)\n\n // During navigation transitions, matches can be temporarily removed\n if (!match) {\n return null\n }\n\n const routeId = match.routeId as string\n\n const remountFn =\n (router.routesById[routeId] as AnyRoute).options.remountDeps ??\n router.options.defaultRemountDeps\n const remountDeps = remountFn?.({\n routeId,\n loaderDeps: match.loaderDeps,\n params: match._strictParams,\n search: match._strictSearch,\n })\n const key = remountDeps ? JSON.stringify(remountDeps) : undefined\n\n return {\n key,\n routeId,\n match: {\n id: match.id,\n status: match.status,\n error: match.error,\n _forcePending: match._forcePending,\n _displayPending: match._displayPending,\n },\n }\n },\n })\n\n if (!matchState()) return null\n\n const route = () => router.routesById[matchState()!.routeId]!\n\n const match = () => matchState()!.match\n\n const componentKey = () => matchState()!.key ?? matchState()!.match.id\n\n const out = () => {\n const Comp = route().options.component ?? router.options.defaultComponent\n if (Comp) {\n return <Comp />\n }\n return <Outlet />\n }\n\n const keyedOut = () => (\n <Solid.Show when={componentKey()} keyed>\n {(_key) => out()}\n </Solid.Show>\n )\n\n return (\n <Solid.Switch>\n <Solid.Match when={match()._displayPending}>\n {(_) => {\n const [displayPendingResult] = Solid.createResource(\n () =>\n router.getMatch(match().id)?._nonReactive.displayPendingPromise,\n )\n\n return <>{displayPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match()._forcePending}>\n {(_) => {\n const [minPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?._nonReactive.minPendingPromise,\n )\n\n return <>{minPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'pending'}>\n {(_) => {\n const pendingMinMs =\n route().options.pendingMinMs ?? router.options.defaultPendingMinMs\n\n if (pendingMinMs) {\n const routerMatch = router.getMatch(match().id)\n if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!(isServer ?? router.isServer)) {\n const minPendingPromise = createControlledPromise<void>()\n\n routerMatch._nonReactive.minPendingPromise = minPendingPromise\n\n setTimeout(() => {\n minPendingPromise.resolve()\n // We've handled the minPendingPromise, so we can delete it\n routerMatch._nonReactive.minPendingPromise = undefined\n }, pendingMinMs)\n }\n }\n }\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?._nonReactive.loadPromise\n })\n\n const FallbackComponent =\n route().options.pendingComponent ??\n router.options.defaultPendingComponent\n\n return (\n <>\n {FallbackComponent && pendingMinMs > 0 ? (\n <Dynamic component={FallbackComponent} />\n ) : null}\n {loaderResult()}\n </>\n )\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n invariant(isNotFound(match().error), 'Expected a notFound error')\n\n // Use Show with keyed to ensure re-render when routeId changes\n return (\n <Solid.Show when={matchState()!.routeId} keyed>\n {(_routeId) =>\n renderRouteNotFound(router, route(), match().error)\n }\n </Solid.Show>\n )\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'redirected'}>\n {(_) => {\n invariant(isRedirect(match().error), 'Expected a redirect error')\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?._nonReactive.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n throw match().error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>\n {keyedOut()}\n </Solid.Match>\n </Solid.Switch>\n )\n}\n\nexport const Outlet = () => {\n const router = useRouter()\n const matchId = Solid.useContext(matchContext)\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId())?.routeId as string,\n })\n\n const route = () => router.routesById[routeId()]!\n\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches\n const parentMatch = matches.find((d) => d.id === matchId())\n\n // During navigation transitions, parent match can be temporarily removed\n // Return false to avoid errors - the component will handle this gracefully\n if (!parentMatch) {\n return false\n }\n\n return parentMatch.globalNotFound\n },\n })\n\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n const v = matches[index + 1]?.id\n return v\n },\n })\n\n const childMatchStatus = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n return matches[index + 1]?.status\n },\n })\n\n // Only show not-found if we're not in a redirected state\n const shouldShowNotFound = () =>\n childMatchStatus() !== 'redirected' && parentGlobalNotFound()\n\n return (\n <Solid.Show\n when={!shouldShowNotFound() && childMatchId()}\n fallback={\n <Solid.Show when={shouldShowNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Show>\n }\n >\n {(matchIdAccessor) => {\n // Use a memo to avoid stale accessor errors while keeping reactivity\n const currentMatchId = Solid.createMemo(() => matchIdAccessor())\n\n return (\n <Solid.Show\n when={routeId() === rootRouteId}\n fallback={<Match matchId={currentMatchId()} />}\n >\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <Match matchId={currentMatchId()} />\n </Solid.Suspense>\n </Solid.Show>\n )\n }}\n </Solid.Show>\n )\n}\n"],"names":["Match","props","router","useRouter","matchState","useRouterState","select","s","match","matches","find","d","id","matchId","routeId","ssr","_displayPending","route","routesById","resolvePendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","ResolvedSuspenseBoundary","Solid","Suspense","ResolvedCatchBoundary","CatchBoundary","SafeFragment","ResolvedNotFoundBoundary","CatchNotFound","resetKey","loadedAt","parentRouteId","index","findIndex","ShellComponent","shellComponent","_$createComponent","children","matchContext","Provider","value","Dynamic","fallback","_$memo","isServer","undefined","getResetKey","ErrorComponent","error","isNotFound","warning","_$mergeProps","Switch","when","Show","MatchInner","rootRouteId","OnRendered","ScrollRestoration","location","resolvedLocation","state","__TSR_key","createEffect","on","emit","type","getLocationChangeInfo","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","key","JSON","stringify","status","_forcePending","componentKey","out","Comp","defaultComponent","Outlet","keyedOut","keyed","_key","_","displayPendingResult","createResource","getMatch","_nonReactive","displayPendingPromise","minPendingResult","minPendingPromise","pendingMinMs","defaultPendingMinMs","routerMatch","createControlledPromise","setTimeout","resolve","loaderResult","Promise","r","loadPromise","FallbackComponent","invariant","_routeId","renderRouteNotFound","isRedirect","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v","childMatchStatus","shouldShowNotFound","matchIdAccessor","currentMatchId","createMemo"],"mappings":"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"}
1
+ {"version":3,"file":"Match.js","names":["Solid","invariant","warning","createControlledPromise","getLocationChangeInfo","isNotFound","isRedirect","rootRouteId","isServer","Dynamic","CatchBoundary","ErrorComponent","useRouterState","useRouter","CatchNotFound","matchContext","SafeFragment","renderRouteNotFound","ScrollRestoration","AnyRoute","RootRouteOptions","Match","props","matchId","router","matchState","select","s","match","matches","find","d","id","routeId","ssr","_displayPending","route","routesById","resolvePendingComponent","options","pendingComponent","defaultPendingComponent","routeErrorComponent","errorComponent","defaultErrorComponent","routeOnCatch","onCatch","defaultOnCatch","routeNotFoundComponent","isRoot","notFoundComponent","notFoundRoute","component","resolvedNoSsr","ResolvedSuspenseBoundary","Suspense","ResolvedCatchBoundary","ResolvedNotFoundBoundary","resetKey","loadedAt","parentRouteId","index","findIndex","ShellComponent","shellComponent","_$createComponent","children","Provider","value","fallback","_$memo","undefined","getResetKey","error","Error","_$mergeProps","Switch","when","Show","MatchInner","OnRendered","location","resolvedLocation","state","__TSR_key","createEffect","on","emit","type","remountFn","remountDeps","defaultRemountDeps","loaderDeps","params","_strictParams","search","_strictSearch","key","JSON","stringify","status","_forcePending","componentKey","out","Comp","defaultComponent","Outlet","keyedOut","keyed","_key","_","displayPendingResult","createResource","getMatch","_nonReactive","displayPendingPromise","minPendingResult","minPendingPromise","pendingMinMs","defaultPendingMinMs","routerMatch","setTimeout","resolve","loaderResult","Promise","r","loadPromise","FallbackComponent","_routeId","useContext","parentGlobalNotFound","parentMatch","globalNotFound","childMatchId","v","childMatchStatus","shouldShowNotFound","matchIdAccessor","currentMatchId","createMemo"],"sources":["../../src/Match.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n createControlledPromise,\n getLocationChangeInfo,\n isNotFound,\n isRedirect,\n rootRouteId,\n} from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { Dynamic } from 'solid-js/web'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { CatchNotFound } from './not-found'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { renderRouteNotFound } from './renderRouteNotFound'\nimport { ScrollRestoration } from './scroll-restoration'\nimport type { AnyRoute, RootRouteOptions } from '@tanstack/router-core'\n\nexport const Match = (props: { matchId: string }) => {\n const router = useRouter()\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)\n\n // During navigation transitions, matches can be temporarily removed\n // Return null to avoid errors - the component will handle this gracefully\n if (!match) {\n return null\n }\n\n return {\n routeId: match.routeId,\n ssr: match.ssr,\n _displayPending: match._displayPending,\n }\n },\n })\n\n // If match doesn't exist yet, return null (component is being unmounted or not ready)\n if (!matchState()) return null\n\n const route: () => AnyRoute = () => router.routesById[matchState()!.routeId]\n\n const resolvePendingComponent = () =>\n route().options.pendingComponent ?? router.options.defaultPendingComponent\n\n const routeErrorComponent = () =>\n route().options.errorComponent ?? router.options.defaultErrorComponent\n\n const routeOnCatch = () =>\n route().options.onCatch ?? router.options.defaultOnCatch\n\n const routeNotFoundComponent = () =>\n route().isRoot\n ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n (route().options.notFoundComponent ??\n router.options.notFoundRoute?.options.component)\n : route().options.notFoundComponent\n\n const resolvedNoSsr =\n matchState()!.ssr === false || matchState()!.ssr === 'data-only'\n\n const ResolvedSuspenseBoundary = () => Solid.Suspense\n\n const ResolvedCatchBoundary = () =>\n routeErrorComponent() ? CatchBoundary : SafeFragment\n\n const ResolvedNotFoundBoundary = () =>\n routeNotFoundComponent() ? CatchNotFound : SafeFragment\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const parentRouteId = useRouterState({\n select: (s) => {\n const index = s.matches.findIndex((d) => d.id === props.matchId)\n return s.matches[index - 1]?.routeId as string\n },\n })\n\n const ShellComponent = route().isRoot\n ? ((route().options as RootRouteOptions).shellComponent ?? SafeFragment)\n : SafeFragment\n\n return (\n <ShellComponent>\n <matchContext.Provider value={() => props.matchId}>\n <Dynamic\n component={ResolvedSuspenseBoundary()}\n fallback={\n // Don't show fallback on server when using no-ssr mode to avoid hydration mismatch\n (isServer ?? router.isServer) || resolvedNoSsr ? undefined : (\n <Dynamic component={resolvePendingComponent()} />\n )\n }\n >\n <Dynamic\n component={ResolvedCatchBoundary()}\n getResetKey={() => resetKey()}\n errorComponent={routeErrorComponent() || ErrorComponent}\n onCatch={(error: Error) => {\n // Forward not found errors (we don't want to show the error component for these)\n if (isNotFound(error)) throw error\n warning(false, `Error in route match: ${matchState()!.routeId}`)\n routeOnCatch()?.(error)\n }}\n >\n <Dynamic\n component={ResolvedNotFoundBoundary()}\n fallback={(error: any) => {\n // If the current not found handler doesn't exist or it has a\n // route ID which doesn't match the current route, rethrow the error\n if (\n !routeNotFoundComponent() ||\n (error.routeId && error.routeId !== matchState()!.routeId) ||\n (!error.routeId && !route().isRoot)\n )\n throw error\n\n return (\n <Dynamic component={routeNotFoundComponent()} {...error} />\n )\n }}\n >\n <Solid.Switch>\n <Solid.Match when={resolvedNoSsr}>\n <Solid.Show\n when={!(isServer ?? router.isServer)}\n fallback={<Dynamic component={resolvePendingComponent()} />}\n >\n <MatchInner matchId={props.matchId} />\n </Solid.Show>\n </Solid.Match>\n <Solid.Match when={!resolvedNoSsr}>\n <MatchInner matchId={props.matchId} />\n </Solid.Match>\n </Solid.Switch>\n </Dynamic>\n </Dynamic>\n </Dynamic>\n </matchContext.Provider>\n\n {parentRouteId() === rootRouteId ? (\n <>\n <OnRendered />\n <ScrollRestoration />\n </>\n ) : null}\n </ShellComponent>\n )\n}\n\n// On Rendered can't happen above the root layout because it actually\n// renders a dummy dom element to track the rendered state of the app.\n// We render a script tag with a key that changes based on the current\n// location state.__TSR_key. Also, because it's below the root layout, it\n// allows us to fire onRendered events even after a hydration mismatch\n// error that occurred above the root layout (like bad head/link tags,\n// which is common).\nfunction OnRendered() {\n const router = useRouter()\n\n const location = useRouterState({\n select: (s) => {\n return s.resolvedLocation?.state.__TSR_key\n },\n })\n Solid.createEffect(\n Solid.on([location], () => {\n router.emit({\n type: 'onRendered',\n ...getLocationChangeInfo(router.state),\n })\n }),\n )\n return null\n}\n\nexport const MatchInner = (props: { matchId: string }): any => {\n const router = useRouter()\n\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === props.matchId)\n\n // During navigation transitions, matches can be temporarily removed\n if (!match) {\n return null\n }\n\n const routeId = match.routeId as string\n\n const remountFn =\n (router.routesById[routeId] as AnyRoute).options.remountDeps ??\n router.options.defaultRemountDeps\n const remountDeps = remountFn?.({\n routeId,\n loaderDeps: match.loaderDeps,\n params: match._strictParams,\n search: match._strictSearch,\n })\n const key = remountDeps ? JSON.stringify(remountDeps) : undefined\n\n return {\n key,\n routeId,\n match: {\n id: match.id,\n status: match.status,\n error: match.error,\n _forcePending: match._forcePending,\n _displayPending: match._displayPending,\n },\n }\n },\n })\n\n if (!matchState()) return null\n\n const route = () => router.routesById[matchState()!.routeId]!\n\n const match = () => matchState()!.match\n\n const componentKey = () => matchState()!.key ?? matchState()!.match.id\n\n const out = () => {\n const Comp = route().options.component ?? router.options.defaultComponent\n if (Comp) {\n return <Comp />\n }\n return <Outlet />\n }\n\n const keyedOut = () => (\n <Solid.Show when={componentKey()} keyed>\n {(_key) => out()}\n </Solid.Show>\n )\n\n return (\n <Solid.Switch>\n <Solid.Match when={match()._displayPending}>\n {(_) => {\n const [displayPendingResult] = Solid.createResource(\n () =>\n router.getMatch(match().id)?._nonReactive.displayPendingPromise,\n )\n\n return <>{displayPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match()._forcePending}>\n {(_) => {\n const [minPendingResult] = Solid.createResource(\n () => router.getMatch(match().id)?._nonReactive.minPendingPromise,\n )\n\n return <>{minPendingResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'pending'}>\n {(_) => {\n const pendingMinMs =\n route().options.pendingMinMs ?? router.options.defaultPendingMinMs\n\n if (pendingMinMs) {\n const routerMatch = router.getMatch(match().id)\n if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {\n // Create a promise that will resolve after the minPendingMs\n if (!(isServer ?? router.isServer)) {\n const minPendingPromise = createControlledPromise<void>()\n\n routerMatch._nonReactive.minPendingPromise = minPendingPromise\n\n setTimeout(() => {\n minPendingPromise.resolve()\n // We've handled the minPendingPromise, so we can delete it\n routerMatch._nonReactive.minPendingPromise = undefined\n }, pendingMinMs)\n }\n }\n }\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?._nonReactive.loadPromise\n })\n\n const FallbackComponent =\n route().options.pendingComponent ??\n router.options.defaultPendingComponent\n\n return (\n <>\n {FallbackComponent && pendingMinMs > 0 ? (\n <Dynamic component={FallbackComponent} />\n ) : null}\n {loaderResult()}\n </>\n )\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'notFound'}>\n {(_) => {\n invariant(isNotFound(match().error), 'Expected a notFound error')\n\n // Use Show with keyed to ensure re-render when routeId changes\n return (\n <Solid.Show when={matchState()!.routeId} keyed>\n {(_routeId) =>\n renderRouteNotFound(router, route(), match().error)\n }\n </Solid.Show>\n )\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'redirected'}>\n {(_) => {\n invariant(isRedirect(match().error), 'Expected a redirect error')\n\n const [loaderResult] = Solid.createResource(async () => {\n await new Promise((r) => setTimeout(r, 0))\n return router.getMatch(match().id)?._nonReactive.loadPromise\n })\n\n return <>{loaderResult()}</>\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'error'}>\n {(_) => {\n throw match().error\n }}\n </Solid.Match>\n <Solid.Match when={match().status === 'success'}>\n {keyedOut()}\n </Solid.Match>\n </Solid.Switch>\n )\n}\n\nexport const Outlet = () => {\n const router = useRouter()\n const matchId = Solid.useContext(matchContext)\n const routeId = useRouterState({\n select: (s) => s.matches.find((d) => d.id === matchId())?.routeId as string,\n })\n\n const route = () => router.routesById[routeId()]!\n\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches\n const parentMatch = matches.find((d) => d.id === matchId())\n\n // During navigation transitions, parent match can be temporarily removed\n // Return false to avoid errors - the component will handle this gracefully\n if (!parentMatch) {\n return false\n }\n\n return parentMatch.globalNotFound\n },\n })\n\n const childMatchId = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n const v = matches[index + 1]?.id\n return v\n },\n })\n\n const childMatchStatus = useRouterState({\n select: (s) => {\n const matches = s.matches\n const index = matches.findIndex((d) => d.id === matchId())\n return matches[index + 1]?.status\n },\n })\n\n // Only show not-found if we're not in a redirected state\n const shouldShowNotFound = () =>\n childMatchStatus() !== 'redirected' && parentGlobalNotFound()\n\n return (\n <Solid.Show\n when={!shouldShowNotFound() && childMatchId()}\n fallback={\n <Solid.Show when={shouldShowNotFound()}>\n {renderRouteNotFound(router, route(), undefined)}\n </Solid.Show>\n }\n >\n {(matchIdAccessor) => {\n // Use a memo to avoid stale accessor errors while keeping reactivity\n const currentMatchId = Solid.createMemo(() => matchIdAccessor())\n\n return (\n <Solid.Show\n when={routeId() === rootRouteId}\n fallback={<Match matchId={currentMatchId()} />}\n >\n <Solid.Suspense\n fallback={\n <Dynamic component={router.options.defaultPendingComponent} />\n }\n >\n <Match matchId={currentMatchId()} />\n </Solid.Suspense>\n </Solid.Show>\n )\n }}\n </Solid.Show>\n )\n}\n"],"mappings":"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"}
@@ -1,155 +1,122 @@
1
- import { createComponent, memo } from "solid-js/web";
2
- import * as Solid from "solid-js";
3
- import warning from "tiny-warning";
4
- import { rootRouteId } from "@tanstack/router-core";
5
- import { isServer } from "@tanstack/router-core/isServer";
6
1
  import { CatchBoundary, ErrorComponent } from "./CatchBoundary.js";
7
- import { useRouterState } from "./useRouterState.js";
8
2
  import { useRouter } from "./useRouter.js";
9
- import { Transitioner } from "./Transitioner.js";
3
+ import { useRouterState } from "./useRouterState.js";
10
4
  import { matchContext } from "./matchContext.js";
5
+ import { Transitioner } from "./Transitioner.js";
11
6
  import { SafeFragment } from "./SafeFragment.js";
12
7
  import { Match } from "./Match.js";
8
+ import { rootRouteId } from "@tanstack/router-core";
9
+ import { createComponent, memo } from "solid-js/web";
10
+ import * as Solid from "solid-js";
11
+ import warning from "tiny-warning";
12
+ import { isServer } from "@tanstack/router-core/isServer";
13
+ //#region src/Matches.tsx
13
14
  function Matches() {
14
- const router = useRouter();
15
- const ResolvedSuspense = (isServer ?? router.isServer) || typeof document !== "undefined" && router.ssr ? SafeFragment : Solid.Suspense;
16
- const rootRoute = () => router.routesById[rootRouteId];
17
- const PendingComponent = rootRoute().options.pendingComponent ?? router.options.defaultPendingComponent;
18
- const OptionalWrapper = router.options.InnerWrap || SafeFragment;
19
- return createComponent(OptionalWrapper, {
20
- get children() {
21
- return createComponent(ResolvedSuspense, {
22
- get fallback() {
23
- return PendingComponent ? createComponent(PendingComponent, {}) : null;
24
- },
25
- get children() {
26
- return [createComponent(Transitioner, {}), createComponent(MatchesInner, {})];
27
- }
28
- });
29
- }
30
- });
15
+ const router = useRouter();
16
+ const ResolvedSuspense = (isServer ?? router.isServer) || typeof document !== "undefined" && router.ssr ? SafeFragment : Solid.Suspense;
17
+ const rootRoute = () => router.routesById[rootRouteId];
18
+ const PendingComponent = rootRoute().options.pendingComponent ?? router.options.defaultPendingComponent;
19
+ return createComponent(router.options.InnerWrap || SafeFragment, { get children() {
20
+ return createComponent(ResolvedSuspense, {
21
+ get fallback() {
22
+ return PendingComponent ? createComponent(PendingComponent, {}) : null;
23
+ },
24
+ get children() {
25
+ return [createComponent(Transitioner, {}), createComponent(MatchesInner, {})];
26
+ }
27
+ });
28
+ } });
31
29
  }
32
30
  function MatchesInner() {
33
- const router = useRouter();
34
- const matchId = useRouterState({
35
- select: (s) => {
36
- return s.matches[0]?.id;
37
- }
38
- });
39
- const resetKey = useRouterState({
40
- select: (s) => s.loadedAt
41
- });
42
- const matchComponent = () => {
43
- return createComponent(Solid.Show, {
44
- get when() {
45
- return matchId();
46
- },
47
- get children() {
48
- return createComponent(Match, {
49
- get matchId() {
50
- return matchId();
51
- }
52
- });
53
- }
54
- });
55
- };
56
- return createComponent(matchContext.Provider, {
57
- value: matchId,
58
- get children() {
59
- return memo(() => !!router.options.disableGlobalCatchBoundary)() ? matchComponent() : createComponent(CatchBoundary, {
60
- getResetKey: () => resetKey(),
61
- errorComponent: ErrorComponent,
62
- get onCatch() {
63
- return process.env.NODE_ENV !== "production" ? (error) => {
64
- warning(false, `The following error wasn't caught by any route! At the very leas
31
+ const router = useRouter();
32
+ const matchId = useRouterState({ select: (s) => {
33
+ return s.matches[0]?.id;
34
+ } });
35
+ const resetKey = useRouterState({ select: (s) => s.loadedAt });
36
+ const matchComponent = () => {
37
+ return createComponent(Solid.Show, {
38
+ get when() {
39
+ return matchId();
40
+ },
41
+ get children() {
42
+ return createComponent(Match, { get matchId() {
43
+ return matchId();
44
+ } });
45
+ }
46
+ });
47
+ };
48
+ return createComponent(matchContext.Provider, {
49
+ value: matchId,
50
+ get children() {
51
+ return memo(() => !!router.options.disableGlobalCatchBoundary)() ? matchComponent() : createComponent(CatchBoundary, {
52
+ getResetKey: () => resetKey(),
53
+ errorComponent: ErrorComponent,
54
+ get onCatch() {
55
+ return process.env.NODE_ENV !== "production" ? (error) => {
56
+ warning(false, `The following error wasn't caught by any route! At the very leas
65
57
  t, consider setting an 'errorComponent' in your RootRoute!`);
66
- warning(false, error.message || error.toString());
67
- } : void 0;
68
- },
69
- get children() {
70
- return matchComponent();
71
- }
72
- });
73
- }
74
- });
58
+ warning(false, error.message || error.toString());
59
+ } : void 0;
60
+ },
61
+ get children() {
62
+ return matchComponent();
63
+ }
64
+ });
65
+ }
66
+ });
75
67
  }
76
68
  function useMatchRoute() {
77
- const router = useRouter();
78
- const status = useRouterState({
79
- select: (s) => s.status
80
- });
81
- return (opts) => {
82
- const {
83
- pending,
84
- caseSensitive,
85
- fuzzy,
86
- includeSearch,
87
- ...rest
88
- } = opts;
89
- const matchRoute = Solid.createMemo(() => {
90
- status();
91
- return router.matchRoute(rest, {
92
- pending,
93
- caseSensitive,
94
- fuzzy,
95
- includeSearch
96
- });
97
- });
98
- return matchRoute;
99
- };
69
+ const router = useRouter();
70
+ const status = useRouterState({ select: (s) => s.status });
71
+ return (opts) => {
72
+ const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;
73
+ return Solid.createMemo(() => {
74
+ status();
75
+ return router.matchRoute(rest, {
76
+ pending,
77
+ caseSensitive,
78
+ fuzzy,
79
+ includeSearch
80
+ });
81
+ });
82
+ };
100
83
  }
101
84
  function MatchRoute(props) {
102
- const status = useRouterState({
103
- select: (s) => s.status
104
- });
105
- return createComponent(Solid.Show, {
106
- get when() {
107
- return status();
108
- },
109
- keyed: true,
110
- children: (_) => {
111
- const matchRoute = useMatchRoute();
112
- const params = matchRoute(props)();
113
- const child = props.children;
114
- if (typeof child === "function") {
115
- return child(params);
116
- }
117
- return params ? child : null;
118
- }
119
- });
85
+ const status = useRouterState({ select: (s) => s.status });
86
+ return createComponent(Solid.Show, {
87
+ get when() {
88
+ return status();
89
+ },
90
+ keyed: true,
91
+ children: (_) => {
92
+ const params = useMatchRoute()(props)();
93
+ const child = props.children;
94
+ if (typeof child === "function") return child(params);
95
+ return params ? child : null;
96
+ }
97
+ });
120
98
  }
121
99
  function useMatches(opts) {
122
- return useRouterState({
123
- select: (state) => {
124
- const matches = state.matches;
125
- return opts?.select ? opts.select(matches) : matches;
126
- }
127
- });
100
+ return useRouterState({ select: (state) => {
101
+ const matches = state.matches;
102
+ return opts?.select ? opts.select(matches) : matches;
103
+ } });
128
104
  }
129
105
  function useParentMatches(opts) {
130
- const contextMatchId = Solid.useContext(matchContext);
131
- return useMatches({
132
- select: (matches) => {
133
- matches = matches.slice(0, matches.findIndex((d) => d.id === contextMatchId()));
134
- return opts?.select ? opts.select(matches) : matches;
135
- }
136
- });
106
+ const contextMatchId = Solid.useContext(matchContext);
107
+ return useMatches({ select: (matches) => {
108
+ matches = matches.slice(0, matches.findIndex((d) => d.id === contextMatchId()));
109
+ return opts?.select ? opts.select(matches) : matches;
110
+ } });
137
111
  }
138
112
  function useChildMatches(opts) {
139
- const contextMatchId = Solid.useContext(matchContext);
140
- return useMatches({
141
- select: (matches) => {
142
- matches = matches.slice(matches.findIndex((d) => d.id === contextMatchId()) + 1);
143
- return opts?.select ? opts.select(matches) : matches;
144
- }
145
- });
113
+ const contextMatchId = Solid.useContext(matchContext);
114
+ return useMatches({ select: (matches) => {
115
+ matches = matches.slice(matches.findIndex((d) => d.id === contextMatchId()) + 1);
116
+ return opts?.select ? opts.select(matches) : matches;
117
+ } });
146
118
  }
147
- export {
148
- MatchRoute,
149
- Matches,
150
- useChildMatches,
151
- useMatchRoute,
152
- useMatches,
153
- useParentMatches
154
- };
155
- //# sourceMappingURL=Matches.js.map
119
+ //#endregion
120
+ export { MatchRoute, Matches, useChildMatches, useMatchRoute, useMatches, useParentMatches };
121
+
122
+ //# sourceMappingURL=Matches.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Matches.js","sources":["../../src/Matches.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport warning from 'tiny-warning'\nimport { rootRouteId } from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { Transitioner } from './Transitioner'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { Match } from './Match'\nimport type {\n AnyRoute,\n AnyRouter,\n DeepPartial,\n Expand,\n MakeOptionalPathParams,\n MakeOptionalSearchParams,\n MakeRouteMatchUnion,\n MaskOptions,\n MatchRouteOptions,\n NoInfer,\n RegisteredRouter,\n ResolveRelativePath,\n ResolveRoute,\n RouteByPath,\n RouterState,\n ToSubOptionsProps,\n} from '@tanstack/router-core'\n\ndeclare module '@tanstack/router-core' {\n export interface RouteMatchExtensions {\n meta?: Array<Solid.JSX.IntrinsicElements['meta'] | undefined>\n links?: Array<Solid.JSX.IntrinsicElements['link'] | undefined>\n scripts?: Array<Solid.JSX.IntrinsicElements['script'] | undefined>\n styles?: Array<Solid.JSX.IntrinsicElements['style'] | undefined>\n headScripts?: Array<Solid.JSX.IntrinsicElements['script'] | undefined>\n }\n}\n\nexport function Matches() {\n const router = useRouter()\n\n const ResolvedSuspense =\n (isServer ?? router.isServer) ||\n (typeof document !== 'undefined' && router.ssr)\n ? SafeFragment\n : Solid.Suspense\n\n const rootRoute: () => AnyRoute = () => router.routesById[rootRouteId]\n const PendingComponent =\n rootRoute().options.pendingComponent ??\n router.options.defaultPendingComponent\n\n const OptionalWrapper = router.options.InnerWrap || SafeFragment\n\n return (\n <OptionalWrapper>\n <ResolvedSuspense\n fallback={PendingComponent ? <PendingComponent /> : null}\n >\n <Transitioner />\n <MatchesInner />\n </ResolvedSuspense>\n </OptionalWrapper>\n )\n}\n\nfunction MatchesInner() {\n const router = useRouter()\n const matchId = useRouterState({\n select: (s) => {\n return s.matches[0]?.id\n },\n })\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const matchComponent = () => {\n return (\n <Solid.Show when={matchId()}>\n <Match matchId={matchId()!} />\n </Solid.Show>\n )\n }\n\n return (\n <matchContext.Provider value={matchId}>\n {router.options.disableGlobalCatchBoundary ? (\n matchComponent()\n ) : (\n <CatchBoundary\n getResetKey={() => resetKey()}\n errorComponent={ErrorComponent}\n onCatch={\n process.env.NODE_ENV !== 'production'\n ? (error) => {\n warning(\n false,\n `The following error wasn't caught by any route! At the very leas\n t, consider setting an 'errorComponent' in your RootRoute!`,\n )\n warning(false, error.message || error.toString())\n }\n : undefined\n }\n >\n {matchComponent()}\n </CatchBoundary>\n )}\n </matchContext.Provider>\n )\n}\n\nexport type UseMatchRouteOptions<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = undefined,\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '',\n> = ToSubOptionsProps<TRouter, TFrom, TTo> &\n DeepPartial<MakeOptionalSearchParams<TRouter, TFrom, TTo>> &\n DeepPartial<MakeOptionalPathParams<TRouter, TFrom, TTo>> &\n MaskOptions<TRouter, TMaskFrom, TMaskTo> &\n MatchRouteOptions\n\nexport function useMatchRoute<TRouter extends AnyRouter = RegisteredRouter>() {\n const router = useRouter()\n\n const status = useRouterState({\n select: (s) => s.status,\n })\n\n return <\n const TFrom extends string = string,\n const TTo extends string | undefined = undefined,\n const TMaskFrom extends string = TFrom,\n const TMaskTo extends string = '',\n >(\n opts: UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,\n ): Solid.Accessor<\n false | Expand<ResolveRoute<TRouter, TFrom, TTo>['types']['allParams']>\n > => {\n const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts\n\n const matchRoute = Solid.createMemo(() => {\n status()\n return router.matchRoute(rest as any, {\n pending,\n caseSensitive,\n fuzzy,\n includeSearch,\n })\n })\n\n return matchRoute\n }\n}\n\nexport type MakeMatchRouteOptions<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = undefined,\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '',\n> = UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | ((\n params?: RouteByPath<\n TRouter['routeTree'],\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['types']['allParams'],\n ) => Solid.JSX.Element)\n | Solid.JSX.Element\n}\n\nexport function MatchRoute<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string = string,\n const TTo extends string | undefined = undefined,\n const TMaskFrom extends string = TFrom,\n const TMaskTo extends string = '',\n>(props: MakeMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): any {\n const status = useRouterState({\n select: (s) => s.status,\n })\n\n return (\n <Solid.Show when={status()} keyed>\n {(_) => {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props as any)() as boolean\n const child = props.children\n if (typeof child === 'function') {\n return (child as any)(params)\n }\n\n return params ? child : null\n }}\n </Solid.Show>\n )\n}\n\nexport interface UseMatchesBaseOptions<TRouter extends AnyRouter, TSelected> {\n select?: (matches: Array<MakeRouteMatchUnion<TRouter>>) => TSelected\n}\n\nexport type UseMatchesResult<\n TRouter extends AnyRouter,\n TSelected,\n> = unknown extends TSelected ? Array<MakeRouteMatchUnion<TRouter>> : TSelected\n\nexport function useMatches<\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseMatchesBaseOptions<TRouter, TSelected>,\n): Solid.Accessor<UseMatchesResult<TRouter, TSelected>> {\n return useRouterState({\n select: (state: RouterState<TRouter['routeTree']>) => {\n const matches = state.matches\n return opts?.select\n ? opts.select(matches as Array<MakeRouteMatchUnion<TRouter>>)\n : matches\n },\n } as any) as Solid.Accessor<UseMatchesResult<TRouter, TSelected>>\n}\n\nexport function useParentMatches<\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseMatchesBaseOptions<TRouter, TSelected>,\n): Solid.Accessor<UseMatchesResult<TRouter, TSelected>> {\n const contextMatchId = Solid.useContext(matchContext)\n\n return useMatches({\n select: (matches: Array<MakeRouteMatchUnion<TRouter>>) => {\n matches = matches.slice(\n 0,\n matches.findIndex((d) => d.id === contextMatchId()),\n )\n return opts?.select ? opts.select(matches) : matches\n },\n } as any)\n}\n\nexport function useChildMatches<\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseMatchesBaseOptions<TRouter, TSelected>,\n): Solid.Accessor<UseMatchesResult<TRouter, TSelected>> {\n const contextMatchId = Solid.useContext(matchContext)\n\n return useMatches({\n select: (matches: Array<MakeRouteMatchUnion<TRouter>>) => {\n matches = matches.slice(\n matches.findIndex((d) => d.id === contextMatchId()) + 1,\n )\n return opts?.select ? opts.select(matches) : matches\n },\n } as any)\n}\n"],"names":["Matches","router","useRouter","ResolvedSuspense","isServer","document","ssr","SafeFragment","Solid","Suspense","rootRoute","routesById","rootRouteId","PendingComponent","options","pendingComponent","defaultPendingComponent","OptionalWrapper","InnerWrap","_$createComponent","children","fallback","Transitioner","MatchesInner","matchId","useRouterState","select","s","matches","id","resetKey","loadedAt","matchComponent","Show","when","Match","matchContext","Provider","value","_$memo","disableGlobalCatchBoundary","CatchBoundary","getResetKey","errorComponent","ErrorComponent","onCatch","process","env","NODE_ENV","error","warning","message","toString","undefined","useMatchRoute","status","opts","pending","caseSensitive","fuzzy","includeSearch","rest","matchRoute","createMemo","MatchRoute","props","keyed","_","params","child","useMatches","state","useParentMatches","contextMatchId","useContext","slice","findIndex","d","useChildMatches"],"mappings":"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"}
1
+ {"version":3,"file":"Matches.js","names":["Solid","warning","rootRouteId","isServer","CatchBoundary","ErrorComponent","useRouterState","useRouter","Transitioner","matchContext","SafeFragment","Match","AnyRoute","AnyRouter","DeepPartial","Expand","MakeOptionalPathParams","MakeOptionalSearchParams","MakeRouteMatchUnion","MaskOptions","MatchRouteOptions","NoInfer","RegisteredRouter","ResolveRelativePath","ResolveRoute","RouteByPath","RouterState","ToSubOptionsProps","RouteMatchExtensions","meta","Array","JSX","IntrinsicElements","links","scripts","styles","headScripts","Matches","router","ResolvedSuspense","document","ssr","Suspense","rootRoute","routesById","PendingComponent","options","pendingComponent","defaultPendingComponent","OptionalWrapper","InnerWrap","_$createComponent","children","fallback","MatchesInner","matchId","select","s","matches","id","resetKey","loadedAt","matchComponent","Show","when","Provider","value","_$memo","disableGlobalCatchBoundary","getResetKey","errorComponent","onCatch","process","env","NODE_ENV","error","message","toString","undefined","UseMatchRouteOptions","TFrom","TRouter","TTo","TMaskFrom","TMaskTo","useMatchRoute","status","opts","Accessor","pending","caseSensitive","fuzzy","includeSearch","rest","matchRoute","createMemo","MakeMatchRouteOptions","params","Element","MatchRoute","props","keyed","_","child","UseMatchesBaseOptions","TSelected","UseMatchesResult","useMatches","state","useParentMatches","contextMatchId","useContext","slice","findIndex","d","useChildMatches"],"sources":["../../src/Matches.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport warning from 'tiny-warning'\nimport { rootRouteId } from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport { Transitioner } from './Transitioner'\nimport { matchContext } from './matchContext'\nimport { SafeFragment } from './SafeFragment'\nimport { Match } from './Match'\nimport type {\n AnyRoute,\n AnyRouter,\n DeepPartial,\n Expand,\n MakeOptionalPathParams,\n MakeOptionalSearchParams,\n MakeRouteMatchUnion,\n MaskOptions,\n MatchRouteOptions,\n NoInfer,\n RegisteredRouter,\n ResolveRelativePath,\n ResolveRoute,\n RouteByPath,\n RouterState,\n ToSubOptionsProps,\n} from '@tanstack/router-core'\n\ndeclare module '@tanstack/router-core' {\n export interface RouteMatchExtensions {\n meta?: Array<Solid.JSX.IntrinsicElements['meta'] | undefined>\n links?: Array<Solid.JSX.IntrinsicElements['link'] | undefined>\n scripts?: Array<Solid.JSX.IntrinsicElements['script'] | undefined>\n styles?: Array<Solid.JSX.IntrinsicElements['style'] | undefined>\n headScripts?: Array<Solid.JSX.IntrinsicElements['script'] | undefined>\n }\n}\n\nexport function Matches() {\n const router = useRouter()\n\n const ResolvedSuspense =\n (isServer ?? router.isServer) ||\n (typeof document !== 'undefined' && router.ssr)\n ? SafeFragment\n : Solid.Suspense\n\n const rootRoute: () => AnyRoute = () => router.routesById[rootRouteId]\n const PendingComponent =\n rootRoute().options.pendingComponent ??\n router.options.defaultPendingComponent\n\n const OptionalWrapper = router.options.InnerWrap || SafeFragment\n\n return (\n <OptionalWrapper>\n <ResolvedSuspense\n fallback={PendingComponent ? <PendingComponent /> : null}\n >\n <Transitioner />\n <MatchesInner />\n </ResolvedSuspense>\n </OptionalWrapper>\n )\n}\n\nfunction MatchesInner() {\n const router = useRouter()\n const matchId = useRouterState({\n select: (s) => {\n return s.matches[0]?.id\n },\n })\n\n const resetKey = useRouterState({\n select: (s) => s.loadedAt,\n })\n\n const matchComponent = () => {\n return (\n <Solid.Show when={matchId()}>\n <Match matchId={matchId()!} />\n </Solid.Show>\n )\n }\n\n return (\n <matchContext.Provider value={matchId}>\n {router.options.disableGlobalCatchBoundary ? (\n matchComponent()\n ) : (\n <CatchBoundary\n getResetKey={() => resetKey()}\n errorComponent={ErrorComponent}\n onCatch={\n process.env.NODE_ENV !== 'production'\n ? (error) => {\n warning(\n false,\n `The following error wasn't caught by any route! At the very leas\n t, consider setting an 'errorComponent' in your RootRoute!`,\n )\n warning(false, error.message || error.toString())\n }\n : undefined\n }\n >\n {matchComponent()}\n </CatchBoundary>\n )}\n </matchContext.Provider>\n )\n}\n\nexport type UseMatchRouteOptions<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = undefined,\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '',\n> = ToSubOptionsProps<TRouter, TFrom, TTo> &\n DeepPartial<MakeOptionalSearchParams<TRouter, TFrom, TTo>> &\n DeepPartial<MakeOptionalPathParams<TRouter, TFrom, TTo>> &\n MaskOptions<TRouter, TMaskFrom, TMaskTo> &\n MatchRouteOptions\n\nexport function useMatchRoute<TRouter extends AnyRouter = RegisteredRouter>() {\n const router = useRouter()\n\n const status = useRouterState({\n select: (s) => s.status,\n })\n\n return <\n const TFrom extends string = string,\n const TTo extends string | undefined = undefined,\n const TMaskFrom extends string = TFrom,\n const TMaskTo extends string = '',\n >(\n opts: UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,\n ): Solid.Accessor<\n false | Expand<ResolveRoute<TRouter, TFrom, TTo>['types']['allParams']>\n > => {\n const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts\n\n const matchRoute = Solid.createMemo(() => {\n status()\n return router.matchRoute(rest as any, {\n pending,\n caseSensitive,\n fuzzy,\n includeSearch,\n })\n })\n\n return matchRoute\n }\n}\n\nexport type MakeMatchRouteOptions<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = undefined,\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '',\n> = UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | ((\n params?: RouteByPath<\n TRouter['routeTree'],\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['types']['allParams'],\n ) => Solid.JSX.Element)\n | Solid.JSX.Element\n}\n\nexport function MatchRoute<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string = string,\n const TTo extends string | undefined = undefined,\n const TMaskFrom extends string = TFrom,\n const TMaskTo extends string = '',\n>(props: MakeMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): any {\n const status = useRouterState({\n select: (s) => s.status,\n })\n\n return (\n <Solid.Show when={status()} keyed>\n {(_) => {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props as any)() as boolean\n const child = props.children\n if (typeof child === 'function') {\n return (child as any)(params)\n }\n\n return params ? child : null\n }}\n </Solid.Show>\n )\n}\n\nexport interface UseMatchesBaseOptions<TRouter extends AnyRouter, TSelected> {\n select?: (matches: Array<MakeRouteMatchUnion<TRouter>>) => TSelected\n}\n\nexport type UseMatchesResult<\n TRouter extends AnyRouter,\n TSelected,\n> = unknown extends TSelected ? Array<MakeRouteMatchUnion<TRouter>> : TSelected\n\nexport function useMatches<\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseMatchesBaseOptions<TRouter, TSelected>,\n): Solid.Accessor<UseMatchesResult<TRouter, TSelected>> {\n return useRouterState({\n select: (state: RouterState<TRouter['routeTree']>) => {\n const matches = state.matches\n return opts?.select\n ? opts.select(matches as Array<MakeRouteMatchUnion<TRouter>>)\n : matches\n },\n } as any) as Solid.Accessor<UseMatchesResult<TRouter, TSelected>>\n}\n\nexport function useParentMatches<\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseMatchesBaseOptions<TRouter, TSelected>,\n): Solid.Accessor<UseMatchesResult<TRouter, TSelected>> {\n const contextMatchId = Solid.useContext(matchContext)\n\n return useMatches({\n select: (matches: Array<MakeRouteMatchUnion<TRouter>>) => {\n matches = matches.slice(\n 0,\n matches.findIndex((d) => d.id === contextMatchId()),\n )\n return opts?.select ? opts.select(matches) : matches\n },\n } as any)\n}\n\nexport function useChildMatches<\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseMatchesBaseOptions<TRouter, TSelected>,\n): Solid.Accessor<UseMatchesResult<TRouter, TSelected>> {\n const contextMatchId = Solid.useContext(matchContext)\n\n return useMatches({\n select: (matches: Array<MakeRouteMatchUnion<TRouter>>) => {\n matches = matches.slice(\n matches.findIndex((d) => d.id === contextMatchId()) + 1,\n )\n return opts?.select ? opts.select(matches) : matches\n },\n } as any)\n}\n"],"mappings":"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"}
@@ -1,44 +1,30 @@
1
- import { createComponent, mergeProps } from "solid-js/web";
2
1
  import { routerContext } from "./routerContext.js";
3
2
  import { SafeFragment } from "./SafeFragment.js";
4
3
  import { Matches } from "./Matches.js";
5
- function RouterContextProvider({
6
- router,
7
- children,
8
- ...rest
9
- }) {
10
- router.update({
11
- ...router.options,
12
- ...rest,
13
- context: {
14
- ...router.options.context,
15
- ...rest.context
16
- }
17
- });
18
- const OptionalWrapper = router.options.Wrap || SafeFragment;
19
- return createComponent(OptionalWrapper, {
20
- get children() {
21
- return createComponent(routerContext.Provider, {
22
- value: router,
23
- get children() {
24
- return children();
25
- }
26
- });
27
- }
28
- });
4
+ import { createComponent, mergeProps } from "solid-js/web";
5
+ //#region src/RouterProvider.tsx
6
+ function RouterContextProvider({ router, children, ...rest }) {
7
+ router.update({
8
+ ...router.options,
9
+ ...rest,
10
+ context: {
11
+ ...router.options.context,
12
+ ...rest.context
13
+ }
14
+ });
15
+ return createComponent(router.options.Wrap || SafeFragment, { get children() {
16
+ return createComponent(routerContext.Provider, {
17
+ value: router,
18
+ get children() {
19
+ return children();
20
+ }
21
+ });
22
+ } });
29
23
  }
30
- function RouterProvider({
31
- router,
32
- ...rest
33
- }) {
34
- return createComponent(RouterContextProvider, mergeProps({
35
- router
36
- }, rest, {
37
- children: () => createComponent(Matches, {})
38
- }));
24
+ function RouterProvider({ router, ...rest }) {
25
+ return createComponent(RouterContextProvider, mergeProps({ router }, rest, { children: () => createComponent(Matches, {}) }));
39
26
  }
40
- export {
41
- RouterContextProvider,
42
- RouterProvider
43
- };
44
- //# sourceMappingURL=RouterProvider.js.map
27
+ //#endregion
28
+ export { RouterContextProvider, RouterProvider };
29
+
30
+ //# sourceMappingURL=RouterProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RouterProvider.js","sources":["../../src/RouterProvider.tsx"],"sourcesContent":["import { routerContext } from './routerContext'\nimport { SafeFragment } from './SafeFragment'\nimport { Matches } from './Matches'\nimport type {\n AnyRouter,\n RegisteredRouter,\n RouterOptions,\n} from '@tanstack/router-core'\nimport type * as Solid from 'solid-js'\n\nexport function RouterContextProvider<\n TRouter extends AnyRouter = RegisteredRouter,\n TDehydrated extends Record<string, any> = Record<string, any>,\n>({\n router,\n children,\n ...rest\n}: RouterProps<TRouter, TDehydrated> & {\n children: () => Solid.JSX.Element\n}) {\n // Allow the router to update options on the router instance\n router.update({\n ...router.options,\n ...rest,\n context: {\n ...router.options.context,\n ...rest.context,\n },\n })\n\n const OptionalWrapper = router.options.Wrap || SafeFragment\n\n return (\n <OptionalWrapper>\n <routerContext.Provider value={router as AnyRouter}>\n {children()}\n </routerContext.Provider>\n </OptionalWrapper>\n )\n}\n\nexport function RouterProvider<\n TRouter extends AnyRouter = RegisteredRouter,\n TDehydrated extends Record<string, any> = Record<string, any>,\n>({ router, ...rest }: RouterProps<TRouter, TDehydrated>) {\n return (\n <RouterContextProvider router={router} {...rest}>\n {() => <Matches />}\n </RouterContextProvider>\n )\n}\n\nexport type RouterProps<\n TRouter extends AnyRouter = RegisteredRouter,\n TDehydrated extends Record<string, any> = Record<string, any>,\n> = Omit<\n RouterOptions<\n TRouter['routeTree'],\n NonNullable<TRouter['options']['trailingSlash']>,\n false,\n TRouter['history'],\n TDehydrated\n >,\n 'context'\n> & {\n router: TRouter\n context?: Partial<\n RouterOptions<\n TRouter['routeTree'],\n NonNullable<TRouter['options']['trailingSlash']>,\n false,\n TRouter['history'],\n TDehydrated\n >['context']\n >\n}\n"],"names":["RouterContextProvider","router","children","rest","update","options","context","OptionalWrapper","Wrap","SafeFragment","_$createComponent","routerContext","Provider","value","RouterProvider","_$mergeProps","Matches"],"mappings":";;;;AAUO,SAASA,sBAGd;AAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AAGL,GAAG;AAEDF,SAAOG,OAAO;AAAA,IACZ,GAAGH,OAAOI;AAAAA,IACV,GAAGF;AAAAA,IACHG,SAAS;AAAA,MACP,GAAGL,OAAOI,QAAQC;AAAAA,MAClB,GAAGH,KAAKG;AAAAA,IAAAA;AAAAA,EACV,CACD;AAED,QAAMC,kBAAkBN,OAAOI,QAAQG,QAAQC;AAE/C,SAAAC,gBACGH,iBAAe;AAAA,IAAA,IAAAL,WAAA;AAAA,aAAAQ,gBACbC,cAAcC,UAAQ;AAAA,QAACC,OAAOZ;AAAAA,QAAmB,IAAAC,WAAA;AAAA,iBAC/CA,SAAAA;AAAAA,QAAU;AAAA,MAAA,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAInB;AAEO,SAASY,eAGd;AAAA,EAAEb;AAAAA,EAAQ,GAAGE;AAAwC,GAAG;AACxD,SAAAO,gBACGV,uBAAqBe,WAAA;AAAA,IAACd;AAAAA,EAAAA,GAAoBE,MAAI;AAAA,IAAAD,UAC5CA,MAAAQ,gBAAOM,SAAO,CAAA,CAAA;AAAA,EAAA,CAAG,CAAA;AAGxB;"}
1
+ {"version":3,"file":"RouterProvider.js","names":["routerContext","SafeFragment","Matches","AnyRouter","RegisteredRouter","RouterOptions","Solid","RouterContextProvider","Record","router","children","rest","RouterProps","TRouter","TDehydrated","JSX","Element","update","options","context","OptionalWrapper","Wrap","_$createComponent","Provider","value","RouterProvider","_$mergeProps","Omit","NonNullable","Partial"],"sources":["../../src/RouterProvider.tsx"],"sourcesContent":["import { routerContext } from './routerContext'\nimport { SafeFragment } from './SafeFragment'\nimport { Matches } from './Matches'\nimport type {\n AnyRouter,\n RegisteredRouter,\n RouterOptions,\n} from '@tanstack/router-core'\nimport type * as Solid from 'solid-js'\n\nexport function RouterContextProvider<\n TRouter extends AnyRouter = RegisteredRouter,\n TDehydrated extends Record<string, any> = Record<string, any>,\n>({\n router,\n children,\n ...rest\n}: RouterProps<TRouter, TDehydrated> & {\n children: () => Solid.JSX.Element\n}) {\n // Allow the router to update options on the router instance\n router.update({\n ...router.options,\n ...rest,\n context: {\n ...router.options.context,\n ...rest.context,\n },\n })\n\n const OptionalWrapper = router.options.Wrap || SafeFragment\n\n return (\n <OptionalWrapper>\n <routerContext.Provider value={router as AnyRouter}>\n {children()}\n </routerContext.Provider>\n </OptionalWrapper>\n )\n}\n\nexport function RouterProvider<\n TRouter extends AnyRouter = RegisteredRouter,\n TDehydrated extends Record<string, any> = Record<string, any>,\n>({ router, ...rest }: RouterProps<TRouter, TDehydrated>) {\n return (\n <RouterContextProvider router={router} {...rest}>\n {() => <Matches />}\n </RouterContextProvider>\n )\n}\n\nexport type RouterProps<\n TRouter extends AnyRouter = RegisteredRouter,\n TDehydrated extends Record<string, any> = Record<string, any>,\n> = Omit<\n RouterOptions<\n TRouter['routeTree'],\n NonNullable<TRouter['options']['trailingSlash']>,\n false,\n TRouter['history'],\n TDehydrated\n >,\n 'context'\n> & {\n router: TRouter\n context?: Partial<\n RouterOptions<\n TRouter['routeTree'],\n NonNullable<TRouter['options']['trailingSlash']>,\n false,\n TRouter['history'],\n TDehydrated\n >['context']\n >\n}\n"],"mappings":";;;;;AAUA,SAAgBO,sBAGd,EACAE,QACAC,UACA,GAAGC,QAGF;AAEDF,QAAOQ,OAAO;EACZ,GAAGR,OAAOS;EACV,GAAGP;EACHQ,SAAS;GACP,GAAGV,OAAOS,QAAQC;GAClB,GAAGR,KAAKQ;GACV;EACD,CAAC;AAIF,QAAAG,gBAFwBb,OAAOS,QAAQG,QAAQpB,cAG7B,EAAA,IAAAS,WAAA;AAAA,SAAAY,gBACbtB,cAAcuB,UAAQ;GAACC,OAAOf;GAAmB,IAAAC,WAAA;AAAA,WAC/CA,UAAU;;GAAA,CAAA;IAAA,CAAA;;AAMnB,SAAgBe,eAGd,EAAEhB,QAAQ,GAAGE,QAA2C;AACxD,QAAAW,gBACGf,uBAAqBmB,WAAA,EAASjB,QAAM,EAAME,MAAI,EAAAD,gBAC5CY,gBAAOpB,SAAO,EAAA,CAAA,EAAG,CAAA,CAAA"}
@@ -1,8 +1,9 @@
1
1
  import { memo } from "solid-js/web";
2
+ //#region src/SafeFragment.tsx
2
3
  function SafeFragment(props) {
3
- return memo(() => props.children);
4
+ return memo(() => props.children);
4
5
  }
5
- export {
6
- SafeFragment
7
- };
8
- //# sourceMappingURL=SafeFragment.js.map
6
+ //#endregion
7
+ export { SafeFragment };
8
+
9
+ //# sourceMappingURL=SafeFragment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SafeFragment.js","sources":["../../src/SafeFragment.tsx"],"sourcesContent":["export function SafeFragment(props: any) {\n return <>{props.children}</>\n}\n"],"names":["SafeFragment","props","_$memo","children"],"mappings":";AAAO,SAASA,aAAaC,OAAY;AACvC,SAAAC,KAAA,MAAUD,MAAME,QAAQ;AAC1B;"}
1
+ {"version":3,"file":"SafeFragment.js","names":["SafeFragment","props","_$memo","children"],"sources":["../../src/SafeFragment.tsx"],"sourcesContent":["export function SafeFragment(props: any) {\n return <>{props.children}</>\n}\n"],"mappings":";;AAAA,SAAgBA,aAAaC,OAAY;AACvC,QAAAC,WAAUD,MAAME,SAAQ"}
@@ -1,22 +1,19 @@
1
- import { template, effect, setAttribute } from "solid-js/web";
2
- import { isServer } from "@tanstack/router-core/isServer";
3
1
  import { useRouter } from "./useRouter.js";
2
+ import { effect, setAttribute, template } from "solid-js/web";
3
+ import { isServer } from "@tanstack/router-core/isServer";
4
+ //#region src/ScriptOnce.tsx
4
5
  var _tmpl$ = /* @__PURE__ */ template(`<script class=$tsr>`);
5
- function ScriptOnce({
6
- children
7
- }) {
8
- const router = useRouter();
9
- if (!(isServer ?? router.isServer)) {
10
- return null;
11
- }
12
- return (() => {
13
- var _el$ = _tmpl$();
14
- _el$.innerHTML = children + ";document.currentScript.remove()";
15
- effect(() => setAttribute(_el$, "nonce", router.options.ssr?.nonce));
16
- return _el$;
17
- })();
6
+ function ScriptOnce({ children }) {
7
+ const router = useRouter();
8
+ if (!(isServer ?? router.isServer)) return null;
9
+ return (() => {
10
+ var _el$ = _tmpl$();
11
+ _el$.innerHTML = children + ";document.currentScript.remove()";
12
+ effect(() => setAttribute(_el$, "nonce", router.options.ssr?.nonce));
13
+ return _el$;
14
+ })();
18
15
  }
19
- export {
20
- ScriptOnce
21
- };
22
- //# sourceMappingURL=ScriptOnce.js.map
16
+ //#endregion
17
+ export { ScriptOnce };
18
+
19
+ //# sourceMappingURL=ScriptOnce.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptOnce.js","sources":["../../src/ScriptOnce.tsx"],"sourcesContent":["import { isServer } from '@tanstack/router-core/isServer'\nimport { useRouter } from './useRouter'\n\nexport function ScriptOnce({\n children,\n}: {\n children: string\n log?: boolean\n sync?: boolean\n}) {\n const router = useRouter()\n if (!(isServer ?? router.isServer)) {\n return null\n }\n return (\n <script\n nonce={router.options.ssr?.nonce}\n class=\"$tsr\"\n innerHTML={children + ';document.currentScript.remove()'}\n />\n )\n}\n"],"names":["ScriptOnce","children","router","useRouter","isServer","_el$","_tmpl$","innerHTML","_$effect","_$setAttribute","options","ssr","nonce"],"mappings":";;;;AAGO,SAASA,WAAW;AAAA,EACzBC;AAKF,GAAG;AACD,QAAMC,SAASC,UAAAA;AACf,MAAI,EAAEC,YAAYF,OAAOE,WAAW;AAClC,WAAO;AAAA,EACT;AACA,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA;AAAAD,SAAAE,YAIeN,WAAW;AAAkCO,WAAA,MAAAC,aAAAJ,MAAA,SAFjDH,OAAOQ,QAAQC,KAAKC,KAAK,CAAA;AAAA,WAAAP;AAAAA,EAAA,GAAA;AAKtC;"}
1
+ {"version":3,"file":"ScriptOnce.js","names":["isServer","useRouter","ScriptOnce","children","log","sync","router","_el$","_tmpl$","innerHTML","_$effect","_$setAttribute","options","ssr","nonce"],"sources":["../../src/ScriptOnce.tsx"],"sourcesContent":["import { isServer } from '@tanstack/router-core/isServer'\nimport { useRouter } from './useRouter'\n\nexport function ScriptOnce({\n children,\n}: {\n children: string\n log?: boolean\n sync?: boolean\n}) {\n const router = useRouter()\n if (!(isServer ?? router.isServer)) {\n return null\n }\n return (\n <script\n nonce={router.options.ssr?.nonce}\n class=\"$tsr\"\n innerHTML={children + ';document.currentScript.remove()'}\n />\n )\n}\n"],"mappings":";;;;;AAGA,SAAgBE,WAAW,EACzBC,YAKC;CACD,MAAMG,SAASL,WAAW;AAC1B,KAAI,EAAED,YAAYM,OAAON,UACvB,QAAO;AAET,eAAA;EAAA,IAAAO,OAAAC,QAAA;AAAAD,OAAAE,YAIeN,WAAW;AAAkCO,eAAAC,aAAAJ,MAAA,SAFjDD,OAAOM,QAAQC,KAAKC,MAAK,CAAA;AAAA,SAAAP;KAAA"}