@tanstack/solid-router 1.167.5 → 1.168.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 (177) hide show
  1. package/dist/cjs/Match.cjs +244 -223
  2. package/dist/cjs/Match.cjs.map +1 -1
  3. package/dist/cjs/Match.d.cts +1 -3
  4. package/dist/cjs/Matches.cjs +32 -31
  5. package/dist/cjs/Matches.cjs.map +1 -1
  6. package/dist/cjs/Scripts.cjs +10 -8
  7. package/dist/cjs/Scripts.cjs.map +1 -1
  8. package/dist/cjs/Scripts.d.cts +2 -1
  9. package/dist/cjs/Transitioner.cjs +26 -26
  10. package/dist/cjs/Transitioner.cjs.map +1 -1
  11. package/dist/cjs/headContentUtils.cjs +15 -15
  12. package/dist/cjs/headContentUtils.cjs.map +1 -1
  13. package/dist/cjs/index.cjs +1 -1
  14. package/dist/cjs/index.dev.cjs +1 -1
  15. package/dist/cjs/link.cjs +119 -84
  16. package/dist/cjs/link.cjs.map +1 -1
  17. package/dist/cjs/matchContext.cjs +7 -5
  18. package/dist/cjs/matchContext.cjs.map +1 -1
  19. package/dist/cjs/matchContext.d.cts +8 -2
  20. package/dist/cjs/not-found.cjs +8 -4
  21. package/dist/cjs/not-found.cjs.map +1 -1
  22. package/dist/cjs/not-found.d.cts +1 -1
  23. package/dist/cjs/router.cjs +2 -1
  24. package/dist/cjs/router.cjs.map +1 -1
  25. package/dist/cjs/routerStores.cjs +67 -0
  26. package/dist/cjs/routerStores.cjs.map +1 -0
  27. package/dist/cjs/routerStores.d.cts +10 -0
  28. package/dist/cjs/ssr/RouterClient.cjs +1 -1
  29. package/dist/cjs/ssr/RouterClient.cjs.map +1 -1
  30. package/dist/cjs/ssr/renderRouterToStream.cjs +1 -1
  31. package/dist/cjs/ssr/renderRouterToStream.cjs.map +1 -1
  32. package/dist/cjs/ssr/renderRouterToString.cjs +2 -2
  33. package/dist/cjs/ssr/renderRouterToString.cjs.map +1 -1
  34. package/dist/cjs/ssr/renderRouterToString.d.cts +1 -1
  35. package/dist/cjs/useCanGoBack.cjs +6 -2
  36. package/dist/cjs/useCanGoBack.cjs.map +1 -1
  37. package/dist/cjs/useCanGoBack.d.cts +2 -1
  38. package/dist/cjs/useLoaderDeps.cjs +2 -3
  39. package/dist/cjs/useLoaderDeps.cjs.map +1 -1
  40. package/dist/cjs/useLocation.cjs +13 -2
  41. package/dist/cjs/useLocation.cjs.map +1 -1
  42. package/dist/cjs/useMatch.cjs +17 -15
  43. package/dist/cjs/useMatch.cjs.map +1 -1
  44. package/dist/cjs/useParams.cjs +1 -1
  45. package/dist/cjs/useParams.cjs.map +1 -1
  46. package/dist/cjs/useRouterState.cjs +12 -19
  47. package/dist/cjs/useRouterState.cjs.map +1 -1
  48. package/dist/cjs/useSearch.cjs +2 -1
  49. package/dist/cjs/useSearch.cjs.map +1 -1
  50. package/dist/cjs/utils.cjs +0 -14
  51. package/dist/cjs/utils.cjs.map +1 -1
  52. package/dist/cjs/utils.d.cts +0 -4
  53. package/dist/esm/Match.d.ts +1 -3
  54. package/dist/esm/Match.js +245 -224
  55. package/dist/esm/Match.js.map +1 -1
  56. package/dist/esm/Matches.js +34 -33
  57. package/dist/esm/Matches.js.map +1 -1
  58. package/dist/esm/Scripts.d.ts +2 -1
  59. package/dist/esm/Scripts.js +8 -7
  60. package/dist/esm/Scripts.js.map +1 -1
  61. package/dist/esm/Transitioner.js +26 -26
  62. package/dist/esm/Transitioner.js.map +1 -1
  63. package/dist/esm/headContentUtils.js +15 -15
  64. package/dist/esm/headContentUtils.js.map +1 -1
  65. package/dist/esm/index.dev.js +1 -1
  66. package/dist/esm/index.js +1 -1
  67. package/dist/esm/link.js +120 -85
  68. package/dist/esm/link.js.map +1 -1
  69. package/dist/esm/matchContext.d.ts +8 -2
  70. package/dist/esm/matchContext.js +7 -4
  71. package/dist/esm/matchContext.js.map +1 -1
  72. package/dist/esm/not-found.d.ts +1 -1
  73. package/dist/esm/not-found.js +6 -3
  74. package/dist/esm/not-found.js.map +1 -1
  75. package/dist/esm/router.js +2 -1
  76. package/dist/esm/router.js.map +1 -1
  77. package/dist/esm/routerStores.d.ts +10 -0
  78. package/dist/esm/routerStores.js +65 -0
  79. package/dist/esm/routerStores.js.map +1 -0
  80. package/dist/esm/ssr/RouterClient.js +1 -1
  81. package/dist/esm/ssr/RouterClient.js.map +1 -1
  82. package/dist/esm/ssr/renderRouterToStream.js +1 -1
  83. package/dist/esm/ssr/renderRouterToStream.js.map +1 -1
  84. package/dist/esm/ssr/renderRouterToString.d.ts +1 -1
  85. package/dist/esm/ssr/renderRouterToString.js +2 -2
  86. package/dist/esm/ssr/renderRouterToString.js.map +1 -1
  87. package/dist/esm/useCanGoBack.d.ts +2 -1
  88. package/dist/esm/useCanGoBack.js +4 -2
  89. package/dist/esm/useCanGoBack.js.map +1 -1
  90. package/dist/esm/useLoaderDeps.js +2 -3
  91. package/dist/esm/useLoaderDeps.js.map +1 -1
  92. package/dist/esm/useLocation.js +11 -2
  93. package/dist/esm/useLocation.js.map +1 -1
  94. package/dist/esm/useMatch.js +18 -16
  95. package/dist/esm/useMatch.js.map +1 -1
  96. package/dist/esm/useParams.js +1 -1
  97. package/dist/esm/useParams.js.map +1 -1
  98. package/dist/esm/useRouterState.js +10 -18
  99. package/dist/esm/useRouterState.js.map +1 -1
  100. package/dist/esm/useSearch.js +2 -1
  101. package/dist/esm/useSearch.js.map +1 -1
  102. package/dist/esm/utils.d.ts +0 -4
  103. package/dist/esm/utils.js +1 -14
  104. package/dist/esm/utils.js.map +1 -1
  105. package/dist/source/Match.d.ts +1 -3
  106. package/dist/source/Match.jsx +246 -237
  107. package/dist/source/Match.jsx.map +1 -1
  108. package/dist/source/Matches.jsx +42 -44
  109. package/dist/source/Matches.jsx.map +1 -1
  110. package/dist/source/Scripts.d.ts +2 -1
  111. package/dist/source/Scripts.jsx +31 -36
  112. package/dist/source/Scripts.jsx.map +1 -1
  113. package/dist/source/Transitioner.jsx +26 -31
  114. package/dist/source/Transitioner.jsx.map +1 -1
  115. package/dist/source/headContentUtils.jsx +64 -72
  116. package/dist/source/headContentUtils.jsx.map +1 -1
  117. package/dist/source/link.jsx +136 -107
  118. package/dist/source/link.jsx.map +1 -1
  119. package/dist/source/matchContext.d.ts +8 -2
  120. package/dist/source/matchContext.jsx +7 -3
  121. package/dist/source/matchContext.jsx.map +1 -1
  122. package/dist/source/not-found.d.ts +1 -1
  123. package/dist/source/not-found.jsx +6 -5
  124. package/dist/source/not-found.jsx.map +1 -1
  125. package/dist/source/router.js +2 -1
  126. package/dist/source/router.js.map +1 -1
  127. package/dist/source/routerStores.d.ts +10 -0
  128. package/dist/source/routerStores.js +71 -0
  129. package/dist/source/routerStores.js.map +1 -0
  130. package/dist/source/ssr/RouterClient.jsx +1 -1
  131. package/dist/source/ssr/RouterClient.jsx.map +1 -1
  132. package/dist/source/ssr/renderRouterToStream.jsx +1 -1
  133. package/dist/source/ssr/renderRouterToStream.jsx.map +1 -1
  134. package/dist/source/ssr/renderRouterToString.d.ts +1 -1
  135. package/dist/source/ssr/renderRouterToString.jsx +2 -2
  136. package/dist/source/ssr/renderRouterToString.jsx.map +1 -1
  137. package/dist/source/useCanGoBack.d.ts +2 -1
  138. package/dist/source/useCanGoBack.js +4 -2
  139. package/dist/source/useCanGoBack.js.map +1 -1
  140. package/dist/source/useLoaderDeps.jsx +2 -3
  141. package/dist/source/useLoaderDeps.jsx.map +1 -1
  142. package/dist/source/useLocation.jsx +13 -3
  143. package/dist/source/useLocation.jsx.map +1 -1
  144. package/dist/source/useMatch.jsx +30 -27
  145. package/dist/source/useMatch.jsx.map +1 -1
  146. package/dist/source/useParams.jsx +1 -1
  147. package/dist/source/useParams.jsx.map +1 -1
  148. package/dist/source/useRouterState.jsx +12 -33
  149. package/dist/source/useRouterState.jsx.map +1 -1
  150. package/dist/source/useSearch.jsx +2 -1
  151. package/dist/source/useSearch.jsx.map +1 -1
  152. package/dist/source/utils.d.ts +0 -4
  153. package/dist/source/utils.js +0 -13
  154. package/dist/source/utils.js.map +1 -1
  155. package/package.json +2 -3
  156. package/skills/solid-router/SKILL.md +2 -0
  157. package/src/Match.tsx +351 -304
  158. package/src/Matches.tsx +49 -52
  159. package/src/Scripts.tsx +40 -41
  160. package/src/Transitioner.tsx +67 -66
  161. package/src/headContentUtils.tsx +89 -91
  162. package/src/link.tsx +179 -141
  163. package/src/matchContext.tsx +16 -7
  164. package/src/not-found.tsx +6 -6
  165. package/src/router.ts +2 -1
  166. package/src/routerStores.ts +107 -0
  167. package/src/ssr/RouterClient.tsx +1 -1
  168. package/src/ssr/renderRouterToStream.tsx +1 -1
  169. package/src/ssr/renderRouterToString.tsx +2 -2
  170. package/src/useCanGoBack.ts +6 -2
  171. package/src/useLoaderDeps.tsx +2 -3
  172. package/src/useLocation.tsx +18 -5
  173. package/src/useMatch.tsx +36 -43
  174. package/src/useParams.tsx +2 -3
  175. package/src/useRouterState.tsx +17 -41
  176. package/src/useSearch.tsx +2 -1
  177. package/src/utils.ts +0 -20
@@ -5,99 +5,113 @@ import { createControlledPromise, getLocationChangeInfo, isNotFound, isRedirect,
5
5
  import { isServer } from '@tanstack/router-core/isServer';
6
6
  import { Dynamic } from 'solid-js/web';
7
7
  import { CatchBoundary, ErrorComponent } from './CatchBoundary';
8
- import { useRouterState } from './useRouterState';
9
8
  import { useRouter } from './useRouter';
10
9
  import { CatchNotFound } from './not-found';
11
- import { matchContext } from './matchContext';
10
+ import { nearestMatchContext } from './matchContext';
12
11
  import { SafeFragment } from './SafeFragment';
13
12
  import { renderRouteNotFound } from './renderRouteNotFound';
14
13
  import { ScrollRestoration } from './scroll-restoration';
15
14
  export const Match = (props) => {
16
15
  const router = useRouter();
17
- const matchState = useRouterState({
18
- select: (s) => {
19
- const match = s.matches.find((d) => d.id === props.matchId);
20
- // During navigation transitions, matches can be temporarily removed
21
- // Return null to avoid errors - the component will handle this gracefully
22
- if (!match) {
23
- return null;
24
- }
25
- return {
26
- routeId: match.routeId,
27
- ssr: match.ssr,
28
- _displayPending: match._displayPending,
29
- };
30
- },
16
+ const match = Solid.createMemo(() => {
17
+ const id = props.matchId;
18
+ if (!id)
19
+ return undefined;
20
+ return router.stores.activeMatchStoresById.get(id)?.state;
31
21
  });
32
- // If match doesn't exist yet, return null (component is being unmounted or not ready)
33
- if (!matchState())
34
- return null;
35
- const route = () => router.routesById[matchState().routeId];
36
- const resolvePendingComponent = () => route().options.pendingComponent ?? router.options.defaultPendingComponent;
37
- const routeErrorComponent = () => route().options.errorComponent ?? router.options.defaultErrorComponent;
38
- const routeOnCatch = () => route().options.onCatch ?? router.options.defaultOnCatch;
39
- const routeNotFoundComponent = () => route().isRoot
40
- ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component
41
- (route().options.notFoundComponent ??
42
- router.options.notFoundRoute?.options.component)
43
- : route().options.notFoundComponent;
44
- const resolvedNoSsr = matchState().ssr === false || matchState().ssr === 'data-only';
45
- const ResolvedSuspenseBoundary = () => Solid.Suspense;
46
- const ResolvedCatchBoundary = () => routeErrorComponent() ? CatchBoundary : SafeFragment;
47
- const ResolvedNotFoundBoundary = () => routeNotFoundComponent() ? CatchNotFound : SafeFragment;
48
- const resetKey = useRouterState({
49
- select: (s) => s.loadedAt,
22
+ const rawMatchState = Solid.createMemo(() => {
23
+ const currentMatch = match();
24
+ if (!currentMatch) {
25
+ return null;
26
+ }
27
+ const routeId = currentMatch.routeId;
28
+ const parentRouteId = router.routesById[routeId]?.parentRoute
29
+ ?.id;
30
+ return {
31
+ matchId: currentMatch.id,
32
+ routeId,
33
+ ssr: currentMatch.ssr,
34
+ _displayPending: currentMatch._displayPending,
35
+ parentRouteId: parentRouteId,
36
+ };
50
37
  });
51
- const parentRouteId = useRouterState({
52
- select: (s) => {
53
- const index = s.matches.findIndex((d) => d.id === props.matchId);
54
- return s.matches[index - 1]?.routeId;
55
- },
38
+ const hasPendingMatch = Solid.createMemo(() => {
39
+ const currentRouteId = rawMatchState()?.routeId;
40
+ return currentRouteId
41
+ ? Boolean(router.stores.pendingRouteIds.state[currentRouteId])
42
+ : false;
56
43
  });
57
- const ShellComponent = route().isRoot
58
- ? (route().options.shellComponent ?? SafeFragment)
59
- : SafeFragment;
60
- return (<ShellComponent>
61
- <matchContext.Provider value={() => props.matchId}>
62
- <Dynamic component={ResolvedSuspenseBoundary()} fallback={
63
- // Don't show fallback on server when using no-ssr mode to avoid hydration mismatch
64
- (isServer ?? router.isServer) || resolvedNoSsr ? undefined : (<Dynamic component={resolvePendingComponent()}/>)}>
65
- <Dynamic component={ResolvedCatchBoundary()} getResetKey={() => resetKey()} errorComponent={routeErrorComponent() || ErrorComponent} onCatch={(error) => {
66
- // Forward not found errors (we don't want to show the error component for these)
67
- if (isNotFound(error))
68
- throw error;
69
- warning(false, `Error in route match: ${matchState().routeId}`);
70
- routeOnCatch()?.(error);
71
- }}>
72
- <Dynamic component={ResolvedNotFoundBoundary()} fallback={(error) => {
73
- // If the current not found handler doesn't exist or it has a
74
- // route ID which doesn't match the current route, rethrow the error
75
- if (!routeNotFoundComponent() ||
76
- (error.routeId && error.routeId !== matchState().routeId) ||
77
- (!error.routeId && !route().isRoot))
78
- throw error;
79
- return (<Dynamic component={routeNotFoundComponent()} {...error}/>);
80
- }}>
81
- <Solid.Switch>
82
- <Solid.Match when={resolvedNoSsr}>
83
- <Solid.Show when={!(isServer ?? router.isServer)} fallback={<Dynamic component={resolvePendingComponent()}/>}>
84
- <MatchInner matchId={props.matchId}/>
85
- </Solid.Show>
86
- </Solid.Match>
87
- <Solid.Match when={!resolvedNoSsr}>
88
- <MatchInner matchId={props.matchId}/>
89
- </Solid.Match>
90
- </Solid.Switch>
91
- </Dynamic>
92
- </Dynamic>
93
- </Dynamic>
94
- </matchContext.Provider>
44
+ const nearestMatch = {
45
+ matchId: () => rawMatchState()?.matchId,
46
+ routeId: () => rawMatchState()?.routeId,
47
+ match,
48
+ hasPending: hasPendingMatch,
49
+ };
50
+ return (<Solid.Show when={rawMatchState()}>
51
+ {(currentMatchState) => {
52
+ const route = () => router.routesById[currentMatchState().routeId];
53
+ const resolvePendingComponent = () => route().options.pendingComponent ??
54
+ router.options.defaultPendingComponent;
55
+ const routeErrorComponent = () => route().options.errorComponent ?? router.options.defaultErrorComponent;
56
+ const routeOnCatch = () => route().options.onCatch ?? router.options.defaultOnCatch;
57
+ const routeNotFoundComponent = () => route().isRoot
58
+ ? // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component
59
+ (route().options.notFoundComponent ??
60
+ router.options.notFoundRoute?.options.component)
61
+ : route().options.notFoundComponent;
62
+ const resolvedNoSsr = currentMatchState().ssr === false ||
63
+ currentMatchState().ssr === 'data-only';
64
+ const ResolvedSuspenseBoundary = () => Solid.Suspense;
65
+ const ResolvedCatchBoundary = () => routeErrorComponent() ? CatchBoundary : SafeFragment;
66
+ const ResolvedNotFoundBoundary = () => routeNotFoundComponent() ? CatchNotFound : SafeFragment;
67
+ const ShellComponent = route().isRoot
68
+ ? (route().options.shellComponent ??
69
+ SafeFragment)
70
+ : SafeFragment;
71
+ return (<ShellComponent>
72
+ <nearestMatchContext.Provider value={nearestMatch}>
73
+ <Dynamic component={ResolvedSuspenseBoundary()} fallback={
74
+ // Don't show fallback on server when using no-ssr mode to avoid hydration mismatch
75
+ (isServer ?? router.isServer) && resolvedNoSsr ? undefined : (<Dynamic component={resolvePendingComponent()}/>)}>
76
+ <Dynamic component={ResolvedCatchBoundary()} getResetKey={() => router.stores.loadedAt.state} errorComponent={routeErrorComponent() || ErrorComponent} onCatch={(error) => {
77
+ // Forward not found errors (we don't want to show the error component for these)
78
+ if (isNotFound(error))
79
+ throw error;
80
+ warning(false, `Error in route match: ${currentMatchState().routeId}`);
81
+ routeOnCatch()?.(error);
82
+ }}>
83
+ <Dynamic component={ResolvedNotFoundBoundary()} fallback={(error) => {
84
+ // If the current not found handler doesn't exist or it has a
85
+ // route ID which doesn't match the current route, rethrow the error
86
+ if (!routeNotFoundComponent() ||
87
+ (error.routeId &&
88
+ error.routeId !== currentMatchState().routeId) ||
89
+ (!error.routeId && !route().isRoot))
90
+ throw error;
91
+ return (<Dynamic component={routeNotFoundComponent()} {...error}/>);
92
+ }}>
93
+ <Solid.Switch>
94
+ <Solid.Match when={resolvedNoSsr}>
95
+ <Solid.Show when={!(isServer ?? router.isServer)} fallback={<Dynamic component={resolvePendingComponent()}/>}>
96
+ <MatchInner />
97
+ </Solid.Show>
98
+ </Solid.Match>
99
+ <Solid.Match when={!resolvedNoSsr}>
100
+ <MatchInner />
101
+ </Solid.Match>
102
+ </Solid.Switch>
103
+ </Dynamic>
104
+ </Dynamic>
105
+ </Dynamic>
106
+ </nearestMatchContext.Provider>
95
107
 
96
- {parentRouteId() === rootRouteId ? (<>
97
- <OnRendered />
98
- <ScrollRestoration />
99
- </>) : null}
100
- </ShellComponent>);
108
+ {currentMatchState().parentRouteId === rootRouteId ? (<>
109
+ <OnRendered />
110
+ <ScrollRestoration />
111
+ </>) : null}
112
+ </ShellComponent>);
113
+ }}
114
+ </Solid.Show>);
101
115
  };
102
116
  // On Rendered can't happen above the root layout because it actually
103
117
  // renders a dummy dom element to track the rendered state of the app.
@@ -108,180 +122,175 @@ export const Match = (props) => {
108
122
  // which is common).
109
123
  function OnRendered() {
110
124
  const router = useRouter();
111
- const location = useRouterState({
112
- select: (s) => {
113
- return s.resolvedLocation?.state.__TSR_key;
114
- },
115
- });
125
+ const location = Solid.createMemo(() => router.stores.resolvedLocation.state?.state.__TSR_key);
116
126
  Solid.createEffect(Solid.on([location], () => {
117
127
  router.emit({
118
128
  type: 'onRendered',
119
- ...getLocationChangeInfo(router.state),
129
+ ...getLocationChangeInfo(router.stores.location.state, router.stores.resolvedLocation.state),
120
130
  });
121
131
  }));
122
132
  return null;
123
133
  }
124
- export const MatchInner = (props) => {
134
+ export const MatchInner = () => {
125
135
  const router = useRouter();
126
- const matchState = useRouterState({
127
- select: (s) => {
128
- const match = s.matches.find((d) => d.id === props.matchId);
129
- // During navigation transitions, matches can be temporarily removed
130
- if (!match) {
131
- return null;
132
- }
133
- const routeId = match.routeId;
134
- const remountFn = router.routesById[routeId].options.remountDeps ??
135
- router.options.defaultRemountDeps;
136
- const remountDeps = remountFn?.({
137
- routeId,
138
- loaderDeps: match.loaderDeps,
139
- params: match._strictParams,
140
- search: match._strictSearch,
141
- });
142
- const key = remountDeps ? JSON.stringify(remountDeps) : undefined;
143
- return {
144
- key,
145
- routeId,
146
- match: {
147
- id: match.id,
148
- status: match.status,
149
- error: match.error,
150
- _forcePending: match._forcePending,
151
- _displayPending: match._displayPending,
152
- },
153
- };
154
- },
155
- });
156
- if (!matchState())
157
- return null;
158
- const route = () => router.routesById[matchState().routeId];
159
- const match = () => matchState().match;
160
- const componentKey = () => matchState().key ?? matchState().match.id;
161
- const out = () => {
162
- const Comp = route().options.component ?? router.options.defaultComponent;
163
- if (Comp) {
164
- return <Comp />;
136
+ const match = Solid.useContext(nearestMatchContext).match;
137
+ const rawMatchState = Solid.createMemo(() => {
138
+ const currentMatch = match();
139
+ if (!currentMatch) {
140
+ return null;
165
141
  }
166
- return <Outlet />;
167
- };
168
- const keyedOut = () => (<Solid.Show when={componentKey()} keyed>
169
- {(_key) => out()}
170
- </Solid.Show>);
171
- return (<Solid.Switch>
172
- <Solid.Match when={match()._displayPending}>
173
- {(_) => {
174
- const [displayPendingResult] = Solid.createResource(() => router.getMatch(match().id)?._nonReactive.displayPendingPromise);
175
- return <>{displayPendingResult()}</>;
176
- }}
177
- </Solid.Match>
178
- <Solid.Match when={match()._forcePending}>
179
- {(_) => {
180
- const [minPendingResult] = Solid.createResource(() => router.getMatch(match().id)?._nonReactive.minPendingPromise);
181
- return <>{minPendingResult()}</>;
182
- }}
183
- </Solid.Match>
184
- <Solid.Match when={match().status === 'pending'}>
185
- {(_) => {
186
- const pendingMinMs = route().options.pendingMinMs ?? router.options.defaultPendingMinMs;
187
- if (pendingMinMs) {
188
- const routerMatch = router.getMatch(match().id);
189
- if (routerMatch && !routerMatch._nonReactive.minPendingPromise) {
190
- // Create a promise that will resolve after the minPendingMs
191
- if (!(isServer ?? router.isServer)) {
192
- const minPendingPromise = createControlledPromise();
193
- routerMatch._nonReactive.minPendingPromise = minPendingPromise;
194
- setTimeout(() => {
195
- minPendingPromise.resolve();
196
- // We've handled the minPendingPromise, so we can delete it
197
- routerMatch._nonReactive.minPendingPromise = undefined;
198
- }, pendingMinMs);
199
- }
142
+ const routeId = currentMatch.routeId;
143
+ const remountFn = router.routesById[routeId].options.remountDeps ??
144
+ router.options.defaultRemountDeps;
145
+ const remountDeps = remountFn?.({
146
+ routeId,
147
+ loaderDeps: currentMatch.loaderDeps,
148
+ params: currentMatch._strictParams,
149
+ search: currentMatch._strictSearch,
150
+ });
151
+ const key = remountDeps ? JSON.stringify(remountDeps) : undefined;
152
+ return {
153
+ key,
154
+ routeId,
155
+ match: {
156
+ id: currentMatch.id,
157
+ status: currentMatch.status,
158
+ error: currentMatch.error,
159
+ _forcePending: currentMatch._forcePending ?? false,
160
+ _displayPending: currentMatch._displayPending ?? false,
161
+ },
162
+ };
163
+ });
164
+ return (<Solid.Show when={rawMatchState()}>
165
+ {(currentMatchState) => {
166
+ const route = () => router.routesById[currentMatchState().routeId];
167
+ const currentMatch = () => currentMatchState().match;
168
+ const componentKey = () => currentMatchState().key ?? currentMatchState().match.id;
169
+ const out = () => {
170
+ const Comp = route().options.component ?? router.options.defaultComponent;
171
+ if (Comp) {
172
+ return <Comp />;
200
173
  }
201
- }
202
- const [loaderResult] = Solid.createResource(async () => {
203
- await new Promise((r) => setTimeout(r, 0));
204
- return router.getMatch(match().id)?._nonReactive.loadPromise;
205
- });
206
- const FallbackComponent = route().options.pendingComponent ??
207
- router.options.defaultPendingComponent;
208
- return (<>
209
- {FallbackComponent && pendingMinMs > 0 ? (<Dynamic component={FallbackComponent}/>) : null}
210
- {loaderResult()}
211
- </>);
212
- }}
213
- </Solid.Match>
214
- <Solid.Match when={match().status === 'notFound'}>
215
- {(_) => {
216
- invariant(isNotFound(match().error), 'Expected a notFound error');
217
- // Use Show with keyed to ensure re-render when routeId changes
218
- return (<Solid.Show when={matchState().routeId} keyed>
219
- {(_routeId) => renderRouteNotFound(router, route(), match().error)}
220
- </Solid.Show>);
221
- }}
222
- </Solid.Match>
223
- <Solid.Match when={match().status === 'redirected'}>
224
- {(_) => {
225
- invariant(isRedirect(match().error), 'Expected a redirect error');
226
- const [loaderResult] = Solid.createResource(async () => {
227
- await new Promise((r) => setTimeout(r, 0));
228
- return router.getMatch(match().id)?._nonReactive.loadPromise;
229
- });
230
- return <>{loaderResult()}</>;
231
- }}
232
- </Solid.Match>
233
- <Solid.Match when={match().status === 'error'}>
234
- {(_) => {
235
- throw match().error;
174
+ return <Outlet />;
175
+ };
176
+ const keyedOut = () => (<Solid.Show when={componentKey()} keyed>
177
+ {(_key) => out()}
178
+ </Solid.Show>);
179
+ return (<Solid.Switch>
180
+ <Solid.Match when={currentMatch()._displayPending}>
181
+ {(_) => {
182
+ const [displayPendingResult] = Solid.createResource(() => router.getMatch(currentMatch().id)?._nonReactive
183
+ .displayPendingPromise);
184
+ return <>{displayPendingResult()}</>;
185
+ }}
186
+ </Solid.Match>
187
+ <Solid.Match when={currentMatch()._forcePending}>
188
+ {(_) => {
189
+ const [minPendingResult] = Solid.createResource(() => router.getMatch(currentMatch().id)?._nonReactive
190
+ .minPendingPromise);
191
+ return <>{minPendingResult()}</>;
192
+ }}
193
+ </Solid.Match>
194
+ <Solid.Match when={currentMatch().status === 'pending'}>
195
+ {(_) => {
196
+ const pendingMinMs = route().options.pendingMinMs ??
197
+ router.options.defaultPendingMinMs;
198
+ if (pendingMinMs) {
199
+ const routerMatch = router.getMatch(currentMatch().id);
200
+ if (routerMatch &&
201
+ !routerMatch._nonReactive.minPendingPromise) {
202
+ // Create a promise that will resolve after the minPendingMs
203
+ if (!(isServer ?? router.isServer)) {
204
+ const minPendingPromise = createControlledPromise();
205
+ routerMatch._nonReactive.minPendingPromise =
206
+ minPendingPromise;
207
+ setTimeout(() => {
208
+ minPendingPromise.resolve();
209
+ // We've handled the minPendingPromise, so we can delete it
210
+ routerMatch._nonReactive.minPendingPromise = undefined;
211
+ }, pendingMinMs);
212
+ }
213
+ }
214
+ }
215
+ const [loaderResult] = Solid.createResource(async () => {
216
+ await new Promise((r) => setTimeout(r, 0));
217
+ return router.getMatch(currentMatch().id)?._nonReactive
218
+ .loadPromise;
219
+ });
220
+ const FallbackComponent = route().options.pendingComponent ??
221
+ router.options.defaultPendingComponent;
222
+ return (<>
223
+ {FallbackComponent && pendingMinMs > 0 ? (<Dynamic component={FallbackComponent}/>) : null}
224
+ {loaderResult()}
225
+ </>);
226
+ }}
227
+ </Solid.Match>
228
+ <Solid.Match when={currentMatch().status === 'notFound'}>
229
+ {(_) => {
230
+ invariant(isNotFound(currentMatch().error), 'Expected a notFound error');
231
+ // Use Show with keyed to ensure re-render when routeId changes
232
+ return (<Solid.Show when={currentMatchState().routeId} keyed>
233
+ {(_routeId) => renderRouteNotFound(router, route(), currentMatch().error)}
234
+ </Solid.Show>);
235
+ }}
236
+ </Solid.Match>
237
+ <Solid.Match when={currentMatch().status === 'redirected'}>
238
+ {(_) => {
239
+ invariant(isRedirect(currentMatch().error), 'Expected a redirect error');
240
+ const [loaderResult] = Solid.createResource(async () => {
241
+ await new Promise((r) => setTimeout(r, 0));
242
+ return router.getMatch(currentMatch().id)?._nonReactive
243
+ .loadPromise;
244
+ });
245
+ return <>{loaderResult()}</>;
246
+ }}
247
+ </Solid.Match>
248
+ <Solid.Match when={currentMatch().status === 'error'}>
249
+ {(_) => {
250
+ if (isServer ?? router.isServer) {
251
+ const RouteErrorComponent = (route().options.errorComponent ??
252
+ router.options.defaultErrorComponent) ||
253
+ ErrorComponent;
254
+ return (<RouteErrorComponent error={currentMatch().error} info={{
255
+ componentStack: '',
256
+ }}/>);
257
+ }
258
+ throw currentMatch().error;
259
+ }}
260
+ </Solid.Match>
261
+ <Solid.Match when={currentMatch().status === 'success'}>
262
+ {keyedOut()}
263
+ </Solid.Match>
264
+ </Solid.Switch>);
236
265
  }}
237
- </Solid.Match>
238
- <Solid.Match when={match().status === 'success'}>
239
- {keyedOut()}
240
- </Solid.Match>
241
- </Solid.Switch>);
266
+ </Solid.Show>);
242
267
  };
243
268
  export const Outlet = () => {
244
269
  const router = useRouter();
245
- const matchId = Solid.useContext(matchContext);
246
- const routeId = useRouterState({
247
- select: (s) => s.matches.find((d) => d.id === matchId())?.routeId,
248
- });
249
- const route = () => router.routesById[routeId()];
250
- const parentGlobalNotFound = useRouterState({
251
- select: (s) => {
252
- const matches = s.matches;
253
- const parentMatch = matches.find((d) => d.id === matchId());
254
- // During navigation transitions, parent match can be temporarily removed
255
- // Return false to avoid errors - the component will handle this gracefully
256
- if (!parentMatch) {
257
- return false;
258
- }
259
- return parentMatch.globalNotFound;
260
- },
261
- });
262
- const childMatchId = useRouterState({
263
- select: (s) => {
264
- const matches = s.matches;
265
- const index = matches.findIndex((d) => d.id === matchId());
266
- const v = matches[index + 1]?.id;
267
- return v;
268
- },
270
+ const nearestParentMatch = Solid.useContext(nearestMatchContext);
271
+ const parentMatch = nearestParentMatch.match;
272
+ const routeId = nearestParentMatch.routeId;
273
+ const route = Solid.createMemo(() => routeId() ? router.routesById[routeId()] : undefined);
274
+ const parentGlobalNotFound = Solid.createMemo(() => parentMatch()?.globalNotFound ?? false);
275
+ const childMatchId = Solid.createMemo(() => {
276
+ const currentRouteId = routeId();
277
+ return currentRouteId
278
+ ? router.stores.childMatchIdByRouteId.state[currentRouteId]
279
+ : undefined;
269
280
  });
270
- const childMatchStatus = useRouterState({
271
- select: (s) => {
272
- const matches = s.matches;
273
- const index = matches.findIndex((d) => d.id === matchId());
274
- return matches[index + 1]?.status;
275
- },
281
+ const childMatchStatus = Solid.createMemo(() => {
282
+ const id = childMatchId();
283
+ if (!id)
284
+ return undefined;
285
+ return router.stores.activeMatchStoresById.get(id)?.state.status;
276
286
  });
277
287
  // Only show not-found if we're not in a redirected state
278
288
  const shouldShowNotFound = () => childMatchStatus() !== 'redirected' && parentGlobalNotFound();
279
- return (<Solid.Show when={!shouldShowNotFound() && childMatchId()} fallback={<Solid.Show when={shouldShowNotFound()}>
280
- {renderRouteNotFound(router, route(), undefined)}
289
+ return (<Solid.Show when={!shouldShowNotFound() && childMatchId()} fallback={<Solid.Show when={shouldShowNotFound() && route()}>
290
+ {(resolvedRoute) => renderRouteNotFound(router, resolvedRoute(), undefined)}
281
291
  </Solid.Show>}>
282
- {(matchIdAccessor) => {
283
- // Use a memo to avoid stale accessor errors while keeping reactivity
284
- const currentMatchId = Solid.createMemo(() => matchIdAccessor());
292
+ {(childMatchIdAccessor) => {
293
+ const currentMatchId = Solid.createMemo(() => childMatchIdAccessor());
285
294
  return (<Solid.Show when={routeId() === rootRouteId} fallback={<Match matchId={currentMatchId()}/>}>
286
295
  <Solid.Suspense fallback={<Dynamic component={router.options.defaultPendingComponent}/>}>
287
296
  <Match matchId={currentMatchId()}/>
@@ -1 +1 @@
1
- {"version":3,"file":"Match.jsx","sourceRoot":"","sources":["../../src/Match.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AACjC,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAGxD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAA0B,EAAE,EAAE;IAClD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,UAAU,GAAG,cAAc,CAAC;QAChC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,CAAA;YAE3D,oEAAoE;YACpE,0EAA0E;YAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAA;YACb,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,eAAe,EAAE,KAAK,CAAC,eAAe;aACvC,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IAEF,sFAAsF;IACtF,IAAI,CAAC,UAAU,EAAE;QAAE,OAAO,IAAI,CAAA;IAE9B,MAAM,KAAK,GAAmB,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAG,CAAC,OAAO,CAAC,CAAA;IAE5E,MAAM,uBAAuB,GAAG,GAAG,EAAE,CACnC,KAAK,EAAE,CAAC,OAAO,CAAC,gBAAgB,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAA;IAE5E,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAC/B,KAAK,EAAE,CAAC,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAA;IAExE,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAA;IAE1D,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAClC,KAAK,EAAE,CAAC,MAAM;QACZ,CAAC,CAAC,wGAAwG;YACxG,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,iBAAiB;gBAClC,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC;QAClD,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAA;IAEvC,MAAM,aAAa,GACjB,UAAU,EAAG,CAAC,GAAG,KAAK,KAAK,IAAI,UAAU,EAAG,CAAC,GAAG,KAAK,WAAW,CAAA;IAElE,MAAM,wBAAwB,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAA;IAErD,MAAM,qBAAqB,GAAG,GAAG,EAAE,CACjC,mBAAmB,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAA;IAEtD,MAAM,wBAAwB,GAAG,GAAG,EAAE,CACpC,sBAAsB,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAA;IAEzD,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ;KAC1B,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,cAAc,CAAC;QACnC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,CAAA;YAChE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,OAAiB,CAAA;QAChD,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,KAAK,EAAE,CAAC,MAAM;QACnC,CAAC,CAAC,CAAE,KAAK,EAAE,CAAC,OAA4B,CAAC,cAAc,IAAI,YAAY,CAAC;QACxE,CAAC,CAAC,YAAY,CAAA;IAEhB,OAAO,CACL,CAAC,cAAc,CACb;MAAA,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAChD;QAAA,CAAC,OAAO,CACN,SAAS,CAAC,CAAC,wBAAwB,EAAE,CAAC,CACtC,QAAQ,CAAC,CAAC;QACR,mFAAmF;QACnF,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAC3D,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,uBAAuB,EAAE,CAAC,EAAG,CAErD,CAAC,CAED;UAAA,CAAC,OAAO,CACN,SAAS,CAAC,CAAC,qBAAqB,EAAE,CAAC,CACnC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAC9B,cAAc,CAAC,CAAC,mBAAmB,EAAE,IAAI,cAAc,CAAC,CACxD,OAAO,CAAC,CAAC,CAAC,KAAY,EAAE,EAAE;YACxB,iFAAiF;YACjF,IAAI,UAAU,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAA;YAClC,OAAO,CAAC,KAAK,EAAE,yBAAyB,UAAU,EAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YAChE,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC,CAAC,CAEF;YAAA,CAAC,OAAO,CACN,SAAS,CAAC,CAAC,wBAAwB,EAAE,CAAC,CACtC,QAAQ,CAAC,CAAC,CAAC,KAAU,EAAE,EAAE;YACvB,6DAA6D;YAC7D,oEAAoE;YACpE,IACE,CAAC,sBAAsB,EAAE;gBACzB,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,EAAG,CAAC,OAAO,CAAC;gBAC1D,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC;gBAEnC,MAAM,KAAK,CAAA;YAEb,OAAO,CACL,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAC5D,CAAA;QACH,CAAC,CAAC,CAEF;cAAA,CAAC,KAAK,CAAC,MAAM,CACX;gBAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,CAC/B;kBAAA,CAAC,KAAK,CAAC,IAAI,CACT,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CACrC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,uBAAuB,EAAE,CAAC,EAAG,CAAC,CAE5D;oBAAA,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EACrC;kBAAA,EAAE,KAAK,CAAC,IAAI,CACd;gBAAA,EAAE,KAAK,CAAC,KAAK,CACb;gBAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAChC;kBAAA,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EACrC;gBAAA,EAAE,KAAK,CAAC,KAAK,CACf;cAAA,EAAE,KAAK,CAAC,MAAM,CAChB;YAAA,EAAE,OAAO,CACX;UAAA,EAAE,OAAO,CACX;QAAA,EAAE,OAAO,CACX;MAAA,EAAE,YAAY,CAAC,QAAQ,CAEvB;;MAAA,CAAC,aAAa,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,CACjC,EACE;UAAA,CAAC,UAAU,CAAC,AAAD,EACX;UAAA,CAAC,iBAAiB,CAAC,AAAD,EACpB;QAAA,GAAG,CACJ,CAAC,CAAC,CAAC,IAAI,CACV;IAAA,EAAE,cAAc,CAAC,CAClB,CAAA;AACH,CAAC,CAAA;AAED,qEAAqE;AACrE,sEAAsE;AACtE,sEAAsE;AACtE,yEAAyE;AACzE,sEAAsE;AACtE,sEAAsE;AACtE,oBAAoB;AACpB,SAAS,UAAU;IACjB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,OAAO,CAAC,CAAC,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAA;QAC5C,CAAC;KACF,CAAC,CAAA;IACF,KAAK,CAAC,YAAY,CAChB,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,YAAY;YAClB,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC;SACvC,CAAC,CAAA;IACJ,CAAC,CAAC,CACH,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA0B,EAAO,EAAE;IAC5D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAE1B,MAAM,UAAU,GAAG,cAAc,CAAC;QAChC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,CAAA;YAE3D,oEAAoE;YACpE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,IAAI,CAAA;YACb,CAAC;YAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAiB,CAAA;YAEvC,MAAM,SAAS,GACZ,MAAM,CAAC,UAAU,CAAC,OAAO,CAAc,CAAC,OAAO,CAAC,WAAW;gBAC5D,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAA;YACnC,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC;gBAC9B,OAAO;gBACP,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,MAAM,EAAE,KAAK,CAAC,aAAa;gBAC3B,MAAM,EAAE,KAAK,CAAC,aAAa;aAC5B,CAAC,CAAA;YACF,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAEjE,OAAO;gBACL,GAAG;gBACH,OAAO;gBACP,KAAK,EAAE;oBACL,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,eAAe,EAAE,KAAK,CAAC,eAAe;iBACvC;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,UAAU,EAAE;QAAE,OAAO,IAAI,CAAA;IAE9B,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAG,CAAC,OAAO,CAAE,CAAA;IAE7D,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,UAAU,EAAG,CAAC,KAAK,CAAA;IAEvC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,UAAU,EAAG,CAAC,GAAG,IAAI,UAAU,EAAG,CAAC,KAAK,CAAC,EAAE,CAAA;IAEtE,MAAM,GAAG,GAAG,GAAG,EAAE;QACf,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAA;QACzE,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,AAAD,EAAG,CAAA;QACjB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,AAAD,EAAG,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CACrB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,CACrC;MAAA,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAClB;IAAA,EAAE,KAAK,CAAC,IAAI,CAAC,CACd,CAAA;IAED,OAAO,CACL,CAAC,KAAK,CAAC,MAAM,CACX;MAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC,CACzC;QAAA,CAAC,CAAC,CAAC,EAAE,EAAE;YACL,MAAM,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,cAAc,CACjD,GAAG,EAAE,CACH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,qBAAqB,CAClE,CAAA;YAED,OAAO,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,CAAA;QACtC,CAAC,CACH;MAAA,EAAE,KAAK,CAAC,KAAK,CACb;MAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CACvC;QAAA,CAAC,CAAC,CAAC,EAAE,EAAE;YACL,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,cAAc,CAC7C,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAClE,CAAA;YAED,OAAO,EAAE,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAA;QAClC,CAAC,CACH;MAAA,EAAE,KAAK,CAAC,KAAK,CACb;MAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAC9C;QAAA,CAAC,CAAC,CAAC,EAAE,EAAE;YACL,MAAM,YAAY,GAChB,KAAK,EAAE,CAAC,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAA;YAEpE,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC/C,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;oBAC/D,4DAA4D;oBAC5D,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACnC,MAAM,iBAAiB,GAAG,uBAAuB,EAAQ,CAAA;wBAEzD,WAAW,CAAC,YAAY,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;wBAE9D,UAAU,CAAC,GAAG,EAAE;4BACd,iBAAiB,CAAC,OAAO,EAAE,CAAA;4BAC3B,2DAA2D;4BAC3D,WAAW,CAAC,YAAY,CAAC,iBAAiB,GAAG,SAAS,CAAA;wBACxD,CAAC,EAAE,YAAY,CAAC,CAAA;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE;gBACrD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,WAAW,CAAA;YAC9D,CAAC,CAAC,CAAA;YAEF,MAAM,iBAAiB,GACrB,KAAK,EAAE,CAAC,OAAO,CAAC,gBAAgB;gBAChC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAA;YAExC,OAAO,CACL,EACE;cAAA,CAAC,iBAAiB,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,EAAG,CAC1C,CAAC,CAAC,CAAC,IAAI,CACR;cAAA,CAAC,YAAY,EAAE,CACjB;YAAA,GAAG,CACJ,CAAA;QACH,CAAC,CACH;MAAA,EAAE,KAAK,CAAC,KAAK,CACb;MAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,CAC/C;QAAA,CAAC,CAAC,CAAC,EAAE,EAAE;YACL,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAA;YAEjE,+DAA+D;YAC/D,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAC5C;cAAA,CAAC,CAAC,QAAQ,EAAE,EAAE,CACZ,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,CACpD,CACF;YAAA,EAAE,KAAK,CAAC,IAAI,CAAC,CACd,CAAA;QACH,CAAC,CACH;MAAA,EAAE,KAAK,CAAC,KAAK,CACb;MAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,YAAY,CAAC,CACjD;QAAA,CAAC,CAAC,CAAC,EAAE,EAAE;YACL,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAA;YAEjE,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE;gBACrD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,WAAW,CAAA;YAC9D,CAAC,CAAC,CAAA;YAEF,OAAO,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,CAAA;QAC9B,CAAC,CACH;MAAA,EAAE,KAAK,CAAC,KAAK,CACb;MAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAC5C;QAAA,CAAC,CAAC,CAAC,EAAE,EAAE;YACL,MAAM,KAAK,EAAE,CAAC,KAAK,CAAA;QACrB,CAAC,CACH;MAAA,EAAE,KAAK,CAAC,KAAK,CACb;MAAA,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAC9C;QAAA,CAAC,QAAQ,EAAE,CACb;MAAA,EAAE,KAAK,CAAC,KAAK,CACf;IAAA,EAAE,KAAK,CAAC,MAAM,CAAC,CAChB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE;IACzB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,cAAc,CAAC;QAC7B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,EAAE,OAAiB;KAC5E,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAE,CAAA;IAEjD,MAAM,oBAAoB,GAAG,cAAc,CAAC;QAC1C,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAA;YACzB,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAA;YAE3D,yEAAyE;YACzE,2EAA2E;YAC3E,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,KAAK,CAAA;YACd,CAAC;YAED,OAAO,WAAW,CAAC,cAAc,CAAA;QACnC,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,cAAc,CAAC;QAClC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAA;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAA;YAC1D,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,EAAE,CAAA;YAChC,OAAO,CAAC,CAAA;QACV,CAAC;KACF,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,cAAc,CAAC;QACtC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAA;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAA;YAC1D,OAAO,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,CAAA;QACnC,CAAC;KACF,CAAC,CAAA;IAEF,yDAAyD;IACzD,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAC9B,gBAAgB,EAAE,KAAK,YAAY,IAAI,oBAAoB,EAAE,CAAA;IAE/D,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,CACT,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,IAAI,YAAY,EAAE,CAAC,CAC9C,QAAQ,CAAC,CACP,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC,CACrC;UAAA,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAClD;QAAA,EAAE,KAAK,CAAC,IAAI,CACd,CAAC,CAED;MAAA,CAAC,CAAC,eAAe,EAAE,EAAE;YACnB,qEAAqE;YACrE,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAA;YAEhE,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,CACT,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC,CAChC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC,EAAG,CAAC,CAE/C;YAAA,CAAC,KAAK,CAAC,QAAQ,CACb,QAAQ,CAAC,CACP,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAC7D,CAAC,CAED;cAAA,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC,EACnC;YAAA,EAAE,KAAK,CAAC,QAAQ,CAClB;UAAA,EAAE,KAAK,CAAC,IAAI,CAAC,CACd,CAAA;QACH,CAAC,CACH;IAAA,EAAE,KAAK,CAAC,IAAI,CAAC,CACd,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"Match.jsx","sourceRoot":"","sources":["../../src/Match.tsx"],"names":[],"mappings":"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"}