@tanstack/react-router 0.0.1-beta.184 → 0.0.1-beta.186

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.
@@ -25,6 +25,8 @@ Object.defineProperty(exports, 'useStore', {
25
25
  get: function () { return reactStore.useStore; }
26
26
  });
27
27
  exports.Block = react.Block;
28
+ exports.CatchBoundary = react.CatchBoundary;
29
+ exports.CatchBoundaryImpl = react.CatchBoundaryImpl;
28
30
  exports.ErrorComponent = react.ErrorComponent;
29
31
  exports.Link = react.Link;
30
32
  exports.MatchRoute = react.MatchRoute;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -126,6 +126,8 @@ function useLinkProps(options) {
126
126
  search,
127
127
  params,
128
128
  to = '.',
129
+ state,
130
+ mask,
129
131
  preload,
130
132
  preloadDelay,
131
133
  replace,
@@ -181,7 +183,7 @@ function useLinkProps(options) {
181
183
  ...resolvedActiveProps,
182
184
  ...resolvedInactiveProps,
183
185
  ...rest,
184
- href: disabled ? undefined : next.href,
186
+ href: disabled ? undefined : next.maskedLocation ? next.maskedLocation.href : next.href,
185
187
  onClick: composeHandlers([onClick, handleReactClick]),
186
188
  onFocus: composeHandlers([onFocus, handleFocus]),
187
189
  onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),
@@ -248,11 +250,25 @@ function Matches() {
248
250
  return state.renderedMatchIds;
249
251
  }
250
252
  });
253
+ const locationKey = useRouterState({
254
+ select: d => d.resolvedLocation.state?.key
255
+ });
256
+ const route = router.getRoute(routerCore.rootRouteId);
257
+ const errorComponent = React__namespace.useCallback(props => {
258
+ return /*#__PURE__*/React__namespace.createElement(ErrorComponent, {
259
+ ...props,
260
+ useMatch: route.useMatch,
261
+ useContext: route.useContext,
262
+ useRouteContext: route.useRouteContext,
263
+ useSearch: route.useSearch,
264
+ useParams: route.useParams
265
+ });
266
+ }, [route]);
251
267
  return /*#__PURE__*/React__namespace.createElement(matchIdsContext.Provider, {
252
268
  value: [undefined, ...matchIds]
253
269
  }, /*#__PURE__*/React__namespace.createElement(CatchBoundary, {
254
- errorComponent: ErrorComponent,
255
- route: router.getRoute(routerCore.rootRouteId),
270
+ resetKey: locationKey,
271
+ errorComponent: errorComponent,
256
272
  onCatch: () => {
257
273
  warning__default["default"](false, `Error in router! Consider setting an 'errorComponent' in your RootRoute! 👍`);
258
274
  }
@@ -376,10 +392,23 @@ function Match({
376
392
  const matchId = matchIds[0];
377
393
  const routeId = router.getRouteMatch(matchId).routeId;
378
394
  const route = router.getRoute(routeId);
395
+ const locationKey = useRouterState({
396
+ select: s => s.resolvedLocation.state?.key
397
+ });
379
398
  const PendingComponent = route.options.pendingComponent ?? router.options.defaultPendingComponent ?? defaultPending;
380
- const errorComponent = route.options.errorComponent ?? router.options.defaultErrorComponent ?? ErrorComponent;
399
+ const routeErrorComponent = route.options.errorComponent ?? router.options.defaultErrorComponent ?? ErrorComponent;
381
400
  const ResolvedSuspenseBoundary = route.options.wrapInSuspense ?? !route.isRoot ? React__namespace.Suspense : SafeFragment;
382
- const ResolvedCatchBoundary = !!errorComponent ? CatchBoundary : SafeFragment;
401
+ const ResolvedCatchBoundary = !!routeErrorComponent ? CatchBoundary : SafeFragment;
402
+ const errorComponent = React__namespace.useCallback(props => {
403
+ return /*#__PURE__*/React__namespace.createElement(routeErrorComponent, {
404
+ ...props,
405
+ useMatch: route.useMatch,
406
+ useContext: route.useContext,
407
+ useRouteContext: route.useRouteContext,
408
+ useSearch: route.useSearch,
409
+ useParams: route.useParams
410
+ });
411
+ }, [route]);
383
412
  return /*#__PURE__*/React__namespace.createElement(matchIdsContext.Provider, {
384
413
  value: matchIds
385
414
  }, /*#__PURE__*/React__namespace.createElement(ResolvedSuspenseBoundary, {
@@ -391,9 +420,8 @@ function Match({
391
420
  useParams: route.useParams
392
421
  })
393
422
  }, /*#__PURE__*/React__namespace.createElement(ResolvedCatchBoundary, {
394
- key: route.id,
423
+ resetKey: locationKey,
395
424
  errorComponent: errorComponent,
396
- route: route,
397
425
  onCatch: () => {
398
426
  warning__default["default"](false, `Error in route match: ${matchId}`);
399
427
  }
@@ -469,57 +497,45 @@ function useHydrate() {
469
497
  // there has to be a better way to reset error boundaries when the
470
498
  // router's location key changes.
471
499
 
472
- class CatchBoundary extends React__namespace.Component {
473
- state = {
474
- error: false,
475
- info: undefined
476
- };
477
- componentDidCatch(error, info) {
478
- this.props.onCatch(error, info);
479
- this.setState({
480
- error,
481
- info
482
- });
483
- }
484
- render() {
485
- return /*#__PURE__*/React__namespace.createElement(CatchBoundaryInner, _rollupPluginBabelHelpers["extends"]({}, this.props, {
486
- errorState: this.state,
487
- reset: () => this.setState({})
488
- }));
489
- }
490
- }
491
- function CatchBoundaryInner(props) {
492
- const locationKey = useRouterState({
493
- select: d => d.resolvedLocation.key
494
- });
495
- const [activeErrorState, setActiveErrorState] = React__namespace.useState(props.errorState);
500
+ function CatchBoundary(props) {
496
501
  const errorComponent = props.errorComponent ?? ErrorComponent;
497
- const prevKeyRef = React__namespace.useRef('');
498
- React__namespace.useEffect(() => {
499
- if (activeErrorState) {
500
- if (locationKey !== prevKeyRef.current) {
501
- setActiveErrorState({});
502
+ return /*#__PURE__*/React__namespace.createElement(CatchBoundaryImpl, {
503
+ resetKey: props.resetKey,
504
+ onCatch: props.onCatch,
505
+ children: ({
506
+ error
507
+ }) => {
508
+ if (error) {
509
+ return /*#__PURE__*/React__namespace.createElement(errorComponent, {
510
+ error
511
+ });
502
512
  }
513
+ return props.children;
503
514
  }
504
- prevKeyRef.current = locationKey;
505
- }, [activeErrorState, locationKey]);
506
- React__namespace.useEffect(() => {
507
- if (props.errorState.error) {
508
- setActiveErrorState(props.errorState);
515
+ });
516
+ }
517
+ class CatchBoundaryImpl extends React__namespace.Component {
518
+ state = {
519
+ error: null
520
+ };
521
+ static getDerivedStateFromError(error) {
522
+ return {
523
+ error
524
+ };
525
+ }
526
+ componentDidUpdate(prevProps, prevState) {
527
+ if (prevState.error && prevProps.resetKey !== this.props.resetKey) {
528
+ this.setState({
529
+ error: null
530
+ });
509
531
  }
510
- // props.reset()
511
- }, [props.errorState.error]);
512
- if (props.errorState.error && activeErrorState.error) {
513
- return /*#__PURE__*/React__namespace.createElement(errorComponent, {
514
- ...activeErrorState,
515
- useMatch: props.route.useMatch,
516
- useContext: props.route.useContext,
517
- useRouteContext: props.route.useRouteContext,
518
- useSearch: props.route.useSearch,
519
- useParams: props.route.useParams
520
- });
521
532
  }
522
- return props.children;
533
+ componentDidCatch(error) {
534
+ this.props.onCatch?.(error);
535
+ }
536
+ render() {
537
+ return this.props.children(this.state);
538
+ }
523
539
  }
524
540
  function ErrorComponent({
525
541
  error
@@ -606,6 +622,8 @@ function shallow(objA, objB) {
606
622
  }
607
623
 
608
624
  exports.Block = Block;
625
+ exports.CatchBoundary = CatchBoundary;
626
+ exports.CatchBoundaryImpl = CatchBoundaryImpl;
609
627
  exports.ErrorComponent = ErrorComponent;
610
628
  exports.Link = Link;
611
629
  exports.MatchRoute = MatchRoute;
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sources":["../../src/react.tsx"],"sourcesContent":["import * as React from 'react'\nimport { NoInfer, useStore } from '@tanstack/react-store'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n functionalUpdate,\n last,\n pick,\n MatchRouteOptions,\n RegisteredRouter,\n RouterOptions,\n Router,\n RouteMatch,\n RouteByPath,\n AnyRoute,\n AnyRouteProps,\n LinkOptions,\n ToOptions,\n ResolveRelativePath,\n NavigateOptions,\n ResolveFullPath,\n ResolveId,\n AnySearchSchema,\n ParsePathParams,\n MergeParamsFromParent,\n RouteContext,\n AnyContext,\n UseLoaderResult,\n ResolveFullSearchSchema,\n Route,\n RouteConstraints,\n RoutePaths,\n RoutesById,\n RouteIds,\n RouteById,\n ParseRoute,\n AllParams,\n rootRouteId,\n AnyPathParams,\n} from '@tanstack/router-core'\n\ndeclare module '@tanstack/router-core' {\n interface RegisterRouteComponent<\n TLoader = unknown,\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n RouteComponent: RouteComponent<\n RouteProps<\n TLoader,\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >\n >\n }\n\n interface RegisterErrorRouteComponent<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n ErrorRouteComponent: RouteComponent<\n ErrorRouteProps<TFullSearchSchema, TAllParams, TRouteContext, TAllContext>\n >\n }\n\n interface RegisterPendingRouteComponent<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n PendingRouteComponent: RouteComponent<\n PendingRouteProps<\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >\n >\n }\n\n interface Route<\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 TLoader = unknown,\n TSearchSchema extends RouteConstraints['TSearchSchema'] = {},\n TFullSearchSchema extends RouteConstraints['TFullSearchSchema'] = ResolveFullSearchSchema<\n TParentRoute,\n TSearchSchema\n >,\n TParams extends RouteConstraints['TParams'] = Record<\n ParsePathParams<TPath>,\n string\n >,\n TAllParams extends RouteConstraints['TAllParams'] = MergeParamsFromParent<\n TParentRoute['types']['allParams'],\n TParams\n >,\n TParentContext extends RouteConstraints['TParentContext'] = TParentRoute['types']['routeContext'],\n TAllParentContext extends RouteConstraints['TAllParentContext'] = TParentRoute['types']['context'],\n TRouteContext extends RouteConstraints['TRouteContext'] = RouteContext,\n TAllContext extends RouteConstraints['TAllContext'] = MergeParamsFromParent<\n TParentRoute['types']['context'],\n TRouteContext\n >,\n TRouterContext extends RouteConstraints['TRouterContext'] = AnyContext,\n TChildren extends RouteConstraints['TChildren'] = unknown,\n TRouteTree extends RouteConstraints['TRouteTree'] = AnyRoute,\n > {\n useMatch: <TSelected = TAllContext>(opts?: {\n select?: (search: TAllContext) => TSelected\n }) => TSelected\n useLoader: <TSelected = TLoader>(opts?: {\n select?: (search: TLoader) => TSelected\n }) => UseLoaderResult<TSelected>\n useContext: <TSelected = TAllContext>(opts?: {\n select?: (search: TAllContext) => TSelected\n }) => TSelected\n useRouteContext: <TSelected = TRouteContext>(opts?: {\n select?: (search: TRouteContext) => TSelected\n }) => TSelected\n useSearch: <TSelected = TFullSearchSchema>(opts?: {\n select?: (search: TFullSearchSchema) => TSelected\n }) => TSelected\n useParams: <TSelected = TAllParams>(opts?: {\n select?: (search: TAllParams) => TSelected\n }) => TSelected\n }\n\n interface RegisterRouteProps<\n TLoader = unknown,\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n RouteProps: RouteProps<\n TLoader,\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >\n }\n\n interface RegisterPendingRouteProps<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n PendingRouteProps: PendingRouteProps<\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >\n }\n\n interface RegisterErrorRouteProps<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n ErrorRouteProps: ErrorRouteProps\n }\n}\n\nexport type RouteProps<\n TLoader = unknown,\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n> = {\n useLoader: <TSelected = TLoader>(opts?: {\n select?: (search: TLoader) => TSelected\n }) => UseLoaderResult<TSelected>\n useMatch: <TSelected = TAllContext>(opts?: {\n select?: (search: TAllContext) => TSelected\n }) => TSelected\n useContext: <TSelected = TAllContext>(opts?: {\n select?: (search: TAllContext) => TSelected\n }) => TSelected\n useRouteContext: <TSelected = TRouteContext>(opts?: {\n select?: (search: TRouteContext) => TSelected\n }) => TSelected\n useSearch: <TSelected = TFullSearchSchema>(opts?: {\n select?: (search: TFullSearchSchema) => TSelected\n }) => TSelected\n useParams: <TSelected = TAllParams>(opts?: {\n select?: (search: TAllParams) => TSelected\n }) => TSelected\n}\n\nexport type ErrorRouteProps<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n> = {\n error: unknown\n info: { componentStack: string }\n} & Omit<\n RouteProps<\n unknown,\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >,\n 'useLoader'\n>\n\nexport type PendingRouteProps<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n> = Omit<\n RouteProps<\n unknown,\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >,\n 'useLoader'\n>\n\nRoute.__onInit = (route) => {\n Object.assign(route, {\n useMatch: (opts = {}) => {\n return useMatch({ ...opts, from: route.id }) as any\n },\n useLoader: (opts = {}) => {\n return useLoader({ ...opts, from: route.id }) as any\n },\n useContext: (opts: any = {}) => {\n return useMatch({\n ...opts,\n from: route.id,\n select: (d: any) => (opts?.select ? opts.select(d.context) : d.context),\n } as any)\n },\n useRouteContext: (opts: any = {}) => {\n return useMatch({\n ...opts,\n from: route.id,\n select: (d: any) =>\n opts?.select ? opts.select(d.routeContext) : d.routeContext,\n } as any)\n },\n useSearch: (opts = {}) => {\n return useSearch({ ...opts, from: route.id } as any)\n },\n useParams: (opts = {}) => {\n return useParams({ ...opts, from: route.id } as any)\n },\n })\n}\n\n//\n\ntype ReactNode = any\n\nexport type SyncRouteComponent<TProps> =\n | ((props: TProps) => ReactNode)\n | React.LazyExoticComponent<(props: TProps) => ReactNode>\n\nexport type AsyncRouteComponent<TProps> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<void>\n}\n\nexport type ErrorRouteComponent = AsyncRouteComponent<ErrorRouteComponentProps>\n\nexport type ErrorRouteComponentProps = {\n error: Error\n info: { componentStack: string }\n}\n\nexport type AnyRouteComponent = RouteComponent<AnyRouteProps>\n\nexport type RouteComponent<TProps> = AsyncRouteComponent<TProps>\n\nexport function lazyRouteComponent<\n T extends Record<string, any>,\n TKey extends keyof T = 'default',\n>(\n importer: () => Promise<T>,\n exportName?: TKey,\n): T[TKey] extends (props: infer TProps) => any\n ? AsyncRouteComponent<TProps>\n : never {\n let loadPromise: Promise<any>\n\n const load = () => {\n if (!loadPromise) {\n loadPromise = importer()\n }\n\n return loadPromise\n }\n\n const lazyComp = React.lazy(async () => {\n const moduleExports = await load()\n const comp = moduleExports[exportName ?? 'default']\n return {\n default: comp,\n }\n })\n\n ;(lazyComp as any).preload = load\n\n return lazyComp as any\n}\n\nexport type LinkPropsOptions<\n TFrom extends RoutePaths<RegisteredRouter['routeTree']> = '/',\n TTo extends string = '',\n> = LinkOptions<RegisteredRouter['routeTree'], TFrom, TTo> & {\n // A function that returns additional props for the `active` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n activeProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // A function that returns additional props for the `inactive` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n inactiveProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // If set to `true`, the link's underlying navigate() call will be wrapped in a `React.startTransition` call. Defaults to `true`.\n startTransition?: boolean\n}\n\nexport type MakeUseMatchRouteOptions<\n TFrom extends RoutePaths<RegisteredRouter['routeTree']> = '/',\n TTo extends string = '',\n> = ToOptions<RegisteredRouter['routeTree'], TFrom, TTo> & MatchRouteOptions\n\nexport type MakeMatchRouteOptions<\n TFrom extends RoutePaths<RegisteredRouter['routeTree']> = '/',\n TTo extends string = '',\n> = ToOptions<RegisteredRouter['routeTree'], TFrom, TTo> &\n MatchRouteOptions & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | ((\n params?: RouteByPath<\n RegisteredRouter['routeTree'],\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['types']['allParams'],\n ) => ReactNode)\n | React.ReactNode\n }\n\nexport type MakeLinkPropsOptions<\n TFrom extends string = '/',\n TTo extends string = '',\n> = LinkPropsOptions<TFrom, TTo> & React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TFrom extends RoutePaths<RegisteredRouter['routeTree']> = '/',\n TTo extends string = '',\n> = LinkPropsOptions<TFrom, TTo> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n }\n\nexport type PromptProps = {\n message: string\n condition?: boolean | any\n children?: ReactNode\n}\n\n//\n\nexport function useLinkProps<\n TFrom extends string = '/',\n TTo extends string = '',\n>(\n options: MakeLinkPropsOptions<TFrom, TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouter()\n\n const {\n // custom props\n type,\n children,\n target,\n activeProps = () => ({ className: 'active' }),\n inactiveProps = () => ({}),\n activeOptions,\n disabled,\n // fromCurrent,\n hash,\n search,\n params,\n to = '.',\n preload,\n preloadDelay,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n ...rest\n } = options\n\n const linkInfo = router.buildLink(options as any)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const {\n handleClick,\n handleFocus,\n handleEnter,\n handleLeave,\n handleTouchStart,\n isActive,\n next,\n } = linkInfo\n\n const handleReactClick = (e: Event) => {\n if (options.startTransition ?? true) {\n ;(React.startTransition || ((d) => d))(() => {\n handleClick(e)\n })\n }\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.filter(Boolean).forEach((handler) => {\n if (e.defaultPrevented) return\n handler!(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> = isActive\n ? functionalUpdate(activeProps as any, {}) ?? {}\n : {}\n\n // Get the inactive props\n const resolvedInactiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? {} : functionalUpdate(inactiveProps, {}) ?? {}\n\n return {\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n ...rest,\n href: disabled ? undefined : next.href,\n onClick: composeHandlers([onClick, handleReactClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\n target,\n style: {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style,\n },\n className:\n [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n ...(disabled\n ? {\n role: 'link',\n 'aria-disabled': true,\n }\n : undefined),\n ['data-status']: isActive ? 'active' : undefined,\n }\n}\n\nexport interface LinkComponent<TProps extends Record<string, any> = {}> {\n <\n TFrom extends RoutePaths<RegisteredRouter['routeTree']> = '/',\n TTo extends string = '',\n >(\n props: MakeLinkOptions<TFrom, TTo> &\n TProps &\n React.RefAttributes<HTMLAnchorElement>,\n ): ReactNode\n}\n\nexport const Link: LinkComponent = React.forwardRef((props: any, ref) => {\n const linkProps = useLinkProps(props)\n\n return (\n <a\n {...{\n ref: ref as any,\n ...linkProps,\n children:\n typeof props.children === 'function'\n ? props.children({\n isActive: (linkProps as any)['data-status'] === 'active',\n })\n : props.children,\n }}\n />\n )\n}) as any\n\nexport function Navigate<\n TFrom extends RoutePaths<RegisteredRouter['routeTree']> = '/',\n TTo extends string = '',\n>(props: NavigateOptions<RegisteredRouter['routeTree'], TFrom, TTo>): null {\n const router = useRouter()\n\n React.useLayoutEffect(() => {\n router.navigate(props as any)\n }, [])\n\n return null\n}\n\nexport const matchIdsContext = React.createContext<string[]>(null!)\nexport const routerContext = React.createContext<RegisteredRouter>(null!)\n\nexport type RouterProps<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TDehydrated extends Record<string, any> = Record<string, any>,\n> = Omit<RouterOptions<TRouteTree, TDehydrated>, 'context'> & {\n router: Router<TRouteTree>\n context?: Partial<RouterOptions<TRouteTree, TDehydrated>['context']>\n}\n\nexport function useRouterState<TSelected = RegisteredRouter['state']>(opts?: {\n select: (state: RegisteredRouter['state']) => TSelected\n}): TSelected {\n const router = useRouter()\n return useStore(router.__store, opts?.select as any)\n}\n\nexport function RouterProvider<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TDehydrated extends Record<string, any> = Record<string, any>,\n>({ router, ...rest }: RouterProps<TRouteTree, TDehydrated>) {\n router.update(rest)\n\n React.useEffect(() => {\n let unsub\n\n React.startTransition(() => {\n unsub = router.mount()\n })\n\n return unsub\n }, [router])\n\n const Wrap = router.options.Wrap || React.Fragment\n\n return (\n <Wrap>\n <routerContext.Provider value={router as any}>\n <Matches />\n </routerContext.Provider>\n </Wrap>\n )\n}\n\nfunction Matches() {\n const router = useRouter()\n\n const matchIds = useRouterState({\n select: (state) => {\n return state.renderedMatchIds\n },\n })\n\n return (\n <matchIdsContext.Provider value={[undefined!, ...matchIds]}>\n <CatchBoundary\n errorComponent={ErrorComponent}\n route={router.getRoute(rootRouteId)}\n onCatch={() => {\n warning(\n false,\n `Error in router! Consider setting an 'errorComponent' in your RootRoute! 👍`,\n )\n }}\n >\n <Outlet />\n </CatchBoundary>\n </matchIdsContext.Provider>\n )\n}\n\nexport function useRouter(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(value, 'useRouter must be used inside a <Router> component!')\n return value\n}\n\nexport function useMatches<T = RouteMatch[]>(opts?: {\n select?: (matches: RouteMatch[]) => T\n}): T {\n const matchIds = React.useContext(matchIdsContext)\n\n return useRouterState({\n select: (state) => {\n const matches = state.renderedMatches.slice(\n state.renderedMatches.findIndex((d) => d.id === matchIds[0]),\n )\n return opts?.select ? opts.select(matches) : (matches as T)\n },\n })\n}\n\ntype StrictOrFrom<TFrom> =\n | {\n from: TFrom\n strict?: true\n }\n | {\n from?: never\n strict: false\n }\n\nexport function useMatch<\n TFrom extends RouteIds<RegisteredRouter['routeTree']>,\n TStrict extends boolean = true,\n TRouteMatchState = RouteMatch<\n RegisteredRouter['routeTree'],\n RouteById<RegisteredRouter['routeTree'], TFrom>\n >,\n TSelected = TRouteMatchState,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (match: TRouteMatchState) => TSelected\n },\n): TStrict extends true ? TRouteMatchState : TRouteMatchState | undefined {\n const router = useRouter()\n const nearestMatchId = React.useContext(matchIdsContext)[0]!\n const nearestMatchRouteId = router.getRouteMatch(nearestMatchId)?.routeId\n\n const matchRouteId = useRouterState({\n select: (state) => {\n const match = opts?.from\n ? state.renderedMatches.find((d) => d.routeId === opts?.from)\n : state.renderedMatches.find((d) => d.id === nearestMatchId)\n\n return match!.routeId\n },\n })\n\n if (opts?.strict ?? true) {\n invariant(\n nearestMatchRouteId == matchRouteId,\n `useMatch(\"${\n matchRouteId as string\n }\") is being called in a component that is meant to render the '${nearestMatchRouteId}' route. Did you mean to 'useMatch(\"${\n matchRouteId as string\n }\", { strict: false })' or 'useRoute(\"${\n matchRouteId as string\n }\")' instead?`,\n )\n }\n\n const matchSelection = useRouterState({\n select: (state) => {\n const match = opts?.from\n ? state.renderedMatches.find((d) => d.routeId === opts?.from)\n : state.renderedMatches.find((d) => d.id === nearestMatchId)\n\n invariant(\n match,\n `Could not find ${\n opts?.from\n ? `an active match from \"${opts.from}\"`\n : 'a nearest match!'\n }`,\n )\n\n return opts?.select ? opts.select(match as any) : match\n },\n })\n\n return matchSelection as any\n}\n\nexport type RouteFromIdOrRoute<T> = T extends ParseRoute<\n RegisteredRouter['routeTree']\n>\n ? T\n : T extends RouteIds<RegisteredRouter['routeTree']>\n ? RoutesById<RegisteredRouter['routeTree']>[T]\n : T extends string\n ? RouteIds<RegisteredRouter['routeTree']>\n : never\n\nexport function useLoader<\n TFrom extends RouteIds<RegisteredRouter['routeTree']>,\n TStrict extends boolean = true,\n TLoader = RouteById<RegisteredRouter['routeTree'], TFrom>['types']['loader'],\n TSelected = TLoader,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (search: TLoader) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n return useMatch({\n ...(opts as any),\n select: (match: RouteMatch) =>\n opts?.select\n ? opts?.select(match.loaderData as TLoader)\n : match.loaderData,\n })\n}\n\nexport function useRouterContext<\n TFrom extends RouteIds<RegisteredRouter['routeTree']>,\n TStrict extends boolean = true,\n TContext = RouteById<\n RegisteredRouter['routeTree'],\n TFrom\n >['types']['context'],\n TSelected = TContext,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (search: TContext) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n return useMatch({\n ...(opts as any),\n select: (match: RouteMatch) =>\n opts?.select ? opts.select(match.context as TContext) : match.context,\n })\n}\n\nexport function useRouteContext<\n TFrom extends RouteIds<RegisteredRouter['routeTree']>,\n TStrict extends boolean = true,\n TRouteContext = RouteById<\n RegisteredRouter['routeTree'],\n TFrom\n >['types']['routeContext'],\n TSelected = TRouteContext,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (search: TRouteContext) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n return useMatch({\n ...(opts as any),\n select: (match: RouteMatch) =>\n opts?.select\n ? opts.select(match.routeContext as TRouteContext)\n : match.routeContext,\n })\n}\n\nexport function useSearch<\n TFrom extends RouteIds<RegisteredRouter['routeTree']>,\n TStrict extends boolean = true,\n TSearch = RouteById<\n RegisteredRouter['routeTree'],\n TFrom\n >['types']['fullSearchSchema'],\n TSelected = TSearch,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (search: TSearch) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n return useMatch({\n ...(opts as any),\n select: (match: RouteMatch) => {\n return opts?.select ? opts.select(match.search as TSearch) : match.search\n },\n })\n}\n\nexport function useParams<\n TFrom extends RouteIds<RegisteredRouter['routeTree']> = '/',\n TDefaultSelected = AllParams<RegisteredRouter['routeTree']> &\n RouteById<RegisteredRouter['routeTree'], TFrom>['types']['allParams'],\n TSelected = TDefaultSelected,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (search: TDefaultSelected) => TSelected\n },\n): TSelected {\n return useRouterState({\n select: (state: any) => {\n const params = (last(state.renderedMatches) as any)?.params\n return opts?.select ? opts.select(params) : params\n },\n })\n}\n\nexport function useNavigate<\n TDefaultFrom extends RoutePaths<RegisteredRouter['routeTree']> = '/',\n>(defaultOpts?: { from?: TDefaultFrom }) {\n const router = useRouter()\n return React.useCallback(\n <\n TFrom extends RoutePaths<RegisteredRouter['routeTree']> = TDefaultFrom,\n TTo extends string = '',\n >(\n opts?: NavigateOptions<RegisteredRouter['routeTree'], TFrom, TTo>,\n ) => {\n return router.navigate({ ...defaultOpts, ...(opts as any) })\n },\n [],\n )\n}\n\nexport function useMatchRoute() {\n const router = useRouter()\n\n return React.useCallback(\n <TFrom extends string = '/', TTo extends string = ''>(\n opts: MakeUseMatchRouteOptions<TFrom, TTo>,\n ) => {\n const { pending, caseSensitive, ...rest } = opts\n\n return router.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n },\n [],\n )\n}\n\nexport function MatchRoute<TFrom extends string = '/', TTo extends string = ''>(\n props: MakeMatchRouteOptions<TFrom, TTo>,\n): any {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props)\n\n if (typeof props.children === 'function') {\n return (props.children as any)(params)\n }\n\n return !!params ? props.children : null\n}\n\nexport function Outlet() {\n const matchIds = React.useContext(matchIdsContext).slice(1)\n\n if (!matchIds[0]) {\n return null\n }\n\n return <Match matchIds={matchIds} />\n}\n\nconst defaultPending = () => null\n\nfunction Match({ matchIds }: { matchIds: string[] }) {\n const router = useRouter()\n const matchId = matchIds[0]!\n const routeId = router.getRouteMatch(matchId)!.routeId\n const route = router.getRoute(routeId)\n\n const PendingComponent = (route.options.pendingComponent ??\n router.options.defaultPendingComponent ??\n defaultPending) as any\n\n const errorComponent =\n route.options.errorComponent ??\n router.options.defaultErrorComponent ??\n ErrorComponent\n\n const ResolvedSuspenseBoundary =\n route.options.wrapInSuspense ?? !route.isRoot\n ? React.Suspense\n : SafeFragment\n\n const ResolvedCatchBoundary = !!errorComponent ? CatchBoundary : SafeFragment\n\n return (\n <matchIdsContext.Provider value={matchIds}>\n <ResolvedSuspenseBoundary\n fallback={React.createElement(PendingComponent, {\n useMatch: route.useMatch,\n useContext: route.useContext,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })}\n >\n <ResolvedCatchBoundary\n key={route.id}\n errorComponent={errorComponent}\n route={route}\n onCatch={() => {\n warning(false, `Error in route match: ${matchId}`)\n }}\n >\n <MatchInner matchId={matchId} PendingComponent={PendingComponent} />\n </ResolvedCatchBoundary>\n </ResolvedSuspenseBoundary>\n </matchIdsContext.Provider>\n )\n}\n\nfunction MatchInner({\n matchId,\n PendingComponent,\n}: {\n matchId: string\n PendingComponent: any\n}): any {\n const router = useRouter()\n\n const match = useRouterState({\n select: (d) => {\n const match = d.matchesById[matchId]\n return pick(match!, ['status', 'loadPromise', 'routeId', 'error'])\n },\n })\n\n const route = router.getRoute(match.routeId)\n\n if (match.status === 'error') {\n throw match.error\n }\n\n if (match.status === 'pending') {\n return React.createElement(PendingComponent, {\n useLoader: route.useLoader,\n useMatch: route.useMatch,\n useContext: route.useContext,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })\n }\n\n if (match.status === 'success') {\n let comp = route.options.component ?? router.options.defaultComponent\n\n if (comp) {\n return React.createElement(comp, {\n useLoader: route.useLoader,\n useMatch: route.useMatch,\n useContext: route.useContext as any,\n useRouteContext: route.useRouteContext as any,\n useSearch: route.useSearch,\n useParams: route.useParams as any,\n } as any)\n }\n\n return <Outlet />\n }\n\n invariant(\n false,\n 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!',\n )\n}\n\nfunction SafeFragment(props: any) {\n return <>{props.children}</>\n}\n\nexport function useInjectHtml() {\n const router = useRouter()\n\n return React.useCallback(\n (html: string | (() => Promise<string> | string)) => {\n router.injectHtml(html)\n },\n [],\n )\n}\n\nexport function useDehydrate() {\n const router = useRouter()\n\n return React.useCallback(function dehydrate<T>(\n key: any,\n data: T | (() => Promise<T> | T),\n ) {\n return router.dehydrateData(key, data)\n },\n [])\n}\n\nexport function useHydrate() {\n const router = useRouter()\n\n return function hydrate<T = unknown>(key: any) {\n return router.hydrateData(key) as T\n }\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n route: AnyRoute\n onCatch: (error: any, info: any) => void\n}> {\n state = {\n error: false,\n info: undefined,\n }\n componentDidCatch(error: any, info: any) {\n this.props.onCatch(error, info)\n this.setState({\n error,\n info,\n })\n }\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n route: AnyRoute\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const locationKey = useRouterState({\n select: (d) => d.resolvedLocation.key,\n })\n\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const errorComponent = props.errorComponent ?? ErrorComponent\n const prevKeyRef = React.useRef('' as any)\n\n React.useEffect(() => {\n if (activeErrorState) {\n if (locationKey !== prevKeyRef.current) {\n setActiveErrorState({} as any)\n }\n }\n\n prevKeyRef.current = locationKey\n }, [activeErrorState, locationKey])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n // props.reset()\n }, [props.errorState.error])\n\n if (props.errorState.error && activeErrorState.error) {\n return React.createElement(errorComponent, {\n ...activeErrorState,\n useMatch: props.route.useMatch,\n useContext: props.route.useContext,\n useRouteContext: props.route.useRouteContext,\n useSearch: props.route.useSearch,\n useParams: props.route.useParams,\n })\n }\n\n return props.children\n}\n\nexport function ErrorComponent({ error }: { error: any }) {\n const [show, setShow] = React.useState(process.env.NODE_ENV !== 'production')\n\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <div style={{ display: 'flex', alignItems: 'center', gap: '.5rem' }}>\n <strong style={{ fontSize: '1rem' }}>Something went wrong!</strong>\n <button\n style={{\n appearance: 'none',\n fontSize: '.6em',\n border: '1px solid currentColor',\n padding: '.1rem .2rem',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n }}\n onClick={() => setShow((d) => !d)}\n >\n {show ? 'Hide Error' : 'Show Error'}\n </button>\n </div>\n <div style={{ height: '.25rem' }} />\n {show ? (\n <div>\n <pre\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.3rem',\n color: 'red',\n overflow: 'auto',\n }}\n >\n {error.message ? <code>{error.message}</code> : null}\n </pre>\n </div>\n ) : null}\n </div>\n )\n}\n\nexport function useBlocker(\n message: string,\n condition: boolean | any = true,\n): void {\n const router = useRouter()\n\n React.useEffect(() => {\n if (!condition) return\n\n let unblock = router.history.block((retry, cancel) => {\n if (window.confirm(message)) {\n unblock()\n retry()\n }\n })\n\n return unblock\n })\n}\n\nexport function Block({ message, condition, children }: PromptProps) {\n useBlocker(message, condition)\n return (children ?? null) as ReactNode\n}\n\nexport function shallow<T>(objA: T, objB: T) {\n if (Object.is(objA, objB)) {\n return true\n }\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return false\n }\n\n const keysA = Object.keys(objA)\n if (keysA.length !== Object.keys(objB).length) {\n return false\n }\n\n for (let i = 0; i < keysA.length; i++) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keysA[i] as string) ||\n !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof T])\n ) {\n return false\n }\n }\n return true\n}\n"],"names":["Route","__onInit","route","Object","assign","useMatch","opts","from","id","useLoader","useContext","select","d","context","useRouteContext","routeContext","useSearch","useParams","lazyRouteComponent","importer","exportName","loadPromise","load","lazyComp","React","lazy","moduleExports","comp","default","preload","useLinkProps","options","router","useRouter","type","children","target","activeProps","className","inactiveProps","activeOptions","disabled","hash","search","params","to","preloadDelay","replace","style","onClick","onFocus","onMouseEnter","onMouseLeave","onTouchStart","rest","linkInfo","buildLink","href","handleClick","handleFocus","handleEnter","handleLeave","handleTouchStart","isActive","next","handleReactClick","e","startTransition","composeHandlers","handlers","persist","filter","Boolean","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","undefined","join","role","Link","forwardRef","props","ref","linkProps","createElement","_extends","Navigate","useLayoutEffect","navigate","matchIdsContext","createContext","routerContext","useRouterState","useStore","__store","RouterProvider","update","useEffect","unsub","mount","Wrap","Fragment","Provider","value","Matches","matchIds","state","renderedMatchIds","CatchBoundary","errorComponent","ErrorComponent","getRoute","rootRouteId","onCatch","warning","Outlet","useMatches","matches","renderedMatches","slice","findIndex","nearestMatchId","nearestMatchRouteId","getRouteMatch","routeId","matchRouteId","match","find","strict","invariant","matchSelection","loaderData","useRouterContext","last","useNavigate","defaultOpts","useCallback","useMatchRoute","pending","caseSensitive","matchRoute","MatchRoute","Match","defaultPending","matchId","PendingComponent","pendingComponent","defaultPendingComponent","defaultErrorComponent","ResolvedSuspenseBoundary","wrapInSuspense","isRoot","Suspense","SafeFragment","ResolvedCatchBoundary","fallback","key","MatchInner","matchesById","pick","status","error","component","defaultComponent","useInjectHtml","html","injectHtml","useDehydrate","dehydrate","data","dehydrateData","useHydrate","hydrate","hydrateData","Component","info","componentDidCatch","setState","render","CatchBoundaryInner","errorState","reset","locationKey","resolvedLocation","activeErrorState","setActiveErrorState","useState","prevKeyRef","useRef","current","show","setShow","process","env","NODE_ENV","padding","maxWidth","display","alignItems","gap","fontSize","appearance","border","fontWeight","borderRadius","height","color","overflow","message","useBlocker","condition","unblock","history","block","retry","cancel","window","confirm","Block","shallow","objA","objB","is","keysA","keys","length","i","prototype","hasOwnProperty","call"],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sources":["../../src/react.tsx"],"sourcesContent":["import * as React from 'react'\nimport { NoInfer, useStore } from '@tanstack/react-store'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport {\n functionalUpdate,\n last,\n pick,\n MatchRouteOptions,\n RegisteredRouter,\n RouterOptions,\n Router,\n RouteMatch,\n RouteByPath,\n AnyRoute,\n AnyRouteProps,\n LinkOptions,\n ToOptions,\n ResolveRelativePath,\n NavigateOptions,\n ResolveFullPath,\n ResolveId,\n AnySearchSchema,\n ParsePathParams,\n MergeFromFromParent,\n RouteContext,\n AnyContext,\n UseLoaderResult,\n ResolveFullSearchSchema,\n Route,\n RouteConstraints,\n RoutePaths,\n RoutesById,\n RouteIds,\n RouteById,\n ParseRoute,\n AllParams,\n rootRouteId,\n AnyPathParams,\n Expand,\n ResolveAllParams,\n} from '@tanstack/router-core'\n\nconst useLayoutEffect =\n typeof document !== 'undefined' ? React.useLayoutEffect : React.useEffect\n\ndeclare module '@tanstack/router-core' {\n interface RegisterRouteComponent<\n TLoader = unknown,\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n RouteComponent: RouteComponent<\n RouteProps<\n TLoader,\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >\n >\n }\n\n interface RegisterErrorRouteComponent<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n ErrorRouteComponent: RouteComponent<\n ErrorRouteProps<TFullSearchSchema, TAllParams, TRouteContext, TAllContext>\n >\n }\n\n interface RegisterPendingRouteComponent<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n PendingRouteComponent: RouteComponent<\n PendingRouteProps<\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >\n >\n }\n\n interface Route<\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 TLoader = unknown,\n TSearchSchema extends RouteConstraints['TSearchSchema'] = {},\n TFullSearchSchema extends RouteConstraints['TFullSearchSchema'] = ResolveFullSearchSchema<\n TParentRoute,\n TSearchSchema\n >,\n TParams extends RouteConstraints['TParams'] = Expand<\n Record<ParsePathParams<TPath>, string>\n >,\n TAllParams extends RouteConstraints['TAllParams'] = ResolveAllParams<\n TParentRoute,\n TParams\n >,\n TParentContext extends RouteConstraints['TParentContext'] = TParentRoute['types']['routeContext'],\n TAllParentContext extends RouteConstraints['TAllParentContext'] = TParentRoute['types']['context'],\n TRouteContext extends RouteConstraints['TRouteContext'] = RouteContext,\n TAllContext extends RouteConstraints['TAllContext'] = MergeFromFromParent<\n TParentRoute['types']['context'],\n TRouteContext\n >,\n TRouterContext extends RouteConstraints['TRouterContext'] = AnyContext,\n TChildren extends RouteConstraints['TChildren'] = unknown,\n TRouteTree extends RouteConstraints['TRouteTree'] = AnyRoute,\n > {\n useMatch: <TSelected = TAllContext>(opts?: {\n select?: (search: TAllContext) => TSelected\n }) => TSelected\n useLoader: <TSelected = TLoader>(opts?: {\n select?: (search: TLoader) => TSelected\n }) => UseLoaderResult<TSelected>\n useContext: <TSelected = TAllContext>(opts?: {\n select?: (search: TAllContext) => TSelected\n }) => TSelected\n useRouteContext: <TSelected = TRouteContext>(opts?: {\n select?: (search: TRouteContext) => TSelected\n }) => TSelected\n useSearch: <TSelected = TFullSearchSchema>(opts?: {\n select?: (search: TFullSearchSchema) => TSelected\n }) => TSelected\n useParams: <TSelected = TAllParams>(opts?: {\n select?: (search: TAllParams) => TSelected\n }) => TSelected\n }\n\n interface RegisterRouteProps<\n TLoader = unknown,\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n RouteProps: RouteProps<\n TLoader,\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >\n }\n\n interface RegisterPendingRouteProps<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n PendingRouteProps: PendingRouteProps<\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >\n }\n\n interface RegisterErrorRouteProps<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n > {\n ErrorRouteProps: ErrorRouteProps\n }\n}\n\nexport type RouteProps<\n TLoader = unknown,\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n> = {\n useLoader: <TSelected = TLoader>(opts?: {\n select?: (search: TLoader) => TSelected\n }) => UseLoaderResult<TSelected>\n useMatch: <TSelected = TAllContext>(opts?: {\n select?: (search: TAllContext) => TSelected\n }) => TSelected\n useContext: <TSelected = TAllContext>(opts?: {\n select?: (search: TAllContext) => TSelected\n }) => TSelected\n useRouteContext: <TSelected = TRouteContext>(opts?: {\n select?: (search: TRouteContext) => TSelected\n }) => TSelected\n useSearch: <TSelected = TFullSearchSchema>(opts?: {\n select?: (search: TFullSearchSchema) => TSelected\n }) => TSelected\n useParams: <TSelected = TAllParams>(opts?: {\n select?: (search: TAllParams) => TSelected\n }) => TSelected\n}\n\nexport type ErrorRouteProps<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n> = {\n error: unknown\n info: { componentStack: string }\n} & Omit<\n RouteProps<\n unknown,\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >,\n 'useLoader'\n>\n\nexport type PendingRouteProps<\n TFullSearchSchema extends AnySearchSchema = AnySearchSchema,\n TAllParams extends AnyPathParams = AnyPathParams,\n TRouteContext extends AnyContext = AnyContext,\n TAllContext extends AnyContext = AnyContext,\n> = Omit<\n RouteProps<\n unknown,\n TFullSearchSchema,\n TAllParams,\n TRouteContext,\n TAllContext\n >,\n 'useLoader'\n>\n\nRoute.__onInit = (route) => {\n Object.assign(route, {\n useMatch: (opts = {}) => {\n return useMatch({ ...opts, from: route.id }) as any\n },\n useLoader: (opts = {}) => {\n return useLoader({ ...opts, from: route.id }) as any\n },\n useContext: (opts: any = {}) => {\n return useMatch({\n ...opts,\n from: route.id,\n select: (d: any) => (opts?.select ? opts.select(d.context) : d.context),\n } as any)\n },\n useRouteContext: (opts: any = {}) => {\n return useMatch({\n ...opts,\n from: route.id,\n select: (d: any) =>\n opts?.select ? opts.select(d.routeContext) : d.routeContext,\n } as any)\n },\n useSearch: (opts = {}) => {\n return useSearch({ ...opts, from: route.id } as any)\n },\n useParams: (opts = {}) => {\n return useParams({ ...opts, from: route.id } as any)\n },\n })\n}\n\n//\n\ntype ReactNode = any\n\nexport type SyncRouteComponent<TProps> =\n | ((props: TProps) => ReactNode)\n | React.LazyExoticComponent<(props: TProps) => ReactNode>\n\nexport type AsyncRouteComponent<TProps> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<void>\n}\n\nexport type ErrorRouteComponent = AsyncRouteComponent<ErrorRouteComponentProps>\n\nexport type ErrorRouteComponentProps = {\n error: Error\n info: { componentStack: string }\n}\n\nexport type AnyRouteComponent = RouteComponent<AnyRouteProps>\n\nexport type RouteComponent<TProps> = AsyncRouteComponent<TProps>\n\nexport function lazyRouteComponent<\n T extends Record<string, any>,\n TKey extends keyof T = 'default',\n>(\n importer: () => Promise<T>,\n exportName?: TKey,\n): T[TKey] extends (props: infer TProps) => any\n ? AsyncRouteComponent<TProps>\n : never {\n let loadPromise: Promise<any>\n\n const load = () => {\n if (!loadPromise) {\n loadPromise = importer()\n }\n\n return loadPromise\n }\n\n const lazyComp = React.lazy(async () => {\n const moduleExports = await load()\n const comp = moduleExports[exportName ?? 'default']\n return {\n default: comp,\n }\n })\n\n ;(lazyComp as any).preload = load\n\n return lazyComp as any\n}\n\nexport type LinkPropsOptions<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n> = LinkOptions<\n RegisteredRouter['routeTree'],\n TFrom,\n TTo,\n TMaskFrom,\n TMaskTo\n> & {\n // A function that returns additional props for the `active` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n activeProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // A function that returns additional props for the `inactive` state of this link. These props override other props passed to the link (`style`'s are merged, `className`'s are concatenated)\n inactiveProps?:\n | React.AnchorHTMLAttributes<HTMLAnchorElement>\n | (() => React.AnchorHTMLAttributes<HTMLAnchorElement>)\n // If set to `true`, the link's underlying navigate() call will be wrapped in a `React.startTransition` call. Defaults to `true`.\n startTransition?: boolean\n}\n\nexport type MakeUseMatchRouteOptions<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n> = ToOptions<RegisteredRouter['routeTree'], TFrom, TTo, TMaskFrom, TMaskTo> &\n MatchRouteOptions\n\nexport type MakeMatchRouteOptions<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n> = ToOptions<RegisteredRouter['routeTree'], TFrom, TTo, TMaskFrom, TMaskTo> &\n MatchRouteOptions & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | ((\n params?: RouteByPath<\n RegisteredRouter['routeTree'],\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['types']['allParams'],\n ) => ReactNode)\n | React.ReactNode\n }\n\nexport type MakeLinkPropsOptions<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n> = LinkPropsOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n\nexport type MakeLinkOptions<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n> = LinkPropsOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo> &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'> & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n }\n\nexport type PromptProps = {\n message: string\n condition?: boolean | any\n children?: ReactNode\n}\n\n//\n\nexport function useLinkProps<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n>(\n options: MakeLinkPropsOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouter()\n\n const {\n // custom props\n type,\n children,\n target,\n activeProps = () => ({ className: 'active' }),\n inactiveProps = () => ({}),\n activeOptions,\n disabled,\n // fromCurrent,\n hash,\n search,\n params,\n to = '.',\n state,\n mask,\n preload,\n preloadDelay,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n ...rest\n } = options\n\n const linkInfo = router.buildLink(options as any)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const {\n handleClick,\n handleFocus,\n handleEnter,\n handleLeave,\n handleTouchStart,\n isActive,\n next,\n } = linkInfo\n\n const handleReactClick = (e: Event) => {\n if (options.startTransition ?? true) {\n ;(React.startTransition || ((d) => d))(() => {\n handleClick(e)\n })\n }\n }\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n if (e.persist) e.persist()\n handlers.filter(Boolean).forEach((handler) => {\n if (e.defaultPrevented) return\n handler!(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> = isActive\n ? functionalUpdate(activeProps as any, {}) ?? {}\n : {}\n\n // Get the inactive props\n const resolvedInactiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? {} : functionalUpdate(inactiveProps, {}) ?? {}\n\n return {\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n ...rest,\n href: disabled\n ? undefined\n : next.maskedLocation\n ? next.maskedLocation.href\n : next.href,\n onClick: composeHandlers([onClick, handleReactClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\n target,\n style: {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style,\n },\n className:\n [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className,\n ]\n .filter(Boolean)\n .join(' ') || undefined,\n ...(disabled\n ? {\n role: 'link',\n 'aria-disabled': true,\n }\n : undefined),\n ['data-status']: isActive ? 'active' : undefined,\n }\n}\n\nexport interface LinkComponent<TProps extends Record<string, any> = {}> {\n <\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n >(\n props: MakeLinkOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo> &\n TProps &\n React.RefAttributes<HTMLAnchorElement>,\n ): ReactNode\n}\n\nexport const Link: LinkComponent = React.forwardRef((props: any, ref) => {\n const linkProps = useLinkProps(props)\n\n return (\n <a\n {...{\n ref: ref as any,\n ...linkProps,\n children:\n typeof props.children === 'function'\n ? props.children({\n isActive: (linkProps as any)['data-status'] === 'active',\n })\n : props.children,\n }}\n />\n )\n}) as any\n\nexport function Navigate<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n>(\n props: NavigateOptions<\n RegisteredRouter['routeTree'],\n TFrom,\n TTo,\n TMaskFrom,\n TMaskTo\n >,\n): null {\n const router = useRouter()\n\n React.useLayoutEffect(() => {\n router.navigate(props as any)\n }, [])\n\n return null\n}\n\nexport const matchIdsContext = React.createContext<string[]>(null!)\nexport const routerContext = React.createContext<RegisteredRouter>(null!)\n\nexport type RouterProps<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TDehydrated extends Record<string, any> = Record<string, any>,\n> = Omit<RouterOptions<TRouteTree, TDehydrated>, 'context'> & {\n router: Router<TRouteTree>\n context?: Partial<RouterOptions<TRouteTree, TDehydrated>['context']>\n}\n\nexport function useRouterState<TSelected = RegisteredRouter['state']>(opts?: {\n select: (state: RegisteredRouter['state']) => TSelected\n}): TSelected {\n const router = useRouter()\n return useStore(router.__store, opts?.select as any)\n}\n\nexport function RouterProvider<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TDehydrated extends Record<string, any> = Record<string, any>,\n>({ router, ...rest }: RouterProps<TRouteTree, TDehydrated>) {\n router.update(rest)\n\n React.useEffect(() => {\n let unsub\n\n React.startTransition(() => {\n unsub = router.mount()\n })\n\n return unsub\n }, [router])\n\n const Wrap = router.options.Wrap || React.Fragment\n\n return (\n <Wrap>\n <routerContext.Provider value={router as any}>\n <Matches />\n </routerContext.Provider>\n </Wrap>\n )\n}\n\nfunction Matches() {\n const router = useRouter()\n\n const matchIds = useRouterState({\n select: (state) => {\n return state.renderedMatchIds\n },\n })\n\n const locationKey = useRouterState({\n select: (d) => d.resolvedLocation.state?.key,\n })\n\n const route = router.getRoute(rootRouteId)\n\n const errorComponent = React.useCallback(\n (props: any) => {\n return React.createElement(ErrorComponent, {\n ...props,\n useMatch: route.useMatch,\n useContext: route.useContext,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })\n },\n [route],\n )\n\n return (\n <matchIdsContext.Provider value={[undefined!, ...matchIds]}>\n <CatchBoundary\n resetKey={locationKey}\n errorComponent={errorComponent}\n onCatch={() => {\n warning(\n false,\n `Error in router! Consider setting an 'errorComponent' in your RootRoute! 👍`,\n )\n }}\n >\n <Outlet />\n </CatchBoundary>\n </matchIdsContext.Provider>\n )\n}\n\nexport function useRouter(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(value, 'useRouter must be used inside a <Router> component!')\n return value\n}\n\nexport function useMatches<T = RouteMatch[]>(opts?: {\n select?: (matches: RouteMatch[]) => T\n}): T {\n const matchIds = React.useContext(matchIdsContext)\n\n return useRouterState({\n select: (state) => {\n const matches = state.renderedMatches.slice(\n state.renderedMatches.findIndex((d) => d.id === matchIds[0]),\n )\n return opts?.select ? opts.select(matches) : (matches as T)\n },\n })\n}\n\ntype StrictOrFrom<TFrom> =\n | {\n from: TFrom\n strict?: true\n }\n | {\n from?: never\n strict: false\n }\n\nexport function useMatch<\n TFrom extends RouteIds<RegisteredRouter['routeTree']>,\n TStrict extends boolean = true,\n TRouteMatchState = RouteMatch<\n RegisteredRouter['routeTree'],\n RouteById<RegisteredRouter['routeTree'], TFrom>\n >,\n TSelected = TRouteMatchState,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (match: TRouteMatchState) => TSelected\n },\n): TStrict extends true ? TRouteMatchState : TRouteMatchState | undefined {\n const router = useRouter()\n const nearestMatchId = React.useContext(matchIdsContext)[0]!\n const nearestMatchRouteId = router.getRouteMatch(nearestMatchId)?.routeId\n\n const matchRouteId = useRouterState({\n select: (state) => {\n const match = opts?.from\n ? state.renderedMatches.find((d) => d.routeId === opts?.from)\n : state.renderedMatches.find((d) => d.id === nearestMatchId)\n\n return match!.routeId\n },\n })\n\n if (opts?.strict ?? true) {\n invariant(\n nearestMatchRouteId == matchRouteId,\n `useMatch(\"${\n matchRouteId as string\n }\") is being called in a component that is meant to render the '${nearestMatchRouteId}' route. Did you mean to 'useMatch(\"${\n matchRouteId as string\n }\", { strict: false })' or 'useRoute(\"${\n matchRouteId as string\n }\")' instead?`,\n )\n }\n\n const matchSelection = useRouterState({\n select: (state) => {\n const match = opts?.from\n ? state.renderedMatches.find((d) => d.routeId === opts?.from)\n : state.renderedMatches.find((d) => d.id === nearestMatchId)\n\n invariant(\n match,\n `Could not find ${\n opts?.from\n ? `an active match from \"${opts.from}\"`\n : 'a nearest match!'\n }`,\n )\n\n return opts?.select ? opts.select(match as any) : match\n },\n })\n\n return matchSelection as any\n}\n\nexport type RouteFromIdOrRoute<T> = T extends ParseRoute<\n RegisteredRouter['routeTree']\n>\n ? T\n : T extends RouteIds<RegisteredRouter['routeTree']>\n ? RoutesById<RegisteredRouter['routeTree']>[T]\n : T extends string\n ? RouteIds<RegisteredRouter['routeTree']>\n : never\n\nexport function useLoader<\n TFrom extends RouteIds<RegisteredRouter['routeTree']>,\n TStrict extends boolean = true,\n TLoader = RouteById<RegisteredRouter['routeTree'], TFrom>['types']['loader'],\n TSelected = TLoader,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (search: TLoader) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n return useMatch({\n ...(opts as any),\n select: (match: RouteMatch) =>\n opts?.select\n ? opts?.select(match.loaderData as TLoader)\n : match.loaderData,\n })\n}\n\nexport function useRouterContext<\n TFrom extends RouteIds<RegisteredRouter['routeTree']>,\n TStrict extends boolean = true,\n TContext = RouteById<\n RegisteredRouter['routeTree'],\n TFrom\n >['types']['context'],\n TSelected = TContext,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (search: TContext) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n return useMatch({\n ...(opts as any),\n select: (match: RouteMatch) =>\n opts?.select ? opts.select(match.context as TContext) : match.context,\n })\n}\n\nexport function useRouteContext<\n TFrom extends RouteIds<RegisteredRouter['routeTree']>,\n TStrict extends boolean = true,\n TRouteContext = RouteById<\n RegisteredRouter['routeTree'],\n TFrom\n >['types']['routeContext'],\n TSelected = TRouteContext,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (search: TRouteContext) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n return useMatch({\n ...(opts as any),\n select: (match: RouteMatch) =>\n opts?.select\n ? opts.select(match.routeContext as TRouteContext)\n : match.routeContext,\n })\n}\n\nexport function useSearch<\n TFrom extends RouteIds<RegisteredRouter['routeTree']>,\n TStrict extends boolean = true,\n TSearch = RouteById<\n RegisteredRouter['routeTree'],\n TFrom\n >['types']['fullSearchSchema'],\n TSelected = TSearch,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (search: TSearch) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n return useMatch({\n ...(opts as any),\n select: (match: RouteMatch) => {\n return opts?.select ? opts.select(match.search as TSearch) : match.search\n },\n })\n}\n\nexport function useParams<\n TFrom extends RouteIds<RegisteredRouter['routeTree']> = '/',\n TDefaultSelected = AllParams<RegisteredRouter['routeTree']> &\n RouteById<RegisteredRouter['routeTree'], TFrom>['types']['allParams'],\n TSelected = TDefaultSelected,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (search: TDefaultSelected) => TSelected\n },\n): TSelected {\n return useRouterState({\n select: (state: any) => {\n const params = (last(state.renderedMatches) as any)?.params\n return opts?.select ? opts.select(params) : params\n },\n })\n}\n\nexport function useNavigate<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TDefaultFrom extends RoutePaths<TRouteTree> = '/',\n>(defaultOpts?: { from?: TDefaultFrom }) {\n const router = useRouter()\n return React.useCallback(\n <\n TFrom extends RoutePaths<TRouteTree> = TDefaultFrom,\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n >(\n opts?: NavigateOptions<\n RegisteredRouter['routeTree'],\n TFrom,\n TTo,\n TMaskFrom,\n TMaskTo\n >,\n ) => {\n return router.navigate({ ...defaultOpts, ...(opts as any) })\n },\n [],\n )\n}\n\nexport function useMatchRoute() {\n const router = useRouter()\n\n return React.useCallback(\n <\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n >(\n opts: MakeUseMatchRouteOptions<\n TRouteTree,\n TFrom,\n TTo,\n TMaskFrom,\n TMaskTo\n >,\n ) => {\n const { pending, caseSensitive, ...rest } = opts\n\n return router.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n },\n [],\n )\n}\n\nexport function MatchRoute<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n>(\n props: MakeMatchRouteOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>,\n): any {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props as any)\n\n if (typeof props.children === 'function') {\n return (props.children as any)(params)\n }\n\n return !!params ? props.children : null\n}\n\nexport function Outlet() {\n const matchIds = React.useContext(matchIdsContext).slice(1)\n\n if (!matchIds[0]) {\n return null\n }\n\n return <Match matchIds={matchIds} />\n}\n\nconst defaultPending = () => null\n\nfunction Match({ matchIds }: { matchIds: string[] }) {\n const router = useRouter()\n const matchId = matchIds[0]!\n const routeId = router.getRouteMatch(matchId)!.routeId\n const route = router.getRoute(routeId)\n const locationKey = useRouterState({\n select: (s) => s.resolvedLocation.state?.key,\n })\n\n const PendingComponent = (route.options.pendingComponent ??\n router.options.defaultPendingComponent ??\n defaultPending) as any\n\n const routeErrorComponent =\n route.options.errorComponent ??\n router.options.defaultErrorComponent ??\n ErrorComponent\n\n const ResolvedSuspenseBoundary =\n route.options.wrapInSuspense ?? !route.isRoot\n ? React.Suspense\n : SafeFragment\n\n const ResolvedCatchBoundary = !!routeErrorComponent\n ? CatchBoundary\n : SafeFragment\n\n const errorComponent = React.useCallback(\n (props: any) => {\n return React.createElement(routeErrorComponent, {\n ...props,\n useMatch: route.useMatch,\n useContext: route.useContext,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })\n },\n [route],\n )\n\n return (\n <matchIdsContext.Provider value={matchIds}>\n <ResolvedSuspenseBoundary\n fallback={React.createElement(PendingComponent, {\n useMatch: route.useMatch,\n useContext: route.useContext,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })}\n >\n <ResolvedCatchBoundary\n resetKey={locationKey}\n errorComponent={errorComponent}\n onCatch={() => {\n warning(false, `Error in route match: ${matchId}`)\n }}\n >\n <MatchInner matchId={matchId} PendingComponent={PendingComponent} />\n </ResolvedCatchBoundary>\n </ResolvedSuspenseBoundary>\n </matchIdsContext.Provider>\n )\n}\n\nfunction MatchInner({\n matchId,\n PendingComponent,\n}: {\n matchId: string\n PendingComponent: any\n}): any {\n const router = useRouter()\n\n const match = useRouterState({\n select: (d) => {\n const match = d.matchesById[matchId]\n return pick(match!, ['status', 'loadPromise', 'routeId', 'error'])\n },\n })\n\n const route = router.getRoute(match.routeId)\n\n if (match.status === 'error') {\n throw match.error\n }\n\n if (match.status === 'pending') {\n return React.createElement(PendingComponent, {\n useLoader: route.useLoader,\n useMatch: route.useMatch,\n useContext: route.useContext,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })\n }\n\n if (match.status === 'success') {\n let comp = route.options.component ?? router.options.defaultComponent\n\n if (comp) {\n return React.createElement(comp, {\n useLoader: route.useLoader,\n useMatch: route.useMatch,\n useContext: route.useContext as any,\n useRouteContext: route.useRouteContext as any,\n useSearch: route.useSearch,\n useParams: route.useParams as any,\n } as any)\n }\n\n return <Outlet />\n }\n\n invariant(\n false,\n 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!',\n )\n}\n\nfunction SafeFragment(props: any) {\n return <>{props.children}</>\n}\n\nexport function useInjectHtml() {\n const router = useRouter()\n\n return React.useCallback(\n (html: string | (() => Promise<string> | string)) => {\n router.injectHtml(html)\n },\n [],\n )\n}\n\nexport function useDehydrate() {\n const router = useRouter()\n\n return React.useCallback(function dehydrate<T>(\n key: any,\n data: T | (() => Promise<T> | T),\n ) {\n return router.dehydrateData(key, data)\n },\n [])\n}\n\nexport function useHydrate() {\n const router = useRouter()\n\n return function hydrate<T = unknown>(key: any) {\n return router.hydrateData(key) as T\n }\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\n\nexport function CatchBoundary(props: {\n resetKey: string\n children: any\n errorComponent?: any\n onCatch: (error: any) => void\n}) {\n const errorComponent = props.errorComponent ?? ErrorComponent\n\n return (\n <CatchBoundaryImpl\n resetKey={props.resetKey}\n onCatch={props.onCatch}\n children={({ error }) => {\n if (error) {\n return React.createElement(errorComponent, {\n error,\n })\n }\n\n return props.children\n }}\n />\n )\n}\n\nexport class CatchBoundaryImpl extends React.Component<{\n resetKey: string\n children: (props: { error: any; reset: () => void }) => any\n onCatch?: (error: any) => void\n}> {\n state = { error: null } as any\n static getDerivedStateFromError(error: any) {\n return { error }\n }\n componentDidUpdate(\n prevProps: Readonly<{\n resetKey: string\n children: (props: { error: any; reset: () => void }) => any\n onCatch?: ((error: any, info: any) => void) | undefined\n }>,\n prevState: any,\n ): void {\n if (prevState.error && prevProps.resetKey !== this.props.resetKey) {\n this.setState({ error: null })\n }\n }\n componentDidCatch(error: any) {\n this.props.onCatch?.(error)\n }\n render() {\n return this.props.children(this.state)\n }\n}\n\nexport function ErrorComponent({ error }: { error: any }) {\n const [show, setShow] = React.useState(process.env.NODE_ENV !== 'production')\n\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <div style={{ display: 'flex', alignItems: 'center', gap: '.5rem' }}>\n <strong style={{ fontSize: '1rem' }}>Something went wrong!</strong>\n <button\n style={{\n appearance: 'none',\n fontSize: '.6em',\n border: '1px solid currentColor',\n padding: '.1rem .2rem',\n fontWeight: 'bold',\n borderRadius: '.25rem',\n }}\n onClick={() => setShow((d) => !d)}\n >\n {show ? 'Hide Error' : 'Show Error'}\n </button>\n </div>\n <div style={{ height: '.25rem' }} />\n {show ? (\n <div>\n <pre\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.3rem',\n color: 'red',\n overflow: 'auto',\n }}\n >\n {error.message ? <code>{error.message}</code> : null}\n </pre>\n </div>\n ) : null}\n </div>\n )\n}\n\nexport function useBlocker(\n message: string,\n condition: boolean | any = true,\n): void {\n const router = useRouter()\n\n React.useEffect(() => {\n if (!condition) return\n\n let unblock = router.history.block((retry, cancel) => {\n if (window.confirm(message)) {\n unblock()\n retry()\n }\n })\n\n return unblock\n })\n}\n\nexport function Block({ message, condition, children }: PromptProps) {\n useBlocker(message, condition)\n return (children ?? null) as ReactNode\n}\n\nexport function shallow<T>(objA: T, objB: T) {\n if (Object.is(objA, objB)) {\n return true\n }\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return false\n }\n\n const keysA = Object.keys(objA)\n if (keysA.length !== Object.keys(objB).length) {\n return false\n }\n\n for (let i = 0; i < keysA.length; i++) {\n if (\n !Object.prototype.hasOwnProperty.call(objB, keysA[i] as string) ||\n !Object.is(objA[keysA[i] as keyof T], objB[keysA[i] as keyof T])\n ) {\n return false\n }\n }\n return true\n}\n"],"names":["Route","__onInit","route","Object","assign","useMatch","opts","from","id","useLoader","useContext","select","d","context","useRouteContext","routeContext","useSearch","useParams","lazyRouteComponent","importer","exportName","loadPromise","load","lazyComp","React","lazy","moduleExports","comp","default","preload","useLinkProps","options","router","useRouter","type","children","target","activeProps","className","inactiveProps","activeOptions","disabled","hash","search","params","to","state","mask","preloadDelay","replace","style","onClick","onFocus","onMouseEnter","onMouseLeave","onTouchStart","rest","linkInfo","buildLink","href","handleClick","handleFocus","handleEnter","handleLeave","handleTouchStart","isActive","next","handleReactClick","e","startTransition","composeHandlers","handlers","persist","filter","Boolean","forEach","handler","defaultPrevented","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","undefined","maskedLocation","join","role","Link","forwardRef","props","ref","linkProps","createElement","_extends","Navigate","useLayoutEffect","navigate","matchIdsContext","createContext","routerContext","useRouterState","useStore","__store","RouterProvider","update","useEffect","unsub","mount","Wrap","Fragment","Provider","value","Matches","matchIds","renderedMatchIds","locationKey","resolvedLocation","key","getRoute","rootRouteId","errorComponent","useCallback","ErrorComponent","CatchBoundary","resetKey","onCatch","warning","Outlet","useMatches","matches","renderedMatches","slice","findIndex","nearestMatchId","nearestMatchRouteId","getRouteMatch","routeId","matchRouteId","match","find","strict","invariant","matchSelection","loaderData","useRouterContext","last","useNavigate","defaultOpts","useMatchRoute","pending","caseSensitive","matchRoute","MatchRoute","Match","defaultPending","matchId","s","PendingComponent","pendingComponent","defaultPendingComponent","routeErrorComponent","defaultErrorComponent","ResolvedSuspenseBoundary","wrapInSuspense","isRoot","Suspense","SafeFragment","ResolvedCatchBoundary","fallback","MatchInner","matchesById","pick","status","error","component","defaultComponent","useInjectHtml","html","injectHtml","useDehydrate","dehydrate","data","dehydrateData","useHydrate","hydrate","hydrateData","CatchBoundaryImpl","Component","getDerivedStateFromError","componentDidUpdate","prevProps","prevState","setState","componentDidCatch","render","show","setShow","useState","process","env","NODE_ENV","padding","maxWidth","display","alignItems","gap","fontSize","appearance","border","fontWeight","borderRadius","height","color","overflow","message","useBlocker","condition","unblock","history","block","retry","cancel","window","confirm","Block","shallow","objA","objB","is","keysA","keys","length","i","prototype","hasOwnProperty","call"],"mappings":"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"}