@tanstack/react-router 0.0.1-beta.1 → 0.0.1-beta.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.
@@ -51,7 +51,7 @@ function MatchesProvider(props) {
51
51
  }
52
52
 
53
53
  const useRouterSubscription = router => {
54
- shim.useSyncExternalStore(cb => router.subscribe(() => cb()), () => router.state);
54
+ shim.useSyncExternalStore(cb => router.subscribe(() => cb()), () => router.state, () => router.state);
55
55
  };
56
56
 
57
57
  function createReactRouter(opts) {
@@ -175,18 +175,17 @@ function createReactRouter(opts) {
175
175
  useRouterSubscription(router);
176
176
  return router.state;
177
177
  },
178
- useMatch: routeId => {
178
+ useMatch: (routeId, opts) => {
179
+ var _useMatches, _opts$strict;
180
+
179
181
  useRouterSubscription(router);
180
182
  index.invariant(routeId !== index.rootRouteId, "\"" + index.rootRouteId + "\" cannot be used with useMatch! Did you mean to useRoute(\"" + index.rootRouteId + "\")?");
181
-
182
- const runtimeMatch = _useMatch();
183
-
183
+ const runtimeMatch = (_useMatches = useMatches()) == null ? void 0 : _useMatches[0];
184
184
  const match = router.state.matches.find(d => d.routeId === routeId);
185
- index.invariant(match, "Could not find a match for route \"" + routeId + "\" being rendered in this component!");
186
- index.invariant(runtimeMatch.routeId == (match == null ? void 0 : match.routeId), "useMatch('" + (match == null ? void 0 : match.routeId) + "') is being called in a component that is meant to render the '" + runtimeMatch.routeId + "' route. Did you mean to 'useRoute(" + (match == null ? void 0 : match.routeId) + ")' instead?");
187
185
 
188
- if (!match) {
189
- index.invariant('Match not found!');
186
+ if ((_opts$strict = opts == null ? void 0 : opts.strict) != null ? _opts$strict : true) {
187
+ index.invariant(match, "Could not find an active match for \"" + routeId + "\"!");
188
+ index.invariant(runtimeMatch.routeId == (match == null ? void 0 : match.routeId), "useMatch('" + (match == null ? void 0 : match.routeId) + "') is being called in a component that is meant to render the '" + runtimeMatch.routeId + "' route. Did you mean to 'useMatch(" + (match == null ? void 0 : match.routeId) + ", { strict: false })' or 'useRoute(" + (match == null ? void 0 : match.routeId) + ")' instead?");
190
189
  }
191
190
 
192
191
  return match;
@@ -229,7 +228,9 @@ function RouterProvider(_ref2) {
229
228
  router.update(rest);
230
229
  useRouterSubscription(router);
231
230
  useLayoutEffect(() => {
232
- return router.mount();
231
+ const unsub = router.mount();
232
+ router.load();
233
+ return unsub;
233
234
  }, [router]);
234
235
  return /*#__PURE__*/React__namespace.createElement(routerContext.Provider, {
235
236
  value: {
@@ -249,61 +250,49 @@ function useRouter() {
249
250
 
250
251
  function useMatches() {
251
252
  return React__namespace.useContext(matchesContext);
252
- } // function useParentMatches(): RouteMatch[] {
253
- // const router = useRouter()
254
- // const match = useMatch()
255
- // const matches = router.state.matches
256
- // return matches.slice(
257
- // 0,
258
- // matches.findIndex((d) => d.matchId === match.matchId) - 1,
259
- // )
260
- // }
261
-
262
-
263
- function _useMatch() {
264
- var _useMatches;
265
-
266
- return (_useMatches = useMatches()) == null ? void 0 : _useMatches[0];
267
253
  }
268
254
 
269
255
  function Outlet() {
270
- var _childMatch$options$c;
256
+ var _match$options$catchE;
271
257
 
272
258
  const router = useRouter();
273
- const [, ...matches] = useMatches();
274
- const childMatch = matches[0];
275
- if (!childMatch) return null;
259
+ const matches = useMatches().slice(1);
260
+ const match = matches[0];
261
+
262
+ if (!match) {
263
+ return null;
264
+ }
276
265
 
277
266
  const element = (() => {
278
- var _childMatch$__$errorE, _ref4;
267
+ var _match$__$errorElemen, _ref4, _ref5;
279
268
 
280
- if (!childMatch) {
269
+ if (!match) {
281
270
  return null;
282
271
  }
283
272
 
284
- const errorElement = (_childMatch$__$errorE = childMatch.__.errorElement) != null ? _childMatch$__$errorE : router.options.defaultErrorElement;
273
+ const errorElement = (_match$__$errorElemen = match.__.errorElement) != null ? _match$__$errorElemen : router.options.defaultErrorElement;
285
274
 
286
- if (childMatch.status === 'error') {
275
+ if (match.status === 'error') {
287
276
  if (errorElement) {
288
277
  return errorElement;
289
278
  }
290
279
 
291
- if (childMatch.options.useErrorBoundary || router.options.useErrorBoundary) {
292
- throw childMatch.error;
280
+ if (match.options.useErrorBoundary || router.options.useErrorBoundary) {
281
+ throw match.error;
293
282
  }
294
283
 
295
284
  return /*#__PURE__*/React__namespace.createElement(DefaultErrorBoundary, {
296
- error: childMatch.error
285
+ error: match.error
297
286
  });
298
287
  }
299
288
 
300
- if (childMatch.status === 'loading' || childMatch.status === 'idle') {
301
- if (childMatch.isPending) {
302
- var _childMatch$__$pendin;
289
+ if (match.status === 'loading' || match.status === 'idle') {
290
+ if (match.isPending) {
291
+ var _match$__$pendingElem;
303
292
 
304
- const pendingElement = (_childMatch$__$pendin = childMatch.__.pendingElement) != null ? _childMatch$__$pendin : router.options.defaultPendingElement;
293
+ const pendingElement = (_match$__$pendingElem = match.__.pendingElement) != null ? _match$__$pendingElem : router.options.defaultPendingElement;
305
294
 
306
- if (childMatch.options.pendingMs || pendingElement) {
295
+ if (match.options.pendingMs || pendingElement) {
307
296
  var _ref3;
308
297
 
309
298
  return (_ref3 = pendingElement) != null ? _ref3 : null;
@@ -313,13 +302,12 @@ function Outlet() {
313
302
  return null;
314
303
  }
315
304
 
316
- return (_ref4 = childMatch.__.element) != null ? _ref4 : router.options.defaultElement;
305
+ return (_ref4 = (_ref5 = match.__.element) != null ? _ref5 : router.options.defaultElement) != null ? _ref4 : /*#__PURE__*/React__namespace.createElement(Outlet, null);
317
306
  })();
318
307
 
319
- const catchElement = (_childMatch$options$c = childMatch == null ? void 0 : childMatch.options.catchElement) != null ? _childMatch$options$c : router.options.defaultCatchElement;
308
+ const catchElement = (_match$options$catchE = match == null ? void 0 : match.options.catchElement) != null ? _match$options$catchE : router.options.defaultCatchElement;
320
309
  return /*#__PURE__*/React__namespace.createElement(MatchesProvider, {
321
- value: matches,
322
- key: childMatch.matchId
310
+ value: matches
323
311
  }, /*#__PURE__*/React__namespace.createElement(CatchBoundary, {
324
312
  catchElement: catchElement
325
313
  }, element));
@@ -331,13 +319,6 @@ class CatchBoundary extends React__namespace.Component {
331
319
  this.state = {
332
320
  error: false
333
321
  };
334
-
335
- this.reset = () => {
336
- this.setState({
337
- error: false,
338
- info: false
339
- });
340
- };
341
322
  }
342
323
 
343
324
  componentDidCatch(error, info) {
@@ -362,10 +343,10 @@ class CatchBoundary extends React__namespace.Component {
362
343
 
363
344
  }
364
345
 
365
- function DefaultErrorBoundary(_ref5) {
346
+ function DefaultErrorBoundary(_ref6) {
366
347
  let {
367
348
  error
368
- } = _ref5;
349
+ } = _ref6;
369
350
  return /*#__PURE__*/React__namespace.createElement("div", {
370
351
  style: {
371
352
  padding: '.5rem',
@@ -387,18 +368,7 @@ function DefaultErrorBoundary(_ref5) {
387
368
  padding: '.5rem',
388
369
  color: 'red'
389
370
  }
390
- }, error.message) : null)), /*#__PURE__*/React__namespace.createElement("div", {
391
- style: {
392
- height: '1rem'
393
- }
394
- }), /*#__PURE__*/React__namespace.createElement("div", {
395
- style: {
396
- fontSize: '.8em',
397
- borderLeft: '3px solid rgba(127, 127, 127, 1)',
398
- paddingLeft: '.5rem',
399
- opacity: 0.5
400
- }
401
- }, "If you are the owner of this website, it's highly recommended that you configure your own custom Catch/Error boundaries for the router. You can optionally configure a boundary for each route."));
371
+ }, error.message) : null)));
402
372
  }
403
373
  function usePrompt(message, when) {
404
374
  const router = useRouter();
@@ -415,17 +385,16 @@ function usePrompt(message, when) {
415
385
  return unblock;
416
386
  }, [when, location, message]);
417
387
  }
418
- function Prompt(_ref6) {
388
+ function Prompt(_ref7) {
419
389
  let {
420
390
  message,
421
391
  when,
422
392
  children
423
- } = _ref6;
393
+ } = _ref7;
424
394
  usePrompt(message, when != null ? when : true);
425
395
  return children != null ? children : null;
426
396
  }
427
397
 
428
- exports.cascadeLoaderData = index.cascadeLoaderData;
429
398
  exports.cleanPath = index.cleanPath;
430
399
  exports.createBrowserHistory = index.createBrowserHistory;
431
400
  exports.createHashHistory = index.createHashHistory;
@@ -447,6 +416,7 @@ exports.matchByPath = index.matchByPath;
447
416
  exports.matchPathname = index.matchPathname;
448
417
  exports.parsePathname = index.parsePathname;
449
418
  exports.parseSearchWith = index.parseSearchWith;
419
+ exports.pick = index.pick;
450
420
  exports.replaceEqualDeep = index.replaceEqualDeep;
451
421
  exports.resolvePath = index.resolvePath;
452
422
  exports.rootRouteId = index.rootRouteId;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\n\nimport {\n AnyRoute,\n CheckId,\n rootRouteId,\n Router,\n RouterState,\n ToIdOption,\n} from '@tanstack/router-core'\nimport {\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n RouteConfig,\n AnyRouteConfig,\n AnyAllRouteInfo,\n DefaultAllRouteInfo,\n functionalUpdate,\n createRouter,\n AnyRouteInfo,\n AllRouteInfo,\n RouteInfo,\n ValidFromPath,\n LinkOptions,\n RouteInfoByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics {\n Element: React.ReactNode\n // Any is required here so import() will work without having to do import().then(d => d.default)\n SyncOrAsyncElement: React.ReactNode | (() => Promise<any>)\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > {\n useState: () => RouterState\n useRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n useMatch: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n linkProps: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, '/', TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, '/', TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\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 ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: ToOptions<TAllRouteInfo, '/', 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 | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<'/', NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n },\n ) => JSX.Element\n }\n\n interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n > {\n useRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<\n TRouteInfo['id'],\n NoInfer<TTo>\n >,\n >(\n routeId: CheckId<\n TAllRouteInfo,\n TResolved,\n ToIdOption<TAllRouteInfo, TRouteInfo['id'], TTo>\n >,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TResolved]>\n linkProps: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\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 ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: ToOptions<TAllRouteInfo, TRouteInfo['fullPath'], 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 | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<TRouteInfo['fullPath'], NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n },\n ) => JSX.Element\n }\n}\n\ntype LinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n> = LinkOptions<TAllRouteInfo, 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}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: React.ReactNode\n}\n\n//\n\nconst matchesContext = React.createContext<RouteMatch[]>(null!)\nconst routerContext = React.createContext<{ router: Router<any, any> }>(null!)\n\n// Detect if we're in the DOM\nconst isDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement,\n)\n\nconst useLayoutEffect = isDOM ? React.useLayoutEffect : React.useEffect\n\nexport type MatchesProviderProps = {\n value: RouteMatch[]\n children: React.ReactNode\n}\n\nexport function MatchesProvider(props: MatchesProviderProps) {\n return <matchesContext.Provider {...props} />\n}\n\nconst useRouterSubscription = (router: Router<any, any>) => {\n useSyncExternalStore(\n (cb) => router.subscribe(() => cb()),\n () => router.state,\n )\n}\n\nexport function createReactRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n>(opts: RouterOptions<TRouteConfig>): Router<TRouteConfig> {\n const makeRouteExt = (\n route: AnyRoute,\n router: Router<any, any>,\n ): Pick<AnyRoute, 'useRoute' | 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\n useRoute: (subRouteId = '.' as any) => {\n const resolvedRouteId = router.resolvePath(\n route.routeId,\n subRouteId as string,\n )\n const resolvedRoute = router.getRoute(resolvedRouteId)\n useRouterSubscription(router)\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n resolvedRouteId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return resolvedRoute\n },\n linkProps: (options) => {\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 preloadMaxAge,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n ...rest\n } = options\n\n const linkInfo = route.buildLink(options)\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 isActive,\n next,\n } = linkInfo\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n e.persist()\n handlers.forEach((handler) => {\n if (handler) handler(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? functionalUpdate(activeProps, {}) ?? {} : {}\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([handleClick, onClick]),\n onFocus: composeHandlers([handleFocus, onFocus]),\n onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),\n onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),\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 Link: React.forwardRef((props: any, ref) => {\n const linkProps = route.linkProps(props)\n\n useRouterSubscription(router)\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 MatchRoute: (opts) => {\n const { pending, caseSensitive, children, ...rest } = opts\n\n const params = route.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n\n if (!params) {\n return null\n }\n\n return typeof opts.children === 'function'\n ? opts.children(params as any)\n : (opts.children as any)\n },\n }\n }\n\n const coreRouter = createRouter<TRouteConfig>({\n ...opts,\n createRouter: (router) => {\n const routerExt: Pick<Router<any, any>, 'useMatch' | 'useState'> = {\n useState: () => {\n useRouterSubscription(router)\n return router.state\n },\n useMatch: (routeId) => {\n useRouterSubscription(router)\n\n invariant(\n routeId !== rootRouteId,\n `\"${rootRouteId}\" cannot be used with useMatch! Did you mean to useRoute(\"${rootRouteId}\")?`,\n )\n\n const runtimeMatch = useMatch()\n const match = router.state.matches.find((d) => d.routeId === routeId)\n\n invariant(\n match,\n `Could not find a match for route \"${\n routeId as string\n }\" being rendered in this component!`,\n )\n\n invariant(\n runtimeMatch.routeId == match?.routeId,\n `useMatch('${\n match?.routeId as string\n }') is being called in a component that is meant to render the '${\n runtimeMatch.routeId\n }' route. Did you mean to 'useRoute(${\n match?.routeId as string\n })' instead?`,\n )\n\n if (!match) {\n invariant('Match not found!')\n }\n\n return match\n },\n }\n\n const routeExt = makeRouteExt(router.getRoute('/'), router)\n\n Object.assign(router, routerExt, routeExt)\n },\n createRoute: ({ router, route }) => {\n const routeExt = makeRouteExt(route, router)\n\n Object.assign(route, routeExt)\n },\n createElement: async (element) => {\n if (typeof element === 'function') {\n const res = (await element()) as any\n\n // Support direct import() calls\n if (typeof res === 'object' && res.default) {\n return React.createElement(res.default)\n } else {\n return res\n }\n }\n\n return element\n },\n })\n\n return coreRouter as any\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n> = RouterOptions<TRouteConfig> & {\n router: Router<TRouteConfig, TAllRouteInfo>\n // Children will default to `<Outlet />` if not provided\n children?: React.ReactNode\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n>({ children, router, ...rest }: RouterProps<TRouteConfig, TAllRouteInfo>) {\n router.update(rest)\n\n useRouterSubscription(router)\n\n useLayoutEffect(() => {\n return router.mount()\n }, [router])\n\n return (\n <routerContext.Provider value={{ router }}>\n <MatchesProvider value={router.state.matches}>\n {children ?? <Outlet />}\n </MatchesProvider>\n </routerContext.Provider>\n )\n}\n\nfunction useRouter(): Router {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useRouterSubscription(value.router)\n\n return value.router as Router\n}\n\nfunction useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\n// function useParentMatches(): RouteMatch[] {\n// const router = useRouter()\n// const match = useMatch()\n// const matches = router.state.matches\n// return matches.slice(\n// 0,\n// matches.findIndex((d) => d.matchId === match.matchId) - 1,\n// )\n// }\n\nfunction useMatch<T>(): RouteMatch {\n return useMatches()?.[0] as RouteMatch\n}\n\nexport function Outlet() {\n const router = useRouter()\n const [, ...matches] = useMatches()\n\n const childMatch = matches[0]\n\n if (!childMatch) return null\n\n const element = ((): React.ReactNode => {\n if (!childMatch) {\n return null\n }\n\n const errorElement =\n childMatch.__.errorElement ?? router.options.defaultErrorElement\n\n if (childMatch.status === 'error') {\n if (errorElement) {\n return errorElement as any\n }\n\n if (\n childMatch.options.useErrorBoundary ||\n router.options.useErrorBoundary\n ) {\n throw childMatch.error\n }\n\n return <DefaultErrorBoundary error={childMatch.error} />\n }\n\n if (childMatch.status === 'loading' || childMatch.status === 'idle') {\n if (childMatch.isPending) {\n const pendingElement =\n childMatch.__.pendingElement ?? router.options.defaultPendingElement\n\n if (childMatch.options.pendingMs || pendingElement) {\n return (pendingElement as any) ?? null\n }\n }\n\n return null\n }\n\n return (childMatch.__.element as any) ?? router.options.defaultElement\n })() as JSX.Element\n\n const catchElement =\n childMatch?.options.catchElement ?? router.options.defaultCatchElement\n\n return (\n <MatchesProvider value={matches} key={childMatch.matchId}>\n <CatchBoundary catchElement={catchElement}>{element}</CatchBoundary>\n </MatchesProvider>\n )\n}\n\nclass CatchBoundary extends React.Component<{\n children: any\n catchElement: any\n}> {\n state = {\n error: false,\n }\n componentDidCatch(error: any, info: any) {\n console.error(error)\n\n this.setState({\n error,\n info,\n })\n }\n reset = () => {\n this.setState({\n error: false,\n info: false,\n })\n }\n render() {\n const catchElement = this.props.catchElement ?? DefaultErrorBoundary\n\n if (this.state.error) {\n return typeof catchElement === 'function'\n ? catchElement(this.state)\n : catchElement\n }\n\n return this.props.children\n }\n}\n\nexport function DefaultErrorBoundary({ error }: { error: any }) {\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <strong style={{ fontSize: '1.2rem' }}>Something went wrong!</strong>\n <div style={{ height: '.5rem' }} />\n <div>\n <pre>\n {error.message ? (\n <code\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.5rem',\n color: 'red',\n }}\n >\n {error.message}\n </code>\n ) : null}\n </pre>\n </div>\n <div style={{ height: '1rem' }} />\n <div\n style={{\n fontSize: '.8em',\n borderLeft: '3px solid rgba(127, 127, 127, 1)',\n paddingLeft: '.5rem',\n opacity: 0.5,\n }}\n >\n If you are the owner of this website, it's highly recommended that you\n configure your own custom Catch/Error boundaries for the router. You can\n optionally configure a boundary for each route.\n </div>\n </div>\n )\n}\n\nexport function usePrompt(message: string, when: boolean | any): void {\n const router = useRouter()\n\n React.useEffect(() => {\n if (!when) return\n\n let unblock = router.history.block((transition) => {\n if (window.confirm(message)) {\n unblock()\n transition.retry()\n } else {\n router.location.pathname = window.location.pathname\n }\n })\n\n return unblock\n }, [when, location, message])\n}\n\nexport function Prompt({ message, when, children }: PromptProps) {\n usePrompt(message, when ?? true)\n return (children ?? null) as React.ReactNode\n}\n"],"names":["matchesContext","React","createContext","routerContext","isDOM","Boolean","window","document","createElement","useLayoutEffect","useEffect","MatchesProvider","props","useRouterSubscription","router","useSyncExternalStore","cb","subscribe","state","createReactRouter","opts","makeRouteExt","route","useRoute","subRouteId","resolvedRouteId","resolvePath","routeId","resolvedRoute","getRoute","invariant","linkProps","options","target","activeProps","className","inactiveProps","disabled","style","onClick","onFocus","onMouseEnter","onMouseLeave","rest","linkInfo","buildLink","type","href","handleClick","handleFocus","handleEnter","handleLeave","isActive","next","composeHandlers","handlers","e","persist","forEach","handler","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","_extends","undefined","filter","join","role","Link","forwardRef","ref","children","MatchRoute","pending","caseSensitive","params","matchRoute","coreRouter","createRouter","routerExt","useState","useMatch","rootRouteId","runtimeMatch","match","matches","find","d","routeExt","Object","assign","createRoute","element","res","default","RouterProvider","_objectWithoutPropertiesLoose","update","mount","useRouter","value","useContext","warning","useMatches","Outlet","childMatch","errorElement","__","defaultErrorElement","status","useErrorBoundary","error","isPending","pendingElement","defaultPendingElement","pendingMs","defaultElement","catchElement","defaultCatchElement","matchId","CatchBoundary","Component","reset","setState","info","componentDidCatch","console","render","DefaultErrorBoundary","padding","maxWidth","fontSize","height","message","border","borderRadius","color","borderLeft","paddingLeft","opacity","usePrompt","when","unblock","history","block","transition","confirm","retry","location","pathname","Prompt"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0JA;AAEA,MAAMA,cAAc,gBAAGC,gBAAK,CAACC,aAAN,CAAkC,IAAlC,CAAvB,CAAA;AACA,MAAMC,aAAa,gBAAGF,gBAAK,CAACC,aAAN,CAAkD,IAAlD,CAAtB;;AAGA,MAAME,KAAK,GAAGC,OAAO,CACnB,OAAOC,MAAP,KAAkB,WAAlB,IACEA,MAAM,CAACC,QADT,IAEED,MAAM,CAACC,QAAP,CAAgBC,aAHC,CAArB,CAAA;AAMA,MAAMC,eAAe,GAAGL,KAAK,GAAGH,gBAAK,CAACQ,eAAT,GAA2BR,gBAAK,CAACS,SAA9D,CAAA;AAOO,SAASC,eAAT,CAAyBC,KAAzB,EAAsD;AAC3D,EAAA,oBAAOX,+BAAC,cAAD,CAAgB,QAAhB,EAA6BW,KAA7B,CAAP,CAAA;AACD,CAAA;;AAED,MAAMC,qBAAqB,GAAIC,MAAD,IAA8B;AAC1DC,EAAAA,yBAAoB,CACjBC,EAAD,IAAQF,MAAM,CAACG,SAAP,CAAiB,MAAMD,EAAE,EAAzB,CADU,EAElB,MAAMF,MAAM,CAACI,KAFK,CAApB,CAAA;AAID,CALD,CAAA;;AAOO,SAASC,iBAAT,CAELC,IAFK,EAEoD;AACzD,EAAA,MAAMC,YAAY,GAAG,CACnBC,KADmB,EAEnBR,MAFmB,KAGkD;IACrE,OAAO;MACLS,QAAQ,EAAE,SAACC,QAAAA,CAAAA,UAAD,EAA6B;AAAA,QAAA,IAA5BA,UAA4B,KAAA,KAAA,CAAA,EAAA;AAA5BA,UAAAA,UAA4B,GAAf,GAAe,CAAA;AAAA,SAAA;;QACrC,MAAMC,eAAe,GAAGX,MAAM,CAACY,WAAP,CACtBJ,KAAK,CAACK,OADgB,EAEtBH,UAFsB,CAAxB,CAAA;AAIA,QAAA,MAAMI,aAAa,GAAGd,MAAM,CAACe,QAAP,CAAgBJ,eAAhB,CAAtB,CAAA;QACAZ,qBAAqB,CAACC,MAAD,CAArB,CAAA;AACAgB,QAAAA,eAAS,CACPF,aADO,EAGLH,qCAAAA,GAAAA,eAHK,GAAT,oDAAA,CAAA,CAAA;AAMA,QAAA,OAAOG,aAAP,CAAA;OAdG;MAgBLG,SAAS,EAAGC,OAAD,IAAa;AAAA,QAAA,IAAA,iBAAA,EAAA,kBAAA,CAAA;;QACtB,MAAM;AACJ;UAGAC,MAJI;AAKJC,UAAAA,WAAW,GAAG,OAAO;AAAEC,YAAAA,SAAS,EAAE,QAAA;AAAb,WAAP,CALV;UAMJC,aAAa,GAAG,OAAO,EAAP,CANZ;UAQJC,QARI;AAkBJ;UACAC,KAnBI;UAoBJH,SApBI;UAqBJI,OArBI;UAsBJC,OAtBI;UAuBJC,YAvBI;AAwBJC,UAAAA,YAAAA;AAxBI,SAAA,GA4BFV,OA5BJ;cA2BKW,IA3BL,0DA4BIX,OA5BJ,EAAA,SAAA,CAAA,CAAA;;AA8BA,QAAA,MAAMY,QAAQ,GAAGtB,KAAK,CAACuB,SAAN,CAAgBb,OAAhB,CAAjB,CAAA;;AAEA,QAAA,IAAIY,QAAQ,CAACE,IAAT,KAAkB,UAAtB,EAAkC;UAChC,MAAM;AAAEC,YAAAA,IAAAA;AAAF,WAAA,GAAWH,QAAjB,CAAA;UACA,OAAO;AAAEG,YAAAA,IAAAA;WAAT,CAAA;AACD,SAAA;;QAED,MAAM;UACJC,WADI;UAEJC,WAFI;UAGJC,WAHI;UAIJC,WAJI;UAKJC,QALI;AAMJC,UAAAA,IAAAA;AANI,SAAA,GAOFT,QAPJ,CAAA;;AASA,QAAA,MAAMU,eAAe,GAClBC,QAAD,IACCC,CAAD,IAA6B;AAC3BA,UAAAA,CAAC,CAACC,OAAF,EAAA,CAAA;AACAF,UAAAA,QAAQ,CAACG,OAAT,CAAkBC,OAAD,IAAa;AAC5B,YAAA,IAAIA,OAAJ,EAAaA,OAAO,CAACH,CAAD,CAAP,CAAA;WADf,CAAA,CAAA;AAGD,SAPH,CA/CsB;;;AAyDtB,QAAA,MAAMI,mBAA4D,GAChER,QAAQ,GAAA,CAAA,iBAAA,GAAGS,sBAAgB,CAAC3B,WAAD,EAAc,EAAd,CAAnB,KAAwC,IAAA,GAAA,iBAAA,GAAA,EAAxC,GAA6C,EADvD,CAzDsB;;AA6DtB,QAAA,MAAM4B,qBAA8D,GAClEV,QAAQ,GAAG,EAAH,GAAA,CAAA,kBAAA,GAAQS,sBAAgB,CAACzB,aAAD,EAAgB,EAAhB,CAAxB,iCAA+C,EADzD,CAAA;AAGA,QAAA,OAAA2B,oCAAA,CAAA,EAAA,EACKH,mBADL,EAEKE,qBAFL,EAGKnB,IAHL,EAAA;AAIEI,UAAAA,IAAI,EAAEV,QAAQ,GAAG2B,SAAH,GAAeX,IAAI,CAACN,IAJpC;UAKER,OAAO,EAAEe,eAAe,CAAC,CAACN,WAAD,EAAcT,OAAd,CAAD,CAL1B;UAMEC,OAAO,EAAEc,eAAe,CAAC,CAACL,WAAD,EAAcT,OAAd,CAAD,CAN1B;UAOEC,YAAY,EAAEa,eAAe,CAAC,CAACJ,WAAD,EAAcT,YAAd,CAAD,CAP/B;UAQEC,YAAY,EAAEY,eAAe,CAAC,CAACH,WAAD,EAAcT,YAAd,CAAD,CAR/B;UASET,MATF;UAUEK,KAAK,EAAAyB,oCAAA,CAAA,EAAA,EACAzB,KADA,EAEAsB,mBAAmB,CAACtB,KAFpB,EAGAwB,qBAAqB,CAACxB,KAHtB,CAVP;AAeEH,UAAAA,SAAS,EACP,CACEA,SADF,EAEEyB,mBAAmB,CAACzB,SAFtB,EAGE2B,qBAAqB,CAAC3B,SAHxB,CAAA,CAKG8B,MALH,CAKU5D,OALV,EAMG6D,IANH,CAMQ,GANR,CAMgBF,IAAAA,SAAAA;AAtBpB,SAAA,EAuBM3B,QAAQ,GACR;AACE8B,UAAAA,IAAI,EAAE,MADR;UAEE,eAAiB,EAAA,IAAA;AAFnB,SADQ,GAKRH,SA5BN,EAAA;AA6BE,UAAA,CAAC,aAAD,GAAiBZ,QAAQ,GAAG,QAAH,GAAcY,SAAAA;AA7BzC,SAAA,CAAA,CAAA;OAhFG;MAgHLI,IAAI,eAAEnE,gBAAK,CAACoE,UAAN,CAAiB,CAACzD,KAAD,EAAa0D,GAAb,KAAqB;AAC1C,QAAA,MAAMvC,SAAS,GAAGT,KAAK,CAACS,SAAN,CAAgBnB,KAAhB,CAAlB,CAAA;QAEAC,qBAAqB,CAACC,MAAD,CAArB,CAAA;QAEA,oBACEb,gBAAA,CAAA,aAAA,CAAA,GAAA,EAAA8D,oCAAA,CAAA;AAEIO,UAAAA,GAAG,EAAEA,GAAAA;AAFT,SAAA,EAGOvC,SAHP,EAAA;UAIIwC,QAAQ,EACN,OAAO3D,KAAK,CAAC2D,QAAb,KAA0B,UAA1B,GACI3D,KAAK,CAAC2D,QAAN,CAAe;AACbnB,YAAAA,QAAQ,EAAGrB,SAAD,CAAmB,aAAnB,CAAsC,KAAA,QAAA;WADlD,CADJ,GAIInB,KAAK,CAAC2D,QAAAA;SAVlB,CAAA,CAAA,CAAA;AAcD,OAnBK,CAhHD;MAoILC,UAAU,EAAGpD,IAAD,IAAU;QACpB,MAAM;UAAEqD,OAAF;AAAWC,UAAAA,aAAAA;AAAX,SAAA,GAAgDtD,IAAtD;cAA6CuB,IAA7C,0DAAsDvB,IAAtD,EAAA,UAAA,CAAA,CAAA;;AAEA,QAAA,MAAMuD,MAAM,GAAGrD,KAAK,CAACsD,UAAN,CAAiBjC,IAAjB,EAA8B;UAC3C8B,OAD2C;AAE3CC,UAAAA,aAAAA;AAF2C,SAA9B,CAAf,CAAA;;QAKA,IAAI,CAACC,MAAL,EAAa;AACX,UAAA,OAAO,IAAP,CAAA;AACD,SAAA;;AAED,QAAA,OAAO,OAAOvD,IAAI,CAACmD,QAAZ,KAAyB,UAAzB,GACHnD,IAAI,CAACmD,QAAL,CAAcI,MAAd,CADG,GAEFvD,IAAI,CAACmD,QAFV,CAAA;AAGD,OAAA;KAnJH,CAAA;GAJF,CAAA;;AA2JA,EAAA,MAAMM,UAAU,GAAGC,kBAAY,CAAAf,oCAAA,CAAA,EAAA,EAC1B3C,IAD0B,EAAA;IAE7B0D,YAAY,EAAGhE,MAAD,IAAY;AACxB,MAAA,MAAMiE,SAA0D,GAAG;AACjEC,QAAAA,QAAQ,EAAE,MAAM;UACdnE,qBAAqB,CAACC,MAAD,CAArB,CAAA;UACA,OAAOA,MAAM,CAACI,KAAd,CAAA;SAH+D;QAKjE+D,QAAQ,EAAGtD,OAAD,IAAa;UACrBd,qBAAqB,CAACC,MAAD,CAArB,CAAA;UAEAgB,eAAS,CACPH,OAAO,KAAKuD,iBADL,SAEHA,iBAFG,GAAA,8DAAA,GAEqEA,iBAFrE,GAAT,MAAA,CAAA,CAAA;;UAKA,MAAMC,YAAY,GAAGF,SAAQ,EAA7B,CAAA;;AACA,UAAA,MAAMG,KAAK,GAAGtE,MAAM,CAACI,KAAP,CAAamE,OAAb,CAAqBC,IAArB,CAA2BC,CAAD,IAAOA,CAAC,CAAC5D,OAAF,KAAcA,OAA/C,CAAd,CAAA;AAEAG,UAAAA,eAAS,CACPsD,KADO,EAGLzD,qCAAAA,GAAAA,OAHK,GAAT,sCAAA,CAAA,CAAA;UAOAG,eAAS,CACPqD,YAAY,CAACxD,OAAb,KAAwByD,KAAxB,IAAA,IAAA,GAAA,KAAA,CAAA,GAAwBA,KAAK,CAAEzD,OAA/B,CADO,EAGLyD,YAAAA,IAAAA,KAHK,IAGLA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEzD,OAHF,CAKLwD,GAAAA,iEAAAA,GAAAA,YAAY,CAACxD,OALR,GAOLyD,qCAAAA,IAAAA,KAPK,IAOLA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEzD,OAPF,CAAT,GAAA,aAAA,CAAA,CAAA;;UAWA,IAAI,CAACyD,KAAL,EAAY;YACVtD,eAAS,CAAC,kBAAD,CAAT,CAAA;AACD,WAAA;;AAED,UAAA,OAAOsD,KAAP,CAAA;AACD,SAAA;OAvCH,CAAA;AA0CA,MAAA,MAAMI,QAAQ,GAAGnE,YAAY,CAACP,MAAM,CAACe,QAAP,CAAgB,GAAhB,CAAD,EAAuBf,MAAvB,CAA7B,CAAA;AAEA2E,MAAAA,MAAM,CAACC,MAAP,CAAc5E,MAAd,EAAsBiE,SAAtB,EAAiCS,QAAjC,CAAA,CAAA;KA/C2B;AAiD7BG,IAAAA,WAAW,EAAE,IAAuB,IAAA;MAAA,IAAtB;QAAE7E,MAAF;AAAUQ,QAAAA,KAAAA;OAAY,GAAA,IAAA,CAAA;AAClC,MAAA,MAAMkE,QAAQ,GAAGnE,YAAY,CAACC,KAAD,EAAQR,MAAR,CAA7B,CAAA;AAEA2E,MAAAA,MAAM,CAACC,MAAP,CAAcpE,KAAd,EAAqBkE,QAArB,CAAA,CAAA;KApD2B;IAsD7BhF,aAAa,EAAE,MAAOoF,OAAP,IAAmB;AAChC,MAAA,IAAI,OAAOA,OAAP,KAAmB,UAAvB,EAAmC;AACjC,QAAA,MAAMC,GAAG,GAAI,MAAMD,OAAO,EAA1B,CADiC;;QAIjC,IAAI,OAAOC,GAAP,KAAe,QAAf,IAA2BA,GAAG,CAACC,OAAnC,EAA4C;AAC1C,UAAA,oBAAO7F,gBAAK,CAACO,aAAN,CAAoBqF,GAAG,CAACC,OAAxB,CAAP,CAAA;AACD,SAFD,MAEO;AACL,UAAA,OAAOD,GAAP,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,OAAOD,OAAP,CAAA;AACD,KAAA;GAnEH,CAAA,CAAA,CAAA;AAsEA,EAAA,OAAOf,UAAP,CAAA;AACD,CAAA;AAWM,SAASkB,cAAT,CAGoE,KAAA,EAAA;EAAA,IAAzE;IAAExB,QAAF;AAAYzD,IAAAA,MAAAA;GAA6D,GAAA,KAAA;AAAA,MAAlD6B,IAAkD,GAAAqD,sDAAA,CAAA,KAAA,EAAA,UAAA,CAAA,CAAA;;EACzElF,MAAM,CAACmF,MAAP,CAActD,IAAd,CAAA,CAAA;EAEA9B,qBAAqB,CAACC,MAAD,CAArB,CAAA;AAEAL,EAAAA,eAAe,CAAC,MAAM;IACpB,OAAOK,MAAM,CAACoF,KAAP,EAAP,CAAA;AACD,GAFc,EAEZ,CAACpF,MAAD,CAFY,CAAf,CAAA;EAIA,oBACEb,gBAAA,CAAA,aAAA,CAAC,aAAD,CAAe,QAAf,EAAA;AAAwB,IAAA,KAAK,EAAE;AAAEa,MAAAA,MAAAA;AAAF,KAAA;AAA/B,GAAA,eACEb,+BAAC,eAAD,EAAA;AAAiB,IAAA,KAAK,EAAEa,MAAM,CAACI,KAAP,CAAamE,OAAAA;GAClCd,EAAAA,QADH,WACGA,QADH,gBACetE,+BAAC,MAAD,EAAA,IAAA,CADf,CADF,CADF,CAAA;AAOD,CAAA;;AAED,SAASkG,SAAT,GAA6B;AAC3B,EAAA,MAAMC,KAAK,GAAGnG,gBAAK,CAACoG,UAAN,CAAiBlG,aAAjB,CAAd,CAAA;AACAmG,EAAAA,aAAO,CAAC,CAACF,KAAF,EAAS,qDAAT,CAAP,CAAA;AAEAvF,EAAAA,qBAAqB,CAACuF,KAAK,CAACtF,MAAP,CAArB,CAAA;EAEA,OAAOsF,KAAK,CAACtF,MAAb,CAAA;AACD,CAAA;;AAED,SAASyF,UAAT,GAAoC;AAClC,EAAA,OAAOtG,gBAAK,CAACoG,UAAN,CAAiBrG,cAAjB,CAAP,CAAA;AACD;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,SAASiF,SAAT,GAAmC;AAAA,EAAA,IAAA,WAAA,CAAA;;AACjC,EAAA,OAAA,CAAA,WAAA,GAAOsB,UAAU,EAAjB,KAAO,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAe,CAAf,CAAP,CAAA;AACD,CAAA;;AAEM,SAASC,MAAT,GAAkB;AAAA,EAAA,IAAA,qBAAA,CAAA;;EACvB,MAAM1F,MAAM,GAAGqF,SAAS,EAAxB,CAAA;AACA,EAAA,MAAM,GAAG,GAAGd,OAAN,CAAA,GAAiBkB,UAAU,EAAjC,CAAA;AAEA,EAAA,MAAME,UAAU,GAAGpB,OAAO,CAAC,CAAD,CAA1B,CAAA;AAEA,EAAA,IAAI,CAACoB,UAAL,EAAiB,OAAO,IAAP,CAAA;;EAEjB,MAAMb,OAAO,GAAG,CAAC,MAAuB;AAAA,IAAA,IAAA,qBAAA,EAAA,KAAA,CAAA;;IACtC,IAAI,CAACa,UAAL,EAAiB;AACf,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;AAED,IAAA,MAAMC,YAAY,GAAA,CAAA,qBAAA,GAChBD,UAAU,CAACE,EAAX,CAAcD,YADE,KAAA,IAAA,GAAA,qBAAA,GACc5F,MAAM,CAACkB,OAAP,CAAe4E,mBAD/C,CAAA;;AAGA,IAAA,IAAIH,UAAU,CAACI,MAAX,KAAsB,OAA1B,EAAmC;AACjC,MAAA,IAAIH,YAAJ,EAAkB;AAChB,QAAA,OAAOA,YAAP,CAAA;AACD,OAAA;;MAED,IACED,UAAU,CAACzE,OAAX,CAAmB8E,gBAAnB,IACAhG,MAAM,CAACkB,OAAP,CAAe8E,gBAFjB,EAGE;QACA,MAAML,UAAU,CAACM,KAAjB,CAAA;AACD,OAAA;;AAED,MAAA,oBAAO9G,+BAAC,oBAAD,EAAA;QAAsB,KAAK,EAAEwG,UAAU,CAACM,KAAAA;OAA/C,CAAA,CAAA;AACD,KAAA;;IAED,IAAIN,UAAU,CAACI,MAAX,KAAsB,SAAtB,IAAmCJ,UAAU,CAACI,MAAX,KAAsB,MAA7D,EAAqE;MACnE,IAAIJ,UAAU,CAACO,SAAf,EAA0B;AAAA,QAAA,IAAA,qBAAA,CAAA;;AACxB,QAAA,MAAMC,cAAc,GAAA,CAAA,qBAAA,GAClBR,UAAU,CAACE,EAAX,CAAcM,cADI,KAAA,IAAA,GAAA,qBAAA,GACcnG,MAAM,CAACkB,OAAP,CAAekF,qBADjD,CAAA;;AAGA,QAAA,IAAIT,UAAU,CAACzE,OAAX,CAAmBmF,SAAnB,IAAgCF,cAApC,EAAoD;AAAA,UAAA,IAAA,KAAA,CAAA;;UAClD,OAAQA,CAAAA,KAAAA,GAAAA,cAAR,oBAAkC,IAAlC,CAAA;AACD,SAAA;AACF,OAAA;;AAED,MAAA,OAAO,IAAP,CAAA;AACD,KAAA;;IAED,OAAQR,CAAAA,KAAAA,GAAAA,UAAU,CAACE,EAAX,CAAcf,OAAtB,oBAAyC9E,MAAM,CAACkB,OAAP,CAAeoF,cAAxD,CAAA;AACD,GArCe,GAAhB,CAAA;;AAuCA,EAAA,MAAMC,YAAY,GAAA,CAAA,qBAAA,GAChBZ,UADgB,IAAA,IAAA,GAAA,KAAA,CAAA,GAChBA,UAAU,CAAEzE,OAAZ,CAAoBqF,YADJ,KACoBvG,IAAAA,GAAAA,qBAAAA,GAAAA,MAAM,CAACkB,OAAP,CAAesF,mBADrD,CAAA;AAGA,EAAA,oBACErH,+BAAC,eAAD,EAAA;AAAiB,IAAA,KAAK,EAAEoF,OAAxB;IAAiC,GAAG,EAAEoB,UAAU,CAACc,OAAAA;AAAjD,GAAA,eACEtH,+BAAC,aAAD,EAAA;AAAe,IAAA,YAAY,EAAEoH,YAAAA;GAAezB,EAAAA,OAA5C,CADF,CADF,CAAA;AAKD,CAAA;;AAED,MAAM4B,aAAN,SAA4BvH,gBAAK,CAACwH,SAAlC,CAGG;AAAA,EAAA,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA,CAAA;AAAA,IAAA,IAAA,CACDvG,KADC,GACO;AACN6F,MAAAA,KAAK,EAAE,KAAA;KAFR,CAAA;;IAAA,IAYDW,CAAAA,KAZC,GAYO,MAAM;AACZ,MAAA,IAAA,CAAKC,QAAL,CAAc;AACZZ,QAAAA,KAAK,EAAE,KADK;AAEZa,QAAAA,IAAI,EAAE,KAAA;OAFR,CAAA,CAAA;KAbD,CAAA;AAAA,GAAA;;AAIDC,EAAAA,iBAAiB,CAACd,KAAD,EAAaa,IAAb,EAAwB;IACvCE,OAAO,CAACf,KAAR,CAAcA,KAAd,CAAA,CAAA;AAEA,IAAA,IAAA,CAAKY,QAAL,CAAc;MACZZ,KADY;AAEZa,MAAAA,IAAAA;KAFF,CAAA,CAAA;AAID,GAAA;;AAODG,EAAAA,MAAM,GAAG;AAAA,IAAA,IAAA,qBAAA,CAAA;;AACP,IAAA,MAAMV,YAAY,GAAG,CAAA,qBAAA,GAAA,IAAA,CAAKzG,KAAL,CAAWyG,YAAd,oCAA8BW,oBAAhD,CAAA;;AAEA,IAAA,IAAI,IAAK9G,CAAAA,KAAL,CAAW6F,KAAf,EAAsB;MACpB,OAAO,OAAOM,YAAP,KAAwB,UAAxB,GACHA,YAAY,CAAC,IAAKnG,CAAAA,KAAN,CADT,GAEHmG,YAFJ,CAAA;AAGD,KAAA;;IAED,OAAO,IAAA,CAAKzG,KAAL,CAAW2D,QAAlB,CAAA;AACD,GAAA;;AA5BA,CAAA;;AA+BI,SAASyD,oBAAT,CAAyD,KAAA,EAAA;EAAA,IAA3B;AAAEjB,IAAAA,KAAAA;GAAyB,GAAA,KAAA,CAAA;EAC9D,oBACE9G,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAEgI,MAAAA,OAAO,EAAE,OAAX;AAAoBC,MAAAA,QAAQ,EAAE,MAAA;AAA9B,KAAA;GACV,eAAAjI,gBAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,KAAK,EAAE;AAAEkI,MAAAA,QAAQ,EAAE,QAAA;AAAZ,KAAA;AAAf,GAAA,EAAA,uBAAA,CADF,eAEElI,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAEmI,MAAAA,MAAM,EAAE,OAAA;AAAV,KAAA;AAAZ,GAAA,CAFF,eAGEnI,gBACE,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,eAAAA,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EACG8G,KAAK,CAACsB,OAAN,gBACCpI,gBAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,KAAK,EAAE;AACLkI,MAAAA,QAAQ,EAAE,MADL;AAELG,MAAAA,MAAM,EAAE,eAFH;AAGLC,MAAAA,YAAY,EAAE,QAHT;AAILN,MAAAA,OAAO,EAAE,OAJJ;AAKLO,MAAAA,KAAK,EAAE,KAAA;AALF,KAAA;GAQNzB,EAAAA,KAAK,CAACsB,OATT,CADD,GAYG,IAbN,CADF,CAHF,eAoBEpI,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAEmI,MAAAA,MAAM,EAAE,MAAA;AAAV,KAAA;AAAZ,GAAA,CApBF,eAqBEnI,gBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AACE,IAAA,KAAK,EAAE;AACLkI,MAAAA,QAAQ,EAAE,MADL;AAELM,MAAAA,UAAU,EAAE,kCAFP;AAGLC,MAAAA,WAAW,EAAE,OAHR;AAILC,MAAAA,OAAO,EAAE,GAAA;AAJJ,KAAA;AADT,GAAA,EAAA,iMAAA,CArBF,CADF,CAAA;AAoCD,CAAA;AAEM,SAASC,SAAT,CAAmBP,OAAnB,EAAoCQ,IAApC,EAA+D;EACpE,MAAM/H,MAAM,GAAGqF,SAAS,EAAxB,CAAA;EAEAlG,gBAAK,CAACS,SAAN,CAAgB,MAAM;IACpB,IAAI,CAACmI,IAAL,EAAW,OAAA;IAEX,IAAIC,OAAO,GAAGhI,MAAM,CAACiI,OAAP,CAAeC,KAAf,CAAsBC,UAAD,IAAgB;AACjD,MAAA,IAAI3I,MAAM,CAAC4I,OAAP,CAAeb,OAAf,CAAJ,EAA6B;QAC3BS,OAAO,EAAA,CAAA;AACPG,QAAAA,UAAU,CAACE,KAAX,EAAA,CAAA;AACD,OAHD,MAGO;QACLrI,MAAM,CAACsI,QAAP,CAAgBC,QAAhB,GAA2B/I,MAAM,CAAC8I,QAAP,CAAgBC,QAA3C,CAAA;AACD,OAAA;AACF,KAPa,CAAd,CAAA;AASA,IAAA,OAAOP,OAAP,CAAA;AACD,GAbD,EAaG,CAACD,IAAD,EAAOO,QAAP,EAAiBf,OAAjB,CAbH,CAAA,CAAA;AAcD,CAAA;AAEM,SAASiB,MAAT,CAA0D,KAAA,EAAA;EAAA,IAA1C;IAAEjB,OAAF;IAAWQ,IAAX;AAAiBtE,IAAAA,QAAAA;GAAyB,GAAA,KAAA,CAAA;EAC/DqE,SAAS,CAACP,OAAD,EAAUQ,IAAV,WAAUA,IAAV,GAAkB,IAAlB,CAAT,CAAA;AACA,EAAA,OAAQtE,QAAR,IAAA,IAAA,GAAQA,QAAR,GAAoB,IAApB,CAAA;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/index.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\n\nimport {\n AnyRoute,\n CheckId,\n rootRouteId,\n Router,\n RouterState,\n ToIdOption,\n} from '@tanstack/router-core'\nimport {\n warning,\n RouterOptions,\n RouteMatch,\n MatchRouteOptions,\n RouteConfig,\n AnyRouteConfig,\n AnyAllRouteInfo,\n DefaultAllRouteInfo,\n functionalUpdate,\n createRouter,\n AnyRouteInfo,\n AllRouteInfo,\n RouteInfo,\n ValidFromPath,\n LinkOptions,\n RouteInfoByPath,\n ResolveRelativePath,\n NoInfer,\n ToOptions,\n invariant,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics {\n Element: React.ReactNode\n // Any is required here so import() will work without having to do import().then(d => d.default)\n SyncOrAsyncElement: React.ReactNode | (() => Promise<any>)\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > {\n useState: () => RouterState\n useRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n routeId: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n useMatch: <\n TId extends keyof TAllRouteInfo['routeInfoById'],\n TStrict extends true | false = true,\n >(\n routeId: TId,\n opts?: { strict?: TStrict },\n ) => TStrict extends true\n ? RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n :\n | RouteMatch<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n | undefined\n linkProps: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, '/', TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, '/', TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\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 ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: ToOptions<TAllRouteInfo, '/', 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 | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<'/', NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n },\n ) => JSX.Element\n }\n\n interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n > {\n useRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<\n TRouteInfo['id'],\n NoInfer<TTo>\n >,\n >(\n routeId: CheckId<\n TAllRouteInfo,\n TResolved,\n ToIdOption<TAllRouteInfo, TRouteInfo['id'], TTo>\n >,\n opts?: { strict?: boolean },\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TResolved]>\n linkProps: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: LinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement> &\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 ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: ToOptions<TAllRouteInfo, TRouteInfo['fullPath'], 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 | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<TRouteInfo['fullPath'], NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n },\n ) => JSX.Element\n }\n}\n\ntype LinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n> = LinkOptions<TAllRouteInfo, 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}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: React.ReactNode\n}\n\n//\n\nconst matchesContext = React.createContext<RouteMatch[]>(null!)\nconst routerContext = React.createContext<{ router: Router<any, any> }>(null!)\n\n// Detect if we're in the DOM\nconst isDOM = Boolean(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement,\n)\n\nconst useLayoutEffect = isDOM ? React.useLayoutEffect : React.useEffect\n\nexport type MatchesProviderProps = {\n value: RouteMatch[]\n children: React.ReactNode\n}\n\nexport function MatchesProvider(props: MatchesProviderProps) {\n return <matchesContext.Provider {...props} />\n}\n\nconst useRouterSubscription = (router: Router<any, any>) => {\n useSyncExternalStore(\n (cb) => router.subscribe(() => cb()),\n () => router.state,\n () => router.state,\n )\n}\n\nexport function createReactRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n>(opts: RouterOptions<TRouteConfig>): Router<TRouteConfig> {\n const makeRouteExt = (\n route: AnyRoute,\n router: Router<any, any>,\n ): Pick<AnyRoute, 'useRoute' | 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\n useRoute: (subRouteId = '.' as any) => {\n const resolvedRouteId = router.resolvePath(\n route.routeId,\n subRouteId as string,\n )\n const resolvedRoute = router.getRoute(resolvedRouteId)\n useRouterSubscription(router)\n invariant(\n resolvedRoute,\n `Could not find a route for route \"${\n resolvedRouteId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return resolvedRoute\n },\n linkProps: (options) => {\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 preloadMaxAge,\n replace,\n // element props\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n ...rest\n } = options\n\n const linkInfo = route.buildLink(options)\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 isActive,\n next,\n } = linkInfo\n\n const composeHandlers =\n (handlers: (undefined | ((e: any) => void))[]) =>\n (e: React.SyntheticEvent) => {\n e.persist()\n handlers.forEach((handler) => {\n if (handler) handler(e)\n })\n }\n\n // Get the active props\n const resolvedActiveProps: React.HTMLAttributes<HTMLAnchorElement> =\n isActive ? functionalUpdate(activeProps, {}) ?? {} : {}\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([handleClick, onClick]),\n onFocus: composeHandlers([handleFocus, onFocus]),\n onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),\n onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),\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 Link: React.forwardRef((props: any, ref) => {\n const linkProps = route.linkProps(props)\n\n useRouterSubscription(router)\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 MatchRoute: (opts) => {\n const { pending, caseSensitive, children, ...rest } = opts\n\n const params = route.matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n\n if (!params) {\n return null\n }\n\n return typeof opts.children === 'function'\n ? opts.children(params as any)\n : (opts.children as any)\n },\n }\n }\n\n const coreRouter = createRouter<TRouteConfig>({\n ...opts,\n createRouter: (router) => {\n const routerExt: Pick<Router<any, any>, 'useMatch' | 'useState'> = {\n useState: () => {\n useRouterSubscription(router)\n return router.state\n },\n useMatch: (routeId, opts) => {\n useRouterSubscription(router)\n\n invariant(\n routeId !== rootRouteId,\n `\"${rootRouteId}\" cannot be used with useMatch! Did you mean to useRoute(\"${rootRouteId}\")?`,\n )\n\n const runtimeMatch = useMatches()?.[0]!\n const match = router.state.matches.find((d) => d.routeId === routeId)\n\n if (opts?.strict ?? true) {\n invariant(\n match,\n `Could not find an active match for \"${routeId as string}\"!`,\n )\n\n invariant(\n runtimeMatch.routeId == match?.routeId,\n `useMatch('${\n match?.routeId as string\n }') is being called in a component that is meant to render the '${\n runtimeMatch.routeId\n }' route. Did you mean to 'useMatch(${\n match?.routeId as string\n }, { strict: false })' or 'useRoute(${\n match?.routeId as string\n })' instead?`,\n )\n }\n\n return match as any\n },\n }\n\n const routeExt = makeRouteExt(router.getRoute('/'), router)\n\n Object.assign(router, routerExt, routeExt)\n },\n createRoute: ({ router, route }) => {\n const routeExt = makeRouteExt(route, router)\n\n Object.assign(route, routeExt)\n },\n createElement: async (element) => {\n if (typeof element === 'function') {\n const res = (await element()) as any\n\n // Support direct import() calls\n if (typeof res === 'object' && res.default) {\n return React.createElement(res.default)\n } else {\n return res\n }\n }\n\n return element\n },\n })\n\n return coreRouter as any\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n> = RouterOptions<TRouteConfig> & {\n router: Router<TRouteConfig, TAllRouteInfo>\n // Children will default to `<Outlet />` if not provided\n children?: React.ReactNode\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n>({ children, router, ...rest }: RouterProps<TRouteConfig, TAllRouteInfo>) {\n router.update(rest)\n\n useRouterSubscription(router)\n useLayoutEffect(() => {\n const unsub = router.mount()\n router.load()\n return unsub\n }, [router])\n\n return (\n <routerContext.Provider value={{ router }}>\n <MatchesProvider value={router.state.matches}>\n {children ?? <Outlet />}\n </MatchesProvider>\n </routerContext.Provider>\n )\n}\n\nfunction useRouter(): Router {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useRouterSubscription(value.router)\n\n return value.router as Router\n}\n\nfunction useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function Outlet() {\n const router = useRouter()\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n if (!match) {\n return null\n }\n\n const element = ((): React.ReactNode => {\n if (!match) {\n return null\n }\n\n const errorElement =\n match.__.errorElement ?? router.options.defaultErrorElement\n\n if (match.status === 'error') {\n if (errorElement) {\n return errorElement as any\n }\n\n if (match.options.useErrorBoundary || router.options.useErrorBoundary) {\n throw match.error\n }\n\n return <DefaultErrorBoundary error={match.error} />\n }\n\n if (match.status === 'loading' || match.status === 'idle') {\n if (match.isPending) {\n const pendingElement =\n match.__.pendingElement ?? router.options.defaultPendingElement\n\n if (match.options.pendingMs || pendingElement) {\n return (pendingElement as any) ?? null\n }\n }\n\n return null\n }\n\n return (\n (match.__.element as any) ?? router.options.defaultElement ?? <Outlet />\n )\n })() as JSX.Element\n\n const catchElement =\n match?.options.catchElement ?? router.options.defaultCatchElement\n\n return (\n <MatchesProvider value={matches}>\n <CatchBoundary catchElement={catchElement}>{element}</CatchBoundary>\n </MatchesProvider>\n )\n}\n\nclass CatchBoundary extends React.Component<{\n children: any\n catchElement: any\n}> {\n state = {\n error: false,\n }\n componentDidCatch(error: any, info: any) {\n console.error(error)\n\n this.setState({\n error,\n info,\n })\n }\n render() {\n const catchElement = this.props.catchElement ?? DefaultErrorBoundary\n\n if (this.state.error) {\n return typeof catchElement === 'function'\n ? catchElement(this.state)\n : catchElement\n }\n\n return this.props.children\n }\n}\n\nexport function DefaultErrorBoundary({ error }: { error: any }) {\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n <strong style={{ fontSize: '1.2rem' }}>Something went wrong!</strong>\n <div style={{ height: '.5rem' }} />\n <div>\n <pre>\n {error.message ? (\n <code\n style={{\n fontSize: '.7em',\n border: '1px solid red',\n borderRadius: '.25rem',\n padding: '.5rem',\n color: 'red',\n }}\n >\n {error.message}\n </code>\n ) : null}\n </pre>\n </div>\n {/* <div style={{ height: '1rem' }} />\n <div\n style={{\n fontSize: '.8em',\n borderLeft: '3px solid rgba(127, 127, 127, 1)',\n paddingLeft: '.5rem',\n opacity: 0.5,\n }}\n >\n If you are the owner of this website, it's highly recommended that you\n configure your own custom Catch/Error boundaries for the router. You can\n optionally configure a boundary for each route.\n </div> */}\n </div>\n )\n}\n\nexport function usePrompt(message: string, when: boolean | any): void {\n const router = useRouter()\n\n React.useEffect(() => {\n if (!when) return\n\n let unblock = router.history.block((transition) => {\n if (window.confirm(message)) {\n unblock()\n transition.retry()\n } else {\n router.location.pathname = window.location.pathname\n }\n })\n\n return unblock\n }, [when, location, message])\n}\n\nexport function Prompt({ message, when, children }: PromptProps) {\n usePrompt(message, when ?? true)\n return (children ?? null) as React.ReactNode\n}\n"],"names":["matchesContext","React","createContext","routerContext","isDOM","Boolean","window","document","createElement","useLayoutEffect","useEffect","MatchesProvider","props","useRouterSubscription","router","useSyncExternalStore","cb","subscribe","state","createReactRouter","opts","makeRouteExt","route","useRoute","subRouteId","resolvedRouteId","resolvePath","routeId","resolvedRoute","getRoute","invariant","linkProps","options","target","activeProps","className","inactiveProps","disabled","style","onClick","onFocus","onMouseEnter","onMouseLeave","rest","linkInfo","buildLink","type","href","handleClick","handleFocus","handleEnter","handleLeave","isActive","next","composeHandlers","handlers","e","persist","forEach","handler","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","_extends","undefined","filter","join","role","Link","forwardRef","ref","children","MatchRoute","pending","caseSensitive","params","matchRoute","coreRouter","createRouter","routerExt","useState","useMatch","rootRouteId","runtimeMatch","useMatches","match","matches","find","d","strict","routeExt","Object","assign","createRoute","element","res","default","RouterProvider","_objectWithoutPropertiesLoose","update","unsub","mount","load","useRouter","value","useContext","warning","Outlet","slice","errorElement","__","defaultErrorElement","status","useErrorBoundary","error","isPending","pendingElement","defaultPendingElement","pendingMs","defaultElement","catchElement","defaultCatchElement","CatchBoundary","Component","componentDidCatch","info","console","setState","render","DefaultErrorBoundary","padding","maxWidth","fontSize","height","message","border","borderRadius","color","usePrompt","when","unblock","history","block","transition","confirm","retry","location","pathname","Prompt"],"mappings":"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"}