@tanstack/react-router 0.0.1-alpha.0 → 0.0.1-alpha.1

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.
@@ -4014,7 +4014,7 @@ var drawChart = (function (exports) {
4014
4014
  </script>
4015
4015
  <script>
4016
4016
  /*<!--*/
4017
- const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"uid":"9dec-21","name":"\u0000rollupPluginBabelHelpers.js"},{"name":"packages","children":[{"name":"router-core/build/esm/index.js","uid":"9dec-23"},{"name":"react-router/src/index.tsx","uid":"9dec-25"}]}]}],"isRoot":true},"nodeParts":{"9dec-21":{"renderedLength":798,"gzipLength":366,"brotliLength":0,"mainUid":"9dec-20"},"9dec-23":{"renderedLength":68622,"gzipLength":14235,"brotliLength":0,"mainUid":"9dec-22"},"9dec-25":{"renderedLength":11931,"gzipLength":3038,"brotliLength":0,"mainUid":"9dec-24"}},"nodeMetas":{"9dec-20":{"id":"\u0000rollupPluginBabelHelpers.js","moduleParts":{"index.production.js":"9dec-21"},"imported":[],"importedBy":[{"uid":"9dec-24"}]},"9dec-22":{"id":"/packages/router-core/build/esm/index.js","moduleParts":{"index.production.js":"9dec-23"},"imported":[],"importedBy":[{"uid":"9dec-24"}]},"9dec-24":{"id":"/packages/react-router/src/index.tsx","moduleParts":{"index.production.js":"9dec-25"},"imported":[{"uid":"9dec-20"},{"uid":"9dec-26"},{"uid":"9dec-27"},{"uid":"9dec-22"}],"importedBy":[],"isEntry":true},"9dec-26":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"9dec-24"}],"isExternal":true},"9dec-27":{"id":"use-sync-external-store/shim","moduleParts":{},"imported":[],"importedBy":[{"uid":"9dec-24"}],"isExternal":true}},"env":{"rollup":"2.77.2"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
4017
+ const data = {"version":2,"tree":{"name":"root","children":[{"name":"index.production.js","children":[{"uid":"cad9-21","name":"\u0000rollupPluginBabelHelpers.js"},{"name":"packages","children":[{"name":"router-core/build/esm/index.js","uid":"cad9-23"},{"name":"react-router/src/index.tsx","uid":"cad9-25"}]}]}],"isRoot":true},"nodeParts":{"cad9-21":{"renderedLength":798,"gzipLength":366,"brotliLength":0,"mainUid":"cad9-20"},"cad9-23":{"renderedLength":68622,"gzipLength":14235,"brotliLength":0,"mainUid":"cad9-22"},"cad9-25":{"renderedLength":11931,"gzipLength":3038,"brotliLength":0,"mainUid":"cad9-24"}},"nodeMetas":{"cad9-20":{"id":"\u0000rollupPluginBabelHelpers.js","moduleParts":{"index.production.js":"cad9-21"},"imported":[],"importedBy":[{"uid":"cad9-24"}]},"cad9-22":{"id":"/packages/router-core/build/esm/index.js","moduleParts":{"index.production.js":"cad9-23"},"imported":[],"importedBy":[{"uid":"cad9-24"}]},"cad9-24":{"id":"/packages/react-router/src/index.tsx","moduleParts":{"index.production.js":"cad9-25"},"imported":[{"uid":"cad9-20"},{"uid":"cad9-26"},{"uid":"cad9-27"},{"uid":"cad9-22"}],"importedBy":[],"isEntry":true},"cad9-26":{"id":"react","moduleParts":{},"imported":[],"importedBy":[{"uid":"cad9-24"}],"isExternal":true},"cad9-27":{"id":"use-sync-external-store/shim","moduleParts":{},"imported":[],"importedBy":[{"uid":"cad9-24"}],"isExternal":true}},"env":{"rollup":"2.77.2"},"options":{"gzip":true,"brotli":false,"sourcemap":false}};
4018
4018
 
4019
4019
  const run = () => {
4020
4020
  const width = window.innerWidth;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tanstack/react-router",
3
3
  "author": "Tanner Linsley",
4
- "version": "0.0.1-alpha.0",
4
+ "version": "0.0.1-alpha.1",
5
5
  "license": "MIT",
6
6
  "repository": "tanstack/router",
7
7
  "homepage": "https://react-router.tanstack.com/",
@@ -24,8 +24,8 @@
24
24
  "url": "https://github.com/sponsors/tannerlinsley"
25
25
  },
26
26
  "module": "build/esm/index.js",
27
- "main": "build/cjs/index.js",
28
- "browser": "build/umd/index.production.min.js",
27
+ "main": "build/cjs/react-router/src/index.js",
28
+ "browser": "build/umd/index.production.js",
29
29
  "types": "build/types/index.d.ts",
30
30
  "engines": {
31
31
  "node": ">=12"
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@babel/runtime": "^7.16.7",
43
- "@tanstack/router-core": "0.0.1-beta.0",
43
+ "@tanstack/router-core": "0.0.1-alpha.1",
44
44
  "use-sync-external-store": "^1.2.0"
45
45
  },
46
46
  "devDependencies": {
@@ -1,364 +0,0 @@
1
- /**
2
- * react-router
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
16
- var React = require('react');
17
- var shim = require('use-sync-external-store/shim');
18
- var routerCore = require('@tanstack/router-core');
19
-
20
- function _interopNamespace(e) {
21
- if (e && e.__esModule) return e;
22
- var n = Object.create(null);
23
- if (e) {
24
- Object.keys(e).forEach(function (k) {
25
- if (k !== 'default') {
26
- var d = Object.getOwnPropertyDescriptor(e, k);
27
- Object.defineProperty(n, k, d.get ? d : {
28
- enumerable: true,
29
- get: function () { return e[k]; }
30
- });
31
- }
32
- });
33
- }
34
- n["default"] = e;
35
- return Object.freeze(n);
36
- }
37
-
38
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
39
-
40
- const _excluded = ["children"],
41
- _excluded2 = ["children", "pending", "caseSensitive"],
42
- _excluded3 = ["to", "children", "_ref", "disabled", "target", "search", "hash", "replace", "getActiveProps", "getInactiveProps", "activeOptions", "preload", "preloadMaxAge", "style", "className", "onClick", "onFocus", "onMouseEnter", "onMouseLeave", "onTouchStart", "onTouchEnd"];
43
- //
44
- const matchesContext = /*#__PURE__*/React__namespace.createContext(null);
45
- const routerContext = /*#__PURE__*/React__namespace.createContext(null); // Detect if we're in the DOM
46
-
47
- const isDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);
48
- const useLayoutEffect = isDOM ? React__namespace.useLayoutEffect : React__namespace.useEffect;
49
- function MatchesProvider(props) {
50
- return /*#__PURE__*/React__namespace.createElement(matchesContext.Provider, props);
51
- }
52
- function Router(_ref2) {
53
- let {
54
- children
55
- } = _ref2,
56
- rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_ref2, _excluded);
57
-
58
- const [router] = React__namespace.useState(() => {
59
- return new routerCore.RouterInstance(rest);
60
- });
61
- router.update(rest);
62
- shim.useSyncExternalStore(cb => router.subscribe(() => cb()), () => router.state);
63
- useLayoutEffect(() => {
64
- router.mount();
65
- }, []);
66
- return /*#__PURE__*/React__namespace.createElement(routerContext.Provider, {
67
- value: {
68
- router
69
- }
70
- }, /*#__PURE__*/React__namespace.createElement(MatchesProvider, {
71
- value: [router.rootMatch, ...router.state.matches]
72
- }, children != null ? children : /*#__PURE__*/React__namespace.createElement(Outlet, null)));
73
- }
74
- function useRouter() {
75
- const value = React__namespace.useContext(routerContext);
76
- routerCore.warning(value, 'useRouter must be used inside a <Router> component!');
77
- shim.useSyncExternalStore(cb => value.router.subscribe(() => cb()), () => value.router.state);
78
- return value.router;
79
- }
80
-
81
- function useLatestCallback(cb) {
82
- const cbRef = React__namespace.useRef(cb);
83
- cbRef.current = cb;
84
- return React__namespace.useCallback(function () {
85
- return cbRef.current(...arguments);
86
- }, []);
87
- }
88
-
89
- function useMatches() {
90
- return React__namespace.useContext(matchesContext);
91
- }
92
- function useParentMatches() {
93
- const router = useRouter();
94
- const match = useMatch();
95
- const matches = router.state.matches;
96
- return matches.slice(0, matches.findIndex(d => d.id === match.id) - 1);
97
- }
98
- function useMatch() {
99
- var _useMatches;
100
-
101
- return (_useMatches = useMatches()) == null ? void 0 : _useMatches[0];
102
- }
103
- function useLoaderData() {
104
- const router = useRouter();
105
- return router.state.loaderData;
106
- }
107
- function useAction(opts) {
108
- const match = useMatch();
109
- const router = useRouter();
110
- return router.getAction(_rollupPluginBabelHelpers["extends"]({
111
- from: match.pathname,
112
- to: '.'
113
- }, opts), {
114
- isActive: !(opts != null && opts.to)
115
- });
116
- }
117
- function Form(props) {
118
- const action = useAction();
119
- return /*#__PURE__*/React__namespace.createElement("form", _rollupPluginBabelHelpers["extends"]({}, props, {
120
- onSubmit: event => {
121
- event.preventDefault();
122
- event.stopPropagation();
123
- action.submit(event);
124
- }
125
- }), props.children);
126
- }
127
- function useMatchRoute() {
128
- const router = useRouter();
129
- const match = useMatch();
130
- return useLatestCallback((matchLocation, opts) => {
131
- return router.matchRoute(_rollupPluginBabelHelpers["extends"]({}, matchLocation, {
132
- from: match.pathname
133
- }), opts);
134
- });
135
- }
136
- function MatchRoute(_ref3) {
137
- let {
138
- children,
139
- pending,
140
- caseSensitive
141
- } = _ref3,
142
- rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(_ref3, _excluded2);
143
-
144
- const matchRoute = useMatchRoute();
145
- const match = matchRoute(rest, {
146
- pending,
147
- caseSensitive
148
- });
149
-
150
- if (typeof children === 'function') {
151
- return children(match);
152
- }
153
-
154
- return match ? children : null;
155
- }
156
- function useLoadRoute() {
157
- const match = useMatch();
158
- const router = useRouter();
159
- return useLatestCallback(async (navigateOpts, loaderOpts) => router.loadRoute(_rollupPluginBabelHelpers["extends"]({}, navigateOpts, {
160
- from: match.pathname
161
- }), loaderOpts));
162
- }
163
- function useInvalidateRoute() {
164
- const match = useMatch();
165
- const router = useRouter();
166
- return useLatestCallback(async function (navigateOpts) {
167
- if (navigateOpts === void 0) {
168
- navigateOpts = {
169
- to: '.'
170
- };
171
- }
172
-
173
- return router.invalidateRoute(_rollupPluginBabelHelpers["extends"]({}, navigateOpts, {
174
- from: match.pathname
175
- }));
176
- });
177
- }
178
- function useNavigate() {
179
- const router = useRouter();
180
- const match = useMatch();
181
- return useLatestCallback(options => router.navigate(_rollupPluginBabelHelpers["extends"]({}, options, {
182
- from: match.pathname
183
- })));
184
- }
185
- function Navigate(options) {
186
- let navigate = useNavigate();
187
- useLayoutEffect(() => {
188
- navigate(options);
189
- }, [navigate]);
190
- return null;
191
- }
192
- function Outlet() {
193
- var _router$getOutletElem, _match$route$catchEle;
194
-
195
- const router = useRouter();
196
- const [_, ...matches] = useMatches();
197
- if (!matches.length) return null;
198
- const [match] = matches;
199
- let element = (_router$getOutletElem = router.getOutletElement(matches)) != null ? _router$getOutletElem : /*#__PURE__*/React__namespace.createElement(Outlet, null);
200
- const catchElement = (_match$route$catchEle = match == null ? void 0 : match.route.catchElement) != null ? _match$route$catchEle : router.defaultCatchElement;
201
- return /*#__PURE__*/React__namespace.createElement(MatchesProvider, {
202
- value: matches
203
- }, /*#__PURE__*/React__namespace.createElement(CatchBoundary, {
204
- catchElement: catchElement
205
- }, element));
206
- }
207
- function useResolvePath() {
208
- const router = useRouter();
209
- const match = useMatch();
210
- return useLatestCallback(path => router.resolvePath(match.pathname, path));
211
- }
212
- function useSearch() {
213
- const router = useRouter();
214
- return router.location.search;
215
- }
216
- function useLink(opts) {
217
- const router = useRouter();
218
- const match = useMatch();
219
- const ref = React__namespace.useRef({}).current;
220
- return router.buildLinkInfo(_rollupPluginBabelHelpers["extends"]({}, opts, {
221
- from: match.pathname,
222
- ref
223
- }));
224
- }
225
- function Link(props) {
226
- const linkUtils = useLink(props);
227
-
228
- const {
229
- to,
230
- children,
231
- _ref,
232
- disabled,
233
- target,
234
- style,
235
- className,
236
- onClick,
237
- onFocus,
238
- onMouseEnter,
239
- onMouseLeave
240
- } = props,
241
- rest = _rollupPluginBabelHelpers.objectWithoutPropertiesLoose(props, _excluded3);
242
-
243
- if (!linkUtils) {
244
- return /*#__PURE__*/React__namespace.createElement("a", _rollupPluginBabelHelpers["extends"]({
245
- href: to
246
- }, rest), typeof children === 'function' ? children({
247
- isActive: false
248
- }) : children);
249
- }
250
-
251
- const {
252
- next,
253
- activeProps,
254
- handleFocus,
255
- handleClick,
256
- handleEnter,
257
- handleLeave,
258
- inactiveProps,
259
- isActive
260
- } = linkUtils;
261
-
262
- const composeHandlers = handlers => e => {
263
- e.persist();
264
- handlers.forEach(handler => {
265
- if (handler) handler(e);
266
- });
267
- };
268
-
269
- return /*#__PURE__*/React__namespace.createElement("a", _rollupPluginBabelHelpers["extends"]({}, activeProps, inactiveProps, rest, {
270
- ref: _ref,
271
- href: disabled ? undefined : next.href,
272
- onClick: composeHandlers([handleClick, onClick]),
273
- onFocus: composeHandlers([handleFocus, onFocus]),
274
- onMouseEnter: composeHandlers([handleEnter, onMouseEnter]),
275
- onMouseLeave: composeHandlers([handleLeave, onMouseLeave]),
276
- target,
277
- style: _rollupPluginBabelHelpers["extends"]({}, style, activeProps.style, inactiveProps.style),
278
- className: [className, activeProps.className, inactiveProps.className].filter(Boolean).join(' ') || undefined
279
- }, disabled ? {
280
- role: 'link',
281
- 'aria-disabled': true
282
- } : undefined, {
283
- children: typeof children === 'function' ? children({
284
- isActive
285
- }) : children
286
- }));
287
- }
288
-
289
- class CatchBoundary extends React__namespace.Component {
290
- constructor() {
291
- super(...arguments);
292
- this.state = {
293
- error: false
294
- };
295
-
296
- this.reset = () => {
297
- this.setState({
298
- error: false,
299
- info: false
300
- });
301
- };
302
- }
303
-
304
- componentDidCatch(error, info) {
305
- console.error(error);
306
- this.setState({
307
- error,
308
- info
309
- });
310
- }
311
-
312
- render() {
313
- var _this$props$catchElem;
314
-
315
- const catchElement = (_this$props$catchElem = this.props.catchElement) != null ? _this$props$catchElem : DefaultCatchBoundary;
316
-
317
- if (this.state.error) {
318
- return typeof catchElement === 'function' ? catchElement(this.state) : catchElement;
319
- }
320
-
321
- return this.props.children;
322
- }
323
-
324
- }
325
-
326
- function DefaultCatchBoundary(_ref4) {
327
- let {
328
- error
329
- } = _ref4;
330
- return /*#__PURE__*/React__namespace.createElement("div", {
331
- style: {
332
- padding: '.5rem',
333
- maxWidth: '100%'
334
- }
335
- }, error.message ? null : /*#__PURE__*/React__namespace.createElement("h1", null, "Something went wrong!"), /*#__PURE__*/React__namespace.createElement("small", null, /*#__PURE__*/React__namespace.createElement("em", null, error.message)));
336
- }
337
-
338
- exports.Form = Form;
339
- exports.Link = Link;
340
- exports.MatchRoute = MatchRoute;
341
- exports.MatchesProvider = MatchesProvider;
342
- exports.Navigate = Navigate;
343
- exports.Outlet = Outlet;
344
- exports.Router = Router;
345
- exports.useAction = useAction;
346
- exports.useInvalidateRoute = useInvalidateRoute;
347
- exports.useLink = useLink;
348
- exports.useLoadRoute = useLoadRoute;
349
- exports.useLoaderData = useLoaderData;
350
- exports.useMatch = useMatch;
351
- exports.useMatchRoute = useMatchRoute;
352
- exports.useMatches = useMatches;
353
- exports.useNavigate = useNavigate;
354
- exports.useParentMatches = useParentMatches;
355
- exports.useResolvePath = useResolvePath;
356
- exports.useRouter = useRouter;
357
- exports.useSearch = useSearch;
358
- Object.keys(routerCore).forEach(function (k) {
359
- if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
360
- enumerable: true,
361
- get: function () { return routerCore[k]; }
362
- });
363
- });
364
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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 warning,\n RouterInstance,\n RouterOptions,\n RouteMatch,\n RouteParams,\n NavigateOptions,\n MatchLocation,\n MatchRouteOptions,\n LinkOptions,\n} from '@tanstack/router-core'\n\nexport * from '@tanstack/router-core'\n\ndeclare module '@tanstack/router-core' {\n interface FrameworkGenerics<TData = unknown> {\n Element: React.ReactNode\n AsyncElement: (opts: {\n params: Record<string, string>\n }) => Promise<React.ReactNode>\n SyncOrAsyncElement:\n | React.ReactNode\n | FrameworkGenerics<TData>['AsyncElement']\n LinkProps: React.HTMLAttributes<unknown>\n }\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<unknown>[]>(null!)\nconst routerContext = React.createContext<{ router: RouterInstance }>(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<unknown>[]\n children: React.ReactNode\n}\n\nexport function MatchesProvider(props: MatchesProviderProps) {\n return <matchesContext.Provider {...props} />\n}\n\nexport type RouterProps = RouterOptions & {\n // Children will default to `<Outlet />` if not provided\n children?: React.ReactNode\n}\n\nexport function Router({ children, ...rest }: RouterProps) {\n const [router] = React.useState(() => {\n return new RouterInstance(rest)\n })\n\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\n value={[\n router.rootMatch as RouteMatch<unknown>,\n ...router.state.matches,\n ]}\n >\n {children ?? <Outlet />}\n </MatchesProvider>\n </routerContext.Provider>\n )\n}\n\nexport function useRouter(): RouterInstance {\n const value = React.useContext(routerContext)\n warning(value, 'useRouter must be used inside a <Router> component!')\n\n useSyncExternalStore(\n (cb) => value.router.subscribe(() => cb()),\n () => value.router.state,\n )\n\n return value.router as RouterInstance\n}\n\nfunction useLatestCallback<TCallback extends (...args: any[]) => any>(\n cb: TCallback,\n) {\n const cbRef = React.useRef<TCallback>(cb)\n cbRef.current = cb\n return React.useCallback(\n (...args: Parameters<TCallback>): ReturnType<TCallback> =>\n cbRef.current(...args),\n [],\n )\n}\n\nexport function useMatches(): RouteMatch<unknown>[] {\n return React.useContext(matchesContext)\n}\n\nexport function useParentMatches(): RouteMatch<unknown>[] {\n const router = useRouter()\n const match = useMatch()\n const matches = router.state.matches\n return matches.slice(0, matches.findIndex((d) => d.id === match.id) - 1)\n}\n\nexport function useMatch<T>(): RouteMatch<T> {\n return useMatches()?.[0] as RouteMatch<T>\n}\n\nexport function useLoaderData() {\n const router = useRouter()\n return router.state.loaderData\n}\n\nexport function useAction<\n TPayload = unknown,\n TResponse = unknown,\n TError = unknown,\n>(opts?: Pick<NavigateOptions, 'to' | 'from'>) {\n const match = useMatch()\n const router = useRouter()\n return router.getAction<TPayload, TResponse, TError>(\n { from: match.pathname, to: '.', ...opts },\n {\n isActive: !opts?.to,\n },\n )\n}\n\nexport function Form(props: React.HTMLProps<HTMLFormElement>) {\n const action = useAction()\n\n return (\n <form\n {...props}\n onSubmit={(event) => {\n event.preventDefault()\n event.stopPropagation()\n\n action.submit(event)\n }}\n >\n {props.children}\n </form>\n )\n}\n\nexport function useMatchRoute() {\n const router = useRouter()\n const match = useMatch()\n\n return useLatestCallback(\n (matchLocation: MatchLocation, opts?: MatchRouteOptions) => {\n return router.matchRoute(\n {\n ...matchLocation,\n from: match.pathname,\n },\n opts,\n )\n },\n )\n}\n\nexport type MatchRouteProps = MatchLocation &\n MatchRouteOptions & {\n children: React.ReactNode | ((routeParams?: RouteParams) => React.ReactNode)\n }\n\nexport function MatchRoute({\n children,\n pending,\n caseSensitive,\n ...rest\n}: MatchRouteProps): JSX.Element {\n const matchRoute = useMatchRoute()\n const match = matchRoute(rest, { pending, caseSensitive })\n\n if (typeof children === 'function') {\n return children(match as any) as JSX.Element\n }\n\n return (match ? children : null) as JSX.Element\n}\n\nexport function useLoadRoute() {\n const match = useMatch()\n const router = useRouter()\n\n return useLatestCallback(\n async (navigateOpts: NavigateOptions, loaderOpts: { maxAge: number }) =>\n router.loadRoute({ ...navigateOpts, from: match.pathname }, loaderOpts),\n )\n}\n\nexport function useInvalidateRoute() {\n const match = useMatch()\n const router = useRouter()\n\n return useLatestCallback(async (navigateOpts: MatchLocation = { to: '.' }) =>\n router.invalidateRoute({ ...navigateOpts, from: match.pathname }),\n )\n}\n\nexport function useNavigate() {\n const router = useRouter()\n const match = useMatch()\n\n return useLatestCallback((options: NavigateOptions) =>\n router.navigate({ ...options, from: match.pathname }),\n )\n}\n\nexport function Navigate(options: NavigateOptions) {\n let navigate = useNavigate()\n\n useLayoutEffect(() => {\n navigate(options)\n }, [navigate])\n\n return null\n}\n\nexport function Outlet() {\n const router = useRouter()\n const [_, ...matches] = useMatches()\n\n if (!matches.length) return null\n\n const [match] = matches\n\n let element = router.getOutletElement(matches) ?? <Outlet />\n\n const catchElement = match?.route.catchElement ?? router.defaultCatchElement\n\n return (\n <MatchesProvider value={matches}>\n <CatchBoundary catchElement={catchElement}>{element}</CatchBoundary>\n </MatchesProvider>\n )\n}\n\nexport function useResolvePath() {\n const router = useRouter()\n const match = useMatch()\n return useLatestCallback((path: string) =>\n router.resolvePath(match.pathname, path),\n )\n}\n\nexport function useSearch() {\n const router = useRouter()\n return router.location.search\n}\n\nexport type LinkProps = LinkOptions &\n Omit<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n 'href' | 'children' | keyof LinkOptions\n > & {\n // A custom ref prop because of this: https://stackoverflow.com/questions/58469229/react-with-typescript-generics-while-using-react-forwardref/58473012\n _ref?: React.Ref<HTMLAnchorElement>\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | React.ReactNode\n | ((state: { isActive: boolean }) => React.ReactNode)\n }\n\nexport function useLink(opts: LinkOptions) {\n const router = useRouter()\n const match = useMatch()\n const ref = React.useRef({}).current\n return router.buildLinkInfo({ ...opts, from: match.pathname, ref })\n}\n\nexport function Link(props: LinkProps) {\n const linkUtils = useLink(props)\n\n const {\n to,\n children,\n _ref,\n disabled,\n target,\n search,\n hash,\n replace,\n getActiveProps,\n getInactiveProps,\n activeOptions,\n preload,\n preloadMaxAge,\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n ...rest\n } = props\n\n if (!linkUtils) {\n return (\n <a href={to as string} {...rest}>\n {typeof children === 'function'\n ? children({ isActive: false })\n : children}\n </a>\n )\n }\n\n const {\n next,\n activeProps,\n handleFocus,\n handleClick,\n handleEnter,\n handleLeave,\n inactiveProps,\n isActive,\n } = linkUtils\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 return (\n <a\n {...{\n ...activeProps,\n ...inactiveProps,\n ...rest,\n ref: _ref,\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 ...activeProps.style,\n ...inactiveProps.style,\n },\n className:\n [className, activeProps.className, inactiveProps.className]\n .filter(Boolean)\n .join(' ') || undefined,\n ...(disabled\n ? {\n role: 'link',\n 'aria-disabled': true,\n }\n : undefined),\n children:\n typeof children === 'function' ? children({ isActive }) : children,\n }}\n />\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\nfunction DefaultCatchBoundary({ error }: { error: any }) {\n return (\n <div style={{ padding: '.5rem', maxWidth: '100%' }}>\n {error.message ? null : <h1>Something went wrong!</h1>}\n <small>\n <em>{error.message}</em>\n </small>\n </div>\n )\n}\n"],"names":["matchesContext","React","createContext","routerContext","isDOM","Boolean","window","document","createElement","useLayoutEffect","useEffect","MatchesProvider","props","Router","children","rest","_objectWithoutPropertiesLoose","router","useState","RouterInstance","update","useSyncExternalStore","cb","subscribe","state","mount","rootMatch","matches","useRouter","value","useContext","warning","useLatestCallback","cbRef","useRef","current","useCallback","useMatches","useParentMatches","match","useMatch","slice","findIndex","d","id","useLoaderData","loaderData","useAction","opts","getAction","_extends","from","pathname","to","isActive","Form","action","event","preventDefault","stopPropagation","submit","useMatchRoute","matchLocation","matchRoute","MatchRoute","pending","caseSensitive","useLoadRoute","navigateOpts","loaderOpts","loadRoute","useInvalidateRoute","invalidateRoute","useNavigate","options","navigate","Navigate","Outlet","_","length","element","getOutletElement","catchElement","route","defaultCatchElement","useResolvePath","path","resolvePath","useSearch","location","search","useLink","ref","buildLinkInfo","Link","linkUtils","_ref","disabled","target","style","className","onClick","onFocus","onMouseEnter","onMouseLeave","next","activeProps","handleFocus","handleClick","handleEnter","handleLeave","inactiveProps","composeHandlers","handlers","e","persist","forEach","handler","href","undefined","filter","join","role","CatchBoundary","Component","error","reset","setState","info","componentDidCatch","console","render","DefaultCatchBoundary","padding","maxWidth","message"],"mappings":"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"}