@studiolambda/router 0.1.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { t as e } from "./matcher-ehhvtyaT.js";
1
+ import { t as e } from "./matcher-CQObVRFk.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  import { Suspense as n, createContext as r, use as i, useEffect as a, useEffectEvent as o, useRef as s, useState as c, useTransition as l } from "react";
4
4
  //#region \0rolldown/runtime.js
@@ -106,33 +106,34 @@ function T(e, t) {
106
106
  }
107
107
  //#endregion
108
108
  //#region src/react/context/PathnameContext.ts
109
- var E = r("/");
109
+ var E = r("/"), D = r(null);
110
110
  //#endregion
111
111
  //#region src/react/extractPathname.ts
112
- function D(e) {
112
+ function O(e) {
113
113
  return e ? new URL(e, "http://localhost").pathname : "/";
114
114
  }
115
115
  //#endregion
116
116
  //#region src/react/components/Router.tsx
117
- function O(e) {
118
- let r = (0, h.c)(44), a = i(_), s = e.navigation ?? a ?? (typeof window < "u" ? window.navigation : void 0);
117
+ function k(e) {
118
+ let r = (0, h.c)(47), a = i(_), s = e.navigation ?? a ?? (typeof window < "u" ? window.navigation : void 0);
119
119
  if (s == null) throw Error("Router requires a navigation prop, NavigationContext provider, or browser Navigation API support. Use createMemoryNavigation() for SSR or non-browser environments.");
120
120
  let u = e.matcher ?? i(C), d = l(), p = e.transition ?? d, m;
121
121
  r[0] === u ? m = r[1] : (m = { matcher: u }, r[0] = u, r[1] = m);
122
- let O = w(m), k = e.notFound ?? b, A;
123
- r[2] !== s.currentEntry?.url || r[3] !== O || r[4] !== k ? (A = function() {
122
+ let k = w(m), A = e.notFound ?? b, j;
123
+ r[2] !== s.currentEntry?.url || r[3] !== k || r[4] !== A ? (j = function() {
124
124
  let e = s.currentEntry?.url ?? null;
125
125
  return {
126
- match: O(e, k),
126
+ match: k(e, A),
127
127
  signal: null,
128
128
  navigationType: null,
129
- pathname: D(e)
129
+ pathname: O(e),
130
+ url: e
130
131
  };
131
- }, r[2] = s.currentEntry?.url, r[3] = O, r[4] = k, r[5] = A) : A = r[5];
132
- let [j, M] = c(A), { createPrecommitHandler: N, createHandler: P } = S(p), F;
133
- r[6] !== P || r[7] !== N || r[8] !== O || r[9] !== k ? (F = function(e) {
132
+ }, r[2] = s.currentEntry?.url, r[3] = k, r[4] = A, r[5] = j) : j = r[5];
133
+ let [M, N] = c(j), { createPrecommitHandler: P, createHandler: F } = S(p), I;
134
+ r[6] !== F || r[7] !== P || r[8] !== k || r[9] !== A ? (I = function(e) {
134
135
  if (!e.canIntercept || e.hashChange || e.downloadRequest !== null) return;
135
- let t = O(e.destination.url, k);
136
+ let t = k(e.destination.url, A);
136
137
  if (e.formData !== null && t.handler.formHandler !== void 0) {
137
138
  e.intercept({
138
139
  scroll: t.handler.scroll,
@@ -143,16 +144,17 @@ function O(e) {
143
144
  });
144
145
  return;
145
146
  }
146
- let n = N({
147
+ let n = P({
147
148
  prefetch: t.handler.prefetch,
148
149
  params: t.params,
149
150
  url: new URL(e.destination.url)
150
- }), r = P(function() {
151
- M({
151
+ }), r = F(function() {
152
+ N({
152
153
  match: t,
153
154
  signal: e.signal,
154
155
  navigationType: e.navigationType,
155
- pathname: D(e.destination.url)
156
+ pathname: O(e.destination.url),
157
+ url: e.destination.url
156
158
  });
157
159
  });
158
160
  e.intercept({
@@ -161,65 +163,70 @@ function O(e) {
161
163
  scroll: t.handler.scroll,
162
164
  focusReset: t.handler.focusReset
163
165
  });
164
- }, r[6] = P, r[7] = N, r[8] = O, r[9] = k, r[10] = F) : F = r[10];
165
- let I = o(F), L;
166
- r[11] !== I || r[12] !== e.onNavigateError || r[13] !== e.onNavigateSuccess ? (L = {
167
- onNavigate: I,
166
+ }, r[6] = F, r[7] = P, r[8] = k, r[9] = A, r[10] = I) : I = r[10];
167
+ let L = o(I), R;
168
+ r[11] !== L || r[12] !== e.onNavigateError || r[13] !== e.onNavigateSuccess ? (R = {
169
+ onNavigate: L,
168
170
  onNavigateSuccess: e.onNavigateSuccess,
169
171
  onNavigateError: e.onNavigateError
170
- }, r[11] = I, r[12] = e.onNavigateError, r[13] = e.onNavigateSuccess, r[14] = L) : L = r[14], T(s, L);
171
- let R = j.match.handler.component, z = j.match.handler.middlewares, B;
172
- r[15] === R ? B = r[16] : (B = /* @__PURE__ */ t(R, {}), r[15] = R, r[16] = B);
173
- let V;
174
- r[17] !== z || r[18] !== B ? (V = /* @__PURE__ */ t(f, {
175
- value: z,
176
- children: B
177
- }), r[17] = z, r[18] = B, r[19] = V) : V = r[19];
172
+ }, r[11] = L, r[12] = e.onNavigateError, r[13] = e.onNavigateSuccess, r[14] = R) : R = r[14], T(s, R);
173
+ let z = M.match.handler.component, B = M.match.handler.middlewares, V;
174
+ r[15] === z ? V = r[16] : (V = /* @__PURE__ */ t(z, {}), r[15] = z, r[16] = V);
178
175
  let H;
179
- r[20] !== e.fallback || r[21] !== V ? (H = /* @__PURE__ */ t(n, {
180
- fallback: e.fallback,
176
+ r[17] !== B || r[18] !== V ? (H = /* @__PURE__ */ t(f, {
177
+ value: B,
181
178
  children: V
182
- }), r[20] = e.fallback, r[21] = V, r[22] = H) : H = r[22];
179
+ }), r[17] = B, r[18] = V, r[19] = H) : H = r[19];
183
180
  let U;
184
- r[23] !== j.match.params || r[24] !== H ? (U = /* @__PURE__ */ t(g, {
185
- value: j.match.params,
181
+ r[20] !== e.fallback || r[21] !== H ? (U = /* @__PURE__ */ t(n, {
182
+ fallback: e.fallback,
186
183
  children: H
187
- }), r[23] = j.match.params, r[24] = H, r[25] = U) : U = r[25];
184
+ }), r[20] = e.fallback, r[21] = H, r[22] = U) : U = r[22];
188
185
  let W;
189
- r[26] !== j.pathname || r[27] !== U ? (W = /* @__PURE__ */ t(E, {
190
- value: j.pathname,
186
+ r[23] !== M.match.params || r[24] !== U ? (W = /* @__PURE__ */ t(g, {
187
+ value: M.match.params,
191
188
  children: U
192
- }), r[26] = j.pathname, r[27] = U, r[28] = W) : W = r[28];
189
+ }), r[23] = M.match.params, r[24] = U, r[25] = W) : W = r[25];
193
190
  let G;
194
- r[29] !== j.signal || r[30] !== W ? (G = /* @__PURE__ */ t(v, {
195
- value: j.signal,
191
+ r[26] !== M.url || r[27] !== W ? (G = /* @__PURE__ */ t(D, {
192
+ value: M.url,
196
193
  children: W
197
- }), r[29] = j.signal, r[30] = W, r[31] = G) : G = r[31];
194
+ }), r[26] = M.url, r[27] = W, r[28] = G) : G = r[28];
198
195
  let K;
199
- r[32] !== j.navigationType || r[33] !== G ? (K = /* @__PURE__ */ t(y, {
200
- value: j.navigationType,
196
+ r[29] !== M.pathname || r[30] !== G ? (K = /* @__PURE__ */ t(E, {
197
+ value: M.pathname,
201
198
  children: G
202
- }), r[32] = j.navigationType, r[33] = G, r[34] = K) : K = r[34];
199
+ }), r[29] = M.pathname, r[30] = G, r[31] = K) : K = r[31];
203
200
  let q;
204
- r[35] !== u || r[36] !== K ? (q = /* @__PURE__ */ t(C, {
205
- value: u,
201
+ r[32] !== M.signal || r[33] !== K ? (q = /* @__PURE__ */ t(v, {
202
+ value: M.signal,
206
203
  children: K
207
- }), r[35] = u, r[36] = K, r[37] = q) : q = r[37];
204
+ }), r[32] = M.signal, r[33] = K, r[34] = q) : q = r[34];
208
205
  let J;
209
- r[38] !== s || r[39] !== q ? (J = /* @__PURE__ */ t(_, {
210
- value: s,
206
+ r[35] !== M.navigationType || r[36] !== q ? (J = /* @__PURE__ */ t(y, {
207
+ value: M.navigationType,
211
208
  children: q
212
- }), r[38] = s, r[39] = q, r[40] = J) : J = r[40];
209
+ }), r[35] = M.navigationType, r[36] = q, r[37] = J) : J = r[37];
213
210
  let Y;
214
- return r[41] !== J || r[42] !== p ? (Y = /* @__PURE__ */ t(x, {
215
- value: p,
211
+ r[38] !== u || r[39] !== J ? (Y = /* @__PURE__ */ t(C, {
212
+ value: u,
216
213
  children: J
217
- }), r[41] = J, r[42] = p, r[43] = Y) : Y = r[43], Y;
214
+ }), r[38] = u, r[39] = J, r[40] = Y) : Y = r[40];
215
+ let X;
216
+ r[41] !== s || r[42] !== Y ? (X = /* @__PURE__ */ t(_, {
217
+ value: s,
218
+ children: Y
219
+ }), r[41] = s, r[42] = Y, r[43] = X) : X = r[43];
220
+ let Z;
221
+ return r[44] !== X || r[45] !== p ? (Z = /* @__PURE__ */ t(x, {
222
+ value: p,
223
+ children: X
224
+ }), r[44] = X, r[45] = p, r[46] = Z) : Z = r[46], Z;
218
225
  }
219
226
  //#endregion
220
227
  //#region src/react/hooks/useActiveLinkProps.ts
221
- function k(e, t) {
222
- let n = A(e, i(E), t?.exact ?? !0);
228
+ function A(e, t) {
229
+ let n = j(e, i(E), t?.exact ?? !0);
223
230
  return {
224
231
  isActive: n,
225
232
  props: {
@@ -228,19 +235,23 @@ function k(e, t) {
228
235
  }
229
236
  };
230
237
  }
231
- function A(e, t, n) {
238
+ function j(e, t, n) {
232
239
  if (e === void 0) return !1;
233
- let r = D(e);
240
+ let r = O(e);
234
241
  return n ? r === t : t === r || t.startsWith(r + "/");
235
242
  }
236
243
  //#endregion
237
244
  //#region src/react/hooks/usePrefetch.ts
238
- function j(e) {
245
+ var M = /* @__PURE__ */ new WeakMap();
246
+ function N(e) {
239
247
  let t = e?.matcher ?? i(C);
240
248
  return function(e) {
241
249
  let n = new URL(e, "http://localhost"), r = t.match(n.pathname);
242
250
  if (r?.handler.prefetch === void 0) return;
243
- let i = {
251
+ let i = M.get(t);
252
+ if (i === void 0 && (i = /* @__PURE__ */ new Set(), M.set(t, i)), i.has(n.pathname)) return;
253
+ i.add(n.pathname);
254
+ let a = {
244
255
  params: r.params,
245
256
  url: n,
246
257
  controller: {
@@ -248,13 +259,13 @@ function j(e) {
248
259
  addHandler() {}
249
260
  }
250
261
  };
251
- return r.handler.prefetch(i);
262
+ return r.handler.prefetch(a);
252
263
  };
253
264
  }
254
265
  //#endregion
255
266
  //#region src/react/hooks/usePrefetchEffect.ts
256
- function M(e, t) {
257
- let { href: n, on: r, once: i = !0, matcher: s } = t, c = j({ matcher: s }), l = o(function(e, t) {
267
+ function P(e, t) {
268
+ let { href: n, on: r, once: i = !0, matcher: s } = t, c = N({ matcher: s }), l = o(function(e, t) {
258
269
  for (let t of e) t.isIntersecting && n !== void 0 && c(n);
259
270
  i && t.disconnect();
260
271
  }), u = o(function() {
@@ -283,18 +294,18 @@ function M(e, t) {
283
294
  }
284
295
  //#endregion
285
296
  //#region src/react/components/Link.tsx
286
- function N(e) {
297
+ function F(e) {
287
298
  let n = (0, h.c)(23), r, i, a, o, c, l, u;
288
299
  n[0] === e ? (r = n[1], i = n[2], a = n[3], o = n[4], c = n[5], l = n[6], u = n[7]) : ({prefetch: o, once: l, href: i, matcher: a, className: r, activeExact: u, ...c} = e, n[0] = e, n[1] = r, n[2] = i, n[3] = a, n[4] = o, n[5] = c, n[6] = l, n[7] = u);
289
300
  let d = l === void 0 ? !0 : l, f = u === void 0 ? !0 : u, p = s(null), m;
290
301
  n[8] === f ? m = n[9] : (m = { exact: f }, n[8] = f, n[9] = m);
291
- let { isActive: g, props: _ } = k(i, m), v;
302
+ let { isActive: g, props: _ } = A(i, m), v;
292
303
  n[10] !== i || n[11] !== a || n[12] !== d || n[13] !== o ? (v = {
293
304
  href: i,
294
305
  on: o,
295
306
  once: d,
296
307
  matcher: a
297
- }, n[10] = i, n[11] = a, n[12] = d, n[13] = o, n[14] = v) : v = n[14], M(p, v);
308
+ }, n[10] = i, n[11] = a, n[12] = d, n[13] = o, n[14] = v) : v = n[14], P(p, v);
298
309
  let y;
299
310
  n[15] !== r || n[16] !== g ? (y = typeof r == "function" ? r({ isActive: g }) : r, n[15] = r, n[16] = g, n[17] = y) : y = n[17];
300
311
  let b = y, x;
@@ -308,83 +319,99 @@ function N(e) {
308
319
  }
309
320
  //#endregion
310
321
  //#region src/react/hooks/useNavigation.ts
311
- function P() {
322
+ function I() {
312
323
  let e = i(_);
313
324
  if (e === null) throw Error("useNavigation requires a <Router> or <NavigationContext> provider");
314
325
  return e;
315
326
  }
316
327
  //#endregion
317
328
  //#region src/react/hooks/useNavigate.ts
318
- function F() {
319
- let e = P();
329
+ function L() {
330
+ let e = I();
320
331
  return function(t, n) {
321
332
  return e.navigate(t, n);
322
333
  };
323
334
  }
324
335
  //#endregion
325
336
  //#region src/react/hooks/useNavigationSignal.ts
326
- function I() {
337
+ function R() {
327
338
  return i(v);
328
339
  }
329
340
  //#endregion
330
341
  //#region src/react/hooks/useNavigationType.ts
331
- function L() {
342
+ function z() {
332
343
  return i(y);
333
344
  }
334
345
  //#endregion
335
346
  //#region src/react/hooks/useParams.ts
336
- function R() {
347
+ function B() {
337
348
  return i(g);
338
349
  }
339
350
  //#endregion
340
351
  //#region src/react/hooks/useIsPending.ts
341
- function z() {
352
+ function V() {
342
353
  let e = i(x);
343
354
  if (e === null) throw Error("useIsPending requires a <Router> or <TransitionContext> provider");
344
355
  return e[0];
345
356
  }
346
357
  //#endregion
347
358
  //#region src/react/hooks/usePathname.ts
348
- function B() {
359
+ function H() {
349
360
  return i(E);
350
361
  }
351
362
  //#endregion
352
363
  //#region src/react/hooks/useSearchParams.ts
353
- function V() {
354
- let e = P(), t = e.currentEntry?.url, n = t ? new URL(t).searchParams : new URLSearchParams();
355
- function r(t, n) {
356
- let r = e.currentEntry, i = new URL(r?.url ?? "/", "http://localhost"), a = typeof t == "function" ? t(i.searchParams) : t, o = (a instanceof URLSearchParams ? a : new URLSearchParams(a)).toString(), s = i.pathname + (o ? "?" + o : "");
357
- return e.navigate(s, { history: n?.history ?? "replace" });
364
+ function U() {
365
+ let e = I(), t = i(D), n = t ? new URL(t, "http://localhost").searchParams : new URLSearchParams();
366
+ function r(n, r) {
367
+ let i = new URL(t ?? "/", "http://localhost"), a = typeof n == "function" ? n(i.searchParams) : n, o = (a instanceof URLSearchParams ? a : new URLSearchParams(a)).toString(), s = i.pathname + (o ? "?" + o : "") + i.hash;
368
+ return e.navigate(s, { history: r?.history ?? "replace" });
358
369
  }
359
370
  return [n, r];
360
371
  }
361
372
  //#endregion
362
373
  //#region src/react/hooks/useBack.ts
363
- function H() {
364
- let e = P();
365
- function t(t) {
374
+ function W() {
375
+ let e = I(), [t, n] = c(e.canGoBack);
376
+ a(function() {
377
+ function t() {
378
+ n(e.canGoBack);
379
+ }
380
+ return e.addEventListener("currententrychange", t), function() {
381
+ e.removeEventListener("currententrychange", t);
382
+ };
383
+ }, [e]);
384
+ function r(t) {
366
385
  return e.back(t);
367
386
  }
368
387
  return {
369
- back: t,
370
- canGoBack: e.canGoBack
388
+ back: r,
389
+ canGoBack: t
371
390
  };
372
391
  }
373
392
  //#endregion
374
393
  //#region src/react/hooks/useForward.ts
375
- function U() {
376
- let e = P();
377
- function t(t) {
394
+ function G() {
395
+ let e = I(), [t, n] = c(e.canGoForward);
396
+ a(function() {
397
+ function t() {
398
+ n(e.canGoForward);
399
+ }
400
+ return e.addEventListener("currententrychange", t), function() {
401
+ e.removeEventListener("currententrychange", t);
402
+ };
403
+ }, [e]);
404
+ function r(t) {
378
405
  return e.forward(t);
379
406
  }
380
407
  return {
381
- forward: t,
382
- canGoForward: e.canGoForward
408
+ forward: r,
409
+ canGoForward: t
383
410
  };
384
411
  }
385
412
  //#endregion
386
413
  //#region src/react/navigation/createMemoryNavigation.ts
387
- function W(e) {
414
+ function K(e) {
388
415
  let t = { url: e.url };
389
416
  function n() {}
390
417
  function r() {}
@@ -410,96 +437,115 @@ function W(e) {
410
437
  }
411
438
  //#endregion
412
439
  //#region src/react/createRouter.ts
413
- function G(e, t) {
440
+ function q(e, t) {
414
441
  return e === "" && t === "" ? "" : e === "" ? t : t === "" || t === "/" ? e : (e.endsWith("/") ? e.slice(0, -1) : e) + (t.startsWith("/") ? t : "/" + t);
415
442
  }
416
- function K(e) {
443
+ function J(e) {
417
444
  if (e.length !== 0) return e.length === 1 ? e[0] : async function(t) {
418
445
  for (let n of e) await n(t);
419
446
  };
420
447
  }
421
- function q() {
448
+ function Y() {
422
449
  return null;
423
450
  }
424
- function J(e, t) {
425
- return function(n) {
426
- let r = {
427
- path: n,
451
+ function X(e, t, n) {
452
+ return function(r) {
453
+ let i = {
454
+ path: r,
428
455
  middlewares: [],
429
456
  prefetches: [],
430
457
  scroll: void 0,
431
458
  focusReset: void 0,
432
459
  formHandler: void 0
433
- };
434
- function i() {
435
- let e = G(t.prefix, r.path ?? "");
460
+ }, a = !1;
461
+ function o(e) {
462
+ if (a) throw Error(`cannot call .${e}() on a route builder that has already been consumed by .render(), .redirect(), or .group()`);
463
+ }
464
+ function s() {
465
+ let e = q(t.prefix, i.path ?? "");
436
466
  if (e === "") throw Error("cannot register a route without a path or group prefix");
437
467
  return e;
438
468
  }
439
- function a() {
440
- let e = [...t.middlewares, ...r.middlewares];
469
+ function c() {
470
+ let e = [...t.middlewares, ...i.middlewares];
441
471
  return e.length > 0 ? e : void 0;
442
472
  }
443
- function o() {
444
- return K([...t.prefetches, ...r.prefetches]);
473
+ function l() {
474
+ return J([...t.prefetches, ...i.prefetches]);
445
475
  }
446
- let s = {
476
+ let u = {
447
477
  middleware(e) {
448
- return r.middlewares.push(...e), s;
478
+ return o("middleware"), i.middlewares.push(...e), u;
449
479
  },
450
480
  prefetch(e) {
451
- return r.prefetches.push(e), s;
481
+ return o("prefetch"), i.prefetches.push(e), u;
452
482
  },
453
483
  scroll(e) {
454
- return r.scroll = e, s;
484
+ return o("scroll"), i.scroll = e, u;
455
485
  },
456
486
  focusReset(e) {
457
- return r.focusReset = e, s;
487
+ return o("focusReset"), i.focusReset = e, u;
458
488
  },
459
489
  formHandler(e) {
460
- return r.formHandler = e, s;
490
+ return o("formHandler"), i.formHandler = e, u;
461
491
  },
462
492
  render(t) {
463
- let n = i(), s = {
493
+ o("render"), a = !0;
494
+ let n = s(), r = {
464
495
  component: t,
465
- middlewares: a(),
466
- prefetch: o(),
467
- scroll: r.scroll,
468
- focusReset: r.focusReset,
469
- formHandler: r.formHandler
496
+ middlewares: c(),
497
+ prefetch: l(),
498
+ scroll: i.scroll,
499
+ focusReset: i.focusReset,
500
+ formHandler: i.formHandler
470
501
  };
471
- e.register(n, s);
502
+ e.register(n, r);
472
503
  },
473
504
  redirect(t) {
474
- let n = i(), r = {
475
- component: q,
505
+ o("redirect"), a = !0;
506
+ let r = s();
507
+ typeof t == "string" && n.set(r, t);
508
+ let i = {
509
+ component: Y,
476
510
  prefetch: function(e) {
477
511
  let n = typeof t == "function" ? t(e) : t;
478
512
  e.controller.redirect(n);
479
513
  }
480
514
  };
481
- e.register(n, r);
515
+ e.register(r, i);
482
516
  },
483
517
  group() {
484
- return J(e, {
485
- prefix: G(t.prefix, r.path ?? ""),
486
- middlewares: [...t.middlewares, ...r.middlewares],
487
- prefetches: [...t.prefetches, ...r.prefetches]
488
- });
518
+ return o("group"), a = !0, X(e, {
519
+ prefix: q(t.prefix, i.path ?? ""),
520
+ middlewares: [...t.middlewares, ...i.middlewares],
521
+ prefetches: [...t.prefetches, ...i.prefetches]
522
+ }, n);
489
523
  }
490
524
  };
491
- return s;
525
+ return u;
492
526
  };
493
527
  }
494
- function Y(t) {
495
- let n = e();
496
- return t(J(n, {
528
+ function Z(e) {
529
+ for (let [t] of e) {
530
+ let n = /* @__PURE__ */ new Set(), r = t;
531
+ for (; e.has(r);) {
532
+ if (n.has(r)) {
533
+ let e = [...n, r].join(" -> ");
534
+ throw Error(`redirect cycle detected: ${e}`);
535
+ }
536
+ n.add(r), r = e.get(r);
537
+ }
538
+ }
539
+ }
540
+ function Q(t) {
541
+ let n = e(), r = /* @__PURE__ */ new Map();
542
+ return t(X(n, {
497
543
  prefix: "",
498
544
  middlewares: [],
499
545
  prefetches: []
500
- })), n;
546
+ }, r)), Z(r), n;
501
547
  }
502
548
  //#endregion
503
- export { N as Link, C as MatcherContext, f as Middlewares, _ as NavigationContext, v as NavigationSignalContext, y as NavigationTypeContext, b as NotFound, g as ParamsContext, E as PathnameContext, O as Router, x as TransitionContext, W as createMemoryNavigation, Y as createRouter, D as extractPathname, k as useActiveLinkProps, H as useBack, U as useForward, z as useIsPending, F as useNavigate, P as useNavigation, T as useNavigationEvents, S as useNavigationHandlers, I as useNavigationSignal, L as useNavigationType, w as useNextMatch, R as useParams, B as usePathname, j as usePrefetch, M as usePrefetchEffect, V as useSearchParams };
549
+ export { F as Link, C as MatcherContext, f as Middlewares, _ as NavigationContext, v as NavigationSignalContext, y as NavigationTypeContext, b as NotFound, g as ParamsContext, E as PathnameContext, k as Router, x as TransitionContext, D as UrlContext, K as createMemoryNavigation, Q as createRouter, O as extractPathname, A as useActiveLinkProps, W as useBack, G as useForward, V as useIsPending, L as useNavigate, I as useNavigation, T as useNavigationEvents, S as useNavigationHandlers, R as useNavigationSignal, z as useNavigationType, w as useNextMatch, B as useParams, H as usePathname, N as usePrefetch, P as usePrefetchEffect, U as useSearchParams };
504
550
 
505
551
  //# sourceMappingURL=router_react.js.map