@tanstack/solid-router 1.132.0-alpha.3 → 1.132.0-alpha.8

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 (71) hide show
  1. package/dist/cjs/ScriptOnce.cjs +2 -2
  2. package/dist/cjs/ScriptOnce.cjs.map +1 -1
  3. package/dist/cjs/fileRoute.cjs.map +1 -1
  4. package/dist/cjs/fileRoute.d.cts +2 -2
  5. package/dist/cjs/index.d.cts +1 -1
  6. package/dist/cjs/link.cjs +13 -9
  7. package/dist/cjs/link.cjs.map +1 -1
  8. package/dist/cjs/route.cjs.map +1 -1
  9. package/dist/cjs/route.d.cts +11 -11
  10. package/dist/cjs/router.cjs.map +1 -1
  11. package/dist/cjs/router.d.cts +2 -2
  12. package/dist/cjs/scroll-restoration.cjs +11 -3
  13. package/dist/cjs/scroll-restoration.cjs.map +1 -1
  14. package/dist/cjs/useActiveLocation.cjs +40 -0
  15. package/dist/cjs/useActiveLocation.cjs.map +1 -0
  16. package/dist/cjs/useActiveLocation.d.cts +8 -0
  17. package/dist/cjs/useBlocker.cjs +1 -1
  18. package/dist/cjs/useBlocker.cjs.map +1 -1
  19. package/dist/cjs/useNavigate.cjs +9 -10
  20. package/dist/cjs/useNavigate.cjs.map +1 -1
  21. package/dist/esm/ScriptOnce.js +2 -2
  22. package/dist/esm/ScriptOnce.js.map +1 -1
  23. package/dist/esm/fileRoute.d.ts +2 -2
  24. package/dist/esm/fileRoute.js.map +1 -1
  25. package/dist/esm/index.d.ts +1 -1
  26. package/dist/esm/link.js +13 -9
  27. package/dist/esm/link.js.map +1 -1
  28. package/dist/esm/route.d.ts +11 -11
  29. package/dist/esm/route.js.map +1 -1
  30. package/dist/esm/router.d.ts +2 -2
  31. package/dist/esm/router.js.map +1 -1
  32. package/dist/esm/scroll-restoration.js +11 -3
  33. package/dist/esm/scroll-restoration.js.map +1 -1
  34. package/dist/esm/useActiveLocation.d.ts +8 -0
  35. package/dist/esm/useActiveLocation.js +40 -0
  36. package/dist/esm/useActiveLocation.js.map +1 -0
  37. package/dist/esm/useBlocker.js +1 -1
  38. package/dist/esm/useBlocker.js.map +1 -1
  39. package/dist/esm/useNavigate.js +9 -10
  40. package/dist/esm/useNavigate.js.map +1 -1
  41. package/dist/source/ScriptOnce.jsx +1 -1
  42. package/dist/source/ScriptOnce.jsx.map +1 -1
  43. package/dist/source/fileRoute.d.ts +2 -2
  44. package/dist/source/fileRoute.js.map +1 -1
  45. package/dist/source/index.d.ts +1 -1
  46. package/dist/source/link.jsx +10 -11
  47. package/dist/source/link.jsx.map +1 -1
  48. package/dist/source/route.d.ts +11 -11
  49. package/dist/source/route.jsx.map +1 -1
  50. package/dist/source/router.d.ts +2 -2
  51. package/dist/source/router.js.map +1 -1
  52. package/dist/source/scroll-restoration.jsx +11 -3
  53. package/dist/source/scroll-restoration.jsx.map +1 -1
  54. package/dist/source/useActiveLocation.d.ts +8 -0
  55. package/dist/source/useActiveLocation.js +33 -0
  56. package/dist/source/useActiveLocation.js.map +1 -0
  57. package/dist/source/useBlocker.jsx +1 -1
  58. package/dist/source/useBlocker.jsx.map +1 -1
  59. package/dist/source/useNavigate.jsx +7 -10
  60. package/dist/source/useNavigate.jsx.map +1 -1
  61. package/package.json +2 -2
  62. package/src/ScriptOnce.tsx +2 -2
  63. package/src/fileRoute.ts +10 -2
  64. package/src/index.tsx +2 -2
  65. package/src/link.tsx +11 -11
  66. package/src/route.tsx +75 -17
  67. package/src/router.ts +2 -5
  68. package/src/scroll-restoration.tsx +11 -4
  69. package/src/useActiveLocation.ts +61 -0
  70. package/src/useBlocker.tsx +1 -1
  71. package/src/useNavigate.tsx +10 -11
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sources":["../../src/route.tsx"],"sourcesContent":["import {\n BaseRootRoute,\n BaseRoute,\n BaseRouteApi,\n notFound,\n} from '@tanstack/router-core'\nimport { Link } from './link'\nimport { useLoaderData } from './useLoaderData'\nimport { useLoaderDeps } from './useLoaderDeps'\nimport { useParams } from './useParams'\nimport { useSearch } from './useSearch'\nimport { useNavigate } from './useNavigate'\nimport { useMatch } from './useMatch'\nimport { useRouter } from './useRouter'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n ConstrainLiteral,\n ErrorComponentProps,\n NotFoundError,\n NotFoundRouteProps,\n RegisteredRouter,\n ResolveFullPath,\n ResolveId,\n ResolveParams,\n RootRoute as RootRouteCore,\n RootRouteId,\n RootRouteOptions,\n RouteConstraints,\n Route as RouteCore,\n RouteIds,\n RouteMask,\n RouteOptions,\n RouteTypesById,\n RouterCore,\n ToMaskOptions,\n UseNavigateResult,\n} from '@tanstack/router-core'\nimport type { UseLoaderDataRoute } from './useLoaderData'\nimport type { UseMatchRoute } from './useMatch'\nimport type { UseLoaderDepsRoute } from './useLoaderDeps'\nimport type { UseParamsRoute } from './useParams'\nimport type { UseSearchRoute } from './useSearch'\nimport type * as Solid from 'solid-js'\nimport type { UseRouteContextRoute } from './useRouteContext'\nimport type { LinkComponentRoute } from './link'\n\ndeclare module '@tanstack/router-core' {\n export interface UpdatableRouteOptionsExtensions {\n component?: RouteComponent\n errorComponent?: false | null | undefined | ErrorRouteComponent\n notFoundComponent?: NotFoundRouteComponent\n pendingComponent?: RouteComponent\n }\n\n export interface RootRouteOptionsExtensions {\n shellComponent?: ({\n children,\n }: {\n children: Solid.JSX.Element\n }) => Solid.JSX.Element\n }\n\n export interface RouteExtensions<\n in out TId extends string,\n in out TFullPath extends string,\n > {\n useMatch: UseMatchRoute<TId>\n useRouteContext: UseRouteContextRoute<TId>\n useSearch: UseSearchRoute<TId>\n useParams: UseParamsRoute<TId>\n useLoaderDeps: UseLoaderDepsRoute<TId>\n useLoaderData: UseLoaderDataRoute<TId>\n useNavigate: () => UseNavigateResult<TFullPath>\n Link: LinkComponentRoute<TFullPath>\n }\n}\n\nexport function getRouteApi<\n const TId,\n TRouter extends AnyRouter = RegisteredRouter,\n>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {\n return new RouteApi<TId, TRouter>({ id })\n}\n\nexport class RouteApi<\n TId,\n TRouter extends AnyRouter = RegisteredRouter,\n> extends BaseRouteApi<TId, TRouter> {\n /**\n * @deprecated Use the `getRouteApi` function instead.\n */\n constructor({ id }: { id: TId }) {\n super({ id })\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts) => {\n return useMatch({\n from: this.id as any,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id, strict: false } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id, strict: false } as any)\n }\n\n useNavigate = (): UseNavigateResult<\n RouteTypesById<TRouter, TId>['fullPath']\n > => {\n const router = useRouter()\n return useNavigate({ from: router.routesById[this.id as string].fullPath })\n }\n\n notFound = (opts?: NotFoundError) => {\n return notFound({ routeId: this.id as string, ...opts })\n }\n\n Link: LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']> = ((\n props,\n ) => {\n const router = useRouter()\n const fullPath = router.routesById[this.id as string].fullPath\n return <Link from={fullPath as never} {...props} />\n }) as LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']>\n}\n\nexport class Route<\n in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n in out TPath extends RouteConstraints['TPath'] = '/',\n in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n in out TCustomId extends RouteConstraints['TCustomId'] = string,\n in out TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n in out TSearchValidator = undefined,\n in out TParams = ResolveParams<TPath>,\n in out TRouterContext = AnyContext,\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n >\n extends BaseRoute<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n implements\n RouteCore<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n{\n /**\n * @deprecated Use the `createRoute` function instead.\n */\n constructor(\n options?: RouteOptions<\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts?) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<TFullPath> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<TFullPath> = ((props) => {\n return <Link from={this.fullPath} {...props} />\n }) as LinkComponentRoute<TFullPath>\n}\n\nexport function createRoute<\n TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n TPath extends RouteConstraints['TPath'] = '/',\n TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n TCustomId extends RouteConstraints['TCustomId'] = string,\n TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n TSearchValidator = undefined,\n TParams = ResolveParams<TPath>,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n>(\n options: RouteOptions<\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n): Route<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown\n> {\n return new Route<\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown\n >(options)\n}\n\nexport type AnyRootRoute = RootRoute<any, any, any, any, any, any, any, any>\n\nexport function createRootRouteWithContext<TRouterContext extends {}>() {\n return <\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n >(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n ) => {\n return createRootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >(options as any)\n }\n}\n\n/**\n * @deprecated Use the `createRootRouteWithContext` function instead.\n */\nexport const rootRouteWithContext = createRootRouteWithContext\n\nexport class RootRoute<\n in out TSearchValidator = undefined,\n in out TRouterContext = {},\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n >\n extends BaseRootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n implements\n RootRouteCore<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes\n >\n{\n /**\n * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n */\n constructor(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<RootRouteId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<RootRouteId> = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<RootRouteId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<RootRouteId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<RootRouteId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<RootRouteId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<'/'> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<'/'> = ((props) => {\n return <Link from={this.fullPath} {...(props as any)} />\n }) as LinkComponentRoute<'/'>\n}\n\nexport function createRouteMask<\n TRouteTree extends AnyRoute,\n TFrom extends string,\n TTo extends string,\n>(\n opts: {\n routeTree: TRouteTree\n } & ToMaskOptions<RouterCore<TRouteTree, 'never', false>, TFrom, TTo>,\n): RouteMask<TRouteTree> {\n return opts as any\n}\n\nexport type SolidNode = Solid.JSX.Element\n\nexport interface DefaultRouteTypes<TProps> {\n component: (props: TProps) => any\n}\nexport interface RouteTypes<TProps> extends DefaultRouteTypes<TProps> {}\n\nexport type AsyncRouteComponent<TProps> = RouteTypes<TProps>['component'] & {\n preload?: () => Promise<void>\n}\n\nexport type RouteComponent = AsyncRouteComponent<{}>\n\nexport type ErrorRouteComponent = AsyncRouteComponent<ErrorComponentProps>\n\nexport type NotFoundRouteComponent = RouteTypes<NotFoundRouteProps>['component']\n\nexport class NotFoundRoute<\n TParentRoute extends AnyRootRoute,\n TRouterContext = AnyContext,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n> extends Route<\n TParentRoute,\n '/404',\n '/404',\n '404',\n '404',\n TSearchValidator,\n {},\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren\n> {\n constructor(\n options: Omit<\n RouteOptions<\n TParentRoute,\n string,\n string,\n string,\n string,\n TSearchValidator,\n {},\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn\n >,\n | 'caseSensitive'\n | 'parseParams'\n | 'stringifyParams'\n | 'path'\n | 'id'\n | 'params'\n >,\n ) {\n super({\n ...(options as any),\n id: '404',\n })\n }\n}\n\nexport function createRootRoute<\n TSearchValidator = undefined,\n TRouterContext = {},\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n>(\n options?: RootRouteOptions<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >,\n): RootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n unknown,\n unknown\n> {\n return new RootRoute<\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn\n >(options)\n}\n"],"names":["getRouteApi","id","RouteApi","BaseRouteApi","constructor","useMatch","opts","select","from","useRouteContext","d","context","useSearch","useParams","useLoaderDeps","strict","useLoaderData","useNavigate","router","useRouter","routesById","fullPath","notFound","routeId","Link","props","_$createComponent","_$mergeProps","Route","BaseRoute","options","_self$","createRoute","createRootRouteWithContext","createRootRoute","rootRouteWithContext","RootRoute","BaseRootRoute","_self$2","createRouteMask","NotFoundRoute"],"mappings":"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"}
1
+ {"version":3,"file":"route.js","sources":["../../src/route.tsx"],"sourcesContent":["import {\n BaseRootRoute,\n BaseRoute,\n BaseRouteApi,\n notFound,\n} from '@tanstack/router-core'\nimport { Link } from './link'\nimport { useLoaderData } from './useLoaderData'\nimport { useLoaderDeps } from './useLoaderDeps'\nimport { useParams } from './useParams'\nimport { useSearch } from './useSearch'\nimport { useNavigate } from './useNavigate'\nimport { useMatch } from './useMatch'\nimport { useRouter } from './useRouter'\nimport type {\n AnyContext,\n AnyRoute,\n AnyRouter,\n ConstrainLiteral,\n ErrorComponentProps,\n NotFoundError,\n NotFoundRouteProps,\n Register,\n RegisteredRouter,\n ResolveFullPath,\n ResolveId,\n ResolveParams,\n RootRoute as RootRouteCore,\n RootRouteId,\n RootRouteOptions,\n RouteConstraints,\n Route as RouteCore,\n RouteIds,\n RouteMask,\n RouteOptions,\n RouteTypesById,\n RouterCore,\n ToMaskOptions,\n UseNavigateResult,\n} from '@tanstack/router-core'\nimport type { UseLoaderDataRoute } from './useLoaderData'\nimport type { UseMatchRoute } from './useMatch'\nimport type { UseLoaderDepsRoute } from './useLoaderDeps'\nimport type { UseParamsRoute } from './useParams'\nimport type { UseSearchRoute } from './useSearch'\nimport type * as Solid from 'solid-js'\nimport type { UseRouteContextRoute } from './useRouteContext'\nimport type { LinkComponentRoute } from './link'\n\ndeclare module '@tanstack/router-core' {\n export interface UpdatableRouteOptionsExtensions {\n component?: RouteComponent\n errorComponent?: false | null | undefined | ErrorRouteComponent\n notFoundComponent?: NotFoundRouteComponent\n pendingComponent?: RouteComponent\n }\n\n export interface RootRouteOptionsExtensions {\n shellComponent?: ({\n children,\n }: {\n children: Solid.JSX.Element\n }) => Solid.JSX.Element\n }\n\n export interface RouteExtensions<\n in out TId extends string,\n in out TFullPath extends string,\n > {\n useMatch: UseMatchRoute<TId>\n useRouteContext: UseRouteContextRoute<TId>\n useSearch: UseSearchRoute<TId>\n useParams: UseParamsRoute<TId>\n useLoaderDeps: UseLoaderDepsRoute<TId>\n useLoaderData: UseLoaderDataRoute<TId>\n useNavigate: () => UseNavigateResult<TFullPath>\n Link: LinkComponentRoute<TFullPath>\n }\n}\n\nexport function getRouteApi<\n const TId,\n TRouter extends AnyRouter = RegisteredRouter,\n>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {\n return new RouteApi<TId, TRouter>({ id })\n}\n\nexport class RouteApi<\n TId,\n TRouter extends AnyRouter = RegisteredRouter,\n> extends BaseRouteApi<TId, TRouter> {\n /**\n * @deprecated Use the `getRouteApi` function instead.\n */\n constructor({ id }: { id: TId }) {\n super({ id })\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts) => {\n return useMatch({\n from: this.id as any,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id, strict: false } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id, strict: false } as any)\n }\n\n useNavigate = (): UseNavigateResult<\n RouteTypesById<TRouter, TId>['fullPath']\n > => {\n const router = useRouter()\n return useNavigate({ from: router.routesById[this.id as string].fullPath })\n }\n\n notFound = (opts?: NotFoundError) => {\n return notFound({ routeId: this.id as string, ...opts })\n }\n\n Link: LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']> = ((\n props,\n ) => {\n const router = useRouter()\n const fullPath = router.routesById[this.id as string].fullPath\n return <Link from={fullPath as never} {...props} />\n }) as LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']>\n}\n\nexport class Route<\n in out TRegister extends Register = Register,\n in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n in out TPath extends RouteConstraints['TPath'] = '/',\n in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n in out TCustomId extends RouteConstraints['TCustomId'] = string,\n in out TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n in out TSearchValidator = undefined,\n in out TParams = ResolveParams<TPath>,\n in out TRouterContext = AnyContext,\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n in out TSSR = unknown,\n >\n extends BaseRoute<\n TRegister,\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes,\n TSSR\n >\n implements\n RouteCore<\n TRegister,\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes,\n TSSR\n >\n{\n /**\n * @deprecated Use the `createRoute` function instead.\n */\n constructor(\n options?: RouteOptions<\n TRegister,\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TSSR\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<TId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<TId> = (opts?) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<TId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<TId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<TId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<TId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<TFullPath> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<TFullPath> = ((props) => {\n return <Link from={this.fullPath} {...props} />\n }) as LinkComponentRoute<TFullPath>\n}\n\nexport function createRoute<\n TRegister extends Register = Register,\n TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,\n TPath extends RouteConstraints['TPath'] = '/',\n TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<\n TParentRoute,\n TPath\n >,\n TCustomId extends RouteConstraints['TCustomId'] = string,\n TId extends RouteConstraints['TId'] = ResolveId<\n TParentRoute,\n TCustomId,\n TPath\n >,\n TSearchValidator = undefined,\n TParams = ResolveParams<TPath>,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n TSSR = unknown,\n>(\n options: RouteOptions<\n TRegister,\n TParentRoute,\n TId,\n TCustomId,\n TFullPath,\n TPath,\n TSearchValidator,\n TParams,\n TLoaderDeps,\n TLoaderFn,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TSSR\n >,\n): Route<\n TRegister,\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown,\n TSSR\n> {\n return new Route<\n TRegister,\n TParentRoute,\n TPath,\n TFullPath,\n TCustomId,\n TId,\n TSearchValidator,\n TParams,\n AnyContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n unknown,\n TSSR\n >(options)\n}\n\nexport type AnyRootRoute = RootRoute<\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any,\n any\n>\n\nexport function createRootRouteWithContext<TRouterContext extends {}>() {\n return <\n TRegister extends Register = Register,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TSSR = unknown,\n >(\n options?: RootRouteOptions<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TSSR\n >,\n ) => {\n return createRootRoute<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TSSR\n >(options as any)\n }\n}\n\n/**\n * @deprecated Use the `createRootRouteWithContext` function instead.\n */\nexport const rootRouteWithContext = createRootRouteWithContext\n\nexport class RootRoute<\n in out TRegister extends Register = Register,\n in out TSearchValidator = undefined,\n in out TRouterContext = {},\n in out TRouteContextFn = AnyContext,\n in out TBeforeLoadFn = AnyContext,\n in out TLoaderDeps extends Record<string, any> = {},\n in out TLoaderFn = undefined,\n in out TChildren = unknown,\n in out TFileRouteTypes = unknown,\n in out TSSR = unknown,\n >\n extends BaseRootRoute<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes,\n TSSR\n >\n implements\n RootRouteCore<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TFileRouteTypes,\n TSSR\n >\n{\n /**\n * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n */\n constructor(\n options?: RootRouteOptions<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TSSR\n >,\n ) {\n super(options)\n }\n\n useMatch: UseMatchRoute<RootRouteId> = (opts) => {\n return useMatch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useRouteContext: UseRouteContextRoute<RootRouteId> = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts?.select ? opts.select(d.context) : d.context),\n }) as any\n }\n\n useSearch: UseSearchRoute<RootRouteId> = (opts) => {\n return useSearch({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useParams: UseParamsRoute<RootRouteId> = (opts) => {\n return useParams({\n select: opts?.select,\n from: this.id,\n } as any) as any\n }\n\n useLoaderDeps: UseLoaderDepsRoute<RootRouteId> = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id } as any)\n }\n\n useLoaderData: UseLoaderDataRoute<RootRouteId> = (opts) => {\n return useLoaderData({ ...opts, from: this.id } as any)\n }\n\n useNavigate = (): UseNavigateResult<'/'> => {\n return useNavigate({ from: this.fullPath })\n }\n\n Link: LinkComponentRoute<'/'> = ((props) => {\n return <Link from={this.fullPath} {...(props as any)} />\n }) as LinkComponentRoute<'/'>\n}\n\nexport function createRouteMask<\n TRouteTree extends AnyRoute,\n TFrom extends string,\n TTo extends string,\n>(\n opts: {\n routeTree: TRouteTree\n } & ToMaskOptions<RouterCore<TRouteTree, 'never', false>, TFrom, TTo>,\n): RouteMask<TRouteTree> {\n return opts as any\n}\n\nexport type SolidNode = Solid.JSX.Element\n\nexport interface DefaultRouteTypes<TProps> {\n component: (props: TProps) => any\n}\nexport interface RouteTypes<TProps> extends DefaultRouteTypes<TProps> {}\n\nexport type AsyncRouteComponent<TProps> = RouteTypes<TProps>['component'] & {\n preload?: () => Promise<void>\n}\n\nexport type RouteComponent = AsyncRouteComponent<{}>\n\nexport type ErrorRouteComponent = AsyncRouteComponent<ErrorComponentProps>\n\nexport type NotFoundRouteComponent = RouteTypes<NotFoundRouteProps>['component']\n\nexport class NotFoundRoute<\n TRegister extends Register,\n TParentRoute extends AnyRootRoute,\n TRouterContext = AnyContext,\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TSearchValidator = undefined,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TChildren = unknown,\n TSSR = unknown,\n> extends Route<\n TRegister,\n TParentRoute,\n '/404',\n '/404',\n '404',\n '404',\n TSearchValidator,\n {},\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TChildren,\n TSSR\n> {\n constructor(\n options: Omit<\n RouteOptions<\n TRegister,\n TParentRoute,\n string,\n string,\n string,\n string,\n TSearchValidator,\n {},\n TLoaderDeps,\n TLoaderFn,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TSSR\n >,\n | 'caseSensitive'\n | 'parseParams'\n | 'stringifyParams'\n | 'path'\n | 'id'\n | 'params'\n >,\n ) {\n super({\n ...(options as any),\n id: '404',\n })\n }\n}\n\nexport function createRootRoute<\n TRegister extends Register = Register,\n TSearchValidator = undefined,\n TRouterContext = {},\n TRouteContextFn = AnyContext,\n TBeforeLoadFn = AnyContext,\n TLoaderDeps extends Record<string, any> = {},\n TLoaderFn = undefined,\n TSSR = unknown,\n>(\n options?: RootRouteOptions<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n TSSR\n >,\n): RootRoute<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n unknown,\n unknown,\n TSSR\n> {\n return new RootRoute<\n TRegister,\n TSearchValidator,\n TRouterContext,\n TRouteContextFn,\n TBeforeLoadFn,\n TLoaderDeps,\n TLoaderFn,\n unknown,\n unknown,\n TSSR\n >(options)\n}\n"],"names":["getRouteApi","id","RouteApi","BaseRouteApi","constructor","useMatch","opts","select","from","useRouteContext","d","context","useSearch","useParams","useLoaderDeps","strict","useLoaderData","useNavigate","router","useRouter","routesById","fullPath","notFound","routeId","Link","props","_$createComponent","_$mergeProps","Route","BaseRoute","options","_self$","createRoute","createRootRouteWithContext","createRootRoute","rootRouteWithContext","RootRoute","BaseRootRoute","_self$2","createRouteMask","NotFoundRoute"],"mappings":"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"}
@@ -64,6 +64,6 @@ declare module '@tanstack/router-core' {
64
64
  }
65
65
  }
66
66
  export declare const createRouter: CreateRouterFn;
67
- export declare class Router<in out TRouteTree extends AnyRoute, in out TTrailingSlashOption extends TrailingSlashOption = 'never', in out TDefaultStructuralSharingOption extends boolean = false, in out TRouterHistory extends RouterHistory = RouterHistory, in out TDehydrated extends Record<string, any> = Record<string, any>, in out TTransformerConfig = any> extends RouterCore<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated, TTransformerConfig> {
68
- constructor(options: RouterConstructorOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated, TTransformerConfig>);
67
+ export declare class Router<in out TRouteTree extends AnyRoute, in out TTrailingSlashOption extends TrailingSlashOption = 'never', in out TDefaultStructuralSharingOption extends boolean = false, in out TRouterHistory extends RouterHistory = RouterHistory, in out TDehydrated extends Record<string, any> = Record<string, any>> extends RouterCore<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated> {
68
+ constructor(options: RouterConstructorOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated>);
69
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sources":["../../src/router.ts"],"sourcesContent":["import { RouterCore } from '@tanstack/router-core'\nimport { createFileRoute, createLazyFileRoute } from './fileRoute'\nimport type { RouterHistory } from '@tanstack/history'\nimport type {\n AnyRoute,\n CreateRouterFn,\n RouterConstructorOptions,\n TrailingSlashOption,\n} from '@tanstack/router-core'\nimport type {\n ErrorRouteComponent,\n NotFoundRouteComponent,\n RouteComponent,\n} from './route'\nimport type { JSX } from 'solid-js'\n\ndeclare module '@tanstack/router-core' {\n export interface RouterOptionsExtensions {\n /**\n * The default `component` a route should use if no component is provided.\n *\n * @default Outlet\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultcomponent-property)\n */\n defaultComponent?: RouteComponent\n /**\n * The default `errorComponent` a route should use if no error component is provided.\n *\n * @default ErrorComponent\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaulterrorcomponent-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/data-loading#handling-errors-with-routeoptionserrorcomponent)\n */\n defaultErrorComponent?: ErrorRouteComponent\n /**\n * The default `pendingComponent` a route should use if no pending component is provided.\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultpendingcomponent-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/data-loading#showing-a-pending-component)\n */\n defaultPendingComponent?: RouteComponent\n /**\n * The default `notFoundComponent` a route should use if no notFound component is provided.\n *\n * @default NotFound\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultnotfoundcomponent-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/not-found-errors#default-router-wide-not-found-handling)\n */\n defaultNotFoundComponent?: NotFoundRouteComponent\n /**\n * A component that will be used to wrap the entire router.\n *\n * This is useful for providing a context to the entire router.\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#wrap-property)\n */\n Wrap?: (props: { children: any }) => JSX.Element\n /**\n * A component that will be used to wrap the inner contents of the router.\n *\n * This is useful for providing a context to the inner contents of the router where you also need access to the router context and hooks.\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#innerwrap-property)\n */\n InnerWrap?: (props: { children: any }) => JSX.Element\n\n /**\n * The default `onCatch` handler for errors caught by the Router ErrorBoundary\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#defaultoncatch-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/react/guide/data-loading#handling-errors-with-routeoptionsoncatch)\n */\n defaultOnCatch?: (error: Error) => void\n }\n}\n\nexport const createRouter: CreateRouterFn = (options) => {\n return new Router(options)\n}\n\nexport class Router<\n in out TRouteTree extends AnyRoute,\n in out TTrailingSlashOption extends TrailingSlashOption = 'never',\n in out TDefaultStructuralSharingOption extends boolean = false,\n in out TRouterHistory extends RouterHistory = RouterHistory,\n in out TDehydrated extends Record<string, any> = Record<string, any>,\n in out TTransformerConfig = any,\n> extends RouterCore<\n TRouteTree,\n TTrailingSlashOption,\n TDefaultStructuralSharingOption,\n TRouterHistory,\n TDehydrated,\n TTransformerConfig\n> {\n constructor(\n options: RouterConstructorOptions<\n TRouteTree,\n TTrailingSlashOption,\n TDefaultStructuralSharingOption,\n TRouterHistory,\n TDehydrated,\n TTransformerConfig\n >,\n ) {\n super(options)\n }\n}\n\nif (typeof globalThis !== 'undefined') {\n ;(globalThis as any).createFileRoute = createFileRoute\n ;(globalThis as any).createLazyFileRoute = createLazyFileRoute\n} else if (typeof window !== 'undefined') {\n ;(window as any).createFileRoute = createFileRoute\n ;(window as any).createLazyFileRoute = createLazyFileRoute\n}\n"],"names":[],"mappings":";;AA2EO,MAAM,eAA+B,CAAC,YAAY;AACvD,SAAO,IAAI,OAAO,OAAO;AAC3B;AAEO,MAAM,eAOH,WAOR;AAAA,EACA,YACE,SAQA;AACA,UAAM,OAAO;AAAA,EACf;AACF;AAEA,IAAI,OAAO,eAAe,aAAa;AACnC,aAAmB,kBAAkB;AACrC,aAAmB,sBAAsB;AAC7C,WAAW,OAAO,WAAW,aAAa;AACtC,SAAe,kBAAkB;AACjC,SAAe,sBAAsB;AACzC;"}
1
+ {"version":3,"file":"router.js","sources":["../../src/router.ts"],"sourcesContent":["import { RouterCore } from '@tanstack/router-core'\nimport { createFileRoute, createLazyFileRoute } from './fileRoute'\nimport type { RouterHistory } from '@tanstack/history'\nimport type {\n AnyRoute,\n CreateRouterFn,\n RouterConstructorOptions,\n TrailingSlashOption,\n} from '@tanstack/router-core'\nimport type {\n ErrorRouteComponent,\n NotFoundRouteComponent,\n RouteComponent,\n} from './route'\nimport type { JSX } from 'solid-js'\n\ndeclare module '@tanstack/router-core' {\n export interface RouterOptionsExtensions {\n /**\n * The default `component` a route should use if no component is provided.\n *\n * @default Outlet\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultcomponent-property)\n */\n defaultComponent?: RouteComponent\n /**\n * The default `errorComponent` a route should use if no error component is provided.\n *\n * @default ErrorComponent\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaulterrorcomponent-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/data-loading#handling-errors-with-routeoptionserrorcomponent)\n */\n defaultErrorComponent?: ErrorRouteComponent\n /**\n * The default `pendingComponent` a route should use if no pending component is provided.\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultpendingcomponent-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/data-loading#showing-a-pending-component)\n */\n defaultPendingComponent?: RouteComponent\n /**\n * The default `notFoundComponent` a route should use if no notFound component is provided.\n *\n * @default NotFound\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#defaultnotfoundcomponent-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/solid/guide/not-found-errors#default-router-wide-not-found-handling)\n */\n defaultNotFoundComponent?: NotFoundRouteComponent\n /**\n * A component that will be used to wrap the entire router.\n *\n * This is useful for providing a context to the entire router.\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#wrap-property)\n */\n Wrap?: (props: { children: any }) => JSX.Element\n /**\n * A component that will be used to wrap the inner contents of the router.\n *\n * This is useful for providing a context to the inner contents of the router where you also need access to the router context and hooks.\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/solid/api/router/RouterOptionsType#innerwrap-property)\n */\n InnerWrap?: (props: { children: any }) => JSX.Element\n\n /**\n * The default `onCatch` handler for errors caught by the Router ErrorBoundary\n *\n * @link [API Docs](https://tanstack.com/router/latest/docs/framework/react/api/router/RouterOptionsType#defaultoncatch-property)\n * @link [Guide](https://tanstack.com/router/latest/docs/framework/react/guide/data-loading#handling-errors-with-routeoptionsoncatch)\n */\n defaultOnCatch?: (error: Error) => void\n }\n}\n\nexport const createRouter: CreateRouterFn = (options) => {\n return new Router(options)\n}\n\nexport class Router<\n in out TRouteTree extends AnyRoute,\n in out TTrailingSlashOption extends TrailingSlashOption = 'never',\n in out TDefaultStructuralSharingOption extends boolean = false,\n in out TRouterHistory extends RouterHistory = RouterHistory,\n in out TDehydrated extends Record<string, any> = Record<string, any>,\n> extends RouterCore<\n TRouteTree,\n TTrailingSlashOption,\n TDefaultStructuralSharingOption,\n TRouterHistory,\n TDehydrated\n> {\n constructor(\n options: RouterConstructorOptions<\n TRouteTree,\n TTrailingSlashOption,\n TDefaultStructuralSharingOption,\n TRouterHistory,\n TDehydrated\n >,\n ) {\n super(options)\n }\n}\n\nif (typeof globalThis !== 'undefined') {\n ;(globalThis as any).createFileRoute = createFileRoute\n ;(globalThis as any).createLazyFileRoute = createLazyFileRoute\n} else if (typeof window !== 'undefined') {\n ;(window as any).createFileRoute = createFileRoute\n ;(window as any).createLazyFileRoute = createLazyFileRoute\n}\n"],"names":[],"mappings":";;AA2EO,MAAM,eAA+B,CAAC,YAAY;AACvD,SAAO,IAAI,OAAO,OAAO;AAC3B;AAEO,MAAM,eAMH,WAMR;AAAA,EACA,YACE,SAOA;AACA,UAAM,OAAO;AAAA,EACf;AACF;AAEA,IAAI,OAAO,eAAe,aAAa;AACnC,aAAmB,kBAAkB;AACrC,aAAmB,sBAAsB;AAC7C,WAAW,OAAO,WAAW,aAAa;AACtC,SAAe,kBAAkB;AACjC,SAAe,sBAAsB;AACzC;"}
@@ -4,12 +4,20 @@ import { useRouter } from "./useRouter.js";
4
4
  import { ScriptOnce } from "./ScriptOnce.js";
5
5
  function ScrollRestoration() {
6
6
  const router = useRouter();
7
- const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;
8
- const userKey = getKey(router.latestLocation);
9
- const resolvedKey = userKey !== defaultGetScrollRestorationKey(router.latestLocation) ? userKey : void 0;
10
7
  if (!router.isScrollRestoring || !router.isServer) {
11
8
  return null;
12
9
  }
10
+ if (typeof router.options.scrollRestoration === "function") {
11
+ const shouldRestore = router.options.scrollRestoration({
12
+ location: router.latestLocation
13
+ });
14
+ if (!shouldRestore) {
15
+ return null;
16
+ }
17
+ }
18
+ const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;
19
+ const userKey = getKey(router.latestLocation);
20
+ const resolvedKey = userKey !== defaultGetScrollRestorationKey(router.latestLocation) ? userKey : void 0;
13
21
  const restoreScrollOptions = {
14
22
  storageKey,
15
23
  shouldScrollRestoration: true
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-restoration.js","sources":["../../src/scroll-restoration.tsx"],"sourcesContent":["import {\n defaultGetScrollRestorationKey,\n restoreScroll,\n storageKey,\n} from '@tanstack/router-core'\nimport { useRouter } from './useRouter'\nimport { ScriptOnce } from './ScriptOnce'\n\nexport function ScrollRestoration() {\n const router = useRouter()\n const getKey =\n router.options.getScrollRestorationKey || defaultGetScrollRestorationKey\n const userKey = getKey(router.latestLocation)\n const resolvedKey =\n userKey !== defaultGetScrollRestorationKey(router.latestLocation)\n ? userKey\n : undefined\n\n if (!router.isScrollRestoring || !router.isServer) {\n return null\n }\n\n const restoreScrollOptions: Parameters<typeof restoreScroll>[0] = {\n storageKey,\n shouldScrollRestoration: true,\n }\n if (resolvedKey) {\n restoreScrollOptions.key = resolvedKey\n }\n\n return (\n <ScriptOnce\n children={`(${restoreScroll.toString()})(${JSON.stringify(restoreScrollOptions)})`}\n />\n )\n}\n"],"names":["ScrollRestoration","router","useRouter","getKey","options","getScrollRestorationKey","defaultGetScrollRestorationKey","userKey","latestLocation","resolvedKey","undefined","isScrollRestoring","isServer","restoreScrollOptions","storageKey","shouldScrollRestoration","key","_$createComponent","ScriptOnce","children","restoreScroll","toString","JSON","stringify"],"mappings":";;;;AAQO,SAASA,oBAAoB;AAClC,QAAMC,SAASC,UAAAA;AACf,QAAMC,SACJF,OAAOG,QAAQC,2BAA2BC;AAC5C,QAAMC,UAAUJ,OAAOF,OAAOO,cAAc;AAC5C,QAAMC,cACJF,YAAYD,+BAA+BL,OAAOO,cAAc,IAC5DD,UACAG;AAEN,MAAI,CAACT,OAAOU,qBAAqB,CAACV,OAAOW,UAAU;AACjD,WAAO;AAAA,EACT;AAEA,QAAMC,uBAA4D;AAAA,IAChEC;AAAAA,IACAC,yBAAyB;AAAA,EAAA;AAE3B,MAAIN,aAAa;AACfI,yBAAqBG,MAAMP;AAAAA,EAC7B;AAEA,SAAAQ,gBACGC,YAAU;AAAA,IAAA,IACTC,WAAQ;AAAA,aAAE,IAAIC,cAAcC,SAAAA,CAAU,KAAKC,KAAKC,UAAUV,oBAAoB,CAAC;AAAA,IAAG;AAAA,EAAA,CAAA;AAGxF;"}
1
+ {"version":3,"file":"scroll-restoration.js","sources":["../../src/scroll-restoration.tsx"],"sourcesContent":["import {\n defaultGetScrollRestorationKey,\n restoreScroll,\n storageKey,\n} from '@tanstack/router-core'\nimport { useRouter } from './useRouter'\nimport { ScriptOnce } from './ScriptOnce'\n\nexport function ScrollRestoration() {\n const router = useRouter()\n if (!router.isScrollRestoring || !router.isServer) {\n return null\n }\n if (typeof router.options.scrollRestoration === 'function') {\n const shouldRestore = router.options.scrollRestoration({\n location: router.latestLocation,\n })\n if (!shouldRestore) {\n return null\n }\n }\n const getKey =\n router.options.getScrollRestorationKey || defaultGetScrollRestorationKey\n const userKey = getKey(router.latestLocation)\n const resolvedKey =\n userKey !== defaultGetScrollRestorationKey(router.latestLocation)\n ? userKey\n : undefined\n\n const restoreScrollOptions: Parameters<typeof restoreScroll>[0] = {\n storageKey,\n shouldScrollRestoration: true,\n }\n if (resolvedKey) {\n restoreScrollOptions.key = resolvedKey\n }\n\n return (\n <ScriptOnce\n children={`(${restoreScroll.toString()})(${JSON.stringify(restoreScrollOptions)})`}\n />\n )\n}\n"],"names":["ScrollRestoration","router","useRouter","isScrollRestoring","isServer","options","scrollRestoration","shouldRestore","location","latestLocation","getKey","getScrollRestorationKey","defaultGetScrollRestorationKey","userKey","resolvedKey","undefined","restoreScrollOptions","storageKey","shouldScrollRestoration","key","_$createComponent","ScriptOnce","children","restoreScroll","toString","JSON","stringify"],"mappings":";;;;AAQO,SAASA,oBAAoB;AAClC,QAAMC,SAASC,UAAAA;AACf,MAAI,CAACD,OAAOE,qBAAqB,CAACF,OAAOG,UAAU;AACjD,WAAO;AAAA,EACT;AACA,MAAI,OAAOH,OAAOI,QAAQC,sBAAsB,YAAY;AAC1D,UAAMC,gBAAgBN,OAAOI,QAAQC,kBAAkB;AAAA,MACrDE,UAAUP,OAAOQ;AAAAA,IAAAA,CAClB;AACD,QAAI,CAACF,eAAe;AAClB,aAAO;AAAA,IACT;AAAA,EACF;AACA,QAAMG,SACJT,OAAOI,QAAQM,2BAA2BC;AAC5C,QAAMC,UAAUH,OAAOT,OAAOQ,cAAc;AAC5C,QAAMK,cACJD,YAAYD,+BAA+BX,OAAOQ,cAAc,IAC5DI,UACAE;AAEN,QAAMC,uBAA4D;AAAA,IAChEC;AAAAA,IACAC,yBAAyB;AAAA,EAAA;AAE3B,MAAIJ,aAAa;AACfE,yBAAqBG,MAAML;AAAAA,EAC7B;AAEA,SAAAM,gBACGC,YAAU;AAAA,IAAA,IACTC,WAAQ;AAAA,aAAE,IAAIC,cAAcC,SAAAA,CAAU,KAAKC,KAAKC,UAAUV,oBAAoB,CAAC;AAAA,IAAG;AAAA,EAAA,CAAA;AAGxF;"}
@@ -0,0 +1,8 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { ParsedLocation } from '@tanstack/router-core';
3
+ export type UseLocationResult = {
4
+ activeLocation: Accessor<ParsedLocation>;
5
+ getFromPath: (from?: string) => Accessor<string>;
6
+ setActiveLocation: (location?: ParsedLocation) => void;
7
+ };
8
+ export declare function useActiveLocation(location?: ParsedLocation): UseLocationResult;
@@ -0,0 +1,40 @@
1
+ import { last } from "@tanstack/router-core";
2
+ import { createSignal, createEffect, createMemo } from "solid-js";
3
+ import { useMatch } from "./useMatch.js";
4
+ import { useRouter } from "./useRouter.js";
5
+ import { useRouterState } from "./useRouterState.js";
6
+ function useActiveLocation(location) {
7
+ const router = useRouter();
8
+ const [activeLocation, setActiveLocation] = createSignal(
9
+ location ?? useRouterState({ select: (s) => s.location })()
10
+ );
11
+ const [customActiveLocation, setCustomActiveLocation] = createSignal(location);
12
+ createEffect(() => {
13
+ setActiveLocation(
14
+ customActiveLocation() ?? useRouterState({ select: (s) => s.location })()
15
+ );
16
+ });
17
+ const matchIndex = useMatch({
18
+ strict: false,
19
+ select: (match) => match.index
20
+ });
21
+ const getFromPath = (from) => createMemo(() => {
22
+ const activeLocationMatches = router.matchRoutes(
23
+ customActiveLocation() ?? activeLocation(),
24
+ {
25
+ _buildLocation: false
26
+ }
27
+ );
28
+ const activeLocationMatch = last(activeLocationMatches);
29
+ return from ?? activeLocationMatch?.fullPath ?? router.state.matches[matchIndex()].fullPath;
30
+ });
31
+ return {
32
+ activeLocation,
33
+ getFromPath,
34
+ setActiveLocation: setCustomActiveLocation
35
+ };
36
+ }
37
+ export {
38
+ useActiveLocation
39
+ };
40
+ //# sourceMappingURL=useActiveLocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActiveLocation.js","sources":["../../src/useActiveLocation.ts"],"sourcesContent":["import { last } from '@tanstack/router-core'\nimport { createEffect, createMemo, createSignal } from 'solid-js'\nimport { useMatch } from './useMatch'\nimport { useRouter } from './useRouter'\nimport { useRouterState } from './useRouterState'\nimport type { Accessor } from 'solid-js'\nimport type { ParsedLocation } from '@tanstack/router-core'\n\nexport type UseLocationResult = {\n activeLocation: Accessor<ParsedLocation>\n getFromPath: (from?: string) => Accessor<string>\n setActiveLocation: (location?: ParsedLocation) => void\n}\n\nexport function useActiveLocation(\n location?: ParsedLocation,\n): UseLocationResult {\n const router = useRouter()\n // we are not using a variable here for router state location since we need to only calculate that if the location is not passed in. It can result in unnecessary history actions if we do that.\n const [activeLocation, setActiveLocation] = createSignal<ParsedLocation>(\n location ?? useRouterState({ select: (s) => s.location })(),\n )\n const [customActiveLocation, setCustomActiveLocation] = createSignal<\n ParsedLocation | undefined\n >(location)\n\n createEffect(() => {\n setActiveLocation(\n customActiveLocation() ?? useRouterState({ select: (s) => s.location })(),\n )\n })\n\n const matchIndex = useMatch({\n strict: false,\n select: (match) => match.index,\n })\n\n const getFromPath = (from?: string) =>\n createMemo(() => {\n const activeLocationMatches = router.matchRoutes(\n customActiveLocation() ?? activeLocation(),\n {\n _buildLocation: false,\n },\n )\n\n const activeLocationMatch = last(activeLocationMatches)\n\n return (\n from ??\n activeLocationMatch?.fullPath ??\n router.state.matches[matchIndex()]!.fullPath\n )\n })\n\n return {\n activeLocation,\n getFromPath,\n setActiveLocation: setCustomActiveLocation,\n }\n}\n"],"names":[],"mappings":";;;;;AAcO,SAAS,kBACd,UACmB;AACnB,QAAM,SAAS,UAAA;AAEf,QAAM,CAAC,gBAAgB,iBAAiB,IAAI;AAAA,IAC1C,YAAY,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAA;AAAA,EAAE;AAE5D,QAAM,CAAC,sBAAsB,uBAAuB,IAAI,aAEtD,QAAQ;AAEV,eAAa,MAAM;AACjB;AAAA,MACE,qBAAA,KAA0B,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAA;AAAA,IAAE;AAAA,EAE5E,CAAC;AAED,QAAM,aAAa,SAAS;AAAA,IAC1B,QAAQ;AAAA,IACR,QAAQ,CAAC,UAAU,MAAM;AAAA,EAAA,CAC1B;AAED,QAAM,cAAc,CAAC,SACnB,WAAW,MAAM;AACf,UAAM,wBAAwB,OAAO;AAAA,MACnC,qBAAA,KAA0B,eAAA;AAAA,MAC1B;AAAA,QACE,gBAAgB;AAAA,MAAA;AAAA,IAClB;AAGF,UAAM,sBAAsB,KAAK,qBAAqB;AAEtD,WACE,QACA,qBAAqB,YACrB,OAAO,MAAM,QAAQ,WAAA,CAAY,EAAG;AAAA,EAExC,CAAC;AAEH,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,mBAAmB;AAAA,EAAA;AAEvB;"}
@@ -60,7 +60,7 @@ function useBlocker(opts, condition) {
60
60
  Solid.createEffect(() => {
61
61
  const blockerFnComposed = async (blockerFnArgs) => {
62
62
  function getLocation(location) {
63
- const parsedLocation = router.parseLocation(void 0, location);
63
+ const parsedLocation = router.parseLocation(location);
64
64
  const matchedRoutes = router.getMatchedRoutes(parsedLocation.pathname, void 0);
65
65
  if (matchedRoutes.foundRoute === void 0) {
66
66
  throw new Error(`No route found for location ${location.href}`);
@@ -1 +1 @@
1
- {"version":3,"file":"useBlocker.js","sources":["../../src/useBlocker.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { useRouter } from './useRouter'\nimport type {\n BlockerFnArgs,\n HistoryAction,\n HistoryLocation,\n} from '@tanstack/history'\nimport type { SolidNode } from './route'\nimport type {\n AnyRoute,\n AnyRouter,\n ParseRoute,\n RegisteredRouter,\n} from '@tanstack/router-core'\n\ninterface ShouldBlockFnLocation<\n out TRouteId,\n out TFullPath,\n out TAllParams,\n out TFullSearchSchema,\n> {\n routeId: TRouteId\n fullPath: TFullPath\n pathname: string\n params: TAllParams\n search: TFullSearchSchema\n}\n\ntype AnyShouldBlockFnLocation = ShouldBlockFnLocation<any, any, any, any>\ntype MakeShouldBlockFnLocationUnion<\n TRouter extends AnyRouter = RegisteredRouter,\n TRoute extends AnyRoute = ParseRoute<TRouter['routeTree']>,\n> = TRoute extends any\n ? ShouldBlockFnLocation<\n TRoute['id'],\n TRoute['fullPath'],\n TRoute['types']['allParams'],\n TRoute['types']['fullSearchSchema']\n >\n : never\n\ntype BlockerResolver<TRouter extends AnyRouter = RegisteredRouter> =\n | {\n status: 'blocked'\n current: MakeShouldBlockFnLocationUnion<TRouter>\n next: MakeShouldBlockFnLocationUnion<TRouter>\n action: HistoryAction\n proceed: () => void\n reset: () => void\n }\n | {\n status: 'idle'\n current: undefined\n next: undefined\n action: undefined\n proceed: undefined\n reset: undefined\n }\n\ntype ShouldBlockFnArgs<TRouter extends AnyRouter = RegisteredRouter> = {\n current: MakeShouldBlockFnLocationUnion<TRouter>\n next: MakeShouldBlockFnLocationUnion<TRouter>\n action: HistoryAction\n}\n\nexport type ShouldBlockFn<TRouter extends AnyRouter = RegisteredRouter> = (\n args: ShouldBlockFnArgs<TRouter>,\n) => boolean | Promise<boolean>\nexport type UseBlockerOpts<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n> = {\n shouldBlockFn: ShouldBlockFn<TRouter>\n enableBeforeUnload?: boolean | (() => boolean)\n disabled?: boolean\n withResolver?: TWithResolver\n}\n\ntype LegacyBlockerFn = () => Promise<any> | any\ntype LegacyBlockerOpts = {\n blockerFn?: LegacyBlockerFn\n condition?: boolean | any\n}\n\nfunction _resolveBlockerOpts(\n opts?: UseBlockerOpts | LegacyBlockerOpts | LegacyBlockerFn,\n condition?: boolean | any,\n): UseBlockerOpts {\n if (opts === undefined) {\n return {\n shouldBlockFn: () => true,\n withResolver: false,\n }\n }\n\n if ('shouldBlockFn' in opts) {\n return opts\n }\n\n if (typeof opts === 'function') {\n const shouldBlock = Boolean(condition ?? true)\n\n const _customBlockerFn = async () => {\n if (shouldBlock) return await opts()\n return false\n }\n\n return {\n shouldBlockFn: _customBlockerFn,\n enableBeforeUnload: shouldBlock,\n withResolver: false,\n }\n }\n\n const shouldBlock = Solid.createMemo(() => Boolean(opts.condition ?? true))\n\n const _customBlockerFn = async () => {\n if (shouldBlock() && opts.blockerFn !== undefined) {\n return await opts.blockerFn()\n }\n return shouldBlock()\n }\n\n return {\n get shouldBlockFn() {\n return _customBlockerFn\n },\n get enableBeforeUnload() {\n return shouldBlock()\n },\n get withResolver() {\n return opts.blockerFn === undefined\n },\n }\n}\n\nexport function useBlocker<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = false,\n>(\n opts: UseBlockerOpts<TRouter, TWithResolver>,\n): TWithResolver extends true ? Solid.Accessor<BlockerResolver<TRouter>> : void\n\n/**\n * @deprecated Use the shouldBlockFn property instead\n */\nexport function useBlocker(\n blockerFnOrOpts?: LegacyBlockerOpts,\n): Solid.Accessor<BlockerResolver>\n\n/**\n * @deprecated Use the UseBlockerOpts object syntax instead\n */\nexport function useBlocker(\n blockerFn?: LegacyBlockerFn,\n condition?: boolean | any,\n): Solid.Accessor<BlockerResolver>\n\nexport function useBlocker(\n opts?: UseBlockerOpts | LegacyBlockerOpts | LegacyBlockerFn,\n condition?: boolean | any,\n): Solid.Accessor<BlockerResolver> | void {\n const props = Solid.mergeProps(\n {\n enableBeforeUnload: true,\n disabled: false,\n withResolver: false,\n },\n _resolveBlockerOpts(opts, condition),\n )\n\n const router = useRouter()\n\n const [resolver, setResolver] = Solid.createSignal<BlockerResolver>({\n status: 'idle',\n current: undefined,\n next: undefined,\n action: undefined,\n proceed: undefined,\n reset: undefined,\n })\n\n Solid.createEffect(() => {\n const blockerFnComposed = async (blockerFnArgs: BlockerFnArgs) => {\n function getLocation(\n location: HistoryLocation,\n ): AnyShouldBlockFnLocation {\n const parsedLocation = router.parseLocation(undefined, location)\n const matchedRoutes = router.getMatchedRoutes(\n parsedLocation.pathname,\n undefined,\n )\n if (matchedRoutes.foundRoute === undefined) {\n throw new Error(`No route found for location ${location.href}`)\n }\n return {\n routeId: matchedRoutes.foundRoute.id,\n fullPath: matchedRoutes.foundRoute.fullPath,\n pathname: parsedLocation.pathname,\n params: matchedRoutes.routeParams,\n search: parsedLocation.search,\n }\n }\n\n const current = getLocation(blockerFnArgs.currentLocation)\n const next = getLocation(blockerFnArgs.nextLocation)\n\n const shouldBlock = await props.shouldBlockFn({\n action: blockerFnArgs.action,\n current,\n next,\n })\n if (!props.withResolver) {\n return shouldBlock\n }\n\n if (!shouldBlock) {\n return false\n }\n\n const promise = new Promise<boolean>((resolve) => {\n setResolver({\n status: 'blocked',\n current,\n next,\n action: blockerFnArgs.action,\n proceed: () => resolve(false),\n reset: () => resolve(true),\n })\n })\n\n const canNavigateAsync = await promise\n setResolver({\n status: 'idle',\n current: undefined,\n next: undefined,\n action: undefined,\n proceed: undefined,\n reset: undefined,\n })\n\n return canNavigateAsync\n }\n\n const disposeBlock = props.disabled\n ? undefined\n : router.history.block({\n blockerFn: blockerFnComposed,\n enableBeforeUnload: props.enableBeforeUnload,\n })\n\n Solid.onCleanup(() => disposeBlock?.())\n })\n\n return resolver\n}\n\nconst _resolvePromptBlockerArgs = (\n props: PromptProps | LegacyPromptProps,\n): UseBlockerOpts => {\n if ('shouldBlockFn' in props) {\n return props\n }\n\n const shouldBlock = Solid.createMemo(() => Boolean(props.condition ?? true))\n\n const _customBlockerFn = async () => {\n if (shouldBlock() && props.blockerFn !== undefined) {\n return await props.blockerFn()\n }\n return shouldBlock\n }\n\n return {\n shouldBlockFn: _customBlockerFn,\n get enableBeforeUnload() {\n return shouldBlock()\n },\n get withResolver() {\n return props.blockerFn === undefined\n },\n }\n}\n\nexport function Block<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n>(opts: PromptProps<TRouter, TWithResolver>): SolidNode\n\n/**\n * @deprecated Use the UseBlockerOpts property instead\n */\nexport function Block(opts: LegacyPromptProps): SolidNode\n\nexport function Block(opts: PromptProps | LegacyPromptProps): SolidNode {\n const [propsWithChildren, rest] = Solid.splitProps(opts, ['children'])\n const args = _resolvePromptBlockerArgs(rest)\n\n const resolver = useBlocker(args)\n const children = Solid.createMemo(() => {\n const child = propsWithChildren.children\n if (resolver && typeof child === 'function') return child(resolver())\n return child\n })\n\n return <>{children()}</>\n}\n\ntype LegacyPromptProps = {\n blockerFn?: LegacyBlockerFn\n condition?: boolean | any\n children?: SolidNode | ((params: BlockerResolver) => SolidNode)\n}\n\ntype PromptProps<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n TParams = TWithResolver extends true ? BlockerResolver<TRouter> : void,\n> = UseBlockerOpts<TRouter, TWithResolver> & {\n children?: SolidNode | ((params: TParams) => SolidNode)\n}\n"],"names":["_resolveBlockerOpts","opts","condition","undefined","shouldBlockFn","withResolver","shouldBlock","Boolean","_customBlockerFn","enableBeforeUnload","Solid","createMemo","blockerFn","useBlocker","props","mergeProps","disabled","router","useRouter","resolver","setResolver","createSignal","status","current","next","action","proceed","reset","createEffect","blockerFnComposed","blockerFnArgs","getLocation","location","parsedLocation","parseLocation","matchedRoutes","getMatchedRoutes","pathname","foundRoute","Error","href","routeId","id","fullPath","params","routeParams","search","currentLocation","nextLocation","promise","Promise","resolve","canNavigateAsync","disposeBlock","history","block","onCleanup","_resolvePromptBlockerArgs","Block","propsWithChildren","rest","splitProps","args","children","child","_$memo"],"mappings":"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"}
1
+ {"version":3,"file":"useBlocker.js","sources":["../../src/useBlocker.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { useRouter } from './useRouter'\nimport type {\n BlockerFnArgs,\n HistoryAction,\n HistoryLocation,\n} from '@tanstack/history'\nimport type { SolidNode } from './route'\nimport type {\n AnyRoute,\n AnyRouter,\n ParseRoute,\n RegisteredRouter,\n} from '@tanstack/router-core'\n\ninterface ShouldBlockFnLocation<\n out TRouteId,\n out TFullPath,\n out TAllParams,\n out TFullSearchSchema,\n> {\n routeId: TRouteId\n fullPath: TFullPath\n pathname: string\n params: TAllParams\n search: TFullSearchSchema\n}\n\ntype AnyShouldBlockFnLocation = ShouldBlockFnLocation<any, any, any, any>\ntype MakeShouldBlockFnLocationUnion<\n TRouter extends AnyRouter = RegisteredRouter,\n TRoute extends AnyRoute = ParseRoute<TRouter['routeTree']>,\n> = TRoute extends any\n ? ShouldBlockFnLocation<\n TRoute['id'],\n TRoute['fullPath'],\n TRoute['types']['allParams'],\n TRoute['types']['fullSearchSchema']\n >\n : never\n\ntype BlockerResolver<TRouter extends AnyRouter = RegisteredRouter> =\n | {\n status: 'blocked'\n current: MakeShouldBlockFnLocationUnion<TRouter>\n next: MakeShouldBlockFnLocationUnion<TRouter>\n action: HistoryAction\n proceed: () => void\n reset: () => void\n }\n | {\n status: 'idle'\n current: undefined\n next: undefined\n action: undefined\n proceed: undefined\n reset: undefined\n }\n\ntype ShouldBlockFnArgs<TRouter extends AnyRouter = RegisteredRouter> = {\n current: MakeShouldBlockFnLocationUnion<TRouter>\n next: MakeShouldBlockFnLocationUnion<TRouter>\n action: HistoryAction\n}\n\nexport type ShouldBlockFn<TRouter extends AnyRouter = RegisteredRouter> = (\n args: ShouldBlockFnArgs<TRouter>,\n) => boolean | Promise<boolean>\nexport type UseBlockerOpts<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n> = {\n shouldBlockFn: ShouldBlockFn<TRouter>\n enableBeforeUnload?: boolean | (() => boolean)\n disabled?: boolean\n withResolver?: TWithResolver\n}\n\ntype LegacyBlockerFn = () => Promise<any> | any\ntype LegacyBlockerOpts = {\n blockerFn?: LegacyBlockerFn\n condition?: boolean | any\n}\n\nfunction _resolveBlockerOpts(\n opts?: UseBlockerOpts | LegacyBlockerOpts | LegacyBlockerFn,\n condition?: boolean | any,\n): UseBlockerOpts {\n if (opts === undefined) {\n return {\n shouldBlockFn: () => true,\n withResolver: false,\n }\n }\n\n if ('shouldBlockFn' in opts) {\n return opts\n }\n\n if (typeof opts === 'function') {\n const shouldBlock = Boolean(condition ?? true)\n\n const _customBlockerFn = async () => {\n if (shouldBlock) return await opts()\n return false\n }\n\n return {\n shouldBlockFn: _customBlockerFn,\n enableBeforeUnload: shouldBlock,\n withResolver: false,\n }\n }\n\n const shouldBlock = Solid.createMemo(() => Boolean(opts.condition ?? true))\n\n const _customBlockerFn = async () => {\n if (shouldBlock() && opts.blockerFn !== undefined) {\n return await opts.blockerFn()\n }\n return shouldBlock()\n }\n\n return {\n get shouldBlockFn() {\n return _customBlockerFn\n },\n get enableBeforeUnload() {\n return shouldBlock()\n },\n get withResolver() {\n return opts.blockerFn === undefined\n },\n }\n}\n\nexport function useBlocker<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = false,\n>(\n opts: UseBlockerOpts<TRouter, TWithResolver>,\n): TWithResolver extends true ? Solid.Accessor<BlockerResolver<TRouter>> : void\n\n/**\n * @deprecated Use the shouldBlockFn property instead\n */\nexport function useBlocker(\n blockerFnOrOpts?: LegacyBlockerOpts,\n): Solid.Accessor<BlockerResolver>\n\n/**\n * @deprecated Use the UseBlockerOpts object syntax instead\n */\nexport function useBlocker(\n blockerFn?: LegacyBlockerFn,\n condition?: boolean | any,\n): Solid.Accessor<BlockerResolver>\n\nexport function useBlocker(\n opts?: UseBlockerOpts | LegacyBlockerOpts | LegacyBlockerFn,\n condition?: boolean | any,\n): Solid.Accessor<BlockerResolver> | void {\n const props = Solid.mergeProps(\n {\n enableBeforeUnload: true,\n disabled: false,\n withResolver: false,\n },\n _resolveBlockerOpts(opts, condition),\n )\n\n const router = useRouter()\n\n const [resolver, setResolver] = Solid.createSignal<BlockerResolver>({\n status: 'idle',\n current: undefined,\n next: undefined,\n action: undefined,\n proceed: undefined,\n reset: undefined,\n })\n\n Solid.createEffect(() => {\n const blockerFnComposed = async (blockerFnArgs: BlockerFnArgs) => {\n function getLocation(\n location: HistoryLocation,\n ): AnyShouldBlockFnLocation {\n const parsedLocation = router.parseLocation(location)\n const matchedRoutes = router.getMatchedRoutes(\n parsedLocation.pathname,\n undefined,\n )\n if (matchedRoutes.foundRoute === undefined) {\n throw new Error(`No route found for location ${location.href}`)\n }\n return {\n routeId: matchedRoutes.foundRoute.id,\n fullPath: matchedRoutes.foundRoute.fullPath,\n pathname: parsedLocation.pathname,\n params: matchedRoutes.routeParams,\n search: parsedLocation.search,\n }\n }\n\n const current = getLocation(blockerFnArgs.currentLocation)\n const next = getLocation(blockerFnArgs.nextLocation)\n\n const shouldBlock = await props.shouldBlockFn({\n action: blockerFnArgs.action,\n current,\n next,\n })\n if (!props.withResolver) {\n return shouldBlock\n }\n\n if (!shouldBlock) {\n return false\n }\n\n const promise = new Promise<boolean>((resolve) => {\n setResolver({\n status: 'blocked',\n current,\n next,\n action: blockerFnArgs.action,\n proceed: () => resolve(false),\n reset: () => resolve(true),\n })\n })\n\n const canNavigateAsync = await promise\n setResolver({\n status: 'idle',\n current: undefined,\n next: undefined,\n action: undefined,\n proceed: undefined,\n reset: undefined,\n })\n\n return canNavigateAsync\n }\n\n const disposeBlock = props.disabled\n ? undefined\n : router.history.block({\n blockerFn: blockerFnComposed,\n enableBeforeUnload: props.enableBeforeUnload,\n })\n\n Solid.onCleanup(() => disposeBlock?.())\n })\n\n return resolver\n}\n\nconst _resolvePromptBlockerArgs = (\n props: PromptProps | LegacyPromptProps,\n): UseBlockerOpts => {\n if ('shouldBlockFn' in props) {\n return props\n }\n\n const shouldBlock = Solid.createMemo(() => Boolean(props.condition ?? true))\n\n const _customBlockerFn = async () => {\n if (shouldBlock() && props.blockerFn !== undefined) {\n return await props.blockerFn()\n }\n return shouldBlock\n }\n\n return {\n shouldBlockFn: _customBlockerFn,\n get enableBeforeUnload() {\n return shouldBlock()\n },\n get withResolver() {\n return props.blockerFn === undefined\n },\n }\n}\n\nexport function Block<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n>(opts: PromptProps<TRouter, TWithResolver>): SolidNode\n\n/**\n * @deprecated Use the UseBlockerOpts property instead\n */\nexport function Block(opts: LegacyPromptProps): SolidNode\n\nexport function Block(opts: PromptProps | LegacyPromptProps): SolidNode {\n const [propsWithChildren, rest] = Solid.splitProps(opts, ['children'])\n const args = _resolvePromptBlockerArgs(rest)\n\n const resolver = useBlocker(args)\n const children = Solid.createMemo(() => {\n const child = propsWithChildren.children\n if (resolver && typeof child === 'function') return child(resolver())\n return child\n })\n\n return <>{children()}</>\n}\n\ntype LegacyPromptProps = {\n blockerFn?: LegacyBlockerFn\n condition?: boolean | any\n children?: SolidNode | ((params: BlockerResolver) => SolidNode)\n}\n\ntype PromptProps<\n TRouter extends AnyRouter = RegisteredRouter,\n TWithResolver extends boolean = boolean,\n TParams = TWithResolver extends true ? BlockerResolver<TRouter> : void,\n> = UseBlockerOpts<TRouter, TWithResolver> & {\n children?: SolidNode | ((params: TParams) => SolidNode)\n}\n"],"names":["_resolveBlockerOpts","opts","condition","undefined","shouldBlockFn","withResolver","shouldBlock","Boolean","_customBlockerFn","enableBeforeUnload","Solid","createMemo","blockerFn","useBlocker","props","mergeProps","disabled","router","useRouter","resolver","setResolver","createSignal","status","current","next","action","proceed","reset","createEffect","blockerFnComposed","blockerFnArgs","getLocation","location","parsedLocation","parseLocation","matchedRoutes","getMatchedRoutes","pathname","foundRoute","Error","href","routeId","id","fullPath","params","routeParams","search","currentLocation","nextLocation","promise","Promise","resolve","canNavigateAsync","disposeBlock","history","block","onCleanup","_resolvePromptBlockerArgs","Block","propsWithChildren","rest","splitProps","args","children","child","_$memo"],"mappings":"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"}
@@ -1,19 +1,18 @@
1
1
  import * as Solid from "solid-js";
2
2
  import { useRouter } from "./useRouter.js";
3
- import { useMatch } from "./useMatch.js";
3
+ import { useActiveLocation } from "./useActiveLocation.js";
4
4
  function useNavigate(_defaultOpts) {
5
+ const router = useRouter();
5
6
  const {
6
- navigate,
7
- state
8
- } = useRouter();
9
- const matchIndex = useMatch({
10
- strict: false,
11
- select: (match) => match.index
12
- });
7
+ getFromPath,
8
+ setActiveLocation
9
+ } = useActiveLocation(router.latestLocation);
13
10
  return (options) => {
14
- return navigate({
11
+ setActiveLocation(router.latestLocation);
12
+ const from = getFromPath(options.from ?? _defaultOpts?.from);
13
+ return router.navigate({
15
14
  ...options,
16
- from: options.from ?? _defaultOpts?.from ?? state.matches[matchIndex()].fullPath
15
+ from: from()
17
16
  });
18
17
  };
19
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigate.js","sources":["../../src/useNavigate.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { useRouter } from './useRouter'\nimport { useMatch } from './useMatch'\nimport type {\n AnyRouter,\n FromPathOption,\n NavigateOptions,\n RegisteredRouter,\n UseNavigateResult,\n} from '@tanstack/router-core'\n\nexport function useNavigate<\n TRouter extends AnyRouter = RegisteredRouter,\n TDefaultFrom extends string = string,\n>(_defaultOpts?: {\n from?: FromPathOption<TRouter, TDefaultFrom>\n}): UseNavigateResult<TDefaultFrom> {\n const { navigate, state } = useRouter()\n\n const matchIndex = useMatch({\n strict: false,\n select: (match) => match.index,\n })\n\n return ((options: NavigateOptions) => {\n return navigate({\n ...options,\n from:\n options.from ??\n _defaultOpts?.from ??\n state.matches[matchIndex()]!.fullPath,\n })\n }) as UseNavigateResult<TDefaultFrom>\n}\n\nexport function Navigate<\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: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null {\n const { navigate } = useRouter()\n\n Solid.onMount(() => {\n navigate({\n ...props,\n })\n })\n\n return null\n}\n"],"names":["useNavigate","_defaultOpts","navigate","state","useRouter","matchIndex","useMatch","strict","select","match","index","options","from","matches","fullPath","Navigate","props","Solid","onMount"],"mappings":";;;AAWO,SAASA,YAGdC,cAEkC;AAClC,QAAM;AAAA,IAAEC;AAAAA,IAAUC;AAAAA,EAAAA,IAAUC,UAAAA;AAE5B,QAAMC,aAAaC,SAAS;AAAA,IAC1BC,QAAQ;AAAA,IACRC,QAASC,WAAUA,MAAMC;AAAAA,EAAAA,CAC1B;AAED,SAAQ,CAACC,YAA6B;AACpC,WAAOT,SAAS;AAAA,MACd,GAAGS;AAAAA,MACHC,MACED,QAAQC,QACRX,cAAcW,QACdT,MAAMU,QAAQR,WAAAA,CAAY,EAAGS;AAAAA,IAAAA,CAChC;AAAA,EACH;AACF;AAEO,SAASC,SAMdC,OAAuE;AACvE,QAAM;AAAA,IAAEd;AAAAA,EAAAA,IAAaE,UAAAA;AAErBa,QAAMC,QAAQ,MAAM;AAClBhB,aAAS;AAAA,MACP,GAAGc;AAAAA,IAAAA,CACJ;AAAA,EACH,CAAC;AAED,SAAO;AACT;"}
1
+ {"version":3,"file":"useNavigate.js","sources":["../../src/useNavigate.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { useRouter } from './useRouter'\nimport { useActiveLocation } from './useActiveLocation'\nimport type {\n AnyRouter,\n FromPathOption,\n NavigateOptions,\n RegisteredRouter,\n UseNavigateResult,\n} from '@tanstack/router-core'\n\nexport function useNavigate<\n TRouter extends AnyRouter = RegisteredRouter,\n TDefaultFrom extends string = string,\n>(_defaultOpts?: {\n from?: FromPathOption<TRouter, TDefaultFrom>\n}): UseNavigateResult<TDefaultFrom> {\n const router = useRouter()\n\n const { getFromPath, setActiveLocation } = useActiveLocation(\n router.latestLocation,\n )\n\n return ((options: NavigateOptions) => {\n setActiveLocation(router.latestLocation)\n const from = getFromPath(options.from ?? _defaultOpts?.from)\n\n return router.navigate({\n ...options,\n from: from(),\n })\n }) as UseNavigateResult<TDefaultFrom>\n}\n\nexport function Navigate<\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: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null {\n const { navigate } = useRouter()\n\n Solid.onMount(() => {\n navigate({\n ...props,\n })\n })\n\n return null\n}\n"],"names":["useNavigate","_defaultOpts","router","useRouter","getFromPath","setActiveLocation","useActiveLocation","latestLocation","options","from","navigate","Navigate","props","Solid","onMount"],"mappings":";;;AAWO,SAASA,YAGdC,cAEkC;AAClC,QAAMC,SAASC,UAAAA;AAEf,QAAM;AAAA,IAAEC;AAAAA,IAAaC;AAAAA,EAAAA,IAAsBC,kBACzCJ,OAAOK,cACT;AAEA,SAAQ,CAACC,YAA6B;AACpCH,sBAAkBH,OAAOK,cAAc;AACvC,UAAME,OAAOL,YAAYI,QAAQC,QAAQR,cAAcQ,IAAI;AAE3D,WAAOP,OAAOQ,SAAS;AAAA,MACrB,GAAGF;AAAAA,MACHC,MAAMA,KAAAA;AAAAA,IAAK,CACZ;AAAA,EACH;AACF;AAEO,SAASE,SAMdC,OAAuE;AACvE,QAAM;AAAA,IAAEF;AAAAA,EAAAA,IAAaP,UAAAA;AAErBU,QAAMC,QAAQ,MAAM;AAClBJ,aAAS;AAAA,MACP,GAAGE;AAAAA,IAAAA,CACJ;AAAA,EACH,CAAC;AAED,SAAO;AACT;"}
@@ -2,6 +2,6 @@ export function ScriptOnce({ children, }) {
2
2
  if (typeof document !== 'undefined') {
3
3
  return null;
4
4
  }
5
- return (<script class="tsr-once" innerHTML={[children].filter(Boolean).join('\n')}/>);
5
+ return (<script class="$tsr" innerHTML={[children].filter(Boolean).join('\n') + ';$_TSR.c()'}/>);
6
6
  }
7
7
  //# sourceMappingURL=ScriptOnce.jsx.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScriptOnce.jsx","sourceRoot":"","sources":["../../src/ScriptOnce.tsx"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,GAKT;IACC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,CAAC,MAAM,CACL,KAAK,CAAC,UAAU,CAChB,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EACjD,CACH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"ScriptOnce.jsx","sourceRoot":"","sources":["../../src/ScriptOnce.tsx"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,GAKT;IACC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,CAAC,MAAM,CACL,KAAK,CAAC,MAAM,CACZ,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,EAChE,CACH,CAAA;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { UseParamsRoute } from './useParams';
2
2
  import type { UseMatchRoute } from './useMatch';
3
3
  import type { UseSearchRoute } from './useSearch';
4
- import type { AnyContext, AnyRoute, AnyRouter, Constrain, ConstrainLiteral, FileBaseRouteOptions, FileRoutesByPath, LazyRouteOptions, RegisteredRouter, ResolveParams, Route, RouteById, RouteConstraints, RouteIds, RouteLoaderFn, UpdatableRouteOptions, UseNavigateResult } from '@tanstack/router-core';
4
+ import type { AnyContext, AnyRoute, AnyRouter, Constrain, ConstrainLiteral, FileBaseRouteOptions, FileRoutesByPath, LazyRouteOptions, Register, RegisteredRouter, ResolveParams, Route, RouteById, RouteConstraints, RouteIds, RouteLoaderFn, UpdatableRouteOptions, UseNavigateResult } from '@tanstack/router-core';
5
5
  import type { UseLoaderDepsRoute } from './useLoaderDeps';
6
6
  import type { UseLoaderDataRoute } from './useLoaderData';
7
7
  import type { UseRouteContextRoute } from './useRouteContext';
@@ -16,7 +16,7 @@ export declare class FileRoute<TFilePath extends keyof FileRoutesByPath, TParent
16
16
  constructor(path?: TFilePath | undefined, _opts?: {
17
17
  silent: boolean;
18
18
  });
19
- createRoute: <TSearchValidator = undefined, TParams = ResolveParams<TPath>, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined, TChildren = unknown>(options?: FileBaseRouteOptions<TParentRoute, TId, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderFn, AnyContext, TRouteContextFn, TBeforeLoadFn> & UpdatableRouteOptions<TParentRoute, TId, TFullPath, TParams, TSearchValidator, TLoaderFn, TLoaderDeps, AnyContext, TRouteContextFn, TBeforeLoadFn>) => Route<TParentRoute, TPath, TFullPath, TFilePath, TId, TSearchValidator, TParams, AnyContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, unknown>;
19
+ createRoute: <TRegister extends Register = Register, TSearchValidator = undefined, TParams = ResolveParams<TPath>, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined, TChildren = unknown, TSSR = unknown>(options?: FileBaseRouteOptions<TRegister, TParentRoute, TId, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderFn, AnyContext, TRouteContextFn, TBeforeLoadFn, AnyContext, TSSR> & UpdatableRouteOptions<TParentRoute, TId, TFullPath, TParams, TSearchValidator, TLoaderFn, TLoaderDeps, AnyContext, TRouteContextFn, TBeforeLoadFn>) => Route<TRegister, TParentRoute, TPath, TFullPath, TFilePath, TId, TSearchValidator, TParams, AnyContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, unknown, TSSR>;
20
20
  }
21
21
  /**
22
22
  @deprecated It's recommended not to split loaders into separate files.
@@ -1 +1 @@
1
- {"version":3,"file":"fileRoute.js","sourceRoot":"","sources":["../../src/fileRoute.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileRoute.js","sourceRoot":"","sources":["../../src/fileRoute.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export { defer, TSR_DEFERRED_PROMISE, isMatch, joinPaths, cleanPath, trimPathLeft, trimPathRight, trimPath, resolvePath, parsePathname, interpolatePath, matchPathname, removeBasepath, matchByPath, rootRouteId, defaultSerializeError, defaultParseSearch, defaultStringifySearch, parseSearchWith, stringifySearchWith, functionalUpdate, replaceEqualDeep, isPlainObject, isPlainArray, deepEqual, createControlledPromise, retainSearchParams, stripSearchParams, createSerializationAdapter, } from '@tanstack/router-core';
2
- export type { DeferredPromiseState, DeferredPromise, ParsedLocation, RemoveTrailingSlashes, RemoveLeadingSlashes, ActiveOptions, Segment, ResolveRelativePath, RootRouteId, AnyPathParams, ResolveParams, ResolveOptionalParams, ResolveRequiredParams, SearchSchemaInput, AnyContext, RouteContext, PreloadableObj, RoutePathOptions, StaticDataRouteOption, RoutePathOptionsIntersection, UpdatableStaticRouteOption, MetaDescriptor, RouteLinkEntry, ParseParamsFn, SearchFilter, ResolveId, InferFullSearchSchema, InferFullSearchSchemaInput, ErrorRouteProps, ErrorComponentProps, NotFoundRouteProps, TrimPath, TrimPathLeft, TrimPathRight, StringifyParamsFn, ParamsOptions, InferAllParams, InferAllContext, LooseReturnType, LooseAsyncReturnType, ContextReturnType, ContextAsyncReturnType, ResolveLoaderData, ResolveRouteContext, SearchSerializer, SearchParser, TrailingSlashOption, Manifest, RouterManagedTag, ControlledPromise, Constrain, Expand, MergeAll, Assign, IntersectAssign, ResolveValidatorInput, ResolveValidatorOutput, AnyValidator, DefaultValidator, ValidatorFn, AnySchema, AnyValidatorAdapter, AnyValidatorFn, AnyValidatorObj, ResolveValidatorInputFn, ResolveValidatorOutputFn, ResolveSearchValidatorInput, ResolveSearchValidatorInputFn, Validator, ValidatorAdapter, ValidatorObj, NavigateFn, BuildLocationFn, InferDescendantToPaths, RelativeToPath, RelativeToParentPath, RelativeToCurrentPath, Register, AbsoluteToPath, RelativeToPathAutoComplete, NavigateOptions, ToOptions, ToMaskOptions, ToSubOptions, ResolveRoute, SearchParamOptions, PathParamOptions, ToPathOption, LinkOptions, MakeOptionalPathParams, AnyRouterWithContext, ParseRoute, RoutesById, RouteById, RouteIds, RoutesByPath, RouteByPath, RoutePaths, FullSearchSchema, AllParams, AllLoaderData, FullSearchSchemaInput, AllContext, CommitLocationOptions, MatchLocation, ResolveFullSearchSchema, ResolveFullSearchSchemaInput, ResolveAllParamsFromParent, RouteContextParameter, BeforeLoadContextParameter, ResolveAllContext, FullSearchSchemaOption, MakeRemountDepsOptionsUnion, RemountDepsOptions, FileRouteTypes, FileRoutesByPath, UseNavigateResult, AnyRedirect, Redirect, RedirectOptions, ResolvedRedirect, RouteOptions, FileBaseRouteOptions, BaseRouteOptions, UpdatableRouteOptions, RouteLoaderFn, LoaderFnContext, MakeRouteMatch, MakeRouteMatchUnion, RouteMatch, AnyRouteMatch, RouteContextFn, RouteContextOptions, BeforeLoadFn, BeforeLoadContextOptions, ContextOptions, RootRouteOptions, AnyRouteWithContext, LazyRouteOptions, AnyRoute, ResolveFullPath, RouteConstraints, RouterState, ListenerFn, BuildNextOptions, AnyRouter, RegisteredRouter, RouterEvents, RouterEvent, RouterListener, MatchRouteOptions, RouteMask, RouterContextOptions, RouterOptions, RouterConstructorOptions, ControllablePromise, InjectedHtmlEntry, CreateFileRoute, CreateLazyFileRoute, Transformer, AnyTransformer, } from '@tanstack/router-core';
2
+ export type { DeferredPromiseState, DeferredPromise, ParsedLocation, RemoveTrailingSlashes, RemoveLeadingSlashes, ActiveOptions, Segment, ResolveRelativePath, RootRouteId, AnyPathParams, ResolveParams, ResolveOptionalParams, ResolveRequiredParams, SearchSchemaInput, AnyContext, RouteContext, PreloadableObj, RoutePathOptions, StaticDataRouteOption, RoutePathOptionsIntersection, UpdatableStaticRouteOption, MetaDescriptor, RouteLinkEntry, ParseParamsFn, SearchFilter, ResolveId, InferFullSearchSchema, InferFullSearchSchemaInput, ErrorRouteProps, ErrorComponentProps, NotFoundRouteProps, TrimPath, TrimPathLeft, TrimPathRight, StringifyParamsFn, ParamsOptions, InferAllParams, InferAllContext, LooseReturnType, LooseAsyncReturnType, ContextReturnType, ContextAsyncReturnType, ResolveLoaderData, ResolveRouteContext, SearchSerializer, SearchParser, TrailingSlashOption, Manifest, RouterManagedTag, ControlledPromise, Constrain, Expand, MergeAll, Assign, IntersectAssign, ResolveValidatorInput, ResolveValidatorOutput, AnyValidator, DefaultValidator, ValidatorFn, AnySchema, AnyValidatorAdapter, AnyValidatorFn, AnyValidatorObj, ResolveValidatorInputFn, ResolveValidatorOutputFn, ResolveSearchValidatorInput, ResolveSearchValidatorInputFn, Validator, ValidatorAdapter, ValidatorObj, NavigateFn, BuildLocationFn, InferDescendantToPaths, RelativeToPath, RelativeToParentPath, RelativeToCurrentPath, Register, AbsoluteToPath, RelativeToPathAutoComplete, NavigateOptions, ToOptions, ToMaskOptions, ToSubOptions, ResolveRoute, SearchParamOptions, PathParamOptions, ToPathOption, LinkOptions, MakeOptionalPathParams, AnyRouterWithContext, ParseRoute, RoutesById, RouteById, RouteIds, RoutesByPath, RouteByPath, RoutePaths, FullSearchSchema, AllParams, AllLoaderData, FullSearchSchemaInput, AllContext, CommitLocationOptions, MatchLocation, ResolveFullSearchSchema, ResolveFullSearchSchemaInput, ResolveAllParamsFromParent, RouteContextParameter, BeforeLoadContextParameter, ResolveAllContext, FullSearchSchemaOption, MakeRemountDepsOptionsUnion, RemountDepsOptions, FileRouteTypes, FileRoutesByPath, UseNavigateResult, AnyRedirect, Redirect, RedirectOptions, ResolvedRedirect, RouteOptions, FileBaseRouteOptions, BaseRouteOptions, UpdatableRouteOptions, RouteLoaderFn, LoaderFnContext, MakeRouteMatch, MakeRouteMatchUnion, RouteMatch, AnyRouteMatch, RouteContextFn, RouteContextOptions, BeforeLoadFn, BeforeLoadContextOptions, ContextOptions, RootRouteOptions, AnyRouteWithContext, LazyRouteOptions, AnyRoute, ResolveFullPath, RouteConstraints, RouterState, ListenerFn, BuildNextOptions, AnyRouter, RegisteredRouter, RouterEvents, RouterEvent, RouterListener, MatchRouteOptions, RouteMask, RouterContextOptions, RouterOptions, RouterConstructorOptions, ControllablePromise, InjectedHtmlEntry, CreateFileRoute, CreateLazyFileRoute, AnySerializationAdapter, SerializationAdapter, } from '@tanstack/router-core';
3
3
  export { createHistory, createBrowserHistory, createHashHistory, createMemoryHistory, } from '@tanstack/history';
4
4
  export type { BlockerFn, HistoryLocation, RouterHistory, ParsedPath, HistoryState, } from '@tanstack/history';
5
5
  export { useAwaited, Await } from './awaited';
@@ -5,7 +5,7 @@ import { Dynamic } from 'solid-js/web';
5
5
  import { useRouterState } from './useRouterState';
6
6
  import { useRouter } from './useRouter';
7
7
  import { useIntersectionObserver } from './utils';
8
- import { useMatch } from './useMatch';
8
+ import { useActiveLocation } from './useActiveLocation';
9
9
  export function useLinkProps(options) {
10
10
  const router = useRouter();
11
11
  const [isTransitioning, setIsTransitioning] = Solid.createSignal(false);
@@ -89,18 +89,17 @@ export function useLinkProps(options) {
89
89
  const currentSearch = useRouterState({
90
90
  select: (s) => s.location.searchStr,
91
91
  });
92
- // when `from` is not supplied, use the route of the current match as the `from` location
93
- // so relative routing works as expected
94
- const from = useMatch({
95
- strict: false,
96
- select: (match) => options.from ?? match.fullPath,
97
- });
98
- const _options = () => ({
99
- ...options,
100
- from: from(),
101
- });
92
+ const { getFromPath, activeLocation } = useActiveLocation();
93
+ const from = getFromPath(options.from);
94
+ const _options = () => {
95
+ return {
96
+ ...options,
97
+ from: from(),
98
+ };
99
+ };
102
100
  const next = Solid.createMemo(() => {
103
101
  currentSearch();
102
+ activeLocation();
104
103
  return router.buildLocation(_options());
105
104
  });
106
105
  const preload = Solid.createMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"link.jsx","sourceRoot":"","sources":["../../src/link.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link.jsx","sourceRoot":"","sources":["../../src/link.tsx"],"names":[],"mappings":"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"}