@tanstack/react-router 1.92.6 → 1.92.11

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 (59) hide show
  1. package/dist/cjs/Matches.cjs.map +1 -1
  2. package/dist/cjs/Matches.d.cts +5 -5
  3. package/dist/cjs/link.cjs.map +1 -1
  4. package/dist/cjs/link.d.cts +17 -17
  5. package/dist/cjs/redirects.cjs.map +1 -1
  6. package/dist/cjs/redirects.d.cts +1 -1
  7. package/dist/cjs/route.cjs.map +1 -1
  8. package/dist/cjs/route.d.cts +1 -1
  9. package/dist/cjs/routeInfo.d.cts +1 -0
  10. package/dist/cjs/useLoaderData.cjs.map +1 -1
  11. package/dist/cjs/useLoaderData.d.cts +1 -1
  12. package/dist/cjs/useLoaderDeps.cjs.map +1 -1
  13. package/dist/cjs/useLoaderDeps.d.cts +1 -1
  14. package/dist/cjs/useMatch.cjs.map +1 -1
  15. package/dist/cjs/useMatch.d.cts +1 -1
  16. package/dist/cjs/useNavigate.cjs.map +1 -1
  17. package/dist/cjs/useNavigate.d.cts +1 -1
  18. package/dist/cjs/useParams.cjs.map +1 -1
  19. package/dist/cjs/useParams.d.cts +1 -1
  20. package/dist/cjs/useRouteContext.cjs.map +1 -1
  21. package/dist/cjs/useRouteContext.d.cts +1 -1
  22. package/dist/cjs/useSearch.cjs.map +1 -1
  23. package/dist/cjs/useSearch.d.cts +1 -1
  24. package/dist/esm/Matches.d.ts +5 -5
  25. package/dist/esm/Matches.js.map +1 -1
  26. package/dist/esm/link.d.ts +17 -17
  27. package/dist/esm/link.js.map +1 -1
  28. package/dist/esm/redirects.d.ts +1 -1
  29. package/dist/esm/redirects.js.map +1 -1
  30. package/dist/esm/route.d.ts +1 -1
  31. package/dist/esm/route.js.map +1 -1
  32. package/dist/esm/routeInfo.d.ts +1 -0
  33. package/dist/esm/useLoaderData.d.ts +1 -1
  34. package/dist/esm/useLoaderData.js.map +1 -1
  35. package/dist/esm/useLoaderDeps.d.ts +1 -1
  36. package/dist/esm/useLoaderDeps.js.map +1 -1
  37. package/dist/esm/useMatch.d.ts +1 -1
  38. package/dist/esm/useMatch.js.map +1 -1
  39. package/dist/esm/useNavigate.d.ts +1 -1
  40. package/dist/esm/useNavigate.js.map +1 -1
  41. package/dist/esm/useParams.d.ts +1 -1
  42. package/dist/esm/useParams.js.map +1 -1
  43. package/dist/esm/useRouteContext.d.ts +1 -1
  44. package/dist/esm/useRouteContext.js.map +1 -1
  45. package/dist/esm/useSearch.d.ts +1 -1
  46. package/dist/esm/useSearch.js.map +1 -1
  47. package/package.json +2 -8
  48. package/src/Matches.tsx +15 -22
  49. package/src/link.tsx +72 -57
  50. package/src/redirects.ts +4 -4
  51. package/src/route.ts +4 -3
  52. package/src/routeInfo.ts +6 -0
  53. package/src/useLoaderData.tsx +1 -1
  54. package/src/useLoaderDeps.tsx +1 -1
  55. package/src/useMatch.tsx +1 -1
  56. package/src/useNavigate.tsx +4 -4
  57. package/src/useParams.tsx +1 -1
  58. package/src/useRouteContext.ts +1 -1
  59. package/src/useSearch.tsx +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useLoaderDeps.js","sources":["../../src/useLoaderDeps.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { RouteById } from './routeInfo'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseLoaderDepsBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n deps: ResolveLoaderDeps<TRouter, TFrom>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseLoaderDepsOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom> &\n UseLoaderDepsBaseOptions<TRouter, TFrom, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type ResolveLoaderDeps<TRouter extends AnyRouter, TFrom> = Expand<\n RouteById<TRouter['routeTree'], TFrom>['types']['loaderDeps']\n>\n\nexport type UseLoaderDepsResult<\n TRouter extends AnyRouter,\n TFrom,\n TSelected,\n> = unknown extends TSelected ? ResolveLoaderDeps<TRouter, TFrom> : TSelected\n\nexport type UseLoaderDepsRoute<out TId> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseLoaderDepsBaseOptions<TRouter, TId, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, false>,\n) => UseLoaderDepsResult<TRouter, TId, TSelected>\n\nexport function useLoaderDeps<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string | undefined = undefined,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseLoaderDepsOptions<TRouter, TFrom, TSelected, TStructuralSharing>,\n): UseLoaderDepsResult<TRouter, TFrom, TSelected> {\n const { select, ...rest } = opts\n return useMatch({\n ...rest,\n select: (s) => {\n return select ? select(s.loaderDeps) : s.loaderDeps\n },\n }) as UseLoaderDepsResult<TRouter, TFrom, TSelected>\n}\n"],"names":[],"mappings":";AAgDO,SAAS,cAMd,MACgD;AAChD,QAAM,EAAE,QAAQ,GAAG,KAAA,IAAS;AAC5B,SAAO,SAAS;AAAA,IACd,GAAG;AAAA,IACH,QAAQ,CAAC,MAAM;AACb,aAAO,SAAS,OAAO,EAAE,UAAU,IAAI,EAAE;AAAA,IAAA;AAAA,EAC3C,CACD;AACH;"}
1
+ {"version":3,"file":"useLoaderDeps.js","sources":["../../src/useLoaderDeps.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { RouteById } from './routeInfo'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseLoaderDepsBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n deps: ResolveLoaderDeps<TRouter, TFrom>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseLoaderDepsOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom> &\n UseLoaderDepsBaseOptions<TRouter, TFrom, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type ResolveLoaderDeps<TRouter extends AnyRouter, TFrom> = Expand<\n RouteById<TRouter['routeTree'], TFrom>['types']['loaderDeps']\n>\n\nexport type UseLoaderDepsResult<\n TRouter extends AnyRouter,\n TFrom,\n TSelected,\n> = unknown extends TSelected ? ResolveLoaderDeps<TRouter, TFrom> : TSelected\n\nexport type UseLoaderDepsRoute<out TId> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseLoaderDepsBaseOptions<TRouter, TId, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, false>,\n) => UseLoaderDepsResult<TRouter, TId, TSelected>\n\nexport function useLoaderDeps<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseLoaderDepsOptions<TRouter, TFrom, TSelected, TStructuralSharing>,\n): UseLoaderDepsResult<TRouter, TFrom, TSelected> {\n const { select, ...rest } = opts\n return useMatch({\n ...rest,\n select: (s) => {\n return select ? select(s.loaderDeps) : s.loaderDeps\n },\n }) as UseLoaderDepsResult<TRouter, TFrom, TSelected>\n}\n"],"names":[],"mappings":";AAgDO,SAAS,cAMd,MACgD;AAChD,QAAM,EAAE,QAAQ,GAAG,KAAA,IAAS;AAC5B,SAAO,SAAS;AAAA,IACd,GAAG;AAAA,IACH,QAAQ,CAAC,MAAM;AACb,aAAO,SAAS,OAAO,EAAE,UAAU,IAAI,EAAE;AAAA,IAAA;AAAA,EAC3C,CACD;AACH;"}
@@ -10,5 +10,5 @@ export type UseMatchRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRo
10
10
  export type UseMatchOptions<TRouter extends AnyRouter, TFrom extends string | undefined, TStrict extends boolean, TSelected, TThrow extends boolean, TStructuralSharing extends boolean> = StrictOrFrom<TRouter, TFrom, TStrict> & UseMatchBaseOptions<TRouter, TFrom, TStrict, TThrow, TSelected, TStructuralSharing> & StructuralSharingOption<TRouter, TSelected, TStructuralSharing>;
11
11
  export type UseMatchResult<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> = unknown extends TSelected ? TStrict extends true ? MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict> : MakeRouteMatchUnion<TRouter> : TSelected;
12
12
  type ThrowConstraint<TStrict extends boolean, TThrow extends boolean> = TStrict extends false ? (TThrow extends true ? never : TThrow) : TThrow;
13
- export declare function useMatch<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string | undefined = undefined, TStrict extends boolean = true, TThrow extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseMatchOptions<TRouter, TFrom, TStrict, TSelected, ThrowConstraint<TStrict, TThrow>, TStructuralSharing>): ThrowOrOptional<UseMatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>;
13
+ export declare function useMatch<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string | undefined = undefined, TStrict extends boolean = true, TThrow extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseMatchOptions<TRouter, TFrom, TStrict, TSelected, ThrowConstraint<TStrict, TThrow>, TStructuralSharing>): ThrowOrOptional<UseMatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>;
14
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"useMatch.js","sources":["../../src/useMatch.tsx"],"sourcesContent":["import * as React from 'react'\nimport invariant from 'tiny-invariant'\nimport { useRouterState } from './useRouterState'\nimport { dummyMatchContext, matchContext } from './matchContext'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { MakeRouteMatch, MakeRouteMatchUnion } from './Matches'\nimport type { StrictOrFrom, ThrowOrOptional } from './utils'\n\nexport interface UseMatchBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TThrow,\n TSelected,\n TStructuralSharing extends boolean,\n> {\n select?: (\n match: MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n shouldThrow?: TThrow\n}\n\nexport type UseMatchRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseMatchBaseOptions<\n TRouter,\n TFrom,\n true,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseMatchResult<TRouter, TFrom, true, TSelected>\n\nexport type UseMatchOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n TThrow extends boolean,\n TStructuralSharing extends boolean,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseMatchBaseOptions<\n TRouter,\n TFrom,\n TStrict,\n TThrow,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type UseMatchResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? TStrict extends true\n ? MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>\n : MakeRouteMatchUnion<TRouter>\n : TSelected\n\ntype ThrowConstraint<\n TStrict extends boolean,\n TThrow extends boolean,\n> = TStrict extends false ? (TThrow extends true ? never : TThrow) : TThrow\n\nexport function useMatch<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TThrow extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseMatchOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n ThrowConstraint<TStrict, TThrow>,\n TStructuralSharing\n >,\n): ThrowOrOptional<UseMatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow> {\n const nearestMatchId = React.useContext(\n opts.from ? dummyMatchContext : matchContext,\n )\n\n const matchSelection = useRouterState({\n select: (state: any) => {\n const match = state.matches.find((d: any) =>\n opts.from ? opts.from === d.routeId : d.id === nearestMatchId,\n )\n invariant(\n !((opts.shouldThrow ?? true) && !match),\n `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'}`,\n )\n\n if (match === undefined) {\n return undefined\n }\n\n return opts.select ? opts.select(match) : match\n },\n structuralSharing: opts.structuralSharing,\n } as any)\n\n return matchSelection as any\n}\n"],"names":[],"mappings":";;;;AA4EO,SAAS,SAQd,MAQ6E;AAC7E,QAAM,iBAAiB,MAAM;AAAA,IAC3B,KAAK,OAAO,oBAAoB;AAAA,EAClC;AAEA,QAAM,iBAAiB,eAAe;AAAA,IACpC,QAAQ,CAAC,UAAe;AAChB,YAAA,QAAQ,MAAM,QAAQ;AAAA,QAAK,CAAC,MAChC,KAAK,OAAO,KAAK,SAAS,EAAE,UAAU,EAAE,OAAO;AAAA,MACjD;AACA;AAAA,QACE,GAAG,KAAK,eAAe,SAAS,CAAC;AAAA,QACjC,kBAAkB,KAAK,OAAO,yBAAyB,KAAK,IAAI,MAAM,kBAAkB;AAAA,MAC1F;AAEA,UAAI,UAAU,QAAW;AAChB,eAAA;AAAA,MAAA;AAGT,aAAO,KAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AAAA,IAC5C;AAAA,IACA,mBAAmB,KAAK;AAAA,EAAA,CAClB;AAED,SAAA;AACT;"}
1
+ {"version":3,"file":"useMatch.js","sources":["../../src/useMatch.tsx"],"sourcesContent":["import * as React from 'react'\nimport invariant from 'tiny-invariant'\nimport { useRouterState } from './useRouterState'\nimport { dummyMatchContext, matchContext } from './matchContext'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { MakeRouteMatch, MakeRouteMatchUnion } from './Matches'\nimport type { StrictOrFrom, ThrowOrOptional } from './utils'\n\nexport interface UseMatchBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TThrow,\n TSelected,\n TStructuralSharing extends boolean,\n> {\n select?: (\n match: MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n shouldThrow?: TThrow\n}\n\nexport type UseMatchRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseMatchBaseOptions<\n TRouter,\n TFrom,\n true,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseMatchResult<TRouter, TFrom, true, TSelected>\n\nexport type UseMatchOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n TThrow extends boolean,\n TStructuralSharing extends boolean,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseMatchBaseOptions<\n TRouter,\n TFrom,\n TStrict,\n TThrow,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type UseMatchResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? TStrict extends true\n ? MakeRouteMatch<TRouter['routeTree'], TFrom, TStrict>\n : MakeRouteMatchUnion<TRouter>\n : TSelected\n\ntype ThrowConstraint<\n TStrict extends boolean,\n TThrow extends boolean,\n> = TStrict extends false ? (TThrow extends true ? never : TThrow) : TThrow\n\nexport function useMatch<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TThrow extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseMatchOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n ThrowConstraint<TStrict, TThrow>,\n TStructuralSharing\n >,\n): ThrowOrOptional<UseMatchResult<TRouter, TFrom, TStrict, TSelected>, TThrow> {\n const nearestMatchId = React.useContext(\n opts.from ? dummyMatchContext : matchContext,\n )\n\n const matchSelection = useRouterState({\n select: (state: any) => {\n const match = state.matches.find((d: any) =>\n opts.from ? opts.from === d.routeId : d.id === nearestMatchId,\n )\n invariant(\n !((opts.shouldThrow ?? true) && !match),\n `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : 'a nearest match!'}`,\n )\n\n if (match === undefined) {\n return undefined\n }\n\n return opts.select ? opts.select(match) : match\n },\n structuralSharing: opts.structuralSharing,\n } as any)\n\n return matchSelection as any\n}\n"],"names":[],"mappings":";;;;AA4EO,SAAS,SAQd,MAQ6E;AAC7E,QAAM,iBAAiB,MAAM;AAAA,IAC3B,KAAK,OAAO,oBAAoB;AAAA,EAClC;AAEA,QAAM,iBAAiB,eAAe;AAAA,IACpC,QAAQ,CAAC,UAAe;AAChB,YAAA,QAAQ,MAAM,QAAQ;AAAA,QAAK,CAAC,MAChC,KAAK,OAAO,KAAK,SAAS,EAAE,UAAU,EAAE,OAAO;AAAA,MACjD;AACA;AAAA,QACE,GAAG,KAAK,eAAe,SAAS,CAAC;AAAA,QACjC,kBAAkB,KAAK,OAAO,yBAAyB,KAAK,IAAI,MAAM,kBAAkB;AAAA,MAC1F;AAEA,UAAI,UAAU,QAAW;AAChB,eAAA;AAAA,MAAA;AAGT,aAAO,KAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AAAA,IAC5C;AAAA,IACA,mBAAmB,KAAK;AAAA,EAAA,CAClB;AAED,SAAA;AACT;"}
@@ -4,4 +4,4 @@ export type UseNavigateResult<TDefaultFrom extends string> = <TRouter extends Re
4
4
  export declare function useNavigate<TRouter extends AnyRouter = RegisteredRouter, TDefaultFrom extends string = string>(_defaultOpts?: {
5
5
  from?: FromPathOption<TRouter, TDefaultFrom>;
6
6
  }): UseNavigateResult<TDefaultFrom>;
7
- export declare function Navigate<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = '.', TMaskFrom extends string = TFrom, TMaskTo extends string = '.'>(props: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null;
7
+ export declare function Navigate<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string = string, const TTo extends string | undefined = undefined, const TMaskFrom extends string = TFrom, const TMaskTo extends string = ''>(props: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null;
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigate.js","sources":["../../src/useNavigate.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useRouter } from './useRouter'\nimport type { FromPathOption, NavigateOptions } from './link'\nimport type { AnyRouter, RegisteredRouter } from './router'\n\nexport type UseNavigateResult<TDefaultFrom extends string> = <\n TRouter extends RegisteredRouter,\n TTo extends string | undefined,\n TFrom extends string = TDefaultFrom,\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '',\n>({\n from,\n ...rest\n}: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>\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 } = useRouter()\n\n return React.useCallback(\n (options: NavigateOptions) => {\n return navigate({\n ...options,\n })\n },\n [navigate],\n ) as UseNavigateResult<TDefaultFrom>\n}\n\n// NOTE: I don't know of anyone using this. It's undocumented, so let's wait until someone needs it\n// export function typedNavigate<\n// TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n// TDefaultFrom extends RoutePaths<TRouteTree> = '/',\n// >(navigate: (opts: NavigateOptions<any>) => Promise<void>) {\n// return navigate as <\n// TFrom extends RoutePaths<TRouteTree> = TDefaultFrom,\n// TTo extends string = '',\n// TMaskFrom extends RoutePaths<TRouteTree> = '/',\n// TMaskTo extends string = '',\n// >(\n// opts?: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>,\n// ) => Promise<void>\n// } //\n\nexport function Navigate<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n>(props: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null {\n const { navigate } = useRouter()\n\n React.useEffect(() => {\n navigate({\n ...props,\n } as any)\n }, [])\n\n return null\n}\n"],"names":[],"mappings":";;AAgBO,SAAS,YAGd,cAEkC;AAC5B,QAAA,EAAE,SAAS,IAAI,UAAU;AAE/B,SAAO,MAAM;AAAA,IACX,CAAC,YAA6B;AAC5B,aAAO,SAAS;AAAA,QACd,GAAG;AAAA,MAAA,CACJ;AAAA,IACH;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AACF;AAiBO,SAAS,SAMd,OAAuE;AACjE,QAAA,EAAE,SAAS,IAAI,UAAU;AAE/B,QAAM,UAAU,MAAM;AACX,aAAA;AAAA,MACP,GAAG;AAAA,IAAA,CACG;AAAA,EACV,GAAG,EAAE;AAEE,SAAA;AACT;"}
1
+ {"version":3,"file":"useNavigate.js","sources":["../../src/useNavigate.tsx"],"sourcesContent":["import * as React from 'react'\nimport { useRouter } from './useRouter'\nimport type { FromPathOption, NavigateOptions } from './link'\nimport type { AnyRouter, RegisteredRouter } from './router'\n\nexport type UseNavigateResult<TDefaultFrom extends string> = <\n TRouter extends RegisteredRouter,\n TTo extends string | undefined,\n TFrom extends string = TDefaultFrom,\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '',\n>({\n from,\n ...rest\n}: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<void>\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 } = useRouter()\n\n return React.useCallback(\n (options: NavigateOptions) => {\n return navigate({\n ...options,\n })\n },\n [navigate],\n ) as UseNavigateResult<TDefaultFrom>\n}\n\n// NOTE: I don't know of anyone using this. It's undocumented, so let's wait until someone needs it\n// export function typedNavigate<\n// TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n// TDefaultFrom extends RoutePaths<TRouteTree> = '/',\n// >(navigate: (opts: NavigateOptions<any>) => Promise<void>) {\n// return navigate as <\n// TFrom extends RoutePaths<TRouteTree> = TDefaultFrom,\n// TTo extends string = '',\n// TMaskFrom extends RoutePaths<TRouteTree> = '/',\n// TMaskTo extends string = '',\n// >(\n// opts?: NavigateOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>,\n// ) => Promise<void>\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 React.useEffect(() => {\n navigate({\n ...props,\n } as any)\n }, [])\n\n return null\n}\n"],"names":[],"mappings":";;AAgBO,SAAS,YAGd,cAEkC;AAC5B,QAAA,EAAE,SAAS,IAAI,UAAU;AAE/B,SAAO,MAAM;AAAA,IACX,CAAC,YAA6B;AAC5B,aAAO,SAAS;AAAA,QACd,GAAG;AAAA,MAAA,CACJ;AAAA,IACH;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AACF;AAiBO,SAAS,SAMd,OAAuE;AACjE,QAAA,EAAE,SAAS,IAAI,UAAU;AAE/B,QAAM,UAAU,MAAM;AACX,aAAA;AAAA,MACP,GAAG;AAAA,IAAA,CACG;AAAA,EACV,GAAG,EAAE;AAEE,SAAA;AACT;"}
@@ -9,4 +9,4 @@ export type UseParamsOptions<TRouter extends AnyRouter, TFrom extends string | u
9
9
  export type ResolveParams<TRouter extends AnyRouter, TFrom, TStrict extends boolean> = TStrict extends false ? AllParams<TRouter['routeTree']> : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allParams']>;
10
10
  export type UseParamsResult<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> = unknown extends TSelected ? ResolveParams<TRouter, TFrom, TStrict> : TSelected;
11
11
  export type UseParamsRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts?: UseParamsBaseOptions<TRouter, TFrom, true, TSelected, TStructuralSharing> & StructuralSharingOption<TRouter, TSelected, TStructuralSharing>) => UseParamsResult<TRouter, TFrom, true, TSelected>;
12
- export declare function useParams<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseParamsOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing>): UseParamsResult<TRouter, TFrom, TStrict, TSelected>;
12
+ export declare function useParams<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseParamsOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing>): UseParamsResult<TRouter, TFrom, TStrict, TSelected>;
@@ -1 +1 @@
1
- {"version":3,"file":"useParams.js","sources":["../../src/useParams.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AllParams, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseParamsBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n params: ResolveParams<TRouter, TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseParamsOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseParamsBaseOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type ResolveParams<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? AllParams<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allParams']>\n\nexport type UseParamsResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveParams<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type UseParamsRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseParamsBaseOptions<\n TRouter,\n TFrom,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseParamsResult<TRouter, TFrom, true, TSelected>\n\nexport function useParams<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseParamsOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n TStructuralSharing\n >,\n): UseParamsResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n from: opts.from!,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (match: any) => {\n return opts.select ? opts.select(match.params) : match.params\n },\n } as any) as UseParamsResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA+DO,SAAS,UAOd,MAOqD;AACrD,SAAO,SAAS;AAAA,IACd,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,mBAAmB,KAAK;AAAA,IACxB,QAAQ,CAAC,UAAe;AACtB,aAAO,KAAK,SAAS,KAAK,OAAO,MAAM,MAAM,IAAI,MAAM;AAAA,IAAA;AAAA,EACzD,CACM;AACV;"}
1
+ {"version":3,"file":"useParams.js","sources":["../../src/useParams.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { AllParams, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseParamsBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n params: ResolveParams<TRouter, TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseParamsOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseParamsBaseOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type ResolveParams<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? AllParams<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allParams']>\n\nexport type UseParamsResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveParams<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type UseParamsRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseParamsBaseOptions<\n TRouter,\n TFrom,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseParamsResult<TRouter, TFrom, true, TSelected>\n\nexport function useParams<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseParamsOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n TStructuralSharing\n >,\n): UseParamsResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n from: opts.from!,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (match: any) => {\n return opts.select ? opts.select(match.params) : match.params\n },\n } as any) as UseParamsResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA+DO,SAAS,UAOd,MAOqD;AACrD,SAAO,SAAS;AAAA,IACd,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,mBAAmB,KAAK;AAAA,IACxB,QAAQ,CAAC,UAAe;AACtB,aAAO,KAAK,SAAS,KAAK,OAAO,MAAM,MAAM,IAAI,MAAM;AAAA,IAAA;AAAA,EACzD,CACM;AACV;"}
@@ -8,4 +8,4 @@ export type UseRouteContextOptions<TRouter extends AnyRouter, TFrom extends stri
8
8
  export type ResolveRouteContext<TRouter extends AnyRouter, TFrom, TStrict extends boolean> = TStrict extends false ? AllContext<TRouter['routeTree']> : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allContext']>;
9
9
  export type UseRouteContextResult<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> = unknown extends TSelected ? ResolveRouteContext<TRouter, TFrom, TStrict> : TSelected;
10
10
  export type UseRouteContextRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseRouteContextBaseOptions<TRouter, TFrom, true, TSelected>) => UseRouteContextResult<TRouter, TFrom, true, TSelected>;
11
- export declare function useRouteContext<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown>(opts: UseRouteContextOptions<TRouter, TFrom, TStrict, TSelected>): UseRouteContextResult<TRouter, TFrom, TStrict, TSelected>;
11
+ export declare function useRouteContext<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown>(opts: UseRouteContextOptions<TRouter, TFrom, TStrict, TSelected>): UseRouteContextResult<TRouter, TFrom, TStrict, TSelected>;
@@ -1 +1 @@
1
- {"version":3,"file":"useRouteContext.js","sources":["../../src/useRouteContext.ts"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { AllContext, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseRouteContextBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> {\n select?: (search: ResolveRouteContext<TRouter, TFrom, TStrict>) => TSelected\n}\n\nexport type UseRouteContextOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseRouteContextBaseOptions<TRouter, TFrom, TStrict, TSelected>\n\nexport type ResolveRouteContext<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? AllContext<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allContext']>\n\nexport type UseRouteContextResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveRouteContext<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type UseRouteContextRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseRouteContextBaseOptions<TRouter, TFrom, true, TSelected>,\n) => UseRouteContextResult<TRouter, TFrom, true, TSelected>\n\nexport function useRouteContext<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n>(\n opts: UseRouteContextOptions<TRouter, TFrom, TStrict, TSelected>,\n): UseRouteContextResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n ...(opts as any),\n select: (match) =>\n opts.select ? opts.select(match.context) : match.context,\n }) as UseRouteContextResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA8CO,SAAS,gBAMd,MAC2D;AAC3D,SAAO,SAAS;AAAA,IACd,GAAI;AAAA,IACJ,QAAQ,CAAC,UACP,KAAK,SAAS,KAAK,OAAO,MAAM,OAAO,IAAI,MAAM;AAAA,EAAA,CACpD;AACH;"}
1
+ {"version":3,"file":"useRouteContext.js","sources":["../../src/useRouteContext.ts"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { AllContext, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseRouteContextBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> {\n select?: (search: ResolveRouteContext<TRouter, TFrom, TStrict>) => TSelected\n}\n\nexport type UseRouteContextOptions<\n TRouter extends AnyRouter,\n TFrom extends string | undefined,\n TStrict extends boolean,\n TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseRouteContextBaseOptions<TRouter, TFrom, TStrict, TSelected>\n\nexport type ResolveRouteContext<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? AllContext<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['allContext']>\n\nexport type UseRouteContextResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveRouteContext<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type UseRouteContextRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseRouteContextBaseOptions<TRouter, TFrom, true, TSelected>,\n) => UseRouteContextResult<TRouter, TFrom, true, TSelected>\n\nexport function useRouteContext<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n>(\n opts: UseRouteContextOptions<TRouter, TFrom, TStrict, TSelected>,\n): UseRouteContextResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n ...(opts as any),\n select: (match) =>\n opts.select ? opts.select(match.context) : match.context,\n }) as UseRouteContextResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA8CO,SAAS,gBAMd,MAC2D;AAC3D,SAAO,SAAS;AAAA,IACd,GAAI;AAAA,IACJ,QAAQ,CAAC,UACP,KAAK,SAAS,KAAK,OAAO,MAAM,OAAO,IAAI,MAAM;AAAA,EAAA,CACpD;AACH;"}
@@ -9,4 +9,4 @@ export type UseSearchOptions<TRouter extends AnyRouter, TFrom, TStrict extends b
9
9
  export type UseSearchResult<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TSelected> = unknown extends TSelected ? ResolveSearch<TRouter, TFrom, TStrict> : TSelected;
10
10
  export type ResolveSearch<TRouter extends AnyRouter, TFrom, TStrict extends boolean> = TStrict extends false ? FullSearchSchema<TRouter['routeTree']> : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['fullSearchSchema']>;
11
11
  export type UseSearchRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts?: UseSearchBaseOptions<TRouter, TFrom, true, TSelected, TStructuralSharing> & StructuralSharingOption<TRouter, TSelected, TStructuralSharing>) => UseSearchResult<TRouter, TFrom, true, TSelected>;
12
- export declare function useSearch<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseSearchOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing>): UseSearchResult<TRouter, TFrom, TStrict, TSelected>;
12
+ export declare function useSearch<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string | undefined = undefined, TStrict extends boolean = true, TSelected = unknown, TStructuralSharing extends boolean = boolean>(opts: UseSearchOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing>): UseSearchResult<TRouter, TFrom, TStrict, TSelected>;
@@ -1 +1 @@
1
- {"version":3,"file":"useSearch.js","sources":["../../src/useSearch.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { FullSearchSchema, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseSearchBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n state: ResolveSearch<TRouter, TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseSearchOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseSearchBaseOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type UseSearchResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveSearch<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type ResolveSearch<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? FullSearchSchema<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['fullSearchSchema']>\n\nexport type UseSearchRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseSearchBaseOptions<\n TRouter,\n TFrom,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseSearchResult<TRouter, TFrom, true, TSelected>\n\nexport function useSearch<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseSearchOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n TStructuralSharing\n >,\n): UseSearchResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n from: opts.from!,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (match: any) => {\n return opts.select ? opts.select(match.search) : match.search\n },\n }) as UseSearchResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA+DO,SAAS,UAOd,MAOqD;AACrD,SAAO,SAAS;AAAA,IACd,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,mBAAmB,KAAK;AAAA,IACxB,QAAQ,CAAC,UAAe;AACtB,aAAO,KAAK,SAAS,KAAK,OAAO,MAAM,MAAM,IAAI,MAAM;AAAA,IAAA;AAAA,EACzD,CACD;AACH;"}
1
+ {"version":3,"file":"useSearch.js","sources":["../../src/useSearch.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type {\n StructuralSharingOption,\n ValidateSelected,\n} from './structuralSharing'\nimport type { FullSearchSchema, RouteById } from './routeInfo'\nimport type { AnyRouter, RegisteredRouter } from './router'\nimport type { Expand, StrictOrFrom } from './utils'\n\nexport interface UseSearchBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> {\n select?: (\n state: ResolveSearch<TRouter, TFrom, TStrict>,\n ) => ValidateSelected<TRouter, TSelected, TStructuralSharing>\n}\n\nexport type UseSearchOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n TStructuralSharing,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseSearchBaseOptions<TRouter, TFrom, TStrict, TSelected, TStructuralSharing> &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>\n\nexport type UseSearchResult<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TSelected,\n> = unknown extends TSelected\n ? ResolveSearch<TRouter, TFrom, TStrict>\n : TSelected\n\nexport type ResolveSearch<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n> = TStrict extends false\n ? FullSearchSchema<TRouter['routeTree']>\n : Expand<RouteById<TRouter['routeTree'], TFrom>['types']['fullSearchSchema']>\n\nexport type UseSearchRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts?: UseSearchBaseOptions<\n TRouter,\n TFrom,\n true,\n TSelected,\n TStructuralSharing\n > &\n StructuralSharingOption<TRouter, TSelected, TStructuralSharing>,\n) => UseSearchResult<TRouter, TFrom, true, TSelected>\n\nexport function useSearch<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TSelected = unknown,\n TStructuralSharing extends boolean = boolean,\n>(\n opts: UseSearchOptions<\n TRouter,\n TFrom,\n TStrict,\n TSelected,\n TStructuralSharing\n >,\n): UseSearchResult<TRouter, TFrom, TStrict, TSelected> {\n return useMatch({\n from: opts.from!,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (match: any) => {\n return opts.select ? opts.select(match.search) : match.search\n },\n }) as UseSearchResult<TRouter, TFrom, TStrict, TSelected>\n}\n"],"names":[],"mappings":";AA+DO,SAAS,UAOd,MAOqD;AACrD,SAAO,SAAS;AAAA,IACd,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,mBAAmB,KAAK;AAAA,IACxB,QAAQ,CAAC,UAAe;AACtB,aAAO,KAAK,SAAS,KAAK,OAAO,MAAM,MAAM,IAAI,MAAM;AAAA,IAAA;AAAA,EACzD,CACD;AACH;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/react-router",
3
- "version": "1.92.6",
3
+ "version": "1.92.11",
4
4
  "description": "Modern and scalable routing for React applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -67,13 +67,7 @@
67
67
  },
68
68
  "peerDependencies": {
69
69
  "react": ">=18",
70
- "react-dom": ">=18",
71
- "@tanstack/router-generator": "^1.87.7"
72
- },
73
- "peerDependenciesMeta": {
74
- "@tanstack/router-generator": {
75
- "optional": true
76
- }
70
+ "react-dom": ">=18"
77
71
  },
78
72
  "scripts": {}
79
73
  }
package/src/Matches.tsx CHANGED
@@ -13,7 +13,7 @@ import type {
13
13
  } from './structuralSharing'
14
14
  import type { AnyRoute, ReactNode, StaticDataRouteOption } from './route'
15
15
  import type { AnyRouter, RegisteredRouter, RouterState } from './router'
16
- import type { ResolveRelativePath, ToOptions } from './link'
16
+ import type { ResolveRelativePath, ResolveRoute, ToOptions } from './link'
17
17
  import type {
18
18
  AllContext,
19
19
  AllLoaderData,
@@ -273,7 +273,7 @@ export type UseMatchRouteOptions<
273
273
  TFrom extends RoutePaths<TRouter['routeTree']> | string = RoutePaths<
274
274
  TRouter['routeTree']
275
275
  >,
276
- TTo extends string = '',
276
+ TTo extends string | undefined = '',
277
277
  TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,
278
278
  TMaskTo extends string = '',
279
279
  TOptions extends ToOptions<
@@ -297,16 +297,13 @@ export function useMatchRoute<TRouter extends AnyRouter = RegisteredRouter>() {
297
297
 
298
298
  return React.useCallback(
299
299
  <
300
- TFrom extends RoutePaths<TRouter['routeTree']> | string = string,
301
- TTo extends string = '',
302
- TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,
303
- TMaskTo extends string = '',
304
- TResolved extends string = ResolveRelativePath<TFrom, NoInfer<TTo>>,
300
+ const TFrom extends string = string,
301
+ const TTo extends string | undefined = undefined,
302
+ const TMaskFrom extends string = TFrom,
303
+ const TMaskTo extends string = '',
305
304
  >(
306
305
  opts: UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
307
- ):
308
- | false
309
- | RouteByPath<TRouter['routeTree'], TResolved>['types']['allParams'] => {
306
+ ): false | ResolveRoute<TRouter, TFrom, TTo>['types']['allParams'] => {
310
307
  const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts
311
308
 
312
309
  return router.matchRoute(rest as any, {
@@ -322,11 +319,9 @@ export function useMatchRoute<TRouter extends AnyRouter = RegisteredRouter>() {
322
319
 
323
320
  export type MakeMatchRouteOptions<
324
321
  TRouter extends AnyRouter = RegisteredRouter,
325
- TFrom extends RoutePaths<TRouter['routeTree']> = RoutePaths<
326
- TRouter['routeTree']
327
- >,
328
- TTo extends string = '',
329
- TMaskFrom extends RoutePaths<TRouter['routeTree']> = TFrom,
322
+ TFrom extends string = string,
323
+ TTo extends string | undefined = undefined,
324
+ TMaskFrom extends string = TFrom,
330
325
  TMaskTo extends string = '',
331
326
  > = UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & {
332
327
  // 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
@@ -342,15 +337,13 @@ export type MakeMatchRouteOptions<
342
337
 
343
338
  export function MatchRoute<
344
339
  TRouter extends AnyRouter = RegisteredRouter,
345
- TFrom extends RoutePaths<TRouter['routeTree']> = RoutePaths<
346
- TRouter['routeTree']
347
- >,
348
- TTo extends string = '',
349
- TMaskFrom extends RoutePaths<TRouter['routeTree']> = TFrom,
350
- TMaskTo extends string = '',
340
+ const TFrom extends string = string,
341
+ const TTo extends string | undefined = undefined,
342
+ const TMaskFrom extends string = TFrom,
343
+ const TMaskTo extends string = '',
351
344
  >(props: MakeMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): any {
352
345
  const matchRoute = useMatchRoute()
353
- const params = matchRoute(props as any)
346
+ const params = matchRoute(props as any) as boolean
354
347
 
355
348
  if (typeof props.children === 'function') {
356
349
  return (props.children as any)(params)
package/src/link.tsx CHANGED
@@ -26,6 +26,7 @@ import type {
26
26
  RouteByToPath,
27
27
  RoutePaths,
28
28
  RouteToPath,
29
+ ToPath,
29
30
  TrailingSlashOptionByRouter,
30
31
  } from './routeInfo'
31
32
  import type {
@@ -59,63 +60,70 @@ export type ParsePathParams<T extends string, TAcc = never> = T &
59
60
  : never
60
61
  : TAcc
61
62
 
62
- export type AddTrailingSlash<T> = T & `${string}/` extends never
63
- ? `${T & string}/`
64
- : T
63
+ export type AddTrailingSlash<T> = T extends `${string}/` ? T : `${T & string}/`
65
64
 
66
- export type RemoveTrailingSlashes<T> = T & `${string}/` extends never
67
- ? T
68
- : T extends `${infer R}/`
65
+ export type RemoveTrailingSlashes<T> = T extends `${string}/`
66
+ ? T extends `${infer R}/`
69
67
  ? R
70
68
  : T
71
-
72
- export type AddLeadingSlash<T> = T & `/${string}` extends never
73
- ? `/${T & string}`
74
69
  : T
75
70
 
76
- export type RemoveLeadingSlashes<T> = T & `/${string}` extends never
77
- ? T
78
- : T extends `/${infer R}`
71
+ export type AddLeadingSlash<T> = T extends `/${string}` ? T : `/${T & string}`
72
+
73
+ export type RemoveLeadingSlashes<T> = T extends `/${string}`
74
+ ? T extends `/${infer R}`
79
75
  ? R
80
76
  : T
77
+ : T
81
78
 
82
79
  export type FindDescendantPaths<
83
80
  TRouter extends AnyRouter,
84
81
  TPrefix extends string,
85
- > = `${TPrefix}${string}` & RouteToPath<TRouter>
82
+ > = `${TPrefix}/${string}` & RouteToPath<TRouter>
86
83
 
87
84
  export type SearchPaths<
88
85
  TRouter extends AnyRouter,
89
86
  TPrefix extends string,
90
87
  TPaths = FindDescendantPaths<TRouter, TPrefix>,
91
- > = TPaths extends `${TPrefix}${infer TRest}` ? TRest : never
88
+ > = TPaths extends `${TPrefix}/`
89
+ ? never
90
+ : TPaths extends `${TPrefix}/${infer TRest}`
91
+ ? TRest
92
+ : never
92
93
 
93
94
  export type SearchRelativePathAutoComplete<
94
95
  TRouter extends AnyRouter,
95
96
  TTo extends string,
96
97
  TSearchPath extends string,
97
- > = `${TTo}${SearchPaths<TRouter, TSearchPath>}`
98
+ > =
99
+ | (TSearchPath & RouteToPath<TRouter> extends never
100
+ ? never
101
+ : ToPath<TrailingSlashOptionByRouter<TRouter>, TTo>)
102
+ | `${TTo}/${SearchPaths<TRouter, RemoveTrailingSlashes<TSearchPath>>}`
98
103
 
99
104
  export type RelativeToParentPathAutoComplete<
100
105
  TRouter extends AnyRouter,
101
106
  TFrom extends string,
102
107
  TTo extends string,
103
- TResolvedPath extends string = RemoveTrailingSlashes<
104
- ResolveRelativePath<TFrom, TTo>
105
- >,
108
+ TResolvedPath extends string = ResolveRelativePath<TFrom, TTo>,
106
109
  > =
107
110
  | SearchRelativePathAutoComplete<TRouter, TTo, TResolvedPath>
108
- | (TResolvedPath extends ''
109
- ? never
110
- : `${TTo}/${ParentPath<TrailingSlashOptionByRouter<TRouter>>}`)
111
+ | (TTo extends `${string}..` | `${string}../`
112
+ ? TResolvedPath extends '/' | ''
113
+ ? never
114
+ : FindDescendantPaths<
115
+ TRouter,
116
+ RemoveTrailingSlashes<TResolvedPath>
117
+ > extends never
118
+ ? never
119
+ : `${TTo}/${ParentPath<TrailingSlashOptionByRouter<TRouter>>}`
120
+ : never)
111
121
 
112
122
  export type RelativeToCurrentPathAutoComplete<
113
123
  TRouter extends AnyRouter,
114
124
  TFrom extends string,
115
125
  TTo extends string,
116
- TResolvedPath extends string = RemoveTrailingSlashes<
117
- ResolveRelativePath<TFrom, TTo>
118
- >,
126
+ TResolvedPath extends string = ResolveRelativePath<TFrom, TTo>,
119
127
  > =
120
128
  | SearchRelativePathAutoComplete<TRouter, TTo, TResolvedPath>
121
129
  | CurrentPath<TrailingSlashOptionByRouter<TRouter>>
@@ -128,9 +136,7 @@ export type AbsolutePathAutoComplete<
128
136
  ? CurrentPath<TrailingSlashOptionByRouter<TRouter>>
129
137
  : TFrom extends `/`
130
138
  ? never
131
- : FindDescendantPaths<TRouter, TFrom> extends never
132
- ? never
133
- : CurrentPath<TrailingSlashOptionByRouter<TRouter>>)
139
+ : CurrentPath<TrailingSlashOptionByRouter<TRouter>>)
134
140
  | (string extends TFrom
135
141
  ? ParentPath<TrailingSlashOptionByRouter<TRouter>>
136
142
  : TFrom extends `/`
@@ -141,7 +147,7 @@ export type AbsolutePathAutoComplete<
141
147
  ? never
142
148
  : string extends TFrom
143
149
  ? never
144
- : RemoveLeadingSlashes<SearchPaths<TRouter, TFrom>>)
150
+ : SearchPaths<TRouter, RemoveTrailingSlashes<TFrom>>)
145
151
 
146
152
  export type RelativeToPathAutoComplete<
147
153
  TRouter extends AnyRouter,
@@ -485,30 +491,39 @@ type RemoveLastSegment<
485
491
  TAcc extends string = '',
486
492
  > = T extends `${infer TSegment}/${infer TRest}`
487
493
  ? TRest & `${string}/${string}` extends never
488
- ? `${TAcc}${TSegment}`
494
+ ? TRest extends ''
495
+ ? TAcc
496
+ : `${TAcc}${TSegment}`
489
497
  : RemoveLastSegment<TRest, `${TAcc}${TSegment}/`>
490
498
  : TAcc
491
499
 
492
- export type ResolveCurrentPath<TFrom, TTo> = TTo extends '.'
500
+ export type ResolveCurrentPath<
501
+ TFrom extends string,
502
+ TTo extends string,
503
+ > = TTo extends '.'
493
504
  ? TFrom
494
505
  : TTo extends './'
495
506
  ? AddTrailingSlash<TFrom>
496
507
  : TTo & `./${string}` extends never
497
508
  ? never
498
509
  : TTo extends `./${infer TRest}`
499
- ? ResolveRelativePath<TFrom, TRest>
510
+ ? AddLeadingSlash<JoinPath<TFrom, TRest>>
500
511
  : never
501
512
 
502
- export type ResolveParentPath<TFrom extends string, TTo> = TTo extends '../'
503
- ? RemoveLastSegment<TFrom>
504
- : TTo & `..${string}` extends never
513
+ export type ResolveParentPath<
514
+ TFrom extends string,
515
+ TTo extends string,
516
+ > = TTo extends '../' | '..'
517
+ ? TFrom extends '' | '/'
505
518
  ? never
506
- : TTo extends `..${infer ToRest}`
507
- ? ResolveRelativePath<
508
- RemoveLastSegment<TFrom>,
509
- RemoveLeadingSlashes<ToRest>
510
- >
511
- : never
519
+ : AddLeadingSlash<RemoveLastSegment<TFrom>>
520
+ : TTo & `../${string}` extends never
521
+ ? AddLeadingSlash<JoinPath<TFrom, TTo>>
522
+ : TFrom extends '' | '/'
523
+ ? never
524
+ : TTo extends `../${infer ToRest}`
525
+ ? ResolveParentPath<RemoveLastSegment<TFrom>, ToRest>
526
+ : AddLeadingSlash<JoinPath<TFrom, TTo>>
512
527
 
513
528
  export type ResolveRelativePath<TFrom, TTo = '.'> = string extends TFrom
514
529
  ? TTo
@@ -516,15 +531,15 @@ export type ResolveRelativePath<TFrom, TTo = '.'> = string extends TFrom
516
531
  ? TFrom
517
532
  : undefined extends TTo
518
533
  ? TFrom
519
- : TFrom extends string
520
- ? TTo extends string
521
- ? TTo & `..${string}` extends never
522
- ? TTo & `.${string}` extends never
523
- ? TTo & `/${string}` extends never
524
- ? AddLeadingSlash<JoinPath<TFrom, TTo>>
525
- : TTo
526
- : ResolveCurrentPath<TFrom, TTo>
527
- : ResolveParentPath<TFrom, TTo>
534
+ : TTo extends string
535
+ ? TFrom extends string
536
+ ? TTo extends `/${string}`
537
+ ? TTo
538
+ : TTo extends `..${string}`
539
+ ? ResolveParentPath<TFrom, TTo>
540
+ : TTo extends `.${string}`
541
+ ? ResolveCurrentPath<TFrom, TTo>
542
+ : AddLeadingSlash<JoinPath<TFrom, TTo>>
528
543
  : never
529
544
  : never
530
545
 
@@ -555,10 +570,10 @@ const preloadWarning = 'Error preloading route! ☝️'
555
570
 
556
571
  export function useLinkProps<
557
572
  TRouter extends AnyRouter = RegisteredRouter,
558
- TFrom extends RoutePaths<TRouter['routeTree']> | string = string,
559
- TTo extends string = '',
560
- TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,
561
- TMaskTo extends string = '',
573
+ const TFrom extends string = string,
574
+ const TTo extends string | undefined = undefined,
575
+ const TMaskFrom extends string = TFrom,
576
+ const TMaskTo extends string = '',
562
577
  >(
563
578
  options: UseLinkPropsOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
564
579
  forwardedRef?: React.ForwardedRef<Element>,
@@ -976,10 +991,10 @@ export type CreateLinkProps = LinkProps<
976
991
 
977
992
  export type LinkComponent<TComp> = <
978
993
  TRouter extends AnyRouter = RegisteredRouter,
979
- TFrom extends string = string,
980
- TTo extends string | undefined = undefined,
981
- TMaskFrom extends string = TFrom,
982
- TMaskTo extends string = '',
994
+ const TFrom extends string = string,
995
+ const TTo extends string | undefined = undefined,
996
+ const TMaskFrom extends string = TFrom,
997
+ const TMaskTo extends string = '',
983
998
  >(
984
999
  props: LinkComponentProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
985
1000
  ) => React.ReactElement
package/src/redirects.ts CHANGED
@@ -37,10 +37,10 @@ export type ResolvedRedirect<
37
37
 
38
38
  export function redirect<
39
39
  TRouter extends RegisteredRouter,
40
- TTo extends string | undefined,
41
- TFrom extends string = string,
42
- TMaskFrom extends string = TFrom,
43
- TMaskTo extends string = '',
40
+ const TTo extends string | undefined,
41
+ const TFrom extends string = string,
42
+ const TMaskFrom extends string = TFrom,
43
+ const TMaskTo extends string = '',
44
44
  >(
45
45
  opts: Redirect<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,
46
46
  ): Redirect<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> {
package/src/route.ts CHANGED
@@ -800,9 +800,10 @@ export type RouteTypesById<TRouter extends AnyRouter, TId> = RouteById<
800
800
  TId
801
801
  >['types']
802
802
 
803
- export function getRouteApi<TId, TRouter extends AnyRouter = RegisteredRouter>(
804
- id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>,
805
- ) {
803
+ export function getRouteApi<
804
+ const TId,
805
+ TRouter extends AnyRouter = RegisteredRouter,
806
+ >(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>) {
806
807
  return new RouteApi<TId, TRouter>({ id })
807
808
  }
808
809
 
package/src/routeInfo.ts CHANGED
@@ -71,6 +71,12 @@ export type CurrentPath<TOption> = 'always' extends TOption
71
71
  ? '.'
72
72
  : './' | '.'
73
73
 
74
+ export type ToPath<TOption, TTo extends string> = 'always' extends TOption
75
+ ? `${TTo}/`
76
+ : 'never' extends TOption
77
+ ? TTo
78
+ : TTo | `${TTo}/`
79
+
74
80
  export type CatchAllPaths<TOption> = CurrentPath<TOption> | ParentPath<TOption>
75
81
 
76
82
  export type CodeRoutesByPath<TRouteTree extends AnyRoute> =
@@ -69,7 +69,7 @@ export type UseLoaderDataRoute<out TId> = <
69
69
 
70
70
  export function useLoaderData<
71
71
  TRouter extends AnyRouter = RegisteredRouter,
72
- TFrom extends string | undefined = undefined,
72
+ const TFrom extends string | undefined = undefined,
73
73
  TStrict extends boolean = true,
74
74
  TSelected = unknown,
75
75
  TStructuralSharing extends boolean = boolean,
@@ -48,7 +48,7 @@ export type UseLoaderDepsRoute<out TId> = <
48
48
 
49
49
  export function useLoaderDeps<
50
50
  TRouter extends AnyRouter = RegisteredRouter,
51
- TFrom extends string | undefined = undefined,
51
+ const TFrom extends string | undefined = undefined,
52
52
  TSelected = unknown,
53
53
  TStructuralSharing extends boolean = boolean,
54
54
  >(
package/src/useMatch.tsx CHANGED
@@ -76,7 +76,7 @@ type ThrowConstraint<
76
76
 
77
77
  export function useMatch<
78
78
  TRouter extends AnyRouter = RegisteredRouter,
79
- TFrom extends string | undefined = undefined,
79
+ const TFrom extends string | undefined = undefined,
80
80
  TStrict extends boolean = true,
81
81
  TThrow extends boolean = true,
82
82
  TSelected = unknown,
@@ -49,10 +49,10 @@ export function useNavigate<
49
49
 
50
50
  export function Navigate<
51
51
  TRouter extends AnyRouter = RegisteredRouter,
52
- TFrom extends string = string,
53
- TTo extends string | undefined = '.',
54
- TMaskFrom extends string = TFrom,
55
- TMaskTo extends string = '.',
52
+ const TFrom extends string = string,
53
+ const TTo extends string | undefined = undefined,
54
+ const TMaskFrom extends string = TFrom,
55
+ const TMaskTo extends string = '',
56
56
  >(props: NavigateOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): null {
57
57
  const { navigate } = useRouter()
58
58
 
package/src/useParams.tsx CHANGED
@@ -63,7 +63,7 @@ export type UseParamsRoute<out TFrom> = <
63
63
 
64
64
  export function useParams<
65
65
  TRouter extends AnyRouter = RegisteredRouter,
66
- TFrom extends string | undefined = undefined,
66
+ const TFrom extends string | undefined = undefined,
67
67
  TStrict extends boolean = true,
68
68
  TSelected = unknown,
69
69
  TStructuralSharing extends boolean = boolean,
@@ -46,7 +46,7 @@ export type UseRouteContextRoute<out TFrom> = <
46
46
 
47
47
  export function useRouteContext<
48
48
  TRouter extends AnyRouter = RegisteredRouter,
49
- TFrom extends string | undefined = undefined,
49
+ const TFrom extends string | undefined = undefined,
50
50
  TStrict extends boolean = true,
51
51
  TSelected = unknown,
52
52
  >(
package/src/useSearch.tsx CHANGED
@@ -63,7 +63,7 @@ export type UseSearchRoute<out TFrom> = <
63
63
 
64
64
  export function useSearch<
65
65
  TRouter extends AnyRouter = RegisteredRouter,
66
- TFrom extends string | undefined = undefined,
66
+ const TFrom extends string | undefined = undefined,
67
67
  TStrict extends boolean = true,
68
68
  TSelected = unknown,
69
69
  TStructuralSharing extends boolean = boolean,