@tanstack/solid-router 1.121.16 → 1.121.17

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/package.json +3 -3
  2. package/dist/cjs/Asset.cjs +0 -49
  3. package/dist/cjs/Asset.cjs.map +0 -1
  4. package/dist/cjs/Asset.d.cts +0 -2
  5. package/dist/cjs/CatchBoundary.cjs +0 -92
  6. package/dist/cjs/CatchBoundary.cjs.map +0 -1
  7. package/dist/cjs/CatchBoundary.d.cts +0 -11
  8. package/dist/cjs/ClientOnly.cjs +0 -36
  9. package/dist/cjs/ClientOnly.cjs.map +0 -1
  10. package/dist/cjs/ClientOnly.d.cts +0 -49
  11. package/dist/cjs/HeadContent.cjs +0 -146
  12. package/dist/cjs/HeadContent.cjs.map +0 -1
  13. package/dist/cjs/HeadContent.d.cts +0 -8
  14. package/dist/cjs/Match.cjs +0 -359
  15. package/dist/cjs/Match.cjs.map +0 -1
  16. package/dist/cjs/Match.d.cts +0 -8
  17. package/dist/cjs/Matches.cjs +0 -152
  18. package/dist/cjs/Matches.cjs.map +0 -1
  19. package/dist/cjs/Matches.d.cts +0 -24
  20. package/dist/cjs/RouterProvider.cjs +0 -45
  21. package/dist/cjs/RouterProvider.cjs.map +0 -1
  22. package/dist/cjs/RouterProvider.d.cts +0 -10
  23. package/dist/cjs/SafeFragment.cjs +0 -8
  24. package/dist/cjs/SafeFragment.cjs.map +0 -1
  25. package/dist/cjs/SafeFragment.d.cts +0 -1
  26. package/dist/cjs/ScriptOnce.cjs +0 -23
  27. package/dist/cjs/ScriptOnce.cjs.map +0 -1
  28. package/dist/cjs/ScriptOnce.d.cts +0 -5
  29. package/dist/cjs/Scripts.cjs +0 -48
  30. package/dist/cjs/Scripts.cjs.map +0 -1
  31. package/dist/cjs/Scripts.d.cts +0 -1
  32. package/dist/cjs/ScrollRestoration.cjs +0 -37
  33. package/dist/cjs/ScrollRestoration.cjs.map +0 -1
  34. package/dist/cjs/ScrollRestoration.d.cts +0 -14
  35. package/dist/cjs/Transitioner.cjs +0 -124
  36. package/dist/cjs/Transitioner.cjs.map +0 -1
  37. package/dist/cjs/Transitioner.d.cts +0 -1
  38. package/dist/cjs/awaited.cjs +0 -49
  39. package/dist/cjs/awaited.cjs.map +0 -1
  40. package/dist/cjs/awaited.d.cts +0 -11
  41. package/dist/cjs/fileRoute.cjs +0 -103
  42. package/dist/cjs/fileRoute.cjs.map +0 -1
  43. package/dist/cjs/fileRoute.d.cts +0 -54
  44. package/dist/cjs/history.d.cts +0 -8
  45. package/dist/cjs/index.cjs +0 -289
  46. package/dist/cjs/index.cjs.map +0 -1
  47. package/dist/cjs/index.d.cts +0 -52
  48. package/dist/cjs/lazyRouteComponent.cjs +0 -73
  49. package/dist/cjs/lazyRouteComponent.cjs.map +0 -1
  50. package/dist/cjs/lazyRouteComponent.d.cts +0 -2
  51. package/dist/cjs/link.cjs +0 -287
  52. package/dist/cjs/link.cjs.map +0 -1
  53. package/dist/cjs/link.d.cts +0 -44
  54. package/dist/cjs/matchContext.cjs +0 -25
  55. package/dist/cjs/matchContext.cjs.map +0 -1
  56. package/dist/cjs/matchContext.d.cts +0 -3
  57. package/dist/cjs/not-found.cjs +0 -42
  58. package/dist/cjs/not-found.cjs.map +0 -1
  59. package/dist/cjs/not-found.d.cts +0 -8
  60. package/dist/cjs/renderRouteNotFound.cjs +0 -23
  61. package/dist/cjs/renderRouteNotFound.cjs.map +0 -1
  62. package/dist/cjs/renderRouteNotFound.d.cts +0 -2
  63. package/dist/cjs/route.cjs +0 -236
  64. package/dist/cjs/route.cjs.map +0 -1
  65. package/dist/cjs/route.d.cts +0 -95
  66. package/dist/cjs/router.cjs +0 -22
  67. package/dist/cjs/router.cjs.map +0 -1
  68. package/dist/cjs/router.d.cts +0 -69
  69. package/dist/cjs/routerContext.cjs +0 -33
  70. package/dist/cjs/routerContext.cjs.map +0 -1
  71. package/dist/cjs/routerContext.d.cts +0 -8
  72. package/dist/cjs/scroll-restoration.cjs +0 -23
  73. package/dist/cjs/scroll-restoration.cjs.map +0 -1
  74. package/dist/cjs/scroll-restoration.d.cts +0 -1
  75. package/dist/cjs/typePrimitives.d.cts +0 -10
  76. package/dist/cjs/useBlocker.cjs +0 -171
  77. package/dist/cjs/useBlocker.cjs.map +0 -1
  78. package/dist/cjs/useBlocker.d.cts +0 -67
  79. package/dist/cjs/useCanGoBack.cjs +0 -8
  80. package/dist/cjs/useCanGoBack.cjs.map +0 -1
  81. package/dist/cjs/useCanGoBack.d.cts +0 -1
  82. package/dist/cjs/useLoaderData.cjs +0 -14
  83. package/dist/cjs/useLoaderData.cjs.map +0 -1
  84. package/dist/cjs/useLoaderData.d.cts +0 -8
  85. package/dist/cjs/useLoaderDeps.cjs +0 -17
  86. package/dist/cjs/useLoaderDeps.cjs.map +0 -1
  87. package/dist/cjs/useLoaderDeps.d.cts +0 -7
  88. package/dist/cjs/useLocation.cjs +0 -10
  89. package/dist/cjs/useLocation.cjs.map +0 -1
  90. package/dist/cjs/useLocation.d.cts +0 -7
  91. package/dist/cjs/useMatch.cjs +0 -39
  92. package/dist/cjs/useMatch.cjs.map +0 -1
  93. package/dist/cjs/useMatch.d.cts +0 -10
  94. package/dist/cjs/useNavigate.cjs +0 -46
  95. package/dist/cjs/useNavigate.cjs.map +0 -1
  96. package/dist/cjs/useNavigate.d.cts +0 -5
  97. package/dist/cjs/useParams.cjs +0 -15
  98. package/dist/cjs/useParams.cjs.map +0 -1
  99. package/dist/cjs/useParams.d.cts +0 -9
  100. package/dist/cjs/useRouteContext.cjs +0 -11
  101. package/dist/cjs/useRouteContext.cjs.map +0 -1
  102. package/dist/cjs/useRouteContext.d.cts +0 -4
  103. package/dist/cjs/useRouter.cjs +0 -29
  104. package/dist/cjs/useRouter.cjs.map +0 -1
  105. package/dist/cjs/useRouter.d.cts +0 -4
  106. package/dist/cjs/useRouterState.cjs +0 -16
  107. package/dist/cjs/useRouterState.cjs.map +0 -1
  108. package/dist/cjs/useRouterState.d.cts +0 -8
  109. package/dist/cjs/useSearch.cjs +0 -15
  110. package/dist/cjs/useSearch.cjs.map +0 -1
  111. package/dist/cjs/useSearch.d.cts +0 -9
  112. package/dist/cjs/utils.cjs +0 -58
  113. package/dist/cjs/utils.cjs.map +0 -1
  114. package/dist/cjs/utils.d.cts +0 -34
  115. package/dist/esm/Asset.d.ts +0 -2
  116. package/dist/esm/Asset.js +0 -49
  117. package/dist/esm/Asset.js.map +0 -1
  118. package/dist/esm/CatchBoundary.d.ts +0 -11
  119. package/dist/esm/CatchBoundary.js +0 -75
  120. package/dist/esm/CatchBoundary.js.map +0 -1
  121. package/dist/esm/ClientOnly.d.ts +0 -49
  122. package/dist/esm/ClientOnly.js +0 -19
  123. package/dist/esm/ClientOnly.js.map +0 -1
  124. package/dist/esm/HeadContent.d.ts +0 -8
  125. package/dist/esm/HeadContent.js +0 -129
  126. package/dist/esm/HeadContent.js.map +0 -1
  127. package/dist/esm/Match.d.ts +0 -8
  128. package/dist/esm/Match.js +0 -342
  129. package/dist/esm/Match.js.map +0 -1
  130. package/dist/esm/Matches.d.ts +0 -24
  131. package/dist/esm/Matches.js +0 -135
  132. package/dist/esm/Matches.js.map +0 -1
  133. package/dist/esm/RouterProvider.d.ts +0 -10
  134. package/dist/esm/RouterProvider.js +0 -45
  135. package/dist/esm/RouterProvider.js.map +0 -1
  136. package/dist/esm/SafeFragment.d.ts +0 -1
  137. package/dist/esm/SafeFragment.js +0 -8
  138. package/dist/esm/SafeFragment.js.map +0 -1
  139. package/dist/esm/ScriptOnce.d.ts +0 -5
  140. package/dist/esm/ScriptOnce.js +0 -23
  141. package/dist/esm/ScriptOnce.js.map +0 -1
  142. package/dist/esm/Scripts.d.ts +0 -1
  143. package/dist/esm/Scripts.js +0 -48
  144. package/dist/esm/Scripts.js.map +0 -1
  145. package/dist/esm/ScrollRestoration.d.ts +0 -14
  146. package/dist/esm/ScrollRestoration.js +0 -37
  147. package/dist/esm/ScrollRestoration.js.map +0 -1
  148. package/dist/esm/Transitioner.d.ts +0 -1
  149. package/dist/esm/Transitioner.js +0 -107
  150. package/dist/esm/Transitioner.js.map +0 -1
  151. package/dist/esm/awaited.d.ts +0 -11
  152. package/dist/esm/awaited.js +0 -32
  153. package/dist/esm/awaited.js.map +0 -1
  154. package/dist/esm/fileRoute.d.ts +0 -54
  155. package/dist/esm/fileRoute.js +0 -103
  156. package/dist/esm/fileRoute.js.map +0 -1
  157. package/dist/esm/history.d.ts +0 -8
  158. package/dist/esm/index.d.ts +0 -52
  159. package/dist/esm/index.js +0 -151
  160. package/dist/esm/index.js.map +0 -1
  161. package/dist/esm/lazyRouteComponent.d.ts +0 -2
  162. package/dist/esm/lazyRouteComponent.js +0 -73
  163. package/dist/esm/lazyRouteComponent.js.map +0 -1
  164. package/dist/esm/link.d.ts +0 -44
  165. package/dist/esm/link.js +0 -270
  166. package/dist/esm/link.js.map +0 -1
  167. package/dist/esm/matchContext.d.ts +0 -3
  168. package/dist/esm/matchContext.js +0 -8
  169. package/dist/esm/matchContext.js.map +0 -1
  170. package/dist/esm/not-found.d.ts +0 -8
  171. package/dist/esm/not-found.js +0 -42
  172. package/dist/esm/not-found.js.map +0 -1
  173. package/dist/esm/renderRouteNotFound.d.ts +0 -2
  174. package/dist/esm/renderRouteNotFound.js +0 -23
  175. package/dist/esm/renderRouteNotFound.js.map +0 -1
  176. package/dist/esm/route.d.ts +0 -95
  177. package/dist/esm/route.js +0 -236
  178. package/dist/esm/route.js.map +0 -1
  179. package/dist/esm/router.d.ts +0 -69
  180. package/dist/esm/router.js +0 -22
  181. package/dist/esm/router.js.map +0 -1
  182. package/dist/esm/routerContext.d.ts +0 -8
  183. package/dist/esm/routerContext.js +0 -16
  184. package/dist/esm/routerContext.js.map +0 -1
  185. package/dist/esm/scroll-restoration.d.ts +0 -1
  186. package/dist/esm/scroll-restoration.js +0 -23
  187. package/dist/esm/scroll-restoration.js.map +0 -1
  188. package/dist/esm/typePrimitives.d.ts +0 -10
  189. package/dist/esm/useBlocker.d.ts +0 -67
  190. package/dist/esm/useBlocker.js +0 -154
  191. package/dist/esm/useBlocker.js.map +0 -1
  192. package/dist/esm/useCanGoBack.d.ts +0 -1
  193. package/dist/esm/useCanGoBack.js +0 -8
  194. package/dist/esm/useCanGoBack.js.map +0 -1
  195. package/dist/esm/useLoaderData.d.ts +0 -8
  196. package/dist/esm/useLoaderData.js +0 -14
  197. package/dist/esm/useLoaderData.js.map +0 -1
  198. package/dist/esm/useLoaderDeps.d.ts +0 -7
  199. package/dist/esm/useLoaderDeps.js +0 -17
  200. package/dist/esm/useLoaderDeps.js.map +0 -1
  201. package/dist/esm/useLocation.d.ts +0 -7
  202. package/dist/esm/useLocation.js +0 -10
  203. package/dist/esm/useLocation.js.map +0 -1
  204. package/dist/esm/useMatch.d.ts +0 -10
  205. package/dist/esm/useMatch.js +0 -22
  206. package/dist/esm/useMatch.js.map +0 -1
  207. package/dist/esm/useNavigate.d.ts +0 -5
  208. package/dist/esm/useNavigate.js +0 -29
  209. package/dist/esm/useNavigate.js.map +0 -1
  210. package/dist/esm/useParams.d.ts +0 -9
  211. package/dist/esm/useParams.js +0 -15
  212. package/dist/esm/useParams.js.map +0 -1
  213. package/dist/esm/useRouteContext.d.ts +0 -4
  214. package/dist/esm/useRouteContext.js +0 -11
  215. package/dist/esm/useRouteContext.js.map +0 -1
  216. package/dist/esm/useRouter.d.ts +0 -4
  217. package/dist/esm/useRouter.js +0 -12
  218. package/dist/esm/useRouter.js.map +0 -1
  219. package/dist/esm/useRouterState.d.ts +0 -8
  220. package/dist/esm/useRouterState.js +0 -16
  221. package/dist/esm/useRouterState.js.map +0 -1
  222. package/dist/esm/useSearch.d.ts +0 -9
  223. package/dist/esm/useSearch.js +0 -15
  224. package/dist/esm/useSearch.js.map +0 -1
  225. package/dist/esm/utils.d.ts +0 -34
  226. package/dist/esm/utils.js +0 -41
  227. package/dist/esm/utils.js.map +0 -1
  228. package/dist/source/Asset.d.ts +0 -2
  229. package/dist/source/Asset.jsx +0 -23
  230. package/dist/source/Asset.jsx.map +0 -1
  231. package/dist/source/CatchBoundary.d.ts +0 -11
  232. package/dist/source/CatchBoundary.jsx +0 -43
  233. package/dist/source/CatchBoundary.jsx.map +0 -1
  234. package/dist/source/ClientOnly.d.ts +0 -49
  235. package/dist/source/ClientOnly.jsx +0 -51
  236. package/dist/source/ClientOnly.jsx.map +0 -1
  237. package/dist/source/HeadContent.d.ts +0 -8
  238. package/dist/source/HeadContent.jsx +0 -143
  239. package/dist/source/HeadContent.jsx.map +0 -1
  240. package/dist/source/Match.d.ts +0 -8
  241. package/dist/source/Match.jsx +0 -261
  242. package/dist/source/Match.jsx.map +0 -1
  243. package/dist/source/Matches.d.ts +0 -24
  244. package/dist/source/Matches.jsx +0 -104
  245. package/dist/source/Matches.jsx.map +0 -1
  246. package/dist/source/RouterProvider.d.ts +0 -10
  247. package/dist/source/RouterProvider.jsx +0 -27
  248. package/dist/source/RouterProvider.jsx.map +0 -1
  249. package/dist/source/SafeFragment.d.ts +0 -1
  250. package/dist/source/SafeFragment.jsx +0 -4
  251. package/dist/source/SafeFragment.jsx.map +0 -1
  252. package/dist/source/ScriptOnce.d.ts +0 -5
  253. package/dist/source/ScriptOnce.jsx +0 -17
  254. package/dist/source/ScriptOnce.jsx.map +0 -1
  255. package/dist/source/Scripts.d.ts +0 -1
  256. package/dist/source/Scripts.jsx +0 -49
  257. package/dist/source/Scripts.jsx.map +0 -1
  258. package/dist/source/ScrollRestoration.d.ts +0 -14
  259. package/dist/source/ScrollRestoration.jsx +0 -37
  260. package/dist/source/ScrollRestoration.jsx.map +0 -1
  261. package/dist/source/Transitioner.d.ts +0 -1
  262. package/dist/source/Transitioner.jsx +0 -102
  263. package/dist/source/Transitioner.jsx.map +0 -1
  264. package/dist/source/awaited.d.ts +0 -11
  265. package/dist/source/awaited.jsx +0 -19
  266. package/dist/source/awaited.jsx.map +0 -1
  267. package/dist/source/fileRoute.d.ts +0 -54
  268. package/dist/source/fileRoute.js +0 -98
  269. package/dist/source/fileRoute.js.map +0 -1
  270. package/dist/source/history.d.ts +0 -8
  271. package/dist/source/history.js +0 -2
  272. package/dist/source/history.js.map +0 -1
  273. package/dist/source/index.d.ts +0 -52
  274. package/dist/source/index.jsx +0 -43
  275. package/dist/source/index.jsx.map +0 -1
  276. package/dist/source/lazyRouteComponent.d.ts +0 -2
  277. package/dist/source/lazyRouteComponent.jsx +0 -83
  278. package/dist/source/lazyRouteComponent.jsx.map +0 -1
  279. package/dist/source/link.d.ts +0 -44
  280. package/dist/source/link.jsx +0 -338
  281. package/dist/source/link.jsx.map +0 -1
  282. package/dist/source/matchContext.d.ts +0 -3
  283. package/dist/source/matchContext.jsx +0 -5
  284. package/dist/source/matchContext.jsx.map +0 -1
  285. package/dist/source/not-found.d.ts +0 -8
  286. package/dist/source/not-found.jsx +0 -30
  287. package/dist/source/not-found.jsx.map +0 -1
  288. package/dist/source/renderRouteNotFound.d.ts +0 -2
  289. package/dist/source/renderRouteNotFound.jsx +0 -15
  290. package/dist/source/renderRouteNotFound.jsx.map +0 -1
  291. package/dist/source/route.d.ts +0 -96
  292. package/dist/source/route.jsx +0 -179
  293. package/dist/source/route.jsx.map +0 -1
  294. package/dist/source/router.d.ts +0 -70
  295. package/dist/source/router.js +0 -21
  296. package/dist/source/router.js.map +0 -1
  297. package/dist/source/routerContext.d.ts +0 -8
  298. package/dist/source/routerContext.jsx +0 -13
  299. package/dist/source/routerContext.jsx.map +0 -1
  300. package/dist/source/scroll-restoration.d.ts +0 -1
  301. package/dist/source/scroll-restoration.jsx +0 -16
  302. package/dist/source/scroll-restoration.jsx.map +0 -1
  303. package/dist/source/typePrimitives.d.ts +0 -10
  304. package/dist/source/typePrimitives.js +0 -2
  305. package/dist/source/typePrimitives.js.map +0 -1
  306. package/dist/source/useBlocker.d.ts +0 -67
  307. package/dist/source/useBlocker.jsx +0 -153
  308. package/dist/source/useBlocker.jsx.map +0 -1
  309. package/dist/source/useCanGoBack.d.ts +0 -1
  310. package/dist/source/useCanGoBack.js +0 -5
  311. package/dist/source/useCanGoBack.js.map +0 -1
  312. package/dist/source/useLoaderData.d.ts +0 -8
  313. package/dist/source/useLoaderData.jsx +0 -11
  314. package/dist/source/useLoaderData.jsx.map +0 -1
  315. package/dist/source/useLoaderDeps.d.ts +0 -7
  316. package/dist/source/useLoaderDeps.jsx +0 -11
  317. package/dist/source/useLoaderDeps.jsx.map +0 -1
  318. package/dist/source/useLocation.d.ts +0 -7
  319. package/dist/source/useLocation.jsx +0 -7
  320. package/dist/source/useLocation.jsx.map +0 -1
  321. package/dist/source/useMatch.d.ts +0 -10
  322. package/dist/source/useMatch.jsx +0 -19
  323. package/dist/source/useMatch.jsx.map +0 -1
  324. package/dist/source/useNavigate.d.ts +0 -5
  325. package/dist/source/useNavigate.jsx +0 -18
  326. package/dist/source/useNavigate.jsx.map +0 -1
  327. package/dist/source/useParams.d.ts +0 -9
  328. package/dist/source/useParams.jsx +0 -12
  329. package/dist/source/useParams.jsx.map +0 -1
  330. package/dist/source/useRouteContext.d.ts +0 -4
  331. package/dist/source/useRouteContext.js +0 -8
  332. package/dist/source/useRouteContext.js.map +0 -1
  333. package/dist/source/useRouter.d.ts +0 -4
  334. package/dist/source/useRouter.jsx +0 -9
  335. package/dist/source/useRouter.jsx.map +0 -1
  336. package/dist/source/useRouterState.d.ts +0 -8
  337. package/dist/source/useRouterState.jsx +0 -14
  338. package/dist/source/useRouterState.jsx.map +0 -1
  339. package/dist/source/useSearch.d.ts +0 -9
  340. package/dist/source/useSearch.jsx +0 -12
  341. package/dist/source/useSearch.jsx.map +0 -1
  342. package/dist/source/utils.d.ts +0 -34
  343. package/dist/source/utils.js +0 -59
  344. package/dist/source/utils.js.map +0 -1
package/dist/cjs/link.cjs DELETED
@@ -1,287 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const web = require("solid-js/web");
4
- const Solid = require("solid-js");
5
- const refs = require("@solid-primitives/refs");
6
- const routerCore = require("@tanstack/router-core");
7
- const useRouterState = require("./useRouterState.cjs");
8
- const useRouter = require("./useRouter.cjs");
9
- const utils = require("./utils.cjs");
10
- const Matches = require("./Matches.cjs");
11
- function _interopNamespaceDefault(e) {
12
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
13
- if (e) {
14
- for (const k in e) {
15
- if (k !== "default") {
16
- const d = Object.getOwnPropertyDescriptor(e, k);
17
- Object.defineProperty(n, k, d.get ? d : {
18
- enumerable: true,
19
- get: () => e[k]
20
- });
21
- }
22
- }
23
- }
24
- n.default = e;
25
- return Object.freeze(n);
26
- }
27
- const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid);
28
- function useLinkProps(options) {
29
- const router = useRouter.useRouter();
30
- const [isTransitioning, setIsTransitioning] = Solid__namespace.createSignal(false);
31
- let hasRenderFetched = false;
32
- const [local, rest] = Solid__namespace.splitProps(Solid__namespace.mergeProps({
33
- activeProps: () => ({
34
- class: "active"
35
- }),
36
- inactiveProps: () => ({})
37
- }, options), ["activeProps", "inactiveProps", "activeOptions", "to", "preload", "preloadDelay", "hashScrollIntoView", "replace", "startTransition", "resetScroll", "viewTransition", "target", "disabled", "style", "class", "onClick", "onFocus", "onMouseEnter", "onMouseLeave", "onMouseOver", "onMouseOut", "onTouchStart", "ignoreBlocker"]);
38
- const [_, propsSafeToSpread] = Solid__namespace.splitProps(rest, ["params", "search", "hash", "state", "mask", "reloadDocument"]);
39
- const type = () => {
40
- try {
41
- new URL(`${local.to}`);
42
- return "external";
43
- } catch {
44
- }
45
- return "internal";
46
- };
47
- const currentSearch = useRouterState.useRouterState({
48
- select: (s) => s.location.searchStr
49
- });
50
- const from = Matches.useMatches({
51
- select: (matches) => {
52
- var _a;
53
- return options.from ?? ((_a = matches[matches.length - 1]) == null ? void 0 : _a.fullPath);
54
- }
55
- });
56
- const _options = () => ({
57
- ...options,
58
- from: from()
59
- });
60
- const next = Solid__namespace.createMemo(() => {
61
- currentSearch();
62
- return router.buildLocation(_options());
63
- });
64
- const preload = Solid__namespace.createMemo(() => {
65
- if (_options().reloadDocument) {
66
- return false;
67
- }
68
- return local.preload ?? router.options.defaultPreload;
69
- });
70
- const preloadDelay = () => local.preloadDelay ?? router.options.defaultPreloadDelay ?? 0;
71
- const isActive = useRouterState.useRouterState({
72
- select: (s) => {
73
- var _a, _b, _c, _d, _e, _f, _g;
74
- if ((_a = local.activeOptions) == null ? void 0 : _a.exact) {
75
- const testExact = routerCore.exactPathTest(s.location.pathname, next().pathname, router.basepath);
76
- if (!testExact) {
77
- return false;
78
- }
79
- } else {
80
- const currentPathSplit = routerCore.removeTrailingSlash(s.location.pathname, router.basepath).split("/");
81
- const nextPathSplit = (_c = routerCore.removeTrailingSlash((_b = next()) == null ? void 0 : _b.pathname, router.basepath)) == null ? void 0 : _c.split("/");
82
- const pathIsFuzzyEqual = nextPathSplit == null ? void 0 : nextPathSplit.every((d, i) => d === currentPathSplit[i]);
83
- if (!pathIsFuzzyEqual) {
84
- return false;
85
- }
86
- }
87
- if (((_d = local.activeOptions) == null ? void 0 : _d.includeSearch) ?? true) {
88
- const searchTest = routerCore.deepEqual(s.location.search, next().search, {
89
- partial: !((_e = local.activeOptions) == null ? void 0 : _e.exact),
90
- ignoreUndefined: !((_f = local.activeOptions) == null ? void 0 : _f.explicitUndefined)
91
- });
92
- if (!searchTest) {
93
- return false;
94
- }
95
- }
96
- if ((_g = local.activeOptions) == null ? void 0 : _g.includeHash) {
97
- return s.location.hash === next().hash;
98
- }
99
- return true;
100
- }
101
- });
102
- const doPreload = () => router.preloadRoute(_options()).catch((err) => {
103
- console.warn(err);
104
- console.warn(routerCore.preloadWarning);
105
- });
106
- const preloadViewportIoCallback = (entry) => {
107
- if (entry == null ? void 0 : entry.isIntersecting) {
108
- doPreload();
109
- }
110
- };
111
- const [ref, setRef] = Solid__namespace.createSignal(null);
112
- utils.useIntersectionObserver(ref, preloadViewportIoCallback, {
113
- rootMargin: "100px"
114
- }, {
115
- disabled: !!local.disabled || !(preload() === "viewport")
116
- });
117
- Solid__namespace.createEffect(() => {
118
- if (hasRenderFetched) {
119
- return;
120
- }
121
- if (!local.disabled && preload() === "render") {
122
- doPreload();
123
- hasRenderFetched = true;
124
- }
125
- });
126
- if (type() === "external") {
127
- return Solid__namespace.mergeProps(propsSafeToSpread, {
128
- ref,
129
- get type() {
130
- return type();
131
- },
132
- get href() {
133
- return local.to;
134
- }
135
- }, Solid__namespace.splitProps(local, ["target", "disabled", "style", "class", "onClick", "onFocus", "onMouseEnter", "onMouseLeave", "onMouseOut", "onMouseOver", "onTouchStart"])[0]);
136
- }
137
- const handleClick = (e) => {
138
- if (!local.disabled && !isCtrlEvent(e) && !e.defaultPrevented && (!local.target || local.target === "_self") && e.button === 0) {
139
- e.preventDefault();
140
- setIsTransitioning(true);
141
- const unsub = router.subscribe("onResolved", () => {
142
- unsub();
143
- setIsTransitioning(false);
144
- });
145
- return router.navigate({
146
- ..._options(),
147
- replace: local.replace,
148
- resetScroll: local.resetScroll,
149
- hashScrollIntoView: local.hashScrollIntoView,
150
- startTransition: local.startTransition,
151
- viewTransition: local.viewTransition,
152
- ignoreBlocker: local.ignoreBlocker
153
- });
154
- }
155
- };
156
- const handleFocus = (_2) => {
157
- if (local.disabled) return;
158
- if (preload()) {
159
- doPreload();
160
- }
161
- };
162
- const handleTouchStart = handleFocus;
163
- const handleEnter = (e) => {
164
- if (local.disabled) return;
165
- const eventTarget = e.target || {};
166
- if (preload()) {
167
- if (eventTarget.preloadTimeout) {
168
- return;
169
- }
170
- eventTarget.preloadTimeout = setTimeout(() => {
171
- eventTarget.preloadTimeout = null;
172
- doPreload();
173
- }, preloadDelay());
174
- }
175
- };
176
- const handleLeave = (e) => {
177
- if (local.disabled) return;
178
- const eventTarget = e.target || {};
179
- if (eventTarget.preloadTimeout) {
180
- clearTimeout(eventTarget.preloadTimeout);
181
- eventTarget.preloadTimeout = null;
182
- }
183
- };
184
- function callHandler(event, handler) {
185
- if (handler) {
186
- if (typeof handler === "function") {
187
- handler(event);
188
- } else {
189
- handler[0](handler[1], event);
190
- }
191
- }
192
- return event.defaultPrevented;
193
- }
194
- function composeEventHandlers(handlers) {
195
- return (event) => {
196
- for (const handler of handlers) {
197
- callHandler(event, handler);
198
- }
199
- };
200
- }
201
- const resolvedActiveProps = () => isActive() ? routerCore.functionalUpdate(local.activeProps, {}) ?? {} : {};
202
- const resolvedInactiveProps = () => isActive() ? {} : routerCore.functionalUpdate(local.inactiveProps, {});
203
- const resolvedClassName = () => [local.class, resolvedActiveProps().class, resolvedInactiveProps().class].filter(Boolean).join(" ");
204
- const resolvedStyle = () => ({
205
- ...local.style,
206
- ...resolvedActiveProps().style,
207
- ...resolvedInactiveProps().style
208
- });
209
- const href = Solid__namespace.createMemo(() => {
210
- const nextLocation = next();
211
- const maskedLocation = nextLocation == null ? void 0 : nextLocation.maskedLocation;
212
- return _options().disabled ? void 0 : maskedLocation ? router.history.createHref(maskedLocation.href) : router.history.createHref(nextLocation == null ? void 0 : nextLocation.href);
213
- });
214
- return Solid__namespace.mergeProps(propsSafeToSpread, resolvedActiveProps, resolvedInactiveProps, () => {
215
- return {
216
- href: href(),
217
- ref: refs.mergeRefs(setRef, _options().ref),
218
- onClick: composeEventHandlers([local.onClick, handleClick]),
219
- onFocus: composeEventHandlers([local.onFocus, handleFocus]),
220
- onMouseEnter: composeEventHandlers([local.onMouseEnter, handleEnter]),
221
- onMouseOver: composeEventHandlers([local.onMouseOver, handleEnter]),
222
- onMouseLeave: composeEventHandlers([local.onMouseLeave, handleLeave]),
223
- onMouseOut: composeEventHandlers([local.onMouseOut, handleLeave]),
224
- onTouchStart: composeEventHandlers([local.onTouchStart, handleTouchStart]),
225
- disabled: !!local.disabled,
226
- target: local.target,
227
- ...Object.keys(resolvedStyle).length && {
228
- style: resolvedStyle
229
- },
230
- ...resolvedClassName() && {
231
- class: resolvedClassName()
232
- },
233
- ...local.disabled && {
234
- role: "link",
235
- "aria-disabled": true
236
- },
237
- ...isActive() && {
238
- "data-status": "active",
239
- "aria-current": "page"
240
- },
241
- ...isTransitioning() && {
242
- "data-transitioning": "transitioning"
243
- }
244
- };
245
- });
246
- }
247
- function createLink(Comp) {
248
- return (props) => web.createComponent(Link, web.mergeProps(props, {
249
- _asChild: Comp
250
- }));
251
- }
252
- const Link = (props) => {
253
- const [local, rest] = Solid__namespace.splitProps(props, ["_asChild", "children"]);
254
- const [_, linkProps] = Solid__namespace.splitProps(useLinkProps(rest), ["type"]);
255
- const children = Solid__namespace.createMemo(() => {
256
- const ch = local.children;
257
- if (typeof ch === "function") {
258
- return ch({
259
- get isActive() {
260
- return linkProps["data-status"] === "active";
261
- },
262
- isTransitioning: false
263
- });
264
- }
265
- return ch;
266
- });
267
- return web.createComponent(web.Dynamic, web.mergeProps({
268
- get component() {
269
- return local._asChild ? local._asChild : "a";
270
- }
271
- }, linkProps, {
272
- get children() {
273
- return children();
274
- }
275
- }));
276
- };
277
- function isCtrlEvent(e) {
278
- return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);
279
- }
280
- const linkOptions = (options) => {
281
- return options;
282
- };
283
- exports.Link = Link;
284
- exports.createLink = createLink;
285
- exports.linkOptions = linkOptions;
286
- exports.useLinkProps = useLinkProps;
287
- //# sourceMappingURL=link.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.cjs","sources":["../../src/link.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\n\nimport { mergeRefs } from '@solid-primitives/refs'\n\nimport {\n deepEqual,\n exactPathTest,\n functionalUpdate,\n preloadWarning,\n removeTrailingSlash,\n} from '@tanstack/router-core'\nimport { Dynamic } from 'solid-js/web'\nimport { useRouterState } from './useRouterState'\nimport { useRouter } from './useRouter'\n\nimport { useIntersectionObserver } from './utils'\n\nimport { useMatches } from './Matches'\nimport type {\n AnyRouter,\n Constrain,\n LinkCurrentTargetElement,\n LinkOptions,\n RegisteredRouter,\n RoutePaths,\n} from '@tanstack/router-core'\nimport type {\n ValidateLinkOptions,\n ValidateLinkOptionsArray,\n} from './typePrimitives'\n\nexport function useLinkProps<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends RoutePaths<TRouter['routeTree']> | string = string,\n TTo extends string = '',\n TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,\n TMaskTo extends string = '',\n>(\n options: UseLinkPropsOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,\n): Solid.ComponentProps<'a'> {\n const router = useRouter()\n const [isTransitioning, setIsTransitioning] = Solid.createSignal(false)\n let hasRenderFetched = false\n\n const [local, rest] = Solid.splitProps(\n Solid.mergeProps(\n {\n activeProps: () => ({ class: 'active' }),\n inactiveProps: () => ({}),\n },\n options,\n ),\n [\n 'activeProps',\n 'inactiveProps',\n 'activeOptions',\n 'to',\n 'preload',\n 'preloadDelay',\n 'hashScrollIntoView',\n 'replace',\n 'startTransition',\n 'resetScroll',\n 'viewTransition',\n 'target',\n 'disabled',\n 'style',\n 'class',\n 'onClick',\n 'onFocus',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseOver',\n 'onMouseOut',\n 'onTouchStart',\n 'ignoreBlocker',\n ],\n )\n\n // const {\n // // custom props\n // activeProps = () => ({ class: 'active' }),\n // inactiveProps = () => ({}),\n // activeOptions,\n // to,\n // preload: userPreload,\n // preloadDelay: userPreloadDelay,\n // hashScrollIntoView,\n // replace,\n // startTransition,\n // resetScroll,\n // viewTransition,\n // // element props\n // children,\n // target,\n // disabled,\n // style,\n // class,\n // onClick,\n // onFocus,\n // onMouseEnter,\n // onMouseLeave,\n // onTouchStart,\n // ignoreBlocker,\n // ...rest\n // } = options\n\n const [_, propsSafeToSpread] = Solid.splitProps(rest, [\n 'params',\n 'search',\n 'hash',\n 'state',\n 'mask',\n 'reloadDocument',\n ])\n\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n\n const type: Solid.Accessor<'internal' | 'external'> = () => {\n try {\n new URL(`${local.to}`)\n return 'external'\n } catch {}\n return 'internal'\n }\n\n const currentSearch = useRouterState({\n select: (s) => s.location.searchStr,\n })\n\n // when `from` is not supplied, use the leaf route of the current matches as the `from` location\n // so relative routing works as expected\n const from = useMatches({\n select: (matches) => options.from ?? matches[matches.length - 1]?.fullPath,\n })\n\n const _options = () => ({\n ...options,\n from: from(),\n })\n\n const next = Solid.createMemo(() => {\n currentSearch()\n return router.buildLocation(_options() as any)\n })\n\n const preload = Solid.createMemo(() => {\n if (_options().reloadDocument) {\n return false\n }\n return local.preload ?? router.options.defaultPreload\n })\n const preloadDelay = () =>\n local.preloadDelay ?? router.options.defaultPreloadDelay ?? 0\n\n const isActive = useRouterState({\n select: (s) => {\n if (local.activeOptions?.exact) {\n const testExact = exactPathTest(\n s.location.pathname,\n next().pathname,\n router.basepath,\n )\n if (!testExact) {\n return false\n }\n } else {\n const currentPathSplit = removeTrailingSlash(\n s.location.pathname,\n router.basepath,\n ).split('/')\n const nextPathSplit = removeTrailingSlash(\n next()?.pathname,\n router.basepath,\n )?.split('/')\n\n const pathIsFuzzyEqual = nextPathSplit?.every(\n (d, i) => d === currentPathSplit[i],\n )\n if (!pathIsFuzzyEqual) {\n return false\n }\n }\n\n if (local.activeOptions?.includeSearch ?? true) {\n const searchTest = deepEqual(s.location.search, next().search, {\n partial: !local.activeOptions?.exact,\n ignoreUndefined: !local.activeOptions?.explicitUndefined,\n })\n if (!searchTest) {\n return false\n }\n }\n\n if (local.activeOptions?.includeHash) {\n return s.location.hash === next().hash\n }\n return true\n },\n })\n\n const doPreload = () =>\n router.preloadRoute(_options() as any).catch((err: any) => {\n console.warn(err)\n console.warn(preloadWarning)\n })\n\n const preloadViewportIoCallback = (\n entry: IntersectionObserverEntry | undefined,\n ) => {\n if (entry?.isIntersecting) {\n doPreload()\n }\n }\n\n const [ref, setRef] = Solid.createSignal<Element | null>(null)\n\n useIntersectionObserver(\n ref,\n preloadViewportIoCallback,\n { rootMargin: '100px' },\n { disabled: !!local.disabled || !(preload() === 'viewport') },\n )\n\n Solid.createEffect(() => {\n if (hasRenderFetched) {\n return\n }\n if (!local.disabled && preload() === 'render') {\n doPreload()\n hasRenderFetched = true\n }\n })\n\n if (type() === 'external') {\n return Solid.mergeProps(\n propsSafeToSpread,\n {\n ref,\n get type() {\n return type()\n },\n get href() {\n return local.to\n },\n },\n Solid.splitProps(local, [\n 'target',\n 'disabled',\n 'style',\n 'class',\n 'onClick',\n 'onFocus',\n 'onMouseEnter',\n 'onMouseLeave',\n 'onMouseOut',\n 'onMouseOver',\n 'onTouchStart',\n ])[0],\n ) as any\n }\n\n // The click handler\n const handleClick = (e: MouseEvent) => {\n if (\n !local.disabled &&\n !isCtrlEvent(e) &&\n !e.defaultPrevented &&\n (!local.target || local.target === '_self') &&\n e.button === 0\n ) {\n e.preventDefault()\n\n setIsTransitioning(true)\n\n const unsub = router.subscribe('onResolved', () => {\n unsub()\n setIsTransitioning(false)\n })\n\n // All is well? Navigate!\n // N.B. we don't call `router.commitLocation(next) here because we want to run `validateSearch` before committing\n return router.navigate({\n ..._options(),\n replace: local.replace,\n resetScroll: local.resetScroll,\n hashScrollIntoView: local.hashScrollIntoView,\n startTransition: local.startTransition,\n viewTransition: local.viewTransition,\n ignoreBlocker: local.ignoreBlocker,\n })\n }\n }\n\n // The click handler\n const handleFocus = (_: MouseEvent) => {\n if (local.disabled) return\n if (preload()) {\n doPreload()\n }\n }\n\n const handleTouchStart = handleFocus\n\n const handleEnter = (e: MouseEvent) => {\n if (local.disabled) return\n const eventTarget = (e.target || {}) as LinkCurrentTargetElement\n\n if (preload()) {\n if (eventTarget.preloadTimeout) {\n return\n }\n\n eventTarget.preloadTimeout = setTimeout(() => {\n eventTarget.preloadTimeout = null\n doPreload()\n }, preloadDelay())\n }\n }\n\n const handleLeave = (e: MouseEvent) => {\n if (local.disabled) return\n const eventTarget = (e.target || {}) as LinkCurrentTargetElement\n\n if (eventTarget.preloadTimeout) {\n clearTimeout(eventTarget.preloadTimeout)\n eventTarget.preloadTimeout = null\n }\n }\n\n /** Call a JSX.EventHandlerUnion with the event. */\n function callHandler<T, TEvent extends Event>(\n event: TEvent & { currentTarget: T; target: Element },\n handler: Solid.JSX.EventHandlerUnion<T, TEvent> | undefined,\n ) {\n if (handler) {\n if (typeof handler === 'function') {\n handler(event)\n } else {\n handler[0](handler[1], event)\n }\n }\n\n return event.defaultPrevented\n }\n\n function composeEventHandlers<T>(\n handlers: Array<Solid.JSX.EventHandlerUnion<T, any> | undefined>,\n ) {\n return (event: any) => {\n for (const handler of handlers) {\n callHandler(event, handler)\n }\n }\n }\n\n // Get the active props\n const resolvedActiveProps: () => Omit<Solid.ComponentProps<'a'>, 'style'> & {\n style?: Solid.JSX.CSSProperties\n } = () =>\n isActive() ? (functionalUpdate(local.activeProps as any, {}) ?? {}) : {}\n\n // Get the inactive props\n const resolvedInactiveProps: () => Omit<\n Solid.ComponentProps<'a'>,\n 'style'\n > & { style?: Solid.JSX.CSSProperties } = () =>\n isActive() ? {} : functionalUpdate(local.inactiveProps, {})\n\n const resolvedClassName = () =>\n [local.class, resolvedActiveProps().class, resolvedInactiveProps().class]\n .filter(Boolean)\n .join(' ')\n\n const resolvedStyle = () => ({\n ...local.style,\n ...resolvedActiveProps().style,\n ...resolvedInactiveProps().style,\n })\n\n const href = Solid.createMemo(() => {\n const nextLocation = next()\n const maskedLocation = nextLocation?.maskedLocation\n\n return _options().disabled\n ? undefined\n : maskedLocation\n ? router.history.createHref(maskedLocation.href)\n : router.history.createHref(nextLocation?.href)\n })\n\n return Solid.mergeProps(\n propsSafeToSpread,\n resolvedActiveProps,\n resolvedInactiveProps,\n () => {\n return {\n href: href(),\n ref: mergeRefs(setRef, _options().ref),\n onClick: composeEventHandlers([local.onClick, handleClick]),\n onFocus: composeEventHandlers([local.onFocus, handleFocus]),\n onMouseEnter: composeEventHandlers([local.onMouseEnter, handleEnter]),\n onMouseOver: composeEventHandlers([local.onMouseOver, handleEnter]),\n onMouseLeave: composeEventHandlers([local.onMouseLeave, handleLeave]),\n onMouseOut: composeEventHandlers([local.onMouseOut, handleLeave]),\n onTouchStart: composeEventHandlers([\n local.onTouchStart,\n handleTouchStart,\n ]),\n disabled: !!local.disabled,\n target: local.target,\n ...(Object.keys(resolvedStyle).length && { style: resolvedStyle }),\n ...(resolvedClassName() && { class: resolvedClassName() }),\n ...(local.disabled && {\n role: 'link',\n 'aria-disabled': true,\n }),\n ...(isActive() && { 'data-status': 'active', 'aria-current': 'page' }),\n ...(isTransitioning() && { 'data-transitioning': 'transitioning' }),\n }\n },\n ) as any\n}\n\nexport type UseLinkPropsOptions<\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends RoutePaths<TRouter['routeTree']> | string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom,\n TMaskTo extends string = '.',\n> = ActiveLinkOptions<'a', TRouter, TFrom, TTo, TMaskFrom, TMaskTo> &\n Omit<Solid.ComponentProps<'a'>, 'style'> & { style?: Solid.JSX.CSSProperties }\n\nexport type ActiveLinkOptions<\n TComp = 'a',\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n> = LinkOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> &\n ActiveLinkOptionProps<TComp>\n\ntype ActiveLinkProps<TComp> = Partial<\n LinkComponentSolidProps<TComp> & {\n [key: `data-${string}`]: unknown\n }\n>\n\nexport interface ActiveLinkOptionProps<TComp = 'a'> {\n /**\n * A function that returns additional props for the `active` state of this link.\n * These props override other props passed to the link (`style`'s are merged, `class`'s are concatenated)\n */\n activeProps?: ActiveLinkProps<TComp> | (() => ActiveLinkProps<TComp>)\n /**\n * A function that returns additional props for the `inactive` state of this link.\n * These props override other props passed to the link (`style`'s are merged, `class`'s are concatenated)\n */\n inactiveProps?: ActiveLinkProps<TComp> | (() => ActiveLinkProps<TComp>)\n}\n\nexport type LinkProps<\n TComp = 'a',\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n> = ActiveLinkOptions<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo> &\n LinkPropsChildren\n\nexport interface LinkPropsChildren {\n // If a function is passed as a child, it will be given the `isActive` boolean to aid in further styling on the element it returns\n children?:\n | Solid.JSX.Element\n | ((state: {\n isActive: boolean\n isTransitioning: boolean\n }) => Solid.JSX.Element)\n}\n\ntype LinkComponentSolidProps<TComp> = TComp extends Solid.ValidComponent\n ? Omit<Solid.ComponentProps<TComp>, keyof CreateLinkProps>\n : never\n\nexport type LinkComponentProps<\n TComp = 'a',\n TRouter extends AnyRouter = RegisteredRouter,\n TFrom extends string = string,\n TTo extends string | undefined = '.',\n TMaskFrom extends string = TFrom,\n TMaskTo extends string = '.',\n> = LinkComponentSolidProps<TComp> &\n LinkProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>\n\nexport type CreateLinkProps = LinkProps<\n any,\n any,\n string,\n string,\n string,\n string\n>\n\nexport type LinkComponent<\n in out TComp,\n in out TDefaultFrom extends string = string,\n> = <\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string = TDefaultFrom,\n const TTo extends string | undefined = undefined,\n const TMaskFrom extends string = TFrom,\n const TMaskTo extends string = '',\n>(\n props: LinkComponentProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>,\n) => Solid.JSX.Element\n\nexport interface LinkComponentRoute<\n in out TDefaultFrom extends string = string,\n> {\n defaultFrom: TDefaultFrom\n <\n TRouter extends AnyRouter = RegisteredRouter,\n const TTo extends string | undefined = undefined,\n const TMaskTo extends string = '',\n >(\n props: LinkComponentProps<\n 'a',\n TRouter,\n this['defaultFrom'],\n TTo,\n this['defaultFrom'],\n TMaskTo\n >,\n ): Solid.JSX.Element\n}\n\nexport function createLink<const TComp>(\n Comp: Constrain<TComp, any, (props: CreateLinkProps) => Solid.JSX.Element>,\n): LinkComponent<TComp> {\n return (props) => <Link {...props} _asChild={Comp} />\n}\n\nexport const Link: LinkComponent<'a'> = (props) => {\n const [local, rest] = Solid.splitProps(\n props as typeof props & { _asChild: any },\n ['_asChild', 'children'],\n )\n\n const [_, linkProps] = Solid.splitProps(\n useLinkProps(rest as unknown as any),\n ['type'],\n )\n\n const children = Solid.createMemo(() => {\n const ch = local.children\n if (typeof ch === 'function') {\n return ch({\n get isActive() {\n return (linkProps as any)['data-status'] === 'active'\n },\n isTransitioning: false,\n })\n }\n\n return ch satisfies Solid.JSX.Element\n })\n\n return (\n <Dynamic component={local._asChild ? local._asChild : 'a'} {...linkProps}>\n {children()}\n </Dynamic>\n )\n}\n\nfunction isCtrlEvent(e: MouseEvent) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n}\n\nexport type LinkOptionsFnOptions<\n TOptions,\n TComp,\n TRouter extends AnyRouter = RegisteredRouter,\n> =\n TOptions extends ReadonlyArray<any>\n ? ValidateLinkOptionsArray<TRouter, TOptions, string, TComp>\n : ValidateLinkOptions<TRouter, TOptions, string, TComp>\n\nexport type LinkOptionsFn<TComp> = <\n const TOptions,\n TRouter extends AnyRouter = RegisteredRouter,\n>(\n options: LinkOptionsFnOptions<TOptions, TComp, TRouter>,\n) => TOptions\n\nexport const linkOptions: LinkOptionsFn<'a'> = (options) => {\n return options as any\n}\n"],"names":["useLinkProps","options","router","useRouter","isTransitioning","setIsTransitioning","Solid","createSignal","hasRenderFetched","local","rest","splitProps","mergeProps","activeProps","class","inactiveProps","_","propsSafeToSpread","type","URL","to","currentSearch","useRouterState","select","s","location","searchStr","from","useMatches","matches","length","fullPath","_options","next","createMemo","buildLocation","preload","reloadDocument","defaultPreload","preloadDelay","defaultPreloadDelay","isActive","activeOptions","exact","testExact","exactPathTest","pathname","basepath","currentPathSplit","removeTrailingSlash","split","nextPathSplit","pathIsFuzzyEqual","every","d","i","includeSearch","searchTest","deepEqual","search","partial","ignoreUndefined","explicitUndefined","includeHash","hash","doPreload","preloadRoute","catch","err","console","warn","preloadWarning","preloadViewportIoCallback","entry","isIntersecting","ref","setRef","useIntersectionObserver","rootMargin","disabled","createEffect","href","handleClick","e","isCtrlEvent","defaultPrevented","target","button","preventDefault","unsub","subscribe","navigate","replace","resetScroll","hashScrollIntoView","startTransition","viewTransition","ignoreBlocker","handleFocus","handleTouchStart","handleEnter","eventTarget","preloadTimeout","setTimeout","handleLeave","clearTimeout","callHandler","event","handler","composeEventHandlers","handlers","resolvedActiveProps","functionalUpdate","resolvedInactiveProps","resolvedClassName","filter","Boolean","join","resolvedStyle","style","nextLocation","maskedLocation","undefined","history","createHref","mergeRefs","onClick","onFocus","onMouseEnter","onMouseOver","onMouseLeave","onMouseOut","onTouchStart","Object","keys","role","createLink","Comp","props","_$createComponent","Link","_$mergeProps","_asChild","linkProps","children","ch","Dynamic","component","metaKey","altKey","ctrlKey","shiftKey","linkOptions"],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { AnyRouter, Constrain, LinkOptions, RegisteredRouter, RoutePaths } from '@tanstack/router-core';
2
- import { ValidateLinkOptions, ValidateLinkOptionsArray } from './typePrimitives.cjs';
3
- import * as Solid from 'solid-js';
4
- export declare function useLinkProps<TRouter extends AnyRouter = RegisteredRouter, TFrom extends RoutePaths<TRouter['routeTree']> | string = string, TTo extends string = '', TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom, TMaskTo extends string = ''>(options: UseLinkPropsOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo>): Solid.ComponentProps<'a'>;
5
- export type UseLinkPropsOptions<TRouter extends AnyRouter = RegisteredRouter, TFrom extends RoutePaths<TRouter['routeTree']> | string = string, TTo extends string | undefined = '.', TMaskFrom extends RoutePaths<TRouter['routeTree']> | string = TFrom, TMaskTo extends string = '.'> = ActiveLinkOptions<'a', TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & Omit<Solid.ComponentProps<'a'>, 'style'> & {
6
- style?: Solid.JSX.CSSProperties;
7
- };
8
- export type ActiveLinkOptions<TComp = 'a', TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = '.', TMaskFrom extends string = TFrom, TMaskTo extends string = '.'> = LinkOptions<TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & ActiveLinkOptionProps<TComp>;
9
- type ActiveLinkProps<TComp> = Partial<LinkComponentSolidProps<TComp> & {
10
- [key: `data-${string}`]: unknown;
11
- }>;
12
- export interface ActiveLinkOptionProps<TComp = 'a'> {
13
- /**
14
- * A function that returns additional props for the `active` state of this link.
15
- * These props override other props passed to the link (`style`'s are merged, `class`'s are concatenated)
16
- */
17
- activeProps?: ActiveLinkProps<TComp> | (() => ActiveLinkProps<TComp>);
18
- /**
19
- * A function that returns additional props for the `inactive` state of this link.
20
- * These props override other props passed to the link (`style`'s are merged, `class`'s are concatenated)
21
- */
22
- inactiveProps?: ActiveLinkProps<TComp> | (() => ActiveLinkProps<TComp>);
23
- }
24
- export type LinkProps<TComp = 'a', TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = '.', TMaskFrom extends string = TFrom, TMaskTo extends string = '.'> = ActiveLinkOptions<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo> & LinkPropsChildren;
25
- export interface LinkPropsChildren {
26
- children?: Solid.JSX.Element | ((state: {
27
- isActive: boolean;
28
- isTransitioning: boolean;
29
- }) => Solid.JSX.Element);
30
- }
31
- type LinkComponentSolidProps<TComp> = TComp extends Solid.ValidComponent ? Omit<Solid.ComponentProps<TComp>, keyof CreateLinkProps> : never;
32
- export type LinkComponentProps<TComp = 'a', TRouter extends AnyRouter = RegisteredRouter, TFrom extends string = string, TTo extends string | undefined = '.', TMaskFrom extends string = TFrom, TMaskTo extends string = '.'> = LinkComponentSolidProps<TComp> & LinkProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>;
33
- export type CreateLinkProps = LinkProps<any, any, string, string, string, string>;
34
- export type LinkComponent<in out TComp, in out TDefaultFrom extends string = string> = <TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string = TDefaultFrom, const TTo extends string | undefined = undefined, const TMaskFrom extends string = TFrom, const TMaskTo extends string = ''>(props: LinkComponentProps<TComp, TRouter, TFrom, TTo, TMaskFrom, TMaskTo>) => Solid.JSX.Element;
35
- export interface LinkComponentRoute<in out TDefaultFrom extends string = string> {
36
- defaultFrom: TDefaultFrom;
37
- <TRouter extends AnyRouter = RegisteredRouter, const TTo extends string | undefined = undefined, const TMaskTo extends string = ''>(props: LinkComponentProps<'a', TRouter, this['defaultFrom'], TTo, this['defaultFrom'], TMaskTo>): Solid.JSX.Element;
38
- }
39
- export declare function createLink<const TComp>(Comp: Constrain<TComp, any, (props: CreateLinkProps) => Solid.JSX.Element>): LinkComponent<TComp>;
40
- export declare const Link: LinkComponent<'a'>;
41
- export type LinkOptionsFnOptions<TOptions, TComp, TRouter extends AnyRouter = RegisteredRouter> = TOptions extends ReadonlyArray<any> ? ValidateLinkOptionsArray<TRouter, TOptions, string, TComp> : ValidateLinkOptions<TRouter, TOptions, string, TComp>;
42
- export type LinkOptionsFn<TComp> = <const TOptions, TRouter extends AnyRouter = RegisteredRouter>(options: LinkOptionsFnOptions<TOptions, TComp, TRouter>) => TOptions;
43
- export declare const linkOptions: LinkOptionsFn<'a'>;
44
- export {};
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Solid = require("solid-js");
4
- function _interopNamespaceDefault(e) {
5
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
6
- if (e) {
7
- for (const k in e) {
8
- if (k !== "default") {
9
- const d = Object.getOwnPropertyDescriptor(e, k);
10
- Object.defineProperty(n, k, d.get ? d : {
11
- enumerable: true,
12
- get: () => e[k]
13
- });
14
- }
15
- }
16
- }
17
- n.default = e;
18
- return Object.freeze(n);
19
- }
20
- const Solid__namespace = /* @__PURE__ */ _interopNamespaceDefault(Solid);
21
- const matchContext = Solid__namespace.createContext(() => void 0);
22
- const dummyMatchContext = Solid__namespace.createContext(() => void 0);
23
- exports.dummyMatchContext = dummyMatchContext;
24
- exports.matchContext = matchContext;
25
- //# sourceMappingURL=matchContext.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"matchContext.cjs","sources":["../../src/matchContext.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\n\nexport const matchContext = Solid.createContext<\n Solid.Accessor<string | undefined>\n>(() => undefined)\n\n// N.B. this only exists so we can conditionally call useContext on it when we are not interested in the nearest match\nexport const dummyMatchContext = Solid.createContext<\n Solid.Accessor<string | undefined>\n>(() => undefined)\n"],"names":["matchContext","Solid","createContext","undefined","dummyMatchContext"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEO,MAAMA,eAAeC,iBAAMC,cAEhC,MAAMC,MAAS;AAGV,MAAMC,oBAAoBH,iBAAMC,cAErC,MAAMC,MAAS;;;"}
@@ -1,3 +0,0 @@
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>>;
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const web = require("solid-js/web");
4
- const routerCore = require("@tanstack/router-core");
5
- const CatchBoundary = require("./CatchBoundary.cjs");
6
- const useRouterState = require("./useRouterState.cjs");
7
- var _tmpl$ = /* @__PURE__ */ web.template(`<p>Not Found`);
8
- function CatchNotFound(props) {
9
- const resetKey = useRouterState.useRouterState({
10
- select: (s) => `not-found-${s.location.pathname}-${s.status}`
11
- });
12
- return web.createComponent(CatchBoundary.CatchBoundary, {
13
- getResetKey: () => resetKey(),
14
- onCatch: (error) => {
15
- var _a;
16
- if (routerCore.isNotFound(error)) {
17
- (_a = props.onCatch) == null ? void 0 : _a.call(props, error);
18
- } else {
19
- throw error;
20
- }
21
- },
22
- errorComponent: ({
23
- error
24
- }) => {
25
- var _a;
26
- if (routerCore.isNotFound(error)) {
27
- return (_a = props.fallback) == null ? void 0 : _a.call(props, error);
28
- } else {
29
- throw error;
30
- }
31
- },
32
- get children() {
33
- return props.children;
34
- }
35
- });
36
- }
37
- function DefaultGlobalNotFound() {
38
- return _tmpl$();
39
- }
40
- exports.CatchNotFound = CatchNotFound;
41
- exports.DefaultGlobalNotFound = DefaultGlobalNotFound;
42
- //# sourceMappingURL=not-found.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"not-found.cjs","sources":["../../src/not-found.tsx"],"sourcesContent":["import { isNotFound } from '@tanstack/router-core'\nimport { CatchBoundary } from './CatchBoundary'\nimport { useRouterState } from './useRouterState'\nimport type * as Solid from 'solid-js'\nimport type { NotFoundError } from '@tanstack/router-core'\n\nexport function CatchNotFound(props: {\n fallback?: (error: NotFoundError) => Solid.JSX.Element\n onCatch?: (error: Error) => void\n children: Solid.JSX.Element\n}) {\n // TODO: Some way for the user to programmatically reset the not-found boundary?\n const resetKey = useRouterState({\n select: (s) => `not-found-${s.location.pathname}-${s.status}`,\n })\n\n return (\n <CatchBoundary\n getResetKey={() => resetKey()}\n onCatch={(error) => {\n if (isNotFound(error)) {\n props.onCatch?.(error)\n } else {\n throw error\n }\n }}\n errorComponent={({ error }: { error: Error }) => {\n if (isNotFound(error)) {\n return props.fallback?.(error)\n } else {\n throw error\n }\n }}\n >\n {props.children}\n </CatchBoundary>\n )\n}\n\nexport function DefaultGlobalNotFound() {\n return <p>Not Found</p>\n}\n"],"names":["CatchNotFound","props","resetKey","useRouterState","select","s","location","pathname","status","_$createComponent","CatchBoundary","getResetKey","onCatch","error","isNotFound","errorComponent","fallback","children","DefaultGlobalNotFound","_tmpl$"],"mappings":";;;;;;;AAMO,SAASA,cAAcC,OAI3B;AAED,QAAMC,WAAWC,eAAAA,eAAe;AAAA,IAC9BC,QAASC,OAAM,aAAaA,EAAEC,SAASC,QAAQ,IAAIF,EAAEG,MAAM;AAAA,EAAA,CAC5D;AAED,SAAAC,IAAAA,gBACGC,cAAAA,eAAa;AAAA,IACZC,aAAaA,MAAMT,SAAS;AAAA,IAC5BU,SAAUC,CAAU,UAAA;;AACdC,UAAAA,WAAAA,WAAWD,KAAK,GAAG;AACrBZ,oBAAMW,YAANX,+BAAgBY;AAAAA,MAAK,OAChB;AACCA,cAAAA;AAAAA,MAAAA;AAAAA,IAEV;AAAA,IACAE,gBAAgBA,CAAC;AAAA,MAAEF;AAAAA,IAAAA,MAA8B;;AAC3CC,UAAAA,WAAAA,WAAWD,KAAK,GAAG;AACdZ,gBAAAA,WAAMe,aAANf,+BAAiBY;AAAAA,MAAK,OACxB;AACCA,cAAAA;AAAAA,MAAAA;AAAAA,IAEV;AAAA,IAAC,IAAAI,WAAA;AAAA,aAEAhB,MAAMgB;AAAAA,IAAAA;AAAAA,EAAQ,CAAA;AAGrB;AAEO,SAASC,wBAAwB;AACtC,SAAAC,OAAA;AACF;;;"}
@@ -1,8 +0,0 @@
1
- import { NotFoundError } from '@tanstack/router-core';
2
- import type * as Solid from 'solid-js';
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;
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const web = require("solid-js/web");
4
- const warning = require("tiny-warning");
5
- const notFound = require("./not-found.cjs");
6
- function renderRouteNotFound(router, route, data) {
7
- if (!route.options.notFoundComponent) {
8
- if (router.options.defaultNotFoundComponent) {
9
- return web.createComponent(router.options.defaultNotFoundComponent, {
10
- data
11
- });
12
- }
13
- if (process.env.NODE_ENV === "development") {
14
- 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>)`);
15
- }
16
- return web.createComponent(notFound.DefaultGlobalNotFound, {});
17
- }
18
- return web.createComponent(route.options.notFoundComponent, {
19
- data
20
- });
21
- }
22
- exports.renderRouteNotFound = renderRouteNotFound;
23
- //# sourceMappingURL=renderRouteNotFound.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renderRouteNotFound.cjs","sources":["../../src/renderRouteNotFound.tsx"],"sourcesContent":["import warning from 'tiny-warning'\nimport { DefaultGlobalNotFound } from './not-found'\nimport type { AnyRoute, AnyRouter } from '@tanstack/router-core'\n\nexport function renderRouteNotFound(\n router: AnyRouter,\n route: AnyRoute,\n data: any,\n) {\n if (!route.options.notFoundComponent) {\n if (router.options.defaultNotFoundComponent) {\n return <router.options.defaultNotFoundComponent data={data} />\n }\n\n if (process.env.NODE_ENV === 'development') {\n warning(\n route.options.notFoundComponent,\n `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>)`,\n )\n }\n\n return <DefaultGlobalNotFound />\n }\n\n return <route.options.notFoundComponent data={data} />\n}\n"],"names":["renderRouteNotFound","router","route","data","options","notFoundComponent","defaultNotFoundComponent","_$createComponent","process","env","NODE_ENV","warning","id","DefaultGlobalNotFound"],"mappings":";;;;;AAIgBA,SAAAA,oBACdC,QACAC,OACAC,MACA;AACI,MAAA,CAACD,MAAME,QAAQC,mBAAmB;AAChCJ,QAAAA,OAAOG,QAAQE,0BAA0B;AAC3CC,aAAAA,oBAAQN,OAAOG,QAAQE,0BAAwB;AAAA,QAACH;AAAAA,MAAAA,CAAU;AAAA,IAAA;AAGxDK,QAAAA,QAAQC,IAAIC,aAAa,eAAe;AAC1CC,cACET,MAAME,QAAQC,mBACd,yDAAyDH,MAAMU,EAAE,uPACnE;AAAA,IAAA;AAGFL,WAAAA,IAAAA,gBAAQM,SAAqB,uBAAA,EAAA;AAAA,EAAA;AAG/BN,SAAAA,oBAAQL,MAAME,QAAQC,mBAAiB;AAAA,IAACF;AAAAA,EAAAA,CAAU;AACpD;;"}
@@ -1,2 +0,0 @@
1
- import { AnyRoute, AnyRouter } from '@tanstack/router-core';
2
- export declare function renderRouteNotFound(router: AnyRouter, route: AnyRoute, data: any): import("solid-js").JSX.Element;