@tanstack/react-router 1.0.0 → 1.0.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.
Files changed (136) hide show
  1. package/build/cjs/RouterProvider.js +3 -1
  2. package/build/cjs/RouterProvider.js.map +1 -1
  3. package/build/esm/index.js +3 -1
  4. package/build/esm/index.js.map +1 -1
  5. package/build/stats-html.html +1 -1
  6. package/build/stats-react.json +361 -361
  7. package/build/types/index.d.ts +24 -932
  8. package/build/umd/index.development.js +3 -1
  9. package/build/umd/index.development.js.map +1 -1
  10. package/build/umd/index.production.js +1 -1
  11. package/build/umd/index.production.js.map +1 -1
  12. package/package.json +2 -2
  13. package/src/RouterProvider.tsx +3 -1
  14. package/build/cjs/_virtual/with-selector.development.js +0 -16
  15. package/build/cjs/_virtual/with-selector.development.js.map +0 -1
  16. package/build/cjs/_virtual/with-selector.js +0 -16
  17. package/build/cjs/_virtual/with-selector.js.map +0 -1
  18. package/build/cjs/_virtual/with-selector.production.min.js +0 -16
  19. package/build/cjs/_virtual/with-selector.production.min.js.map +0 -1
  20. package/build/cjs/build/esm/index.js +0 -79
  21. package/build/cjs/build/esm/index.js.map +0 -1
  22. package/build/cjs/node_modules/.pnpm/@tanstack_react-store@0.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/modern/index.js +0 -47
  23. package/build/cjs/node_modules/.pnpm/@tanstack_react-store@0.2.1_react-dom@18.2.0_react@18.2.0/node_modules/@tanstack/react-store/build/modern/index.js.map +0 -1
  24. package/build/cjs/node_modules/.pnpm/@tanstack_store@0.1.3/node_modules/@tanstack/store/build/modern/index.js +0 -70
  25. package/build/cjs/node_modules/.pnpm/@tanstack_store@0.1.3/node_modules/@tanstack/store/build/modern/index.js.map +0 -1
  26. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -188
  27. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -1
  28. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +0 -39
  29. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -1
  30. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/shim/with-selector.js +0 -26
  31. package/build/cjs/node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.2.0/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -1
  32. package/build/cjs/packages/react-router/src/CatchBoundary.js +0 -123
  33. package/build/cjs/packages/react-router/src/CatchBoundary.js.map +0 -1
  34. package/build/cjs/packages/react-router/src/Matches.js +0 -235
  35. package/build/cjs/packages/react-router/src/Matches.js.map +0 -1
  36. package/build/cjs/packages/react-router/src/RouterProvider.js +0 -144
  37. package/build/cjs/packages/react-router/src/RouterProvider.js.map +0 -1
  38. package/build/cjs/packages/react-router/src/awaited.js +0 -43
  39. package/build/cjs/packages/react-router/src/awaited.js.map +0 -1
  40. package/build/cjs/packages/react-router/src/defer.js +0 -37
  41. package/build/cjs/packages/react-router/src/defer.js.map +0 -1
  42. package/build/cjs/packages/react-router/src/fileRoute.js +0 -27
  43. package/build/cjs/packages/react-router/src/fileRoute.js.map +0 -1
  44. package/build/cjs/packages/react-router/src/index.js +0 -61
  45. package/build/cjs/packages/react-router/src/index.js.map +0 -1
  46. package/build/cjs/packages/react-router/src/lazyRouteComponent.js +0 -54
  47. package/build/cjs/packages/react-router/src/lazyRouteComponent.js.map +0 -1
  48. package/build/cjs/packages/react-router/src/link.js +0 -148
  49. package/build/cjs/packages/react-router/src/link.js.map +0 -1
  50. package/build/cjs/packages/react-router/src/path.js +0 -209
  51. package/build/cjs/packages/react-router/src/path.js.map +0 -1
  52. package/build/cjs/packages/react-router/src/qss.js +0 -63
  53. package/build/cjs/packages/react-router/src/qss.js.map +0 -1
  54. package/build/cjs/packages/react-router/src/react.js +0 -634
  55. package/build/cjs/packages/react-router/src/react.js.map +0 -1
  56. package/build/cjs/packages/react-router/src/redirects.js +0 -25
  57. package/build/cjs/packages/react-router/src/redirects.js.map +0 -1
  58. package/build/cjs/packages/react-router/src/route.js +0 -134
  59. package/build/cjs/packages/react-router/src/route.js.map +0 -1
  60. package/build/cjs/packages/react-router/src/router.js +0 -1111
  61. package/build/cjs/packages/react-router/src/router.js.map +0 -1
  62. package/build/cjs/packages/react-router/src/scroll-restoration.js +0 -53
  63. package/build/cjs/packages/react-router/src/scroll-restoration.js.map +0 -1
  64. package/build/cjs/packages/react-router/src/searchParams.js +0 -81
  65. package/build/cjs/packages/react-router/src/searchParams.js.map +0 -1
  66. package/build/cjs/packages/react-router/src/useBlocker.js +0 -61
  67. package/build/cjs/packages/react-router/src/useBlocker.js.map +0 -1
  68. package/build/cjs/packages/react-router/src/useNavigate.js +0 -75
  69. package/build/cjs/packages/react-router/src/useNavigate.js.map +0 -1
  70. package/build/cjs/packages/react-router/src/useParams.js +0 -26
  71. package/build/cjs/packages/react-router/src/useParams.js.map +0 -1
  72. package/build/cjs/packages/react-router/src/useSearch.js +0 -25
  73. package/build/cjs/packages/react-router/src/useSearch.js.map +0 -1
  74. package/build/cjs/packages/react-router/src/utils.js +0 -239
  75. package/build/cjs/packages/react-router/src/utils.js.map +0 -1
  76. package/build/cjs/react/CatchBoundary.js +0 -123
  77. package/build/cjs/react/CatchBoundary.js.map +0 -1
  78. package/build/cjs/react/awaited.js +0 -43
  79. package/build/cjs/react/awaited.js.map +0 -1
  80. package/build/cjs/react/defer.js +0 -37
  81. package/build/cjs/react/defer.js.map +0 -1
  82. package/build/cjs/react.js +0 -650
  83. package/build/cjs/react.js.map +0 -1
  84. package/build/cjs/routerConfig.js +0 -209
  85. package/build/cjs/routerConfig.js.map +0 -1
  86. package/build/cjs/src/CatchBoundary.js +0 -126
  87. package/build/cjs/src/CatchBoundary.js.map +0 -1
  88. package/build/cjs/src/Matches.js +0 -235
  89. package/build/cjs/src/Matches.js.map +0 -1
  90. package/build/cjs/src/RouterProvider.js +0 -1051
  91. package/build/cjs/src/RouterProvider.js.map +0 -1
  92. package/build/cjs/src/awaited.js +0 -45
  93. package/build/cjs/src/awaited.js.map +0 -1
  94. package/build/cjs/src/defer.js +0 -39
  95. package/build/cjs/src/defer.js.map +0 -1
  96. package/build/cjs/src/fileRoute.js +0 -29
  97. package/build/cjs/src/fileRoute.js.map +0 -1
  98. package/build/cjs/src/index.js +0 -134
  99. package/build/cjs/src/index.js.map +0 -1
  100. package/build/cjs/src/lazyRouteComponent.js +0 -57
  101. package/build/cjs/src/lazyRouteComponent.js.map +0 -1
  102. package/build/cjs/src/link.js +0 -151
  103. package/build/cjs/src/link.js.map +0 -1
  104. package/build/cjs/src/path.js +0 -211
  105. package/build/cjs/src/path.js.map +0 -1
  106. package/build/cjs/src/qss.js +0 -65
  107. package/build/cjs/src/qss.js.map +0 -1
  108. package/build/cjs/src/redirects.js +0 -27
  109. package/build/cjs/src/redirects.js.map +0 -1
  110. package/build/cjs/src/route.js +0 -139
  111. package/build/cjs/src/route.js.map +0 -1
  112. package/build/cjs/src/router.js +0 -203
  113. package/build/cjs/src/router.js.map +0 -1
  114. package/build/cjs/src/scroll-restoration.js +0 -186
  115. package/build/cjs/src/scroll-restoration.js.map +0 -1
  116. package/build/cjs/src/searchParams.js +0 -83
  117. package/build/cjs/src/searchParams.js.map +0 -1
  118. package/build/cjs/src/useBlocker.js +0 -64
  119. package/build/cjs/src/useBlocker.js.map +0 -1
  120. package/build/cjs/src/useNavigate.js +0 -78
  121. package/build/cjs/src/useNavigate.js.map +0 -1
  122. package/build/cjs/src/useParams.js +0 -28
  123. package/build/cjs/src/useParams.js.map +0 -1
  124. package/build/cjs/src/useSearch.js +0 -27
  125. package/build/cjs/src/useSearch.js.map +0 -1
  126. package/build/cjs/src/utils.js +0 -230
  127. package/build/cjs/src/utils.js.map +0 -1
  128. package/build/cjs/useStore.js +0 -99
  129. package/build/cjs/useStore.js.map +0 -1
  130. package/build/types/RouteMatch.d.ts +0 -23
  131. package/build/types/injectHtml.d.ts +0 -0
  132. package/build/types/react/CatchBoundary.d.ts +0 -33
  133. package/build/types/react/awaited.d.ts +0 -9
  134. package/build/types/react/defer.d.ts +0 -19
  135. package/build/types/react.d.ts +0 -141
  136. package/build/types/useStore.d.ts +0 -12
@@ -1,235 +0,0 @@
1
- /**
2
- * @tanstack/react-router/src/index.tsx
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 React = require('react');
16
- var invariant = require('tiny-invariant');
17
- var warning = require('tiny-warning');
18
- var CatchBoundary = require('./CatchBoundary.js');
19
- var RouterProvider = require('./RouterProvider.js');
20
- var route = require('./route.js');
21
-
22
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
-
24
- function _interopNamespace(e) {
25
- if (e && e.__esModule) return e;
26
- var n = Object.create(null);
27
- if (e) {
28
- Object.keys(e).forEach(function (k) {
29
- if (k !== 'default') {
30
- var d = Object.getOwnPropertyDescriptor(e, k);
31
- Object.defineProperty(n, k, d.get ? d : {
32
- enumerable: true,
33
- get: function () { return e[k]; }
34
- });
35
- }
36
- });
37
- }
38
- n["default"] = e;
39
- return Object.freeze(n);
40
- }
41
-
42
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
43
- var invariant__default = /*#__PURE__*/_interopDefaultLegacy(invariant);
44
- var warning__default = /*#__PURE__*/_interopDefaultLegacy(warning);
45
-
46
- function Matches() {
47
- const {
48
- routesById,
49
- state
50
- } = RouterProvider.useRouter();
51
- const {
52
- matches
53
- } = state;
54
- const locationKey = RouterProvider.useRouterState().location.state.key;
55
- const route$1 = routesById[route.rootRouteId];
56
- const errorComponent = React__namespace.useCallback(props => {
57
- return /*#__PURE__*/React__namespace.createElement(CatchBoundary.ErrorComponent, {
58
- ...props,
59
- useMatch: route$1.useMatch,
60
- useRouteContext: route$1.useRouteContext,
61
- useSearch: route$1.useSearch,
62
- useParams: route$1.useParams
63
- });
64
- }, [route$1]);
65
- return /*#__PURE__*/React__namespace.createElement(matchesContext.Provider, {
66
- value: matches
67
- }, /*#__PURE__*/React__namespace.createElement(CatchBoundary.CatchBoundary, {
68
- resetKey: locationKey,
69
- errorComponent: errorComponent,
70
- onCatch: () => {
71
- warning__default["default"](false, `Error in router! Consider setting an 'errorComponent' in your RootRoute! 👍`);
72
- }
73
- }, matches.length ? /*#__PURE__*/React__namespace.createElement(Match, {
74
- matches: matches
75
- }) : null));
76
- }
77
- const defaultPending = () => null;
78
- function SafeFragment(props) {
79
- return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, props.children);
80
- }
81
- function Match({
82
- matches
83
- }) {
84
- const {
85
- options,
86
- routesById
87
- } = RouterProvider.useRouter();
88
- const match = matches[0];
89
- const routeId = match?.routeId;
90
- const route = routesById[routeId];
91
- const locationKey = RouterProvider.useRouterState().location.state?.key;
92
- const PendingComponent = route.options.pendingComponent ?? options.defaultPendingComponent ?? defaultPending;
93
- const routeErrorComponent = route.options.errorComponent ?? options.defaultErrorComponent ?? CatchBoundary.ErrorComponent;
94
- const ResolvedSuspenseBoundary = route.options.wrapInSuspense ? React__namespace.Suspense : SafeFragment;
95
- const errorComponent = routeErrorComponent ? React__namespace.useCallback(props => {
96
- return /*#__PURE__*/React__namespace.createElement(routeErrorComponent, {
97
- ...props,
98
- useMatch: route.useMatch,
99
- useRouteContext: route.useRouteContext,
100
- useSearch: route.useSearch,
101
- useParams: route.useParams
102
- });
103
- }, [route]) : undefined;
104
- return /*#__PURE__*/React__namespace.createElement(matchesContext.Provider, {
105
- value: matches
106
- }, /*#__PURE__*/React__namespace.createElement(ResolvedSuspenseBoundary, {
107
- fallback: /*#__PURE__*/React__namespace.createElement(PendingComponent, {
108
- useMatch: route.useMatch,
109
- useRouteContext: route.useRouteContext,
110
- useSearch: route.useSearch,
111
- useParams: route.useParams
112
- })
113
- }, errorComponent ? /*#__PURE__*/React__namespace.createElement(CatchBoundary.CatchBoundary, {
114
- resetKey: locationKey,
115
- errorComponent: errorComponent,
116
- onCatch: () => {
117
- warning__default["default"](false, `Error in route match: ${match.id}`);
118
- }
119
- }, /*#__PURE__*/React__namespace.createElement(MatchInner, {
120
- match: match
121
- })) : /*#__PURE__*/React__namespace.createElement(SafeFragment, null, /*#__PURE__*/React__namespace.createElement(MatchInner, {
122
- match: match
123
- }))));
124
- }
125
- function MatchInner({
126
- match
127
- }) {
128
- const {
129
- options,
130
- routesById
131
- } = RouterProvider.useRouter();
132
- const route = routesById[match.routeId];
133
- if (match.status === 'error') {
134
- throw match.error;
135
- }
136
- if (match.status === 'pending') {
137
- throw match.loadPromise;
138
- }
139
- if (match.status === 'success') {
140
- let comp = route.options.component ?? options.defaultComponent;
141
- if (comp) {
142
- return /*#__PURE__*/React__namespace.createElement(comp, {
143
- useMatch: route.useMatch,
144
- useRouteContext: route.useRouteContext,
145
- useSearch: route.useSearch,
146
- useParams: route.useParams,
147
- useLoaderData: route.useLoaderData
148
- });
149
- }
150
- return /*#__PURE__*/React__namespace.createElement(Outlet, null);
151
- }
152
- invariant__default["default"](false, 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!');
153
- }
154
- function Outlet() {
155
- const matches = React__namespace.useContext(matchesContext).slice(1);
156
- if (!matches[0]) {
157
- return null;
158
- }
159
- return /*#__PURE__*/React__namespace.createElement(Match, {
160
- matches: matches
161
- });
162
- }
163
- function useMatchRoute() {
164
- const {
165
- matchRoute
166
- } = RouterProvider.useRouter();
167
- return React__namespace.useCallback(opts => {
168
- const {
169
- pending,
170
- caseSensitive,
171
- ...rest
172
- } = opts;
173
- return matchRoute(rest, {
174
- pending,
175
- caseSensitive
176
- });
177
- }, []);
178
- }
179
- function MatchRoute(props) {
180
- const matchRoute = useMatchRoute();
181
- const params = matchRoute(props);
182
- if (typeof props.children === 'function') {
183
- return props.children(params);
184
- }
185
- return !!params ? props.children : null;
186
- }
187
- function useMatch(opts) {
188
- const nearestMatch = React__namespace.useContext(matchesContext)[0];
189
- const nearestMatchRouteId = nearestMatch?.routeId;
190
- const matchRouteId = RouterProvider.useRouterState({
191
- select: state => {
192
- const match = opts?.from ? state.matches.find(d => d.routeId === opts?.from) : state.matches.find(d => d.id === nearestMatch.id);
193
- return match.routeId;
194
- }
195
- });
196
- if (opts?.strict ?? true) {
197
- invariant__default["default"](nearestMatchRouteId == matchRouteId, `useMatch("${matchRouteId}") is being called in a component that is meant to render the '${nearestMatchRouteId}' route. Did you mean to 'useMatch("${matchRouteId}", { strict: false })' or 'useRoute("${matchRouteId}")' instead?`);
198
- }
199
- const matchSelection = RouterProvider.useRouterState({
200
- select: state => {
201
- const match = opts?.from ? state.matches.find(d => d.routeId === opts?.from) : state.matches.find(d => d.id === nearestMatch.id);
202
- invariant__default["default"](match, `Could not find ${opts?.from ? `an active match from "${opts.from}"` : 'a nearest match!'}`);
203
- return opts?.select ? opts.select(match) : match;
204
- }
205
- });
206
- return matchSelection;
207
- }
208
- const matchesContext = /*#__PURE__*/React__namespace.createContext(null);
209
- function useMatches(opts) {
210
- const contextMatches = React__namespace.useContext(matchesContext);
211
- return RouterProvider.useRouterState({
212
- select: state => {
213
- const matches = state.matches.slice(state.matches.findIndex(d => d.id === contextMatches[0]?.id));
214
- return opts?.select ? opts.select(matches) : matches;
215
- }
216
- });
217
- }
218
- function useLoaderData(opts) {
219
- const match = useMatch({
220
- ...opts,
221
- select: undefined
222
- });
223
- return typeof opts.select === 'function' ? opts.select(match?.loaderData) : match?.loaderData;
224
- }
225
-
226
- exports.Match = Match;
227
- exports.MatchRoute = MatchRoute;
228
- exports.Matches = Matches;
229
- exports.Outlet = Outlet;
230
- exports.matchesContext = matchesContext;
231
- exports.useLoaderData = useLoaderData;
232
- exports.useMatch = useMatch;
233
- exports.useMatchRoute = useMatchRoute;
234
- exports.useMatches = useMatches;
235
- //# sourceMappingURL=Matches.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Matches.js","sources":["../../../src/Matches.tsx"],"sourcesContent":["import * as React from 'react'\nimport invariant from 'tiny-invariant'\nimport warning from 'tiny-warning'\nimport { CatchBoundary, ErrorComponent } from './CatchBoundary'\nimport { RouteMatch } from './RouterProvider'\nimport { useRouter, useRouterState } from './RouterProvider'\nimport { ResolveRelativePath, ToOptions } from './link'\nimport { AnyRoute, ReactNode, rootRouteId } from './route'\nimport { RouteById, RouteByPath, RouteIds, RoutePaths } from './routeInfo'\nimport { RegisteredRouter } from './router'\nimport { NoInfer, StrictOrFrom } from './utils'\n\nexport function Matches() {\n const { routesById, state } = useRouter()\n const { matches } = state\n\n const locationKey = useRouterState().location.state.key\n\n const route = routesById[rootRouteId]!\n\n const errorComponent = React.useCallback(\n (props: any) => {\n return React.createElement(ErrorComponent, {\n ...props,\n useMatch: route.useMatch,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })\n },\n [route],\n )\n\n return (\n <matchesContext.Provider value={matches}>\n <CatchBoundary\n resetKey={locationKey}\n errorComponent={errorComponent}\n onCatch={() => {\n warning(\n false,\n `Error in router! Consider setting an 'errorComponent' in your RootRoute! 👍`,\n )\n }}\n >\n {matches.length ? <Match matches={matches} /> : null}\n </CatchBoundary>\n </matchesContext.Provider>\n )\n}\n\nconst defaultPending = () => null\nfunction SafeFragment(props: any) {\n return <>{props.children}</>\n}\n\nexport function Match({ matches }: { matches: RouteMatch[] }) {\n const { options, routesById } = useRouter()\n const match = matches[0]!\n const routeId = match?.routeId\n const route = routesById[routeId]!\n const locationKey = useRouterState().location.state?.key\n\n const PendingComponent = (route.options.pendingComponent ??\n options.defaultPendingComponent ??\n defaultPending) as any\n\n const routeErrorComponent =\n route.options.errorComponent ??\n options.defaultErrorComponent ??\n ErrorComponent\n\n const ResolvedSuspenseBoundary = route.options.wrapInSuspense\n ? React.Suspense\n : SafeFragment\n\n const errorComponent = routeErrorComponent\n ? React.useCallback(\n (props: any) => {\n return React.createElement(routeErrorComponent, {\n ...props,\n useMatch: route.useMatch,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })\n },\n [route],\n )\n : undefined\n\n return (\n <matchesContext.Provider value={matches}>\n <ResolvedSuspenseBoundary\n fallback={React.createElement(PendingComponent, {\n useMatch: route.useMatch,\n useRouteContext: route.useRouteContext,\n useSearch: route.useSearch,\n useParams: route.useParams,\n })}\n >\n {errorComponent ? (\n <CatchBoundary\n resetKey={locationKey}\n errorComponent={errorComponent}\n onCatch={() => {\n warning(false, `Error in route match: ${match.id}`)\n }}\n >\n <MatchInner match={match} />\n </CatchBoundary>\n ) : (\n <SafeFragment>\n <MatchInner match={match} />\n </SafeFragment>\n )}\n </ResolvedSuspenseBoundary>\n </matchesContext.Provider>\n )\n}\nfunction MatchInner({ match }: { match: RouteMatch }): any {\n const { options, routesById } = useRouter()\n const route = routesById[match.routeId]!\n\n if (match.status === 'error') {\n throw match.error\n }\n\n if (match.status === 'pending') {\n throw match.loadPromise\n }\n\n if (match.status === 'success') {\n let comp = route.options.component ?? options.defaultComponent\n\n if (comp) {\n return React.createElement(comp, {\n useMatch: route.useMatch,\n useRouteContext: route.useRouteContext as any,\n useSearch: route.useSearch,\n useParams: route.useParams as any,\n useLoaderData: route.useLoaderData,\n })\n }\n\n return <Outlet />\n }\n\n invariant(\n false,\n 'Idle routeMatch status encountered during rendering! You should never see this. File an issue!',\n )\n}\n\nexport function Outlet() {\n const matches = React.useContext(matchesContext).slice(1)\n\n if (!matches[0]) {\n return null\n }\n\n return <Match matches={matches} />\n}\n\nexport interface MatchRouteOptions {\n pending?: boolean\n caseSensitive?: boolean\n includeSearch?: boolean\n fuzzy?: boolean\n}\n\nexport type MakeUseMatchRouteOptions<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n> = ToOptions<AnyRoute, TFrom, TTo, TMaskFrom, TMaskTo> & MatchRouteOptions\n\nexport function useMatchRoute<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n>() {\n const { matchRoute } = useRouter()\n\n return React.useCallback(\n <\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n TResolved extends string = ResolveRelativePath<TFrom, NoInfer<TTo>>,\n >(\n opts: MakeUseMatchRouteOptions<\n TRouteTree,\n TFrom,\n TTo,\n TMaskFrom,\n TMaskTo\n >,\n ): false | RouteById<TRouteTree, TResolved>['types']['allParams'] => {\n const { pending, caseSensitive, ...rest } = opts\n\n return matchRoute(rest as any, {\n pending,\n caseSensitive,\n })\n },\n [],\n )\n}\n\nexport type MakeMatchRouteOptions<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n> = ToOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo> &\n MatchRouteOptions & {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | ((\n params?: RouteByPath<\n TRouteTree,\n ResolveRelativePath<TFrom, NoInfer<TTo>>\n >['types']['allParams'],\n ) => ReactNode)\n | React.ReactNode\n }\n\nexport function MatchRoute<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RoutePaths<TRouteTree> = '/',\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouteTree> = '/',\n TMaskTo extends string = '',\n>(\n props: MakeMatchRouteOptions<TRouteTree, TFrom, TTo, TMaskFrom, TMaskTo>,\n): any {\n const matchRoute = useMatchRoute()\n const params = matchRoute(props as any)\n\n if (typeof props.children === 'function') {\n return (props.children as any)(params)\n }\n\n return !!params ? props.children : null\n}\n\nexport function useMatch<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>,\n TStrict extends boolean = true,\n TRouteMatchState = RouteMatch<TRouteTree, TFrom>,\n TSelected = TRouteMatchState,\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (match: TRouteMatchState) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n const nearestMatch = React.useContext(matchesContext)[0]!\n const nearestMatchRouteId = nearestMatch?.routeId\n\n const matchRouteId = useRouterState({\n select: (state) => {\n const match = opts?.from\n ? state.matches.find((d) => d.routeId === opts?.from)\n : state.matches.find((d) => d.id === nearestMatch.id)\n\n return match!.routeId\n },\n })\n\n if (opts?.strict ?? true) {\n invariant(\n nearestMatchRouteId == matchRouteId,\n `useMatch(\"${\n matchRouteId as string\n }\") is being called in a component that is meant to render the '${nearestMatchRouteId}' route. Did you mean to 'useMatch(\"${\n matchRouteId as string\n }\", { strict: false })' or 'useRoute(\"${\n matchRouteId as string\n }\")' instead?`,\n )\n }\n\n const matchSelection = useRouterState({\n select: (state) => {\n const match = opts?.from\n ? state.matches.find((d) => d.routeId === opts?.from)\n : state.matches.find((d) => d.id === nearestMatch.id)\n\n invariant(\n match,\n `Could not find ${\n opts?.from\n ? `an active match from \"${opts.from}\"`\n : 'a nearest match!'\n }`,\n )\n\n return opts?.select ? opts.select(match as any) : match\n },\n })\n\n return matchSelection as any\n}\n\nexport const matchesContext = React.createContext<RouteMatch[]>(null!)\n\nexport function useMatches<T = RouteMatch[]>(opts?: {\n select?: (matches: RouteMatch[]) => T\n}): T {\n const contextMatches = React.useContext(matchesContext)\n\n return useRouterState({\n select: (state) => {\n const matches = state.matches.slice(\n state.matches.findIndex((d) => d.id === contextMatches[0]?.id),\n )\n return opts?.select ? opts.select(matches) : (matches as T)\n },\n })\n}\n\nexport function useLoaderData<\n TRouteTree extends AnyRoute = RegisteredRouter['routeTree'],\n TFrom extends RouteIds<TRouteTree> = RouteIds<TRouteTree>,\n TStrict extends boolean = true,\n TRouteMatch extends RouteMatch<TRouteTree, TFrom> = RouteMatch<\n TRouteTree,\n TFrom\n >,\n TSelected = TRouteMatch['loaderData'],\n>(\n opts: StrictOrFrom<TFrom> & {\n select?: (match: TRouteMatch) => TSelected\n },\n): TStrict extends true ? TSelected : TSelected | undefined {\n const match = useMatch({ ...opts, select: undefined })!\n\n return typeof opts.select === 'function'\n ? opts.select(match?.loaderData)\n : match?.loaderData\n}\n"],"names":["Matches","routesById","state","useRouter","matches","locationKey","useRouterState","location","key","route","rootRouteId","errorComponent","React","useCallback","props","createElement","ErrorComponent","useMatch","useRouteContext","useSearch","useParams","matchesContext","Provider","value","CatchBoundary","resetKey","onCatch","warning","length","Match","defaultPending","SafeFragment","Fragment","children","options","match","routeId","PendingComponent","pendingComponent","defaultPendingComponent","routeErrorComponent","defaultErrorComponent","ResolvedSuspenseBoundary","wrapInSuspense","Suspense","undefined","fallback","id","MatchInner","status","error","loadPromise","comp","component","defaultComponent","useLoaderData","Outlet","invariant","useContext","slice","useMatchRoute","matchRoute","opts","pending","caseSensitive","rest","MatchRoute","params","nearestMatch","nearestMatchRouteId","matchRouteId","select","from","find","d","strict","matchSelection","createContext","useMatches","contextMatches","findIndex","loaderData"],"mappings":"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"}