@tanstack/react-router 0.0.1-alpha.6 → 0.0.1-alpha.7

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.
@@ -106,9 +106,9 @@ function createReactRouter(opts) {
106
106
  }; // Get the active props
107
107
 
108
108
 
109
- const resolvedActiveProps = isActive ? (_functionalUpdate = index.functionalUpdate(activeProps)) != null ? _functionalUpdate : {} : {}; // Get the inactive props
109
+ const resolvedActiveProps = isActive ? (_functionalUpdate = index.functionalUpdate(activeProps, {})) != null ? _functionalUpdate : {} : {}; // Get the inactive props
110
110
 
111
- const resolvedInactiveProps = isActive ? {} : (_functionalUpdate2 = index.functionalUpdate(inactiveProps)) != null ? _functionalUpdate2 : {};
111
+ const resolvedInactiveProps = isActive ? {} : (_functionalUpdate2 = index.functionalUpdate(inactiveProps, {})) != null ? _functionalUpdate2 : {};
112
112
  return _rollupPluginBabelHelpers["extends"]({}, resolvedActiveProps, resolvedInactiveProps, rest, {
113
113
  href: disabled ? undefined : next.href,
114
114
  onClick: composeHandlers([handleClick, onClick]),
@@ -146,7 +146,7 @@ function createReactRouter(opts) {
146
146
  const params = route.matchRoute(rest, {
147
147
  pending,
148
148
  caseSensitive
149
- }); // useRouterSubscription(router)
149
+ });
150
150
 
151
151
  if (!params) {
152
152
  return null;
@@ -160,6 +160,10 @@ function createReactRouter(opts) {
160
160
  const coreRouter = index.createRouter(_rollupPluginBabelHelpers["extends"]({}, opts, {
161
161
  createRouter: router => {
162
162
  const routerExt = {
163
+ useState: () => {
164
+ useRouterSubscription(router);
165
+ return router.state;
166
+ },
163
167
  useRoute: routeId => {
164
168
  const route = router.getRoute(routeId);
165
169
  useRouterSubscription(router);
@@ -167,6 +171,7 @@ function createReactRouter(opts) {
167
171
  return route;
168
172
  },
169
173
  useMatch: routeId => {
174
+ useRouterSubscription(router);
170
175
  index.invariant(routeId !== index.rootRouteId, "\"" + index.rootRouteId + "\" cannot be used with useMatch! Did you mean to useRoute(\"" + index.rootRouteId + "\")?");
171
176
 
172
177
  const runtimeMatch = _useMatch();
@@ -174,7 +179,6 @@ function createReactRouter(opts) {
174
179
  const match = router.state.matches.find(d => d.routeId === routeId);
175
180
  index.invariant(match, "Could not find a match for route \"" + routeId + "\" being rendered in this component!");
176
181
  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?");
177
- useRouterSubscription(router);
178
182
 
179
183
  if (!match) {
180
184
  index.invariant('Match not found!');
@@ -205,10 +209,10 @@ function RouterProvider(_ref2) {
205
209
  rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_ref2, _excluded3);
206
210
 
207
211
  router.update(rest);
208
- shim.useSyncExternalStore(cb => router.subscribe(() => cb()), () => router.state);
212
+ useRouterSubscription(router);
209
213
  useLayoutEffect(() => {
210
- router.mount();
211
- }, []);
214
+ return router.mount();
215
+ }, [router]);
212
216
  return /*#__PURE__*/React__namespace.createElement(routerContext.Provider, {
213
217
  value: {
214
218
  router
@@ -245,14 +249,15 @@ function _useMatch() {
245
249
  }
246
250
 
247
251
  function Outlet() {
248
- var _ref3, _childMatch$options$c;
252
+ var _childMatch$options$c;
249
253
 
250
254
  const router = useRouter();
251
255
  const [, ...matches] = useMatches();
252
256
  const childMatch = matches[0];
253
257
  if (!childMatch) return null;
254
- const element = (_ref3 = (() => {
255
- var _childMatch$__$errorE, _ref5;
258
+
259
+ const element = (() => {
260
+ var _childMatch$__$errorE, _ref4;
256
261
 
257
262
  if (!childMatch) {
258
263
  return null;
@@ -269,7 +274,7 @@ function Outlet() {
269
274
  throw childMatch.error;
270
275
  }
271
276
 
272
- return /*#__PURE__*/React__namespace.createElement(DefaultCatchBoundary, {
277
+ return /*#__PURE__*/React__namespace.createElement(DefaultErrorBoundary, {
273
278
  error: childMatch.error
274
279
  });
275
280
  }
@@ -281,17 +286,18 @@ function Outlet() {
281
286
  const pendingElement = (_childMatch$__$pendin = childMatch.__.pendingElement) != null ? _childMatch$__$pendin : router.options.defaultPendingElement;
282
287
 
283
288
  if (childMatch.options.pendingMs || pendingElement) {
284
- var _ref4;
289
+ var _ref3;
285
290
 
286
- return (_ref4 = pendingElement) != null ? _ref4 : null;
291
+ return (_ref3 = pendingElement) != null ? _ref3 : null;
287
292
  }
288
293
  }
289
294
 
290
295
  return null;
291
296
  }
292
297
 
293
- return (_ref5 = childMatch.__.element) != null ? _ref5 : router.options.defaultElement;
294
- })()) != null ? _ref3 : /*#__PURE__*/React__namespace.createElement(Outlet, null);
298
+ return (_ref4 = childMatch.__.element) != null ? _ref4 : router.options.defaultElement;
299
+ })();
300
+
295
301
  const catchElement = (_childMatch$options$c = childMatch == null ? void 0 : childMatch.options.catchElement) != null ? _childMatch$options$c : router.options.defaultCatchElement;
296
302
  return /*#__PURE__*/React__namespace.createElement(MatchesProvider, {
297
303
  value: matches,
@@ -327,7 +333,7 @@ class CatchBoundary extends React__namespace.Component {
327
333
  render() {
328
334
  var _this$props$catchElem;
329
335
 
330
- const catchElement = (_this$props$catchElem = this.props.catchElement) != null ? _this$props$catchElem : DefaultCatchBoundary;
336
+ const catchElement = (_this$props$catchElem = this.props.catchElement) != null ? _this$props$catchElem : DefaultErrorBoundary;
331
337
 
332
338
  if (this.state.error) {
333
339
  return typeof catchElement === 'function' ? catchElement(this.state) : catchElement;
@@ -338,10 +344,10 @@ class CatchBoundary extends React__namespace.Component {
338
344
 
339
345
  }
340
346
 
341
- function DefaultCatchBoundary(_ref6) {
347
+ function DefaultErrorBoundary(_ref5) {
342
348
  let {
343
349
  error
344
- } = _ref6;
350
+ } = _ref5;
345
351
  return /*#__PURE__*/React__namespace.createElement("div", {
346
352
  style: {
347
353
  padding: '.5rem',
@@ -375,8 +381,10 @@ function DefaultCatchBoundary(_ref6) {
375
381
  opacity: 0.5
376
382
  }
377
383
  }, "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."));
378
- }
384
+ } // TODO: Add prompt
379
385
 
386
+ exports.cascadeLoaderData = index.cascadeLoaderData;
387
+ exports.cleanPath = index.cleanPath;
380
388
  exports.createBrowserHistory = index.createBrowserHistory;
381
389
  exports.createHashHistory = index.createHashHistory;
382
390
  exports.createMemoryHistory = index.createMemoryHistory;
@@ -384,10 +392,14 @@ exports.createRoute = index.createRoute;
384
392
  exports.createRouteConfig = index.createRouteConfig;
385
393
  exports.createRouteMatch = index.createRouteMatch;
386
394
  exports.createRouter = index.createRouter;
395
+ exports.decode = index.decode;
387
396
  exports.defaultParseSearch = index.defaultParseSearch;
388
397
  exports.defaultStringifySearch = index.defaultStringifySearch;
398
+ exports.encode = index.encode;
389
399
  exports.functionalUpdate = index.functionalUpdate;
400
+ exports.interpolatePath = index.interpolatePath;
390
401
  exports.invariant = index.invariant;
402
+ exports.joinPaths = index.joinPaths;
391
403
  exports.last = index.last;
392
404
  exports.matchByPath = index.matchByPath;
393
405
  exports.matchPathname = index.matchPathname;
@@ -397,8 +409,11 @@ exports.replaceEqualDeep = index.replaceEqualDeep;
397
409
  exports.resolvePath = index.resolvePath;
398
410
  exports.rootRouteId = index.rootRouteId;
399
411
  exports.stringifySearchWith = index.stringifySearchWith;
412
+ exports.trimPath = index.trimPath;
413
+ exports.trimPathLeft = index.trimPathLeft;
414
+ exports.trimPathRight = index.trimPathRight;
400
415
  exports.warning = index.warning;
401
- exports.DefaultCatchBoundary = DefaultCatchBoundary;
416
+ exports.DefaultErrorBoundary = DefaultErrorBoundary;
402
417
  exports.MatchesProvider = MatchesProvider;
403
418
  exports.Outlet = Outlet;
404
419
  exports.RouterProvider = RouterProvider;
@@ -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 RootRouteId,\n rootRouteId,\n Router,\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 AsyncElement: (opts: {\n params: Record<string, string>\n }) => Promise<React.ReactNode>\n SyncOrAsyncElement: React.ReactNode | FrameworkGenerics['AsyncElement']\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > extends Pick<\n Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][RootRouteId]>,\n 'linkProps' | 'Link' | 'MatchRoute'\n > {\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 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, 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\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 // useRouterSubscription(router)\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>, 'useRoute' | 'useMatch'> = {\n useRoute: (routeId) => {\n const route = router.getRoute(routeId)\n useRouterSubscription(router)\n invariant(\n route,\n `Could not find a route for route \"${\n routeId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return route\n },\n useMatch: (routeId) => {\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 useRouterSubscription(router)\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 })\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 useSyncExternalStore(\n (cb) => router.subscribe(() => cb()),\n () => router.state,\n )\n\n useLayoutEffect(() => {\n router.mount()\n }, [])\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 <DefaultCatchBoundary 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) ?? <Outlet />\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 ?? DefaultCatchBoundary\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 DefaultCatchBoundary({ 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"],"names":["matchesContext","React","createContext","routerContext","isDOM","Boolean","window","document","createElement","useLayoutEffect","useEffect","MatchesProvider","props","useRouterSubscription","router","useSyncExternalStore","cb","subscribe","state","createReactRouter","opts","makeRouteExt","route","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","useRoute","routeId","getRoute","invariant","useMatch","rootRouteId","runtimeMatch","match","matches","find","d","routeExt","Object","assign","createRoute","RouterProvider","_objectWithoutPropertiesLoose","update","mount","useRouter","value","useContext","warning","useMatches","Outlet","childMatch","element","errorElement","__","defaultErrorElement","status","useErrorBoundary","error","isPending","pendingElement","defaultPendingElement","pendingMs","defaultElement","catchElement","defaultCatchElement","matchId","CatchBoundary","Component","reset","setState","info","componentDidCatch","console","render","DefaultCatchBoundary","padding","maxWidth","fontSize","height","message","border","borderRadius","color","borderLeft","paddingLeft","opacity"],"mappings":"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"}
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 RootRouteId,\n rootRouteId,\n Router,\n RouterState,\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 AsyncElement: (opts: {\n params: Record<string, string>\n }) => Promise<React.ReactNode>\n SyncOrAsyncElement: React.ReactNode | FrameworkGenerics['AsyncElement']\n }\n\n interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n > extends Pick<\n Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][RootRouteId]>,\n 'linkProps' | 'Link' | 'MatchRoute'\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 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, 'linkProps' | 'Link' | 'MatchRoute'> => {\n return {\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<\n Router<any, any>,\n 'useRoute' | 'useMatch' | 'useState'\n > = {\n useState: () => {\n useRouterSubscription(router)\n return router.state\n },\n useRoute: (routeId) => {\n const route = router.getRoute(routeId)\n useRouterSubscription(router)\n invariant(\n route,\n `Could not find a route for route \"${\n routeId as string\n }\"! Did you forget to add it to your route config?`,\n )\n return route\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 })\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\n// TODO: Add prompt\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","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","useRoute","routeId","getRoute","invariant","useMatch","rootRouteId","runtimeMatch","match","matches","find","d","routeExt","Object","assign","createRoute","RouterProvider","_objectWithoutPropertiesLoose","update","mount","useRouter","value","useContext","warning","useMatches","Outlet","childMatch","element","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"],"mappings":"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"}