clear-react-router 1.0.1 → 1.0.3

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.
package/dist/index.js ADDED
@@ -0,0 +1,517 @@
1
+ var _e = Object.defineProperty;
2
+ var we = (r, n, a) => n in r ? _e(r, n, { enumerable: !0, configurable: !0, writable: !0, value: a }) : r[n] = a;
3
+ var S = (r, n, a) => we(r, typeof n != "symbol" ? n + "" : n, a);
4
+ import ke, { createContext as W, lazy as ye, Suspense as Te, useRef as te, useEffect as j, useState as T, useCallback as y, useMemo as N, useContext as q } from "react";
5
+ var C = { exports: {} }, P = {};
6
+ /**
7
+ * @license React
8
+ * react-jsx-runtime.production.js
9
+ *
10
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
11
+ *
12
+ * This source code is licensed under the MIT license found in the
13
+ * LICENSE file in the root directory of this source tree.
14
+ */
15
+ var I;
16
+ function ge() {
17
+ if (I) return P;
18
+ I = 1;
19
+ var r = Symbol.for("react.transitional.element"), n = Symbol.for("react.fragment");
20
+ function a(u, o, f) {
21
+ var s = null;
22
+ if (f !== void 0 && (s = "" + f), o.key !== void 0 && (s = "" + o.key), "key" in o) {
23
+ f = {};
24
+ for (var E in o)
25
+ E !== "key" && (f[E] = o[E]);
26
+ } else f = o;
27
+ return o = f.ref, {
28
+ $$typeof: r,
29
+ type: u,
30
+ key: s,
31
+ ref: o !== void 0 ? o : null,
32
+ props: f
33
+ };
34
+ }
35
+ return P.Fragment = n, P.jsx = a, P.jsxs = a, P;
36
+ }
37
+ var O = {};
38
+ /**
39
+ * @license React
40
+ * react-jsx-runtime.development.js
41
+ *
42
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
43
+ *
44
+ * This source code is licensed under the MIT license found in the
45
+ * LICENSE file in the root directory of this source tree.
46
+ */
47
+ var ee;
48
+ function Pe() {
49
+ return ee || (ee = 1, process.env.NODE_ENV !== "production" && (function() {
50
+ function r(e) {
51
+ if (e == null) return null;
52
+ if (typeof e == "function")
53
+ return e.$$typeof === Re ? null : e.displayName || e.name || null;
54
+ if (typeof e == "string") return e;
55
+ switch (e) {
56
+ case w:
57
+ return "Fragment";
58
+ case ue:
59
+ return "Profiler";
60
+ case x:
61
+ return "StrictMode";
62
+ case pe:
63
+ return "Suspense";
64
+ case he:
65
+ return "SuspenseList";
66
+ case Ee:
67
+ return "Activity";
68
+ }
69
+ if (typeof e == "object")
70
+ switch (typeof e.tag == "number" && console.error(
71
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
72
+ ), e.$$typeof) {
73
+ case R:
74
+ return "Portal";
75
+ case fe:
76
+ return e.displayName || "Context";
77
+ case le:
78
+ return (e._context.displayName || "Context") + ".Consumer";
79
+ case de:
80
+ var c = e.render;
81
+ return e = e.displayName, e || (e = c.displayName || c.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
82
+ case me:
83
+ return c = e.displayName || null, c !== null ? c : r(e.type) || "Memo";
84
+ case $:
85
+ c = e._payload, e = e._init;
86
+ try {
87
+ return r(e(c));
88
+ } catch {
89
+ }
90
+ }
91
+ return null;
92
+ }
93
+ function n(e) {
94
+ return "" + e;
95
+ }
96
+ function a(e) {
97
+ try {
98
+ n(e);
99
+ var c = !1;
100
+ } catch {
101
+ c = !0;
102
+ }
103
+ if (c) {
104
+ c = console;
105
+ var d = c.error, p = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
106
+ return d.call(
107
+ c,
108
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
109
+ p
110
+ ), n(e);
111
+ }
112
+ }
113
+ function u(e) {
114
+ if (e === w) return "<>";
115
+ if (typeof e == "object" && e !== null && e.$$typeof === $)
116
+ return "<...>";
117
+ try {
118
+ var c = r(e);
119
+ return c ? "<" + c + ">" : "<...>";
120
+ } catch {
121
+ return "<...>";
122
+ }
123
+ }
124
+ function o() {
125
+ var e = D.A;
126
+ return e === null ? null : e.getOwner();
127
+ }
128
+ function f() {
129
+ return Error("react-stack-top-frame");
130
+ }
131
+ function s(e) {
132
+ if (G.call(e, "key")) {
133
+ var c = Object.getOwnPropertyDescriptor(e, "key").get;
134
+ if (c && c.isReactWarning) return !1;
135
+ }
136
+ return e.key !== void 0;
137
+ }
138
+ function E(e, c) {
139
+ function d() {
140
+ X || (X = !0, console.error(
141
+ "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
142
+ c
143
+ ));
144
+ }
145
+ d.isReactWarning = !0, Object.defineProperty(e, "key", {
146
+ get: d,
147
+ configurable: !0
148
+ });
149
+ }
150
+ function m() {
151
+ var e = r(this.type);
152
+ return H[e] || (H[e] = !0, console.error(
153
+ "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
154
+ )), e = this.props.ref, e !== void 0 ? e : null;
155
+ }
156
+ function b(e, c, d, p, A, M) {
157
+ var h = d.ref;
158
+ return e = {
159
+ $$typeof: i,
160
+ type: e,
161
+ key: c,
162
+ props: d,
163
+ _owner: p
164
+ }, (h !== void 0 ? h : null) !== null ? Object.defineProperty(e, "ref", {
165
+ enumerable: !1,
166
+ get: m
167
+ }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
168
+ configurable: !1,
169
+ enumerable: !1,
170
+ writable: !0,
171
+ value: 0
172
+ }), Object.defineProperty(e, "_debugInfo", {
173
+ configurable: !1,
174
+ enumerable: !1,
175
+ writable: !0,
176
+ value: null
177
+ }), Object.defineProperty(e, "_debugStack", {
178
+ configurable: !1,
179
+ enumerable: !1,
180
+ writable: !0,
181
+ value: A
182
+ }), Object.defineProperty(e, "_debugTask", {
183
+ configurable: !1,
184
+ enumerable: !1,
185
+ writable: !0,
186
+ value: M
187
+ }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
188
+ }
189
+ function _(e, c, d, p, A, M) {
190
+ var h = c.children;
191
+ if (h !== void 0)
192
+ if (p)
193
+ if (be(h)) {
194
+ for (p = 0; p < h.length; p++)
195
+ v(h[p]);
196
+ Object.freeze && Object.freeze(h);
197
+ } else
198
+ console.error(
199
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
200
+ );
201
+ else v(h);
202
+ if (G.call(c, "key")) {
203
+ h = r(e);
204
+ var g = Object.keys(c).filter(function(ve) {
205
+ return ve !== "key";
206
+ });
207
+ p = 0 < g.length ? "{key: someKey, " + g.join(": ..., ") + ": ...}" : "{key: someKey}", K[h + p] || (g = 0 < g.length ? "{" + g.join(": ..., ") + ": ...}" : "{}", console.error(
208
+ `A props object containing a "key" prop is being spread into JSX:
209
+ let props = %s;
210
+ <%s {...props} />
211
+ React keys must be passed directly to JSX without using spread:
212
+ let props = %s;
213
+ <%s key={someKey} {...props} />`,
214
+ p,
215
+ h,
216
+ g,
217
+ h
218
+ ), K[h + p] = !0);
219
+ }
220
+ if (h = null, d !== void 0 && (a(d), h = "" + d), s(c) && (a(c.key), h = "" + c.key), "key" in c) {
221
+ d = {};
222
+ for (var F in c)
223
+ F !== "key" && (d[F] = c[F]);
224
+ } else d = c;
225
+ return h && E(
226
+ d,
227
+ typeof e == "function" ? e.displayName || e.name || "Unknown" : e
228
+ ), b(
229
+ e,
230
+ h,
231
+ d,
232
+ o(),
233
+ A,
234
+ M
235
+ );
236
+ }
237
+ function v(e) {
238
+ l(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === $ && (e._payload.status === "fulfilled" ? l(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
239
+ }
240
+ function l(e) {
241
+ return typeof e == "object" && e !== null && e.$$typeof === i;
242
+ }
243
+ var t = ke, i = Symbol.for("react.transitional.element"), R = Symbol.for("react.portal"), w = Symbol.for("react.fragment"), x = Symbol.for("react.strict_mode"), ue = Symbol.for("react.profiler"), le = Symbol.for("react.consumer"), fe = Symbol.for("react.context"), de = Symbol.for("react.forward_ref"), pe = Symbol.for("react.suspense"), he = Symbol.for("react.suspense_list"), me = Symbol.for("react.memo"), $ = Symbol.for("react.lazy"), Ee = Symbol.for("react.activity"), Re = Symbol.for("react.client.reference"), D = t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, G = Object.prototype.hasOwnProperty, be = Array.isArray, Y = console.createTask ? console.createTask : function() {
244
+ return null;
245
+ };
246
+ t = {
247
+ react_stack_bottom_frame: function(e) {
248
+ return e();
249
+ }
250
+ };
251
+ var X, H = {}, Z = t.react_stack_bottom_frame.bind(
252
+ t,
253
+ f
254
+ )(), Q = Y(u(f)), K = {};
255
+ O.Fragment = w, O.jsx = function(e, c, d) {
256
+ var p = 1e4 > D.recentlyCreatedOwnerStacks++;
257
+ return _(
258
+ e,
259
+ c,
260
+ d,
261
+ !1,
262
+ p ? Error("react-stack-top-frame") : Z,
263
+ p ? Y(u(e)) : Q
264
+ );
265
+ }, O.jsxs = function(e, c, d) {
266
+ var p = 1e4 > D.recentlyCreatedOwnerStacks++;
267
+ return _(
268
+ e,
269
+ c,
270
+ d,
271
+ !0,
272
+ p ? Error("react-stack-top-frame") : Z,
273
+ p ? Y(u(e)) : Q
274
+ );
275
+ };
276
+ })()), O;
277
+ }
278
+ var re;
279
+ function Oe() {
280
+ return re || (re = 1, process.env.NODE_ENV === "production" ? C.exports = ge() : C.exports = Pe()), C.exports;
281
+ }
282
+ var k = Oe();
283
+ const ne = W({}), ae = W({}), oe = W({}), B = ({
284
+ children: r,
285
+ setContext: n,
286
+ context: a,
287
+ updateBlockedRoute: u,
288
+ updateLocation: o,
289
+ location: f,
290
+ params: s,
291
+ prefetchLoader: E,
292
+ loaderCache: m,
293
+ blockerState: b
294
+ }) => /* @__PURE__ */ k.jsx(
295
+ ne.Provider,
296
+ {
297
+ value: {
298
+ updateLocation: o,
299
+ updateBlockedRoute: u,
300
+ prefetchLoader: E,
301
+ setContext: n
302
+ },
303
+ children: /* @__PURE__ */ k.jsx(ae.Provider, { value: { context: a, loaderCache: m }, children: /* @__PURE__ */ k.jsx(oe.Provider, { value: { blockerState: b, params: s, location: f }, children: r }) })
304
+ }
305
+ ), je = (r, n) => {
306
+ const a = ye(() => r().then((u) => ({ default: u.default || u })));
307
+ return () => /* @__PURE__ */ k.jsx(Te, { fallback: typeof n == "function" ? n() : n || null, children: /* @__PURE__ */ k.jsx(a, {}) });
308
+ }, xe = (r) => typeof r.element == "function" && r.element.toString().includes("import("), se = (r, n = [], a = "") => {
309
+ var v;
310
+ const u = r.path.match(/:[^/]+/g), o = r.path.replaceAll(/:[^/]+(\/|$)/g, "").split("/").filter(Boolean), f = r.path.split("/"), s = u ? [
311
+ ...n,
312
+ ...u.map((l, t) => ({
313
+ key: o[t],
314
+ value: l.slice(1)
315
+ }))
316
+ ] : n, E = s.length ? `${a}${f.slice(0, f.length - 1).join("/")}` : r.path, m = xe(r) ? je(r.element, r.fallback) : r.element, b = {
317
+ ...r,
318
+ path: E,
319
+ params: s,
320
+ element: m
321
+ }, _ = ((v = r.children) == null ? void 0 : v.flatMap((l) => se(l, s, E))) || [];
322
+ return [b, ..._];
323
+ }, Fe = (r) => r.flatMap((n) => se(n, [])), Ae = (r) => {
324
+ const { pathname: n } = window.location, a = n.split("/");
325
+ return (r || []).map((u) => ({ index: a.findIndex((o) => o === u.key), value: u.value })).reduce((u, o) => ({ ...u, [o.value]: a[o.index + 1] }), {});
326
+ }, U = (r) => ({
327
+ pathname: r.pathname,
328
+ search: r.search
329
+ }), J = (r, n) => {
330
+ const a = r.path.split("/").filter(Boolean), u = r.params ? Object.keys(r.params).length : 0, o = n.split("/").filter(Boolean);
331
+ return a.every((f, s) => f === o[s + (s ? 1 : 0)]) && o.length === a.length + u;
332
+ };
333
+ class ce {
334
+ constructor(n, a) {
335
+ S(this, "url");
336
+ S(this, "search");
337
+ S(this, "cause");
338
+ this.url = n, this.search = a, this.cause = "redirect";
339
+ }
340
+ }
341
+ const Be = (r, n) => Promise.reject(new ce(r, n)), Se = (r) => {
342
+ const n = te(r);
343
+ return j(() => {
344
+ n.current = r;
345
+ }, [r]), n;
346
+ }, Ce = ({ setLocation: r, routeList: n, context: a, revalidateCache: u }) => {
347
+ const [o, f] = T({ from: "", to: "" }), s = te(""), E = y(
348
+ async (l) => {
349
+ try {
350
+ const t = n.find((i) => J(i, l.pathname));
351
+ t != null && t.beforeLoad && await (t == null ? void 0 : t.beforeLoad(a)), r(l), l.pathname !== window.location.pathname && (history.pushState(null, "", l.pathname), s.current = l.pathname), await u(t), t != null && t.afterLoad && await (t == null ? void 0 : t.afterLoad(a));
352
+ } catch (t) {
353
+ if (!(t instanceof ce)) return t;
354
+ history.replaceState(null, "", `${t.url}${t.search || ""}`), r({ pathname: t.url, search: t.search });
355
+ }
356
+ },
357
+ [a, u, n, r]
358
+ ), m = Se(E), b = y(
359
+ ({ type: l, payload: t = "" }) => f((i) => i.from === t && l === "charge" ? i : t && i.from !== t && l === "charge" ? { ...i, from: t } : l === "reset" ? { ...i, to: "" } : (l === "process" && m.current({ pathname: i.to }), !i.from && !i.to ? i : { from: "", to: "" })),
360
+ [m]
361
+ ), _ = y(
362
+ async (l) => {
363
+ o.from ? f((t) => ({ ...t, to: l.pathname })) : await m.current(l);
364
+ },
365
+ [o.from, m]
366
+ );
367
+ return j(() => {
368
+ const l = async (t) => {
369
+ const i = U(t.target.location);
370
+ s.current === o.from ? (f({ from: s.current, to: i.pathname }), history.replaceState(null, "", s.current)) : r(i);
371
+ };
372
+ return window.addEventListener("popstate", l), () => window.removeEventListener("popstate", l);
373
+ }, [o.from, r]), j(() => {
374
+ const l = U(window.location);
375
+ m.current(l), s.current = l.pathname;
376
+ }, [m]), { blockerState: N(() => o.from && o.to ? "blocked" : o.from ? "charged" : "unblocked", [o]), updateLocation: _, updateBlockedRoute: b };
377
+ }, Ne = (r) => {
378
+ const [n, a] = T({}), [u, o] = T({}), [f, s] = T(!1), [E, m] = T({}), b = y(
379
+ ({ key: t, value: i }) => a((R) => ({
380
+ ...R,
381
+ [t]: i
382
+ })),
383
+ []
384
+ ), _ = y(
385
+ (t) => {
386
+ if (!t) return !0;
387
+ const i = u[t.path];
388
+ return !!(i && Date.now() - i < (t.staleTime || 0));
389
+ },
390
+ [u]
391
+ ), v = y(
392
+ async (t) => {
393
+ if (t != null && t.loader && !_(t)) {
394
+ m((i) => ({ ...i, [t.path]: !0 })), a(
395
+ (i) => Object.keys(i).filter((R) => R !== t.path).reduce((R, w) => ({ ...R, [w]: i[w] }), {})
396
+ );
397
+ try {
398
+ s(!1);
399
+ const i = await (t == null ? void 0 : t.loader());
400
+ o((R) => ({
401
+ ...R,
402
+ [t.path]: Date.now()
403
+ })), b({ key: t.path, value: i });
404
+ } catch {
405
+ s(!0);
406
+ } finally {
407
+ m((i) => ({ ...i, [t.path]: !1 }));
408
+ }
409
+ }
410
+ },
411
+ [_, b]
412
+ ), l = y(
413
+ async (t) => {
414
+ const i = r.find((R) => J(R, t));
415
+ i && await v(i);
416
+ },
417
+ [v, r]
418
+ );
419
+ return { loaderCache: n, loaderError: f, prefetchLoader: l, revalidateCache: v, isLoadingMap: E };
420
+ }, z = (r) => r ? typeof r == "function" ? /* @__PURE__ */ k.jsx(r, {}) : r : null, Le = "error 404. Page not found", $e = "*", ze = ({ routeList: r, context: n = {} }) => {
421
+ const [a, u] = T(U(window.location)), [o, f] = T(n), s = N(
422
+ () => r.find((x) => x.path === $e || J(x, a.pathname)),
423
+ [a.pathname, r]
424
+ ), { loaderError: E, loaderCache: m, prefetchLoader: b, revalidateCache: _, isLoadingMap: v } = Ne(r), { blockerState: l, updateLocation: t, updateBlockedRoute: i } = Ce({
425
+ setLocation: u,
426
+ routeList: r,
427
+ context: o,
428
+ revalidateCache: _
429
+ }), R = N(() => s != null && s.params ? Ae(s.params) : {}, [s]), w = N(
430
+ () => ({
431
+ location: a,
432
+ updateLocation: t,
433
+ params: R,
434
+ loaderCache: m,
435
+ prefetchLoader: b,
436
+ updateBlockedRoute: i,
437
+ blockerState: l,
438
+ context: o,
439
+ setContext: f
440
+ }),
441
+ [l, m, a, R, b, o, i, t]
442
+ );
443
+ return s != null && s.loader && !E && v[a.pathname] ? /* @__PURE__ */ k.jsx(B, { ...w, children: z(s == null ? void 0 : s.loaderFallback) }) : E ? /* @__PURE__ */ k.jsx(B, { ...w, children: z(s == null ? void 0 : s.errorElement) }) : /* @__PURE__ */ k.jsx(B, { ...w, children: z(s == null ? void 0 : s.element) || Le });
444
+ }, V = () => {
445
+ const r = q(oe);
446
+ if (!Object.keys(r).length) throw new Error("useNavigationState must be used within Router component");
447
+ return r;
448
+ }, L = () => {
449
+ const r = q(ne);
450
+ if (!Object.keys(r).length) throw new Error("useRouterActions must be used within Router component");
451
+ return r;
452
+ }, ie = () => {
453
+ const r = q(ae);
454
+ if (!Object.keys(r).length) throw new Error("useRouterData must be used within Router component");
455
+ return r;
456
+ }, De = () => {
457
+ const { updateLocation: r } = L();
458
+ return y(
459
+ async (n) => n === -1 ? history.go(-1) : await r(n),
460
+ [r]
461
+ );
462
+ }, Ue = ({ children: r, to: n, prefetch: a = !0 }) => {
463
+ const { prefetchLoader: u } = L(), o = De();
464
+ return /* @__PURE__ */ k.jsx(
465
+ "a",
466
+ {
467
+ style: { cursor: "pointer" },
468
+ onClick: () => o({ pathname: n }),
469
+ onMouseOver: () => a && u(n),
470
+ children: r
471
+ }
472
+ );
473
+ }, We = () => {
474
+ const { params: r } = V();
475
+ return r;
476
+ }, qe = () => V().location, Je = () => {
477
+ const { loaderCache: r } = ie();
478
+ return r[window.location.pathname];
479
+ }, Ve = (r) => {
480
+ const {
481
+ location: { pathname: n },
482
+ blockerState: a
483
+ } = V(), { updateBlockedRoute: u } = L(), o = r();
484
+ return j(
485
+ () => u(o ? { type: "charge", payload: n } : { type: "unblock" }),
486
+ [o, n, u]
487
+ ), {
488
+ state: a,
489
+ process: () => u({ type: "process" }),
490
+ reset: () => u({ type: "reset" })
491
+ };
492
+ }, Ge = (r) => {
493
+ j(() => {
494
+ const n = (a) => {
495
+ r && (a.preventDefault(), r());
496
+ };
497
+ return window.addEventListener("beforeunload", n), () => window.removeEventListener("beforeunload", n);
498
+ }, [r]);
499
+ }, Xe = () => {
500
+ const { context: r } = ie(), { setContext: n } = L();
501
+ return { context: r, setContext: n };
502
+ };
503
+ export {
504
+ Ue as Link,
505
+ ze as Router,
506
+ J as comparePaths,
507
+ Fe as createRouter,
508
+ U as parseWindowLocation,
509
+ Be as redirect,
510
+ Ge as useBeforeUnload,
511
+ Ve as useBlocker,
512
+ Je as useLoaderState,
513
+ qe as useLocation,
514
+ De as useNavigate,
515
+ We as useParams,
516
+ Xe as useRouterContext
517
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clear-react-router",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "A lightweight, type-safe routing library for React applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,14 +8,14 @@
8
8
  },
9
9
  "sideEffects": false,
10
10
  "type": "module",
11
- "main": "dist/index.umd.js",
12
- "module": "dist/index.es.js",
13
- "types": "dist/index.d.ts",
11
+ "main": "./dist/index.js",
12
+ "module": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
14
  "exports": {
15
15
  ".": {
16
- "import": "./dist/index.es.js",
17
- "require": "./dist/index.umd.js",
18
- "types": "./dist/index.d.ts"
16
+ "types": "./dist/index.d.ts",
17
+ "import": "./dist/index.js",
18
+ "require": "./dist/index.js"
19
19
  }
20
20
  },
21
21
  "files": [
@@ -40,11 +40,11 @@
40
40
  "author": "Andrew Bubnov",
41
41
  "devDependencies": {
42
42
  "@types/react": "^19.2.17",
43
- "@vitejs/plugin-react": "^6.0.2",
43
+ "@vitejs/plugin-react": "^4.3.4",
44
44
  "react": "^19.2.7",
45
45
  "react-dom": "^19.2.7",
46
46
  "typescript": "^6.0.3",
47
- "vite": "^8.0.16",
47
+ "vite": "^6.4.3",
48
48
  "vite-plugin-dts": "^5.0.2"
49
49
  }
50
50
  }
package/dist/index.es.js DELETED
@@ -1,439 +0,0 @@
1
- import { Suspense as e, createContext as t, lazy as n, useCallback as r, useContext as i, useEffect as a, useMemo as o, useRef as s, useState as c } from "react";
2
- //#region \0rolldown/runtime.js
3
- var l = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), u = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(e, { get: (e, t) => (typeof require < "u" ? require : e)[t] }) : e)(function(e) {
4
- if (typeof require < "u") return require.apply(this, arguments);
5
- throw Error("Calling `require` for \"" + e + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
6
- }), d = t({}), f = t({}), p = t({}), m = /* @__PURE__ */ l(((e) => {
7
- var t = Symbol.for("react.transitional.element"), n = Symbol.for("react.fragment");
8
- function r(e, n, r) {
9
- var i = null;
10
- if (r !== void 0 && (i = "" + r), n.key !== void 0 && (i = "" + n.key), "key" in n) for (var a in r = {}, n) a !== "key" && (r[a] = n[a]);
11
- else r = n;
12
- return n = r.ref, {
13
- $$typeof: t,
14
- type: e,
15
- key: i,
16
- ref: n === void 0 ? null : n,
17
- props: r
18
- };
19
- }
20
- e.Fragment = n, e.jsx = r, e.jsxs = r;
21
- })), h = /* @__PURE__ */ l(((e) => {
22
- process.env.NODE_ENV !== "production" && (function() {
23
- function t(e) {
24
- if (e == null) return null;
25
- if (typeof e == "function") return e.$$typeof === k ? null : e.displayName || e.name || null;
26
- if (typeof e == "string") return e;
27
- switch (e) {
28
- case v: return "Fragment";
29
- case b: return "Profiler";
30
- case y: return "StrictMode";
31
- case w: return "Suspense";
32
- case T: return "SuspenseList";
33
- case O: return "Activity";
34
- }
35
- if (typeof e == "object") switch (typeof e.tag == "number" && console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), e.$$typeof) {
36
- case _: return "Portal";
37
- case S: return e.displayName || "Context";
38
- case x: return (e._context.displayName || "Context") + ".Consumer";
39
- case C:
40
- var n = e.render;
41
- return e = e.displayName, e ||= (e = n.displayName || n.name || "", e === "" ? "ForwardRef" : "ForwardRef(" + e + ")"), e;
42
- case E: return n = e.displayName || null, n === null ? t(e.type) || "Memo" : n;
43
- case D:
44
- n = e._payload, e = e._init;
45
- try {
46
- return t(e(n));
47
- } catch {}
48
- }
49
- return null;
50
- }
51
- function n(e) {
52
- return "" + e;
53
- }
54
- function r(e) {
55
- try {
56
- n(e);
57
- var t = !1;
58
- } catch {
59
- t = !0;
60
- }
61
- if (t) {
62
- t = console;
63
- var r = t.error, i = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
64
- return r.call(t, "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", i), n(e);
65
- }
66
- }
67
- function i(e) {
68
- if (e === v) return "<>";
69
- if (typeof e == "object" && e && e.$$typeof === D) return "<...>";
70
- try {
71
- var n = t(e);
72
- return n ? "<" + n + ">" : "<...>";
73
- } catch {
74
- return "<...>";
75
- }
76
- }
77
- function a() {
78
- var e = A.A;
79
- return e === null ? null : e.getOwner();
80
- }
81
- function o() {
82
- return Error("react-stack-top-frame");
83
- }
84
- function s(e) {
85
- if (j.call(e, "key")) {
86
- var t = Object.getOwnPropertyDescriptor(e, "key").get;
87
- if (t && t.isReactWarning) return !1;
88
- }
89
- return e.key !== void 0;
90
- }
91
- function c(e, t) {
92
- function n() {
93
- P || (P = !0, console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)", t));
94
- }
95
- n.isReactWarning = !0, Object.defineProperty(e, "key", {
96
- get: n,
97
- configurable: !0
98
- });
99
- }
100
- function l() {
101
- var e = t(this.type);
102
- return F[e] || (F[e] = !0, console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")), e = this.props.ref, e === void 0 ? null : e;
103
- }
104
- function d(e, t, n, r, i, a) {
105
- var o = n.ref;
106
- return e = {
107
- $$typeof: g,
108
- type: e,
109
- key: t,
110
- props: n,
111
- _owner: r
112
- }, (o === void 0 ? null : o) === null ? Object.defineProperty(e, "ref", {
113
- enumerable: !1,
114
- value: null
115
- }) : Object.defineProperty(e, "ref", {
116
- enumerable: !1,
117
- get: l
118
- }), e._store = {}, Object.defineProperty(e._store, "validated", {
119
- configurable: !1,
120
- enumerable: !1,
121
- writable: !0,
122
- value: 0
123
- }), Object.defineProperty(e, "_debugInfo", {
124
- configurable: !1,
125
- enumerable: !1,
126
- writable: !0,
127
- value: null
128
- }), Object.defineProperty(e, "_debugStack", {
129
- configurable: !1,
130
- enumerable: !1,
131
- writable: !0,
132
- value: i
133
- }), Object.defineProperty(e, "_debugTask", {
134
- configurable: !1,
135
- enumerable: !1,
136
- writable: !0,
137
- value: a
138
- }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
139
- }
140
- function f(e, n, i, o, l, u) {
141
- var f = n.children;
142
- if (f !== void 0) if (o) if (M(f)) {
143
- for (o = 0; o < f.length; o++) p(f[o]);
144
- Object.freeze && Object.freeze(f);
145
- } else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
146
- else p(f);
147
- if (j.call(n, "key")) {
148
- f = t(e);
149
- var m = Object.keys(n).filter(function(e) {
150
- return e !== "key";
151
- });
152
- o = 0 < m.length ? "{key: someKey, " + m.join(": ..., ") + ": ...}" : "{key: someKey}", R[f + o] || (m = 0 < m.length ? "{" + m.join(": ..., ") + ": ...}" : "{}", console.error("A props object containing a \"key\" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />", o, f, m, f), R[f + o] = !0);
153
- }
154
- if (f = null, i !== void 0 && (r(i), f = "" + i), s(n) && (r(n.key), f = "" + n.key), "key" in n) for (var h in i = {}, n) h !== "key" && (i[h] = n[h]);
155
- else i = n;
156
- return f && c(i, typeof e == "function" ? e.displayName || e.name || "Unknown" : e), d(e, f, i, a(), l, u);
157
- }
158
- function p(e) {
159
- m(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e && e.$$typeof === D && (e._payload.status === "fulfilled" ? m(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
160
- }
161
- function m(e) {
162
- return typeof e == "object" && !!e && e.$$typeof === g;
163
- }
164
- var h = u("react"), g = Symbol.for("react.transitional.element"), _ = Symbol.for("react.portal"), v = Symbol.for("react.fragment"), y = Symbol.for("react.strict_mode"), b = Symbol.for("react.profiler"), x = Symbol.for("react.consumer"), S = Symbol.for("react.context"), C = Symbol.for("react.forward_ref"), w = Symbol.for("react.suspense"), T = Symbol.for("react.suspense_list"), E = Symbol.for("react.memo"), D = Symbol.for("react.lazy"), O = Symbol.for("react.activity"), k = Symbol.for("react.client.reference"), A = h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, j = Object.prototype.hasOwnProperty, M = Array.isArray, N = console.createTask ? console.createTask : function() {
165
- return null;
166
- };
167
- h = { react_stack_bottom_frame: function(e) {
168
- return e();
169
- } };
170
- var P, F = {}, I = h.react_stack_bottom_frame.bind(h, o)(), L = N(i(o)), R = {};
171
- e.Fragment = v, e.jsx = function(e, t, n) {
172
- var r = 1e4 > A.recentlyCreatedOwnerStacks++;
173
- return f(e, t, n, !1, r ? Error("react-stack-top-frame") : I, r ? N(i(e)) : L);
174
- }, e.jsxs = function(e, t, n) {
175
- var r = 1e4 > A.recentlyCreatedOwnerStacks++;
176
- return f(e, t, n, !0, r ? Error("react-stack-top-frame") : I, r ? N(i(e)) : L);
177
- };
178
- })();
179
- })), g = (/* @__PURE__ */ l(((e, t) => {
180
- process.env.NODE_ENV === "production" ? t.exports = m() : t.exports = h();
181
- })))(), _ = ({ children: e, setContext: t, context: n, updateBlockedRoute: r, updateLocation: i, location: a, params: o, prefetchLoader: s, loaderCache: c, blockerState: l }) => /* @__PURE__ */ (0, g.jsx)(d.Provider, {
182
- value: {
183
- updateLocation: i,
184
- updateBlockedRoute: r,
185
- prefetchLoader: s,
186
- setContext: t
187
- },
188
- children: /* @__PURE__ */ (0, g.jsx)(f.Provider, {
189
- value: {
190
- context: n,
191
- loaderCache: c
192
- },
193
- children: /* @__PURE__ */ (0, g.jsx)(p.Provider, {
194
- value: {
195
- blockerState: l,
196
- params: o,
197
- location: a
198
- },
199
- children: e
200
- })
201
- })
202
- }), v = (t, r) => {
203
- let i = n(() => t().then((e) => ({ default: e.default || e })));
204
- return () => /* @__PURE__ */ (0, g.jsx)(e, {
205
- fallback: typeof r == "function" ? r() : r || null,
206
- children: /* @__PURE__ */ (0, g.jsx)(i, {})
207
- });
208
- }, y = (e) => typeof e.element == "function" && e.element.toString().includes("import("), b = (e, t = [], n = "") => {
209
- let r = e.path.match(/:[^/]+/g), i = e.path.replaceAll(/:[^/]+(\/|$)/g, "").split("/").filter(Boolean), a = e.path.split("/"), o = r ? [...t, ...r.map((e, t) => ({
210
- key: i[t],
211
- value: e.slice(1)
212
- }))] : t, s = o.length ? `${n}${a.slice(0, a.length - 1).join("/")}` : e.path, c = y(e) ? v(e.element, e.fallback) : e.element;
213
- return [{
214
- ...e,
215
- path: s,
216
- params: o,
217
- element: c
218
- }, ...e.children?.flatMap((e) => b(e, o, s)) || []];
219
- }, x = (e) => e.flatMap((e) => b(e, [])), S = (e) => {
220
- let { pathname: t } = window.location, n = t.split("/");
221
- return (e || []).map((e) => ({
222
- index: n.findIndex((t) => t === e.key),
223
- value: e.value
224
- })).reduce((e, t) => ({
225
- ...e,
226
- [t.value]: n[t.index + 1]
227
- }), {});
228
- }, C = (e) => ({
229
- pathname: e.pathname,
230
- search: e.search
231
- }), w = (e, t) => {
232
- let n = e.path.split("/").filter(Boolean), r = e.params ? Object.keys(e.params).length : 0, i = t.split("/").filter(Boolean);
233
- return n.every((e, t) => e === i[t + +!!t]) && i.length === n.length + r;
234
- }, T = class {
235
- url;
236
- search;
237
- cause;
238
- constructor(e, t) {
239
- this.url = e, this.search = t, this.cause = "redirect";
240
- }
241
- }, E = (e, t) => Promise.reject(new T(e, t)), D = (e) => {
242
- let t = s(e);
243
- return a(() => {
244
- t.current = e;
245
- }, [e]), t;
246
- }, O = ({ setLocation: e, routeList: t, context: n, revalidateCache: i }) => {
247
- let [l, u] = c({
248
- from: "",
249
- to: ""
250
- }), d = s(""), f = D(r(async (r) => {
251
- try {
252
- let a = t.find((e) => w(e, r.pathname));
253
- a?.beforeLoad && await a?.beforeLoad(n), e(r), r.pathname !== window.location.pathname && (history.pushState(null, "", r.pathname), d.current = r.pathname), await i(a), a?.afterLoad && await a?.afterLoad(n);
254
- } catch (t) {
255
- if (!(t instanceof T)) return t;
256
- history.replaceState(null, "", `${t.url}${t.search || ""}`), e({
257
- pathname: t.url,
258
- search: t.search
259
- });
260
- }
261
- }, [
262
- n,
263
- i,
264
- t,
265
- e
266
- ])), p = r(({ type: e, payload: t = "" }) => u((n) => n.from === t && e === "charge" ? n : t && n.from !== t && e === "charge" ? {
267
- ...n,
268
- from: t
269
- } : e === "reset" ? {
270
- ...n,
271
- to: ""
272
- } : (e === "process" && f.current({ pathname: n.to }), !n.from && !n.to ? n : {
273
- from: "",
274
- to: ""
275
- })), [f]), m = r(async (e) => {
276
- l.from ? u((t) => ({
277
- ...t,
278
- to: e.pathname
279
- })) : await f.current(e);
280
- }, [l.from, f]);
281
- return a(() => {
282
- let t = async (t) => {
283
- let n = C(t.target.location);
284
- d.current === l.from ? (u({
285
- from: d.current,
286
- to: n.pathname
287
- }), history.replaceState(null, "", d.current)) : e(n);
288
- };
289
- return window.addEventListener("popstate", t), () => window.removeEventListener("popstate", t);
290
- }, [l.from, e]), a(() => {
291
- let e = C(window.location);
292
- f.current(e), d.current = e.pathname;
293
- }, [f]), {
294
- blockerState: o(() => l.from && l.to ? "blocked" : l.from ? "charged" : "unblocked", [l]),
295
- updateLocation: m,
296
- updateBlockedRoute: p
297
- };
298
- }, k = (e) => {
299
- let [t, n] = c({}), [i, a] = c({}), [o, s] = c(!1), [l, u] = c({}), d = r(({ key: e, value: t }) => n((n) => ({
300
- ...n,
301
- [e]: t
302
- })), []), f = r((e) => {
303
- if (!e) return !0;
304
- let t = i[e.path];
305
- return !!(t && Date.now() - t < (e.staleTime || 0));
306
- }, [i]), p = r(async (e) => {
307
- if (e?.loader && !f(e)) {
308
- u((t) => ({
309
- ...t,
310
- [e.path]: !0
311
- })), n((t) => Object.keys(t).filter((t) => t !== e.path).reduce((e, n) => ({
312
- ...e,
313
- [n]: t[n]
314
- }), {}));
315
- try {
316
- s(!1);
317
- let t = await e?.loader();
318
- a((t) => ({
319
- ...t,
320
- [e.path]: Date.now()
321
- })), d({
322
- key: e.path,
323
- value: t
324
- });
325
- } catch {
326
- s(!0);
327
- } finally {
328
- u((t) => ({
329
- ...t,
330
- [e.path]: !1
331
- }));
332
- }
333
- }
334
- }, [f, d]);
335
- return {
336
- loaderCache: t,
337
- loaderError: o,
338
- prefetchLoader: r(async (t) => {
339
- let n = e.find((e) => w(e, t));
340
- n && await p(n);
341
- }, [p, e]),
342
- revalidateCache: p,
343
- isLoadingMap: l
344
- };
345
- }, A = (e) => e ? typeof e == "function" ? /* @__PURE__ */ (0, g.jsx)(e, {}) : e : null, j = "error 404. Page not found", M = "*", N = ({ routeList: e, context: t = {} }) => {
346
- let [n, r] = c(C(window.location)), [i, a] = c(t), s = o(() => e.find((e) => e.path === M || w(e, n.pathname)), [n.pathname, e]), { loaderError: l, loaderCache: u, prefetchLoader: d, revalidateCache: f, isLoadingMap: p } = k(e), { blockerState: m, updateLocation: h, updateBlockedRoute: v } = O({
347
- setLocation: r,
348
- routeList: e,
349
- context: i,
350
- revalidateCache: f
351
- }), y = o(() => s?.params ? S(s.params) : {}, [s]), b = o(() => ({
352
- location: n,
353
- updateLocation: h,
354
- params: y,
355
- loaderCache: u,
356
- prefetchLoader: d,
357
- updateBlockedRoute: v,
358
- blockerState: m,
359
- context: i,
360
- setContext: a
361
- }), [
362
- m,
363
- u,
364
- n,
365
- y,
366
- d,
367
- i,
368
- v,
369
- h
370
- ]);
371
- return s?.loader && !l && p[n.pathname] ? /* @__PURE__ */ (0, g.jsx)(_, {
372
- ...b,
373
- children: A(s?.loaderFallback)
374
- }) : l ? /* @__PURE__ */ (0, g.jsx)(_, {
375
- ...b,
376
- children: A(s?.errorElement)
377
- }) : /* @__PURE__ */ (0, g.jsx)(_, {
378
- ...b,
379
- children: A(s?.element) || j
380
- });
381
- }, P = () => {
382
- let e = i(p);
383
- if (!Object.keys(e).length) throw Error("useNavigationState must be used within Router component");
384
- return e;
385
- }, F = () => {
386
- let e = i(d);
387
- if (!Object.keys(e).length) throw Error("useRouterActions must be used within Router component");
388
- return e;
389
- }, I = () => {
390
- let e = i(f);
391
- if (!Object.keys(e).length) throw Error("useRouterData must be used within Router component");
392
- return e;
393
- }, L = () => {
394
- let { updateLocation: e } = F();
395
- return r(async (t) => t === -1 ? history.go(-1) : await e(t), [e]);
396
- }, R = ({ children: e, to: t, prefetch: n = !0 }) => {
397
- let { prefetchLoader: r } = F(), i = L();
398
- return /* @__PURE__ */ (0, g.jsx)("a", {
399
- style: { cursor: "pointer" },
400
- onClick: () => i({ pathname: t }),
401
- onMouseOver: () => n && r(t),
402
- children: e
403
- });
404
- }, z = () => {
405
- let { params: e } = P();
406
- return e;
407
- }, B = () => P().location, V = () => {
408
- let { loaderCache: e } = I();
409
- return e[window.location.pathname];
410
- }, H = (e) => {
411
- let { location: { pathname: t }, blockerState: n } = P(), { updateBlockedRoute: r } = F(), i = e();
412
- return a(() => r(i ? {
413
- type: "charge",
414
- payload: t
415
- } : { type: "unblock" }), [
416
- i,
417
- t,
418
- r
419
- ]), {
420
- state: n,
421
- process: () => r({ type: "process" }),
422
- reset: () => r({ type: "reset" })
423
- };
424
- }, U = (e) => {
425
- a(() => {
426
- let t = (t) => {
427
- e && (t.preventDefault(), e());
428
- };
429
- return window.addEventListener("beforeunload", t), () => window.removeEventListener("beforeunload", t);
430
- }, [e]);
431
- }, W = () => {
432
- let { context: e } = I(), { setContext: t } = F();
433
- return {
434
- context: e,
435
- setContext: t
436
- };
437
- };
438
- //#endregion
439
- export { R as Link, N as Router, w as comparePaths, x as createRouter, C as parseWindowLocation, E as redirect, U as useBeforeUnload, H as useBlocker, V as useLoaderState, B as useLocation, L as useNavigate, z as useParams, W as useRouterContext };
package/dist/index.umd.js DELETED
@@ -1,6 +0,0 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require("react")):typeof define==`function`&&define.amd?define([`exports`,`react`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.ClearReactRouter={},e.React))})(this,function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var n=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),r=(0,t.createContext)({}),i=(0,t.createContext)({}),a=(0,t.createContext)({}),o=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),s=n((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===O?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case _:return`Fragment`;case y:return`Profiler`;case v:return`StrictMode`;case C:return`Suspense`;case w:return`SuspenseList`;case D:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case g:return`Portal`;case x:return e.displayName||`Context`;case b:return(e._context.displayName||`Context`)+`.Consumer`;case S:var n=e.render;return e=e.displayName,e||=(e=n.displayName||n.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case T:return n=e.displayName||null,n===null?t(e.type)||`Memo`:n;case E:n=e._payload,e=e._init;try{return t(e(n))}catch{}}return null}function n(e){return``+e}function r(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var r=t.error,i=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return r.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,i),n(e)}}function i(e){if(e===_)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===E)return`<...>`;try{var n=t(e);return n?`<`+n+`>`:`<...>`}catch{return`<...>`}}function a(){var e=k.A;return e===null?null:e.getOwner()}function o(){return Error(`react-stack-top-frame`)}function s(e){if(A.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function c(e,t){function n(){N||(N=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}function l(){var e=t(this.type);return P[e]||(P[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function u(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:h,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,"ref",{enumerable:!1,value:null}):Object.defineProperty(e,"ref",{enumerable:!1,get:l}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function d(e,n,i,o,l,d){var p=n.children;if(p!==void 0)if(o)if(j(p)){for(o=0;o<p.length;o++)f(p[o]);Object.freeze&&Object.freeze(p)}else console.error(`React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.`);else f(p);if(A.call(n,`key`)){p=t(e);var m=Object.keys(n).filter(function(e){return e!==`key`});o=0<m.length?`{key: someKey, `+m.join(`: ..., `)+`: ...}`:`{key: someKey}`,L[p+o]||(m=0<m.length?`{`+m.join(`: ..., `)+`: ...}`:`{}`,console.error(`A props object containing a "key" prop is being spread into JSX:
2
- let props = %s;
3
- <%s {...props} />
4
- React keys must be passed directly to JSX without using spread:
5
- let props = %s;
6
- <%s key={someKey} {...props} />`,o,p,m,p),L[p+o]=!0)}if(p=null,i!==void 0&&(r(i),p=``+i),s(n)&&(r(n.key),p=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return p&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,p,i,a(),l,d)}function f(e){p(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===E&&(e._payload.status===`fulfilled`?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e==`object`&&!!e&&e.$$typeof===h}var m=require("react"),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),_=Symbol.for(`react.fragment`),v=Symbol.for(`react.strict_mode`),y=Symbol.for(`react.profiler`),b=Symbol.for(`react.consumer`),x=Symbol.for(`react.context`),S=Symbol.for(`react.forward_ref`),C=Symbol.for(`react.suspense`),w=Symbol.for(`react.suspense_list`),T=Symbol.for(`react.memo`),E=Symbol.for(`react.lazy`),D=Symbol.for(`react.activity`),O=Symbol.for(`react.client.reference`),k=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,A=Object.prototype.hasOwnProperty,j=Array.isArray,M=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(e){return e()}};var N,P={},F=m.react_stack_bottom_frame.bind(m,o)(),I=M(i(o)),L={};e.Fragment=_,e.jsx=function(e,t,n){var r=1e4>k.recentlyCreatedOwnerStacks++;return d(e,t,n,!1,r?Error(`react-stack-top-frame`):F,r?M(i(e)):I)},e.jsxs=function(e,t,n){var r=1e4>k.recentlyCreatedOwnerStacks++;return d(e,t,n,!0,r?Error(`react-stack-top-frame`):F,r?M(i(e)):I)}})()})),c=n(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=o():t.exports=s()}))(),l=({children:e,setContext:t,context:n,updateBlockedRoute:o,updateLocation:s,location:l,params:u,prefetchLoader:d,loaderCache:f,blockerState:p})=>(0,c.jsx)(r.Provider,{value:{updateLocation:s,updateBlockedRoute:o,prefetchLoader:d,setContext:t},children:(0,c.jsx)(i.Provider,{value:{context:n,loaderCache:f},children:(0,c.jsx)(a.Provider,{value:{blockerState:p,params:u,location:l},children:e})})}),u=(e,n)=>{let r=(0,t.lazy)(()=>e().then(e=>({default:e.default||e})));return()=>(0,c.jsx)(t.Suspense,{fallback:typeof n==`function`?n():n||null,children:(0,c.jsx)(r,{})})},d=e=>typeof e.element==`function`&&e.element.toString().includes(`import(`),f=(e,t=[],n=``)=>{let r=e.path.match(/:[^/]+/g),i=e.path.replaceAll(/:[^/]+(\/|$)/g,``).split(`/`).filter(Boolean),a=e.path.split(`/`),o=r?[...t,...r.map((e,t)=>({key:i[t],value:e.slice(1)}))]:t,s=o.length?`${n}${a.slice(0,a.length-1).join(`/`)}`:e.path,c=d(e)?u(e.element,e.fallback):e.element;return[{...e,path:s,params:o,element:c},...e.children?.flatMap(e=>f(e,o,s))||[]]},p=e=>e.flatMap(e=>f(e,[])),m=e=>{let{pathname:t}=window.location,n=t.split(`/`);return(e||[]).map(e=>({index:n.findIndex(t=>t===e.key),value:e.value})).reduce((e,t)=>({...e,[t.value]:n[t.index+1]}),{})},h=e=>({pathname:e.pathname,search:e.search}),g=(e,t)=>{let n=e.path.split(`/`).filter(Boolean),r=e.params?Object.keys(e.params).length:0,i=t.split(`/`).filter(Boolean);return n.every((e,t)=>e===i[t+ +!!t])&&i.length===n.length+r},_=class{url;search;cause;constructor(e,t){this.url=e,this.search=t,this.cause=`redirect`}},v=(e,t)=>Promise.reject(new _(e,t)),y=e=>{let n=(0,t.useRef)(e);return(0,t.useEffect)(()=>{n.current=e},[e]),n},b=({setLocation:e,routeList:n,context:r,revalidateCache:i})=>{let[a,o]=(0,t.useState)({from:``,to:``}),s=(0,t.useRef)(``),c=y((0,t.useCallback)(async t=>{try{let a=n.find(e=>g(e,t.pathname));a?.beforeLoad&&await a?.beforeLoad(r),e(t),t.pathname!==window.location.pathname&&(history.pushState(null,``,t.pathname),s.current=t.pathname),await i(a),a?.afterLoad&&await a?.afterLoad(r)}catch(t){if(!(t instanceof _))return t;history.replaceState(null,``,`${t.url}${t.search||``}`),e({pathname:t.url,search:t.search})}},[r,i,n,e])),l=(0,t.useCallback)(({type:e,payload:t=``})=>o(n=>n.from===t&&e===`charge`?n:t&&n.from!==t&&e===`charge`?{...n,from:t}:e===`reset`?{...n,to:``}:(e===`process`&&c.current({pathname:n.to}),!n.from&&!n.to?n:{from:``,to:``})),[c]),u=(0,t.useCallback)(async e=>{a.from?o(t=>({...t,to:e.pathname})):await c.current(e)},[a.from,c]);return(0,t.useEffect)(()=>{let t=async t=>{let n=h(t.target.location);s.current===a.from?(o({from:s.current,to:n.pathname}),history.replaceState(null,``,s.current)):e(n)};return window.addEventListener(`popstate`,t),()=>window.removeEventListener(`popstate`,t)},[a.from,e]),(0,t.useEffect)(()=>{let e=h(window.location);c.current(e),s.current=e.pathname},[c]),{blockerState:(0,t.useMemo)(()=>a.from&&a.to?`blocked`:a.from?`charged`:`unblocked`,[a]),updateLocation:u,updateBlockedRoute:l}},x=e=>{let[n,r]=(0,t.useState)({}),[i,a]=(0,t.useState)({}),[o,s]=(0,t.useState)(!1),[c,l]=(0,t.useState)({}),u=(0,t.useCallback)(({key:e,value:t})=>r(n=>({...n,[e]:t})),[]),d=(0,t.useCallback)(e=>{if(!e)return!0;let t=i[e.path];return!!(t&&Date.now()-t<(e.staleTime||0))},[i]),f=(0,t.useCallback)(async e=>{if(e?.loader&&!d(e)){l(t=>({...t,[e.path]:!0})),r(t=>Object.keys(t).filter(t=>t!==e.path).reduce((e,n)=>({...e,[n]:t[n]}),{}));try{s(!1);let t=await e?.loader();a(t=>({...t,[e.path]:Date.now()})),u({key:e.path,value:t})}catch{s(!0)}finally{l(t=>({...t,[e.path]:!1}))}}},[d,u]);return{loaderCache:n,loaderError:o,prefetchLoader:(0,t.useCallback)(async t=>{let n=e.find(e=>g(e,t));n&&await f(n)},[f,e]),revalidateCache:f,isLoadingMap:c}},S=e=>e?typeof e==`function`?(0,c.jsx)(e,{}):e:null,C=`error 404. Page not found`,w=`*`,T=({routeList:e,context:n={}})=>{let[r,i]=(0,t.useState)(h(window.location)),[a,o]=(0,t.useState)(n),s=(0,t.useMemo)(()=>e.find(e=>e.path===w||g(e,r.pathname)),[r.pathname,e]),{loaderError:u,loaderCache:d,prefetchLoader:f,revalidateCache:p,isLoadingMap:_}=x(e),{blockerState:v,updateLocation:y,updateBlockedRoute:T}=b({setLocation:i,routeList:e,context:a,revalidateCache:p}),E=(0,t.useMemo)(()=>s?.params?m(s.params):{},[s]),D=(0,t.useMemo)(()=>({location:r,updateLocation:y,params:E,loaderCache:d,prefetchLoader:f,updateBlockedRoute:T,blockerState:v,context:a,setContext:o}),[v,d,r,E,f,a,T,y]);return s?.loader&&!u&&_[r.pathname]?(0,c.jsx)(l,{...D,children:S(s?.loaderFallback)}):u?(0,c.jsx)(l,{...D,children:S(s?.errorElement)}):(0,c.jsx)(l,{...D,children:S(s?.element)||C})},E=()=>{let e=(0,t.useContext)(a);if(!Object.keys(e).length)throw Error(`useNavigationState must be used within Router component`);return e},D=()=>{let e=(0,t.useContext)(r);if(!Object.keys(e).length)throw Error(`useRouterActions must be used within Router component`);return e},O=()=>{let e=(0,t.useContext)(i);if(!Object.keys(e).length)throw Error(`useRouterData must be used within Router component`);return e},k=()=>{let{updateLocation:e}=D();return(0,t.useCallback)(async t=>t===-1?history.go(-1):await e(t),[e])};e.Link=({children:e,to:t,prefetch:n=!0})=>{let{prefetchLoader:r}=D(),i=k();return(0,c.jsx)(`a`,{style:{cursor:`pointer`},onClick:()=>i({pathname:t}),onMouseOver:()=>n&&r(t),children:e})},e.Router=T,e.comparePaths=g,e.createRouter=p,e.parseWindowLocation=h,e.redirect=v,e.useBeforeUnload=e=>{(0,t.useEffect)(()=>{let t=t=>{e&&(t.preventDefault(),e())};return window.addEventListener(`beforeunload`,t),()=>window.removeEventListener(`beforeunload`,t)},[e])},e.useBlocker=e=>{let{location:{pathname:n},blockerState:r}=E(),{updateBlockedRoute:i}=D(),a=e();return(0,t.useEffect)(()=>i(a?{type:`charge`,payload:n}:{type:`unblock`}),[a,n,i]),{state:r,process:()=>i({type:`process`}),reset:()=>i({type:`reset`})}},e.useLoaderState=()=>{let{loaderCache:e}=O();return e[window.location.pathname]},e.useLocation=()=>E().location,e.useNavigate=k,e.useParams=()=>{let{params:e}=E();return e},e.useRouterContext=()=>{let{context:e}=O(),{setContext:t}=D();return{context:e,setContext:t}}});