@tanstack/vue-router 0.0.1 → 1.140.0

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 (268) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +66 -45
  3. package/dist/esm/Asset.d.ts +2 -0
  4. package/dist/esm/Asset.js +33 -0
  5. package/dist/esm/Asset.js.map +1 -0
  6. package/dist/esm/CatchBoundary.d.ts +19 -0
  7. package/dist/esm/CatchBoundary.js +135 -0
  8. package/dist/esm/CatchBoundary.js.map +1 -0
  9. package/dist/esm/ClientOnly.d.ts +67 -0
  10. package/dist/esm/HeadContent.d.ts +10 -0
  11. package/dist/esm/HeadContent.js +116 -0
  12. package/dist/esm/HeadContent.js.map +1 -0
  13. package/dist/esm/Match.d.ts +25 -0
  14. package/dist/esm/Match.js +262 -0
  15. package/dist/esm/Match.js.map +1 -0
  16. package/dist/esm/Matches.d.ts +39 -0
  17. package/dist/esm/Matches.js +186 -0
  18. package/dist/esm/Matches.js.map +1 -0
  19. package/dist/esm/RouterProvider.d.ts +33 -0
  20. package/dist/esm/RouterProvider.js +65 -0
  21. package/dist/esm/RouterProvider.js.map +1 -0
  22. package/dist/esm/SafeFragment.d.ts +4 -0
  23. package/dist/esm/ScriptOnce.d.ts +5 -0
  24. package/dist/esm/ScriptOnce.js +21 -0
  25. package/dist/esm/ScriptOnce.js.map +1 -0
  26. package/dist/esm/Scripts.d.ts +1 -0
  27. package/dist/esm/Scripts.js +46 -0
  28. package/dist/esm/Scripts.js.map +1 -0
  29. package/dist/esm/ScrollRestoration.d.ts +14 -0
  30. package/dist/esm/ScrollRestoration.js +36 -0
  31. package/dist/esm/ScrollRestoration.js.map +1 -0
  32. package/dist/esm/Transitioner.d.ts +2 -0
  33. package/dist/esm/Transitioner.js +154 -0
  34. package/dist/esm/Transitioner.js.map +1 -0
  35. package/dist/esm/awaited.d.ts +12 -0
  36. package/dist/esm/awaited.js +40 -0
  37. package/dist/esm/awaited.js.map +1 -0
  38. package/dist/esm/fileRoute.d.ts +54 -0
  39. package/dist/esm/fileRoute.js +103 -0
  40. package/dist/esm/fileRoute.js.map +1 -0
  41. package/dist/esm/history.d.ts +8 -0
  42. package/dist/esm/index.d.ts +51 -0
  43. package/dist/esm/index.js +138 -0
  44. package/dist/esm/index.js.map +1 -0
  45. package/dist/esm/lazyRouteComponent.d.ts +8 -0
  46. package/dist/esm/lazyRouteComponent.js +106 -0
  47. package/dist/esm/lazyRouteComponent.js.map +1 -0
  48. package/dist/esm/link.d.ts +61 -0
  49. package/dist/esm/link.js +376 -0
  50. package/dist/esm/link.js.map +1 -0
  51. package/dist/esm/matchContext.d.ts +20 -0
  52. package/dist/esm/matchContext.js +16 -0
  53. package/dist/esm/matchContext.js.map +1 -0
  54. package/dist/esm/not-found.d.ts +12 -0
  55. package/dist/esm/not-found.js +45 -0
  56. package/dist/esm/not-found.js.map +1 -0
  57. package/dist/esm/renderRouteNotFound.d.ts +11 -0
  58. package/dist/esm/renderRouteNotFound.js +19 -0
  59. package/dist/esm/renderRouteNotFound.js.map +1 -0
  60. package/dist/esm/route.d.ts +96 -0
  61. package/dist/esm/route.js +176 -0
  62. package/dist/esm/route.js.map +1 -0
  63. package/dist/esm/router.d.ts +69 -0
  64. package/dist/esm/router.js +14 -0
  65. package/dist/esm/router.js.map +1 -0
  66. package/dist/esm/routerContext.d.ts +21 -0
  67. package/dist/esm/routerContext.js +21 -0
  68. package/dist/esm/routerContext.js.map +1 -0
  69. package/dist/esm/scroll-restoration.d.ts +1 -0
  70. package/dist/esm/scroll-restoration.js +21 -0
  71. package/dist/esm/scroll-restoration.js.map +1 -0
  72. package/dist/esm/typePrimitives.d.ts +10 -0
  73. package/dist/esm/useBlocker.d.ts +66 -0
  74. package/dist/esm/useBlocker.js +295 -0
  75. package/dist/esm/useBlocker.js.map +1 -0
  76. package/dist/esm/useCanGoBack.d.ts +1 -0
  77. package/dist/esm/useCanGoBack.js +8 -0
  78. package/dist/esm/useCanGoBack.js.map +1 -0
  79. package/dist/esm/useLoaderData.d.ts +8 -0
  80. package/dist/esm/useLoaderData.js +14 -0
  81. package/dist/esm/useLoaderData.js.map +1 -0
  82. package/dist/esm/useLoaderDeps.d.ts +7 -0
  83. package/dist/esm/useLoaderDeps.js +17 -0
  84. package/dist/esm/useLoaderDeps.js.map +1 -0
  85. package/dist/esm/useLocation.d.ts +7 -0
  86. package/dist/esm/useLocation.js +10 -0
  87. package/dist/esm/useLocation.js.map +1 -0
  88. package/dist/esm/useMatch.d.ts +10 -0
  89. package/dist/esm/useMatch.js +39 -0
  90. package/dist/esm/useMatch.js.map +1 -0
  91. package/dist/esm/useNavigate.d.ts +5 -0
  92. package/dist/esm/useNavigate.js +29 -0
  93. package/dist/esm/useNavigate.js.map +1 -0
  94. package/dist/esm/useParams.d.ts +9 -0
  95. package/dist/esm/useParams.js +15 -0
  96. package/dist/esm/useParams.js.map +1 -0
  97. package/dist/esm/useRouteContext.d.ts +4 -0
  98. package/dist/esm/useRouteContext.js +11 -0
  99. package/dist/esm/useRouteContext.js.map +1 -0
  100. package/dist/esm/useRouter.d.ts +4 -0
  101. package/dist/esm/useRouter.js +12 -0
  102. package/dist/esm/useRouter.js.map +1 -0
  103. package/dist/esm/useRouterState.d.ts +8 -0
  104. package/dist/esm/useRouterState.js +20 -0
  105. package/dist/esm/useRouterState.js.map +1 -0
  106. package/dist/esm/useSearch.d.ts +9 -0
  107. package/dist/esm/useSearch.js +15 -0
  108. package/dist/esm/useSearch.js.map +1 -0
  109. package/dist/esm/utils.d.ts +40 -0
  110. package/dist/esm/utils.js +44 -0
  111. package/dist/esm/utils.js.map +1 -0
  112. package/dist/source/Asset.d.ts +2 -0
  113. package/dist/source/Asset.jsx +22 -0
  114. package/dist/source/Asset.jsx.map +1 -0
  115. package/dist/source/CatchBoundary.d.ts +19 -0
  116. package/dist/source/CatchBoundary.jsx +134 -0
  117. package/dist/source/CatchBoundary.jsx.map +1 -0
  118. package/dist/source/ClientOnly.d.ts +67 -0
  119. package/dist/source/ClientOnly.jsx +63 -0
  120. package/dist/source/ClientOnly.jsx.map +1 -0
  121. package/dist/source/HeadContent.d.ts +10 -0
  122. package/dist/source/HeadContent.jsx +133 -0
  123. package/dist/source/HeadContent.jsx.map +1 -0
  124. package/dist/source/Match.d.ts +25 -0
  125. package/dist/source/Match.jsx +316 -0
  126. package/dist/source/Match.jsx.map +1 -0
  127. package/dist/source/Matches.d.ts +39 -0
  128. package/dist/source/Matches.jsx +191 -0
  129. package/dist/source/Matches.jsx.map +1 -0
  130. package/dist/source/RouterProvider.d.ts +33 -0
  131. package/dist/source/RouterProvider.jsx +63 -0
  132. package/dist/source/RouterProvider.jsx.map +1 -0
  133. package/dist/source/SafeFragment.d.ts +4 -0
  134. package/dist/source/SafeFragment.jsx +10 -0
  135. package/dist/source/SafeFragment.jsx.map +1 -0
  136. package/dist/source/ScriptOnce.d.ts +5 -0
  137. package/dist/source/ScriptOnce.jsx +17 -0
  138. package/dist/source/ScriptOnce.jsx.map +1 -0
  139. package/dist/source/Scripts.d.ts +1 -0
  140. package/dist/source/Scripts.jsx +49 -0
  141. package/dist/source/Scripts.jsx.map +1 -0
  142. package/dist/source/ScrollRestoration.d.ts +14 -0
  143. package/dist/source/ScrollRestoration.jsx +37 -0
  144. package/dist/source/ScrollRestoration.jsx.map +1 -0
  145. package/dist/source/Transitioner.d.ts +2 -0
  146. package/dist/source/Transitioner.jsx +181 -0
  147. package/dist/source/Transitioner.jsx.map +1 -0
  148. package/dist/source/awaited.d.ts +12 -0
  149. package/dist/source/awaited.jsx +38 -0
  150. package/dist/source/awaited.jsx.map +1 -0
  151. package/dist/source/fileRoute.d.ts +54 -0
  152. package/dist/source/fileRoute.js +98 -0
  153. package/dist/source/fileRoute.js.map +1 -0
  154. package/dist/source/history.d.ts +8 -0
  155. package/dist/source/history.js +2 -0
  156. package/dist/source/history.js.map +1 -0
  157. package/dist/source/index.d.ts +51 -0
  158. package/dist/source/index.jsx +40 -0
  159. package/dist/source/index.jsx.map +1 -0
  160. package/dist/source/lazyRouteComponent.d.ts +8 -0
  161. package/dist/source/lazyRouteComponent.jsx +135 -0
  162. package/dist/source/lazyRouteComponent.jsx.map +1 -0
  163. package/dist/source/link.d.ts +61 -0
  164. package/dist/source/link.jsx +495 -0
  165. package/dist/source/link.jsx.map +1 -0
  166. package/dist/source/matchContext.d.ts +20 -0
  167. package/dist/source/matchContext.jsx +32 -0
  168. package/dist/source/matchContext.jsx.map +1 -0
  169. package/dist/source/not-found.d.ts +12 -0
  170. package/dist/source/not-found.jsx +48 -0
  171. package/dist/source/not-found.jsx.map +1 -0
  172. package/dist/source/renderRouteNotFound.d.ts +11 -0
  173. package/dist/source/renderRouteNotFound.jsx +24 -0
  174. package/dist/source/renderRouteNotFound.jsx.map +1 -0
  175. package/dist/source/route.d.ts +97 -0
  176. package/dist/source/route.js +167 -0
  177. package/dist/source/route.js.map +1 -0
  178. package/dist/source/router.d.ts +70 -0
  179. package/dist/source/router.js +10 -0
  180. package/dist/source/router.js.map +1 -0
  181. package/dist/source/routerContext.d.ts +21 -0
  182. package/dist/source/routerContext.jsx +37 -0
  183. package/dist/source/routerContext.jsx.map +1 -0
  184. package/dist/source/scroll-restoration.d.ts +1 -0
  185. package/dist/source/scroll-restoration.jsx +16 -0
  186. package/dist/source/scroll-restoration.jsx.map +1 -0
  187. package/dist/source/typePrimitives.d.ts +10 -0
  188. package/dist/source/typePrimitives.js +2 -0
  189. package/dist/source/typePrimitives.js.map +1 -0
  190. package/dist/source/useBlocker.d.ts +66 -0
  191. package/dist/source/useBlocker.jsx +308 -0
  192. package/dist/source/useBlocker.jsx.map +1 -0
  193. package/dist/source/useCanGoBack.d.ts +1 -0
  194. package/dist/source/useCanGoBack.js +5 -0
  195. package/dist/source/useCanGoBack.js.map +1 -0
  196. package/dist/source/useLoaderData.d.ts +8 -0
  197. package/dist/source/useLoaderData.jsx +11 -0
  198. package/dist/source/useLoaderData.jsx.map +1 -0
  199. package/dist/source/useLoaderDeps.d.ts +7 -0
  200. package/dist/source/useLoaderDeps.jsx +11 -0
  201. package/dist/source/useLoaderDeps.jsx.map +1 -0
  202. package/dist/source/useLocation.d.ts +7 -0
  203. package/dist/source/useLocation.jsx +7 -0
  204. package/dist/source/useLocation.jsx.map +1 -0
  205. package/dist/source/useMatch.d.ts +10 -0
  206. package/dist/source/useMatch.jsx +46 -0
  207. package/dist/source/useMatch.jsx.map +1 -0
  208. package/dist/source/useNavigate.d.ts +5 -0
  209. package/dist/source/useNavigate.jsx +18 -0
  210. package/dist/source/useNavigate.jsx.map +1 -0
  211. package/dist/source/useParams.d.ts +9 -0
  212. package/dist/source/useParams.jsx +12 -0
  213. package/dist/source/useParams.jsx.map +1 -0
  214. package/dist/source/useRouteContext.d.ts +4 -0
  215. package/dist/source/useRouteContext.js +8 -0
  216. package/dist/source/useRouteContext.js.map +1 -0
  217. package/dist/source/useRouter.d.ts +4 -0
  218. package/dist/source/useRouter.jsx +9 -0
  219. package/dist/source/useRouter.jsx.map +1 -0
  220. package/dist/source/useRouterState.d.ts +8 -0
  221. package/dist/source/useRouterState.jsx +19 -0
  222. package/dist/source/useRouterState.jsx.map +1 -0
  223. package/dist/source/useSearch.d.ts +9 -0
  224. package/dist/source/useSearch.jsx +12 -0
  225. package/dist/source/useSearch.jsx.map +1 -0
  226. package/dist/source/utils.d.ts +40 -0
  227. package/dist/source/utils.js +78 -0
  228. package/dist/source/utils.js.map +1 -0
  229. package/package.json +77 -7
  230. package/src/Asset.tsx +23 -0
  231. package/src/CatchBoundary.tsx +186 -0
  232. package/src/ClientOnly.tsx +75 -0
  233. package/src/HeadContent.tsx +159 -0
  234. package/src/Match.tsx +415 -0
  235. package/src/Matches.tsx +349 -0
  236. package/src/RouterProvider.tsx +117 -0
  237. package/src/SafeFragment.tsx +10 -0
  238. package/src/ScriptOnce.tsx +30 -0
  239. package/src/Scripts.tsx +65 -0
  240. package/src/ScrollRestoration.tsx +69 -0
  241. package/src/Transitioner.tsx +213 -0
  242. package/src/awaited.tsx +54 -0
  243. package/src/fileRoute.ts +271 -0
  244. package/src/history.ts +9 -0
  245. package/src/index.tsx +346 -0
  246. package/src/lazyRouteComponent.tsx +173 -0
  247. package/src/link.tsx +765 -0
  248. package/src/matchContext.tsx +41 -0
  249. package/src/not-found.tsx +55 -0
  250. package/src/renderRouteNotFound.tsx +35 -0
  251. package/src/route.ts +658 -0
  252. package/src/router.ts +103 -0
  253. package/src/routerContext.tsx +53 -0
  254. package/src/scroll-restoration.tsx +29 -0
  255. package/src/typePrimitives.ts +74 -0
  256. package/src/useBlocker.tsx +501 -0
  257. package/src/useCanGoBack.ts +5 -0
  258. package/src/useLoaderData.tsx +50 -0
  259. package/src/useLoaderDeps.tsx +46 -0
  260. package/src/useLocation.tsx +30 -0
  261. package/src/useMatch.tsx +127 -0
  262. package/src/useNavigate.tsx +40 -0
  263. package/src/useParams.tsx +71 -0
  264. package/src/useRouteContext.ts +31 -0
  265. package/src/useRouter.tsx +15 -0
  266. package/src/useRouterState.tsx +43 -0
  267. package/src/useSearch.tsx +71 -0
  268. package/src/utils.ts +111 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadContent.jsx","sourceRoot":"","sources":["../../src/HeadContent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import * as Vue from 'vue';
2
+ import type { VNode } from 'vue';
3
+ export declare const Match: Vue.DefineComponent<Vue.ExtractPropTypes<{
4
+ matchId: {
5
+ type: StringConstructor;
6
+ required: true;
7
+ };
8
+ }>, () => VNode, {}, {}, {}, Vue.ComponentOptionsMixin, Vue.ComponentOptionsMixin, {}, string, Vue.PublicProps, Readonly<Vue.ExtractPropTypes<{
9
+ matchId: {
10
+ type: StringConstructor;
11
+ required: true;
12
+ };
13
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, Vue.ComponentProvideOptions, true, {}, any>;
14
+ export declare const MatchInner: Vue.DefineComponent<Vue.ExtractPropTypes<{
15
+ matchId: {
16
+ type: StringConstructor;
17
+ required: true;
18
+ };
19
+ }>, () => VNode | null, {}, {}, {}, Vue.ComponentOptionsMixin, Vue.ComponentOptionsMixin, {}, string, Vue.PublicProps, Readonly<Vue.ExtractPropTypes<{
20
+ matchId: {
21
+ type: StringConstructor;
22
+ required: true;
23
+ };
24
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, Vue.ComponentProvideOptions, true, {}, any>;
25
+ export declare const Outlet: Vue.DefineComponent<{}, () => VNode | null, {}, {}, {}, Vue.ComponentOptionsMixin, Vue.ComponentOptionsMixin, {}, string, Vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, Vue.ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,316 @@
1
+ import * as Vue from 'vue';
2
+ import invariant from 'tiny-invariant';
3
+ import warning from 'tiny-warning';
4
+ import { createControlledPromise, getLocationChangeInfo, isNotFound, isRedirect, rootRouteId, } from '@tanstack/router-core';
5
+ import { CatchBoundary, ErrorComponent } from './CatchBoundary';
6
+ import { useRouterState } from './useRouterState';
7
+ import { useRouter } from './useRouter';
8
+ import { CatchNotFound } from './not-found';
9
+ import { matchContext } from './matchContext';
10
+ import { renderRouteNotFound } from './renderRouteNotFound';
11
+ import { ScrollRestoration } from './scroll-restoration';
12
+ export const Match = Vue.defineComponent({
13
+ name: 'Match',
14
+ props: {
15
+ matchId: {
16
+ type: String,
17
+ required: true,
18
+ },
19
+ },
20
+ setup(props) {
21
+ const router = useRouter();
22
+ const routeId = useRouterState({
23
+ select: (s) => {
24
+ return s.matches.find((d) => d.id === props.matchId)?.routeId;
25
+ },
26
+ });
27
+ invariant(routeId.value, `Could not find routeId for matchId "${props.matchId}". Please file an issue!`);
28
+ const route = Vue.computed(() => router.routesById[routeId.value]);
29
+ const PendingComponent = Vue.computed(() => route.value?.options?.pendingComponent ??
30
+ router?.options?.defaultPendingComponent);
31
+ const routeErrorComponent = Vue.computed(() => route.value?.options?.errorComponent ??
32
+ router?.options?.defaultErrorComponent);
33
+ const routeOnCatch = Vue.computed(() => route.value?.options?.onCatch ?? router?.options?.defaultOnCatch);
34
+ const routeNotFoundComponent = Vue.computed(() => route.value?.isRoot
35
+ ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component
36
+ (route.value?.options?.notFoundComponent ??
37
+ router?.options?.notFoundRoute?.options?.component)
38
+ : route.value?.options?.notFoundComponent);
39
+ const resetKey = useRouterState({
40
+ select: (s) => s.loadedAt,
41
+ });
42
+ const parentRouteId = useRouterState({
43
+ select: (s) => {
44
+ const index = s.matches.findIndex((d) => d.id === props.matchId);
45
+ return s.matches[index - 1]?.routeId;
46
+ },
47
+ });
48
+ // Create a ref for the current matchId that we can provide to child components
49
+ const matchIdRef = Vue.ref(props.matchId);
50
+ // When props.matchId changes, update the ref
51
+ Vue.watch(() => props.matchId, (newMatchId) => {
52
+ matchIdRef.value = newMatchId;
53
+ }, { immediate: true });
54
+ // Provide the matchId to child components
55
+ Vue.provide(matchContext, matchIdRef);
56
+ return () => {
57
+ // Determine which components to render
58
+ let content = Vue.h(MatchInner, { matchId: props.matchId });
59
+ // Wrap in NotFound boundary if needed
60
+ if (routeNotFoundComponent.value) {
61
+ content = Vue.h(CatchNotFound, {
62
+ fallback: (error) => {
63
+ // If the current not found handler doesn't exist or it has a
64
+ // route ID which doesn't match the current route, rethrow the error
65
+ if (!routeNotFoundComponent.value ||
66
+ (error.routeId && error.routeId !== routeId.value) ||
67
+ (!error.routeId && route.value && !route.value.isRoot))
68
+ throw error;
69
+ return Vue.h(routeNotFoundComponent.value, error);
70
+ },
71
+ children: content,
72
+ });
73
+ }
74
+ // Wrap in error boundary if needed
75
+ if (routeErrorComponent.value) {
76
+ content = CatchBoundary({
77
+ getResetKey: () => resetKey.value,
78
+ errorComponent: routeErrorComponent.value || ErrorComponent,
79
+ onCatch: (error) => {
80
+ // Forward not found errors (we don't want to show the error component for these)
81
+ if (isNotFound(error))
82
+ throw error;
83
+ warning(false, `Error in route match: ${props.matchId}`);
84
+ routeOnCatch.value?.(error);
85
+ },
86
+ children: content,
87
+ });
88
+ }
89
+ // Wrap in suspense if needed
90
+ // Root routes should also wrap in Suspense if they have a pendingComponent
91
+ const needsSuspense = route.value &&
92
+ (route.value?.options?.wrapInSuspense ??
93
+ PendingComponent.value ??
94
+ false);
95
+ if (needsSuspense) {
96
+ content = Vue.h(Vue.Suspense, {
97
+ fallback: PendingComponent.value
98
+ ? Vue.h(PendingComponent.value)
99
+ : null,
100
+ }, {
101
+ default: () => content,
102
+ });
103
+ }
104
+ // Add scroll restoration if needed
105
+ const withScrollRestoration = [
106
+ content,
107
+ parentRouteId.value === rootRouteId && router.options.scrollRestoration
108
+ ? Vue.h(Vue.Fragment, null, [
109
+ Vue.h(OnRendered),
110
+ Vue.h(ScrollRestoration),
111
+ ])
112
+ : null,
113
+ ].filter(Boolean);
114
+ return Vue.h(Vue.Fragment, null, withScrollRestoration);
115
+ };
116
+ },
117
+ });
118
+ // On Rendered can't happen above the root layout because it actually
119
+ // renders a dummy dom element to track the rendered state of the app.
120
+ // We render a script tag with a key that changes based on the current
121
+ // location state.key. Also, because it's below the root layout, it
122
+ // allows us to fire onRendered events even after a hydration mismatch
123
+ // error that occurred above the root layout (like bad head/link tags,
124
+ // which is common).
125
+ const OnRendered = Vue.defineComponent({
126
+ name: 'OnRendered',
127
+ setup() {
128
+ const router = useRouter();
129
+ const location = useRouterState({
130
+ select: (s) => {
131
+ return s.resolvedLocation?.state.key;
132
+ },
133
+ });
134
+ Vue.watchEffect(() => {
135
+ if (location.value) {
136
+ router.emit({
137
+ type: 'onRendered',
138
+ ...getLocationChangeInfo(router.state),
139
+ });
140
+ }
141
+ });
142
+ return () => null;
143
+ },
144
+ });
145
+ export const MatchInner = Vue.defineComponent({
146
+ name: 'MatchInner',
147
+ props: {
148
+ matchId: {
149
+ type: String,
150
+ required: true,
151
+ },
152
+ },
153
+ setup(props) {
154
+ const router = useRouter();
155
+ // { match, key, routeId } =
156
+ const matchState = useRouterState({
157
+ select: (s) => {
158
+ const match = s.matches.find((d) => d.id === props.matchId);
159
+ // During navigation transitions, matches can be temporarily removed
160
+ if (!match) {
161
+ return null;
162
+ }
163
+ const routeId = match.routeId;
164
+ const remountFn = router.routesById[routeId].options.remountDeps ??
165
+ router.options.defaultRemountDeps;
166
+ const remountDeps = remountFn?.({
167
+ routeId,
168
+ loaderDeps: match.loaderDeps,
169
+ params: match._strictParams,
170
+ search: match._strictSearch,
171
+ });
172
+ const key = remountDeps ? JSON.stringify(remountDeps) : undefined;
173
+ return {
174
+ key,
175
+ routeId,
176
+ match: {
177
+ id: match.id,
178
+ status: match.status,
179
+ error: match.error,
180
+ },
181
+ };
182
+ },
183
+ });
184
+ const route = Vue.computed(() => {
185
+ if (!matchState.value)
186
+ return null;
187
+ return router.routesById[matchState.value.routeId];
188
+ });
189
+ const match = Vue.computed(() => matchState.value?.match);
190
+ const out = Vue.computed(() => {
191
+ if (!route.value)
192
+ return null;
193
+ const Comp = route.value.options.component ?? router.options.defaultComponent;
194
+ if (Comp) {
195
+ return Vue.h(Comp);
196
+ }
197
+ return Vue.h(Outlet);
198
+ });
199
+ return () => {
200
+ // If match doesn't exist, return null (component is being unmounted or not ready)
201
+ if (!matchState.value || !match.value || !route.value) {
202
+ return null;
203
+ }
204
+ // Handle different match statuses
205
+ if (match.value.status === 'notFound') {
206
+ invariant(isNotFound(match.value.error), 'Expected a notFound error');
207
+ return renderRouteNotFound(router, route.value, match.value.error);
208
+ }
209
+ if (match.value.status === 'redirected') {
210
+ invariant(isRedirect(match.value.error), 'Expected a redirect error');
211
+ throw router.getMatch(match.value.id)?._nonReactive.loadPromise;
212
+ }
213
+ if (match.value.status === 'error') {
214
+ // Check if this route or any parent has an error component
215
+ const RouteErrorComponent = route.value.options.errorComponent ??
216
+ router.options.defaultErrorComponent;
217
+ // If this route has an error component, render it directly
218
+ // This is more reliable than relying on Vue's error boundary
219
+ if (RouteErrorComponent) {
220
+ return Vue.h(RouteErrorComponent, {
221
+ error: match.value.error,
222
+ reset: () => {
223
+ router.invalidate();
224
+ },
225
+ info: {
226
+ componentStack: '',
227
+ },
228
+ });
229
+ }
230
+ // If there's no error component for this route, throw the error
231
+ // so it can bubble up to the nearest parent with an error component
232
+ throw match.value.error;
233
+ }
234
+ if (match.value.status === 'pending') {
235
+ const pendingMinMs = route.value.options.pendingMinMs ?? router.options.defaultPendingMinMs;
236
+ const routerMatch = router.getMatch(match.value.id);
237
+ if (pendingMinMs &&
238
+ routerMatch &&
239
+ !routerMatch._nonReactive.minPendingPromise) {
240
+ // Create a promise that will resolve after the minPendingMs
241
+ if (!router.isServer) {
242
+ const minPendingPromise = createControlledPromise();
243
+ routerMatch._nonReactive.minPendingPromise = minPendingPromise;
244
+ setTimeout(() => {
245
+ minPendingPromise.resolve();
246
+ // We've handled the minPendingPromise, so we can delete it
247
+ routerMatch._nonReactive.minPendingPromise = undefined;
248
+ }, pendingMinMs);
249
+ }
250
+ }
251
+ // In Vue, we render the pending component directly instead of throwing a promise
252
+ // because Vue's Suspense doesn't catch thrown promises like React does
253
+ const PendingComponent = route.value.options.pendingComponent ??
254
+ router.options.defaultPendingComponent;
255
+ if (PendingComponent) {
256
+ return Vue.h(PendingComponent);
257
+ }
258
+ // If no pending component, return null while loading
259
+ return null;
260
+ }
261
+ // Success status - render the component
262
+ return out.value;
263
+ };
264
+ },
265
+ });
266
+ export const Outlet = Vue.defineComponent({
267
+ name: 'Outlet',
268
+ setup() {
269
+ const router = useRouter();
270
+ const matchId = Vue.inject(matchContext);
271
+ const safeMatchId = Vue.computed(() => matchId?.value || '');
272
+ const routeId = useRouterState({
273
+ select: (s) => s.matches.find((d) => d.id === safeMatchId.value)?.routeId,
274
+ });
275
+ const route = Vue.computed(() => router.routesById[routeId.value]);
276
+ const parentGlobalNotFound = useRouterState({
277
+ select: (s) => {
278
+ const matches = s.matches;
279
+ const parentMatch = matches.find((d) => d.id === safeMatchId.value);
280
+ // During navigation transitions, parent match can be temporarily removed
281
+ // Return false to avoid errors - the component will handle this gracefully
282
+ if (!parentMatch) {
283
+ return false;
284
+ }
285
+ return parentMatch.globalNotFound;
286
+ },
287
+ });
288
+ const childMatchId = useRouterState({
289
+ select: (s) => {
290
+ const matches = s.matches;
291
+ const index = matches.findIndex((d) => d.id === safeMatchId.value);
292
+ return matches[index + 1]?.id;
293
+ },
294
+ });
295
+ return () => {
296
+ if (parentGlobalNotFound.value) {
297
+ return renderRouteNotFound(router, route.value, undefined);
298
+ }
299
+ if (!childMatchId.value) {
300
+ return null;
301
+ }
302
+ const nextMatch = Vue.h(Match, { matchId: childMatchId.value });
303
+ if (safeMatchId.value === rootRouteId) {
304
+ return Vue.h(Vue.Suspense, {
305
+ fallback: router.options.defaultPendingComponent
306
+ ? Vue.h(router.options.defaultPendingComponent)
307
+ : null,
308
+ }, {
309
+ default: () => nextMatch,
310
+ });
311
+ }
312
+ return nextMatch;
313
+ };
314
+ },
315
+ });
316
+ //# sourceMappingURL=Match.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Match.jsx","sourceRoot":"","sources":["../../src/Match.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import * as Vue from 'vue';
2
+ import type { AnyRouter, DeepPartial, MakeOptionalPathParams, MakeOptionalSearchParams, MakeRouteMatchUnion, MaskOptions, MatchRouteOptions, NoInfer, RegisteredRouter, ResolveRelativePath, ResolveRoute, RouteByPath, ToSubOptionsProps } from '@tanstack/router-core';
3
+ declare module '@tanstack/router-core' {
4
+ interface RouteMatchExtensions {
5
+ meta?: Array<Vue.ComponentOptions['meta'] | undefined>;
6
+ links?: Array<Vue.ComponentOptions['link'] | undefined>;
7
+ scripts?: Array<Vue.ComponentOptions['script'] | undefined>;
8
+ headScripts?: Array<Vue.ComponentOptions['script'] | undefined>;
9
+ }
10
+ }
11
+ export declare const Matches: Vue.DefineComponent<{}, () => Vue.VNode<Vue.RendererNode, Vue.RendererElement, {
12
+ [key: string]: any;
13
+ }>, {}, {}, {}, Vue.ComponentOptionsMixin, Vue.ComponentOptionsMixin, {}, string, Vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, Vue.ComponentProvideOptions, true, {}, any>;
14
+ export type UseMatchRouteOptions<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = undefined, TMaskFrom extends string = TFrom, TMaskTo extends string = ''> = ToSubOptionsProps<TRouter, TFrom, TTo> & DeepPartial<MakeOptionalSearchParams<TRouter, TFrom, TTo>> & DeepPartial<MakeOptionalPathParams<TRouter, TFrom, TTo>> & MaskOptions<TRouter, TMaskFrom, TMaskTo> & MatchRouteOptions;
15
+ export declare function useMatchRoute<TRouter extends AnyRouter = RegisteredRouter>(): <const TFrom extends string = string, const TTo extends string | undefined = undefined, const TMaskFrom extends string = TFrom, const TMaskTo extends string = "">(opts: UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => Vue.Ref<false | ResolveRoute<TRouter, TFrom, TTo>["types"]["allParams"]>;
16
+ export type MakeMatchRouteOptions<TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = undefined, TMaskFrom extends string = TFrom, TMaskTo extends string = ''> = UseMatchRouteOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & {
17
+ children?: ((params?: RouteByPath<TRouter['routeTree'], ResolveRelativePath<TFrom, NoInfer<TTo>>>['types']['allParams']) => Vue.VNode) | Vue.VNode;
18
+ };
19
+ export interface MatchRouteComponentType {
20
+ <TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = undefined>(props: MakeMatchRouteOptions<TRouter, TFrom, TTo>): Vue.VNode;
21
+ new (): {
22
+ $props: {
23
+ from?: string;
24
+ to?: string;
25
+ fuzzy?: boolean;
26
+ caseSensitive?: boolean;
27
+ includeSearch?: boolean;
28
+ pending?: boolean;
29
+ };
30
+ };
31
+ }
32
+ export declare const MatchRoute: MatchRouteComponentType;
33
+ export interface UseMatchesBaseOptions<TRouter extends AnyRouter, TSelected> {
34
+ select?: (matches: Array<MakeRouteMatchUnion<TRouter>>) => TSelected;
35
+ }
36
+ export type UseMatchesResult<TRouter extends AnyRouter, TSelected> = unknown extends TSelected ? Array<MakeRouteMatchUnion<TRouter>> : TSelected;
37
+ export declare function useMatches<TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseMatchesBaseOptions<TRouter, TSelected>): Vue.Ref<UseMatchesResult<TRouter, TSelected>>;
38
+ export declare function useParentMatches<TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseMatchesBaseOptions<TRouter, TSelected>): Vue.Ref<UseMatchesResult<TRouter, TSelected>>;
39
+ export declare function useChildMatches<TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseMatchesBaseOptions<TRouter, TSelected>): Vue.Ref<UseMatchesResult<TRouter, TSelected>>;
@@ -0,0 +1,191 @@
1
+ import * as Vue from 'vue';
2
+ import warning from 'tiny-warning';
3
+ import { CatchBoundary } from './CatchBoundary';
4
+ import { useRouterState } from './useRouterState';
5
+ import { useRouter } from './useRouter';
6
+ import { Transitioner } from './Transitioner';
7
+ import { matchContext } from './matchContext';
8
+ import { Match } from './Match';
9
+ // Create a component that renders both the Transitioner and MatchesInner
10
+ const MatchesContent = Vue.defineComponent({
11
+ name: 'MatchesContent',
12
+ setup() {
13
+ return () => Vue.h(Vue.Fragment, null, [Vue.h(Transitioner), Vue.h(MatchesInner)]);
14
+ },
15
+ });
16
+ export const Matches = Vue.defineComponent({
17
+ name: 'Matches',
18
+ setup() {
19
+ const router = useRouter();
20
+ return () => {
21
+ const pendingElement = router?.options?.defaultPendingComponent
22
+ ? Vue.h(router.options.defaultPendingComponent)
23
+ : null;
24
+ // Do not render a root Suspense during SSR or hydrating from SSR
25
+ const inner = router?.isServer || (typeof document !== 'undefined' && router?.ssr)
26
+ ? Vue.h(MatchesContent)
27
+ : Vue.h(Vue.Suspense, { fallback: pendingElement }, {
28
+ default: () => Vue.h(MatchesContent),
29
+ });
30
+ return router?.options?.InnerWrap
31
+ ? Vue.h(router.options.InnerWrap, null, { default: () => inner })
32
+ : inner;
33
+ };
34
+ },
35
+ });
36
+ // Create a simple error component function that matches ErrorRouteComponent
37
+ const errorComponentFn = (props) => {
38
+ return Vue.h('div', { class: 'error' }, [
39
+ Vue.h('h1', null, 'Error'),
40
+ Vue.h('p', null, props.error.message || String(props.error)),
41
+ Vue.h('button', { onClick: props.reset }, 'Try Again'),
42
+ ]);
43
+ };
44
+ const MatchesInner = Vue.defineComponent({
45
+ name: 'MatchesInner',
46
+ setup() {
47
+ const router = useRouter();
48
+ const matchId = useRouterState({
49
+ select: (s) => {
50
+ return s.matches[0]?.id;
51
+ },
52
+ });
53
+ const resetKey = useRouterState({
54
+ select: (s) => s.loadedAt,
55
+ });
56
+ // Create a ref for the match id to provide
57
+ const matchIdRef = Vue.computed(() => matchId.value);
58
+ // Provide the matchId for child components using the InjectionKey
59
+ Vue.provide(matchContext, matchIdRef);
60
+ return () => {
61
+ // Generate a placeholder element if matchId.value is not present
62
+ const childElement = matchId.value
63
+ ? Vue.h(Match, { matchId: matchId.value })
64
+ : Vue.h('div');
65
+ // If disableGlobalCatchBoundary is true, don't wrap in CatchBoundary
66
+ if (router.options.disableGlobalCatchBoundary) {
67
+ return childElement;
68
+ }
69
+ return Vue.h(CatchBoundary, {
70
+ getResetKey: () => resetKey.value,
71
+ errorComponent: errorComponentFn,
72
+ onCatch: (error) => {
73
+ warning(false, `The following error wasn't caught by any route! At the very least, consider setting an 'errorComponent' in your RootRoute!`);
74
+ warning(false, error.message || error.toString());
75
+ },
76
+ children: childElement,
77
+ });
78
+ };
79
+ },
80
+ });
81
+ export function useMatchRoute() {
82
+ const router = useRouter();
83
+ // Track state changes to trigger re-computation
84
+ // Use multiple state values like React does for complete reactivity
85
+ const routerState = useRouterState({
86
+ select: (s) => ({
87
+ locationHref: s.location.href,
88
+ resolvedLocationHref: s.resolvedLocation?.href,
89
+ status: s.status,
90
+ }),
91
+ });
92
+ return (opts) => {
93
+ const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;
94
+ const matchRoute = Vue.computed(() => {
95
+ // Access routerState to establish dependency
96
+ routerState.value;
97
+ return router.matchRoute(rest, {
98
+ pending,
99
+ caseSensitive,
100
+ fuzzy,
101
+ includeSearch,
102
+ });
103
+ });
104
+ return matchRoute;
105
+ };
106
+ }
107
+ export const MatchRoute = Vue.defineComponent({
108
+ name: 'MatchRoute',
109
+ props: {
110
+ // Define props to match MakeMatchRouteOptions
111
+ from: {
112
+ type: String,
113
+ required: false,
114
+ },
115
+ to: {
116
+ type: String,
117
+ required: false,
118
+ },
119
+ fuzzy: {
120
+ type: Boolean,
121
+ required: false,
122
+ },
123
+ caseSensitive: {
124
+ type: Boolean,
125
+ required: false,
126
+ },
127
+ includeSearch: {
128
+ type: Boolean,
129
+ required: false,
130
+ },
131
+ pending: {
132
+ type: Boolean,
133
+ required: false,
134
+ },
135
+ },
136
+ setup(props, { slots }) {
137
+ const status = useRouterState({
138
+ select: (s) => s.status,
139
+ });
140
+ return () => {
141
+ if (!status.value)
142
+ return null;
143
+ const matchRoute = useMatchRoute();
144
+ const params = matchRoute(props).value;
145
+ // Create a component that renders the slot in a reactive manner
146
+ if (!params || !slots.default) {
147
+ return null;
148
+ }
149
+ // For function slots, pass the params
150
+ if (typeof slots.default === 'function') {
151
+ // Use h to create a wrapper component that will call the slot function
152
+ return Vue.h(Vue.Fragment, null, slots.default(params));
153
+ }
154
+ // For normal slots, just render them
155
+ return Vue.h(Vue.Fragment, null, slots.default);
156
+ };
157
+ },
158
+ });
159
+ export function useMatches(opts) {
160
+ return useRouterState({
161
+ select: (state) => {
162
+ const matches = state?.matches || [];
163
+ return opts?.select
164
+ ? opts.select(matches)
165
+ : matches;
166
+ },
167
+ });
168
+ }
169
+ export function useParentMatches(opts) {
170
+ // Use matchContext with proper type
171
+ const contextMatchId = Vue.inject(matchContext);
172
+ const safeMatchId = Vue.computed(() => contextMatchId?.value || '');
173
+ return useMatches({
174
+ select: (matches) => {
175
+ matches = matches.slice(0, matches.findIndex((d) => d.id === safeMatchId.value));
176
+ return opts?.select ? opts.select(matches) : matches;
177
+ },
178
+ });
179
+ }
180
+ export function useChildMatches(opts) {
181
+ // Use matchContext with proper type
182
+ const contextMatchId = Vue.inject(matchContext);
183
+ const safeMatchId = Vue.computed(() => contextMatchId?.value || '');
184
+ return useMatches({
185
+ select: (matches) => {
186
+ matches = matches.slice(matches.findIndex((d) => d.id === safeMatchId.value) + 1);
187
+ return opts?.select ? opts.select(matches) : matches;
188
+ },
189
+ });
190
+ }
191
+ //# sourceMappingURL=Matches.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Matches.jsx","sourceRoot":"","sources":["../../src/Matches.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import * as Vue from 'vue';
2
+ import type { AnyRouter, RegisteredRouter, RouterOptions } from '@tanstack/router-core';
3
+ export declare const RouterContextProvider: Vue.DefineComponent<Vue.ExtractPropTypes<{
4
+ router: {
5
+ type: ObjectConstructor;
6
+ required: true;
7
+ };
8
+ }>, () => Vue.VNode<Vue.RendererNode, Vue.RendererElement, {
9
+ [key: string]: any;
10
+ }> | Vue.VNode<Vue.RendererNode, Vue.RendererElement, {
11
+ [key: string]: any;
12
+ }>[] | undefined, {}, {}, {}, Vue.ComponentOptionsMixin, Vue.ComponentOptionsMixin, {}, string, Vue.PublicProps, Readonly<Vue.ExtractPropTypes<{
13
+ router: {
14
+ type: ObjectConstructor;
15
+ required: true;
16
+ };
17
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, Vue.ComponentProvideOptions, true, {}, any>;
18
+ export declare const RouterProvider: {
19
+ <TRouter extends AnyRouter = RegisteredRouter>(props: {
20
+ router: TRouter;
21
+ routeTree?: TRouter["routeTree"];
22
+ } & Record<string, any>): Vue.VNode;
23
+ new (): {
24
+ $props: {
25
+ router: AnyRouter;
26
+ routeTree?: AnyRouter["routeTree"];
27
+ };
28
+ };
29
+ };
30
+ export type RouterProps<TRouter extends AnyRouter = RegisteredRouter, TDehydrated extends Record<string, any> = Record<string, any>> = Omit<RouterOptions<TRouter['routeTree'], NonNullable<TRouter['options']['trailingSlash']>, false, TRouter['history'], TDehydrated>, 'context'> & {
31
+ router: TRouter;
32
+ context?: Partial<RouterOptions<TRouter['routeTree'], NonNullable<TRouter['options']['trailingSlash']>, false, TRouter['history'], TDehydrated>['context']>;
33
+ };