@rpcbase/router 0.148.0 → 0.150.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.
package/dist/index.js CHANGED
@@ -1,1364 +1,1143 @@
1
- import { UNSAFE_DataRouterContext, matchRoutes, Link as Link$1, useLocation, UNSAFE_LocationContext, useNavigate } from "react-router";
2
- export * from "react-router";
3
- import { jsx } from "react/jsx-runtime";
1
+ import { Link as Link$1, UNSAFE_DataRouterContext, UNSAFE_LocationContext, matchRoutes, useLocation, useNavigate } from "react-router";
4
2
  import { c } from "react/compiler-runtime";
5
- import { createContext, useContext, useRef, forwardRef, useEffect, createElement, Suspense, useState, useSyncExternalStore, Component, isValidElement, cloneElement } from "react";
3
+ import { Component, Suspense, cloneElement, createContext, createElement, forwardRef, isValidElement, useContext, useEffect, useRef, useState, useSyncExternalStore } from "react";
4
+ import { jsx } from "react/jsx-runtime";
6
5
  import { createPortal } from "react-dom";
7
- const ROUTE_MODULE_IMPORTER_HANDLE = "__rpcbaseRouteModuleImporter";
8
- const ROUTE_PREFETCH_DATA_HANDLE = "prefetchData";
9
- const isHandleObject = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
10
- const getRouteModuleImporterFromHandle = (handle) => {
11
- if (!isHandleObject(handle)) return null;
12
- const importer = handle[ROUTE_MODULE_IMPORTER_HANDLE];
13
- return typeof importer === "function" ? importer : null;
14
- };
15
- const getRoutePrefetchDataFromHandle = (handle, key = ROUTE_PREFETCH_DATA_HANDLE) => {
16
- if (!isHandleObject(handle)) return void 0;
17
- const value = handle[key];
18
- return typeof value === "boolean" ? value : void 0;
19
- };
20
- const mergeRouteHandle = (handle, {
21
- importer,
22
- prefetchData,
23
- prefetchDataKey = ROUTE_PREFETCH_DATA_HANDLE
24
- }) => {
25
- const nextHandle = isHandleObject(handle) ? {
26
- ...handle
27
- } : {};
28
- if (importer) {
29
- nextHandle[ROUTE_MODULE_IMPORTER_HANDLE] = importer;
30
- }
31
- if (typeof prefetchData === "boolean") {
32
- nextHandle[prefetchDataKey] = prefetchData;
33
- }
34
- return nextHandle;
6
+ export * from "react-router";
7
+ //#region src/routePrefetchHandles.ts
8
+ var ROUTE_MODULE_IMPORTER_HANDLE = "__rpcbaseRouteModuleImporter";
9
+ var ROUTE_PREFETCH_DATA_HANDLE = "prefetchData";
10
+ var isHandleObject = (value) => Boolean(value) && typeof value === "object" && !Array.isArray(value);
11
+ var getRouteModuleImporterFromHandle = (handle) => {
12
+ if (!isHandleObject(handle)) return null;
13
+ const importer = handle[ROUTE_MODULE_IMPORTER_HANDLE];
14
+ return typeof importer === "function" ? importer : null;
35
15
  };
36
- const noop = async () => {
16
+ var getRoutePrefetchDataFromHandle = (handle, key = ROUTE_PREFETCH_DATA_HANDLE) => {
17
+ if (!isHandleObject(handle)) return void 0;
18
+ const value = handle[key];
19
+ return typeof value === "boolean" ? value : void 0;
37
20
  };
38
- const DEFAULT_PREFETCH_API = {
39
- defaultPrefetch: "none",
40
- prefetch: noop,
41
- prefetchCode: noop,
42
- prefetchData: noop
21
+ var mergeRouteHandle = (handle, { importer, prefetchData, prefetchDataKey = ROUTE_PREFETCH_DATA_HANDLE }) => {
22
+ const nextHandle = isHandleObject(handle) ? { ...handle } : {};
23
+ if (importer) nextHandle[ROUTE_MODULE_IMPORTER_HANDLE] = importer;
24
+ if (typeof prefetchData === "boolean") nextHandle[prefetchDataKey] = prefetchData;
25
+ return nextHandle;
43
26
  };
44
- const RoutePrefetchContext = createContext(DEFAULT_PREFETCH_API);
45
- const normalizeHref = (href) => {
46
- if (typeof window === "undefined") return null;
47
- try {
48
- const url = new URL(href, window.location.origin);
49
- if (url.origin !== window.location.origin) return null;
50
- return {
51
- pathWithSearch: `${url.pathname}${url.search}`,
52
- pathname: url.pathname,
53
- search: url.search,
54
- hash: url.hash
55
- };
56
- } catch {
57
- return null;
58
- }
27
+ //#endregion
28
+ //#region src/routePrefetch.tsx
29
+ var noop = async () => {};
30
+ var RoutePrefetchContext = createContext({
31
+ defaultPrefetch: "none",
32
+ prefetch: noop,
33
+ prefetchCode: noop,
34
+ prefetchData: noop
35
+ });
36
+ var normalizeHref = (href) => {
37
+ if (typeof window === "undefined") return null;
38
+ try {
39
+ const url = new URL(href, window.location.origin);
40
+ if (url.origin !== window.location.origin) return null;
41
+ return {
42
+ pathWithSearch: `${url.pathname}${url.search}`,
43
+ pathname: url.pathname,
44
+ search: url.search,
45
+ hash: url.hash
46
+ };
47
+ } catch {
48
+ return null;
49
+ }
59
50
  };
60
- const pruneDataCache = (cache, now) => {
61
- cache.forEach((value, key) => {
62
- if (value.expiresAt <= now) {
63
- cache.delete(key);
64
- }
65
- });
51
+ var pruneDataCache = (cache, now) => {
52
+ cache.forEach((value, key) => {
53
+ if (value.expiresAt <= now) cache.delete(key);
54
+ });
66
55
  };
67
- const resolveDataPrefetchFlag = (route, explicitPrefetchData, dataPrefetchHandleKey) => {
68
- if (typeof explicitPrefetchData === "boolean") {
69
- return explicitPrefetchData;
70
- }
71
- const routeHandlePrefetchData = getRoutePrefetchDataFromHandle(route.handle, dataPrefetchHandleKey);
72
- if (typeof routeHandlePrefetchData === "boolean") {
73
- return routeHandlePrefetchData;
74
- }
75
- return false;
56
+ var resolveDataPrefetchFlag = (route, explicitPrefetchData, dataPrefetchHandleKey) => {
57
+ if (typeof explicitPrefetchData === "boolean") return explicitPrefetchData;
58
+ const routeHandlePrefetchData = getRoutePrefetchDataFromHandle(route.handle, dataPrefetchHandleKey);
59
+ if (typeof routeHandlePrefetchData === "boolean") return routeHandlePrefetchData;
60
+ return false;
76
61
  };
77
- const RoutePrefetchProvider = (t0) => {
78
- const $ = c(20);
79
- const {
80
- children,
81
- defaultPrefetch: t1,
82
- dataPrefetchTtlMs: t2,
83
- dataPrefetchHandleKey: t3
84
- } = t0;
85
- const defaultPrefetch = t1 === void 0 ? "intent" : t1;
86
- const dataPrefetchTtlMs = t2 === void 0 ? 3e4 : t2;
87
- const dataPrefetchHandleKey = t3 === void 0 ? ROUTE_PREFETCH_DATA_HANDLE : t3;
88
- const dataRouterContext = useContext(UNSAFE_DataRouterContext);
89
- let t4;
90
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
91
- t4 = /* @__PURE__ */ new Map();
92
- $[0] = t4;
93
- } else {
94
- t4 = $[0];
95
- }
96
- const routeModuleCacheRef = useRef(t4);
97
- let t5;
98
- if ($[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
99
- t5 = /* @__PURE__ */ new Map();
100
- $[1] = t5;
101
- } else {
102
- t5 = $[1];
103
- }
104
- const routeDataCacheRef = useRef(t5);
105
- let t6;
106
- if ($[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
107
- t6 = async (route) => {
108
- const routeId = route.id;
109
- if (!routeId) {
110
- return null;
111
- }
112
- const cached = routeModuleCacheRef.current.get(routeId);
113
- if (cached) {
114
- return cached;
115
- }
116
- const lazyRouteLoader = typeof route.lazy === "function" ? route.lazy : null;
117
- const routeModuleImporter = getRouteModuleImporterFromHandle(route.handle);
118
- if (!lazyRouteLoader && !routeModuleImporter) {
119
- return null;
120
- }
121
- const prefetchPromise = Promise.resolve(lazyRouteLoader ? lazyRouteLoader() : routeModuleImporter()).then(_temp$2).catch((error) => {
122
- routeModuleCacheRef.current.delete(routeId);
123
- throw error;
124
- });
125
- routeModuleCacheRef.current.set(routeId, prefetchPromise);
126
- return prefetchPromise;
127
- };
128
- $[2] = t6;
129
- } else {
130
- t6 = $[2];
131
- }
132
- const prefetchRouteModule = t6;
133
- let t7;
134
- if ($[3] !== dataPrefetchTtlMs) {
135
- t7 = async (router, route_0, href) => {
136
- const routeId_0 = route_0.id;
137
- if (!routeId_0) {
138
- return;
139
- }
140
- const now = Date.now();
141
- pruneDataCache(routeDataCacheRef.current, now);
142
- const cacheKey = `${routeId_0}|${href}`;
143
- const cached_0 = routeDataCacheRef.current.get(cacheKey);
144
- if (cached_0 && cached_0.expiresAt > now) {
145
- await cached_0.promise;
146
- return;
147
- }
148
- let hasLoader = typeof route_0.loader === "function";
149
- if (!hasLoader) {
150
- const loadedRouteModule = await prefetchRouteModule(route_0).catch(_temp2$1);
151
- hasLoader = typeof loadedRouteModule?.loader === "function";
152
- }
153
- if (!hasLoader) {
154
- return;
155
- }
156
- const fetcherKey = `rb:prefetch:${routeId_0}:${href}`;
157
- const prefetchPromise_0 = Promise.resolve(router.fetch(fetcherKey, routeId_0, href)).catch((error_0) => {
158
- routeDataCacheRef.current.delete(cacheKey);
159
- throw error_0;
160
- }).finally(() => {
161
- try {
162
- router.deleteFetcher(fetcherKey);
163
- } catch {
164
- return;
165
- }
166
- });
167
- const ttl = Math.max(1, dataPrefetchTtlMs);
168
- routeDataCacheRef.current.set(cacheKey, {
169
- expiresAt: now + ttl,
170
- promise: prefetchPromise_0
171
- });
172
- await prefetchPromise_0;
173
- };
174
- $[3] = dataPrefetchTtlMs;
175
- $[4] = t7;
176
- } else {
177
- t7 = $[4];
178
- }
179
- const prefetchRouteData = t7;
180
- let t8;
181
- if ($[5] !== dataPrefetchHandleKey || $[6] !== dataRouterContext?.router || $[7] !== prefetchRouteData) {
182
- t8 = async (href_0, opts) => {
183
- const normalized = normalizeHref(href_0);
184
- if (!normalized) {
185
- return;
186
- }
187
- const currentPathWithSearch = typeof window === "undefined" ? "" : `${window.location.pathname}${window.location.search}`;
188
- if (normalized.pathWithSearch === currentPathWithSearch) {
189
- return;
190
- }
191
- const router_0 = dataRouterContext?.router;
192
- if (!router_0) {
193
- return;
194
- }
195
- const matches = matchRoutes(router_0.routes, {
196
- pathname: normalized.pathname,
197
- search: normalized.search,
198
- hash: normalized.hash
199
- }, router_0.basename);
200
- if (!matches || matches.length === 0) {
201
- return;
202
- }
203
- const matchedRoutes = matches.map(_temp3);
204
- if (opts?.prefetchCode !== false) {
205
- await Promise.all(matchedRoutes.map(async (route_1) => {
206
- try {
207
- await prefetchRouteModule(route_1);
208
- } catch {
209
- return;
210
- }
211
- }));
212
- }
213
- await Promise.all(matchedRoutes.map(async (route_2) => {
214
- if (!resolveDataPrefetchFlag(route_2, opts?.prefetchData, dataPrefetchHandleKey)) {
215
- return;
216
- }
217
- try {
218
- await prefetchRouteData(router_0, route_2, normalized.pathWithSearch);
219
- } catch {
220
- return;
221
- }
222
- }));
223
- };
224
- $[5] = dataPrefetchHandleKey;
225
- $[6] = dataRouterContext?.router;
226
- $[7] = prefetchRouteData;
227
- $[8] = t8;
228
- } else {
229
- t8 = $[8];
230
- }
231
- const prefetch = t8;
232
- let t10;
233
- let t9;
234
- if ($[9] !== prefetch) {
235
- t9 = async (href_1) => prefetch(href_1, {
236
- prefetchCode: true,
237
- prefetchData: false
238
- });
239
- t10 = async (href_2) => prefetch(href_2, {
240
- prefetchCode: false,
241
- prefetchData: true
242
- });
243
- $[9] = prefetch;
244
- $[10] = t10;
245
- $[11] = t9;
246
- } else {
247
- t10 = $[10];
248
- t9 = $[11];
249
- }
250
- let t11;
251
- if ($[12] !== defaultPrefetch || $[13] !== prefetch || $[14] !== t10 || $[15] !== t9) {
252
- t11 = {
253
- defaultPrefetch,
254
- prefetch,
255
- prefetchCode: t9,
256
- prefetchData: t10
257
- };
258
- $[12] = defaultPrefetch;
259
- $[13] = prefetch;
260
- $[14] = t10;
261
- $[15] = t9;
262
- $[16] = t11;
263
- } else {
264
- t11 = $[16];
265
- }
266
- let t12;
267
- if ($[17] !== children || $[18] !== t11) {
268
- t12 = /* @__PURE__ */ jsx(RoutePrefetchContext.Provider, { value: t11, children });
269
- $[17] = children;
270
- $[18] = t11;
271
- $[19] = t12;
272
- } else {
273
- t12 = $[19];
274
- }
275
- return t12;
62
+ var RoutePrefetchProvider = (t0) => {
63
+ const $ = c(20);
64
+ const { children, defaultPrefetch: t1, dataPrefetchTtlMs: t2, dataPrefetchHandleKey: t3 } = t0;
65
+ const defaultPrefetch = t1 === void 0 ? "intent" : t1;
66
+ const dataPrefetchTtlMs = t2 === void 0 ? 3e4 : t2;
67
+ const dataPrefetchHandleKey = t3 === void 0 ? ROUTE_PREFETCH_DATA_HANDLE : t3;
68
+ const dataRouterContext = useContext(UNSAFE_DataRouterContext);
69
+ let t4;
70
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
71
+ t4 = /* @__PURE__ */ new Map();
72
+ $[0] = t4;
73
+ } else t4 = $[0];
74
+ const routeModuleCacheRef = useRef(t4);
75
+ let t5;
76
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
77
+ t5 = /* @__PURE__ */ new Map();
78
+ $[1] = t5;
79
+ } else t5 = $[1];
80
+ const routeDataCacheRef = useRef(t5);
81
+ let t6;
82
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
83
+ t6 = async (route) => {
84
+ const routeId = route.id;
85
+ if (!routeId) return null;
86
+ const cached = routeModuleCacheRef.current.get(routeId);
87
+ if (cached) return cached;
88
+ const lazyRouteLoader = typeof route.lazy === "function" ? route.lazy : null;
89
+ const routeModuleImporter = getRouteModuleImporterFromHandle(route.handle);
90
+ if (!lazyRouteLoader && !routeModuleImporter) return null;
91
+ const prefetchPromise = Promise.resolve(lazyRouteLoader ? lazyRouteLoader() : routeModuleImporter()).then(_temp$2).catch((error) => {
92
+ routeModuleCacheRef.current.delete(routeId);
93
+ throw error;
94
+ });
95
+ routeModuleCacheRef.current.set(routeId, prefetchPromise);
96
+ return prefetchPromise;
97
+ };
98
+ $[2] = t6;
99
+ } else t6 = $[2];
100
+ const prefetchRouteModule = t6;
101
+ let t7;
102
+ if ($[3] !== dataPrefetchTtlMs) {
103
+ t7 = async (router, route_0, href) => {
104
+ const routeId_0 = route_0.id;
105
+ if (!routeId_0) return;
106
+ const now = Date.now();
107
+ pruneDataCache(routeDataCacheRef.current, now);
108
+ const cacheKey = `${routeId_0}|${href}`;
109
+ const cached_0 = routeDataCacheRef.current.get(cacheKey);
110
+ if (cached_0 && cached_0.expiresAt > now) {
111
+ await cached_0.promise;
112
+ return;
113
+ }
114
+ let hasLoader = typeof route_0.loader === "function";
115
+ if (!hasLoader) hasLoader = typeof (await prefetchRouteModule(route_0).catch(_temp2$1))?.loader === "function";
116
+ if (!hasLoader) return;
117
+ const fetcherKey = `rb:prefetch:${routeId_0}:${href}`;
118
+ const prefetchPromise_0 = Promise.resolve(router.fetch(fetcherKey, routeId_0, href)).catch((error_0) => {
119
+ routeDataCacheRef.current.delete(cacheKey);
120
+ throw error_0;
121
+ }).finally(() => {
122
+ try {
123
+ router.deleteFetcher(fetcherKey);
124
+ } catch {
125
+ return;
126
+ }
127
+ });
128
+ const ttl = Math.max(1, dataPrefetchTtlMs);
129
+ routeDataCacheRef.current.set(cacheKey, {
130
+ expiresAt: now + ttl,
131
+ promise: prefetchPromise_0
132
+ });
133
+ await prefetchPromise_0;
134
+ };
135
+ $[3] = dataPrefetchTtlMs;
136
+ $[4] = t7;
137
+ } else t7 = $[4];
138
+ const prefetchRouteData = t7;
139
+ let t8;
140
+ if ($[5] !== dataPrefetchHandleKey || $[6] !== dataRouterContext?.router || $[7] !== prefetchRouteData) {
141
+ t8 = async (href_0, opts) => {
142
+ const normalized = normalizeHref(href_0);
143
+ if (!normalized) return;
144
+ const currentPathWithSearch = typeof window === "undefined" ? "" : `${window.location.pathname}${window.location.search}`;
145
+ if (normalized.pathWithSearch === currentPathWithSearch) return;
146
+ const router_0 = dataRouterContext?.router;
147
+ if (!router_0) return;
148
+ const matches = matchRoutes(router_0.routes, {
149
+ pathname: normalized.pathname,
150
+ search: normalized.search,
151
+ hash: normalized.hash
152
+ }, router_0.basename);
153
+ if (!matches || matches.length === 0) return;
154
+ const matchedRoutes = matches.map(_temp3);
155
+ if (opts?.prefetchCode !== false) await Promise.all(matchedRoutes.map(async (route_1) => {
156
+ try {
157
+ await prefetchRouteModule(route_1);
158
+ } catch {
159
+ return;
160
+ }
161
+ }));
162
+ await Promise.all(matchedRoutes.map(async (route_2) => {
163
+ if (!resolveDataPrefetchFlag(route_2, opts?.prefetchData, dataPrefetchHandleKey)) return;
164
+ try {
165
+ await prefetchRouteData(router_0, route_2, normalized.pathWithSearch);
166
+ } catch {
167
+ return;
168
+ }
169
+ }));
170
+ };
171
+ $[5] = dataPrefetchHandleKey;
172
+ $[6] = dataRouterContext?.router;
173
+ $[7] = prefetchRouteData;
174
+ $[8] = t8;
175
+ } else t8 = $[8];
176
+ const prefetch = t8;
177
+ let t10;
178
+ let t9;
179
+ if ($[9] !== prefetch) {
180
+ t9 = async (href_1) => prefetch(href_1, {
181
+ prefetchCode: true,
182
+ prefetchData: false
183
+ });
184
+ t10 = async (href_2) => prefetch(href_2, {
185
+ prefetchCode: false,
186
+ prefetchData: true
187
+ });
188
+ $[9] = prefetch;
189
+ $[10] = t10;
190
+ $[11] = t9;
191
+ } else {
192
+ t10 = $[10];
193
+ t9 = $[11];
194
+ }
195
+ let t11;
196
+ if ($[12] !== defaultPrefetch || $[13] !== prefetch || $[14] !== t10 || $[15] !== t9) {
197
+ t11 = {
198
+ defaultPrefetch,
199
+ prefetch,
200
+ prefetchCode: t9,
201
+ prefetchData: t10
202
+ };
203
+ $[12] = defaultPrefetch;
204
+ $[13] = prefetch;
205
+ $[14] = t10;
206
+ $[15] = t9;
207
+ $[16] = t11;
208
+ } else t11 = $[16];
209
+ let t12;
210
+ if ($[17] !== children || $[18] !== t11) {
211
+ t12 = /* @__PURE__ */ jsx(RoutePrefetchContext.Provider, {
212
+ value: t11,
213
+ children
214
+ });
215
+ $[17] = children;
216
+ $[18] = t11;
217
+ $[19] = t12;
218
+ } else t12 = $[19];
219
+ return t12;
276
220
  };
277
- const useRoutePrefetch = () => {
278
- return useContext(RoutePrefetchContext);
221
+ var useRoutePrefetch = () => {
222
+ return useContext(RoutePrefetchContext);
279
223
  };
280
224
  function _temp$2(module) {
281
- if (!module || typeof module !== "object") {
282
- return null;
283
- }
284
- return module;
225
+ if (!module || typeof module !== "object") return null;
226
+ return module;
285
227
  }
286
228
  function _temp2$1() {
287
- return null;
229
+ return null;
288
230
  }
289
231
  function _temp3(match) {
290
- return match.route;
232
+ return match.route;
291
233
  }
292
- const ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;
293
- const assignRef = (ref, value) => {
294
- if (!ref) return;
295
- if (typeof ref === "function") {
296
- ref(value);
297
- return;
298
- }
299
- ref.current = value;
234
+ //#endregion
235
+ //#region src/Link.tsx
236
+ var ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;
237
+ var assignRef = (ref, value) => {
238
+ if (!ref) return;
239
+ if (typeof ref === "function") {
240
+ ref(value);
241
+ return;
242
+ }
243
+ ref.current = value;
300
244
  };
301
- const composeEventHandlers = (theirHandler, ourHandler) => {
302
- return (event) => {
303
- theirHandler?.(event);
304
- if (!event.defaultPrevented) {
305
- ourHandler();
306
- }
307
- };
245
+ var composeEventHandlers = (theirHandler, ourHandler) => {
246
+ return (event) => {
247
+ theirHandler?.(event);
248
+ if (!event.defaultPrevented) ourHandler();
249
+ };
308
250
  };
309
- const shouldPrefetchLink = ({
310
- prefetch,
311
- reloadDocument,
312
- target,
313
- to
314
- }) => {
315
- if (prefetch === "none") return false;
316
- if (reloadDocument) return false;
317
- if (typeof target === "string" && target !== "_self") return false;
318
- if (typeof to === "string" && ABSOLUTE_URL_REGEX.test(to)) return false;
319
- return true;
251
+ var shouldPrefetchLink = ({ prefetch, reloadDocument, target, to }) => {
252
+ if (prefetch === "none") return false;
253
+ if (reloadDocument) return false;
254
+ if (typeof target === "string" && target !== "_self") return false;
255
+ if (typeof to === "string" && ABSOLUTE_URL_REGEX.test(to)) return false;
256
+ return true;
320
257
  };
321
- const usePrefetchLink = (prefetchData) => {
322
- const $ = c(5);
323
- const localRef = useRef(null);
324
- const {
325
- prefetch
326
- } = useRoutePrefetch();
327
- let t0;
328
- let t1;
329
- if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
330
- t0 = (node) => {
331
- localRef.current = node;
332
- };
333
- t1 = () => localRef.current;
334
- $[0] = t0;
335
- $[1] = t1;
336
- } else {
337
- t0 = $[0];
338
- t1 = $[1];
339
- }
340
- let t2;
341
- if ($[2] !== prefetch || $[3] !== prefetchData) {
342
- t2 = {
343
- anchorRef: t0,
344
- getAnchorElement: t1,
345
- prefetchHref: () => {
346
- const href = localRef.current?.getAttribute("href");
347
- if (!href) {
348
- return;
349
- }
350
- prefetch(href, {
351
- prefetchData
352
- });
353
- }
354
- };
355
- $[2] = prefetch;
356
- $[3] = prefetchData;
357
- $[4] = t2;
358
- } else {
359
- t2 = $[4];
360
- }
361
- return t2;
258
+ var usePrefetchLink = (prefetchData) => {
259
+ const $ = c(5);
260
+ const localRef = useRef(null);
261
+ const { prefetch } = useRoutePrefetch();
262
+ let t0;
263
+ let t1;
264
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
265
+ t0 = (node) => {
266
+ localRef.current = node;
267
+ };
268
+ t1 = () => localRef.current;
269
+ $[0] = t0;
270
+ $[1] = t1;
271
+ } else {
272
+ t0 = $[0];
273
+ t1 = $[1];
274
+ }
275
+ let t2;
276
+ if ($[2] !== prefetch || $[3] !== prefetchData) {
277
+ t2 = {
278
+ anchorRef: t0,
279
+ getAnchorElement: t1,
280
+ prefetchHref: () => {
281
+ const href = localRef.current?.getAttribute("href");
282
+ if (!href) return;
283
+ prefetch(href, { prefetchData });
284
+ }
285
+ };
286
+ $[2] = prefetch;
287
+ $[3] = prefetchData;
288
+ $[4] = t2;
289
+ } else t2 = $[4];
290
+ return t2;
362
291
  };
363
- const Link = forwardRef((t0, forwardedRef) => {
364
- const $ = c(54);
365
- let onFocus;
366
- let onMouseEnter;
367
- let onTouchStart;
368
- let prefetchData;
369
- let prefetchProp;
370
- let props;
371
- let reloadDocument;
372
- let target;
373
- let to;
374
- if ($[0] !== t0) {
375
- ({
376
- prefetch: prefetchProp,
377
- prefetchData,
378
- onMouseEnter,
379
- onFocus,
380
- onTouchStart,
381
- reloadDocument,
382
- target,
383
- to,
384
- ...props
385
- } = t0);
386
- $[0] = t0;
387
- $[1] = onFocus;
388
- $[2] = onMouseEnter;
389
- $[3] = onTouchStart;
390
- $[4] = prefetchData;
391
- $[5] = prefetchProp;
392
- $[6] = props;
393
- $[7] = reloadDocument;
394
- $[8] = target;
395
- $[9] = to;
396
- } else {
397
- onFocus = $[1];
398
- onMouseEnter = $[2];
399
- onTouchStart = $[3];
400
- prefetchData = $[4];
401
- prefetchProp = $[5];
402
- props = $[6];
403
- reloadDocument = $[7];
404
- target = $[8];
405
- to = $[9];
406
- }
407
- const {
408
- defaultPrefetch
409
- } = useRoutePrefetch();
410
- const prefetchBehavior = prefetchProp ?? defaultPrefetch;
411
- const viewportPrefetchedRef = useRef(false);
412
- const {
413
- anchorRef,
414
- prefetchHref,
415
- getAnchorElement
416
- } = usePrefetchLink(prefetchData);
417
- let t1;
418
- if ($[10] !== prefetchBehavior || $[11] !== reloadDocument || $[12] !== target || $[13] !== to) {
419
- t1 = shouldPrefetchLink({
420
- prefetch: prefetchBehavior,
421
- reloadDocument,
422
- target,
423
- to
424
- });
425
- $[10] = prefetchBehavior;
426
- $[11] = reloadDocument;
427
- $[12] = target;
428
- $[13] = to;
429
- $[14] = t1;
430
- } else {
431
- t1 = $[14];
432
- }
433
- const canPrefetch = t1;
434
- let t2;
435
- if ($[15] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
436
- t2 = () => {
437
- viewportPrefetchedRef.current = false;
438
- };
439
- $[15] = t2;
440
- } else {
441
- t2 = $[15];
442
- }
443
- let t3;
444
- if ($[16] !== to) {
445
- t3 = [to];
446
- $[16] = to;
447
- $[17] = t3;
448
- } else {
449
- t3 = $[17];
450
- }
451
- useEffect(t2, t3);
452
- let t4;
453
- let t5;
454
- if ($[18] !== canPrefetch || $[19] !== prefetchBehavior || $[20] !== prefetchHref) {
455
- t4 = () => {
456
- if (!canPrefetch || prefetchBehavior !== "render") {
457
- return;
458
- }
459
- prefetchHref();
460
- };
461
- t5 = [canPrefetch, prefetchBehavior, prefetchHref];
462
- $[18] = canPrefetch;
463
- $[19] = prefetchBehavior;
464
- $[20] = prefetchHref;
465
- $[21] = t4;
466
- $[22] = t5;
467
- } else {
468
- t4 = $[21];
469
- t5 = $[22];
470
- }
471
- useEffect(t4, t5);
472
- let t6;
473
- let t7;
474
- if ($[23] !== canPrefetch || $[24] !== getAnchorElement || $[25] !== prefetchBehavior || $[26] !== prefetchHref) {
475
- t6 = () => {
476
- if (!canPrefetch || prefetchBehavior !== "viewport") {
477
- return;
478
- }
479
- const element = getAnchorElement();
480
- if (!element || typeof IntersectionObserver === "undefined") {
481
- return;
482
- }
483
- const observer = new IntersectionObserver((entries) => {
484
- const isVisible = entries.some(_temp$1);
485
- if (!isVisible || viewportPrefetchedRef.current) {
486
- return;
487
- }
488
- viewportPrefetchedRef.current = true;
489
- prefetchHref();
490
- }, {
491
- threshold: 0.5
492
- });
493
- observer.observe(element);
494
- return () => {
495
- observer.disconnect();
496
- };
497
- };
498
- t7 = [canPrefetch, prefetchBehavior, prefetchHref, getAnchorElement];
499
- $[23] = canPrefetch;
500
- $[24] = getAnchorElement;
501
- $[25] = prefetchBehavior;
502
- $[26] = prefetchHref;
503
- $[27] = t6;
504
- $[28] = t7;
505
- } else {
506
- t6 = $[27];
507
- t7 = $[28];
508
- }
509
- useEffect(t6, t7);
510
- let t8;
511
- if ($[29] !== canPrefetch || $[30] !== prefetchBehavior || $[31] !== prefetchHref) {
512
- t8 = () => {
513
- if (!canPrefetch || prefetchBehavior !== "intent") {
514
- return;
515
- }
516
- prefetchHref();
517
- };
518
- $[29] = canPrefetch;
519
- $[30] = prefetchBehavior;
520
- $[31] = prefetchHref;
521
- $[32] = t8;
522
- } else {
523
- t8 = $[32];
524
- }
525
- const handleIntentPrefetch = t8;
526
- let t9;
527
- if ($[33] !== handleIntentPrefetch || $[34] !== onMouseEnter) {
528
- t9 = composeEventHandlers(onMouseEnter, handleIntentPrefetch);
529
- $[33] = handleIntentPrefetch;
530
- $[34] = onMouseEnter;
531
- $[35] = t9;
532
- } else {
533
- t9 = $[35];
534
- }
535
- let t10;
536
- if ($[36] !== handleIntentPrefetch || $[37] !== onFocus) {
537
- t10 = composeEventHandlers(onFocus, handleIntentPrefetch);
538
- $[36] = handleIntentPrefetch;
539
- $[37] = onFocus;
540
- $[38] = t10;
541
- } else {
542
- t10 = $[38];
543
- }
544
- let t11;
545
- if ($[39] !== handleIntentPrefetch || $[40] !== onTouchStart) {
546
- t11 = composeEventHandlers(onTouchStart, handleIntentPrefetch);
547
- $[39] = handleIntentPrefetch;
548
- $[40] = onTouchStart;
549
- $[41] = t11;
550
- } else {
551
- t11 = $[41];
552
- }
553
- let t12;
554
- if ($[42] !== anchorRef || $[43] !== forwardedRef) {
555
- t12 = (node) => {
556
- assignRef(forwardedRef, node);
557
- assignRef(anchorRef, node);
558
- };
559
- $[42] = anchorRef;
560
- $[43] = forwardedRef;
561
- $[44] = t12;
562
- } else {
563
- t12 = $[44];
564
- }
565
- let t13;
566
- if ($[45] !== props || $[46] !== reloadDocument || $[47] !== t10 || $[48] !== t11 || $[49] !== t12 || $[50] !== t9 || $[51] !== target || $[52] !== to) {
567
- t13 = /* @__PURE__ */ jsx(Link$1, { ...props, to, target, reloadDocument, prefetch: "none", onMouseEnter: t9, onFocus: t10, onTouchStart: t11, ref: t12 });
568
- $[45] = props;
569
- $[46] = reloadDocument;
570
- $[47] = t10;
571
- $[48] = t11;
572
- $[49] = t12;
573
- $[50] = t9;
574
- $[51] = target;
575
- $[52] = to;
576
- $[53] = t13;
577
- } else {
578
- t13 = $[53];
579
- }
580
- return t13;
292
+ var Link = forwardRef((t0, forwardedRef) => {
293
+ const $ = c(54);
294
+ let onFocus;
295
+ let onMouseEnter;
296
+ let onTouchStart;
297
+ let prefetchData;
298
+ let prefetchProp;
299
+ let props;
300
+ let reloadDocument;
301
+ let target;
302
+ let to;
303
+ if ($[0] !== t0) {
304
+ ({prefetch: prefetchProp, prefetchData, onMouseEnter, onFocus, onTouchStart, reloadDocument, target, to, ...props} = t0);
305
+ $[0] = t0;
306
+ $[1] = onFocus;
307
+ $[2] = onMouseEnter;
308
+ $[3] = onTouchStart;
309
+ $[4] = prefetchData;
310
+ $[5] = prefetchProp;
311
+ $[6] = props;
312
+ $[7] = reloadDocument;
313
+ $[8] = target;
314
+ $[9] = to;
315
+ } else {
316
+ onFocus = $[1];
317
+ onMouseEnter = $[2];
318
+ onTouchStart = $[3];
319
+ prefetchData = $[4];
320
+ prefetchProp = $[5];
321
+ props = $[6];
322
+ reloadDocument = $[7];
323
+ target = $[8];
324
+ to = $[9];
325
+ }
326
+ const { defaultPrefetch } = useRoutePrefetch();
327
+ const prefetchBehavior = prefetchProp ?? defaultPrefetch;
328
+ const viewportPrefetchedRef = useRef(false);
329
+ const { anchorRef, prefetchHref, getAnchorElement } = usePrefetchLink(prefetchData);
330
+ let t1;
331
+ if ($[10] !== prefetchBehavior || $[11] !== reloadDocument || $[12] !== target || $[13] !== to) {
332
+ t1 = shouldPrefetchLink({
333
+ prefetch: prefetchBehavior,
334
+ reloadDocument,
335
+ target,
336
+ to
337
+ });
338
+ $[10] = prefetchBehavior;
339
+ $[11] = reloadDocument;
340
+ $[12] = target;
341
+ $[13] = to;
342
+ $[14] = t1;
343
+ } else t1 = $[14];
344
+ const canPrefetch = t1;
345
+ let t2;
346
+ if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
347
+ t2 = () => {
348
+ viewportPrefetchedRef.current = false;
349
+ };
350
+ $[15] = t2;
351
+ } else t2 = $[15];
352
+ let t3;
353
+ if ($[16] !== to) {
354
+ t3 = [to];
355
+ $[16] = to;
356
+ $[17] = t3;
357
+ } else t3 = $[17];
358
+ useEffect(t2, t3);
359
+ let t4;
360
+ let t5;
361
+ if ($[18] !== canPrefetch || $[19] !== prefetchBehavior || $[20] !== prefetchHref) {
362
+ t4 = () => {
363
+ if (!canPrefetch || prefetchBehavior !== "render") return;
364
+ prefetchHref();
365
+ };
366
+ t5 = [
367
+ canPrefetch,
368
+ prefetchBehavior,
369
+ prefetchHref
370
+ ];
371
+ $[18] = canPrefetch;
372
+ $[19] = prefetchBehavior;
373
+ $[20] = prefetchHref;
374
+ $[21] = t4;
375
+ $[22] = t5;
376
+ } else {
377
+ t4 = $[21];
378
+ t5 = $[22];
379
+ }
380
+ useEffect(t4, t5);
381
+ let t6;
382
+ let t7;
383
+ if ($[23] !== canPrefetch || $[24] !== getAnchorElement || $[25] !== prefetchBehavior || $[26] !== prefetchHref) {
384
+ t6 = () => {
385
+ if (!canPrefetch || prefetchBehavior !== "viewport") return;
386
+ const element = getAnchorElement();
387
+ if (!element || typeof IntersectionObserver === "undefined") return;
388
+ const observer = new IntersectionObserver((entries) => {
389
+ if (!entries.some(_temp$1) || viewportPrefetchedRef.current) return;
390
+ viewportPrefetchedRef.current = true;
391
+ prefetchHref();
392
+ }, { threshold: .5 });
393
+ observer.observe(element);
394
+ return () => {
395
+ observer.disconnect();
396
+ };
397
+ };
398
+ t7 = [
399
+ canPrefetch,
400
+ prefetchBehavior,
401
+ prefetchHref,
402
+ getAnchorElement
403
+ ];
404
+ $[23] = canPrefetch;
405
+ $[24] = getAnchorElement;
406
+ $[25] = prefetchBehavior;
407
+ $[26] = prefetchHref;
408
+ $[27] = t6;
409
+ $[28] = t7;
410
+ } else {
411
+ t6 = $[27];
412
+ t7 = $[28];
413
+ }
414
+ useEffect(t6, t7);
415
+ let t8;
416
+ if ($[29] !== canPrefetch || $[30] !== prefetchBehavior || $[31] !== prefetchHref) {
417
+ t8 = () => {
418
+ if (!canPrefetch || prefetchBehavior !== "intent") return;
419
+ prefetchHref();
420
+ };
421
+ $[29] = canPrefetch;
422
+ $[30] = prefetchBehavior;
423
+ $[31] = prefetchHref;
424
+ $[32] = t8;
425
+ } else t8 = $[32];
426
+ const handleIntentPrefetch = t8;
427
+ let t9;
428
+ if ($[33] !== handleIntentPrefetch || $[34] !== onMouseEnter) {
429
+ t9 = composeEventHandlers(onMouseEnter, handleIntentPrefetch);
430
+ $[33] = handleIntentPrefetch;
431
+ $[34] = onMouseEnter;
432
+ $[35] = t9;
433
+ } else t9 = $[35];
434
+ let t10;
435
+ if ($[36] !== handleIntentPrefetch || $[37] !== onFocus) {
436
+ t10 = composeEventHandlers(onFocus, handleIntentPrefetch);
437
+ $[36] = handleIntentPrefetch;
438
+ $[37] = onFocus;
439
+ $[38] = t10;
440
+ } else t10 = $[38];
441
+ let t11;
442
+ if ($[39] !== handleIntentPrefetch || $[40] !== onTouchStart) {
443
+ t11 = composeEventHandlers(onTouchStart, handleIntentPrefetch);
444
+ $[39] = handleIntentPrefetch;
445
+ $[40] = onTouchStart;
446
+ $[41] = t11;
447
+ } else t11 = $[41];
448
+ let t12;
449
+ if ($[42] !== anchorRef || $[43] !== forwardedRef) {
450
+ t12 = (node) => {
451
+ assignRef(forwardedRef, node);
452
+ assignRef(anchorRef, node);
453
+ };
454
+ $[42] = anchorRef;
455
+ $[43] = forwardedRef;
456
+ $[44] = t12;
457
+ } else t12 = $[44];
458
+ let t13;
459
+ if ($[45] !== props || $[46] !== reloadDocument || $[47] !== t10 || $[48] !== t11 || $[49] !== t12 || $[50] !== t9 || $[51] !== target || $[52] !== to) {
460
+ t13 = /* @__PURE__ */ jsx(Link$1, {
461
+ ...props,
462
+ to,
463
+ target,
464
+ reloadDocument,
465
+ prefetch: "none",
466
+ onMouseEnter: t9,
467
+ onFocus: t10,
468
+ onTouchStart: t11,
469
+ ref: t12
470
+ });
471
+ $[45] = props;
472
+ $[46] = reloadDocument;
473
+ $[47] = t10;
474
+ $[48] = t11;
475
+ $[49] = t12;
476
+ $[50] = t9;
477
+ $[51] = target;
478
+ $[52] = to;
479
+ $[53] = t13;
480
+ } else t13 = $[53];
481
+ return t13;
581
482
  });
582
483
  Link.displayName = "Link";
583
484
  function _temp$1(entry) {
584
- return entry.isIntersecting;
485
+ return entry.isIntersecting;
585
486
  }
586
- const memoizeImporter = (importer) => {
587
- let promise = null;
588
- return async () => {
589
- if (!promise) {
590
- promise = importer().catch((error) => {
591
- promise = null;
592
- throw error;
593
- });
594
- }
595
- return promise;
596
- };
487
+ //#endregion
488
+ //#region src/lazyRoute.tsx
489
+ var memoizeImporter = (importer) => {
490
+ let promise = null;
491
+ return async () => {
492
+ if (!promise) promise = importer().catch((error) => {
493
+ promise = null;
494
+ throw error;
495
+ });
496
+ return promise;
497
+ };
597
498
  };
598
- const lazyRoute = (importer, opts) => {
599
- const loadModule = memoizeImporter(importer);
600
- return {
601
- lazy: async () => {
602
- const module = await loadModule();
603
- const lazyRouteModule = {
604
- Component: module.default
605
- };
606
- if (typeof module.loader === "function") {
607
- lazyRouteModule.loader = module.loader;
608
- }
609
- return lazyRouteModule;
610
- },
611
- handle: mergeRouteHandle(opts?.handle, {
612
- importer: loadModule,
613
- prefetchData: opts?.prefetchData,
614
- prefetchDataKey: opts?.prefetchDataKey
615
- })
616
- };
499
+ var lazyRoute = (importer, opts) => {
500
+ const loadModule = memoizeImporter(importer);
501
+ return {
502
+ lazy: async () => {
503
+ const module = await loadModule();
504
+ const lazyRouteModule = { Component: module.default };
505
+ if (typeof module.loader === "function") lazyRouteModule.loader = module.loader;
506
+ return lazyRouteModule;
507
+ },
508
+ handle: mergeRouteHandle(opts?.handle, {
509
+ importer: loadModule,
510
+ prefetchData: opts?.prefetchData,
511
+ prefetchDataKey: opts?.prefetchDataKey
512
+ })
513
+ };
617
514
  };
618
- const useApplyMeta = (t0) => {
619
- const $ = c(12);
620
- let t1;
621
- if ($[0] !== t0) {
622
- t1 = t0 === void 0 ? {} : t0;
623
- $[0] = t0;
624
- $[1] = t1;
625
- } else {
626
- t1 = $[1];
627
- }
628
- const {
629
- defaultTitle: t2,
630
- defaultMeta: t3,
631
- pagesMeta: t4
632
- } = t1;
633
- const defaultTitle = t2 === void 0 ? "" : t2;
634
- let t5;
635
- if ($[2] !== t3) {
636
- t5 = t3 === void 0 ? [] : t3;
637
- $[2] = t3;
638
- $[3] = t5;
639
- } else {
640
- t5 = $[3];
641
- }
642
- const defaultMeta = t5;
643
- let t6;
644
- if ($[4] !== t4) {
645
- t6 = t4 === void 0 ? {} : t4;
646
- $[4] = t4;
647
- $[5] = t6;
648
- } else {
649
- t6 = $[5];
650
- }
651
- const pagesMeta = t6;
652
- const location = useLocation();
653
- let t7;
654
- let t8;
655
- if ($[6] !== defaultMeta || $[7] !== defaultTitle || $[8] !== location.pathname || $[9] !== pagesMeta) {
656
- t7 = () => {
657
- const loadMeta = async () => {
658
- let pageMeta = pagesMeta[location.pathname];
659
- if (!pageMeta) {
660
- pageMeta = {
661
- title: defaultTitle,
662
- meta: defaultMeta
663
- };
664
- }
665
- document.title = pageMeta.title;
666
- document.querySelectorAll("[data-react-meta]").forEach(_temp);
667
- pageMeta.meta.forEach(_temp2);
668
- const canonicalUrl = `${window.location.origin}${location.pathname}`;
669
- const existingCanonical = document.querySelector('link[rel="canonical"]');
670
- if (existingCanonical) {
671
- existingCanonical.remove();
672
- }
673
- const canonicalLink = document.createElement("link");
674
- canonicalLink.setAttribute("rel", "canonical");
675
- canonicalLink.setAttribute("href", canonicalUrl);
676
- canonicalLink.setAttribute("data-react-meta", "true");
677
- document.head.appendChild(canonicalLink);
678
- };
679
- loadMeta();
680
- };
681
- t8 = [location.pathname, defaultTitle, defaultMeta, pagesMeta];
682
- $[6] = defaultMeta;
683
- $[7] = defaultTitle;
684
- $[8] = location.pathname;
685
- $[9] = pagesMeta;
686
- $[10] = t7;
687
- $[11] = t8;
688
- } else {
689
- t7 = $[10];
690
- t8 = $[11];
691
- }
692
- useEffect(t7, t8);
515
+ //#endregion
516
+ //#region src/useApplyMeta.tsx
517
+ var useApplyMeta = (t0) => {
518
+ const $ = c(12);
519
+ let t1;
520
+ if ($[0] !== t0) {
521
+ t1 = t0 === void 0 ? {} : t0;
522
+ $[0] = t0;
523
+ $[1] = t1;
524
+ } else t1 = $[1];
525
+ const { defaultTitle: t2, defaultMeta: t3, pagesMeta: t4 } = t1;
526
+ const defaultTitle = t2 === void 0 ? "" : t2;
527
+ let t5;
528
+ if ($[2] !== t3) {
529
+ t5 = t3 === void 0 ? [] : t3;
530
+ $[2] = t3;
531
+ $[3] = t5;
532
+ } else t5 = $[3];
533
+ const defaultMeta = t5;
534
+ let t6;
535
+ if ($[4] !== t4) {
536
+ t6 = t4 === void 0 ? {} : t4;
537
+ $[4] = t4;
538
+ $[5] = t6;
539
+ } else t6 = $[5];
540
+ const pagesMeta = t6;
541
+ const location = useLocation();
542
+ let t7;
543
+ let t8;
544
+ if ($[6] !== defaultMeta || $[7] !== defaultTitle || $[8] !== location.pathname || $[9] !== pagesMeta) {
545
+ t7 = () => {
546
+ const loadMeta = async () => {
547
+ let pageMeta = pagesMeta[location.pathname];
548
+ if (!pageMeta) pageMeta = {
549
+ title: defaultTitle,
550
+ meta: defaultMeta
551
+ };
552
+ document.title = pageMeta.title;
553
+ document.querySelectorAll("[data-react-meta]").forEach(_temp);
554
+ pageMeta.meta.forEach(_temp2);
555
+ const canonicalUrl = `${window.location.origin}${location.pathname}`;
556
+ const existingCanonical = document.querySelector("link[rel=\"canonical\"]");
557
+ if (existingCanonical) existingCanonical.remove();
558
+ const canonicalLink = document.createElement("link");
559
+ canonicalLink.setAttribute("rel", "canonical");
560
+ canonicalLink.setAttribute("href", canonicalUrl);
561
+ canonicalLink.setAttribute("data-react-meta", "true");
562
+ document.head.appendChild(canonicalLink);
563
+ };
564
+ loadMeta();
565
+ };
566
+ t8 = [
567
+ location.pathname,
568
+ defaultTitle,
569
+ defaultMeta,
570
+ pagesMeta
571
+ ];
572
+ $[6] = defaultMeta;
573
+ $[7] = defaultTitle;
574
+ $[8] = location.pathname;
575
+ $[9] = pagesMeta;
576
+ $[10] = t7;
577
+ $[11] = t8;
578
+ } else {
579
+ t7 = $[10];
580
+ t8 = $[11];
581
+ }
582
+ useEffect(t7, t8);
693
583
  };
694
584
  function _temp(tag) {
695
- return tag.remove();
585
+ return tag.remove();
696
586
  }
697
587
  function _temp2(meta) {
698
- const metaElement = document.createElement("meta");
699
- metaElement.setAttribute("data-react-meta", "true");
700
- Object.entries(meta).forEach((t0) => {
701
- const [key, value] = t0;
702
- if (value) {
703
- metaElement.setAttribute(key, value.toString());
704
- }
705
- });
706
- document.head.appendChild(metaElement);
588
+ const metaElement = document.createElement("meta");
589
+ metaElement.setAttribute("data-react-meta", "true");
590
+ Object.entries(meta).forEach((t0) => {
591
+ const [key, value] = t0;
592
+ if (value) metaElement.setAttribute(key, value.toString());
593
+ });
594
+ document.head.appendChild(metaElement);
707
595
  }
708
- const NAVIGATION_GUARDS_STORE_KEY = "__rpcbaseNavigationGuardsStore";
709
- const getNavigationGuardsStore = () => {
710
- const globalAny = globalThis;
711
- const existing = globalAny[NAVIGATION_GUARDS_STORE_KEY];
712
- if (existing) {
713
- return existing;
714
- }
715
- const created = {
716
- guards: /* @__PURE__ */ new Map(),
717
- listeners: /* @__PURE__ */ new Set()
718
- };
719
- globalAny[NAVIGATION_GUARDS_STORE_KEY] = created;
720
- return created;
596
+ //#endregion
597
+ //#region src/navigationGuards.ts
598
+ var NAVIGATION_GUARDS_STORE_KEY = "__rpcbaseNavigationGuardsStore";
599
+ var getNavigationGuardsStore = () => {
600
+ const globalAny = globalThis;
601
+ const existing = globalAny[NAVIGATION_GUARDS_STORE_KEY];
602
+ if (existing) return existing;
603
+ const created = {
604
+ guards: /* @__PURE__ */ new Map(),
605
+ listeners: /* @__PURE__ */ new Set()
606
+ };
607
+ globalAny[NAVIGATION_GUARDS_STORE_KEY] = created;
608
+ return created;
721
609
  };
722
- const notify = () => {
723
- getNavigationGuardsStore().listeners.forEach((listener) => {
724
- listener();
725
- });
610
+ var notify = () => {
611
+ getNavigationGuardsStore().listeners.forEach((listener) => {
612
+ listener();
613
+ });
726
614
  };
727
- const isSameGuard = (a, b) => a.id === b.id && a.enabled === b.enabled && a.priority === b.priority && a.message === b.message && a.blockOnSearch === b.blockOnSearch && a.shouldBlockNavigation === b.shouldBlockNavigation && a.shouldBlockUnload === b.shouldBlockUnload;
728
- const upsertNavigationGuard = (guard) => {
729
- const guards = getNavigationGuardsStore().guards;
730
- const prev = guards.get(guard.id);
731
- if (prev && isSameGuard(prev, guard)) {
732
- return;
733
- }
734
- guards.set(guard.id, guard);
735
- notify();
615
+ var isSameGuard = (a, b) => a.id === b.id && a.enabled === b.enabled && a.priority === b.priority && a.message === b.message && a.blockOnSearch === b.blockOnSearch && a.shouldBlockNavigation === b.shouldBlockNavigation && a.shouldBlockUnload === b.shouldBlockUnload;
616
+ var upsertNavigationGuard = (guard) => {
617
+ const guards = getNavigationGuardsStore().guards;
618
+ const prev = guards.get(guard.id);
619
+ if (prev && isSameGuard(prev, guard)) return;
620
+ guards.set(guard.id, guard);
621
+ notify();
736
622
  };
737
- const removeNavigationGuard = (id) => {
738
- const guards = getNavigationGuardsStore().guards;
739
- const didDelete = guards.delete(id);
740
- if (didDelete) {
741
- notify();
742
- }
623
+ var removeNavigationGuard = (id) => {
624
+ if (getNavigationGuardsStore().guards.delete(id)) notify();
743
625
  };
744
- const getNavigationGuards = () => Array.from(getNavigationGuardsStore().guards.values());
745
- const subscribeNavigationGuards = (listener) => {
746
- const listeners = getNavigationGuardsStore().listeners;
747
- listeners.add(listener);
748
- return () => {
749
- listeners.delete(listener);
750
- };
626
+ var getNavigationGuards = () => Array.from(getNavigationGuardsStore().guards.values());
627
+ var subscribeNavigationGuards = (listener) => {
628
+ const listeners = getNavigationGuardsStore().listeners;
629
+ listeners.add(listener);
630
+ return () => {
631
+ listeners.delete(listener);
632
+ };
751
633
  };
752
- const useRegisterNavigationGuard = (guard) => {
753
- const latestGuardRef = useRef(guard);
754
- latestGuardRef.current = guard;
755
- const lastIdRef = useRef(null);
756
- useEffect(() => {
757
- const lastId = lastIdRef.current;
758
- if (lastId && lastId !== guard.id) {
759
- removeNavigationGuard(lastId);
760
- }
761
- lastIdRef.current = guard.id;
762
- if (!guard.enabled) {
763
- removeNavigationGuard(guard.id);
764
- return;
765
- }
766
- upsertNavigationGuard(latestGuardRef.current);
767
- return () => {
768
- removeNavigationGuard(guard.id);
769
- };
770
- }, [guard.id, guard.enabled, guard.message, guard.priority, guard.blockOnSearch, guard.shouldBlockNavigation, guard.shouldBlockUnload]);
634
+ var useRegisterNavigationGuard = (guard) => {
635
+ const latestGuardRef = useRef(guard);
636
+ latestGuardRef.current = guard;
637
+ const lastIdRef = useRef(null);
638
+ useEffect(() => {
639
+ const lastId = lastIdRef.current;
640
+ if (lastId && lastId !== guard.id) removeNavigationGuard(lastId);
641
+ lastIdRef.current = guard.id;
642
+ if (!guard.enabled) {
643
+ removeNavigationGuard(guard.id);
644
+ return;
645
+ }
646
+ upsertNavigationGuard(latestGuardRef.current);
647
+ return () => {
648
+ removeNavigationGuard(guard.id);
649
+ };
650
+ }, [
651
+ guard.id,
652
+ guard.enabled,
653
+ guard.message,
654
+ guard.priority,
655
+ guard.blockOnSearch,
656
+ guard.shouldBlockNavigation,
657
+ guard.shouldBlockUnload
658
+ ]);
771
659
  };
772
- class QueryOverlayErrorBoundary extends Component {
773
- state = {
774
- error: null
775
- };
776
- static getDerivedStateFromError(error) {
777
- return {
778
- error
779
- };
780
- }
781
- componentDidCatch(error, errorInfo) {
782
- console.error("Query overlay rendering error", error, errorInfo);
783
- }
784
- componentDidUpdate(previousProps) {
785
- if (this.state.error === null) return;
786
- if (previousProps.resetKey === this.props.resetKey) return;
787
- this.setState({
788
- error: null
789
- });
790
- }
791
- render() {
792
- return this.state.error === null ? this.props.children : this.props.fallback(this.state.error);
793
- }
794
- }
795
- const QUERY_OVERLAY_URL_CHANGE_EVENT = "rpcbase-query-overlay-url-change";
660
+ //#endregion
661
+ //#region src/queryOverlay.ts
662
+ var QueryOverlayErrorBoundary = class extends Component {
663
+ state = { error: null };
664
+ static getDerivedStateFromError(error) {
665
+ return { error };
666
+ }
667
+ componentDidCatch(error, errorInfo) {
668
+ console.error("Query overlay rendering error", error, errorInfo);
669
+ }
670
+ componentDidUpdate(previousProps) {
671
+ if (this.state.error === null) return;
672
+ if (previousProps.resetKey === this.props.resetKey) return;
673
+ this.setState({ error: null });
674
+ }
675
+ render() {
676
+ return this.state.error === null ? this.props.children : this.props.fallback(this.state.error);
677
+ }
678
+ };
679
+ var QUERY_OVERLAY_URL_CHANGE_EVENT = "rpcbase-query-overlay-url-change";
796
680
  function getCurrentUrlSnapshot(fallback) {
797
- if (typeof window === "undefined") {
798
- return fallback ?? {
799
- pathname: "",
800
- search: "",
801
- hash: ""
802
- };
803
- }
804
- return {
805
- pathname: window.location.pathname,
806
- search: window.location.search,
807
- hash: window.location.hash
808
- };
681
+ if (typeof window === "undefined") return fallback ?? {
682
+ pathname: "",
683
+ search: "",
684
+ hash: ""
685
+ };
686
+ return {
687
+ pathname: window.location.pathname,
688
+ search: window.location.search,
689
+ hash: window.location.hash
690
+ };
809
691
  }
810
692
  function getParamValueFromSearch(search, param) {
811
- return new URLSearchParams(search).get(param);
693
+ return new URLSearchParams(search).get(param);
812
694
  }
813
695
  function getSearchFromUrlSnapshot(fallback) {
814
- return getCurrentUrlSnapshot(fallback).search;
696
+ return getCurrentUrlSnapshot(fallback).search;
815
697
  }
816
698
  function useRouterUrlSnapshot() {
817
- const $ = c(4);
818
- const context = useContext(UNSAFE_LocationContext);
819
- const location = context?.location;
820
- if (!location) {
821
- return;
822
- }
823
- let t0;
824
- if ($[0] !== location.hash || $[1] !== location.pathname || $[2] !== location.search) {
825
- t0 = {
826
- pathname: location.pathname,
827
- search: location.search,
828
- hash: location.hash
829
- };
830
- $[0] = location.hash;
831
- $[1] = location.pathname;
832
- $[2] = location.search;
833
- $[3] = t0;
834
- } else {
835
- t0 = $[3];
836
- }
837
- return t0;
699
+ const $ = c(4);
700
+ const location = useContext(UNSAFE_LocationContext)?.location;
701
+ if (!location) return;
702
+ let t0;
703
+ if ($[0] !== location.hash || $[1] !== location.pathname || $[2] !== location.search) {
704
+ t0 = {
705
+ pathname: location.pathname,
706
+ search: location.search,
707
+ hash: location.hash
708
+ };
709
+ $[0] = location.hash;
710
+ $[1] = location.pathname;
711
+ $[2] = location.search;
712
+ $[3] = t0;
713
+ } else t0 = $[3];
714
+ return t0;
838
715
  }
839
716
  function getCurrentParamValue(param) {
840
- if (typeof window === "undefined") return null;
841
- return getParamValueFromSearch(window.location.search, param);
717
+ if (typeof window === "undefined") return null;
718
+ return getParamValueFromSearch(window.location.search, param);
842
719
  }
843
720
  function getCurrentSearch() {
844
- if (typeof window === "undefined") return "";
845
- return window.location.search;
721
+ if (typeof window === "undefined") return "";
722
+ return window.location.search;
846
723
  }
847
724
  function subscribeToQueryOverlayUrl(listener) {
848
- if (typeof window === "undefined") return () => void 0;
849
- window.addEventListener(QUERY_OVERLAY_URL_CHANGE_EVENT, listener);
850
- window.addEventListener("popstate", listener);
851
- return () => {
852
- window.removeEventListener(QUERY_OVERLAY_URL_CHANGE_EVENT, listener);
853
- window.removeEventListener("popstate", listener);
854
- };
725
+ if (typeof window === "undefined") return () => void 0;
726
+ window.addEventListener(QUERY_OVERLAY_URL_CHANGE_EVENT, listener);
727
+ window.addEventListener("popstate", listener);
728
+ return () => {
729
+ window.removeEventListener(QUERY_OVERLAY_URL_CHANGE_EVENT, listener);
730
+ window.removeEventListener("popstate", listener);
731
+ };
855
732
  }
856
733
  function buildUrl(searchParams, fallback) {
857
- const {
858
- pathname,
859
- hash
860
- } = getCurrentUrlSnapshot(fallback);
861
- const nextSearch = searchParams.toString();
862
- return `${pathname}${nextSearch ? `?${nextSearch}` : ""}${hash}`;
734
+ const { pathname, hash } = getCurrentUrlSnapshot(fallback);
735
+ const nextSearch = searchParams.toString();
736
+ return `${pathname}${nextSearch ? `?${nextSearch}` : ""}${hash}`;
863
737
  }
864
738
  function clearOverlaySearchParams(searchParams, params, clear) {
865
- clear(searchParams);
866
- for (const param of params) {
867
- searchParams.delete(param);
868
- }
739
+ clear(searchParams);
740
+ for (const param of params) searchParams.delete(param);
869
741
  }
870
742
  function buildOverlayUrlStateKey(search, params) {
871
- const searchParams = new URLSearchParams(search);
872
- return params.map((param) => {
873
- const values = searchParams.getAll(param);
874
- return `${param}:${values.join("\0")}`;
875
- }).join("");
743
+ const searchParams = new URLSearchParams(search);
744
+ return params.map((param) => {
745
+ return `${param}:${searchParams.getAll(param).join("\0")}`;
746
+ }).join("");
876
747
  }
877
- const queryOverlayLoadingBackdropStyle = (open) => ({
878
- position: "fixed",
879
- inset: 0,
880
- zIndex: 50,
881
- display: "flex",
882
- alignItems: "center",
883
- justifyContent: "center",
884
- background: "rgba(0, 0, 0, 0.5)",
885
- color: "white",
886
- opacity: open ? 1 : 0,
887
- pointerEvents: open ? "auto" : "none",
888
- transition: "opacity 150ms ease"
748
+ var queryOverlayLoadingBackdropStyle = (open) => ({
749
+ position: "fixed",
750
+ inset: 0,
751
+ zIndex: 50,
752
+ display: "flex",
753
+ alignItems: "center",
754
+ justifyContent: "center",
755
+ background: "rgba(0, 0, 0, 0.5)",
756
+ color: "white",
757
+ opacity: open ? 1 : 0,
758
+ pointerEvents: open ? "auto" : "none",
759
+ transition: "opacity 150ms ease"
889
760
  });
890
- const queryOverlayLoadingStatusStyle = {
891
- display: "inline-flex",
892
- alignItems: "center",
893
- gap: 10,
894
- fontSize: 14,
895
- fontWeight: 500
761
+ var queryOverlayLoadingStatusStyle = {
762
+ display: "inline-flex",
763
+ alignItems: "center",
764
+ gap: 10,
765
+ fontSize: 14,
766
+ fontWeight: 500
896
767
  };
897
- function QueryOverlayLoadingFallback({
898
- open = true,
899
- label = "Loading..."
900
- }) {
901
- const backdrop = createElement("div", {
902
- "data-rpcbase-query-overlay-loading": "",
903
- "data-state": open ? "open" : "closed",
904
- style: queryOverlayLoadingBackdropStyle(open)
905
- }, createElement("div", {
906
- role: "status",
907
- "aria-live": "polite",
908
- style: queryOverlayLoadingStatusStyle
909
- }, createElement("svg", {
910
- "aria-hidden": true,
911
- focusable: "false",
912
- height: 20,
913
- viewBox: "0 0 24 24",
914
- width: 20
915
- }, createElement("circle", {
916
- cx: 12,
917
- cy: 12,
918
- fill: "none",
919
- r: 9,
920
- stroke: "currentColor",
921
- strokeOpacity: 0.35,
922
- strokeWidth: 3
923
- }), createElement("path", {
924
- d: "M21 12a9 9 0 0 0-9-9",
925
- fill: "none",
926
- stroke: "currentColor",
927
- strokeLinecap: "round",
928
- strokeWidth: 3
929
- }, createElement("animateTransform", {
930
- attributeName: "transform",
931
- dur: "0.8s",
932
- from: "0 12 12",
933
- repeatCount: "indefinite",
934
- to: "360 12 12",
935
- type: "rotate"
936
- }))), createElement("span", null, label)));
937
- return typeof document === "undefined" ? backdrop : createPortal(backdrop, document.body);
768
+ function QueryOverlayLoadingFallback({ open = true, label = "Loading..." }) {
769
+ const backdrop = createElement("div", {
770
+ "data-rpcbase-query-overlay-loading": "",
771
+ "data-state": open ? "open" : "closed",
772
+ style: queryOverlayLoadingBackdropStyle(open)
773
+ }, createElement("div", {
774
+ role: "status",
775
+ "aria-live": "polite",
776
+ style: queryOverlayLoadingStatusStyle
777
+ }, createElement("svg", {
778
+ "aria-hidden": true,
779
+ focusable: "false",
780
+ height: 20,
781
+ viewBox: "0 0 24 24",
782
+ width: 20
783
+ }, createElement("circle", {
784
+ cx: 12,
785
+ cy: 12,
786
+ fill: "none",
787
+ r: 9,
788
+ stroke: "currentColor",
789
+ strokeOpacity: .35,
790
+ strokeWidth: 3
791
+ }), createElement("path", {
792
+ d: "M21 12a9 9 0 0 0-9-9",
793
+ fill: "none",
794
+ stroke: "currentColor",
795
+ strokeLinecap: "round",
796
+ strokeWidth: 3
797
+ }, createElement("animateTransform", {
798
+ attributeName: "transform",
799
+ dur: "0.8s",
800
+ from: "0 12 12",
801
+ repeatCount: "indefinite",
802
+ to: "360 12 12",
803
+ type: "rotate"
804
+ }))), createElement("span", null, label)));
805
+ return typeof document === "undefined" ? backdrop : createPortal(backdrop, document.body);
938
806
  }
939
- const QUERY_OVERLAY_LOADING_FALLBACK = createElement(QueryOverlayLoadingFallback);
807
+ var QUERY_OVERLAY_LOADING_FALLBACK = createElement(QueryOverlayLoadingFallback);
940
808
  function renderQueryOverlayFallback(fallback, controls, error, includeError = false) {
941
- if (typeof fallback === "function") {
942
- if (!includeError) {
943
- return fallback(controls);
944
- }
945
- return fallback({
946
- ...controls,
947
- error
948
- });
949
- }
950
- if (isValidElement(fallback)) {
951
- return cloneElement(fallback, {
952
- open: controls.open,
953
- isOpen: controls.open,
954
- setOpen: controls.setOpen,
955
- onOpenChange: controls.onOpenChange,
956
- closeOverlay: controls.closeOverlay,
957
- error
958
- });
959
- }
960
- return fallback ?? null;
809
+ if (typeof fallback === "function") {
810
+ if (!includeError) return fallback(controls);
811
+ return fallback({
812
+ ...controls,
813
+ error
814
+ });
815
+ }
816
+ if (isValidElement(fallback)) return cloneElement(fallback, {
817
+ open: controls.open,
818
+ isOpen: controls.open,
819
+ setOpen: controls.setOpen,
820
+ onOpenChange: controls.onOpenChange,
821
+ closeOverlay: controls.closeOverlay,
822
+ error
823
+ });
824
+ return fallback ?? null;
961
825
  }
962
826
  function replaceQueryParams(update) {
963
- if (typeof window === "undefined") return;
964
- const {
965
- pathname,
966
- search,
967
- hash
968
- } = getCurrentUrlSnapshot();
969
- const searchParams = new URLSearchParams(search);
970
- update(searchParams);
971
- const nextUrl = buildUrl(searchParams);
972
- const currentUrl = `${pathname}${search}${hash}`;
973
- if (nextUrl === currentUrl) return;
974
- window.history.replaceState(window.history.state, "", nextUrl);
975
- window.dispatchEvent(new Event(QUERY_OVERLAY_URL_CHANGE_EVENT));
827
+ if (typeof window === "undefined") return;
828
+ const { pathname, search, hash } = getCurrentUrlSnapshot();
829
+ const searchParams = new URLSearchParams(search);
830
+ update(searchParams);
831
+ const nextUrl = buildUrl(searchParams);
832
+ if (nextUrl === `${pathname}${search}${hash}`) return;
833
+ window.history.replaceState(window.history.state, "", nextUrl);
834
+ window.dispatchEvent(new Event(QUERY_OVERLAY_URL_CHANGE_EVENT));
976
835
  }
977
836
  function useQueryParam(param) {
978
- const $ = c(5);
979
- const routerUrlSnapshot = useRouterUrlSnapshot();
980
- let t0;
981
- if ($[0] !== param) {
982
- t0 = () => getCurrentParamValue(param);
983
- $[0] = param;
984
- $[1] = t0;
985
- } else {
986
- t0 = $[1];
987
- }
988
- let t1;
989
- if ($[2] !== param || $[3] !== routerUrlSnapshot?.search) {
990
- t1 = () => getParamValueFromSearch(routerUrlSnapshot?.search ?? "", param);
991
- $[2] = param;
992
- $[3] = routerUrlSnapshot?.search;
993
- $[4] = t1;
994
- } else {
995
- t1 = $[4];
996
- }
997
- return useSyncExternalStore(subscribeToQueryOverlayUrl, t0, t1);
837
+ const $ = c(5);
838
+ const routerUrlSnapshot = useRouterUrlSnapshot();
839
+ let t0;
840
+ if ($[0] !== param) {
841
+ t0 = () => getCurrentParamValue(param);
842
+ $[0] = param;
843
+ $[1] = t0;
844
+ } else t0 = $[1];
845
+ let t1;
846
+ if ($[2] !== param || $[3] !== routerUrlSnapshot?.search) {
847
+ t1 = () => getParamValueFromSearch(routerUrlSnapshot?.search ?? "", param);
848
+ $[2] = param;
849
+ $[3] = routerUrlSnapshot?.search;
850
+ $[4] = t1;
851
+ } else t1 = $[4];
852
+ return useSyncExternalStore(subscribeToQueryOverlayUrl, t0, t1);
998
853
  }
999
854
  function useQuerySearch() {
1000
- const $ = c(2);
1001
- const routerUrlSnapshot = useRouterUrlSnapshot();
1002
- let t0;
1003
- if ($[0] !== routerUrlSnapshot) {
1004
- t0 = () => getSearchFromUrlSnapshot(routerUrlSnapshot);
1005
- $[0] = routerUrlSnapshot;
1006
- $[1] = t0;
1007
- } else {
1008
- t0 = $[1];
1009
- }
1010
- return useSyncExternalStore(subscribeToQueryOverlayUrl, getCurrentSearch, t0);
855
+ const $ = c(2);
856
+ const routerUrlSnapshot = useRouterUrlSnapshot();
857
+ let t0;
858
+ if ($[0] !== routerUrlSnapshot) {
859
+ t0 = () => getSearchFromUrlSnapshot(routerUrlSnapshot);
860
+ $[0] = routerUrlSnapshot;
861
+ $[1] = t0;
862
+ } else t0 = $[1];
863
+ return useSyncExternalStore(subscribeToQueryOverlayUrl, getCurrentSearch, t0);
1011
864
  }
1012
- const useQueryOverlay = (t0) => {
1013
- const $ = c(38);
1014
- const {
1015
- params,
1016
- parse,
1017
- write,
1018
- clear,
1019
- closeDelayMs: t1
1020
- } = t0;
1021
- const closeDelayMs = t1 === void 0 ? 0 : t1;
1022
- const routerUrlSnapshot = useRouterUrlSnapshot();
1023
- const search = useQuerySearch();
1024
- const [isOptimisticallyClosed, setIsOptimisticallyClosed] = useState(false);
1025
- const closeTimeoutRef = useRef(null);
1026
- let t2;
1027
- if ($[0] !== parse || $[1] !== search) {
1028
- t2 = parse(new URLSearchParams(search));
1029
- $[0] = parse;
1030
- $[1] = search;
1031
- $[2] = t2;
1032
- } else {
1033
- t2 = $[2];
1034
- }
1035
- const value = t2;
1036
- const isUrlOpen = value !== null;
1037
- let t3;
1038
- if ($[3] !== params || $[4] !== search) {
1039
- t3 = buildOverlayUrlStateKey(search, params);
1040
- $[3] = params;
1041
- $[4] = search;
1042
- $[5] = t3;
1043
- } else {
1044
- t3 = $[5];
1045
- }
1046
- const overlayUrlStateKey = t3;
1047
- let t4;
1048
- if ($[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1049
- t4 = () => {
1050
- if (closeTimeoutRef.current === null) {
1051
- return;
1052
- }
1053
- window.clearTimeout(closeTimeoutRef.current);
1054
- closeTimeoutRef.current = null;
1055
- };
1056
- $[6] = t4;
1057
- } else {
1058
- t4 = $[6];
1059
- }
1060
- const clearScheduledClose = t4;
1061
- let t5;
1062
- if ($[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1063
- t5 = () => {
1064
- clearScheduledClose();
1065
- setIsOptimisticallyClosed(false);
1066
- };
1067
- $[7] = t5;
1068
- } else {
1069
- t5 = $[7];
1070
- }
1071
- const resetOptimisticClose = t5;
1072
- let t6;
1073
- if ($[8] !== clear || $[9] !== params) {
1074
- t6 = () => {
1075
- replaceQueryParams((searchParams) => {
1076
- clearOverlaySearchParams(searchParams, params, clear);
1077
- });
1078
- };
1079
- $[8] = clear;
1080
- $[9] = params;
1081
- $[10] = t6;
1082
- } else {
1083
- t6 = $[10];
1084
- }
1085
- const closeUrlOverlay = t6;
1086
- let t7;
1087
- if ($[11] !== clear || $[12] !== params || $[13] !== routerUrlSnapshot || $[14] !== write) {
1088
- t7 = (nextValue) => {
1089
- const searchParams_0 = new URLSearchParams(getCurrentUrlSnapshot(routerUrlSnapshot).search);
1090
- clearOverlaySearchParams(searchParams_0, params, clear);
1091
- if (nextValue !== null) {
1092
- write(searchParams_0, nextValue);
1093
- }
1094
- return buildUrl(searchParams_0, routerUrlSnapshot);
1095
- };
1096
- $[11] = clear;
1097
- $[12] = params;
1098
- $[13] = routerUrlSnapshot;
1099
- $[14] = write;
1100
- $[15] = t7;
1101
- } else {
1102
- t7 = $[15];
1103
- }
1104
- const buildHref = t7;
1105
- let t8;
1106
- if ($[16] !== clear || $[17] !== params || $[18] !== write) {
1107
- t8 = (nextValue_0) => {
1108
- resetOptimisticClose();
1109
- replaceQueryParams((searchParams_1) => {
1110
- clearOverlaySearchParams(searchParams_1, params, clear);
1111
- write(searchParams_1, nextValue_0);
1112
- });
1113
- };
1114
- $[16] = clear;
1115
- $[17] = params;
1116
- $[18] = write;
1117
- $[19] = t8;
1118
- } else {
1119
- t8 = $[19];
1120
- }
1121
- const openOverlay = t8;
1122
- let t9;
1123
- if ($[20] !== closeDelayMs || $[21] !== closeUrlOverlay || $[22] !== isUrlOpen) {
1124
- t9 = () => {
1125
- if (!isUrlOpen) {
1126
- return;
1127
- }
1128
- setIsOptimisticallyClosed(true);
1129
- clearScheduledClose();
1130
- if (typeof window === "undefined" || closeDelayMs <= 0) {
1131
- closeUrlOverlay();
1132
- return;
1133
- }
1134
- closeTimeoutRef.current = window.setTimeout(() => {
1135
- closeTimeoutRef.current = null;
1136
- closeUrlOverlay();
1137
- }, closeDelayMs);
1138
- };
1139
- $[20] = closeDelayMs;
1140
- $[21] = closeUrlOverlay;
1141
- $[22] = isUrlOpen;
1142
- $[23] = t9;
1143
- } else {
1144
- t9 = $[23];
1145
- }
1146
- const closeOverlay = t9;
1147
- let t10;
1148
- if ($[24] !== isUrlOpen) {
1149
- t10 = () => {
1150
- if (isUrlOpen) {
1151
- setIsOptimisticallyClosed(false);
1152
- return;
1153
- }
1154
- clearScheduledClose();
1155
- setIsOptimisticallyClosed(false);
1156
- };
1157
- $[24] = isUrlOpen;
1158
- $[25] = t10;
1159
- } else {
1160
- t10 = $[25];
1161
- }
1162
- let t11;
1163
- if ($[26] !== isUrlOpen || $[27] !== overlayUrlStateKey) {
1164
- t11 = [isUrlOpen, overlayUrlStateKey];
1165
- $[26] = isUrlOpen;
1166
- $[27] = overlayUrlStateKey;
1167
- $[28] = t11;
1168
- } else {
1169
- t11 = $[28];
1170
- }
1171
- useEffect(t10, t11);
1172
- let t12;
1173
- let t13;
1174
- if ($[29] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1175
- t12 = () => () => {
1176
- clearScheduledClose();
1177
- };
1178
- t13 = [];
1179
- $[29] = t12;
1180
- $[30] = t13;
1181
- } else {
1182
- t12 = $[29];
1183
- t13 = $[30];
1184
- }
1185
- useEffect(t12, t13);
1186
- const t14 = isUrlOpen && !isOptimisticallyClosed;
1187
- let t15;
1188
- if ($[31] !== buildHref || $[32] !== closeOverlay || $[33] !== isUrlOpen || $[34] !== openOverlay || $[35] !== t14 || $[36] !== value) {
1189
- t15 = {
1190
- isOpen: t14,
1191
- shouldRender: isUrlOpen,
1192
- value,
1193
- buildHref,
1194
- openOverlay,
1195
- closeOverlay,
1196
- resetOptimisticClose
1197
- };
1198
- $[31] = buildHref;
1199
- $[32] = closeOverlay;
1200
- $[33] = isUrlOpen;
1201
- $[34] = openOverlay;
1202
- $[35] = t14;
1203
- $[36] = value;
1204
- $[37] = t15;
1205
- } else {
1206
- t15 = $[37];
1207
- }
1208
- return t15;
865
+ var useQueryOverlay = (t0) => {
866
+ const $ = c(38);
867
+ const { params, parse, write, clear, closeDelayMs: t1 } = t0;
868
+ const closeDelayMs = t1 === void 0 ? 0 : t1;
869
+ const routerUrlSnapshot = useRouterUrlSnapshot();
870
+ const search = useQuerySearch();
871
+ const [isOptimisticallyClosed, setIsOptimisticallyClosed] = useState(false);
872
+ const closeTimeoutRef = useRef(null);
873
+ let t2;
874
+ if ($[0] !== parse || $[1] !== search) {
875
+ t2 = parse(new URLSearchParams(search));
876
+ $[0] = parse;
877
+ $[1] = search;
878
+ $[2] = t2;
879
+ } else t2 = $[2];
880
+ const value = t2;
881
+ const isUrlOpen = value !== null;
882
+ let t3;
883
+ if ($[3] !== params || $[4] !== search) {
884
+ t3 = buildOverlayUrlStateKey(search, params);
885
+ $[3] = params;
886
+ $[4] = search;
887
+ $[5] = t3;
888
+ } else t3 = $[5];
889
+ const overlayUrlStateKey = t3;
890
+ let t4;
891
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
892
+ t4 = () => {
893
+ if (closeTimeoutRef.current === null) return;
894
+ window.clearTimeout(closeTimeoutRef.current);
895
+ closeTimeoutRef.current = null;
896
+ };
897
+ $[6] = t4;
898
+ } else t4 = $[6];
899
+ const clearScheduledClose = t4;
900
+ let t5;
901
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
902
+ t5 = () => {
903
+ clearScheduledClose();
904
+ setIsOptimisticallyClosed(false);
905
+ };
906
+ $[7] = t5;
907
+ } else t5 = $[7];
908
+ const resetOptimisticClose = t5;
909
+ let t6;
910
+ if ($[8] !== clear || $[9] !== params) {
911
+ t6 = () => {
912
+ replaceQueryParams((searchParams) => {
913
+ clearOverlaySearchParams(searchParams, params, clear);
914
+ });
915
+ };
916
+ $[8] = clear;
917
+ $[9] = params;
918
+ $[10] = t6;
919
+ } else t6 = $[10];
920
+ const closeUrlOverlay = t6;
921
+ let t7;
922
+ if ($[11] !== clear || $[12] !== params || $[13] !== routerUrlSnapshot || $[14] !== write) {
923
+ t7 = (nextValue) => {
924
+ const searchParams_0 = new URLSearchParams(getCurrentUrlSnapshot(routerUrlSnapshot).search);
925
+ clearOverlaySearchParams(searchParams_0, params, clear);
926
+ if (nextValue !== null) write(searchParams_0, nextValue);
927
+ return buildUrl(searchParams_0, routerUrlSnapshot);
928
+ };
929
+ $[11] = clear;
930
+ $[12] = params;
931
+ $[13] = routerUrlSnapshot;
932
+ $[14] = write;
933
+ $[15] = t7;
934
+ } else t7 = $[15];
935
+ const buildHref = t7;
936
+ let t8;
937
+ if ($[16] !== clear || $[17] !== params || $[18] !== write) {
938
+ t8 = (nextValue_0) => {
939
+ resetOptimisticClose();
940
+ replaceQueryParams((searchParams_1) => {
941
+ clearOverlaySearchParams(searchParams_1, params, clear);
942
+ write(searchParams_1, nextValue_0);
943
+ });
944
+ };
945
+ $[16] = clear;
946
+ $[17] = params;
947
+ $[18] = write;
948
+ $[19] = t8;
949
+ } else t8 = $[19];
950
+ const openOverlay = t8;
951
+ let t9;
952
+ if ($[20] !== closeDelayMs || $[21] !== closeUrlOverlay || $[22] !== isUrlOpen) {
953
+ t9 = () => {
954
+ if (!isUrlOpen) return;
955
+ setIsOptimisticallyClosed(true);
956
+ clearScheduledClose();
957
+ if (typeof window === "undefined" || closeDelayMs <= 0) {
958
+ closeUrlOverlay();
959
+ return;
960
+ }
961
+ closeTimeoutRef.current = window.setTimeout(() => {
962
+ closeTimeoutRef.current = null;
963
+ closeUrlOverlay();
964
+ }, closeDelayMs);
965
+ };
966
+ $[20] = closeDelayMs;
967
+ $[21] = closeUrlOverlay;
968
+ $[22] = isUrlOpen;
969
+ $[23] = t9;
970
+ } else t9 = $[23];
971
+ const closeOverlay = t9;
972
+ let t10;
973
+ if ($[24] !== isUrlOpen) {
974
+ t10 = () => {
975
+ if (isUrlOpen) {
976
+ setIsOptimisticallyClosed(false);
977
+ return;
978
+ }
979
+ clearScheduledClose();
980
+ setIsOptimisticallyClosed(false);
981
+ };
982
+ $[24] = isUrlOpen;
983
+ $[25] = t10;
984
+ } else t10 = $[25];
985
+ let t11;
986
+ if ($[26] !== isUrlOpen || $[27] !== overlayUrlStateKey) {
987
+ t11 = [isUrlOpen, overlayUrlStateKey];
988
+ $[26] = isUrlOpen;
989
+ $[27] = overlayUrlStateKey;
990
+ $[28] = t11;
991
+ } else t11 = $[28];
992
+ useEffect(t10, t11);
993
+ let t12;
994
+ let t13;
995
+ if ($[29] === Symbol.for("react.memo_cache_sentinel")) {
996
+ t12 = () => () => {
997
+ clearScheduledClose();
998
+ };
999
+ t13 = [];
1000
+ $[29] = t12;
1001
+ $[30] = t13;
1002
+ } else {
1003
+ t12 = $[29];
1004
+ t13 = $[30];
1005
+ }
1006
+ useEffect(t12, t13);
1007
+ const t14 = isUrlOpen && !isOptimisticallyClosed;
1008
+ let t15;
1009
+ if ($[31] !== buildHref || $[32] !== closeOverlay || $[33] !== isUrlOpen || $[34] !== openOverlay || $[35] !== t14 || $[36] !== value) {
1010
+ t15 = {
1011
+ isOpen: t14,
1012
+ shouldRender: isUrlOpen,
1013
+ value,
1014
+ buildHref,
1015
+ openOverlay,
1016
+ closeOverlay,
1017
+ resetOptimisticClose
1018
+ };
1019
+ $[31] = buildHref;
1020
+ $[32] = closeOverlay;
1021
+ $[33] = isUrlOpen;
1022
+ $[34] = openOverlay;
1023
+ $[35] = t14;
1024
+ $[36] = value;
1025
+ $[37] = t15;
1026
+ } else t15 = $[37];
1027
+ return t15;
1209
1028
  };
1210
- function QueryOverlay({
1211
- overlay,
1212
- fallback,
1213
- errorFallback,
1214
- children
1215
- }) {
1216
- if (!overlay.shouldRender || overlay.value === null) return null;
1217
- const setOpen = (open) => {
1218
- if (open) {
1219
- overlay.resetOptimisticClose();
1220
- return;
1221
- }
1222
- overlay.closeOverlay();
1223
- };
1224
- const controls = {
1225
- open: overlay.isOpen,
1226
- setOpen,
1227
- closeOverlay: overlay.closeOverlay,
1228
- resetOptimisticClose: overlay.resetOptimisticClose
1229
- };
1230
- const fallbackControls = {
1231
- ...controls,
1232
- onOpenChange: setOpen
1233
- };
1234
- const resetKey = overlay.buildHref(overlay.value);
1235
- const suspenseFallback = fallback === void 0 ? QUERY_OVERLAY_LOADING_FALLBACK : fallback;
1236
- return createElement(QueryOverlayErrorBoundary, {
1237
- resetKey,
1238
- fallback: (error) => renderQueryOverlayFallback(errorFallback, fallbackControls, error, true)
1239
- }, createElement(Suspense, {
1240
- fallback: renderQueryOverlayFallback(suspenseFallback, fallbackControls)
1241
- }, children(overlay.value, controls)));
1029
+ function QueryOverlay({ overlay, fallback, errorFallback, children }) {
1030
+ if (!overlay.shouldRender || overlay.value === null) return null;
1031
+ const setOpen = (open) => {
1032
+ if (open) {
1033
+ overlay.resetOptimisticClose();
1034
+ return;
1035
+ }
1036
+ overlay.closeOverlay();
1037
+ };
1038
+ const controls = {
1039
+ open: overlay.isOpen,
1040
+ setOpen,
1041
+ closeOverlay: overlay.closeOverlay,
1042
+ resetOptimisticClose: overlay.resetOptimisticClose
1043
+ };
1044
+ const fallbackControls = {
1045
+ ...controls,
1046
+ onOpenChange: setOpen
1047
+ };
1048
+ return createElement(QueryOverlayErrorBoundary, {
1049
+ resetKey: overlay.buildHref(overlay.value),
1050
+ fallback: (error) => renderQueryOverlayFallback(errorFallback, fallbackControls, error, true)
1051
+ }, createElement(Suspense, { fallback: renderQueryOverlayFallback(fallback === void 0 ? QUERY_OVERLAY_LOADING_FALLBACK : fallback, fallbackControls) }, children(overlay.value, controls)));
1242
1052
  }
1243
- const normalizeKey = (key) => key.toLowerCase();
1244
- const defaultIsTypingTarget = (target) => {
1245
- const element = target;
1246
- const tagName = element?.tagName;
1247
- return element?.isContentEditable === true || tagName === "INPUT" || tagName === "TEXTAREA" || tagName === "SELECT";
1248
- };
1249
- const matchesShortcutKeyDown = (event, shortcut) => {
1250
- if (normalizeKey(event.key) !== normalizeKey(shortcut.key)) return false;
1251
- if (typeof shortcut.mod === "boolean") {
1252
- const hasMod = event.metaKey || event.ctrlKey;
1253
- if (hasMod !== shortcut.mod) return false;
1254
- }
1255
- if (typeof shortcut.ctrl === "boolean" && event.ctrlKey !== shortcut.ctrl) return false;
1256
- if (typeof shortcut.meta === "boolean" && event.metaKey !== shortcut.meta) return false;
1257
- if (typeof shortcut.alt === "boolean" && event.altKey !== shortcut.alt) return false;
1258
- if (typeof shortcut.shift === "boolean" && event.shiftKey !== shortcut.shift) return false;
1259
- return true;
1053
+ //#endregion
1054
+ //#region src/shortcutPrefetchNavigate.ts
1055
+ var normalizeKey = (key) => key.toLowerCase();
1056
+ var defaultIsTypingTarget = (target) => {
1057
+ const element = target;
1058
+ const tagName = element?.tagName;
1059
+ return element?.isContentEditable === true || tagName === "INPUT" || tagName === "TEXTAREA" || tagName === "SELECT";
1260
1060
  };
1261
- const callMaybeAsync = (fn, href) => {
1262
- if (!fn) return;
1263
- void Promise.resolve(fn(href));
1061
+ var matchesShortcutKeyDown = (event, shortcut) => {
1062
+ if (normalizeKey(event.key) !== normalizeKey(shortcut.key)) return false;
1063
+ if (typeof shortcut.mod === "boolean") {
1064
+ if ((event.metaKey || event.ctrlKey) !== shortcut.mod) return false;
1065
+ }
1066
+ if (typeof shortcut.ctrl === "boolean" && event.ctrlKey !== shortcut.ctrl) return false;
1067
+ if (typeof shortcut.meta === "boolean" && event.metaKey !== shortcut.meta) return false;
1068
+ if (typeof shortcut.alt === "boolean" && event.altKey !== shortcut.alt) return false;
1069
+ if (typeof shortcut.shift === "boolean" && event.shiftKey !== shortcut.shift) return false;
1070
+ return true;
1264
1071
  };
1265
- const useShortcutPrefetchNavigate = ({
1266
- shortcut,
1267
- getHref,
1268
- prefetch,
1269
- navigate,
1270
- trigger = "keyup",
1271
- enabled = true,
1272
- preventDefault = true,
1273
- ignoreTypingTarget = true,
1274
- isTypingTarget = defaultIsTypingTarget
1275
- }) => {
1276
- const routerNavigate = useNavigate();
1277
- const shortcutRef = useRef(shortcut);
1278
- const getHrefRef = useRef(getHref);
1279
- const prefetchRef = useRef(prefetch);
1280
- const navigateRef = useRef(navigate ?? routerNavigate);
1281
- const triggerRef = useRef(trigger);
1282
- const enabledRef = useRef(enabled);
1283
- const preventDefaultRef = useRef(preventDefault);
1284
- const ignoreTypingTargetRef = useRef(ignoreTypingTarget);
1285
- const isTypingTargetRef = useRef(isTypingTarget);
1286
- const waitingForShortcutKeyUpRef = useRef(false);
1287
- shortcutRef.current = shortcut;
1288
- getHrefRef.current = getHref;
1289
- prefetchRef.current = prefetch;
1290
- navigateRef.current = navigate ?? routerNavigate;
1291
- triggerRef.current = trigger;
1292
- enabledRef.current = enabled;
1293
- preventDefaultRef.current = preventDefault;
1294
- ignoreTypingTargetRef.current = ignoreTypingTarget;
1295
- isTypingTargetRef.current = isTypingTarget;
1296
- if (!enabled || trigger !== "keyup") {
1297
- waitingForShortcutKeyUpRef.current = false;
1298
- }
1299
- useEffect(() => {
1300
- if (typeof window === "undefined") return;
1301
- const onKeyDown = (event) => {
1302
- if (!enabledRef.current) return;
1303
- if (ignoreTypingTargetRef.current && isTypingTargetRef.current(event.target)) return;
1304
- if (event.repeat) return;
1305
- if (!matchesShortcutKeyDown(event, shortcutRef.current)) return;
1306
- if (preventDefaultRef.current) {
1307
- event.preventDefault();
1308
- }
1309
- const href = getHrefRef.current();
1310
- if (!href) return;
1311
- callMaybeAsync(prefetchRef.current, href);
1312
- if (triggerRef.current === "keydown") {
1313
- callMaybeAsync(navigateRef.current, href);
1314
- return;
1315
- }
1316
- waitingForShortcutKeyUpRef.current = true;
1317
- };
1318
- const onKeyUp = (event_0) => {
1319
- if (!enabledRef.current) return;
1320
- if (triggerRef.current !== "keyup") return;
1321
- if (!waitingForShortcutKeyUpRef.current) return;
1322
- if (normalizeKey(event_0.key) !== normalizeKey(shortcutRef.current.key)) return;
1323
- waitingForShortcutKeyUpRef.current = false;
1324
- if (ignoreTypingTargetRef.current && isTypingTargetRef.current(event_0.target)) return;
1325
- if (preventDefaultRef.current) {
1326
- event_0.preventDefault();
1327
- }
1328
- const href_0 = getHrefRef.current();
1329
- if (!href_0) return;
1330
- callMaybeAsync(navigateRef.current, href_0);
1331
- };
1332
- const onBlur = () => {
1333
- waitingForShortcutKeyUpRef.current = false;
1334
- };
1335
- window.addEventListener("keydown", onKeyDown);
1336
- window.addEventListener("keyup", onKeyUp);
1337
- window.addEventListener("blur", onBlur);
1338
- return () => {
1339
- window.removeEventListener("keydown", onKeyDown);
1340
- window.removeEventListener("keyup", onKeyUp);
1341
- window.removeEventListener("blur", onBlur);
1342
- };
1343
- }, []);
1072
+ var callMaybeAsync = (fn, href) => {
1073
+ if (!fn) return;
1074
+ Promise.resolve(fn(href));
1344
1075
  };
1345
- export {
1346
- Link,
1347
- QueryOverlay,
1348
- QueryOverlayLoadingFallback,
1349
- RoutePrefetchProvider,
1350
- getNavigationGuards,
1351
- lazyRoute,
1352
- removeNavigationGuard,
1353
- replaceQueryParams,
1354
- subscribeNavigationGuards,
1355
- upsertNavigationGuard,
1356
- useApplyMeta,
1357
- useQueryOverlay,
1358
- useQueryParam,
1359
- useQuerySearch,
1360
- useRegisterNavigationGuard,
1361
- useRoutePrefetch,
1362
- useShortcutPrefetchNavigate
1076
+ var useShortcutPrefetchNavigate = ({ shortcut, getHref, prefetch, navigate, trigger = "keyup", enabled = true, preventDefault = true, ignoreTypingTarget = true, isTypingTarget = defaultIsTypingTarget }) => {
1077
+ const routerNavigate = useNavigate();
1078
+ const shortcutRef = useRef(shortcut);
1079
+ const getHrefRef = useRef(getHref);
1080
+ const prefetchRef = useRef(prefetch);
1081
+ const navigateRef = useRef(navigate ?? routerNavigate);
1082
+ const triggerRef = useRef(trigger);
1083
+ const enabledRef = useRef(enabled);
1084
+ const preventDefaultRef = useRef(preventDefault);
1085
+ const ignoreTypingTargetRef = useRef(ignoreTypingTarget);
1086
+ const isTypingTargetRef = useRef(isTypingTarget);
1087
+ const waitingForShortcutKeyUpRef = useRef(false);
1088
+ shortcutRef.current = shortcut;
1089
+ getHrefRef.current = getHref;
1090
+ prefetchRef.current = prefetch;
1091
+ navigateRef.current = navigate ?? routerNavigate;
1092
+ triggerRef.current = trigger;
1093
+ enabledRef.current = enabled;
1094
+ preventDefaultRef.current = preventDefault;
1095
+ ignoreTypingTargetRef.current = ignoreTypingTarget;
1096
+ isTypingTargetRef.current = isTypingTarget;
1097
+ if (!enabled || trigger !== "keyup") waitingForShortcutKeyUpRef.current = false;
1098
+ useEffect(() => {
1099
+ if (typeof window === "undefined") return;
1100
+ const onKeyDown = (event) => {
1101
+ if (!enabledRef.current) return;
1102
+ if (ignoreTypingTargetRef.current && isTypingTargetRef.current(event.target)) return;
1103
+ if (event.repeat) return;
1104
+ if (!matchesShortcutKeyDown(event, shortcutRef.current)) return;
1105
+ if (preventDefaultRef.current) event.preventDefault();
1106
+ const href = getHrefRef.current();
1107
+ if (!href) return;
1108
+ callMaybeAsync(prefetchRef.current, href);
1109
+ if (triggerRef.current === "keydown") {
1110
+ callMaybeAsync(navigateRef.current, href);
1111
+ return;
1112
+ }
1113
+ waitingForShortcutKeyUpRef.current = true;
1114
+ };
1115
+ const onKeyUp = (event_0) => {
1116
+ if (!enabledRef.current) return;
1117
+ if (triggerRef.current !== "keyup") return;
1118
+ if (!waitingForShortcutKeyUpRef.current) return;
1119
+ if (normalizeKey(event_0.key) !== normalizeKey(shortcutRef.current.key)) return;
1120
+ waitingForShortcutKeyUpRef.current = false;
1121
+ if (ignoreTypingTargetRef.current && isTypingTargetRef.current(event_0.target)) return;
1122
+ if (preventDefaultRef.current) event_0.preventDefault();
1123
+ const href_0 = getHrefRef.current();
1124
+ if (!href_0) return;
1125
+ callMaybeAsync(navigateRef.current, href_0);
1126
+ };
1127
+ const onBlur = () => {
1128
+ waitingForShortcutKeyUpRef.current = false;
1129
+ };
1130
+ window.addEventListener("keydown", onKeyDown);
1131
+ window.addEventListener("keyup", onKeyUp);
1132
+ window.addEventListener("blur", onBlur);
1133
+ return () => {
1134
+ window.removeEventListener("keydown", onKeyDown);
1135
+ window.removeEventListener("keyup", onKeyUp);
1136
+ window.removeEventListener("blur", onBlur);
1137
+ };
1138
+ }, []);
1363
1139
  };
1364
- //# sourceMappingURL=index.js.map
1140
+ //#endregion
1141
+ export { Link, QueryOverlay, QueryOverlayLoadingFallback, RoutePrefetchProvider, getNavigationGuards, lazyRoute, removeNavigationGuard, replaceQueryParams, subscribeNavigationGuards, upsertNavigationGuard, useApplyMeta, useQueryOverlay, useQueryParam, useQuerySearch, useRegisterNavigationGuard, useRoutePrefetch, useShortcutPrefetchNavigate };
1142
+
1143
+ //# sourceMappingURL=index.js.map