@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,8 @@
1
+ import { AnyRouter, RegisteredRouter, RouterState } from '@tanstack/router-core';
2
+ import { Accessor } from 'solid-js';
3
+ export type UseRouterStateOptions<TRouter extends AnyRouter, TSelected> = {
4
+ router?: TRouter;
5
+ select?: (state: RouterState<TRouter['routeTree']>) => TSelected;
6
+ };
7
+ export type UseRouterStateResult<TRouter extends AnyRouter, TSelected> = unknown extends TSelected ? RouterState<TRouter['routeTree']> : TSelected;
8
+ export declare function useRouterState<TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseRouterStateOptions<TRouter, TSelected>): Accessor<UseRouterStateResult<TRouter, TSelected>>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const useMatch = require("./useMatch.cjs");
4
+ function useSearch(opts) {
5
+ return useMatch.useMatch({
6
+ from: opts.from,
7
+ strict: opts.strict,
8
+ shouldThrow: opts.shouldThrow,
9
+ select: (match) => {
10
+ return opts.select ? opts.select(match.search) : match.search;
11
+ }
12
+ });
13
+ }
14
+ exports.useSearch = useSearch;
15
+ //# sourceMappingURL=useSearch.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSearch.cjs","sources":["../../src/useSearch.tsx"],"sourcesContent":["import { useMatch } from './useMatch'\nimport type { Accessor } from 'solid-js'\nimport type {\n AnyRouter,\n RegisteredRouter,\n ResolveUseSearch,\n StrictOrFrom,\n ThrowConstraint,\n ThrowOrOptional,\n UseSearchResult,\n} from '@tanstack/router-core'\n\nexport interface UseSearchBaseOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TThrow extends boolean,\n TSelected,\n> {\n select?: (state: ResolveUseSearch<TRouter, TFrom, TStrict>) => TSelected\n shouldThrow?: TThrow\n}\n\nexport type UseSearchOptions<\n TRouter extends AnyRouter,\n TFrom,\n TStrict extends boolean,\n TThrow extends boolean,\n TSelected,\n> = StrictOrFrom<TRouter, TFrom, TStrict> &\n UseSearchBaseOptions<TRouter, TFrom, TStrict, TThrow, TSelected>\n\nexport type UseSearchRoute<out TFrom> = <\n TRouter extends AnyRouter = RegisteredRouter,\n TSelected = unknown,\n>(\n opts?: UseSearchBaseOptions<\n TRouter,\n TFrom,\n /* TStrict */ true,\n /* TThrow */ true,\n TSelected\n >,\n) => Accessor<UseSearchResult<TRouter, TFrom, true, TSelected>>\n\nexport function useSearch<\n TRouter extends AnyRouter = RegisteredRouter,\n const TFrom extends string | undefined = undefined,\n TStrict extends boolean = true,\n TThrow extends boolean = true,\n TSelected = unknown,\n>(\n opts: UseSearchOptions<\n TRouter,\n TFrom,\n TStrict,\n ThrowConstraint<TStrict, TThrow>,\n TSelected\n >,\n): Accessor<\n ThrowOrOptional<UseSearchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>\n> {\n return useMatch({\n from: opts.from!,\n strict: opts.strict,\n shouldThrow: opts.shouldThrow,\n select: (match: any) => {\n return opts.select ? opts.select(match.search) : match.search\n },\n }) as any\n}\n"],"names":["useSearch","opts","useMatch","from","strict","shouldThrow","select","match","search"],"mappings":";;;AA6CO,SAASA,UAOdC,MASA;AACA,SAAOC,kBAAS;AAAA,IACdC,MAAMF,KAAKE;AAAAA,IACXC,QAAQH,KAAKG;AAAAA,IACbC,aAAaJ,KAAKI;AAAAA,IAClBC,QAAQA,CAACC,UAAe;AACtB,aAAON,KAAKK,SAASL,KAAKK,OAAOC,MAAMC,MAAM,IAAID,MAAMC;AAAAA,IAAAA;AAAAA,EACzD,CACD;AACH;;"}
@@ -0,0 +1,9 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { AnyRouter, RegisteredRouter, ResolveUseSearch, StrictOrFrom, ThrowConstraint, ThrowOrOptional, UseSearchResult } from '@tanstack/router-core';
3
+ export interface UseSearchBaseOptions<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TThrow extends boolean, TSelected> {
4
+ select?: (state: ResolveUseSearch<TRouter, TFrom, TStrict>) => TSelected;
5
+ shouldThrow?: TThrow;
6
+ }
7
+ export type UseSearchOptions<TRouter extends AnyRouter, TFrom, TStrict extends boolean, TThrow extends boolean, TSelected> = StrictOrFrom<TRouter, TFrom, TStrict> & UseSearchBaseOptions<TRouter, TFrom, TStrict, TThrow, TSelected>;
8
+ export type UseSearchRoute<out TFrom> = <TRouter extends AnyRouter = RegisteredRouter, TSelected = unknown>(opts?: UseSearchBaseOptions<TRouter, TFrom, true, true, TSelected>) => Accessor<UseSearchResult<TRouter, TFrom, true, TSelected>>;
9
+ export declare function useSearch<TRouter extends AnyRouter = RegisteredRouter, const TFrom extends string | undefined = undefined, TStrict extends boolean = true, TThrow extends boolean = true, TSelected = unknown>(opts: UseSearchOptions<TRouter, TFrom, TStrict, ThrowConstraint<TStrict, TThrow>, TSelected>): Accessor<ThrowOrOptional<UseSearchResult<TRouter, TFrom, TStrict, TSelected>, TThrow>>;
@@ -0,0 +1,58 @@
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 useLayoutEffect = typeof window !== "undefined" ? Solid__namespace.createRenderEffect : Solid__namespace.createEffect;
22
+ const usePrevious = (fn) => {
23
+ return Solid__namespace.createMemo(
24
+ (prev = {
25
+ current: null,
26
+ previous: null
27
+ }) => {
28
+ const current = fn();
29
+ if (prev.current !== current) {
30
+ prev.previous = prev.current;
31
+ prev.current = current;
32
+ }
33
+ return prev;
34
+ }
35
+ );
36
+ };
37
+ function useIntersectionObserver(ref, callback, intersectionObserverOptions = {}, options = {}) {
38
+ const isIntersectionObserverAvailable = typeof IntersectionObserver === "function";
39
+ let observerRef = null;
40
+ Solid__namespace.createEffect(() => {
41
+ const r = ref();
42
+ if (!r || !isIntersectionObserverAvailable || options.disabled) {
43
+ return;
44
+ }
45
+ observerRef = new IntersectionObserver(([entry]) => {
46
+ callback(entry);
47
+ }, intersectionObserverOptions);
48
+ observerRef.observe(r);
49
+ Solid__namespace.onCleanup(() => {
50
+ observerRef == null ? void 0 : observerRef.disconnect();
51
+ });
52
+ });
53
+ return () => observerRef;
54
+ }
55
+ exports.useIntersectionObserver = useIntersectionObserver;
56
+ exports.useLayoutEffect = useLayoutEffect;
57
+ exports.usePrevious = usePrevious;
58
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs","sources":["../../src/utils.ts"],"sourcesContent":["import * as Solid from 'solid-js'\n\nexport const useLayoutEffect =\n typeof window !== 'undefined' ? Solid.createRenderEffect : Solid.createEffect\n\nexport const usePrevious = (fn: () => boolean) => {\n return Solid.createMemo(\n (\n prev: { current: boolean | null; previous: boolean | null } = {\n current: null,\n previous: null,\n },\n ) => {\n const current = fn()\n\n if (prev.current !== current) {\n prev.previous = prev.current\n prev.current = current\n }\n\n return prev\n },\n )\n}\n\n/**\n * React hook to wrap `IntersectionObserver`.\n *\n * This hook will create an `IntersectionObserver` and observe the ref passed to it.\n *\n * When the intersection changes, the callback will be called with the `IntersectionObserverEntry`.\n *\n * @param ref - The ref to observe\n * @param intersectionObserverOptions - The options to pass to the IntersectionObserver\n * @param options - The options to pass to the hook\n * @param callback - The callback to call when the intersection changes\n * @returns The IntersectionObserver instance\n * @example\n * ```tsx\n * const MyComponent = () => {\n * const ref = React.useRef<HTMLDivElement>(null)\n * useIntersectionObserver(\n * ref,\n * (entry) => { doSomething(entry) },\n * { rootMargin: '10px' },\n * { disabled: false }\n * )\n * return <div ref={ref} />\n * ```\n */\nexport function useIntersectionObserver<T extends Element>(\n ref: Solid.Accessor<T | null>,\n callback: (entry: IntersectionObserverEntry | undefined) => void,\n intersectionObserverOptions: IntersectionObserverInit = {},\n options: { disabled?: boolean } = {},\n): Solid.Accessor<IntersectionObserver | null> {\n const isIntersectionObserverAvailable =\n typeof IntersectionObserver === 'function'\n let observerRef: IntersectionObserver | null = null\n\n Solid.createEffect(() => {\n const r = ref()\n if (!r || !isIntersectionObserverAvailable || options.disabled) {\n return\n }\n\n observerRef = new IntersectionObserver(([entry]) => {\n callback(entry)\n }, intersectionObserverOptions)\n\n observerRef.observe(r)\n\n Solid.onCleanup(() => {\n observerRef?.disconnect()\n })\n })\n\n return () => observerRef\n}\n"],"names":["Solid"],"mappings":";;;;;;;;;;;;;;;;;;;;AAEO,MAAM,kBACX,OAAO,WAAW,cAAcA,iBAAM,qBAAqBA,iBAAM;AAEtD,MAAA,cAAc,CAAC,OAAsB;AAChD,SAAOA,iBAAM;AAAA,IACX,CACE,OAA8D;AAAA,MAC5D,SAAS;AAAA,MACT,UAAU;AAAA,IAAA,MAET;AACH,YAAM,UAAU,GAAG;AAEf,UAAA,KAAK,YAAY,SAAS;AAC5B,aAAK,WAAW,KAAK;AACrB,aAAK,UAAU;AAAA,MAAA;AAGV,aAAA;AAAA,IAAA;AAAA,EAEX;AACF;AA2BgB,SAAA,wBACd,KACA,UACA,8BAAwD,CACxD,GAAA,UAAkC,IACW;AACvC,QAAA,kCACJ,OAAO,yBAAyB;AAClC,MAAI,cAA2C;AAE/CA,mBAAM,aAAa,MAAM;AACvB,UAAM,IAAI,IAAI;AACd,QAAI,CAAC,KAAK,CAAC,mCAAmC,QAAQ,UAAU;AAC9D;AAAA,IAAA;AAGF,kBAAc,IAAI,qBAAqB,CAAC,CAAC,KAAK,MAAM;AAClD,eAAS,KAAK;AAAA,OACb,2BAA2B;AAE9B,gBAAY,QAAQ,CAAC;AAErBA,qBAAM,UAAU,MAAM;AACpB,iDAAa;AAAA,IAAW,CACzB;AAAA,EAAA,CACF;AAED,SAAO,MAAM;AACf;;;;"}
@@ -0,0 +1,34 @@
1
+ import * as Solid from 'solid-js';
2
+ export declare const useLayoutEffect: typeof Solid.createRenderEffect;
3
+ export declare const usePrevious: (fn: () => boolean) => Solid.Accessor<{
4
+ current: boolean | null;
5
+ previous: boolean | null;
6
+ }>;
7
+ /**
8
+ * React hook to wrap `IntersectionObserver`.
9
+ *
10
+ * This hook will create an `IntersectionObserver` and observe the ref passed to it.
11
+ *
12
+ * When the intersection changes, the callback will be called with the `IntersectionObserverEntry`.
13
+ *
14
+ * @param ref - The ref to observe
15
+ * @param intersectionObserverOptions - The options to pass to the IntersectionObserver
16
+ * @param options - The options to pass to the hook
17
+ * @param callback - The callback to call when the intersection changes
18
+ * @returns The IntersectionObserver instance
19
+ * @example
20
+ * ```tsx
21
+ * const MyComponent = () => {
22
+ * const ref = React.useRef<HTMLDivElement>(null)
23
+ * useIntersectionObserver(
24
+ * ref,
25
+ * (entry) => { doSomething(entry) },
26
+ * { rootMargin: '10px' },
27
+ * { disabled: false }
28
+ * )
29
+ * return <div ref={ref} />
30
+ * ```
31
+ */
32
+ export declare function useIntersectionObserver<T extends Element>(ref: Solid.Accessor<T | null>, callback: (entry: IntersectionObserverEntry | undefined) => void, intersectionObserverOptions?: IntersectionObserverInit, options?: {
33
+ disabled?: boolean;
34
+ }): Solid.Accessor<IntersectionObserver | null>;
@@ -0,0 +1,2 @@
1
+ import { RouterManagedTag } from '@tanstack/router-core';
2
+ export declare function Asset({ tag, attrs, children }: RouterManagedTag): any;
@@ -0,0 +1,49 @@
1
+ import { template, spread, mergeProps, createComponent } from "solid-js/web";
2
+ import { Style, Meta, Title } from "@solidjs/meta";
3
+ var _tmpl$ = /* @__PURE__ */ template(`<link>`), _tmpl$2 = /* @__PURE__ */ template(`<script>`);
4
+ function Asset({
5
+ tag,
6
+ attrs,
7
+ children
8
+ }) {
9
+ switch (tag) {
10
+ case "title":
11
+ return createComponent(Title, mergeProps(attrs, {
12
+ children
13
+ }));
14
+ case "meta":
15
+ return createComponent(Meta, attrs);
16
+ case "link":
17
+ return (() => {
18
+ var _el$ = _tmpl$();
19
+ spread(_el$, attrs, false, false);
20
+ return _el$;
21
+ })();
22
+ case "style":
23
+ return createComponent(Style, mergeProps(attrs, {
24
+ innerHTML: children
25
+ }));
26
+ case "script":
27
+ if (attrs && attrs.src) {
28
+ return (() => {
29
+ var _el$2 = _tmpl$2();
30
+ spread(_el$2, attrs, false, false);
31
+ return _el$2;
32
+ })();
33
+ }
34
+ if (typeof children === "string") return (() => {
35
+ var _el$3 = _tmpl$2();
36
+ spread(_el$3, mergeProps(attrs, {
37
+ "innerHTML": children
38
+ }), false, false);
39
+ return _el$3;
40
+ })();
41
+ return null;
42
+ default:
43
+ return null;
44
+ }
45
+ }
46
+ export {
47
+ Asset
48
+ };
49
+ //# sourceMappingURL=Asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Asset.js","sources":["../../src/Asset.tsx"],"sourcesContent":["import { Meta, Style, Title } from '@solidjs/meta'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport function Asset({ tag, attrs, children }: RouterManagedTag): any {\n switch (tag) {\n case 'title':\n return <Title {...attrs}>{children}</Title>\n case 'meta':\n return <Meta {...attrs} />\n case 'link':\n return <link {...attrs} />\n case 'style':\n return <Style {...attrs} innerHTML={children} />\n case 'script':\n if ((attrs as any) && (attrs as any).src) {\n return <script {...attrs} />\n }\n if (typeof children === 'string')\n return <script {...attrs} innerHTML={children} />\n return null\n default:\n return null\n }\n}\n"],"names":["Asset","tag","attrs","children","_$createComponent","Title","_$mergeProps","Meta","_el$","_tmpl$","Style","innerHTML","src","_el$2","_tmpl$2","_el$3"],"mappings":";;;AAGO,SAASA,MAAM;AAAA,EAAEC;AAAAA,EAAKC;AAAAA,EAAOC;AAA2B,GAAQ;AACrE,UAAQF,KAAG;AAAA,IACT,KAAK;AACHG,aAAAA,gBAAQC,OAAKC,WAAKJ,OAAK;AAAA,QAAAC;AAAAA,MAAAA,CAAW,CAAA;AAAA,IACpC,KAAK;AACHC,aAAAA,gBAAQG,MAASL,KAAK;AAAA,IACxB,KAAK;AACH,cAAA,MAAA;AAAA,YAAAM,OAAAC,OAAA;AAAAD,eAAAA,MAAiBN,OAAK,OAAA,KAAA;AAAAM,eAAAA;AAAAA,MAAAA,GAAA;AAAA,IACxB,KAAK;AACHJ,aAAAA,gBAAQM,OAAKJ,WAAKJ,OAAK;AAAA,QAAES,WAAWR;AAAAA,MAAAA,CAAQ,CAAA;AAAA,IAC9C,KAAK;AACED,UAAAA,SAAkBA,MAAcU,KAAK;AACxC,gBAAA,MAAA;AAAA,cAAAC,QAAAC,QAAA;AAAAD,iBAAAA,OAAmBX,OAAK,OAAA,KAAA;AAAAW,iBAAAA;AAAAA,QAAAA,GAAA;AAAA,MAAA;AAE1B,UAAI,OAAOV,aAAa,SACtB,SAAA,MAAA;AAAA,YAAAY,QAAAD,QAAA;AAAAC,eAAAA,OAAAT,WAAmBJ,OAAK;AAAA,UAAA,aAAaC;AAAAA,QAAAA,CAAQ,GAAA,OAAA,KAAA;AAAAY,eAAAA;AAAAA,MAAAA,GAAA;AACxC,aAAA;AAAA,IACT;AACS,aAAA;AAAA,EAAA;AAEb;"}
@@ -0,0 +1,11 @@
1
+ import { ErrorRouteComponent } from './route.js';
2
+ import * as Solid from 'solid-js';
3
+ export declare function CatchBoundary(props: {
4
+ getResetKey: () => number | string;
5
+ children: Solid.JSX.Element;
6
+ errorComponent?: ErrorRouteComponent;
7
+ onCatch?: (error: Error) => void;
8
+ } & Solid.ParentProps): Solid.JSX.Element;
9
+ export declare function ErrorComponent({ error }: {
10
+ error: any;
11
+ }): Solid.JSX.Element;
@@ -0,0 +1,75 @@
1
+ import { createComponent, Dynamic, template, insert, memo, delegateEvents } from "solid-js/web";
2
+ import * as Solid from "solid-js";
3
+ var _tmpl$ = /* @__PURE__ */ template(`<div><div><strong>Something went wrong!</strong><button></button></div><div>`), _tmpl$2 = /* @__PURE__ */ template(`<div><pre>`), _tmpl$3 = /* @__PURE__ */ template(`<code>`);
4
+ function CatchBoundary(props) {
5
+ return createComponent(Solid.ErrorBoundary, {
6
+ fallback: (error, reset) => {
7
+ var _a;
8
+ (_a = props.onCatch) == null ? void 0 : _a.call(props, error);
9
+ Solid.createEffect(Solid.on([props.getResetKey], () => reset(), {
10
+ defer: true
11
+ }));
12
+ return createComponent(Dynamic, {
13
+ get component() {
14
+ return props.errorComponent ?? ErrorComponent;
15
+ },
16
+ error,
17
+ reset
18
+ });
19
+ },
20
+ get children() {
21
+ return props.children;
22
+ }
23
+ });
24
+ }
25
+ function ErrorComponent({
26
+ error
27
+ }) {
28
+ const [show, setShow] = Solid.createSignal(process.env.NODE_ENV !== "production");
29
+ return (() => {
30
+ var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling, _el$5 = _el$2.nextSibling;
31
+ _el$.style.setProperty("padding", ".5rem");
32
+ _el$.style.setProperty("max-width", "100%");
33
+ _el$2.style.setProperty("display", "flex");
34
+ _el$2.style.setProperty("align-items", "center");
35
+ _el$2.style.setProperty("gap", ".5rem");
36
+ _el$3.style.setProperty("font-size", "1rem");
37
+ _el$4.$$click = () => setShow((d) => !d);
38
+ _el$4.style.setProperty("appearance", "none");
39
+ _el$4.style.setProperty("font-size", ".6em");
40
+ _el$4.style.setProperty("border", "1px solid currentColor");
41
+ _el$4.style.setProperty("padding", ".1rem .2rem");
42
+ _el$4.style.setProperty("font-weight", "bold");
43
+ _el$4.style.setProperty("border-radius", ".25rem");
44
+ insert(_el$4, () => show() ? "Hide Error" : "Show Error");
45
+ _el$5.style.setProperty("height", ".25rem");
46
+ insert(_el$, (() => {
47
+ var _c$ = memo(() => !!show());
48
+ return () => _c$() ? (() => {
49
+ var _el$6 = _tmpl$2(), _el$7 = _el$6.firstChild;
50
+ _el$7.style.setProperty("font-size", ".7em");
51
+ _el$7.style.setProperty("border", "1px solid red");
52
+ _el$7.style.setProperty("border-radius", ".25rem");
53
+ _el$7.style.setProperty("padding", ".3rem");
54
+ _el$7.style.setProperty("color", "red");
55
+ _el$7.style.setProperty("overflow", "auto");
56
+ insert(_el$7, (() => {
57
+ var _c$2 = memo(() => !!error.message);
58
+ return () => _c$2() ? (() => {
59
+ var _el$8 = _tmpl$3();
60
+ insert(_el$8, () => error.message);
61
+ return _el$8;
62
+ })() : null;
63
+ })());
64
+ return _el$6;
65
+ })() : null;
66
+ })(), null);
67
+ return _el$;
68
+ })();
69
+ }
70
+ delegateEvents(["click"]);
71
+ export {
72
+ CatchBoundary,
73
+ ErrorComponent
74
+ };
75
+ //# sourceMappingURL=CatchBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CatchBoundary.js","sources":["../../src/CatchBoundary.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { Dynamic } from 'solid-js/web'\nimport type { ErrorRouteComponent } from './route'\n\nexport function CatchBoundary(\n props: {\n getResetKey: () => number | string\n children: Solid.JSX.Element\n errorComponent?: ErrorRouteComponent\n onCatch?: (error: Error) => void\n } & Solid.ParentProps,\n) {\n return (\n <Solid.ErrorBoundary\n fallback={(error, reset) => {\n props.onCatch?.(error)\n\n Solid.createEffect(\n Solid.on([props.getResetKey], () => reset(), { defer: true }),\n )\n\n return (\n <Dynamic\n component={props.errorComponent ?? ErrorComponent}\n error={error}\n reset={reset}\n />\n )\n }}\n >\n {props.children}\n </Solid.ErrorBoundary>\n )\n}\n\nexport function ErrorComponent({ error }: { error: any }) {\n const [show, setShow] = Solid.createSignal(\n process.env.NODE_ENV !== 'production',\n )\n\n return (\n <div style={{ padding: '.5rem', 'max-width': '100%' }}>\n <div style={{ display: 'flex', 'align-items': 'center', gap: '.5rem' }}>\n <strong style={{ 'font-size': '1rem' }}>Something went wrong!</strong>\n <button\n style={{\n appearance: 'none',\n 'font-size': '.6em',\n border: '1px solid currentColor',\n padding: '.1rem .2rem',\n 'font-weight': 'bold',\n 'border-radius': '.25rem',\n }}\n onClick={() => setShow((d) => !d)}\n >\n {show() ? 'Hide Error' : 'Show Error'}\n </button>\n </div>\n <div style={{ height: '.25rem' }} />\n {show() ? (\n <div>\n <pre\n style={{\n 'font-size': '.7em',\n border: '1px solid red',\n 'border-radius': '.25rem',\n padding: '.3rem',\n color: 'red',\n overflow: 'auto',\n }}\n >\n {error.message ? <code>{error.message}</code> : null}\n </pre>\n </div>\n ) : null}\n </div>\n )\n}\n"],"names":["CatchBoundary","props","_$createComponent","Solid","ErrorBoundary","fallback","error","reset","onCatch","createEffect","on","getResetKey","defer","Dynamic","component","errorComponent","ErrorComponent","children","show","setShow","createSignal","process","env","NODE_ENV","_el$","_tmpl$","_el$2","firstChild","_el$3","_el$4","nextSibling","_el$5","style","setProperty","$$click","d","_$insert","_c$","_$memo","_el$6","_tmpl$2","_el$7","_c$2","message","_el$8","_tmpl$3","_$delegateEvents"],"mappings":";;;AAIO,SAASA,cACdC,OAMA;AACAC,SAAAA,gBACGC,MAAMC,eAAa;AAAA,IAClBC,UAAUA,CAACC,OAAOC,UAAU;;AAC1BN,kBAAMO,YAANP,+BAAgBK;AAEVG,YAAAA,aACJN,MAAMO,GAAG,CAACT,MAAMU,WAAW,GAAG,MAAMJ,SAAS;AAAA,QAAEK,OAAO;AAAA,MAAA,CAAM,CAC9D;AAEA,aAAAV,gBACGW,SAAO;AAAA,QAAA,IACNC,YAAS;AAAA,iBAAEb,MAAMc,kBAAkBC;AAAAA,QAAc;AAAA,QACjDV;AAAAA,QACAC;AAAAA,MAAAA,CAAY;AAAA,IAGlB;AAAA,IAAC,IAAAU,WAAA;AAAA,aAEAhB,MAAMgB;AAAAA,IAAAA;AAAAA,EAAQ,CAAA;AAGrB;AAEO,SAASD,eAAe;AAAA,EAAEV;AAAsB,GAAG;AAClD,QAAA,CAACY,MAAMC,OAAO,IAAIhB,MAAMiB,aAC5BC,QAAQC,IAAIC,aAAa,YAC3B;AAEA,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAC,GAAAA,QAAAF,KAAAG,YAAAC,QAAAF,MAAAC,YAAAE,QAAAD,MAAAE,aAAAC,QAAAL,MAAAI;AAAAE,SAAAA,MAAAC,YAAA,WAAA,OAAA;AAAAD,SAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,WAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,eAAA,QAAA;AAAAD,UAAAA,MAAAC,YAAA,OAAA,OAAA;AAAAD,UAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAJ,UAAAK,UAaiB,MAAMf,QAASgB,CAAAA,MAAM,CAACA,CAAC;AAACH,UAAAA,MAAAC,YAAA,cAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,UAAA,wBAAA;AAAAD,UAAAA,MAAAC,YAAA,WAAA,aAAA;AAAAD,UAAAA,MAAAC,YAAA,eAAA,MAAA;AAAAD,UAAAA,MAAAC,YAAA,iBAAA,QAAA;AAAAG,WAAAP,OAEhCX,MAAAA,KAAK,IAAI,eAAe,YAAY;AAAAc,UAAAA,MAAAC,YAAA,UAAA,QAAA;AAAAG,WAAAZ,OAAA,MAAA;AAAA,UAAAa,MAAAC,KAIxCpB,MAAAA,CAAAA,CAAAA,MAAM;AAAA,aAAA,MAANmB,IAAA,KAAA,MAAA;AAAA,YAAAE,QAAAC,QAAAA,GAAAC,QAAAF,MAAAZ;AAAAK,cAAAA,MAAAC,YAAA,aAAA,MAAA;AAAAD,cAAAA,MAAAC,YAAA,UAAA,eAAA;AAAAD,cAAAA,MAAAC,YAAA,iBAAA,QAAA;AAAAD,cAAAA,MAAAC,YAAA,WAAA,OAAA;AAAAD,cAAAA,MAAAC,YAAA,SAAA,KAAA;AAAAD,cAAAA,MAAAC,YAAA,YAAA,MAAA;AAAAG,eAAAK,QAAA,MAAA;AAAA,cAAAC,OAAAJ,KAYMhC,MAAAA,CAAAA,CAAAA,MAAMqC,OAAO;AAAA,iBAAA,MAAbD,KAAA,KAAA,MAAA;AAAA,gBAAAE,QAAAC,QAAA;AAAAD,mBAAAA,OAAuBtC,MAAAA,MAAMqC,OAAO;AAAAC,mBAAAA;AAAAA,iBAAW;AAAA,QAAA,IAAI;AAAAL,eAAAA;AAAAA,aAGtD;AAAA,IAAI,GAAA,GAAA,IAAA;AAAAf,WAAAA;AAAAA,EAAAA,GAAA;AAGd;AAACsB,eAAA,CAAA,OAAA,CAAA;"}
@@ -0,0 +1,49 @@
1
+ import * as Solid from 'solid-js';
2
+ export interface ClientOnlyProps {
3
+ /**
4
+ * The children to render if the JS is loaded.
5
+ */
6
+ children: Solid.JSX.Element;
7
+ /**
8
+ * The fallback component to render if the JS is not yet loaded.
9
+ */
10
+ fallback?: Solid.JSX.Element;
11
+ }
12
+ /**
13
+ * Render the children only after the JS has loaded client-side. Use an optional
14
+ * fallback component if the JS is not yet loaded.
15
+ *
16
+ * @example
17
+ * Render a Chart component if JS loads, renders a simple FakeChart
18
+ * component server-side or if there is no JS. The FakeChart can have only the
19
+ * UI without the behavior or be a loading spinner or skeleton.
20
+ *
21
+ * ```tsx
22
+ * return (
23
+ * <ClientOnly fallback={<FakeChart />}>
24
+ * <Chart />
25
+ * </ClientOnly>
26
+ * )
27
+ * ```
28
+ */
29
+ export declare function ClientOnly(props: ClientOnlyProps): Solid.JSX.Element;
30
+ /**
31
+ * Return a boolean indicating if the JS has been hydrated already.
32
+ * When doing Server-Side Rendering, the result will always be false.
33
+ * When doing Client-Side Rendering, the result will always be false on the
34
+ * first render and true from then on. Even if a new component renders it will
35
+ * always start with true.
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * // Disable a button that needs JS to work.
40
+ * let hydrated = useHydrated()
41
+ * return (
42
+ * <button type="button" disabled={!hydrated()} onClick={doSomethingCustom}>
43
+ * Click me
44
+ * </button>
45
+ * )
46
+ * ```
47
+ * @returns A signal accessor function that returns true if the JS has been hydrated already, false otherwise.
48
+ */
49
+ export declare function useHydrated(): Solid.Accessor<boolean>;
@@ -0,0 +1,19 @@
1
+ import { memo, isServer } from "solid-js/web";
2
+ import * as Solid from "solid-js";
3
+ function ClientOnly(props) {
4
+ return useHydrated() ? memo(() => props.children) : memo(() => props.fallback);
5
+ }
6
+ function useHydrated() {
7
+ const [hydrated, setHydrated] = Solid.createSignal(!isServer);
8
+ if (!isServer) {
9
+ Solid.createEffect(() => {
10
+ setHydrated(true);
11
+ });
12
+ }
13
+ return hydrated;
14
+ }
15
+ export {
16
+ ClientOnly,
17
+ useHydrated
18
+ };
19
+ //# sourceMappingURL=ClientOnly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientOnly.js","sources":["../../src/ClientOnly.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { isServer } from 'solid-js/web'\n\nexport interface ClientOnlyProps {\n /**\n * The children to render if the JS is loaded.\n */\n children: Solid.JSX.Element\n /**\n * The fallback component to render if the JS is not yet loaded.\n */\n fallback?: Solid.JSX.Element\n}\n\n/**\n * Render the children only after the JS has loaded client-side. Use an optional\n * fallback component if the JS is not yet loaded.\n *\n * @example\n * Render a Chart component if JS loads, renders a simple FakeChart\n * component server-side or if there is no JS. The FakeChart can have only the\n * UI without the behavior or be a loading spinner or skeleton.\n *\n * ```tsx\n * return (\n * <ClientOnly fallback={<FakeChart />}>\n * <Chart />\n * </ClientOnly>\n * )\n * ```\n */\nexport function ClientOnly(props: ClientOnlyProps) {\n return useHydrated() ? <>{props.children}</> : <>{props.fallback}</>\n}\n\n/**\n * Return a boolean indicating if the JS has been hydrated already.\n * When doing Server-Side Rendering, the result will always be false.\n * When doing Client-Side Rendering, the result will always be false on the\n * first render and true from then on. Even if a new component renders it will\n * always start with true.\n *\n * @example\n * ```tsx\n * // Disable a button that needs JS to work.\n * let hydrated = useHydrated()\n * return (\n * <button type=\"button\" disabled={!hydrated()} onClick={doSomethingCustom}>\n * Click me\n * </button>\n * )\n * ```\n * @returns A signal accessor function that returns true if the JS has been hydrated already, false otherwise.\n */\nexport function useHydrated() {\n const [hydrated, setHydrated] = Solid.createSignal(!isServer)\n\n if (!isServer) {\n Solid.createEffect(() => {\n setHydrated(true)\n })\n }\n\n return hydrated\n}\n"],"names":["ClientOnly","props","useHydrated","_$memo","children","fallback","hydrated","setHydrated","Solid","createSignal","isServer","createEffect"],"mappings":";;AA+BO,SAASA,WAAWC,OAAwB;AAC1CC,SAAAA,YAAAA,IAAaC,KAAMF,MAAAA,MAAMG,QAAQ,IAAAD,KAAA,MAAUF,MAAMI,QAAQ;AAClE;AAqBO,SAASH,cAAc;AAC5B,QAAM,CAACI,UAAUC,WAAW,IAAIC,MAAMC,aAAa,CAACC,QAAQ;AAE5D,MAAI,CAACA,UAAU;AACbF,UAAMG,aAAa,MAAM;AACvBJ,kBAAY,IAAI;AAAA,IAAA,CACjB;AAAA,EAAA;AAGID,SAAAA;AACT;"}
@@ -0,0 +1,8 @@
1
+ import { RouterManagedTag } from '@tanstack/router-core';
2
+ import * as Solid from 'solid-js';
3
+ export declare const useTags: () => () => RouterManagedTag[];
4
+ /**
5
+ * @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.
6
+ * It should be rendered in the `<head>` of your document.
7
+ */
8
+ export declare function HeadContent(): Solid.JSX.Element;
@@ -0,0 +1,129 @@
1
+ import { createComponent } from "solid-js/web";
2
+ import * as Solid from "solid-js";
3
+ import { MetaProvider } from "@solidjs/meta";
4
+ import { Asset } from "./Asset.js";
5
+ import { useRouter } from "./useRouter.js";
6
+ import { useRouterState } from "./useRouterState.js";
7
+ const useTags = () => {
8
+ const router = useRouter();
9
+ const routeMeta = useRouterState({
10
+ select: (state) => {
11
+ return state.matches.map((match) => match.meta).filter(Boolean);
12
+ }
13
+ });
14
+ const meta = Solid.createMemo(() => {
15
+ const resultMeta = [];
16
+ const metaByAttribute = {};
17
+ let title;
18
+ [...routeMeta()].reverse().forEach((metas) => {
19
+ [...metas].reverse().forEach((m) => {
20
+ if (!m) return;
21
+ if (m.title) {
22
+ if (!title) {
23
+ title = {
24
+ tag: "title",
25
+ children: m.title
26
+ };
27
+ }
28
+ } else {
29
+ const attribute = m.name ?? m.property;
30
+ if (attribute) {
31
+ if (metaByAttribute[attribute]) {
32
+ return;
33
+ } else {
34
+ metaByAttribute[attribute] = true;
35
+ }
36
+ }
37
+ resultMeta.push({
38
+ tag: "meta",
39
+ attrs: {
40
+ ...m
41
+ }
42
+ });
43
+ }
44
+ });
45
+ });
46
+ if (title) {
47
+ resultMeta.push(title);
48
+ }
49
+ resultMeta.reverse();
50
+ return resultMeta;
51
+ });
52
+ const links = useRouterState({
53
+ select: (state) => {
54
+ var _a;
55
+ const constructed = state.matches.map((match) => match.links).filter(Boolean).flat(1).map((link) => ({
56
+ tag: "link",
57
+ attrs: {
58
+ ...link
59
+ }
60
+ }));
61
+ const manifest = (_a = router.ssr) == null ? void 0 : _a.manifest;
62
+ const assets = state.matches.map((match) => {
63
+ var _a2;
64
+ return ((_a2 = manifest == null ? void 0 : manifest.routes[match.routeId]) == null ? void 0 : _a2.assets) ?? [];
65
+ }).filter(Boolean).flat(1).filter((asset) => asset.tag === "link").map((asset) => ({
66
+ tag: "link",
67
+ attrs: asset.attrs
68
+ }));
69
+ return [...constructed, ...assets];
70
+ }
71
+ });
72
+ const preloadMeta = useRouterState({
73
+ select: (state) => {
74
+ const preloadMeta2 = [];
75
+ state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach((route) => {
76
+ var _a, _b, _c, _d;
77
+ return (_d = (_c = (_b = (_a = router.ssr) == null ? void 0 : _a.manifest) == null ? void 0 : _b.routes[route.id]) == null ? void 0 : _c.preloads) == null ? void 0 : _d.filter(Boolean).forEach((preload) => {
78
+ preloadMeta2.push({
79
+ tag: "link",
80
+ attrs: {
81
+ rel: "modulepreload",
82
+ href: preload
83
+ }
84
+ });
85
+ });
86
+ });
87
+ return preloadMeta2;
88
+ }
89
+ });
90
+ const headScripts = useRouterState({
91
+ select: (state) => state.matches.map((match) => match.headScripts).flat(1).filter(Boolean).map(({
92
+ children,
93
+ ...script
94
+ }) => ({
95
+ tag: "script",
96
+ attrs: {
97
+ ...script
98
+ },
99
+ children
100
+ }))
101
+ });
102
+ return () => uniqBy([...meta(), ...preloadMeta(), ...links(), ...headScripts()], (d) => {
103
+ return JSON.stringify(d);
104
+ });
105
+ };
106
+ function HeadContent() {
107
+ const tags = useTags();
108
+ return createComponent(MetaProvider, {
109
+ get children() {
110
+ return tags().map((tag) => createComponent(Asset, tag));
111
+ }
112
+ });
113
+ }
114
+ function uniqBy(arr, fn) {
115
+ const seen = /* @__PURE__ */ new Set();
116
+ return arr.filter((item) => {
117
+ const key = fn(item);
118
+ if (seen.has(key)) {
119
+ return false;
120
+ }
121
+ seen.add(key);
122
+ return true;
123
+ });
124
+ }
125
+ export {
126
+ HeadContent,
127
+ useTags
128
+ };
129
+ //# sourceMappingURL=HeadContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeadContent.js","sources":["../../src/HeadContent.tsx"],"sourcesContent":["import * as Solid from 'solid-js'\nimport { MetaProvider } from '@solidjs/meta'\nimport { Asset } from './Asset'\nimport { useRouter } from './useRouter'\nimport { useRouterState } from './useRouterState'\nimport type { RouterManagedTag } from '@tanstack/router-core'\n\nexport const useTags = () => {\n const router = useRouter()\n\n const routeMeta = useRouterState({\n select: (state) => {\n return state.matches.map((match) => match.meta!).filter(Boolean)\n },\n })\n\n const meta: Solid.Accessor<Array<RouterManagedTag>> = Solid.createMemo(() => {\n const resultMeta: Array<RouterManagedTag> = []\n const metaByAttribute: Record<string, true> = {}\n let title: RouterManagedTag | undefined\n ;[...routeMeta()].reverse().forEach((metas) => {\n ;[...metas].reverse().forEach((m) => {\n if (!m) return\n\n if (m.title) {\n if (!title) {\n title = {\n tag: 'title',\n children: m.title,\n }\n }\n } else {\n const attribute = m.name ?? m.property\n if (attribute) {\n if (metaByAttribute[attribute]) {\n return\n } else {\n metaByAttribute[attribute] = true\n }\n }\n\n resultMeta.push({\n tag: 'meta',\n attrs: {\n ...m,\n },\n })\n }\n })\n })\n\n if (title) {\n resultMeta.push(title)\n }\n\n resultMeta.reverse()\n\n return resultMeta\n })\n\n const links = useRouterState({\n select: (state) => {\n const constructed = state.matches\n .map((match) => match.links!)\n .filter(Boolean)\n .flat(1)\n .map((link) => ({\n tag: 'link',\n attrs: {\n ...link,\n },\n })) satisfies Array<RouterManagedTag>\n\n const manifest = router.ssr?.manifest\n\n // These are the assets extracted from the ViteManifest\n // using the `startManifestPlugin`\n const assets = state.matches\n .map((match) => manifest?.routes[match.routeId]?.assets ?? [])\n .filter(Boolean)\n .flat(1)\n .filter((asset) => asset.tag === 'link')\n .map(\n (asset) =>\n ({\n tag: 'link',\n attrs: asset.attrs,\n }) satisfies RouterManagedTag,\n )\n\n return [...constructed, ...assets]\n },\n })\n\n const preloadMeta = useRouterState({\n select: (state) => {\n const preloadMeta: Array<RouterManagedTag> = []\n\n state.matches\n .map((match) => router.looseRoutesById[match.routeId]!)\n .forEach((route) =>\n router.ssr?.manifest?.routes[route.id]?.preloads\n ?.filter(Boolean)\n .forEach((preload) => {\n preloadMeta.push({\n tag: 'link',\n attrs: {\n rel: 'modulepreload',\n href: preload,\n },\n })\n }),\n )\n\n return preloadMeta\n },\n })\n\n const headScripts = useRouterState({\n select: (state) =>\n (\n state.matches\n .map((match) => match.headScripts!)\n .flat(1)\n .filter(Boolean) as Array<RouterManagedTag>\n ).map(({ children, ...script }) => ({\n tag: 'script',\n attrs: {\n ...script,\n },\n children,\n })),\n })\n\n return () =>\n uniqBy(\n [\n ...meta(),\n ...preloadMeta(),\n ...links(),\n ...headScripts(),\n ] as Array<RouterManagedTag>,\n (d) => {\n return JSON.stringify(d)\n },\n )\n}\n\n/**\n * @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.\n * It should be rendered in the `<head>` of your document.\n */\nexport function HeadContent() {\n const tags = useTags()\n return (\n <MetaProvider>\n {tags().map((tag) => (\n <Asset {...tag} />\n ))}\n </MetaProvider>\n )\n}\n\nfunction uniqBy<T>(arr: Array<T>, fn: (item: T) => string) {\n const seen = new Set<string>()\n return arr.filter((item) => {\n const key = fn(item)\n if (seen.has(key)) {\n return false\n }\n seen.add(key)\n return true\n })\n}\n"],"names":["useTags","router","useRouter","routeMeta","useRouterState","select","state","matches","map","match","meta","filter","Boolean","Solid","createMemo","resultMeta","metaByAttribute","title","reverse","forEach","metas","m","tag","children","attribute","name","property","push","attrs","links","constructed","flat","link","manifest","ssr","assets","routes","routeId","asset","preloadMeta","looseRoutesById","route","id","preloads","preload","rel","href","headScripts","script","uniqBy","d","JSON","stringify","HeadContent","tags","_$createComponent","MetaProvider","Asset","arr","fn","seen","Set","item","key","has","add"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import * as Solid from 'solid-js';
2
+ export declare const Match: (props: {
3
+ matchId: string;
4
+ }) => Solid.JSX.Element;
5
+ export declare const MatchInner: (props: {
6
+ matchId: string;
7
+ }) => any;
8
+ export declare const Outlet: () => Solid.JSX.Element;