@tanstack/solid-router 1.166.6 → 2.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/cjs/Asset.cjs +111 -68
  2. package/dist/cjs/Asset.cjs.map +1 -1
  3. package/dist/cjs/CatchBoundary.cjs +15 -15
  4. package/dist/cjs/CatchBoundary.cjs.map +1 -1
  5. package/dist/cjs/ClientOnly.cjs +2 -2
  6. package/dist/cjs/ClientOnly.cjs.map +1 -1
  7. package/dist/cjs/HeadContent.cjs +16 -8
  8. package/dist/cjs/HeadContent.cjs.map +1 -1
  9. package/dist/cjs/HeadContent.dev.cjs +18 -10
  10. package/dist/cjs/HeadContent.dev.cjs.map +1 -1
  11. package/dist/cjs/Match.cjs +125 -81
  12. package/dist/cjs/Match.cjs.map +1 -1
  13. package/dist/cjs/Matches.cjs +23 -16
  14. package/dist/cjs/Matches.cjs.map +1 -1
  15. package/dist/cjs/RouterProvider.cjs +3 -2
  16. package/dist/cjs/RouterProvider.cjs.map +1 -1
  17. package/dist/cjs/SafeFragment.cjs +1 -1
  18. package/dist/cjs/ScriptOnce.cjs +4 -2
  19. package/dist/cjs/ScriptOnce.cjs.map +1 -1
  20. package/dist/cjs/Scripts.cjs +6 -2
  21. package/dist/cjs/Scripts.cjs.map +1 -1
  22. package/dist/cjs/Transitioner.cjs +11 -16
  23. package/dist/cjs/Transitioner.cjs.map +1 -1
  24. package/dist/cjs/awaited.cjs +20 -16
  25. package/dist/cjs/awaited.cjs.map +1 -1
  26. package/dist/cjs/lazyRouteComponent.cjs +3 -3
  27. package/dist/cjs/lazyRouteComponent.cjs.map +1 -1
  28. package/dist/cjs/link.cjs +40 -22
  29. package/dist/cjs/link.cjs.map +1 -1
  30. package/dist/cjs/not-found.cjs +1 -1
  31. package/dist/cjs/renderRouteNotFound.cjs +1 -1
  32. package/dist/cjs/route.cjs +1 -1
  33. package/dist/cjs/scroll-restoration.cjs +1 -1
  34. package/dist/cjs/ssr/RouterClient.cjs +4 -23
  35. package/dist/cjs/ssr/RouterClient.cjs.map +1 -1
  36. package/dist/cjs/ssr/RouterServer.cjs +4 -47
  37. package/dist/cjs/ssr/RouterServer.cjs.map +1 -1
  38. package/dist/cjs/ssr/RouterServer.d.cts +0 -1
  39. package/dist/cjs/ssr/defaultRenderHandler.cjs +1 -1
  40. package/dist/cjs/ssr/defaultStreamHandler.cjs +1 -1
  41. package/dist/cjs/ssr/renderRouterToStream.cjs +2 -3
  42. package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -1
  43. package/dist/cjs/ssr/renderRouterToString.cjs +2 -2
  44. package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -1
  45. package/dist/cjs/ssr/renderRouterToString.d.cts +1 -1
  46. package/dist/cjs/useBlocker.cjs +9 -5
  47. package/dist/cjs/useBlocker.cjs.map +1 -1
  48. package/dist/cjs/useMatch.cjs +3 -6
  49. package/dist/cjs/useMatch.cjs.map +1 -1
  50. package/dist/cjs/useNavigate.cjs +1 -1
  51. package/dist/cjs/useNavigate.cjs.map +1 -1
  52. package/dist/cjs/useRouterState.cjs +15 -9
  53. package/dist/cjs/useRouterState.cjs.map +1 -1
  54. package/dist/cjs/utils.cjs +2 -4
  55. package/dist/cjs/utils.cjs.map +1 -1
  56. package/dist/cjs/utils.d.cts +1 -0
  57. package/dist/esm/Asset.js +111 -68
  58. package/dist/esm/Asset.js.map +1 -1
  59. package/dist/esm/CatchBoundary.js +15 -15
  60. package/dist/esm/CatchBoundary.js.map +1 -1
  61. package/dist/esm/ClientOnly.js +2 -2
  62. package/dist/esm/ClientOnly.js.map +1 -1
  63. package/dist/esm/HeadContent.dev.js +18 -10
  64. package/dist/esm/HeadContent.dev.js.map +1 -1
  65. package/dist/esm/HeadContent.js +16 -8
  66. package/dist/esm/HeadContent.js.map +1 -1
  67. package/dist/esm/Match.js +89 -45
  68. package/dist/esm/Match.js.map +1 -1
  69. package/dist/esm/Matches.js +23 -16
  70. package/dist/esm/Matches.js.map +1 -1
  71. package/dist/esm/RouterProvider.js +3 -2
  72. package/dist/esm/RouterProvider.js.map +1 -1
  73. package/dist/esm/SafeFragment.js +1 -1
  74. package/dist/esm/ScriptOnce.js +4 -2
  75. package/dist/esm/ScriptOnce.js.map +1 -1
  76. package/dist/esm/Scripts.js +6 -2
  77. package/dist/esm/Scripts.js.map +1 -1
  78. package/dist/esm/Transitioner.js +11 -16
  79. package/dist/esm/Transitioner.js.map +1 -1
  80. package/dist/esm/awaited.js +18 -14
  81. package/dist/esm/awaited.js.map +1 -1
  82. package/dist/esm/lazyRouteComponent.js +3 -3
  83. package/dist/esm/lazyRouteComponent.js.map +1 -1
  84. package/dist/esm/link.js +39 -21
  85. package/dist/esm/link.js.map +1 -1
  86. package/dist/esm/not-found.js +1 -1
  87. package/dist/esm/renderRouteNotFound.js +1 -1
  88. package/dist/esm/route.js +1 -1
  89. package/dist/esm/scroll-restoration.js +1 -1
  90. package/dist/esm/ssr/RouterClient.js +4 -23
  91. package/dist/esm/ssr/RouterClient.js.map +1 -1
  92. package/dist/esm/ssr/RouterServer.d.ts +0 -1
  93. package/dist/esm/ssr/RouterServer.js +5 -48
  94. package/dist/esm/ssr/RouterServer.js.map +1 -1
  95. package/dist/esm/ssr/defaultRenderHandler.js +1 -1
  96. package/dist/esm/ssr/defaultStreamHandler.js +1 -1
  97. package/dist/esm/ssr/renderRouterToStream.js +2 -4
  98. package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
  99. package/dist/esm/ssr/renderRouterToString.d.ts +1 -1
  100. package/dist/esm/ssr/renderRouterToString.js +2 -2
  101. package/dist/esm/ssr/renderRouterToString.js.map +1 -1
  102. package/dist/esm/useBlocker.js +9 -5
  103. package/dist/esm/useBlocker.js.map +1 -1
  104. package/dist/esm/useMatch.js +3 -6
  105. package/dist/esm/useMatch.js.map +1 -1
  106. package/dist/esm/useNavigate.js +1 -1
  107. package/dist/esm/useNavigate.js.map +1 -1
  108. package/dist/esm/useRouterState.js +15 -9
  109. package/dist/esm/useRouterState.js.map +1 -1
  110. package/dist/esm/utils.d.ts +1 -0
  111. package/dist/esm/utils.js +2 -4
  112. package/dist/esm/utils.js.map +1 -1
  113. package/dist/source/Asset.jsx +58 -35
  114. package/dist/source/Asset.jsx.map +1 -1
  115. package/dist/source/CatchBoundary.jsx +9 -5
  116. package/dist/source/CatchBoundary.jsx.map +1 -1
  117. package/dist/source/ClientOnly.jsx +1 -1
  118. package/dist/source/ClientOnly.jsx.map +1 -1
  119. package/dist/source/HeadContent.dev.jsx +8 -6
  120. package/dist/source/HeadContent.dev.jsx.map +1 -1
  121. package/dist/source/HeadContent.jsx +6 -4
  122. package/dist/source/HeadContent.jsx.map +1 -1
  123. package/dist/source/Match.jsx +76 -35
  124. package/dist/source/Match.jsx.map +1 -1
  125. package/dist/source/Matches.jsx +25 -17
  126. package/dist/source/Matches.jsx.map +1 -1
  127. package/dist/source/RouterProvider.jsx +2 -3
  128. package/dist/source/RouterProvider.jsx.map +1 -1
  129. package/dist/source/Scripts.jsx +4 -3
  130. package/dist/source/Scripts.jsx.map +1 -1
  131. package/dist/source/Transitioner.jsx +15 -16
  132. package/dist/source/Transitioner.jsx.map +1 -1
  133. package/dist/source/awaited.jsx +7 -8
  134. package/dist/source/awaited.jsx.map +1 -1
  135. package/dist/source/lazyRouteComponent.jsx +3 -3
  136. package/dist/source/lazyRouteComponent.jsx.map +1 -1
  137. package/dist/source/link.jsx +53 -48
  138. package/dist/source/link.jsx.map +1 -1
  139. package/dist/source/ssr/RouterClient.jsx +1 -13
  140. package/dist/source/ssr/RouterClient.jsx.map +1 -1
  141. package/dist/source/ssr/RouterServer.d.ts +0 -1
  142. package/dist/source/ssr/RouterServer.jsx +1 -34
  143. package/dist/source/ssr/RouterServer.jsx.map +1 -1
  144. package/dist/source/ssr/renderRouterToStream.jsx +2 -6
  145. package/dist/source/ssr/renderRouterToStream.jsx.map +1 -1
  146. package/dist/source/ssr/renderRouterToString.d.ts +1 -1
  147. package/dist/source/ssr/renderRouterToString.jsx +2 -2
  148. package/dist/source/ssr/renderRouterToString.jsx.map +1 -1
  149. package/dist/source/useBlocker.jsx +8 -4
  150. package/dist/source/useBlocker.jsx.map +1 -1
  151. package/dist/source/useMatch.jsx +3 -8
  152. package/dist/source/useMatch.jsx.map +1 -1
  153. package/dist/source/useNavigate.jsx +1 -1
  154. package/dist/source/useNavigate.jsx.map +1 -1
  155. package/dist/source/useRouterState.jsx +23 -10
  156. package/dist/source/useRouterState.jsx.map +1 -1
  157. package/dist/source/utils.d.ts +1 -0
  158. package/dist/source/utils.js +3 -4
  159. package/dist/source/utils.js.map +1 -1
  160. package/package.json +8 -7
  161. package/src/Asset.tsx +123 -95
  162. package/src/CatchBoundary.tsx +9 -7
  163. package/src/ClientOnly.tsx +8 -3
  164. package/src/HeadContent.dev.tsx +16 -11
  165. package/src/HeadContent.tsx +6 -4
  166. package/src/Match.tsx +112 -44
  167. package/src/Matches.tsx +39 -30
  168. package/src/RouterProvider.tsx +7 -4
  169. package/src/Scripts.tsx +4 -3
  170. package/src/Transitioner.tsx +51 -58
  171. package/src/awaited.tsx +11 -12
  172. package/src/lazyRouteComponent.tsx +3 -3
  173. package/src/link.tsx +68 -60
  174. package/src/ssr/RouterClient.tsx +1 -22
  175. package/src/ssr/RouterServer.tsx +1 -53
  176. package/src/ssr/renderRouterToStream.tsx +5 -15
  177. package/src/ssr/renderRouterToString.tsx +2 -2
  178. package/src/useBlocker.tsx +8 -4
  179. package/src/useMatch.tsx +6 -11
  180. package/src/useNavigate.tsx +1 -1
  181. package/src/useRouterState.tsx +34 -22
  182. package/src/utils.ts +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"Matches.cjs","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.cjs","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\nconst MatchContext = matchContext as unknown as Solid.Component<{\n value: any\n children: any\n}>\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 // When disableGlobalCatchBoundary is true, we must NOT wrap with Solid.Loading\n // because Solid.Loading transforms STATUS_ERROR into STATUS_PENDING, which\n // prevents errors from propagating to an external Errored boundary.\n const ResolvedSuspense =\n router.options.disableGlobalCatchBoundary ||\n (isServer ?? router.isServer) ||\n (typeof document !== 'undefined' && router.ssr)\n ? SafeFragment\n : Solid.Loading\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 matchContent = () => (\n <Solid.Show when={matchId()}>\n <Match matchId={matchId()!} />\n </Solid.Show>\n )\n\n if (router.options.disableGlobalCatchBoundary) {\n // When disableGlobalCatchBoundary is true, render without any internal\n // error boundary so errors bubble up freely to an external Errored boundary.\n return <MatchContext value={matchId}>{matchContent()}</MatchContext>\n }\n\n return (\n <MatchContext value={matchId}>\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 {matchContent()}\n </CatchBoundary>\n </MatchContext>\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":["MatchContext","matchContext","Matches","router","useRouter","ResolvedSuspense","options","disableGlobalCatchBoundary","isServer","document","ssr","SafeFragment","Solid","Loading","rootRoute","routesById","rootRouteId","PendingComponent","pendingComponent","defaultPendingComponent","OptionalWrapper","InnerWrap","_$createComponent","children","fallback","Transitioner","MatchesInner","matchId","useRouterState","select","s","matches","id","resetKey","loadedAt","matchContent","Show","when","Match","value","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,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Solid = require("solid-js/web");
3
+ const Solid = require("@solidjs/web");
4
4
  const routerContext = require("./routerContext.cjs");
5
5
  const SafeFragment = require("./SafeFragment.cjs");
6
6
  const Matches = require("./Matches.cjs");
7
+ const RouterContext = routerContext.routerContext;
7
8
  function RouterContextProvider({
8
9
  router,
9
10
  children,
@@ -20,7 +21,7 @@ function RouterContextProvider({
20
21
  const OptionalWrapper = router.options.Wrap || SafeFragment.SafeFragment;
21
22
  return Solid.createComponent(OptionalWrapper, {
22
23
  get children() {
23
- return Solid.createComponent(routerContext.routerContext.Provider, {
24
+ return Solid.createComponent(RouterContext, {
24
25
  value: router,
25
26
  get children() {
26
27
  return children();
@@ -1 +1 @@
1
- {"version":3,"file":"RouterProvider.cjs","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,aAAAA;AAE/C,SAAAC,MAAAA,gBACGH,iBAAe;AAAA,IAAA,IAAAL,WAAA;AAAA,aAAAQ,MAAAA,gBACbC,cAAAA,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,MAAAA,gBACGV,uBAAqBe,iBAAA;AAAA,IAACd;AAAAA,EAAAA,GAAoBE,MAAI;AAAA,IAAAD,UAC5CA,MAAAQ,sBAAOM,QAAAA,SAAO,CAAA,CAAA;AAAA,EAAA,CAAG,CAAA;AAGxB;;;"}
1
+ {"version":3,"file":"RouterProvider.cjs","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\nconst RouterContext = routerContext as unknown as Solid.Component<{\n value: any\n children: any\n}>\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 } as any)\n\n const OptionalWrapper = router.options.Wrap || SafeFragment\n\n return (\n <OptionalWrapper>\n <RouterContext value={router as AnyRouter}>{children()}</RouterContext>\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":["RouterContext","routerContext","RouterContextProvider","router","children","rest","update","options","context","OptionalWrapper","Wrap","SafeFragment","_$createComponent","value","RouterProvider","_$mergeProps","Matches"],"mappings":";;;;;;AAUA,MAAMA,gBAAgBC,cAAAA;AAKf,SAASC,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,CACM;AAER,QAAMC,kBAAkBN,OAAOI,QAAQG,QAAQC,aAAAA;AAE/C,SAAAC,MAAAA,gBACGH,iBAAe;AAAA,IAAA,IAAAL,WAAA;AAAA,aAAAQ,MAAAA,gBACbZ,eAAa;AAAA,QAACa,OAAOV;AAAAA,QAAmB,IAAAC,WAAA;AAAA,iBAAGA,SAAAA;AAAAA,QAAU;AAAA,MAAA,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAG5D;AAEO,SAASU,eAGd;AAAA,EAAEX;AAAAA,EAAQ,GAAGE;AAAwC,GAAG;AACxD,SAAAO,MAAAA,gBACGV,uBAAqBa,iBAAA;AAAA,IAACZ;AAAAA,EAAAA,GAAoBE,MAAI;AAAA,IAAAD,UAC5CA,MAAAQ,sBAAOI,QAAAA,SAAO,CAAA,CAAA;AAAA,EAAA,CAAG,CAAA;AAGxB;;;"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Solid = require("solid-js/web");
3
+ const Solid = require("@solidjs/web");
4
4
  function SafeFragment(props) {
5
5
  return Solid.memo(() => props.children);
6
6
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Solid = require("solid-js/web");
3
+ const Solid = require("@solidjs/web");
4
4
  const isServer = require("@tanstack/router-core/isServer");
5
5
  const useRouter = require("./useRouter.cjs");
6
6
  var _tmpl$ = /* @__PURE__ */ Solid.template(`<script class=$tsr>`);
@@ -14,7 +14,9 @@ function ScriptOnce({
14
14
  return (() => {
15
15
  var _el$ = _tmpl$();
16
16
  _el$.innerHTML = children + ";document.currentScript.remove()";
17
- Solid.effect(() => Solid.setAttribute(_el$, "nonce", router.options.ssr?.nonce));
17
+ Solid.effect(() => router.options.ssr?.nonce, (_v$) => {
18
+ Solid.setAttribute(_el$, "nonce", _v$);
19
+ });
18
20
  return _el$;
19
21
  })();
20
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptOnce.cjs","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,UAAAA;AACf,MAAI,EAAEC,SAAAA,YAAYF,OAAOE,WAAW;AAClC,WAAO;AAAA,EACT;AACA,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA;AAAAD,SAAAE,YAIeN,WAAW;AAAkCO,iBAAA,MAAAC,MAAAA,aAAAJ,MAAA,SAFjDH,OAAOQ,QAAQC,KAAKC,KAAK,CAAA;AAAA,WAAAP;AAAAA,EAAA,GAAA;AAKtC;;"}
1
+ {"version":3,"file":"ScriptOnce.cjs","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","options","ssr","nonce","_v$","_$setAttribute"],"mappings":";;;;;;AAGO,SAASA,WAAW;AAAA,EACzBC;AAKF,GAAG;AACD,QAAMC,SAASC,UAAAA,UAAAA;AACf,MAAI,EAAEC,SAAAA,YAAYF,OAAOE,WAAW;AAClC,WAAO;AAAA,EACT;AACA,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA;AAAAD,SAAAE,YAIeN,WAAW;AAAkCO,UAAAA,OAAA,MAFjDN,OAAOO,QAAQC,KAAKC,OAAKC,CAAAA,QAAA;AAAAC,yBAAAR,MAAA,SAAAO,GAAA;AAAA,IAAA,CAAA;AAAA,WAAAP;AAAAA,EAAA,GAAA;AAKtC;;"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Solid = require("solid-js/web");
3
+ const Solid = require("@solidjs/web");
4
4
  const Asset = require("./Asset.cjs");
5
5
  const useRouterState = require("./useRouterState.cjs");
6
6
  const useRouter = require("./useRouter.cjs");
@@ -50,7 +50,11 @@ const Scripts = () => {
50
50
  if (serverBufferedScript) {
51
51
  allScripts.unshift(serverBufferedScript);
52
52
  }
53
- return Solid.memo(() => allScripts.map((asset, i) => Solid.createComponent(Asset.Asset, asset)));
53
+ return Solid.createComponent(Solid.NoHydration, {
54
+ get children() {
55
+ return allScripts.map((asset, _i) => Solid.createComponent(Asset.Asset, asset));
56
+ }
57
+ });
54
58
  };
55
59
  exports.Scripts = Scripts;
56
60
  //# sourceMappingURL=Scripts.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Scripts.cjs","sources":["../../src/Scripts.tsx"],"sourcesContent":["import { Asset } from './Asset'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport const Scripts = () => {\n const router = useRouter()\n const nonce = router.options.ssr?.nonce\n const assetScripts = useRouterState({\n select: (state) => {\n const assetScripts: Array<RouterManagedTag> = []\n const manifest = router.ssr?.manifest\n\n if (!manifest) {\n return []\n }\n\n state.matches\n .map((match) => router.looseRoutesById[match.routeId]!)\n .forEach((route) =>\n manifest.routes[route.id]?.assets\n ?.filter((d) => d.tag === 'script')\n .forEach((asset) => {\n assetScripts.push({\n tag: 'script',\n attrs: { ...asset.attrs, nonce },\n children: asset.children,\n } as any)\n }),\n )\n\n return assetScripts\n },\n })\n\n const scripts = useRouterState({\n select: (state) => ({\n scripts: (\n state.matches\n .map((match) => match.scripts!)\n .flat(1)\n .filter(Boolean) as Array<RouterManagedTag>\n ).map(({ children, ...script }) => ({\n tag: 'script',\n attrs: {\n ...script,\n nonce,\n },\n children,\n })),\n }),\n })\n\n let serverBufferedScript: RouterManagedTag | undefined = undefined\n\n if (router.serverSsr) {\n serverBufferedScript = router.serverSsr.takeBufferedScripts()\n }\n\n const allScripts = [\n ...scripts().scripts,\n ...assetScripts(),\n ] as Array<RouterManagedTag>\n\n if (serverBufferedScript) {\n allScripts.unshift(serverBufferedScript)\n }\n\n return (\n <>\n {allScripts.map((asset, i) => (\n <Asset {...asset} />\n ))}\n </>\n )\n}\n"],"names":["Scripts","router","useRouter","nonce","options","ssr","assetScripts","useRouterState","select","state","manifest","matches","map","match","looseRoutesById","routeId","forEach","route","routes","id","assets","filter","d","tag","asset","push","attrs","children","scripts","flat","Boolean","script","serverBufferedScript","undefined","serverSsr","takeBufferedScripts","allScripts","unshift","_$memo","i","_$createComponent","Asset"],"mappings":";;;;;;AAKO,MAAMA,UAAUA,MAAM;AAC3B,QAAMC,SAASC,UAAAA,UAAAA;AACf,QAAMC,QAAQF,OAAOG,QAAQC,KAAKF;AAClC,QAAMG,eAAeC,eAAAA,eAAe;AAAA,IAClCC,QAASC,CAAAA,UAAU;AACjB,YAAMH,gBAAwC,CAAA;AAC9C,YAAMI,WAAWT,OAAOI,KAAKK;AAE7B,UAAI,CAACA,UAAU;AACb,eAAO,CAAA;AAAA,MACT;AAEAD,YAAME,QACHC,IAAKC,CAAAA,UAAUZ,OAAOa,gBAAgBD,MAAME,OAAO,CAAE,EACrDC,QAASC,CAAAA,UACRP,SAASQ,OAAOD,MAAME,EAAE,GAAGC,QACvBC,OAAQC,CAAAA,MAAMA,EAAEC,QAAQ,QAAQ,EACjCP,QAASQ,CAAAA,UAAU;AAClBlB,sBAAamB,KAAK;AAAA,UAChBF,KAAK;AAAA,UACLG,OAAO;AAAA,YAAE,GAAGF,MAAME;AAAAA,YAAOvB;AAAAA,UAAAA;AAAAA,UACzBwB,UAAUH,MAAMG;AAAAA,QAAAA,CACV;AAAA,MACV,CAAC,CACL;AAEF,aAAOrB;AAAAA,IACT;AAAA,EAAA,CACD;AAED,QAAMsB,UAAUrB,eAAAA,eAAe;AAAA,IAC7BC,QAASC,CAAAA,WAAW;AAAA,MAClBmB,SACEnB,MAAME,QACHC,IAAKC,WAAUA,MAAMe,OAAQ,EAC7BC,KAAK,CAAC,EACNR,OAAOS,OAAO,EACjBlB,IAAI,CAAC;AAAA,QAAEe;AAAAA,QAAU,GAAGI;AAAAA,MAAAA,OAAc;AAAA,QAClCR,KAAK;AAAA,QACLG,OAAO;AAAA,UACL,GAAGK;AAAAA,UACH5B;AAAAA,QAAAA;AAAAA,QAEFwB;AAAAA,MAAAA,EACA;AAAA,IAAA;AAAA,EACJ,CACD;AAED,MAAIK,uBAAqDC;AAEzD,MAAIhC,OAAOiC,WAAW;AACpBF,2BAAuB/B,OAAOiC,UAAUC,oBAAAA;AAAAA,EAC1C;AAEA,QAAMC,aAAa,CACjB,GAAGR,QAAAA,EAAUA,SACb,GAAGtB,cAAc;AAGnB,MAAI0B,sBAAsB;AACxBI,eAAWC,QAAQL,oBAAoB;AAAA,EACzC;AAEA,SAAAM,WAAA,MAEKF,WAAWxB,IAAI,CAACY,OAAOe,MAACC,sBACtBC,MAAAA,OAAUjB,KAAK,CACjB,CAAC;AAGR;;"}
1
+ {"version":3,"file":"Scripts.cjs","sources":["../../src/Scripts.tsx"],"sourcesContent":["import { NoHydration } from '@solidjs/web'\nimport { Asset } from './Asset'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport const Scripts = () => {\n const router = useRouter()\n const nonce = router.options.ssr?.nonce\n const assetScripts = useRouterState({\n select: (state) => {\n const assetScripts: Array<RouterManagedTag> = []\n const manifest = router.ssr?.manifest\n\n if (!manifest) {\n return []\n }\n\n state.matches\n .map((match) => router.looseRoutesById[match.routeId]!)\n .forEach((route) =>\n manifest.routes[route.id]?.assets\n ?.filter((d) => d.tag === 'script')\n .forEach((asset) => {\n assetScripts.push({\n tag: 'script',\n attrs: { ...asset.attrs, nonce },\n children: asset.children,\n } as any)\n }),\n )\n\n return assetScripts\n },\n })\n\n const scripts = useRouterState({\n select: (state) => ({\n scripts: (\n state.matches\n .map((match) => match.scripts!)\n .flat(1)\n .filter(Boolean) as Array<RouterManagedTag>\n ).map(({ children, ...script }) => ({\n tag: 'script',\n attrs: {\n ...script,\n nonce,\n },\n children,\n })),\n }),\n })\n\n let serverBufferedScript: RouterManagedTag | undefined = undefined\n\n if (router.serverSsr) {\n serverBufferedScript = router.serverSsr.takeBufferedScripts()\n }\n\n const allScripts = [\n ...scripts().scripts,\n ...assetScripts(),\n ] as Array<RouterManagedTag>\n\n if (serverBufferedScript) {\n allScripts.unshift(serverBufferedScript)\n }\n\n return (\n <NoHydration>\n {allScripts.map((asset, _i) => (\n <Asset {...asset} />\n ))}\n </NoHydration>\n )\n}\n"],"names":["Scripts","router","useRouter","nonce","options","ssr","assetScripts","useRouterState","select","state","manifest","matches","map","match","looseRoutesById","routeId","forEach","route","routes","id","assets","filter","d","tag","asset","push","attrs","children","scripts","flat","Boolean","script","serverBufferedScript","undefined","serverSsr","takeBufferedScripts","allScripts","unshift","_$createComponent","NoHydration","_i","Asset"],"mappings":";;;;;;AAMO,MAAMA,UAAUA,MAAM;AAC3B,QAAMC,SAASC,UAAAA,UAAAA;AACf,QAAMC,QAAQF,OAAOG,QAAQC,KAAKF;AAClC,QAAMG,eAAeC,eAAAA,eAAe;AAAA,IAClCC,QAASC,CAAAA,UAAU;AACjB,YAAMH,gBAAwC,CAAA;AAC9C,YAAMI,WAAWT,OAAOI,KAAKK;AAE7B,UAAI,CAACA,UAAU;AACb,eAAO,CAAA;AAAA,MACT;AAEAD,YAAME,QACHC,IAAKC,CAAAA,UAAUZ,OAAOa,gBAAgBD,MAAME,OAAO,CAAE,EACrDC,QAASC,CAAAA,UACRP,SAASQ,OAAOD,MAAME,EAAE,GAAGC,QACvBC,OAAQC,CAAAA,MAAMA,EAAEC,QAAQ,QAAQ,EACjCP,QAASQ,CAAAA,UAAU;AAClBlB,sBAAamB,KAAK;AAAA,UAChBF,KAAK;AAAA,UACLG,OAAO;AAAA,YAAE,GAAGF,MAAME;AAAAA,YAAOvB;AAAAA,UAAAA;AAAAA,UACzBwB,UAAUH,MAAMG;AAAAA,QAAAA,CACV;AAAA,MACV,CAAC,CACL;AAEF,aAAOrB;AAAAA,IACT;AAAA,EAAA,CACD;AAED,QAAMsB,UAAUrB,eAAAA,eAAe;AAAA,IAC7BC,QAASC,CAAAA,WAAW;AAAA,MAClBmB,SACEnB,MAAME,QACHC,IAAKC,WAAUA,MAAMe,OAAQ,EAC7BC,KAAK,CAAC,EACNR,OAAOS,OAAO,EACjBlB,IAAI,CAAC;AAAA,QAAEe;AAAAA,QAAU,GAAGI;AAAAA,MAAAA,OAAc;AAAA,QAClCR,KAAK;AAAA,QACLG,OAAO;AAAA,UACL,GAAGK;AAAAA,UACH5B;AAAAA,QAAAA;AAAAA,QAEFwB;AAAAA,MAAAA,EACA;AAAA,IAAA;AAAA,EACJ,CACD;AAED,MAAIK,uBAAqDC;AAEzD,MAAIhC,OAAOiC,WAAW;AACpBF,2BAAuB/B,OAAOiC,UAAUC,oBAAAA;AAAAA,EAC1C;AAEA,QAAMC,aAAa,CACjB,GAAGR,QAAAA,EAAUA,SACb,GAAGtB,cAAc;AAGnB,MAAI0B,sBAAsB;AACxBI,eAAWC,QAAQL,oBAAoB;AAAA,EACzC;AAEA,SAAAM,MAAAA,gBACGC,MAAAA,aAAW;AAAA,IAAA,IAAAZ,WAAA;AAAA,aACTS,WAAWxB,IAAI,CAACY,OAAOgB,OAAEF,sBACvBG,MAAAA,OAAUjB,KAAK,CACjB;AAAA,IAAC;AAAA,EAAA,CAAA;AAGR;;"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const Solid = require("solid-js");
4
4
  const routerCore = require("@tanstack/router-core");
5
- const isServer = require("@tanstack/router-core/isServer");
6
5
  const useRouter = require("./useRouter.cjs");
7
6
  const useRouterState = require("./useRouterState.cjs");
8
7
  const utils = require("./utils.cjs");
@@ -34,10 +33,7 @@ function Transitioner() {
34
33
  isLoading: isLoading2
35
34
  }) => isLoading2
36
35
  });
37
- if (isServer.isServer ?? router.isServer) {
38
- return null;
39
- }
40
- const [isSolidTransitioning, startSolidTransition] = Solid__namespace.useTransition();
36
+ const [isSolidTransitioning] = [() => false];
41
37
  const hasPendingMatches = useRouterState.useRouterState({
42
38
  select: (s) => s.matches.some((d) => d.status === "pending")
43
39
  });
@@ -47,12 +43,11 @@ function Transitioner() {
47
43
  const isPagePending = () => isLoading() || hasPendingMatches();
48
44
  const previousIsPagePending = utils.usePrevious(isPagePending);
49
45
  router.startTransition = (fn) => {
50
- Solid__namespace.startTransition(() => {
51
- startSolidTransition(fn);
52
- });
46
+ Solid__namespace.runWithOwner(null, fn);
53
47
  };
54
- Solid__namespace.onMount(() => {
48
+ Solid__namespace.onSettled(() => {
55
49
  const unsub = router.history.subscribe(router.load);
50
+ router.updateLatestLocation();
56
51
  const nextLocation = router.buildLocation({
57
52
  to: router.latestLocation.pathname,
58
53
  search: true,
@@ -71,7 +66,7 @@ function Transitioner() {
71
66
  unsub();
72
67
  });
73
68
  });
74
- Solid__namespace.createRenderEffect(() => {
69
+ Solid__namespace.createTrackedEffect(() => {
75
70
  Solid__namespace.untrack(() => {
76
71
  if (
77
72
  // if we are hydrating from SSR, loading is triggered in ssr-client
@@ -93,23 +88,23 @@ function Transitioner() {
93
88
  tryLoad();
94
89
  });
95
90
  });
96
- Solid__namespace.createRenderEffect(Solid__namespace.on([previousIsLoading, isLoading], ([previousIsLoading2, isLoading2]) => {
91
+ Solid__namespace.createEffect(() => [previousIsLoading(), isLoading()], ([previousIsLoading2, isLoading2]) => {
97
92
  if (previousIsLoading2.previous && !isLoading2) {
98
93
  router.emit({
99
94
  type: "onLoad",
100
95
  ...routerCore.getLocationChangeInfo(router.state)
101
96
  });
102
97
  }
103
- }));
104
- Solid__namespace.createComputed(Solid__namespace.on([isPagePending, previousIsPagePending], ([isPagePending2, previousIsPagePending2]) => {
98
+ });
99
+ Solid__namespace.createEffect(() => [isPagePending(), previousIsPagePending()], ([isPagePending2, previousIsPagePending2]) => {
105
100
  if (previousIsPagePending2.previous && !isPagePending2) {
106
101
  router.emit({
107
102
  type: "onBeforeRouteMount",
108
103
  ...routerCore.getLocationChangeInfo(router.state)
109
104
  });
110
105
  }
111
- }));
112
- Solid__namespace.createRenderEffect(Solid__namespace.on([isAnyPending, previousIsAnyPending], ([isAnyPending2, previousIsAnyPending2]) => {
106
+ });
107
+ Solid__namespace.createEffect(() => [isAnyPending(), previousIsAnyPending()], ([isAnyPending2, previousIsAnyPending2]) => {
113
108
  if (previousIsAnyPending2.previous && !isAnyPending2) {
114
109
  const changeInfo = routerCore.getLocationChangeInfo(router.state);
115
110
  router.emit({
@@ -125,7 +120,7 @@ function Transitioner() {
125
120
  routerCore.handleHashScroll(router);
126
121
  }
127
122
  }
128
- }));
123
+ });
129
124
  return null;
130
125
  }
131
126
  exports.Transitioner = Transitioner;
@@ -1 +1 @@
1
- {"version":3,"file":"Transitioner.cjs","sources":["../../src/Transitioner.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport {\n getLocationChangeInfo,\n handleHashScroll,\n trimPathRight,\n} from '@tanstack/router-core'\nimport { isServer } from '@tanstack/router-core/isServer'\nimport { useRouter } from './useRouter'\nimport { useRouterState } from './useRouterState'\nimport { usePrevious } from './utils'\n\nexport function Transitioner() {\n const router = useRouter()\n let mountLoadForRouter = { router, mounted: false }\n const isLoading = useRouterState({\n select: ({ isLoading }) => isLoading,\n })\n\n if (isServer ?? router.isServer) {\n return null\n }\n\n const [isSolidTransitioning, startSolidTransition] = Solid.useTransition()\n\n // Track pending state changes\n const hasPendingMatches = useRouterState({\n select: (s) => s.matches.some((d) => d.status === 'pending'),\n })\n\n const previousIsLoading = usePrevious(isLoading)\n\n const isAnyPending = () =>\n isLoading() || isSolidTransitioning() || hasPendingMatches()\n const previousIsAnyPending = usePrevious(isAnyPending)\n\n const isPagePending = () => isLoading() || hasPendingMatches()\n const previousIsPagePending = usePrevious(isPagePending)\n\n router.startTransition = (fn: () => void | Promise<void>) => {\n Solid.startTransition(() => {\n startSolidTransition(fn)\n })\n }\n\n // Subscribe to location changes\n // and try to load the new location\n Solid.onMount(() => {\n const unsub = router.history.subscribe(router.load)\n\n const nextLocation = router.buildLocation({\n to: router.latestLocation.pathname,\n search: true,\n params: true,\n hash: true,\n state: true,\n _includeValidateSearch: true,\n })\n\n // Check if the current URL matches the canonical form.\n // Compare publicHref (browser-facing URL) for consistency with\n // the server-side redirect check in router.beforeLoad.\n if (\n trimPathRight(router.latestLocation.publicHref) !==\n trimPathRight(nextLocation.publicHref)\n ) {\n router.commitLocation({ ...nextLocation, replace: true })\n }\n\n Solid.onCleanup(() => {\n unsub()\n })\n })\n\n // Try to load the initial location\n Solid.createRenderEffect(() => {\n Solid.untrack(() => {\n if (\n // if we are hydrating from SSR, loading is triggered in ssr-client\n (typeof window !== 'undefined' && router.ssr) ||\n (mountLoadForRouter.router === router && mountLoadForRouter.mounted)\n ) {\n return\n }\n mountLoadForRouter = { router, mounted: true }\n const tryLoad = async () => {\n try {\n await router.load()\n } catch (err) {\n console.error(err)\n }\n }\n tryLoad()\n })\n })\n\n Solid.createRenderEffect(\n Solid.on(\n [previousIsLoading, isLoading],\n ([previousIsLoading, isLoading]) => {\n if (previousIsLoading.previous && !isLoading) {\n router.emit({\n type: 'onLoad',\n ...getLocationChangeInfo(router.state),\n })\n }\n },\n ),\n )\n\n Solid.createComputed(\n Solid.on(\n [isPagePending, previousIsPagePending],\n ([isPagePending, previousIsPagePending]) => {\n // emit onBeforeRouteMount\n if (previousIsPagePending.previous && !isPagePending) {\n router.emit({\n type: 'onBeforeRouteMount',\n ...getLocationChangeInfo(router.state),\n })\n }\n },\n ),\n )\n\n Solid.createRenderEffect(\n Solid.on(\n [isAnyPending, previousIsAnyPending],\n ([isAnyPending, previousIsAnyPending]) => {\n if (previousIsAnyPending.previous && !isAnyPending) {\n const changeInfo = getLocationChangeInfo(router.state)\n router.emit({\n type: 'onResolved',\n ...changeInfo,\n })\n\n router.__store.setState((s) => ({\n ...s,\n status: 'idle',\n resolvedLocation: s.location,\n }))\n\n if (changeInfo.hrefChanged) {\n handleHashScroll(router)\n }\n }\n },\n ),\n )\n\n return null\n}\n"],"names":["Transitioner","router","useRouter","mountLoadForRouter","mounted","isLoading","useRouterState","select","isServer","isSolidTransitioning","startSolidTransition","Solid","useTransition","hasPendingMatches","s","matches","some","d","status","previousIsLoading","usePrevious","isAnyPending","previousIsAnyPending","isPagePending","previousIsPagePending","startTransition","fn","onMount","unsub","history","subscribe","load","nextLocation","buildLocation","to","latestLocation","pathname","search","params","hash","state","_includeValidateSearch","trimPathRight","publicHref","commitLocation","replace","onCleanup","createRenderEffect","untrack","window","ssr","tryLoad","err","console","error","on","previous","emit","type","getLocationChangeInfo","createComputed","changeInfo","__store","setState","resolvedLocation","location","hrefChanged","handleHashScroll"],"mappings":"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"}
1
+ {"version":3,"file":"Transitioner.cjs","sources":["../../src/Transitioner.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport {\n getLocationChangeInfo,\n handleHashScroll,\n trimPathRight,\n} from '@tanstack/router-core'\nimport { useRouter } from './useRouter'\nimport { useRouterState } from './useRouterState'\nimport { usePrevious } from './utils'\n\nexport function Transitioner() {\n const router = useRouter()\n let mountLoadForRouter = { router, mounted: false }\n const isLoading = useRouterState({\n select: ({ isLoading }) => isLoading,\n })\n\n const [isSolidTransitioning] = [() => false]\n\n // Track pending state changes\n const hasPendingMatches = useRouterState({\n select: (s) => s.matches.some((d) => d.status === 'pending'),\n })\n\n const previousIsLoading = usePrevious(isLoading)\n\n const isAnyPending = () =>\n isLoading() || isSolidTransitioning() || hasPendingMatches()\n const previousIsAnyPending = usePrevious(isAnyPending)\n\n const isPagePending = () => isLoading() || hasPendingMatches()\n const previousIsPagePending = usePrevious(isPagePending)\n\n router.startTransition = (fn: () => void | Promise<void>) => {\n Solid.runWithOwner(null, fn)\n }\n\n // Subscribe to location changes\n // and try to load the new location\n Solid.onSettled(() => {\n const unsub = router.history.subscribe(router.load)\n\n // Refresh latestLocation from the current browser URL before comparing.\n // The URL may have been changed synchronously (e.g. via replaceState) after\n // render() but before this effect ran, so we must not use the stale\n // render-time location here.\n router.updateLatestLocation()\n\n const nextLocation = router.buildLocation({\n to: router.latestLocation.pathname,\n search: true,\n params: true,\n hash: true,\n state: true,\n _includeValidateSearch: true,\n })\n\n // Check if the current URL matches the canonical form.\n // Compare publicHref (browser-facing URL) for consistency with\n // the server-side redirect check in router.beforeLoad.\n if (\n trimPathRight(router.latestLocation.publicHref) !==\n trimPathRight(nextLocation.publicHref)\n ) {\n router.commitLocation({ ...nextLocation, replace: true })\n }\n\n Solid.onCleanup(() => {\n unsub()\n })\n })\n\n // Try to load the initial location\n Solid.createTrackedEffect(() => {\n Solid.untrack(() => {\n if (\n // if we are hydrating from SSR, loading is triggered in ssr-client\n (typeof window !== 'undefined' && router.ssr) ||\n (mountLoadForRouter.router === router && mountLoadForRouter.mounted)\n ) {\n return\n }\n mountLoadForRouter = { router, mounted: true }\n const tryLoad = async () => {\n try {\n await router.load()\n } catch (err) {\n console.error(err)\n }\n }\n tryLoad()\n })\n })\n\n Solid.createEffect(\n () => [previousIsLoading(), isLoading()] as const,\n ([previousIsLoading, isLoading]) => {\n if (previousIsLoading.previous && !isLoading) {\n router.emit({\n type: 'onLoad',\n ...getLocationChangeInfo(router.state),\n })\n }\n },\n )\n\n Solid.createEffect(\n () => [isPagePending(), previousIsPagePending()] as const,\n ([isPagePending, previousIsPagePending]) => {\n // emit onBeforeRouteMount\n if (previousIsPagePending.previous && !isPagePending) {\n router.emit({\n type: 'onBeforeRouteMount',\n ...getLocationChangeInfo(router.state),\n })\n }\n },\n )\n\n Solid.createEffect(\n () => [isAnyPending(), previousIsAnyPending()] as const,\n ([isAnyPending, previousIsAnyPending]) => {\n if (previousIsAnyPending.previous && !isAnyPending) {\n const changeInfo = getLocationChangeInfo(router.state)\n router.emit({\n type: 'onResolved',\n ...changeInfo,\n })\n\n router.__store.setState((s) => ({\n ...s,\n status: 'idle',\n resolvedLocation: s.location,\n }))\n\n if (changeInfo.hrefChanged) {\n handleHashScroll(router)\n }\n }\n },\n )\n\n return null\n}\n"],"names":["Transitioner","router","useRouter","mountLoadForRouter","mounted","isLoading","useRouterState","select","isSolidTransitioning","hasPendingMatches","s","matches","some","d","status","previousIsLoading","usePrevious","isAnyPending","previousIsAnyPending","isPagePending","previousIsPagePending","startTransition","fn","Solid","runWithOwner","onSettled","unsub","history","subscribe","load","updateLatestLocation","nextLocation","buildLocation","to","latestLocation","pathname","search","params","hash","state","_includeValidateSearch","trimPathRight","publicHref","commitLocation","replace","onCleanup","createTrackedEffect","untrack","window","ssr","tryLoad","err","console","error","createEffect","previous","emit","type","getLocationChangeInfo","changeInfo","__store","setState","resolvedLocation","location","hrefChanged","handleHashScroll"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAUO,SAASA,eAAe;AAC7B,QAAMC,SAASC,UAAAA,UAAAA;AACf,MAAIC,qBAAqB;AAAA,IAAEF;AAAAA,IAAQG,SAAS;AAAA,EAAA;AAC5C,QAAMC,YAAYC,eAAAA,eAAe;AAAA,IAC/BC,QAAQA,CAAC;AAAA,MAAEF,WAAAA;AAAAA,IAAAA,MAAgBA;AAAAA,EAAAA,CAC5B;AAED,QAAM,CAACG,oBAAoB,IAAI,CAAC,MAAM,KAAK;AAG3C,QAAMC,oBAAoBH,eAAAA,eAAe;AAAA,IACvCC,QAASG,OAAMA,EAAEC,QAAQC,KAAMC,CAAAA,MAAMA,EAAEC,WAAW,SAAS;AAAA,EAAA,CAC5D;AAED,QAAMC,oBAAoBC,MAAAA,YAAYX,SAAS;AAE/C,QAAMY,eAAeA,MACnBZ,UAAAA,KAAeG,qBAAAA,KAA0BC,kBAAAA;AAC3C,QAAMS,uBAAuBF,MAAAA,YAAYC,YAAY;AAErD,QAAME,gBAAgBA,MAAMd,UAAAA,KAAeI,kBAAAA;AAC3C,QAAMW,wBAAwBJ,MAAAA,YAAYG,aAAa;AAEvDlB,SAAOoB,kBAAkB,CAACC,OAAmC;AAC3DC,qBAAMC,aAAa,MAAMF,EAAE;AAAA,EAC7B;AAIAC,mBAAME,UAAU,MAAM;AACpB,UAAMC,QAAQzB,OAAO0B,QAAQC,UAAU3B,OAAO4B,IAAI;AAMlD5B,WAAO6B,qBAAAA;AAEP,UAAMC,eAAe9B,OAAO+B,cAAc;AAAA,MACxCC,IAAIhC,OAAOiC,eAAeC;AAAAA,MAC1BC,QAAQ;AAAA,MACRC,QAAQ;AAAA,MACRC,MAAM;AAAA,MACNC,OAAO;AAAA,MACPC,wBAAwB;AAAA,IAAA,CACzB;AAKD,QACEC,WAAAA,cAAcxC,OAAOiC,eAAeQ,UAAU,MAC9CD,yBAAcV,aAAaW,UAAU,GACrC;AACAzC,aAAO0C,eAAe;AAAA,QAAE,GAAGZ;AAAAA,QAAca,SAAS;AAAA,MAAA,CAAM;AAAA,IAC1D;AAEArB,qBAAMsB,UAAU,MAAM;AACpBnB,YAAAA;AAAAA,IACF,CAAC;AAAA,EACH,CAAC;AAGDH,mBAAMuB,oBAAoB,MAAM;AAC9BvB,qBAAMwB,QAAQ,MAAM;AAClB;AAAA;AAAA,QAEG,OAAOC,WAAW,eAAe/C,OAAOgD,OACxC9C,mBAAmBF,WAAWA,UAAUE,mBAAmBC;AAAAA,QAC5D;AACA;AAAA,MACF;AACAD,2BAAqB;AAAA,QAAEF;AAAAA,QAAQG,SAAS;AAAA,MAAA;AACxC,YAAM8C,UAAU,YAAY;AAC1B,YAAI;AACF,gBAAMjD,OAAO4B,KAAAA;AAAAA,QACf,SAASsB,KAAK;AACZC,kBAAQC,MAAMF,GAAG;AAAA,QACnB;AAAA,MACF;AACAD,cAAAA;AAAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED3B,mBAAM+B,aACJ,MAAM,CAACvC,kBAAAA,GAAqBV,UAAAA,CAAW,GACvC,CAAC,CAACU,oBAAmBV,UAAS,MAAM;AAClC,QAAIU,mBAAkBwC,YAAY,CAAClD,YAAW;AAC5CJ,aAAOuD,KAAK;AAAA,QACVC,MAAM;AAAA,QACN,GAAGC,WAAAA,sBAAsBzD,OAAOsC,KAAK;AAAA,MAAA,CACtC;AAAA,IACH;AAAA,EACF,CACF;AAEAhB,mBAAM+B,aACJ,MAAM,CAACnC,cAAAA,GAAiBC,sBAAAA,CAAuB,GAC/C,CAAC,CAACD,gBAAeC,sBAAqB,MAAM;AAE1C,QAAIA,uBAAsBmC,YAAY,CAACpC,gBAAe;AACpDlB,aAAOuD,KAAK;AAAA,QACVC,MAAM;AAAA,QACN,GAAGC,WAAAA,sBAAsBzD,OAAOsC,KAAK;AAAA,MAAA,CACtC;AAAA,IACH;AAAA,EACF,CACF;AAEAhB,mBAAM+B,aACJ,MAAM,CAACrC,aAAAA,GAAgBC,qBAAAA,CAAsB,GAC7C,CAAC,CAACD,eAAcC,qBAAoB,MAAM;AACxC,QAAIA,sBAAqBqC,YAAY,CAACtC,eAAc;AAClD,YAAM0C,aAAaD,WAAAA,sBAAsBzD,OAAOsC,KAAK;AACrDtC,aAAOuD,KAAK;AAAA,QACVC,MAAM;AAAA,QACN,GAAGE;AAAAA,MAAAA,CACJ;AAED1D,aAAO2D,QAAQC,SAAUnD,CAAAA,OAAO;AAAA,QAC9B,GAAGA;AAAAA,QACHI,QAAQ;AAAA,QACRgD,kBAAkBpD,EAAEqD;AAAAA,MAAAA,EACpB;AAEF,UAAIJ,WAAWK,aAAa;AAC1BC,mBAAAA,iBAAiBhE,MAAM;AAAA,MACzB;AAAA,IACF;AAAA,EACF,CACF;AAEA,SAAO;AACT;;"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Solid$1 = require("solid-js/web");
4
- const Solid = require("solid-js");
3
+ const Solid = require("@solidjs/web");
4
+ const Solid$1 = require("solid-js");
5
5
  const routerCore = require("@tanstack/router-core");
6
6
  function _interopNamespaceDefault(e) {
7
7
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
@@ -19,7 +19,7 @@ function _interopNamespaceDefault(e) {
19
19
  n.default = e;
20
20
  return Object.freeze(n);
21
21
  }
22
- const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid);
22
+ const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid$1);
23
23
  function useAwaited({
24
24
  promise: _promise
25
25
  }) {
@@ -32,23 +32,27 @@ function useAwaited({
32
32
  }
33
33
  return [promise[routerCore.TSR_DEFERRED_PROMISE].data, promise];
34
34
  }
35
+ function InnerAwait(props) {
36
+ const [data] = useAwaited({
37
+ promise: props.promise
38
+ });
39
+ return props.children(data);
40
+ }
35
41
  function Await(props) {
36
- const [resource] = Solid__namespace.createResource(
37
- () => routerCore.defer(props.promise),
38
- // Simple passthrough - just return the promise for Solid to await
39
- (p) => p,
40
- {
41
- deferStream: true
42
- }
43
- );
44
- return Solid$1.createComponent(Solid__namespace.Show, {
42
+ return Solid.createComponent(Solid__namespace.Loading, {
45
43
  get fallback() {
46
44
  return props.fallback;
47
45
  },
48
- get when() {
49
- return resource();
50
- },
51
- children: (data) => props.children(data())
46
+ get children() {
47
+ return Solid.createComponent(InnerAwait, {
48
+ get promise() {
49
+ return props.promise;
50
+ },
51
+ get children() {
52
+ return props.children;
53
+ }
54
+ });
55
+ }
52
56
  });
53
57
  }
54
58
  exports.Await = Await;
@@ -1 +1 @@
1
- {"version":3,"file":"awaited.cjs","sources":["../../src/awaited.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\n\nimport { TSR_DEFERRED_PROMISE, defer } from '@tanstack/router-core'\nimport type { DeferredPromise } from '@tanstack/router-core'\nimport type { SolidNode } from './route'\n\nexport type AwaitOptions<T> = {\n promise: Promise<T>\n}\n\nexport function useAwaited<T>({\n promise: _promise,\n}: AwaitOptions<T>): [T, DeferredPromise<T>] {\n const promise = defer(_promise)\n\n if (promise[TSR_DEFERRED_PROMISE].status === 'pending') {\n throw promise\n }\n\n if (promise[TSR_DEFERRED_PROMISE].status === 'error') {\n throw promise[TSR_DEFERRED_PROMISE].error\n }\n\n return [promise[TSR_DEFERRED_PROMISE].data, promise]\n}\n\nexport function Await<T>(\n props: AwaitOptions<T> & {\n fallback?: SolidNode\n children: (result: T) => SolidNode\n },\n) {\n const [resource] = Solid.createResource(\n () => defer(props.promise),\n // Simple passthrough - just return the promise for Solid to await\n (p) => p,\n {\n deferStream: true,\n },\n )\n\n return (\n <Solid.Show fallback={props.fallback} when={resource()}>\n {(data) => props.children(data())}\n </Solid.Show>\n )\n}\n"],"names":["useAwaited","promise","_promise","defer","TSR_DEFERRED_PROMISE","status","error","data","Await","props","resource","Solid","createResource","p","deferStream","_$createComponent","Show","fallback","when","children"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAUO,SAASA,WAAc;AAAA,EAC5BC,SAASC;AACM,GAA4B;AAC3C,QAAMD,UAAUE,WAAAA,MAAMD,QAAQ;AAE9B,MAAID,QAAQG,WAAAA,oBAAoB,EAAEC,WAAW,WAAW;AACtD,UAAMJ;AAAAA,EACR;AAEA,MAAIA,QAAQG,WAAAA,oBAAoB,EAAEC,WAAW,SAAS;AACpD,UAAMJ,QAAQG,WAAAA,oBAAoB,EAAEE;AAAAA,EACtC;AAEA,SAAO,CAACL,QAAQG,WAAAA,oBAAoB,EAAEG,MAAMN,OAAO;AACrD;AAEO,SAASO,MACdC,OAIA;AACA,QAAM,CAACC,QAAQ,IAAIC,iBAAMC;AAAAA,IACvB,MAAMT,WAAAA,MAAMM,MAAMR,OAAO;AAAA;AAAA,IAExBY,CAAAA,MAAMA;AAAAA,IACP;AAAA,MACEC,aAAa;AAAA,IAAA;AAAA,EACf;AAGF,SAAAC,QAAAA,gBACGJ,iBAAMK,MAAI;AAAA,IAAA,IAACC,WAAQ;AAAA,aAAER,MAAMQ;AAAAA,IAAQ;AAAA,IAAA,IAAEC,OAAI;AAAA,aAAER,SAAAA;AAAAA,IAAU;AAAA,IAAAS,UAClDZ,CAAAA,SAASE,MAAMU,SAASZ,MAAM;AAAA,EAAA,CAAC;AAGvC;;;"}
1
+ {"version":3,"file":"awaited.cjs","sources":["../../src/awaited.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\n\nimport { TSR_DEFERRED_PROMISE, defer } from '@tanstack/router-core'\nimport type { DeferredPromise } from '@tanstack/router-core'\nimport type { SolidNode } from './route'\n\nexport type AwaitOptions<T> = {\n promise: Promise<T>\n}\n\nexport function useAwaited<T>({\n promise: _promise,\n}: AwaitOptions<T>): [T, DeferredPromise<T>] {\n const promise = defer(_promise)\n\n if (promise[TSR_DEFERRED_PROMISE].status === 'pending') {\n throw promise\n }\n\n if (promise[TSR_DEFERRED_PROMISE].status === 'error') {\n throw promise[TSR_DEFERRED_PROMISE].error\n }\n\n return [promise[TSR_DEFERRED_PROMISE].data, promise]\n}\n\nfunction InnerAwait<T>(props: {\n promise: Promise<T>\n children: (res: T) => SolidNode\n}) {\n const [data] = useAwaited({ promise: props.promise })\n return props.children(data) as any\n}\n\nexport function Await<T>(\n props: AwaitOptions<T> & {\n fallback?: SolidNode\n children: (result: T) => SolidNode\n },\n) {\n return (\n <Solid.Loading fallback={props.fallback as any}>\n <InnerAwait promise={props.promise}>{props.children}</InnerAwait>\n </Solid.Loading>\n )\n}\n"],"names":["useAwaited","promise","_promise","defer","TSR_DEFERRED_PROMISE","status","error","data","InnerAwait","props","children","Await","_$createComponent","Solid","Loading","fallback"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAUO,SAASA,WAAc;AAAA,EAC5BC,SAASC;AACM,GAA4B;AAC3C,QAAMD,UAAUE,WAAAA,MAAMD,QAAQ;AAE9B,MAAID,QAAQG,WAAAA,oBAAoB,EAAEC,WAAW,WAAW;AACtD,UAAMJ;AAAAA,EACR;AAEA,MAAIA,QAAQG,WAAAA,oBAAoB,EAAEC,WAAW,SAAS;AACpD,UAAMJ,QAAQG,WAAAA,oBAAoB,EAAEE;AAAAA,EACtC;AAEA,SAAO,CAACL,QAAQG,WAAAA,oBAAoB,EAAEG,MAAMN,OAAO;AACrD;AAEA,SAASO,WAAcC,OAGpB;AACD,QAAM,CAACF,IAAI,IAAIP,WAAW;AAAA,IAAEC,SAASQ,MAAMR;AAAAA,EAAAA,CAAS;AACpD,SAAOQ,MAAMC,SAASH,IAAI;AAC5B;AAEO,SAASI,MACdF,OAIA;AACA,SAAAG,MAAAA,gBACGC,iBAAMC,SAAO;AAAA,IAAA,IAACC,WAAQ;AAAA,aAAEN,MAAMM;AAAAA,IAAe;AAAA,IAAA,IAAAL,WAAA;AAAA,aAAAE,MAAAA,gBAC3CJ,YAAU;AAAA,QAAA,IAACP,UAAO;AAAA,iBAAEQ,MAAMR;AAAAA,QAAO;AAAA,QAAA,IAAAS,WAAA;AAAA,iBAAGD,MAAMC;AAAAA,QAAQ;AAAA,MAAA,CAAA;AAAA,IAAA;AAAA,EAAA,CAAA;AAGzD;;;"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Solid$1 = require("solid-js/web");
4
- const Solid = require("solid-js");
3
+ const Solid$1 = require("@solidjs/web");
5
4
  const routerCore = require("@tanstack/router-core");
5
+ const Solid = require("solid-js");
6
6
  function lazyRouteComponent(importer, exportName) {
7
7
  let loadPromise;
8
8
  let comp;
@@ -36,7 +36,7 @@ function lazyRouteComponent(importer, exportName) {
36
36
  throw error;
37
37
  }
38
38
  if (!comp) {
39
- const [compResource] = Solid.createResource(load, {
39
+ const compResource = Solid.createMemo(load, {
40
40
  initialValue: comp,
41
41
  ssrLoadFrom: "initial"
42
42
  });
@@ -1 +1 @@
1
- {"version":3,"file":"lazyRouteComponent.cjs","sources":["../../src/lazyRouteComponent.tsx"],"sourcesContent":["import { Dynamic } from 'solid-js/web'\nimport { createResource } from 'solid-js'\nimport { isModuleNotFoundError } from '@tanstack/router-core'\nimport type { AsyncRouteComponent } from './route'\n\nexport function lazyRouteComponent<\n T extends Record<string, any>,\n TKey extends keyof T = 'default',\n>(\n importer: () => Promise<T>,\n exportName?: TKey,\n): T[TKey] extends (props: infer TProps) => any\n ? AsyncRouteComponent<TProps>\n : never {\n let loadPromise: Promise<any> | undefined\n let comp: T[TKey] | T['default']\n let error: any\n\n const load = () => {\n if (!loadPromise) {\n loadPromise = importer()\n .then((res) => {\n loadPromise = undefined\n comp = res[exportName ?? 'default']\n return comp\n })\n .catch((err) => {\n error = err\n })\n }\n\n return loadPromise\n }\n\n const lazyComp = function Lazy(props: any) {\n // Now that we're out of preload and into actual render path,\n // throw the error if it was a module not found error during preload\n if (error) {\n // If the load fails due to module not found, it may mean a new version of\n // the build was deployed and the user's browser is still using an old version.\n // If this happens, the old version in the user's browser would have an outdated\n // URL to the lazy module.\n // In that case, we want to attempt one window refresh to get the latest.\n if (isModuleNotFoundError(error)) {\n // We don't want an error thrown from preload in this case, because\n // there's nothing we want to do about module not found during preload.\n // Record the error, recover the promise with a null return,\n // and we will attempt module not found resolution during the render path.\n\n if (\n error instanceof Error &&\n typeof window !== 'undefined' &&\n typeof sessionStorage !== 'undefined'\n ) {\n // Again, we want to reload one time on module not found error and not enter\n // a reload loop if there is some other issue besides an old deploy.\n // That's why we store our reload attempt in sessionStorage.\n // Use error.message as key because it contains the module path that failed.\n const storageKey = `tanstack_router_reload:${error.message}`\n if (!sessionStorage.getItem(storageKey)) {\n sessionStorage.setItem(storageKey, '1')\n window.location.reload()\n\n // Return empty component while we wait for window to reload\n return {\n default: () => null,\n }\n }\n }\n }\n\n // Otherwise, just throw the error\n throw error\n }\n\n if (!comp) {\n const [compResource] = createResource(load, {\n initialValue: comp,\n ssrLoadFrom: 'initial',\n })\n return <Dynamic component={compResource()} {...props} />\n }\n\n return <Dynamic component={comp} {...props} />\n }\n\n ;(lazyComp as any).preload = load\n\n return lazyComp as any\n}\n"],"names":["lazyRouteComponent","importer","exportName","loadPromise","comp","error","load","then","res","undefined","catch","err","lazyComp","Lazy","props","isModuleNotFoundError","Error","window","sessionStorage","storageKey","message","getItem","setItem","location","reload","default","compResource","createResource","initialValue","ssrLoadFrom","_$createComponent","Dynamic","_$mergeProps","component","preload"],"mappings":";;;;;AAKO,SAASA,mBAIdC,UACAC,YAGQ;AACR,MAAIC;AACJ,MAAIC;AACJ,MAAIC;AAEJ,QAAMC,OAAOA,MAAM;AACjB,QAAI,CAACH,aAAa;AAChBA,oBAAcF,SAAAA,EACXM,KAAMC,CAAAA,QAAQ;AACbL,sBAAcM;AACdL,eAAOI,IAAIN,cAAc,SAAS;AAClC,eAAOE;AAAAA,MACT,CAAC,EACAM,MAAOC,CAAAA,QAAQ;AACdN,gBAAQM;AAAAA,MACV,CAAC;AAAA,IACL;AAEA,WAAOR;AAAAA,EACT;AAEA,QAAMS,WAAW,SAASC,KAAKC,OAAY;AAGzC,QAAIT,OAAO;AAMT,UAAIU,WAAAA,sBAAsBV,KAAK,GAAG;AAMhC,YACEA,iBAAiBW,SACjB,OAAOC,WAAW,eAClB,OAAOC,mBAAmB,aAC1B;AAKA,gBAAMC,aAAa,0BAA0Bd,MAAMe,OAAO;AAC1D,cAAI,CAACF,eAAeG,QAAQF,UAAU,GAAG;AACvCD,2BAAeI,QAAQH,YAAY,GAAG;AACtCF,mBAAOM,SAASC,OAAAA;AAGhB,mBAAO;AAAA,cACLC,SAASA,MAAM;AAAA,YAAA;AAAA,UAEnB;AAAA,QACF;AAAA,MACF;AAGA,YAAMpB;AAAAA,IACR;AAEA,QAAI,CAACD,MAAM;AACT,YAAM,CAACsB,YAAY,IAAIC,MAAAA,eAAerB,MAAM;AAAA,QAC1CsB,cAAcxB;AAAAA,QACdyB,aAAa;AAAA,MAAA,CACd;AACD,aAAAC,QAAAA,gBAAQC,QAAAA,SAAOC,mBAAA;AAAA,QAAA,IAACC,YAAS;AAAA,iBAAEP,aAAAA;AAAAA,QAAc;AAAA,MAAA,GAAMZ,KAAK,CAAA;AAAA,IACtD;AAEA,WAAAgB,QAAAA,gBAAQC,QAAAA,SAAOC,mBAAA;AAAA,MAACC,WAAW7B;AAAAA,IAAAA,GAAUU,KAAK,CAAA;AAAA,EAC5C;AAEEF,WAAiBsB,UAAU5B;AAE7B,SAAOM;AACT;;"}
1
+ {"version":3,"file":"lazyRouteComponent.cjs","sources":["../../src/lazyRouteComponent.tsx"],"sourcesContent":["import { isModuleNotFoundError } from '@tanstack/router-core'\nimport { Dynamic } from '@solidjs/web'\nimport { createMemo } from 'solid-js'\nimport type { AsyncRouteComponent } from './route'\n\nexport function lazyRouteComponent<\n T extends Record<string, any>,\n TKey extends keyof T = 'default',\n>(\n importer: () => Promise<T>,\n exportName?: TKey,\n): T[TKey] extends (props: infer TProps) => any\n ? AsyncRouteComponent<TProps>\n : never {\n let loadPromise: Promise<any> | undefined\n let comp: T[TKey] | T['default']\n let error: any\n\n const load = () => {\n if (!loadPromise) {\n loadPromise = importer()\n .then((res) => {\n loadPromise = undefined\n comp = res[exportName ?? 'default']\n return comp\n })\n .catch((err) => {\n error = err\n })\n }\n\n return loadPromise\n }\n\n const lazyComp = function Lazy(props: any) {\n // Now that we're out of preload and into actual render path,\n // throw the error if it was a module not found error during preload\n if (error) {\n // If the load fails due to module not found, it may mean a new version of\n // the build was deployed and the user's browser is still using an old version.\n // If this happens, the old version in the user's browser would have an outdated\n // URL to the lazy module.\n // In that case, we want to attempt one window refresh to get the latest.\n if (isModuleNotFoundError(error)) {\n // We don't want an error thrown from preload in this case, because\n // there's nothing we want to do about module not found during preload.\n // Record the error, recover the promise with a null return,\n // and we will attempt module not found resolution during the render path.\n\n if (\n error instanceof Error &&\n typeof window !== 'undefined' &&\n typeof sessionStorage !== 'undefined'\n ) {\n // Again, we want to reload one time on module not found error and not enter\n // a reload loop if there is some other issue besides an old deploy.\n // That's why we store our reload attempt in sessionStorage.\n // Use error.message as key because it contains the module path that failed.\n const storageKey = `tanstack_router_reload:${error.message}`\n if (!sessionStorage.getItem(storageKey)) {\n sessionStorage.setItem(storageKey, '1')\n window.location.reload()\n\n // Return empty component while we wait for window to reload\n return {\n default: () => null,\n }\n }\n }\n }\n\n // Otherwise, just throw the error\n throw error\n }\n\n if (!comp) {\n const compResource = createMemo(load, {\n initialValue: comp,\n ssrLoadFrom: 'initial',\n })\n return <Dynamic component={compResource()} {...props} />\n }\n\n return <Dynamic component={comp} {...props} />\n }\n\n ;(lazyComp as any).preload = load\n\n return lazyComp as any\n}\n"],"names":["lazyRouteComponent","importer","exportName","loadPromise","comp","error","load","then","res","undefined","catch","err","lazyComp","Lazy","props","isModuleNotFoundError","Error","window","sessionStorage","storageKey","message","getItem","setItem","location","reload","default","compResource","createMemo","initialValue","ssrLoadFrom","_$createComponent","Dynamic","_$mergeProps","component","preload"],"mappings":";;;;;AAKO,SAASA,mBAIdC,UACAC,YAGQ;AACR,MAAIC;AACJ,MAAIC;AACJ,MAAIC;AAEJ,QAAMC,OAAOA,MAAM;AACjB,QAAI,CAACH,aAAa;AAChBA,oBAAcF,SAAAA,EACXM,KAAMC,CAAAA,QAAQ;AACbL,sBAAcM;AACdL,eAAOI,IAAIN,cAAc,SAAS;AAClC,eAAOE;AAAAA,MACT,CAAC,EACAM,MAAOC,CAAAA,QAAQ;AACdN,gBAAQM;AAAAA,MACV,CAAC;AAAA,IACL;AAEA,WAAOR;AAAAA,EACT;AAEA,QAAMS,WAAW,SAASC,KAAKC,OAAY;AAGzC,QAAIT,OAAO;AAMT,UAAIU,WAAAA,sBAAsBV,KAAK,GAAG;AAMhC,YACEA,iBAAiBW,SACjB,OAAOC,WAAW,eAClB,OAAOC,mBAAmB,aAC1B;AAKA,gBAAMC,aAAa,0BAA0Bd,MAAMe,OAAO;AAC1D,cAAI,CAACF,eAAeG,QAAQF,UAAU,GAAG;AACvCD,2BAAeI,QAAQH,YAAY,GAAG;AACtCF,mBAAOM,SAASC,OAAAA;AAGhB,mBAAO;AAAA,cACLC,SAASA,MAAM;AAAA,YAAA;AAAA,UAEnB;AAAA,QACF;AAAA,MACF;AAGA,YAAMpB;AAAAA,IACR;AAEA,QAAI,CAACD,MAAM;AACT,YAAMsB,eAAeC,MAAAA,WAAWrB,MAAM;AAAA,QACpCsB,cAAcxB;AAAAA,QACdyB,aAAa;AAAA,MAAA,CACd;AACD,aAAAC,QAAAA,gBAAQC,QAAAA,SAAOC,mBAAA;AAAA,QAAA,IAACC,YAAS;AAAA,iBAAEP,aAAAA;AAAAA,QAAc;AAAA,MAAA,GAAMZ,KAAK,CAAA;AAAA,IACtD;AAEA,WAAAgB,QAAAA,gBAAQC,QAAAA,SAAOC,mBAAA;AAAA,MAACC,WAAW7B;AAAAA,IAAAA,GAAUU,KAAK,CAAA;AAAA,EAC5C;AAEEF,WAAiBsB,UAAU5B;AAE7B,SAAOM;AACT;;"}
package/dist/cjs/link.cjs CHANGED
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Solid$1 = require("solid-js/web");
3
+ const Solid$1 = require("@solidjs/web");
4
4
  const Solid = require("solid-js");
5
- const refs = require("@solid-primitives/refs");
6
5
  const routerCore = require("@tanstack/router-core");
7
6
  const isServer = require("@tanstack/router-core/isServer");
8
7
  const useRouterState = require("./useRouterState.cjs");
@@ -27,6 +26,18 @@ function _interopNamespaceDefault(e) {
27
26
  }
28
27
  const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid);
29
28
  var _tmpl$ = /* @__PURE__ */ Solid$1.template(`<svg><a>`);
29
+ function mergeRefs(...refs) {
30
+ return (el) => {
31
+ for (const ref of refs) {
32
+ if (typeof ref === "function") {
33
+ ref(el);
34
+ }
35
+ }
36
+ };
37
+ }
38
+ function splitProps(props, keys) {
39
+ return [props, Solid__namespace.omit(props, ...keys)];
40
+ }
30
41
  const timeoutMap = /* @__PURE__ */ new WeakMap();
31
42
  function useLinkProps(options) {
32
43
  const router = useRouter.useRouter();
@@ -34,13 +45,13 @@ function useLinkProps(options) {
34
45
  const shouldHydrateHash = !isServer.isServer && !!router.options.ssr;
35
46
  const hasHydrated = ClientOnly.useHydrated();
36
47
  let hasRenderFetched = false;
37
- const [local, rest] = Solid__namespace.splitProps(Solid__namespace.mergeProps({
48
+ const [local, rest] = splitProps(Solid__namespace.merge({
38
49
  activeProps: () => ({
39
50
  class: "active"
40
51
  }),
41
52
  inactiveProps: () => ({})
42
53
  }, options), ["activeProps", "inactiveProps", "activeOptions", "to", "preload", "preloadDelay", "hashScrollIntoView", "replace", "startTransition", "resetScroll", "viewTransition", "target", "disabled", "style", "class", "onClick", "onBlur", "onFocus", "onMouseEnter", "onMouseLeave", "onMouseOver", "onMouseOut", "onTouchStart", "ignoreBlocker"]);
43
- const [_, propsSafeToSpread] = Solid__namespace.splitProps(rest, ["params", "search", "hash", "state", "mask", "reloadDocument", "unsafeRelative"]);
54
+ const [_, propsSafeToSpread] = splitProps(rest, ["params", "search", "hash", "state", "mask", "reloadDocument", "unsafeRelative"]);
44
55
  const currentLocation = useRouterState.useRouterState({
45
56
  select: (s) => s.location
46
57
  });
@@ -57,10 +68,11 @@ function useLinkProps(options) {
57
68
  });
58
69
  const from = options.from;
59
70
  const _options = () => {
60
- return {
71
+ const result = {
61
72
  ...options,
62
73
  from
63
74
  };
75
+ return result;
64
76
  };
65
77
  const next = Solid__namespace.createMemo(() => {
66
78
  buildLocationKey();
@@ -156,26 +168,31 @@ function useLinkProps(options) {
156
168
  doPreload();
157
169
  }
158
170
  };
159
- const [ref, setRef] = Solid__namespace.createSignal(null);
171
+ const [ref, setRefSignal] = Solid__namespace.createSignal(null);
172
+ const setRef = (el) => {
173
+ Solid__namespace.runWithOwner(null, () => {
174
+ setRefSignal(el);
175
+ });
176
+ };
160
177
  utils.useIntersectionObserver(ref, preloadViewportIoCallback, {
161
178
  rootMargin: "100px"
162
179
  }, {
163
- disabled: !!local.disabled || !(preload() === "viewport")
180
+ disabled: !!local.disabled || !(Solid__namespace.untrack(preload) === "viewport")
164
181
  });
165
- Solid__namespace.createEffect(() => {
182
+ Solid__namespace.createEffect(preload, (preloadValue) => {
166
183
  if (hasRenderFetched) {
167
184
  return;
168
185
  }
169
- if (!local.disabled && preload() === "render") {
186
+ if (!local.disabled && preloadValue === "render") {
170
187
  doPreload();
171
188
  hasRenderFetched = true;
172
189
  }
173
190
  });
174
- if (externalLink()) {
175
- return Solid__namespace.mergeProps(propsSafeToSpread, {
176
- ref: refs.mergeRefs(setRef, _options().ref),
191
+ if (Solid__namespace.untrack(externalLink)) {
192
+ return Solid__namespace.merge(propsSafeToSpread, {
193
+ // ref: mergeRefs(setRef, _options().ref),
177
194
  href: externalLink()
178
- }, Solid__namespace.splitProps(local, ["target", "disabled", "style", "class", "onClick", "onBlur", "onFocus", "onMouseEnter", "onMouseLeave", "onMouseOut", "onMouseOver", "onTouchStart"])[0]);
195
+ }, splitProps(local, ["target", "disabled", "style", "class", "onClick", "onBlur", "onFocus", "onMouseEnter", "onMouseLeave", "onMouseOut", "onMouseOver", "onTouchStart"])[0]);
179
196
  }
180
197
  const handleClick = (e) => {
181
198
  const elementTarget = e.currentTarget.getAttribute("target");
@@ -249,10 +266,10 @@ function useLinkProps(options) {
249
266
  ...resolvedActiveProps().style,
250
267
  ...resolvedInactiveProps().style
251
268
  });
252
- return Solid__namespace.mergeProps(propsSafeToSpread, resolvedActiveProps, resolvedInactiveProps, () => {
269
+ return Solid__namespace.merge(propsSafeToSpread, resolvedActiveProps, resolvedInactiveProps, () => {
253
270
  return {
254
271
  href: hrefOption()?.href,
255
- ref: refs.mergeRefs(setRef, _options().ref),
272
+ ref: mergeRefs(setRef, _options().ref),
256
273
  onClick: composeEventHandlers([local.onClick, handleClick]),
257
274
  onBlur: composeEventHandlers([local.onBlur, handleLeave]),
258
275
  onFocus: composeEventHandlers([local.onFocus, enqueueIntentPreload]),
@@ -277,7 +294,7 @@ function useLinkProps(options) {
277
294
  })(),
278
295
  ...local.disabled && {
279
296
  role: "link",
280
- "aria-disabled": true
297
+ "aria-disabled": "true"
281
298
  },
282
299
  ...isActive() && {
283
300
  "data-status": "active",
@@ -295,10 +312,11 @@ function createLink(Comp) {
295
312
  }));
296
313
  }
297
314
  const Link = (props) => {
298
- const [local, rest] = Solid__namespace.splitProps(props, ["_asChild", "children"]);
299
- const [_, linkProps] = Solid__namespace.splitProps(useLinkProps(rest), ["type"]);
300
- const children = Solid__namespace.createMemo(() => {
301
- const ch = local.children;
315
+ const [local, rest] = splitProps(props, ["_asChild", "children"]);
316
+ const [_, linkProps] = splitProps(useLinkProps(rest), ["type"]);
317
+ const resolvedChildren = Solid__namespace.children(() => local.children);
318
+ const children = () => {
319
+ const ch = resolvedChildren();
302
320
  if (typeof ch === "function") {
303
321
  return ch({
304
322
  get isActive() {
@@ -310,9 +328,9 @@ const Link = (props) => {
310
328
  });
311
329
  }
312
330
  return ch;
313
- });
331
+ };
314
332
  if (local._asChild === "svg") {
315
- const [_2, svgLinkProps] = Solid__namespace.splitProps(linkProps, ["class"]);
333
+ const [_2, svgLinkProps] = splitProps(linkProps, ["class"]);
316
334
  return (() => {
317
335
  var _el$ = _tmpl$(), _el$2 = _el$.firstChild;
318
336
  Solid$1.spread(_el$2, svgLinkProps, false, true);