@tanstack/solid-router 1.121.19 → 1.121.21

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 (344) hide show
  1. package/dist/cjs/Asset.cjs +49 -0
  2. package/dist/cjs/Asset.cjs.map +1 -0
  3. package/dist/cjs/Asset.d.cts +2 -0
  4. package/dist/cjs/CatchBoundary.cjs +92 -0
  5. package/dist/cjs/CatchBoundary.cjs.map +1 -0
  6. package/dist/cjs/CatchBoundary.d.cts +11 -0
  7. package/dist/cjs/ClientOnly.cjs +36 -0
  8. package/dist/cjs/ClientOnly.cjs.map +1 -0
  9. package/dist/cjs/ClientOnly.d.cts +49 -0
  10. package/dist/cjs/HeadContent.cjs +146 -0
  11. package/dist/cjs/HeadContent.cjs.map +1 -0
  12. package/dist/cjs/HeadContent.d.cts +8 -0
  13. package/dist/cjs/Match.cjs +359 -0
  14. package/dist/cjs/Match.cjs.map +1 -0
  15. package/dist/cjs/Match.d.cts +8 -0
  16. package/dist/cjs/Matches.cjs +152 -0
  17. package/dist/cjs/Matches.cjs.map +1 -0
  18. package/dist/cjs/Matches.d.cts +24 -0
  19. package/dist/cjs/RouterProvider.cjs +45 -0
  20. package/dist/cjs/RouterProvider.cjs.map +1 -0
  21. package/dist/cjs/RouterProvider.d.cts +10 -0
  22. package/dist/cjs/SafeFragment.cjs +8 -0
  23. package/dist/cjs/SafeFragment.cjs.map +1 -0
  24. package/dist/cjs/SafeFragment.d.cts +1 -0
  25. package/dist/cjs/ScriptOnce.cjs +23 -0
  26. package/dist/cjs/ScriptOnce.cjs.map +1 -0
  27. package/dist/cjs/ScriptOnce.d.cts +5 -0
  28. package/dist/cjs/Scripts.cjs +48 -0
  29. package/dist/cjs/Scripts.cjs.map +1 -0
  30. package/dist/cjs/Scripts.d.cts +1 -0
  31. package/dist/cjs/ScrollRestoration.cjs +37 -0
  32. package/dist/cjs/ScrollRestoration.cjs.map +1 -0
  33. package/dist/cjs/ScrollRestoration.d.cts +14 -0
  34. package/dist/cjs/Transitioner.cjs +124 -0
  35. package/dist/cjs/Transitioner.cjs.map +1 -0
  36. package/dist/cjs/Transitioner.d.cts +1 -0
  37. package/dist/cjs/awaited.cjs +49 -0
  38. package/dist/cjs/awaited.cjs.map +1 -0
  39. package/dist/cjs/awaited.d.cts +11 -0
  40. package/dist/cjs/fileRoute.cjs +103 -0
  41. package/dist/cjs/fileRoute.cjs.map +1 -0
  42. package/dist/cjs/fileRoute.d.cts +54 -0
  43. package/dist/cjs/history.d.cts +8 -0
  44. package/dist/cjs/index.cjs +289 -0
  45. package/dist/cjs/index.cjs.map +1 -0
  46. package/dist/cjs/index.d.cts +52 -0
  47. package/dist/cjs/lazyRouteComponent.cjs +73 -0
  48. package/dist/cjs/lazyRouteComponent.cjs.map +1 -0
  49. package/dist/cjs/lazyRouteComponent.d.cts +2 -0
  50. package/dist/cjs/link.cjs +287 -0
  51. package/dist/cjs/link.cjs.map +1 -0
  52. package/dist/cjs/link.d.cts +44 -0
  53. package/dist/cjs/matchContext.cjs +25 -0
  54. package/dist/cjs/matchContext.cjs.map +1 -0
  55. package/dist/cjs/matchContext.d.cts +3 -0
  56. package/dist/cjs/not-found.cjs +42 -0
  57. package/dist/cjs/not-found.cjs.map +1 -0
  58. package/dist/cjs/not-found.d.cts +8 -0
  59. package/dist/cjs/renderRouteNotFound.cjs +23 -0
  60. package/dist/cjs/renderRouteNotFound.cjs.map +1 -0
  61. package/dist/cjs/renderRouteNotFound.d.cts +2 -0
  62. package/dist/cjs/route.cjs +236 -0
  63. package/dist/cjs/route.cjs.map +1 -0
  64. package/dist/cjs/route.d.cts +95 -0
  65. package/dist/cjs/router.cjs +22 -0
  66. package/dist/cjs/router.cjs.map +1 -0
  67. package/dist/cjs/router.d.cts +69 -0
  68. package/dist/cjs/routerContext.cjs +33 -0
  69. package/dist/cjs/routerContext.cjs.map +1 -0
  70. package/dist/cjs/routerContext.d.cts +8 -0
  71. package/dist/cjs/scroll-restoration.cjs +23 -0
  72. package/dist/cjs/scroll-restoration.cjs.map +1 -0
  73. package/dist/cjs/scroll-restoration.d.cts +1 -0
  74. package/dist/cjs/typePrimitives.d.cts +10 -0
  75. package/dist/cjs/useBlocker.cjs +171 -0
  76. package/dist/cjs/useBlocker.cjs.map +1 -0
  77. package/dist/cjs/useBlocker.d.cts +67 -0
  78. package/dist/cjs/useCanGoBack.cjs +8 -0
  79. package/dist/cjs/useCanGoBack.cjs.map +1 -0
  80. package/dist/cjs/useCanGoBack.d.cts +1 -0
  81. package/dist/cjs/useLoaderData.cjs +14 -0
  82. package/dist/cjs/useLoaderData.cjs.map +1 -0
  83. package/dist/cjs/useLoaderData.d.cts +8 -0
  84. package/dist/cjs/useLoaderDeps.cjs +17 -0
  85. package/dist/cjs/useLoaderDeps.cjs.map +1 -0
  86. package/dist/cjs/useLoaderDeps.d.cts +7 -0
  87. package/dist/cjs/useLocation.cjs +10 -0
  88. package/dist/cjs/useLocation.cjs.map +1 -0
  89. package/dist/cjs/useLocation.d.cts +7 -0
  90. package/dist/cjs/useMatch.cjs +39 -0
  91. package/dist/cjs/useMatch.cjs.map +1 -0
  92. package/dist/cjs/useMatch.d.cts +10 -0
  93. package/dist/cjs/useNavigate.cjs +46 -0
  94. package/dist/cjs/useNavigate.cjs.map +1 -0
  95. package/dist/cjs/useNavigate.d.cts +5 -0
  96. package/dist/cjs/useParams.cjs +15 -0
  97. package/dist/cjs/useParams.cjs.map +1 -0
  98. package/dist/cjs/useParams.d.cts +9 -0
  99. package/dist/cjs/useRouteContext.cjs +11 -0
  100. package/dist/cjs/useRouteContext.cjs.map +1 -0
  101. package/dist/cjs/useRouteContext.d.cts +4 -0
  102. package/dist/cjs/useRouter.cjs +29 -0
  103. package/dist/cjs/useRouter.cjs.map +1 -0
  104. package/dist/cjs/useRouter.d.cts +4 -0
  105. package/dist/cjs/useRouterState.cjs +16 -0
  106. package/dist/cjs/useRouterState.cjs.map +1 -0
  107. package/dist/cjs/useRouterState.d.cts +8 -0
  108. package/dist/cjs/useSearch.cjs +15 -0
  109. package/dist/cjs/useSearch.cjs.map +1 -0
  110. package/dist/cjs/useSearch.d.cts +9 -0
  111. package/dist/cjs/utils.cjs +58 -0
  112. package/dist/cjs/utils.cjs.map +1 -0
  113. package/dist/cjs/utils.d.cts +34 -0
  114. package/dist/esm/Asset.d.ts +2 -0
  115. package/dist/esm/Asset.js +49 -0
  116. package/dist/esm/Asset.js.map +1 -0
  117. package/dist/esm/CatchBoundary.d.ts +11 -0
  118. package/dist/esm/CatchBoundary.js +75 -0
  119. package/dist/esm/CatchBoundary.js.map +1 -0
  120. package/dist/esm/ClientOnly.d.ts +49 -0
  121. package/dist/esm/ClientOnly.js +19 -0
  122. package/dist/esm/ClientOnly.js.map +1 -0
  123. package/dist/esm/HeadContent.d.ts +8 -0
  124. package/dist/esm/HeadContent.js +129 -0
  125. package/dist/esm/HeadContent.js.map +1 -0
  126. package/dist/esm/Match.d.ts +8 -0
  127. package/dist/esm/Match.js +342 -0
  128. package/dist/esm/Match.js.map +1 -0
  129. package/dist/esm/Matches.d.ts +24 -0
  130. package/dist/esm/Matches.js +135 -0
  131. package/dist/esm/Matches.js.map +1 -0
  132. package/dist/esm/RouterProvider.d.ts +10 -0
  133. package/dist/esm/RouterProvider.js +45 -0
  134. package/dist/esm/RouterProvider.js.map +1 -0
  135. package/dist/esm/SafeFragment.d.ts +1 -0
  136. package/dist/esm/SafeFragment.js +8 -0
  137. package/dist/esm/SafeFragment.js.map +1 -0
  138. package/dist/esm/ScriptOnce.d.ts +5 -0
  139. package/dist/esm/ScriptOnce.js +23 -0
  140. package/dist/esm/ScriptOnce.js.map +1 -0
  141. package/dist/esm/Scripts.d.ts +1 -0
  142. package/dist/esm/Scripts.js +48 -0
  143. package/dist/esm/Scripts.js.map +1 -0
  144. package/dist/esm/ScrollRestoration.d.ts +14 -0
  145. package/dist/esm/ScrollRestoration.js +37 -0
  146. package/dist/esm/ScrollRestoration.js.map +1 -0
  147. package/dist/esm/Transitioner.d.ts +1 -0
  148. package/dist/esm/Transitioner.js +107 -0
  149. package/dist/esm/Transitioner.js.map +1 -0
  150. package/dist/esm/awaited.d.ts +11 -0
  151. package/dist/esm/awaited.js +32 -0
  152. package/dist/esm/awaited.js.map +1 -0
  153. package/dist/esm/fileRoute.d.ts +54 -0
  154. package/dist/esm/fileRoute.js +103 -0
  155. package/dist/esm/fileRoute.js.map +1 -0
  156. package/dist/esm/history.d.ts +8 -0
  157. package/dist/esm/index.d.ts +52 -0
  158. package/dist/esm/index.js +151 -0
  159. package/dist/esm/index.js.map +1 -0
  160. package/dist/esm/lazyRouteComponent.d.ts +2 -0
  161. package/dist/esm/lazyRouteComponent.js +73 -0
  162. package/dist/esm/lazyRouteComponent.js.map +1 -0
  163. package/dist/esm/link.d.ts +44 -0
  164. package/dist/esm/link.js +270 -0
  165. package/dist/esm/link.js.map +1 -0
  166. package/dist/esm/matchContext.d.ts +3 -0
  167. package/dist/esm/matchContext.js +8 -0
  168. package/dist/esm/matchContext.js.map +1 -0
  169. package/dist/esm/not-found.d.ts +8 -0
  170. package/dist/esm/not-found.js +42 -0
  171. package/dist/esm/not-found.js.map +1 -0
  172. package/dist/esm/renderRouteNotFound.d.ts +2 -0
  173. package/dist/esm/renderRouteNotFound.js +23 -0
  174. package/dist/esm/renderRouteNotFound.js.map +1 -0
  175. package/dist/esm/route.d.ts +95 -0
  176. package/dist/esm/route.js +236 -0
  177. package/dist/esm/route.js.map +1 -0
  178. package/dist/esm/router.d.ts +69 -0
  179. package/dist/esm/router.js +22 -0
  180. package/dist/esm/router.js.map +1 -0
  181. package/dist/esm/routerContext.d.ts +8 -0
  182. package/dist/esm/routerContext.js +16 -0
  183. package/dist/esm/routerContext.js.map +1 -0
  184. package/dist/esm/scroll-restoration.d.ts +1 -0
  185. package/dist/esm/scroll-restoration.js +23 -0
  186. package/dist/esm/scroll-restoration.js.map +1 -0
  187. package/dist/esm/typePrimitives.d.ts +10 -0
  188. package/dist/esm/useBlocker.d.ts +67 -0
  189. package/dist/esm/useBlocker.js +154 -0
  190. package/dist/esm/useBlocker.js.map +1 -0
  191. package/dist/esm/useCanGoBack.d.ts +1 -0
  192. package/dist/esm/useCanGoBack.js +8 -0
  193. package/dist/esm/useCanGoBack.js.map +1 -0
  194. package/dist/esm/useLoaderData.d.ts +8 -0
  195. package/dist/esm/useLoaderData.js +14 -0
  196. package/dist/esm/useLoaderData.js.map +1 -0
  197. package/dist/esm/useLoaderDeps.d.ts +7 -0
  198. package/dist/esm/useLoaderDeps.js +17 -0
  199. package/dist/esm/useLoaderDeps.js.map +1 -0
  200. package/dist/esm/useLocation.d.ts +7 -0
  201. package/dist/esm/useLocation.js +10 -0
  202. package/dist/esm/useLocation.js.map +1 -0
  203. package/dist/esm/useMatch.d.ts +10 -0
  204. package/dist/esm/useMatch.js +22 -0
  205. package/dist/esm/useMatch.js.map +1 -0
  206. package/dist/esm/useNavigate.d.ts +5 -0
  207. package/dist/esm/useNavigate.js +29 -0
  208. package/dist/esm/useNavigate.js.map +1 -0
  209. package/dist/esm/useParams.d.ts +9 -0
  210. package/dist/esm/useParams.js +15 -0
  211. package/dist/esm/useParams.js.map +1 -0
  212. package/dist/esm/useRouteContext.d.ts +4 -0
  213. package/dist/esm/useRouteContext.js +11 -0
  214. package/dist/esm/useRouteContext.js.map +1 -0
  215. package/dist/esm/useRouter.d.ts +4 -0
  216. package/dist/esm/useRouter.js +12 -0
  217. package/dist/esm/useRouter.js.map +1 -0
  218. package/dist/esm/useRouterState.d.ts +8 -0
  219. package/dist/esm/useRouterState.js +16 -0
  220. package/dist/esm/useRouterState.js.map +1 -0
  221. package/dist/esm/useSearch.d.ts +9 -0
  222. package/dist/esm/useSearch.js +15 -0
  223. package/dist/esm/useSearch.js.map +1 -0
  224. package/dist/esm/utils.d.ts +34 -0
  225. package/dist/esm/utils.js +41 -0
  226. package/dist/esm/utils.js.map +1 -0
  227. package/dist/source/Asset.d.ts +2 -0
  228. package/dist/source/Asset.jsx +23 -0
  229. package/dist/source/Asset.jsx.map +1 -0
  230. package/dist/source/CatchBoundary.d.ts +11 -0
  231. package/dist/source/CatchBoundary.jsx +43 -0
  232. package/dist/source/CatchBoundary.jsx.map +1 -0
  233. package/dist/source/ClientOnly.d.ts +49 -0
  234. package/dist/source/ClientOnly.jsx +51 -0
  235. package/dist/source/ClientOnly.jsx.map +1 -0
  236. package/dist/source/HeadContent.d.ts +8 -0
  237. package/dist/source/HeadContent.jsx +143 -0
  238. package/dist/source/HeadContent.jsx.map +1 -0
  239. package/dist/source/Match.d.ts +8 -0
  240. package/dist/source/Match.jsx +261 -0
  241. package/dist/source/Match.jsx.map +1 -0
  242. package/dist/source/Matches.d.ts +24 -0
  243. package/dist/source/Matches.jsx +104 -0
  244. package/dist/source/Matches.jsx.map +1 -0
  245. package/dist/source/RouterProvider.d.ts +10 -0
  246. package/dist/source/RouterProvider.jsx +27 -0
  247. package/dist/source/RouterProvider.jsx.map +1 -0
  248. package/dist/source/SafeFragment.d.ts +1 -0
  249. package/dist/source/SafeFragment.jsx +4 -0
  250. package/dist/source/SafeFragment.jsx.map +1 -0
  251. package/dist/source/ScriptOnce.d.ts +5 -0
  252. package/dist/source/ScriptOnce.jsx +17 -0
  253. package/dist/source/ScriptOnce.jsx.map +1 -0
  254. package/dist/source/Scripts.d.ts +1 -0
  255. package/dist/source/Scripts.jsx +49 -0
  256. package/dist/source/Scripts.jsx.map +1 -0
  257. package/dist/source/ScrollRestoration.d.ts +14 -0
  258. package/dist/source/ScrollRestoration.jsx +37 -0
  259. package/dist/source/ScrollRestoration.jsx.map +1 -0
  260. package/dist/source/Transitioner.d.ts +1 -0
  261. package/dist/source/Transitioner.jsx +102 -0
  262. package/dist/source/Transitioner.jsx.map +1 -0
  263. package/dist/source/awaited.d.ts +11 -0
  264. package/dist/source/awaited.jsx +19 -0
  265. package/dist/source/awaited.jsx.map +1 -0
  266. package/dist/source/fileRoute.d.ts +54 -0
  267. package/dist/source/fileRoute.js +98 -0
  268. package/dist/source/fileRoute.js.map +1 -0
  269. package/dist/source/history.d.ts +8 -0
  270. package/dist/source/history.js +2 -0
  271. package/dist/source/history.js.map +1 -0
  272. package/dist/source/index.d.ts +52 -0
  273. package/dist/source/index.jsx +43 -0
  274. package/dist/source/index.jsx.map +1 -0
  275. package/dist/source/lazyRouteComponent.d.ts +2 -0
  276. package/dist/source/lazyRouteComponent.jsx +83 -0
  277. package/dist/source/lazyRouteComponent.jsx.map +1 -0
  278. package/dist/source/link.d.ts +44 -0
  279. package/dist/source/link.jsx +338 -0
  280. package/dist/source/link.jsx.map +1 -0
  281. package/dist/source/matchContext.d.ts +3 -0
  282. package/dist/source/matchContext.jsx +5 -0
  283. package/dist/source/matchContext.jsx.map +1 -0
  284. package/dist/source/not-found.d.ts +8 -0
  285. package/dist/source/not-found.jsx +30 -0
  286. package/dist/source/not-found.jsx.map +1 -0
  287. package/dist/source/renderRouteNotFound.d.ts +2 -0
  288. package/dist/source/renderRouteNotFound.jsx +15 -0
  289. package/dist/source/renderRouteNotFound.jsx.map +1 -0
  290. package/dist/source/route.d.ts +96 -0
  291. package/dist/source/route.jsx +179 -0
  292. package/dist/source/route.jsx.map +1 -0
  293. package/dist/source/router.d.ts +70 -0
  294. package/dist/source/router.js +21 -0
  295. package/dist/source/router.js.map +1 -0
  296. package/dist/source/routerContext.d.ts +8 -0
  297. package/dist/source/routerContext.jsx +13 -0
  298. package/dist/source/routerContext.jsx.map +1 -0
  299. package/dist/source/scroll-restoration.d.ts +1 -0
  300. package/dist/source/scroll-restoration.jsx +16 -0
  301. package/dist/source/scroll-restoration.jsx.map +1 -0
  302. package/dist/source/typePrimitives.d.ts +10 -0
  303. package/dist/source/typePrimitives.js +2 -0
  304. package/dist/source/typePrimitives.js.map +1 -0
  305. package/dist/source/useBlocker.d.ts +67 -0
  306. package/dist/source/useBlocker.jsx +153 -0
  307. package/dist/source/useBlocker.jsx.map +1 -0
  308. package/dist/source/useCanGoBack.d.ts +1 -0
  309. package/dist/source/useCanGoBack.js +5 -0
  310. package/dist/source/useCanGoBack.js.map +1 -0
  311. package/dist/source/useLoaderData.d.ts +8 -0
  312. package/dist/source/useLoaderData.jsx +11 -0
  313. package/dist/source/useLoaderData.jsx.map +1 -0
  314. package/dist/source/useLoaderDeps.d.ts +7 -0
  315. package/dist/source/useLoaderDeps.jsx +11 -0
  316. package/dist/source/useLoaderDeps.jsx.map +1 -0
  317. package/dist/source/useLocation.d.ts +7 -0
  318. package/dist/source/useLocation.jsx +7 -0
  319. package/dist/source/useLocation.jsx.map +1 -0
  320. package/dist/source/useMatch.d.ts +10 -0
  321. package/dist/source/useMatch.jsx +19 -0
  322. package/dist/source/useMatch.jsx.map +1 -0
  323. package/dist/source/useNavigate.d.ts +5 -0
  324. package/dist/source/useNavigate.jsx +18 -0
  325. package/dist/source/useNavigate.jsx.map +1 -0
  326. package/dist/source/useParams.d.ts +9 -0
  327. package/dist/source/useParams.jsx +12 -0
  328. package/dist/source/useParams.jsx.map +1 -0
  329. package/dist/source/useRouteContext.d.ts +4 -0
  330. package/dist/source/useRouteContext.js +8 -0
  331. package/dist/source/useRouteContext.js.map +1 -0
  332. package/dist/source/useRouter.d.ts +4 -0
  333. package/dist/source/useRouter.jsx +9 -0
  334. package/dist/source/useRouter.jsx.map +1 -0
  335. package/dist/source/useRouterState.d.ts +8 -0
  336. package/dist/source/useRouterState.jsx +14 -0
  337. package/dist/source/useRouterState.jsx.map +1 -0
  338. package/dist/source/useSearch.d.ts +9 -0
  339. package/dist/source/useSearch.jsx +12 -0
  340. package/dist/source/useSearch.jsx.map +1 -0
  341. package/dist/source/utils.d.ts +34 -0
  342. package/dist/source/utils.js +59 -0
  343. package/dist/source/utils.js.map +1 -0
  344. package/package.json +3 -3
@@ -0,0 +1,338 @@
1
+ import * as Solid from 'solid-js';
2
+ import { mergeRefs } from '@solid-primitives/refs';
3
+ import { deepEqual, exactPathTest, functionalUpdate, preloadWarning, removeTrailingSlash, } from '@tanstack/router-core';
4
+ import { Dynamic } from 'solid-js/web';
5
+ import { useRouterState } from './useRouterState';
6
+ import { useRouter } from './useRouter';
7
+ import { useIntersectionObserver } from './utils';
8
+ import { useMatches } from './Matches';
9
+ export function useLinkProps(options) {
10
+ const router = useRouter();
11
+ const [isTransitioning, setIsTransitioning] = Solid.createSignal(false);
12
+ let hasRenderFetched = false;
13
+ const [local, rest] = Solid.splitProps(Solid.mergeProps({
14
+ activeProps: () => ({ class: 'active' }),
15
+ inactiveProps: () => ({}),
16
+ }, options), [
17
+ 'activeProps',
18
+ 'inactiveProps',
19
+ 'activeOptions',
20
+ 'to',
21
+ 'preload',
22
+ 'preloadDelay',
23
+ 'hashScrollIntoView',
24
+ 'replace',
25
+ 'startTransition',
26
+ 'resetScroll',
27
+ 'viewTransition',
28
+ 'target',
29
+ 'disabled',
30
+ 'style',
31
+ 'class',
32
+ 'onClick',
33
+ 'onFocus',
34
+ 'onMouseEnter',
35
+ 'onMouseLeave',
36
+ 'onMouseOver',
37
+ 'onMouseOut',
38
+ 'onTouchStart',
39
+ 'ignoreBlocker',
40
+ ]);
41
+ // const {
42
+ // // custom props
43
+ // activeProps = () => ({ class: 'active' }),
44
+ // inactiveProps = () => ({}),
45
+ // activeOptions,
46
+ // to,
47
+ // preload: userPreload,
48
+ // preloadDelay: userPreloadDelay,
49
+ // hashScrollIntoView,
50
+ // replace,
51
+ // startTransition,
52
+ // resetScroll,
53
+ // viewTransition,
54
+ // // element props
55
+ // children,
56
+ // target,
57
+ // disabled,
58
+ // style,
59
+ // class,
60
+ // onClick,
61
+ // onFocus,
62
+ // onMouseEnter,
63
+ // onMouseLeave,
64
+ // onTouchStart,
65
+ // ignoreBlocker,
66
+ // ...rest
67
+ // } = options
68
+ const [_, propsSafeToSpread] = Solid.splitProps(rest, [
69
+ 'params',
70
+ 'search',
71
+ 'hash',
72
+ 'state',
73
+ 'mask',
74
+ 'reloadDocument',
75
+ ]);
76
+ // If this link simply reloads the current route,
77
+ // make sure it has a new key so it will trigger a data refresh
78
+ // If this `to` is a valid external URL, return
79
+ // null for LinkUtils
80
+ const type = () => {
81
+ try {
82
+ new URL(`${local.to}`);
83
+ return 'external';
84
+ }
85
+ catch { }
86
+ return 'internal';
87
+ };
88
+ const currentSearch = useRouterState({
89
+ select: (s) => s.location.searchStr,
90
+ });
91
+ // when `from` is not supplied, use the leaf route of the current matches as the `from` location
92
+ // so relative routing works as expected
93
+ const from = useMatches({
94
+ select: (matches) => options.from ?? matches[matches.length - 1]?.fullPath,
95
+ });
96
+ const _options = () => ({
97
+ ...options,
98
+ from: from(),
99
+ });
100
+ const next = Solid.createMemo(() => {
101
+ currentSearch();
102
+ return router.buildLocation(_options());
103
+ });
104
+ const preload = Solid.createMemo(() => {
105
+ if (_options().reloadDocument) {
106
+ return false;
107
+ }
108
+ return local.preload ?? router.options.defaultPreload;
109
+ });
110
+ const preloadDelay = () => local.preloadDelay ?? router.options.defaultPreloadDelay ?? 0;
111
+ const isActive = useRouterState({
112
+ select: (s) => {
113
+ if (local.activeOptions?.exact) {
114
+ const testExact = exactPathTest(s.location.pathname, next().pathname, router.basepath);
115
+ if (!testExact) {
116
+ return false;
117
+ }
118
+ }
119
+ else {
120
+ const currentPathSplit = removeTrailingSlash(s.location.pathname, router.basepath).split('/');
121
+ const nextPathSplit = removeTrailingSlash(next()?.pathname, router.basepath)?.split('/');
122
+ const pathIsFuzzyEqual = nextPathSplit?.every((d, i) => d === currentPathSplit[i]);
123
+ if (!pathIsFuzzyEqual) {
124
+ return false;
125
+ }
126
+ }
127
+ if (local.activeOptions?.includeSearch ?? true) {
128
+ const searchTest = deepEqual(s.location.search, next().search, {
129
+ partial: !local.activeOptions?.exact,
130
+ ignoreUndefined: !local.activeOptions?.explicitUndefined,
131
+ });
132
+ if (!searchTest) {
133
+ return false;
134
+ }
135
+ }
136
+ if (local.activeOptions?.includeHash) {
137
+ return s.location.hash === next().hash;
138
+ }
139
+ return true;
140
+ },
141
+ });
142
+ const doPreload = () => router.preloadRoute(_options()).catch((err) => {
143
+ console.warn(err);
144
+ console.warn(preloadWarning);
145
+ });
146
+ const preloadViewportIoCallback = (entry) => {
147
+ if (entry?.isIntersecting) {
148
+ doPreload();
149
+ }
150
+ };
151
+ const [ref, setRef] = Solid.createSignal(null);
152
+ useIntersectionObserver(ref, preloadViewportIoCallback, { rootMargin: '100px' }, { disabled: !!local.disabled || !(preload() === 'viewport') });
153
+ Solid.createEffect(() => {
154
+ if (hasRenderFetched) {
155
+ return;
156
+ }
157
+ if (!local.disabled && preload() === 'render') {
158
+ doPreload();
159
+ hasRenderFetched = true;
160
+ }
161
+ });
162
+ if (type() === 'external') {
163
+ return Solid.mergeProps(propsSafeToSpread, {
164
+ ref,
165
+ get type() {
166
+ return type();
167
+ },
168
+ get href() {
169
+ return local.to;
170
+ },
171
+ }, Solid.splitProps(local, [
172
+ 'target',
173
+ 'disabled',
174
+ 'style',
175
+ 'class',
176
+ 'onClick',
177
+ 'onFocus',
178
+ 'onMouseEnter',
179
+ 'onMouseLeave',
180
+ 'onMouseOut',
181
+ 'onMouseOver',
182
+ 'onTouchStart',
183
+ ])[0]);
184
+ }
185
+ // The click handler
186
+ const handleClick = (e) => {
187
+ if (!local.disabled &&
188
+ !isCtrlEvent(e) &&
189
+ !e.defaultPrevented &&
190
+ (!local.target || local.target === '_self') &&
191
+ e.button === 0) {
192
+ e.preventDefault();
193
+ setIsTransitioning(true);
194
+ const unsub = router.subscribe('onResolved', () => {
195
+ unsub();
196
+ setIsTransitioning(false);
197
+ });
198
+ // All is well? Navigate!
199
+ // N.B. we don't call `router.commitLocation(next) here because we want to run `validateSearch` before committing
200
+ return router.navigate({
201
+ ..._options(),
202
+ replace: local.replace,
203
+ resetScroll: local.resetScroll,
204
+ hashScrollIntoView: local.hashScrollIntoView,
205
+ startTransition: local.startTransition,
206
+ viewTransition: local.viewTransition,
207
+ ignoreBlocker: local.ignoreBlocker,
208
+ });
209
+ }
210
+ };
211
+ // The click handler
212
+ const handleFocus = (_) => {
213
+ if (local.disabled)
214
+ return;
215
+ if (preload()) {
216
+ doPreload();
217
+ }
218
+ };
219
+ const handleTouchStart = handleFocus;
220
+ const handleEnter = (e) => {
221
+ if (local.disabled)
222
+ return;
223
+ const eventTarget = (e.target || {});
224
+ if (preload()) {
225
+ if (eventTarget.preloadTimeout) {
226
+ return;
227
+ }
228
+ eventTarget.preloadTimeout = setTimeout(() => {
229
+ eventTarget.preloadTimeout = null;
230
+ doPreload();
231
+ }, preloadDelay());
232
+ }
233
+ };
234
+ const handleLeave = (e) => {
235
+ if (local.disabled)
236
+ return;
237
+ const eventTarget = (e.target || {});
238
+ if (eventTarget.preloadTimeout) {
239
+ clearTimeout(eventTarget.preloadTimeout);
240
+ eventTarget.preloadTimeout = null;
241
+ }
242
+ };
243
+ /** Call a JSX.EventHandlerUnion with the event. */
244
+ function callHandler(event, handler) {
245
+ if (handler) {
246
+ if (typeof handler === 'function') {
247
+ handler(event);
248
+ }
249
+ else {
250
+ handler[0](handler[1], event);
251
+ }
252
+ }
253
+ return event.defaultPrevented;
254
+ }
255
+ function composeEventHandlers(handlers) {
256
+ return (event) => {
257
+ for (const handler of handlers) {
258
+ callHandler(event, handler);
259
+ }
260
+ };
261
+ }
262
+ // Get the active props
263
+ const resolvedActiveProps = () => isActive() ? (functionalUpdate(local.activeProps, {}) ?? {}) : {};
264
+ // Get the inactive props
265
+ const resolvedInactiveProps = () => isActive() ? {} : functionalUpdate(local.inactiveProps, {});
266
+ const resolvedClassName = () => [local.class, resolvedActiveProps().class, resolvedInactiveProps().class]
267
+ .filter(Boolean)
268
+ .join(' ');
269
+ const resolvedStyle = () => ({
270
+ ...local.style,
271
+ ...resolvedActiveProps().style,
272
+ ...resolvedInactiveProps().style,
273
+ });
274
+ const href = Solid.createMemo(() => {
275
+ const nextLocation = next();
276
+ const maskedLocation = nextLocation?.maskedLocation;
277
+ return _options().disabled
278
+ ? undefined
279
+ : maskedLocation
280
+ ? router.history.createHref(maskedLocation.href)
281
+ : router.history.createHref(nextLocation?.href);
282
+ });
283
+ return Solid.mergeProps(propsSafeToSpread, resolvedActiveProps, resolvedInactiveProps, () => {
284
+ return {
285
+ href: href(),
286
+ ref: mergeRefs(setRef, _options().ref),
287
+ onClick: composeEventHandlers([local.onClick, handleClick]),
288
+ onFocus: composeEventHandlers([local.onFocus, handleFocus]),
289
+ onMouseEnter: composeEventHandlers([local.onMouseEnter, handleEnter]),
290
+ onMouseOver: composeEventHandlers([local.onMouseOver, handleEnter]),
291
+ onMouseLeave: composeEventHandlers([local.onMouseLeave, handleLeave]),
292
+ onMouseOut: composeEventHandlers([local.onMouseOut, handleLeave]),
293
+ onTouchStart: composeEventHandlers([
294
+ local.onTouchStart,
295
+ handleTouchStart,
296
+ ]),
297
+ disabled: !!local.disabled,
298
+ target: local.target,
299
+ ...(Object.keys(resolvedStyle).length && { style: resolvedStyle }),
300
+ ...(resolvedClassName() && { class: resolvedClassName() }),
301
+ ...(local.disabled && {
302
+ role: 'link',
303
+ 'aria-disabled': true,
304
+ }),
305
+ ...(isActive() && { 'data-status': 'active', 'aria-current': 'page' }),
306
+ ...(isTransitioning() && { 'data-transitioning': 'transitioning' }),
307
+ };
308
+ });
309
+ }
310
+ export function createLink(Comp) {
311
+ return (props) => <Link {...props} _asChild={Comp}/>;
312
+ }
313
+ export const Link = (props) => {
314
+ const [local, rest] = Solid.splitProps(props, ['_asChild', 'children']);
315
+ const [_, linkProps] = Solid.splitProps(useLinkProps(rest), ['type']);
316
+ const children = Solid.createMemo(() => {
317
+ const ch = local.children;
318
+ if (typeof ch === 'function') {
319
+ return ch({
320
+ get isActive() {
321
+ return linkProps['data-status'] === 'active';
322
+ },
323
+ isTransitioning: false,
324
+ });
325
+ }
326
+ return ch;
327
+ });
328
+ return (<Dynamic component={local._asChild ? local._asChild : 'a'} {...linkProps}>
329
+ {children()}
330
+ </Dynamic>);
331
+ };
332
+ function isCtrlEvent(e) {
333
+ return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);
334
+ }
335
+ export const linkOptions = (options) => {
336
+ return options;
337
+ };
338
+ //# sourceMappingURL=link.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.jsx","sourceRoot":"","sources":["../../src/link.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import * as Solid from 'solid-js';
2
+ export declare const matchContext: Solid.Context<Solid.Accessor<string | undefined>>;
3
+ export declare const dummyMatchContext: Solid.Context<Solid.Accessor<string | undefined>>;
@@ -0,0 +1,5 @@
1
+ import * as Solid from 'solid-js';
2
+ export const matchContext = Solid.createContext(() => undefined);
3
+ // N.B. this only exists so we can conditionally call useContext on it when we are not interested in the nearest match
4
+ export const dummyMatchContext = Solid.createContext(() => undefined);
5
+ //# sourceMappingURL=matchContext.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matchContext.jsx","sourceRoot":"","sources":["../../src/matchContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAA;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAE7C,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;AAElB,sHAAsH;AACtH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAElD,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type * as Solid from 'solid-js';
2
+ import type { NotFoundError } from '@tanstack/router-core';
3
+ export declare function CatchNotFound(props: {
4
+ fallback?: (error: NotFoundError) => Solid.JSX.Element;
5
+ onCatch?: (error: Error) => void;
6
+ children: Solid.JSX.Element;
7
+ }): Solid.JSX.Element;
8
+ export declare function DefaultGlobalNotFound(): Solid.JSX.Element;
@@ -0,0 +1,30 @@
1
+ import { isNotFound } from '@tanstack/router-core';
2
+ import { CatchBoundary } from './CatchBoundary';
3
+ import { useRouterState } from './useRouterState';
4
+ export function CatchNotFound(props) {
5
+ // TODO: Some way for the user to programmatically reset the not-found boundary?
6
+ const resetKey = useRouterState({
7
+ select: (s) => `not-found-${s.location.pathname}-${s.status}`,
8
+ });
9
+ return (<CatchBoundary getResetKey={() => resetKey()} onCatch={(error) => {
10
+ if (isNotFound(error)) {
11
+ props.onCatch?.(error);
12
+ }
13
+ else {
14
+ throw error;
15
+ }
16
+ }} errorComponent={({ error }) => {
17
+ if (isNotFound(error)) {
18
+ return props.fallback?.(error);
19
+ }
20
+ else {
21
+ throw error;
22
+ }
23
+ }}>
24
+ {props.children}
25
+ </CatchBoundary>);
26
+ }
27
+ export function DefaultGlobalNotFound() {
28
+ return <p>Not Found</p>;
29
+ }
30
+ //# sourceMappingURL=not-found.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-found.jsx","sourceRoot":"","sources":["../../src/not-found.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAIjD,MAAM,UAAU,aAAa,CAAC,KAI7B;IACC,gFAAgF;IAChF,MAAM,QAAQ,GAAG,cAAc,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE;KAC9D,CAAC,CAAA;IAEF,OAAO,CACL,CAAC,aAAa,CACZ,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAC9B,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YACjB,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CACF,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAoB,EAAE,EAAE;YAC9C,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CAEF;MAAA,CAAC,KAAK,CAAC,QAAQ,CACjB;IAAA,EAAE,aAAa,CAAC,CACjB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;AACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { AnyRoute, AnyRouter } from '@tanstack/router-core';
2
+ export declare function renderRouteNotFound(router: AnyRouter, route: AnyRoute, data: any): import("solid-js").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import warning from 'tiny-warning';
2
+ import { DefaultGlobalNotFound } from './not-found';
3
+ export function renderRouteNotFound(router, route, data) {
4
+ if (!route.options.notFoundComponent) {
5
+ if (router.options.defaultNotFoundComponent) {
6
+ return <router.options.defaultNotFoundComponent data={data}/>;
7
+ }
8
+ if (process.env.NODE_ENV === 'development') {
9
+ warning(route.options.notFoundComponent, `A notFoundError was encountered on the route with ID "${route.id}", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<div>Not Found<div>)`);
10
+ }
11
+ return <DefaultGlobalNotFound />;
12
+ }
13
+ return <route.options.notFoundComponent data={data}/>;
14
+ }
15
+ //# sourceMappingURL=renderRouteNotFound.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderRouteNotFound.jsx","sourceRoot":"","sources":["../../src/renderRouteNotFound.tsx"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAGnD,MAAM,UAAU,mBAAmB,CACjC,MAAiB,EACjB,KAAe,EACf,IAAS;IAET,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;YAC5C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAG,CAAA;QAChE,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC3C,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAC/B,yDAAyD,KAAK,CAAC,EAAE,uPAAuP,CACzT,CAAA;QACH,CAAC;QAED,OAAO,CAAC,qBAAqB,CAAC,AAAD,EAAG,CAAA;IAClC,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAG,CAAA;AACxD,CAAC"}
@@ -0,0 +1,96 @@
1
+ import { BaseRootRoute, BaseRoute, BaseRouteApi } from '@tanstack/router-core';
2
+ import type { AnyContext, AnyRoute, AnyRouter, ConstrainLiteral, ErrorComponentProps, NotFoundError, NotFoundRouteProps, RegisteredRouter, ResolveFullPath, ResolveId, ResolveParams, RootRoute as RootRouteCore, RootRouteId, RootRouteOptions, RouteConstraints, Route as RouteCore, RouteIds, RouteMask, RouteOptions, RouteTypesById, RouterCore, ToMaskOptions, UseNavigateResult } from '@tanstack/router-core';
3
+ import type { UseLoaderDataRoute } from './useLoaderData';
4
+ import type { UseMatchRoute } from './useMatch';
5
+ import type { UseLoaderDepsRoute } from './useLoaderDeps';
6
+ import type { UseParamsRoute } from './useParams';
7
+ import type { UseSearchRoute } from './useSearch';
8
+ import type * as Solid from 'solid-js';
9
+ import type { UseRouteContextRoute } from './useRouteContext';
10
+ import type { LinkComponentRoute } from './link';
11
+ declare module '@tanstack/router-core' {
12
+ interface UpdatableRouteOptionsExtensions {
13
+ component?: RouteComponent;
14
+ errorComponent?: false | null | ErrorRouteComponent;
15
+ notFoundComponent?: NotFoundRouteComponent;
16
+ pendingComponent?: RouteComponent;
17
+ }
18
+ interface RouteExtensions<in out TId extends string, in out TFullPath extends string> {
19
+ useMatch: UseMatchRoute<TId>;
20
+ useRouteContext: UseRouteContextRoute<TId>;
21
+ useSearch: UseSearchRoute<TId>;
22
+ useParams: UseParamsRoute<TId>;
23
+ useLoaderDeps: UseLoaderDepsRoute<TId>;
24
+ useLoaderData: UseLoaderDataRoute<TId>;
25
+ useNavigate: () => UseNavigateResult<TFullPath>;
26
+ Link: LinkComponentRoute<TFullPath>;
27
+ }
28
+ }
29
+ export declare function getRouteApi<const TId, TRouter extends AnyRouter = RegisteredRouter>(id: ConstrainLiteral<TId, RouteIds<TRouter['routeTree']>>): RouteApi<TId, TRouter>;
30
+ export declare class RouteApi<TId, TRouter extends AnyRouter = RegisteredRouter> extends BaseRouteApi<TId, TRouter> {
31
+ /**
32
+ * @deprecated Use the `getRouteApi` function instead.
33
+ */
34
+ constructor({ id }: {
35
+ id: TId;
36
+ });
37
+ useMatch: UseMatchRoute<TId>;
38
+ useRouteContext: UseRouteContextRoute<TId>;
39
+ useSearch: UseSearchRoute<TId>;
40
+ useParams: UseParamsRoute<TId>;
41
+ useLoaderDeps: UseLoaderDepsRoute<TId>;
42
+ useLoaderData: UseLoaderDataRoute<TId>;
43
+ useNavigate: () => UseNavigateResult<RouteTypesById<TRouter, TId>["fullPath"]>;
44
+ notFound: (opts?: NotFoundError) => NotFoundError;
45
+ Link: LinkComponentRoute<RouteTypesById<TRouter, TId>['fullPath']>;
46
+ }
47
+ export declare class Route<in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, in out TPath extends RouteConstraints['TPath'] = '/', in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, in out TCustomId extends RouteConstraints['TCustomId'] = string, in out TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, in out TSearchValidator = undefined, in out TParams = ResolveParams<TPath>, in out TRouterContext = AnyContext, in out TRouteContextFn = AnyContext, in out TBeforeLoadFn = AnyContext, in out TLoaderDeps extends Record<string, any> = {}, in out TLoaderFn = undefined, in out TChildren = unknown, in out TFileRouteTypes = unknown> extends BaseRoute<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes> implements RouteCore<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes> {
48
+ /**
49
+ * @deprecated Use the `createRoute` function instead.
50
+ */
51
+ constructor(options?: RouteOptions<TParentRoute, TId, TCustomId, TFullPath, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderFn, TRouterContext, TRouteContextFn, TBeforeLoadFn>);
52
+ useMatch: UseMatchRoute<TId>;
53
+ useRouteContext: UseRouteContextRoute<TId>;
54
+ useSearch: UseSearchRoute<TId>;
55
+ useParams: UseParamsRoute<TId>;
56
+ useLoaderDeps: UseLoaderDepsRoute<TId>;
57
+ useLoaderData: UseLoaderDataRoute<TId>;
58
+ useNavigate: () => UseNavigateResult<TFullPath>;
59
+ Link: LinkComponentRoute<TFullPath>;
60
+ }
61
+ export declare function createRoute<TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, TPath extends RouteConstraints['TPath'] = '/', TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, TCustomId extends RouteConstraints['TCustomId'] = string, TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, TSearchValidator = undefined, TParams = ResolveParams<TPath>, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined, TChildren = unknown>(options: RouteOptions<TParentRoute, TId, TCustomId, TFullPath, TPath, TSearchValidator, TParams, TLoaderDeps, TLoaderFn, AnyContext, TRouteContextFn, TBeforeLoadFn>): Route<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, AnyContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, unknown>;
62
+ export type AnyRootRoute = RootRoute<any, any, any, any, any, any, any, any>;
63
+ export declare function createRootRouteWithContext<TRouterContext extends {}>(): <TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TSearchValidator = undefined, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined>(options?: RootRouteOptions<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn>) => RootRoute<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, unknown, unknown>;
64
+ /**
65
+ * @deprecated Use the `createRootRouteWithContext` function instead.
66
+ */
67
+ export declare const rootRouteWithContext: typeof createRootRouteWithContext;
68
+ export declare class RootRoute<in out TSearchValidator = undefined, in out TRouterContext = {}, in out TRouteContextFn = AnyContext, in out TBeforeLoadFn = AnyContext, in out TLoaderDeps extends Record<string, any> = {}, in out TLoaderFn = undefined, in out TChildren = unknown, in out TFileRouteTypes = unknown> extends BaseRootRoute<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes> implements RootRouteCore<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren, TFileRouteTypes> {
69
+ /**
70
+ * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.
71
+ */
72
+ constructor(options?: RootRouteOptions<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn>);
73
+ useMatch: UseMatchRoute<RootRouteId>;
74
+ useRouteContext: UseRouteContextRoute<RootRouteId>;
75
+ useSearch: UseSearchRoute<RootRouteId>;
76
+ useParams: UseParamsRoute<RootRouteId>;
77
+ useLoaderDeps: UseLoaderDepsRoute<RootRouteId>;
78
+ useLoaderData: UseLoaderDataRoute<RootRouteId>;
79
+ useNavigate: () => UseNavigateResult<"/">;
80
+ Link: LinkComponentRoute<'/'>;
81
+ }
82
+ export declare function createRouteMask<TRouteTree extends AnyRoute, TFrom extends string, TTo extends string>(opts: {
83
+ routeTree: TRouteTree;
84
+ } & ToMaskOptions<RouterCore<TRouteTree, 'never', false>, TFrom, TTo>): RouteMask<TRouteTree>;
85
+ export type SolidNode = Solid.JSX.Element;
86
+ export type SyncRouteComponent<TProps> = (props: TProps) => Solid.JSX.Element;
87
+ export type AsyncRouteComponent<TProps> = SyncRouteComponent<TProps> & {
88
+ preload?: () => Promise<void>;
89
+ };
90
+ export type RouteComponent<TProps = any> = AsyncRouteComponent<TProps>;
91
+ export type ErrorRouteComponent = RouteComponent<ErrorComponentProps>;
92
+ export type NotFoundRouteComponent = SyncRouteComponent<NotFoundRouteProps>;
93
+ export declare class NotFoundRoute<TParentRoute extends AnyRootRoute, TRouterContext = AnyContext, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TSearchValidator = undefined, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined, TChildren = unknown> extends Route<TParentRoute, '/404', '/404', '404', '404', TSearchValidator, {}, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, TChildren> {
94
+ constructor(options: Omit<RouteOptions<TParentRoute, string, string, string, string, TSearchValidator, {}, TLoaderDeps, TLoaderFn, TRouterContext, TRouteContextFn, TBeforeLoadFn>, 'caseSensitive' | 'parseParams' | 'stringifyParams' | 'path' | 'id' | 'params'>);
95
+ }
96
+ export declare function createRootRoute<TSearchValidator = undefined, TRouterContext = {}, TRouteContextFn = AnyContext, TBeforeLoadFn = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderFn = undefined>(options?: RootRouteOptions<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn>): RootRoute<TSearchValidator, TRouterContext, TRouteContextFn, TBeforeLoadFn, TLoaderDeps, TLoaderFn, unknown, unknown>;