@tanstack/react-router 0.0.1-beta.28 → 0.0.1-beta.29

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.
@@ -16,31 +16,26 @@ function _extends() {
16
16
  _extends = Object.assign ? Object.assign.bind() : function (target) {
17
17
  for (var i = 1; i < arguments.length; i++) {
18
18
  var source = arguments[i];
19
-
20
19
  for (var key in source) {
21
20
  if (Object.prototype.hasOwnProperty.call(source, key)) {
22
21
  target[key] = source[key];
23
22
  }
24
23
  }
25
24
  }
26
-
27
25
  return target;
28
26
  };
29
27
  return _extends.apply(this, arguments);
30
28
  }
31
-
32
29
  function _objectWithoutPropertiesLoose(source, excluded) {
33
30
  if (source == null) return {};
34
31
  var target = {};
35
32
  var sourceKeys = Object.keys(source);
36
33
  var key, i;
37
-
38
34
  for (i = 0; i < sourceKeys.length; i++) {
39
35
  key = sourceKeys[i];
40
36
  if (excluded.indexOf(key) >= 0) continue;
41
37
  target[key] = source[key];
42
38
  }
43
-
44
39
  return target;
45
40
  }
46
41
 
@@ -1 +1 @@
1
- {"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -12,10 +12,10 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
15
+ var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
16
16
  var React = require('react');
17
17
  var shim = require('use-sync-external-store/shim');
18
- var index = require('../../router-core/build/esm/index.js');
18
+ var routerCore = require('@tanstack/router-core');
19
19
 
20
20
  function _interopNamespace(e) {
21
21
  if (e && e.__esModule) return e;
@@ -38,8 +38,8 @@ function _interopNamespace(e) {
38
38
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
39
39
 
40
40
  const _excluded = ["type", "children", "target", "activeProps", "inactiveProps", "activeOptions", "disabled", "hash", "search", "params", "to", "preload", "preloadDelay", "preloadMaxAge", "replace", "style", "className", "onClick", "onFocus", "onMouseEnter", "onMouseLeave", "onTouchStart", "onTouchEnd"],
41
- _excluded2 = ["pending", "caseSensitive", "children"],
42
- _excluded3 = ["children", "router"];
41
+ _excluded2 = ["pending", "caseSensitive", "children"],
42
+ _excluded3 = ["router"];
43
43
  function lazy(importer) {
44
44
  const lazyComp = /*#__PURE__*/React__namespace.lazy(importer);
45
45
  let promise;
@@ -51,7 +51,6 @@ function lazy(importer) {
51
51
  } : {}, props));
52
52
  });
53
53
  const finalComp = forwardedComp;
54
-
55
54
  finalComp.preload = () => {
56
55
  if (!promise) {
57
56
  promise = importer().then(module => {
@@ -59,13 +58,12 @@ function lazy(importer) {
59
58
  return resolvedComp;
60
59
  });
61
60
  }
62
-
63
61
  return promise;
64
62
  };
65
-
66
63
  return finalComp;
67
64
  }
68
65
  //
66
+
69
67
  function Link(props) {
70
68
  const router = useRouter();
71
69
  return /*#__PURE__*/React__namespace.createElement(router.Link, props);
@@ -75,11 +73,9 @@ const routerContext = /*#__PURE__*/React__namespace.createContext(null);
75
73
  function MatchesProvider(props) {
76
74
  return /*#__PURE__*/React__namespace.createElement(matchesContext.Provider, props);
77
75
  }
78
-
79
76
  const useRouterSubscription = router => {
80
77
  shim.useSyncExternalStore(cb => router.subscribe(() => cb()), () => router.state, () => router.state);
81
78
  };
82
-
83
79
  function createReactRouter(opts) {
84
80
  const makeRouteExt = (route, router) => {
85
81
  return {
@@ -87,36 +83,33 @@ function createReactRouter(opts) {
87
83
  if (subRouteId === void 0) {
88
84
  subRouteId = '.';
89
85
  }
90
-
91
86
  const resolvedRouteId = router.resolvePath(route.routeId, subRouteId);
92
87
  const resolvedRoute = router.getRoute(resolvedRouteId);
93
88
  useRouterSubscription(router);
94
- index.invariant(resolvedRoute, "Could not find a route for route \"" + resolvedRouteId + "\"! Did you forget to add it to your route config?");
89
+ routerCore.invariant(resolvedRoute, "Could not find a route for route \"" + resolvedRouteId + "\"! Did you forget to add it to your route config?");
95
90
  return resolvedRoute;
96
91
  },
97
92
  linkProps: options => {
98
93
  var _functionalUpdate, _functionalUpdate2;
99
-
100
94
  const {
101
- // custom props
102
- target,
103
- activeProps = () => ({
104
- className: 'active'
105
- }),
106
- inactiveProps = () => ({}),
107
- disabled,
108
- // element props
109
- style,
110
- className,
111
- onClick,
112
- onFocus,
113
- onMouseEnter,
114
- onMouseLeave
115
- } = options,
116
- rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(options, _excluded);
117
-
95
+ // custom props
96
+
97
+ target,
98
+ activeProps = () => ({
99
+ className: 'active'
100
+ }),
101
+ inactiveProps = () => ({}),
102
+ disabled,
103
+ // element props
104
+ style,
105
+ className,
106
+ onClick,
107
+ onFocus,
108
+ onMouseEnter,
109
+ onMouseLeave
110
+ } = options,
111
+ rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(options, _excluded);
118
112
  const linkInfo = route.buildLink(options);
119
-
120
113
  if (linkInfo.type === 'external') {
121
114
  const {
122
115
  href
@@ -125,7 +118,6 @@ function createReactRouter(opts) {
125
118
  href
126
119
  };
127
120
  }
128
-
129
121
  const {
130
122
  handleClick,
131
123
  handleFocus,
@@ -134,25 +126,25 @@ function createReactRouter(opts) {
134
126
  isActive,
135
127
  next
136
128
  } = linkInfo;
137
-
138
129
  const reactHandleClick = e => {
139
- if (React__namespace.startTransition) // This is a hack for react < 18
130
+ if (React__namespace.startTransition)
131
+ // This is a hack for react < 18
140
132
  React__namespace.startTransition(() => {
141
133
  handleClick(e);
142
134
  });else handleClick(e);
143
135
  };
144
-
145
136
  const composeHandlers = handlers => e => {
146
137
  e.persist();
147
138
  handlers.forEach(handler => {
148
139
  if (handler) handler(e);
149
140
  });
150
- }; // Get the active props
151
-
141
+ };
152
142
 
153
- const resolvedActiveProps = isActive ? (_functionalUpdate = index.functionalUpdate(activeProps, {})) != null ? _functionalUpdate : {} : {}; // Get the inactive props
143
+ // Get the active props
144
+ const resolvedActiveProps = isActive ? (_functionalUpdate = routerCore.functionalUpdate(activeProps, {})) != null ? _functionalUpdate : {} : {};
154
145
 
155
- const resolvedInactiveProps = isActive ? {} : (_functionalUpdate2 = index.functionalUpdate(inactiveProps, {})) != null ? _functionalUpdate2 : {};
146
+ // Get the inactive props
147
+ const resolvedInactiveProps = isActive ? {} : (_functionalUpdate2 = routerCore.functionalUpdate(inactiveProps, {})) != null ? _functionalUpdate2 : {};
156
148
  return _rollupPluginBabelHelpers["extends"]({}, resolvedActiveProps, resolvedInactiveProps, rest, {
157
149
  href: disabled ? undefined : next.href,
158
150
  onClick: composeHandlers([reactHandleClick, onClick]),
@@ -182,26 +174,22 @@ function createReactRouter(opts) {
182
174
  }),
183
175
  MatchRoute: opts => {
184
176
  const {
185
- pending,
186
- caseSensitive
187
- } = opts,
188
- rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(opts, _excluded2);
189
-
177
+ pending,
178
+ caseSensitive
179
+ } = opts,
180
+ rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(opts, _excluded2);
190
181
  const params = route.matchRoute(rest, {
191
182
  pending,
192
183
  caseSensitive
193
184
  });
194
-
195
185
  if (!params) {
196
186
  return null;
197
187
  }
198
-
199
188
  return typeof opts.children === 'function' ? opts.children(params) : opts.children;
200
189
  }
201
190
  };
202
191
  };
203
-
204
- const coreRouter = index.createRouter(_rollupPluginBabelHelpers["extends"]({}, opts, {
192
+ const coreRouter = routerCore.createRouter(_rollupPluginBabelHelpers["extends"]({}, opts, {
205
193
  createRouter: router => {
206
194
  const routerExt = {
207
195
  useState: () => {
@@ -209,22 +197,19 @@ function createReactRouter(opts) {
209
197
  return router.state;
210
198
  },
211
199
  useMatch: (routeId, opts) => {
212
- var _useMatches, _opts$strict;
213
-
200
+ var _opts$strict;
214
201
  useRouterSubscription(router);
215
- index.invariant(routeId !== index.rootRouteId, "\"" + index.rootRouteId + "\" cannot be used with useMatch! Did you mean to useRoute(\"" + index.rootRouteId + "\")?");
216
- const runtimeMatch = (_useMatches = useMatches()) == null ? void 0 : _useMatches[0];
202
+ routerCore.invariant(routeId !== routerCore.rootRouteId, "\"" + routerCore.rootRouteId + "\" cannot be used with useMatch! Did you mean to useRoute(\"" + routerCore.rootRouteId + "\")?");
203
+ const nearestMatch = useNearestMatch();
217
204
  const match = router.state.matches.find(d => d.routeId === routeId);
218
-
219
205
  if ((_opts$strict = opts == null ? void 0 : opts.strict) != null ? _opts$strict : true) {
220
- index.invariant(match, "Could not find an active match for \"" + routeId + "\"!");
221
- 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?");
206
+ routerCore.invariant(match, "Could not find an active match for \"" + routeId + "\"!");
207
+ routerCore.invariant(nearestMatch.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 '" + nearestMatch.routeId + "' route. Did you mean to 'useMatch(\"" + (match == null ? void 0 : match.routeId) + "\", { strict: false })' or 'useRoute(\"" + (match == null ? void 0 : match.routeId) + "\")' instead?");
222
208
  }
223
-
224
209
  return match;
225
210
  }
226
211
  };
227
- const routeExt = makeRouteExt(router.getRoute(index.rootRouteId), router);
212
+ const routeExt = makeRouteExt(router.getRoute(routerCore.rootRouteId), router);
228
213
  Object.assign(router, routerExt, routeExt);
229
214
  },
230
215
  createRoute: _ref => {
@@ -237,7 +222,8 @@ function createReactRouter(opts) {
237
222
  },
238
223
  loadComponent: async component => {
239
224
  if (component.preload && typeof document !== 'undefined') {
240
- component.preload(); // return await component.preload()
225
+ component.preload();
226
+ // return await component.preload()
241
227
  }
242
228
 
243
229
  return component;
@@ -246,33 +232,26 @@ function createReactRouter(opts) {
246
232
  return coreRouter;
247
233
  }
248
234
  function RouterProvider(_ref2) {
249
- var _router$options$useCo;
250
-
251
235
  let {
252
- children,
253
- router
254
- } = _ref2,
255
- rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_ref2, _excluded3);
256
-
236
+ router
237
+ } = _ref2,
238
+ rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_ref2, _excluded3);
257
239
  router.update(rest);
258
- const defaultRouterContext = React__namespace.useRef({});
259
- const userContext = (_router$options$useCo = router.options.useContext == null ? void 0 : router.options.useContext()) != null ? _router$options$useCo : defaultRouterContext.current;
260
- router.context = userContext;
261
240
  useRouterSubscription(router);
262
241
  React__namespace.useEffect(() => {
263
242
  return router.mount();
264
243
  }, [router]);
265
- return /*#__PURE__*/React__namespace.createElement(routerContext.Provider, {
244
+ return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(routerContext.Provider, {
266
245
  value: {
267
246
  router: router
268
247
  }
269
248
  }, /*#__PURE__*/React__namespace.createElement(MatchesProvider, {
270
- value: router.state.matches
271
- }, children != null ? children : /*#__PURE__*/React__namespace.createElement(Outlet, null)));
249
+ value: [undefined, ...router.state.matches]
250
+ }, /*#__PURE__*/React__namespace.createElement(Outlet, null))));
272
251
  }
273
252
  function useRouter() {
274
253
  const value = React__namespace.useContext(routerContext);
275
- index.warning(!value, 'useRouter must be used inside a <Router> component!');
254
+ routerCore.warning(!value, 'useRouter must be used inside a <Router> component!');
276
255
  useRouterSubscription(value.router);
277
256
  return value.router;
278
257
  }
@@ -284,10 +263,8 @@ function useMatch(routeId, opts) {
284
263
  return router.useMatch(routeId, opts);
285
264
  }
286
265
  function useNearestMatch() {
287
- var _useMatches2;
288
-
289
- const runtimeMatch = (_useMatches2 = useMatches()) == null ? void 0 : _useMatches2[0];
290
- index.invariant(runtimeMatch, "Could not find a nearest match!");
266
+ const runtimeMatch = useMatches()[0];
267
+ routerCore.invariant(runtimeMatch, "Could not find a nearest match!");
291
268
  return runtimeMatch;
292
269
  }
293
270
  function useRoute(routeId) {
@@ -307,16 +284,13 @@ function MatchRoute(props) {
307
284
  }
308
285
  function Outlet() {
309
286
  var _ref3, _match$__$pendingComp, _match$__$errorCompon;
310
-
311
287
  const router = useRouter();
312
288
  const matches = useMatches().slice(1);
313
289
  const match = matches[0];
314
290
  const defaultPending = React__namespace.useCallback(() => null, []);
315
-
316
291
  if (!match) {
317
292
  return null;
318
293
  }
319
-
320
294
  const PendingComponent = (_ref3 = (_match$__$pendingComp = match.__.pendingComponent) != null ? _match$__$pendingComp : router.options.defaultPendingComponent) != null ? _ref3 : defaultPending;
321
295
  const errorComponent = (_match$__$errorCompon = match.__.errorComponent) != null ? _match$__$errorCompon : router.options.defaultErrorComponent;
322
296
  return /*#__PURE__*/React__namespace.createElement(MatchesProvider, {
@@ -324,23 +298,20 @@ function Outlet() {
324
298
  }, /*#__PURE__*/React__namespace.createElement(React__namespace.Suspense, {
325
299
  fallback: /*#__PURE__*/React__namespace.createElement(PendingComponent, null)
326
300
  }, /*#__PURE__*/React__namespace.createElement(CatchBoundary, {
301
+ key: match.routeId,
327
302
  errorComponent: errorComponent,
328
- key: match.routeId
303
+ match: match
329
304
  }, (() => {
330
305
  if (match.status === 'error') {
331
306
  throw match.error;
332
307
  }
333
-
334
308
  if (match.status === 'success') {
335
309
  var _ref4, _ref5;
336
-
337
310
  return /*#__PURE__*/React__namespace.createElement((_ref4 = (_ref5 = match.__.component) != null ? _ref5 : router.options.defaultComponent) != null ? _ref4 : Outlet);
338
311
  }
339
-
340
312
  throw match.__.loadPromise;
341
313
  })())));
342
314
  }
343
-
344
315
  class CatchBoundary extends React__namespace.Component {
345
316
  constructor() {
346
317
  super(...arguments);
@@ -349,30 +320,27 @@ class CatchBoundary extends React__namespace.Component {
349
320
  info: undefined
350
321
  };
351
322
  }
352
-
353
323
  componentDidCatch(error, info) {
324
+ console.error("Error in route match: " + this.props.match.matchId);
354
325
  console.error(error);
355
326
  this.setState({
356
327
  error,
357
328
  info
358
329
  });
359
330
  }
360
-
361
331
  render() {
362
332
  return /*#__PURE__*/React__namespace.createElement(CatchBoundaryInner, _rollupPluginBabelHelpers["extends"]({}, this.props, {
363
333
  errorState: this.state,
364
334
  reset: () => this.setState({})
365
335
  }));
366
336
  }
337
+ }
367
338
 
368
- } // This is the messiest thing ever... I'm either seriously tired (likely) or
339
+ // This is the messiest thing ever... I'm either seriously tired (likely) or
369
340
  // there has to be a better way to reset error boundaries when the
370
341
  // router's location key changes.
371
-
372
-
373
342
  function CatchBoundaryInner(props) {
374
343
  var _props$errorComponent;
375
-
376
344
  const [activeErrorState, setActiveErrorState] = React__namespace.useState(props.errorState);
377
345
  const router = useRouter();
378
346
  const errorComponent = (_props$errorComponent = props.errorComponent) != null ? _props$errorComponent : DefaultErrorBoundary;
@@ -386,24 +354,19 @@ function CatchBoundaryInner(props) {
386
354
  }
387
355
  });
388
356
  }
389
-
390
357
  return;
391
358
  }, [activeErrorState]);
392
359
  React__namespace.useEffect(() => {
393
360
  if (props.errorState.error) {
394
361
  setActiveErrorState(props.errorState);
395
362
  }
396
-
397
363
  props.reset();
398
364
  }, [props.errorState.error]);
399
-
400
365
  if (activeErrorState.error) {
401
366
  return /*#__PURE__*/React__namespace.createElement(errorComponent, activeErrorState);
402
367
  }
403
-
404
368
  return props.children;
405
369
  }
406
-
407
370
  function DefaultErrorBoundary(_ref6) {
408
371
  let {
409
372
  error
@@ -456,36 +419,6 @@ function Prompt(_ref7) {
456
419
  return children != null ? children : null;
457
420
  }
458
421
 
459
- exports.cleanPath = index.cleanPath;
460
- exports.createBrowserHistory = index.createBrowserHistory;
461
- exports.createHashHistory = index.createHashHistory;
462
- exports.createMemoryHistory = index.createMemoryHistory;
463
- exports.createRoute = index.createRoute;
464
- exports.createRouteConfig = index.createRouteConfig;
465
- exports.createRouteMatch = index.createRouteMatch;
466
- exports.createRouter = index.createRouter;
467
- exports.decode = index.decode;
468
- exports.defaultParseSearch = index.defaultParseSearch;
469
- exports.defaultStringifySearch = index.defaultStringifySearch;
470
- exports.encode = index.encode;
471
- exports.functionalUpdate = index.functionalUpdate;
472
- exports.interpolatePath = index.interpolatePath;
473
- exports.invariant = index.invariant;
474
- exports.joinPaths = index.joinPaths;
475
- exports.last = index.last;
476
- exports.matchByPath = index.matchByPath;
477
- exports.matchPathname = index.matchPathname;
478
- exports.parsePathname = index.parsePathname;
479
- exports.parseSearchWith = index.parseSearchWith;
480
- exports.pick = index.pick;
481
- exports.replaceEqualDeep = index.replaceEqualDeep;
482
- exports.resolvePath = index.resolvePath;
483
- exports.rootRouteId = index.rootRouteId;
484
- exports.stringifySearchWith = index.stringifySearchWith;
485
- exports.trimPath = index.trimPath;
486
- exports.trimPathLeft = index.trimPathLeft;
487
- exports.trimPathRight = index.trimPathRight;
488
- exports.warning = index.warning;
489
422
  exports.DefaultErrorBoundary = DefaultErrorBoundary;
490
423
  exports.Link = Link;
491
424
  exports.MatchRoute = MatchRoute;
@@ -505,4 +438,10 @@ exports.usePrompt = usePrompt;
505
438
  exports.useRoute = useRoute;
506
439
  exports.useRouter = useRouter;
507
440
  exports.useSearch = useSearch;
441
+ Object.keys(routerCore).forEach(function (k) {
442
+ if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
443
+ enumerable: true,
444
+ get: function () { return routerCore[k]; }
445
+ });
446
+ });
508
447
  //# sourceMappingURL=index.js.map
@@ -0,0 +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 Route,\n RegisteredAllRouteInfo,\n RegisteredRouter,\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 Router,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\nexport type SyncRouteComponent<TProps = {}> = (\n props: TProps,\n) => JSX.Element | React.ReactNode\n\nexport type RouteComponent<TProps = {}> = SyncRouteComponent<TProps> & {\n preload?: () => Promise<SyncRouteComponent<TProps>>\n}\n\nexport function lazy(\n importer: () => Promise<{ default: SyncRouteComponent }>,\n): RouteComponent {\n const lazyComp = React.lazy(importer as any)\n let promise: Promise<SyncRouteComponent>\n let resolvedComp: SyncRouteComponent\n\n const forwardedComp = React.forwardRef((props, ref) => {\n const resolvedCompRef = React.useRef(resolvedComp || lazyComp)\n return React.createElement(\n resolvedCompRef.current as any,\n { ...(ref ? { ref } : {}), ...props } as any,\n )\n })\n\n const finalComp = forwardedComp as unknown as RouteComponent\n\n finalComp.preload = () => {\n if (!promise) {\n promise = importer().then((module) => {\n resolvedComp = module.default\n return resolvedComp\n })\n }\n\n return promise\n }\n\n return finalComp\n}\n\ntype LinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\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\ntype MakeMatchRouteOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = ToOptions<TAllRouteInfo, TFrom, TTo> &\n MatchRouteOptions & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((\n params: RouteInfoByPath<\n TAllRouteInfo,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['allParams'],\n ) => React.ReactNode)\n }\n\ntype MakeLinkPropsOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, TFrom, TTo> &\n React.AnchorHTMLAttributes<HTMLAnchorElement>\n\ntype MakeLinkOptions<\n TAllRouteInfo extends AnyAllRouteInfo,\n TFrom extends ValidFromPath<TAllRouteInfo>,\n TTo extends string,\n> = LinkPropsOptions<TAllRouteInfo, TFrom, 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\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics {\n Component: RouteComponent\n ErrorComponent: RouteComponent<{\n error: unknown\n info: { componentStack: string }\n }>\n }\n\n interface RouterOptions<TRouteConfig, TRouterContext> {\n // ssrFooter?: () => JSX.Element | React.ReactNode\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 useNearestMatch: () => RouteMatch<TAllRouteInfo, RouteInfo>\n useMatch: <\n TId extends keyof TAllRouteInfo['routeInfoById'],\n TStrict extends boolean = 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: MakeLinkPropsOptions<TAllRouteInfo, '/', TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, '/', TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, '/', TTo>,\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: MakeLinkPropsOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => React.AnchorHTMLAttributes<HTMLAnchorElement>\n Link: <TTo extends string = '.'>(\n props: MakeLinkOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n MatchRoute: <TTo extends string = '.'>(\n props: MakeMatchRouteOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n ) => JSX.Element\n }\n}\n\nexport type PromptProps = {\n message: string\n when?: boolean | any\n children?: React.ReactNode\n}\n\n//\n\nexport function Link<TTo extends string = '.'>(\n props: MakeLinkOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return <router.Link {...(props as any)} />\n}\n\ntype MatchesContextValue = RouteMatch[]\n\nexport const matchesContext = React.createContext<MatchesContextValue>(null!)\nexport const routerContext = React.createContext<{ router: RegisteredRouter }>(\n null!,\n)\n\nexport type MatchesProviderProps = {\n value: MatchesContextValue\n children: React.ReactNode\n}\n\nexport function MatchesProvider(props: MatchesProviderProps) {\n return <matchesContext.Provider {...props} />\n}\n\nconst useRouterSubscription = (router: Router<any, 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 TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n TRouterContext = unknown,\n>(\n opts: RouterOptions<TRouteConfig, TRouterContext>,\n): Router<TRouteConfig, TAllRouteInfo, TRouterContext> {\n const makeRouteExt = (\n route: AnyRoute,\n router: Router<any, 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 as any)\n\n if (linkInfo.type === 'external') {\n const { href } = linkInfo\n return { href }\n }\n\n const {\n handleClick,\n handleFocus,\n handleEnter,\n handleLeave,\n isActive,\n next,\n } = linkInfo\n\n const reactHandleClick = (e: Event) => {\n if (React.startTransition)\n // This is a hack for react < 18\n React.startTransition(() => {\n handleClick(e)\n })\n else handleClick(e)\n }\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([reactHandleClick, 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, 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 nearestMatch = useNearestMatch()\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 nearestMatch.routeId == match?.routeId,\n `useMatch(\"${\n match?.routeId as string\n }\") is being called in a component that is meant to render the '${\n nearestMatch.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(rootRouteId), 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 loadComponent: async (component) => {\n if (component.preload && typeof document !== 'undefined') {\n component.preload()\n // return await component.preload()\n }\n\n return component as any\n },\n })\n\n return coreRouter as any\n}\n\nexport type RouterProps<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n> = RouterOptions<TRouteConfig, TRouterContext> & {\n router: Router<TRouteConfig, TAllRouteInfo, TRouterContext>\n}\n\nexport function RouterProvider<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouterContext = unknown,\n>({\n router,\n ...rest\n}: RouterProps<TRouteConfig, TAllRouteInfo, TRouterContext>) {\n router.update(rest)\n\n useRouterSubscription(router)\n React.useEffect(() => {\n return router.mount()\n }, [router])\n\n return (\n <>\n <routerContext.Provider value={{ router: router as any }}>\n <MatchesProvider value={[undefined!, ...router.state.matches]}>\n <Outlet />\n </MatchesProvider>\n </routerContext.Provider>\n </>\n )\n}\n\nexport function useRouter(): RegisteredRouter {\n const value = React.useContext(routerContext)\n warning(!value, 'useRouter must be used inside a <Router> component!')\n\n useRouterSubscription(value.router)\n\n return value.router\n}\n\nexport function useMatches(): RouteMatch[] {\n return React.useContext(matchesContext)\n}\n\nexport function useMatch<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n TStrict extends boolean = true,\n>(\n routeId: TId,\n opts?: { strict?: TStrict },\n): TStrict extends true\n ? RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n :\n | RouteMatch<\n RegisteredAllRouteInfo,\n RegisteredAllRouteInfo['routeInfoById'][TId]\n >\n | undefined {\n const router = useRouter()\n return router.useMatch(routeId as any, opts) as any\n}\n\nexport function useNearestMatch(): RouteMatch<\n RegisteredAllRouteInfo,\n RouteInfo\n> {\n const runtimeMatch = useMatches()[0]\n\n invariant(runtimeMatch, `Could not find a nearest match!`)\n\n return runtimeMatch as any\n}\n\nexport function useRoute<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'],\n>(\n routeId: TId,\n): Route<RegisteredAllRouteInfo, RegisteredAllRouteInfo['routeInfoById'][TId]> {\n const router = useRouter()\n return router.useRoute(routeId as any) as any\n}\n\nexport function useSearch<\n TId extends keyof RegisteredAllRouteInfo['routeInfoById'] = keyof RegisteredAllRouteInfo['routeInfoById'],\n>(_routeId?: TId): RegisteredAllRouteInfo['fullSearchSchema'] {\n return useRouter().state.location.search\n}\n\nexport function linkProps<TTo extends string = '.'>(\n props: MakeLinkPropsOptions<RegisteredAllRouteInfo, '/', TTo>,\n): React.AnchorHTMLAttributes<HTMLAnchorElement> {\n const router = useRouter()\n return router.linkProps(props as any)\n}\n\nexport function MatchRoute<TTo extends string = '.'>(\n props: MakeMatchRouteOptions<RegisteredAllRouteInfo, '/', TTo>,\n): JSX.Element {\n const router = useRouter()\n return React.createElement(router.MatchRoute, props as any)\n}\n\nexport function Outlet() {\n const router = useRouter()\n const matches = useMatches().slice(1)\n const match = matches[0]\n\n const defaultPending = React.useCallback(() => null, [])\n\n if (!match) {\n return null\n }\n\n const PendingComponent = (match.__.pendingComponent ??\n router.options.defaultPendingComponent ??\n defaultPending) as any\n\n const errorComponent =\n match.__.errorComponent ?? router.options.defaultErrorComponent\n\n return (\n <MatchesProvider value={matches}>\n <React.Suspense fallback={<PendingComponent />}>\n <CatchBoundary\n key={match.routeId}\n errorComponent={errorComponent}\n match={match as any}\n >\n {\n ((): React.ReactNode => {\n if (match.status === 'error') {\n throw match.error\n }\n\n if (match.status === 'success') {\n return React.createElement(\n (match.__.component as any) ??\n router.options.defaultComponent ??\n Outlet,\n )\n }\n throw match.__.loadPromise\n })() as JSX.Element\n }\n </CatchBoundary>\n </React.Suspense>\n {/* Provide a suffix suspense boundary to make sure the router is\n ready to be dehydrated on the server */}\n {/* {router.options.ssrFooter && match.matchId === rootRouteId ? (\n <React.Suspense fallback={null}>\n {(() => {\n if (router.state.pending) {\n throw router.navigationPromise\n }\n\n return router.options.ssrFooter()\n })()}\n </React.Suspense>\n ) : null} */}\n </MatchesProvider>\n )\n}\n\nclass CatchBoundary extends React.Component<{\n children: any\n errorComponent: any\n match: RouteMatch\n}> {\n state = {\n error: false,\n info: undefined,\n }\n\n componentDidCatch(error: any, info: any) {\n console.error(`Error in route match: ${this.props.match.matchId}`)\n console.error(error)\n\n this.setState({\n error,\n info,\n })\n }\n\n render() {\n return (\n <CatchBoundaryInner\n {...this.props}\n errorState={this.state}\n reset={() => this.setState({})}\n />\n )\n }\n}\n\n// This is the messiest thing ever... I'm either seriously tired (likely) or\n// there has to be a better way to reset error boundaries when the\n// router's location key changes.\nfunction CatchBoundaryInner(props: {\n children: any\n errorComponent: any\n errorState: { error: unknown; info: any }\n reset: () => void\n}) {\n const [activeErrorState, setActiveErrorState] = React.useState(\n props.errorState,\n )\n const router = useRouter()\n const errorComponent = props.errorComponent ?? DefaultErrorBoundary\n\n React.useEffect(() => {\n if (activeErrorState) {\n let prevKey = router.state.location.key\n return router.subscribe(() => {\n if (router.state.location.key !== prevKey) {\n prevKey = router.state.location.key\n setActiveErrorState({} as any)\n }\n })\n }\n\n return\n }, [activeErrorState])\n\n React.useEffect(() => {\n if (props.errorState.error) {\n setActiveErrorState(props.errorState)\n }\n props.reset()\n }, [props.errorState.error])\n\n if (activeErrorState.error) {\n return React.createElement(errorComponent, activeErrorState)\n }\n\n return props.children\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>\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":["lazy","importer","lazyComp","React","promise","resolvedComp","forwardedComp","forwardRef","props","ref","resolvedCompRef","useRef","createElement","current","finalComp","preload","then","module","default","Link","router","useRouter","matchesContext","createContext","routerContext","MatchesProvider","useRouterSubscription","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","reactHandleClick","e","startTransition","composeHandlers","handlers","persist","forEach","handler","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","_extends","undefined","filter","Boolean","join","role","children","MatchRoute","pending","caseSensitive","params","matchRoute","coreRouter","createRouter","routerExt","useState","useMatch","rootRouteId","nearestMatch","useNearestMatch","match","matches","find","d","strict","routeExt","Object","assign","createRoute","loadComponent","component","document","RouterProvider","_objectWithoutPropertiesLoose","update","useEffect","mount","value","useContext","warning","useMatches","runtimeMatch","useSearch","_routeId","location","search","Outlet","slice","defaultPending","useCallback","PendingComponent","__","pendingComponent","defaultPendingComponent","errorComponent","defaultErrorComponent","status","error","defaultComponent","loadPromise","CatchBoundary","Component","info","componentDidCatch","console","matchId","setState","render","CatchBoundaryInner","activeErrorState","setActiveErrorState","errorState","DefaultErrorBoundary","prevKey","key","reset","padding","maxWidth","fontSize","height","message","border","borderRadius","color","usePrompt","when","unblock","history","block","transition","window","confirm","retry","pathname","Prompt"],"mappings":"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"}