appos 0.3.6-0 → 0.3.7-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.
Files changed (78) hide show
  1. package/dist/bin/main.mjs +3 -3
  2. package/dist/bin/youch-handler-D7REmh8Z.mjs +2 -0
  3. package/dist/exports/tests/api.d.mts +1 -1
  4. package/dist/exports/tests/api.mjs +14 -14
  5. package/dist/exports/tests/{auth-schema-DUCJw-_2.mjs → auth-schema-B_qHPoa4.mjs} +1 -1
  6. package/dist/exports/tests/{conditions-B0ffVJ5E.mjs → conditions-BeWxRN_Z.mjs} +1 -1
  7. package/dist/exports/tests/{extract-blob-metadata-Dv343Vcn.mjs → extract-blob-metadata-6xQrarjB.mjs} +2 -2
  8. package/dist/exports/tests/{generate-image-variant-cQc8q0kh.mjs → generate-image-variant-KQITLmCx.mjs} +1 -1
  9. package/dist/exports/tests/{generate-preview-HaTMd2hS.mjs → generate-preview-YnujQo5I.mjs} +1 -1
  10. package/dist/exports/tests/mock-BvoS23fi.mjs +1 -0
  11. package/dist/exports/tests/mock.mjs +1 -1
  12. package/dist/exports/tests/{purge-attachment-D4uOzHRi.mjs → purge-attachment-DTSmCl-z.mjs} +1 -1
  13. package/dist/exports/tests/{purge-audit-logs-DiPcc09d.mjs → purge-audit-logs-D0_UUhN2.mjs} +1 -1
  14. package/dist/exports/tests/{purge-unattached-blobs-CqW6tlIC.mjs → purge-unattached-blobs-IENmSB8K.mjs} +1 -1
  15. package/dist/exports/tests/react.mjs +1 -1
  16. package/dist/exports/tests/setup.mjs +2 -2
  17. package/dist/exports/tests/{track-db-changes-Bd4W-P1q.mjs → track-db-changes-Td9Q3DLd.mjs} +1 -1
  18. package/dist/exports/tests/youch-handler-efUxKCCs.mjs +1 -0
  19. package/dist/exports/vite/index.mjs +4 -4
  20. package/dist/exports/vite/{lib-DuBRr9dH.mjs → lib-B0s0q6aX.mjs} +73 -73
  21. package/dist/exports/vite/lib-BkrbWMaV.mjs +1 -0
  22. package/dist/exports/vitest/config.mjs +1 -77
  23. package/dist/exports/vitest/index.mjs +1 -348
  24. package/package.json +1 -7
  25. package/dist/bin/youch-handler-DrYdbUhe.mjs +0 -2
  26. package/dist/exports/devtools/BaseTanStackRouterDevtoolsPanel-BBz1qLry-DUwdvyLv.js +0 -2090
  27. package/dist/exports/devtools/EIDV623S-B7f6114d.js +0 -2497
  28. package/dist/exports/devtools/FloatingTanStackRouterDevtools-DymJEvfG-BHuQHiRR.js +0 -237
  29. package/dist/exports/devtools/MIMHJGAX-Cb3wf11F.js +0 -10903
  30. package/dist/exports/devtools/Q7LWSL4U-BoEO3rNq.js +0 -37
  31. package/dist/exports/devtools/VLTTJS3N-CIyRc84e.js +0 -44
  32. package/dist/exports/devtools/index.d.ts +0 -3
  33. package/dist/exports/devtools/index.js +0 -1725
  34. package/dist/exports/devtools/utils-YRTCpRgb.js +0 -1670
  35. package/dist/exports/tests/magic-string.es-D6VRmdiF.mjs +0 -14
  36. package/dist/exports/tests/mock-BvkO5nlm.mjs +0 -1
  37. package/dist/exports/tests/vi.2VT5v0um-Cme1b0Dl.mjs +0 -348
  38. package/dist/exports/tests/youch-handler-Ch5yf6im.mjs +0 -1
  39. package/dist/exports/vite/api-DGRU_RdM.mjs +0 -27
  40. package/dist/exports/vite/build-CxJAu2Bn.mjs +0 -1
  41. package/dist/exports/vite/build2-BMK0OFVt.mjs +0 -16
  42. package/dist/exports/vite/chunk-CxnlK1Zi.mjs +0 -1
  43. package/dist/exports/vite/chunk-PtveFMYu.mjs +0 -1
  44. package/dist/exports/vite/dist-Bxp8DqWh.mjs +0 -114
  45. package/dist/exports/vite/dist-CX51FKbX.mjs +0 -1
  46. package/dist/exports/vite/dist-DcyNr-KR.mjs +0 -1
  47. package/dist/exports/vite/dist-j3-Khlzt.mjs +0 -1
  48. package/dist/exports/vite/experimental-index-3KsfmUbz.mjs +0 -1
  49. package/dist/exports/vite/false-BNJbUKYT.mjs +0 -1
  50. package/dist/exports/vite/false-BvrPEDU6.mjs +0 -1
  51. package/dist/exports/vite/internal-C5cVwRiK.mjs +0 -1
  52. package/dist/exports/vite/jiti-BjSPrFvg.mjs +0 -9
  53. package/dist/exports/vite/lexer-DQCqS3nf-C6xCDOEQ.mjs +0 -3
  54. package/dist/exports/vite/lib-CMv7Sfwa.mjs +0 -1
  55. package/dist/exports/vite/lib-D9TnS-7w.mjs +0 -1
  56. package/dist/exports/vite/node-DI8AnY_i.mjs +0 -437
  57. package/dist/exports/vite/postcss-BtmDpj-c.mjs +0 -32
  58. package/dist/exports/vite/postcss-import-Bk_ZCd6c.mjs +0 -5
  59. package/dist/exports/vite/rolldown-build-CNW2eye_-CJNfyXdF.mjs +0 -13
  60. package/dist/exports/vitest/api-CPv6lnxG.mjs +0 -27
  61. package/dist/exports/vitest/build2-28i3OiJ3.mjs +0 -16
  62. package/dist/exports/vitest/chunk-_e2jlDPK.mjs +0 -1
  63. package/dist/exports/vitest/chunk-jwDkFoXW.mjs +0 -1
  64. package/dist/exports/vitest/dist-L-OpshPJ.mjs +0 -114
  65. package/dist/exports/vitest/jiti-eNGOyHIo.mjs +0 -9
  66. package/dist/exports/vitest/lexer-DQCqS3nf-TWLyIqlY.mjs +0 -3
  67. package/dist/exports/vitest/lib-C3G64csm.mjs +0 -1
  68. package/dist/exports/vitest/magic-string.es-CxM5Ubyl.mjs +0 -14
  69. package/dist/exports/vitest/module-runner-DsF4L04D.mjs +0 -1
  70. package/dist/exports/vitest/postcss-BxLp_Too.mjs +0 -32
  71. package/dist/exports/vitest/postcss-import-5pKj3f5q.mjs +0 -5
  72. /package/dist/exports/tests/{constants-DHjjg05J.mjs → constants-D_m07gCJ.mjs} +0 -0
  73. /package/dist/exports/tests/{dist-EfrRkq5c.mjs → dist-Cx2HEBOB.mjs} +0 -0
  74. /package/dist/exports/tests/{dist-D6vgKv3t.mjs → dist-DnACOvNW.mjs} +0 -0
  75. /package/dist/exports/tests/{pdf-BDsS3vjF.mjs → pdf-lZ-as2o7.mjs} +0 -0
  76. /package/dist/exports/tests/{table-CbU04119.mjs → table-CmPSf_pE.mjs} +0 -0
  77. /package/dist/exports/tests/{workflow-DwZxTqdH.mjs → workflow-BWRWyC83.mjs} +0 -0
  78. /package/dist/exports/tests/{zod-DcpxsMPz.mjs → zod-CkJO9qpV.mjs} +0 -0
@@ -1,2090 +0,0 @@
1
- import { C as setAttribute, D as useContext, E as untrack, O as useDevtoolsOnClose, S as onCleanup, T as template, a as Match, b as memo, c as Switch, d as className, f as createComponent, g as createSignal, h as createRenderEffect, i as For, m as createMemo, o as ShadowDomTargetContext, p as createEffect, s as Show, u as addEventListener, v as delegateEvents, w as spread, x as mergeProps, y as insert } from "./utils-YRTCpRgb.js";
2
-
3
- //#region ../../node_modules/.bun/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js
4
- var isProduction = false;
5
- var prefix = "Invariant failed";
6
- function invariant(condition, message) {
7
- if (condition) return;
8
- if (isProduction) throw new Error(prefix);
9
- var provided = typeof message === "function" ? message() : message;
10
- var value = provided ? "".concat(prefix, ": ").concat(provided) : prefix;
11
- throw new Error(value);
12
- }
13
-
14
- //#endregion
15
- //#region ../../node_modules/.bun/@tanstack+router-core@1.141.6/node_modules/@tanstack/router-core/dist/esm/new-process-route-tree.js
16
- const SEGMENT_TYPE_PATHNAME = 0;
17
- const SEGMENT_TYPE_PARAM = 1;
18
- const SEGMENT_TYPE_WILDCARD = 2;
19
- const SEGMENT_TYPE_OPTIONAL_PARAM = 3;
20
- const PARAM_W_CURLY_BRACES_RE = /^([^{]*)\{\$([a-zA-Z_$][a-zA-Z0-9_$]*)\}([^}]*)$/;
21
- const OPTIONAL_PARAM_W_CURLY_BRACES_RE = /^([^{]*)\{-\$([a-zA-Z_$][a-zA-Z0-9_$]*)\}([^}]*)$/;
22
- const WILDCARD_W_CURLY_BRACES_RE = /^([^{]*)\{\$\}([^}]*)$/;
23
- function parseSegment(path, start, output = new Uint16Array(6)) {
24
- const next = path.indexOf("/", start);
25
- const end = next === -1 ? path.length : next;
26
- const part = path.substring(start, end);
27
- if (!part || !part.includes("$")) {
28
- output[0] = SEGMENT_TYPE_PATHNAME;
29
- output[1] = start;
30
- output[2] = start;
31
- output[3] = end;
32
- output[4] = end;
33
- output[5] = end;
34
- return output;
35
- }
36
- if (part === "$") {
37
- const total = path.length;
38
- output[0] = SEGMENT_TYPE_WILDCARD;
39
- output[1] = start;
40
- output[2] = start;
41
- output[3] = total;
42
- output[4] = total;
43
- output[5] = total;
44
- return output;
45
- }
46
- if (part.charCodeAt(0) === 36) {
47
- output[0] = SEGMENT_TYPE_PARAM;
48
- output[1] = start;
49
- output[2] = start + 1;
50
- output[3] = end;
51
- output[4] = end;
52
- output[5] = end;
53
- return output;
54
- }
55
- const wildcardBracesMatch = part.match(WILDCARD_W_CURLY_BRACES_RE);
56
- if (wildcardBracesMatch) {
57
- const pLength = wildcardBracesMatch[1].length;
58
- output[0] = SEGMENT_TYPE_WILDCARD;
59
- output[1] = start + pLength;
60
- output[2] = start + pLength + 1;
61
- output[3] = start + pLength + 2;
62
- output[4] = start + pLength + 3;
63
- output[5] = path.length;
64
- return output;
65
- }
66
- const optionalParamBracesMatch = part.match(OPTIONAL_PARAM_W_CURLY_BRACES_RE);
67
- if (optionalParamBracesMatch) {
68
- const prefix$1 = optionalParamBracesMatch[1];
69
- const paramName = optionalParamBracesMatch[2];
70
- const suffix = optionalParamBracesMatch[3];
71
- const pLength = prefix$1.length;
72
- output[0] = SEGMENT_TYPE_OPTIONAL_PARAM;
73
- output[1] = start + pLength;
74
- output[2] = start + pLength + 3;
75
- output[3] = start + pLength + 3 + paramName.length;
76
- output[4] = end - suffix.length;
77
- output[5] = end;
78
- return output;
79
- }
80
- const paramBracesMatch = part.match(PARAM_W_CURLY_BRACES_RE);
81
- if (paramBracesMatch) {
82
- const prefix$1 = paramBracesMatch[1];
83
- const paramName = paramBracesMatch[2];
84
- const suffix = paramBracesMatch[3];
85
- const pLength = prefix$1.length;
86
- output[0] = SEGMENT_TYPE_PARAM;
87
- output[1] = start + pLength;
88
- output[2] = start + pLength + 2;
89
- output[3] = start + pLength + 2 + paramName.length;
90
- output[4] = end - suffix.length;
91
- output[5] = end;
92
- return output;
93
- }
94
- output[0] = SEGMENT_TYPE_PATHNAME;
95
- output[1] = start;
96
- output[2] = start;
97
- output[3] = end;
98
- output[4] = end;
99
- output[5] = end;
100
- return output;
101
- }
102
-
103
- //#endregion
104
- //#region ../../node_modules/.bun/@tanstack+router-core@1.141.6/node_modules/@tanstack/router-core/dist/esm/path.js
105
- function trimPathLeft(path) {
106
- return path === "/" ? path : path.replace(/^\/{1,}/, "");
107
- }
108
- function trimPathRight(path) {
109
- const len = path.length;
110
- return len > 1 && path[len - 1] === "/" ? path.replace(/\/{1,}$/, "") : path;
111
- }
112
- function trimPath(path) {
113
- return trimPathRight(trimPathLeft(path));
114
- }
115
- function encodeParam(key, params, decodeCharMap) {
116
- const value = params[key];
117
- if (typeof value !== "string") return value;
118
- if (key === "_splat") return encodeURI(value);
119
- else return encodePathParam(value, decodeCharMap);
120
- }
121
- function interpolatePath({ path, params, decodeCharMap }) {
122
- let isMissingParams = false;
123
- const usedParams = {};
124
- if (!path || path === "/") return {
125
- interpolatedPath: "/",
126
- usedParams,
127
- isMissingParams
128
- };
129
- if (!path.includes("$")) return {
130
- interpolatedPath: path,
131
- usedParams,
132
- isMissingParams
133
- };
134
- const length = path.length;
135
- let cursor = 0;
136
- let segment;
137
- let joined = "";
138
- while (cursor < length) {
139
- const start = cursor;
140
- segment = parseSegment(path, start, segment);
141
- const end = segment[5];
142
- cursor = end + 1;
143
- if (start === end) continue;
144
- const kind = segment[0];
145
- if (kind === SEGMENT_TYPE_PATHNAME) {
146
- joined += "/" + path.substring(start, end);
147
- continue;
148
- }
149
- if (kind === SEGMENT_TYPE_WILDCARD) {
150
- const splat = params._splat;
151
- usedParams._splat = splat;
152
- usedParams["*"] = splat;
153
- const prefix$1 = path.substring(start, segment[1]);
154
- const suffix = path.substring(segment[4], end);
155
- if (!splat) {
156
- isMissingParams = true;
157
- if (prefix$1 || suffix) joined += "/" + prefix$1 + suffix;
158
- continue;
159
- }
160
- const value = encodeParam("_splat", params, decodeCharMap);
161
- joined += "/" + prefix$1 + value + suffix;
162
- continue;
163
- }
164
- if (kind === SEGMENT_TYPE_PARAM) {
165
- const key = path.substring(segment[2], segment[3]);
166
- if (!isMissingParams && !(key in params)) isMissingParams = true;
167
- usedParams[key] = params[key];
168
- const prefix$1 = path.substring(start, segment[1]);
169
- const suffix = path.substring(segment[4], end);
170
- const value = encodeParam(key, params, decodeCharMap) ?? "undefined";
171
- joined += "/" + prefix$1 + value + suffix;
172
- continue;
173
- }
174
- if (kind === SEGMENT_TYPE_OPTIONAL_PARAM) {
175
- const key = path.substring(segment[2], segment[3]);
176
- const valueRaw = params[key];
177
- if (valueRaw == null) continue;
178
- usedParams[key] = valueRaw;
179
- const prefix$1 = path.substring(start, segment[1]);
180
- const suffix = path.substring(segment[4], end);
181
- const value = encodeParam(key, params, decodeCharMap) ?? "";
182
- joined += "/" + prefix$1 + value + suffix;
183
- continue;
184
- }
185
- }
186
- if (path.endsWith("/")) joined += "/";
187
- return {
188
- usedParams,
189
- interpolatedPath: joined || "/",
190
- isMissingParams
191
- };
192
- }
193
- function encodePathParam(value, decodeCharMap) {
194
- let encoded = encodeURIComponent(value);
195
- if (decodeCharMap) for (const [encodedChar, char] of decodeCharMap) encoded = encoded.replaceAll(encodedChar, char);
196
- return encoded;
197
- }
198
-
199
- //#endregion
200
- //#region ../../node_modules/.bun/@tanstack+router-core@1.141.6/node_modules/@tanstack/router-core/dist/esm/root.js
201
- const rootRouteId = "__root__";
202
-
203
- //#endregion
204
- //#region ../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
205
- function r$1(e$1) {
206
- var t$1, f$1, n$1 = "";
207
- if ("string" == typeof e$1 || "number" == typeof e$1) n$1 += e$1;
208
- else if ("object" == typeof e$1) if (Array.isArray(e$1)) {
209
- var o$1 = e$1.length;
210
- for (t$1 = 0; t$1 < o$1; t$1++) e$1[t$1] && (f$1 = r$1(e$1[t$1])) && (n$1 && (n$1 += " "), n$1 += f$1);
211
- } else for (f$1 in e$1) e$1[f$1] && (n$1 && (n$1 += " "), n$1 += f$1);
212
- return n$1;
213
- }
214
- function clsx() {
215
- for (var e$1, t$1, f$1 = 0, n$1 = "", o$1 = arguments.length; f$1 < o$1; f$1++) (e$1 = arguments[f$1]) && (t$1 = r$1(e$1)) && (n$1 && (n$1 += " "), n$1 += t$1);
216
- return n$1;
217
- }
218
-
219
- //#endregion
220
- //#region ../../node_modules/.bun/goober@2.1.18+0f41441494533184/node_modules/goober/dist/goober.modern.js
221
- let e = { data: "" }, t = (t$1) => {
222
- if ("object" == typeof window) {
223
- let e$1 = (t$1 ? t$1.querySelector("#_goober") : window._goober) || Object.assign(document.createElement("style"), {
224
- innerHTML: " ",
225
- id: "_goober"
226
- });
227
- return e$1.nonce = window.__nonce__, e$1.parentNode || (t$1 || document.head).appendChild(e$1), e$1.firstChild;
228
- }
229
- return t$1 || e;
230
- }, r = (e$1) => {
231
- let r$2 = t(e$1), l$1 = r$2.data;
232
- return r$2.data = "", l$1;
233
- }, l = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, a = /\/\*[^]*?\*\/| +/g, n = /\n+/g, o = (e$1, t$1) => {
234
- let r$2 = "", l$1 = "", a$1 = "";
235
- for (let n$1 in e$1) {
236
- let c$1 = e$1[n$1];
237
- "@" == n$1[0] ? "i" == n$1[1] ? r$2 = n$1 + " " + c$1 + ";" : l$1 += "f" == n$1[1] ? o(c$1, n$1) : n$1 + "{" + o(c$1, "k" == n$1[1] ? "" : t$1) + "}" : "object" == typeof c$1 ? l$1 += o(c$1, t$1 ? t$1.replace(/([^,])+/g, (e$2) => n$1.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g, (t$2) => /&/.test(t$2) ? t$2.replace(/&/g, e$2) : e$2 ? e$2 + " " + t$2 : t$2)) : n$1) : null != c$1 && (n$1 = /^--/.test(n$1) ? n$1 : n$1.replace(/[A-Z]/g, "-$&").toLowerCase(), a$1 += o.p ? o.p(n$1, c$1) : n$1 + ":" + c$1 + ";");
238
- }
239
- return r$2 + (t$1 && a$1 ? t$1 + "{" + a$1 + "}" : a$1) + l$1;
240
- }, c = {}, s = (e$1) => {
241
- if ("object" == typeof e$1) {
242
- let t$1 = "";
243
- for (let r$2 in e$1) t$1 += r$2 + s(e$1[r$2]);
244
- return t$1;
245
- }
246
- return e$1;
247
- }, i = (e$1, t$1, r$2, i$1, p$1) => {
248
- let u$1 = s(e$1), d$1 = c[u$1] || (c[u$1] = ((e$2) => {
249
- let t$2 = 0, r$3 = 11;
250
- for (; t$2 < e$2.length;) r$3 = 101 * r$3 + e$2.charCodeAt(t$2++) >>> 0;
251
- return "go" + r$3;
252
- })(u$1));
253
- if (!c[d$1]) {
254
- let t$2 = u$1 !== e$1 ? e$1 : ((e$2) => {
255
- let t$3, r$3, o$1 = [{}];
256
- for (; t$3 = l.exec(e$2.replace(a, ""));) t$3[4] ? o$1.shift() : t$3[3] ? (r$3 = t$3[3].replace(n, " ").trim(), o$1.unshift(o$1[0][r$3] = o$1[0][r$3] || {})) : o$1[0][t$3[1]] = t$3[2].replace(n, " ").trim();
257
- return o$1[0];
258
- })(e$1);
259
- c[d$1] = o(p$1 ? { ["@keyframes " + d$1]: t$2 } : t$2, r$2 ? "" : "." + d$1);
260
- }
261
- let f$1 = r$2 && c.g ? c.g : null;
262
- return r$2 && (c.g = c[d$1]), ((e$2, t$2, r$3, l$1) => {
263
- l$1 ? t$2.data = t$2.data.replace(l$1, e$2) : -1 === t$2.data.indexOf(e$2) && (t$2.data = r$3 ? e$2 + t$2.data : t$2.data + e$2);
264
- })(c[d$1], t$1, i$1, f$1), d$1;
265
- }, p = (e$1, t$1, r$2) => e$1.reduce((e$2, l$1, a$1) => {
266
- let n$1 = t$1[a$1];
267
- if (n$1 && n$1.call) {
268
- let e$3 = n$1(r$2), t$2 = e$3 && e$3.props && e$3.props.className || /^go/.test(e$3) && e$3;
269
- n$1 = t$2 ? "." + t$2 : e$3 && "object" == typeof e$3 ? e$3.props ? "" : o(e$3, "") : !1 === e$3 ? "" : e$3;
270
- }
271
- return e$2 + l$1 + (null == n$1 ? "" : n$1);
272
- }, "");
273
- function u(e$1) {
274
- let r$2 = this || {}, l$1 = e$1.call ? e$1(r$2.p) : e$1;
275
- return i(l$1.unshift ? l$1.raw ? p(l$1, [].slice.call(arguments, 1), r$2.p) : l$1.reduce((e$2, t$1) => Object.assign(e$2, t$1 && t$1.call ? t$1(r$2.p) : t$1), {}) : l$1, t(r$2.target), r$2.g, r$2.o, r$2.k);
276
- }
277
- let d, f, g, b = u.bind({ g: 1 }), h = u.bind({ k: 1 });
278
-
279
- //#endregion
280
- //#region ../../node_modules/.bun/@tanstack+router-devtools-core@1.141.6+2acfa48c1cd83bfa/node_modules/@tanstack/router-devtools-core/dist/BaseTanStackRouterDevtoolsPanel-BBz1qLry.js
281
- const isServer = typeof window === "undefined";
282
- function getStatusColor(match) {
283
- return match.isFetching && match.status === "success" ? match.isFetching === "beforeLoad" ? "purple" : "blue" : {
284
- pending: "yellow",
285
- success: "green",
286
- error: "red",
287
- notFound: "purple",
288
- redirected: "gray"
289
- }[match.status];
290
- }
291
- function getRouteStatusColor(matches, route) {
292
- const found = matches.find((d$1) => d$1.routeId === route.id);
293
- if (!found) return "gray";
294
- return getStatusColor(found);
295
- }
296
- function useIsMounted() {
297
- const [isMounted, setIsMounted] = createSignal(false);
298
- (isServer ? createEffect : createRenderEffect)(() => {
299
- setIsMounted(true);
300
- });
301
- return isMounted;
302
- }
303
- const displayValue = (value) => {
304
- const name = Object.getOwnPropertyNames(Object(value));
305
- const newValue = typeof value === "bigint" ? `${value.toString()}n` : value;
306
- try {
307
- return JSON.stringify(newValue, name);
308
- } catch (e$1) {
309
- return `unable to stringify`;
310
- }
311
- };
312
- function multiSortBy(arr, accessors = [(d$1) => d$1]) {
313
- return arr.map((d$1, i$1) => [d$1, i$1]).sort(([a$1, ai], [b$1, bi]) => {
314
- for (const accessor of accessors) {
315
- const ao = accessor(a$1);
316
- const bo = accessor(b$1);
317
- if (typeof ao === "undefined") {
318
- if (typeof bo === "undefined") continue;
319
- return 1;
320
- }
321
- if (ao === bo) continue;
322
- return ao > bo ? 1 : -1;
323
- }
324
- return ai - bi;
325
- }).map(([d$1]) => d$1);
326
- }
327
- const tokens = {
328
- colors: {
329
- inherit: "inherit",
330
- current: "currentColor",
331
- transparent: "transparent",
332
- black: "#000000",
333
- white: "#ffffff",
334
- neutral: {
335
- 50: "#f9fafb",
336
- 100: "#f2f4f7",
337
- 200: "#eaecf0",
338
- 300: "#d0d5dd",
339
- 400: "#98a2b3",
340
- 500: "#667085",
341
- 600: "#475467",
342
- 700: "#344054",
343
- 800: "#1d2939",
344
- 900: "#101828"
345
- },
346
- darkGray: {
347
- 50: "#525c7a",
348
- 100: "#49536e",
349
- 200: "#414962",
350
- 300: "#394056",
351
- 400: "#313749",
352
- 500: "#292e3d",
353
- 600: "#212530",
354
- 700: "#191c24",
355
- 800: "#111318",
356
- 900: "#0b0d10"
357
- },
358
- gray: {
359
- 50: "#f9fafb",
360
- 100: "#f2f4f7",
361
- 200: "#eaecf0",
362
- 300: "#d0d5dd",
363
- 400: "#98a2b3",
364
- 500: "#667085",
365
- 600: "#475467",
366
- 700: "#344054",
367
- 800: "#1d2939",
368
- 900: "#101828"
369
- },
370
- blue: {
371
- 25: "#F5FAFF",
372
- 50: "#EFF8FF",
373
- 100: "#D1E9FF",
374
- 200: "#B2DDFF",
375
- 300: "#84CAFF",
376
- 400: "#53B1FD",
377
- 500: "#2E90FA",
378
- 600: "#1570EF",
379
- 700: "#175CD3",
380
- 800: "#1849A9",
381
- 900: "#194185"
382
- },
383
- green: {
384
- 25: "#F6FEF9",
385
- 50: "#ECFDF3",
386
- 100: "#D1FADF",
387
- 200: "#A6F4C5",
388
- 300: "#6CE9A6",
389
- 400: "#32D583",
390
- 500: "#12B76A",
391
- 600: "#039855",
392
- 700: "#027A48",
393
- 800: "#05603A",
394
- 900: "#054F31"
395
- },
396
- red: {
397
- 50: "#fef2f2",
398
- 100: "#fee2e2",
399
- 200: "#fecaca",
400
- 300: "#fca5a5",
401
- 400: "#f87171",
402
- 500: "#ef4444",
403
- 600: "#dc2626",
404
- 700: "#b91c1c",
405
- 800: "#991b1b",
406
- 900: "#7f1d1d",
407
- 950: "#450a0a"
408
- },
409
- yellow: {
410
- 25: "#FFFCF5",
411
- 50: "#FFFAEB",
412
- 100: "#FEF0C7",
413
- 200: "#FEDF89",
414
- 300: "#FEC84B",
415
- 400: "#FDB022",
416
- 500: "#F79009",
417
- 600: "#DC6803",
418
- 700: "#B54708",
419
- 800: "#93370D",
420
- 900: "#7A2E0E"
421
- },
422
- purple: {
423
- 25: "#FAFAFF",
424
- 50: "#F4F3FF",
425
- 100: "#EBE9FE",
426
- 200: "#D9D6FE",
427
- 300: "#BDB4FE",
428
- 400: "#9B8AFB",
429
- 500: "#7A5AF8",
430
- 600: "#6938EF",
431
- 700: "#5925DC",
432
- 800: "#4A1FB8",
433
- 900: "#3E1C96"
434
- },
435
- teal: {
436
- 25: "#F6FEFC",
437
- 50: "#F0FDF9",
438
- 100: "#CCFBEF",
439
- 200: "#99F6E0",
440
- 300: "#5FE9D0",
441
- 400: "#2ED3B7",
442
- 500: "#15B79E",
443
- 600: "#0E9384",
444
- 700: "#107569",
445
- 800: "#125D56",
446
- 900: "#134E48"
447
- },
448
- pink: {
449
- 25: "#fdf2f8",
450
- 50: "#fce7f3",
451
- 100: "#fbcfe8",
452
- 200: "#f9a8d4",
453
- 300: "#f472b6",
454
- 400: "#ec4899",
455
- 500: "#db2777",
456
- 600: "#be185d",
457
- 700: "#9d174d",
458
- 800: "#831843",
459
- 900: "#500724"
460
- },
461
- cyan: {
462
- 25: "#ecfeff",
463
- 50: "#cffafe",
464
- 100: "#a5f3fc",
465
- 200: "#67e8f9",
466
- 300: "#22d3ee",
467
- 400: "#06b6d4",
468
- 500: "#0891b2",
469
- 600: "#0e7490",
470
- 700: "#155e75",
471
- 800: "#164e63",
472
- 900: "#083344"
473
- }
474
- },
475
- alpha: {
476
- 90: "e5",
477
- 70: "b3",
478
- 20: "33"
479
- },
480
- font: {
481
- size: {
482
- "2xs": "calc(var(--tsrd-font-size) * 0.625)",
483
- xs: "calc(var(--tsrd-font-size) * 0.75)",
484
- sm: "calc(var(--tsrd-font-size) * 0.875)",
485
- md: "var(--tsrd-font-size)"
486
- },
487
- lineHeight: {
488
- xs: "calc(var(--tsrd-font-size) * 1)",
489
- sm: "calc(var(--tsrd-font-size) * 1.25)"
490
- },
491
- weight: {
492
- normal: "400",
493
- medium: "500",
494
- semibold: "600",
495
- bold: "700"
496
- },
497
- fontFamily: {
498
- sans: "ui-sans-serif, Inter, system-ui, sans-serif, sans-serif",
499
- mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`
500
- }
501
- },
502
- border: { radius: {
503
- xs: "calc(var(--tsrd-font-size) * 0.125)",
504
- sm: "calc(var(--tsrd-font-size) * 0.25)",
505
- md: "calc(var(--tsrd-font-size) * 0.375)",
506
- full: "9999px"
507
- } },
508
- size: {
509
- 0: "0px",
510
- .5: "calc(var(--tsrd-font-size) * 0.125)",
511
- 1: "calc(var(--tsrd-font-size) * 0.25)",
512
- 1.5: "calc(var(--tsrd-font-size) * 0.375)",
513
- 2: "calc(var(--tsrd-font-size) * 0.5)",
514
- 2.5: "calc(var(--tsrd-font-size) * 0.625)",
515
- 3: "calc(var(--tsrd-font-size) * 0.75)",
516
- 3.5: "calc(var(--tsrd-font-size) * 0.875)",
517
- 4: "calc(var(--tsrd-font-size) * 1)",
518
- 5: "calc(var(--tsrd-font-size) * 1.25)",
519
- 8: "calc(var(--tsrd-font-size) * 2)"
520
- }
521
- };
522
- const stylesFactory$1 = (shadowDOMTarget) => {
523
- const { colors, font, size, alpha, border } = tokens;
524
- const { fontFamily, lineHeight, size: fontSize } = font;
525
- const css = shadowDOMTarget ? u.bind({ target: shadowDOMTarget }) : u;
526
- return {
527
- devtoolsPanelContainer: css`
528
- direction: ltr;
529
- position: fixed;
530
- bottom: 0;
531
- right: 0;
532
- z-index: 99999;
533
- width: 100%;
534
- max-height: 90%;
535
- border-top: 1px solid ${colors.gray[700]};
536
- transform-origin: top;
537
- `,
538
- devtoolsPanelContainerVisibility: (isOpen) => {
539
- return css`
540
- visibility: ${isOpen ? "visible" : "hidden"};
541
- `;
542
- },
543
- devtoolsPanelContainerResizing: (isResizing) => {
544
- if (isResizing()) return css`
545
- transition: none;
546
- `;
547
- return css`
548
- transition: all 0.4s ease;
549
- `;
550
- },
551
- devtoolsPanelContainerAnimation: (isOpen, height) => {
552
- if (isOpen) return css`
553
- pointer-events: auto;
554
- transform: translateY(0);
555
- `;
556
- return css`
557
- pointer-events: none;
558
- transform: translateY(${height}px);
559
- `;
560
- },
561
- logo: css`
562
- cursor: pointer;
563
- display: flex;
564
- flex-direction: column;
565
- background-color: transparent;
566
- border: none;
567
- font-family: ${fontFamily.sans};
568
- gap: ${tokens.size[.5]};
569
- padding: 0px;
570
- &:hover {
571
- opacity: 0.7;
572
- }
573
- &:focus-visible {
574
- outline-offset: 4px;
575
- border-radius: ${border.radius.xs};
576
- outline: 2px solid ${colors.blue[800]};
577
- }
578
- `,
579
- tanstackLogo: css`
580
- font-size: ${font.size.md};
581
- font-weight: ${font.weight.bold};
582
- line-height: ${font.lineHeight.xs};
583
- white-space: nowrap;
584
- color: ${colors.gray[300]};
585
- `,
586
- routerLogo: css`
587
- font-weight: ${font.weight.semibold};
588
- font-size: ${font.size.xs};
589
- background: linear-gradient(to right, #84cc16, #10b981);
590
- background-clip: text;
591
- -webkit-background-clip: text;
592
- line-height: 1;
593
- -webkit-text-fill-color: transparent;
594
- white-space: nowrap;
595
- `,
596
- devtoolsPanel: css`
597
- display: flex;
598
- font-size: ${fontSize.sm};
599
- font-family: ${fontFamily.sans};
600
- background-color: ${colors.darkGray[700]};
601
- color: ${colors.gray[300]};
602
-
603
- @media (max-width: 700px) {
604
- flex-direction: column;
605
- }
606
- @media (max-width: 600px) {
607
- font-size: ${fontSize.xs};
608
- }
609
- `,
610
- dragHandle: css`
611
- position: absolute;
612
- left: 0;
613
- top: 0;
614
- width: 100%;
615
- height: 4px;
616
- cursor: row-resize;
617
- z-index: 100000;
618
- &:hover {
619
- background-color: ${colors.purple[400]}${alpha[90]};
620
- }
621
- `,
622
- firstContainer: css`
623
- flex: 1 1 500px;
624
- min-height: 40%;
625
- max-height: 100%;
626
- overflow: auto;
627
- border-right: 1px solid ${colors.gray[700]};
628
- display: flex;
629
- flex-direction: column;
630
- `,
631
- routerExplorerContainer: css`
632
- overflow-y: auto;
633
- flex: 1;
634
- `,
635
- routerExplorer: css`
636
- padding: ${tokens.size[2]};
637
- `,
638
- row: css`
639
- display: flex;
640
- align-items: center;
641
- padding: ${tokens.size[2]} ${tokens.size[2.5]};
642
- gap: ${tokens.size[2.5]};
643
- border-bottom: ${colors.darkGray[500]} 1px solid;
644
- align-items: center;
645
- `,
646
- detailsHeader: css`
647
- font-family: ui-sans-serif, Inter, system-ui, sans-serif, sans-serif;
648
- position: sticky;
649
- top: 0;
650
- z-index: 2;
651
- background-color: ${colors.darkGray[600]};
652
- padding: 0px ${tokens.size[2]};
653
- font-weight: ${font.weight.medium};
654
- font-size: ${font.size.xs};
655
- min-height: ${tokens.size[8]};
656
- line-height: ${font.lineHeight.xs};
657
- text-align: left;
658
- display: flex;
659
- align-items: center;
660
- `,
661
- maskedBadge: css`
662
- background: ${colors.yellow[900]}${alpha[70]};
663
- color: ${colors.yellow[300]};
664
- display: inline-block;
665
- padding: ${tokens.size[0]} ${tokens.size[2.5]};
666
- border-radius: ${border.radius.full};
667
- font-size: ${font.size.xs};
668
- font-weight: ${font.weight.normal};
669
- border: 1px solid ${colors.yellow[300]};
670
- `,
671
- maskedLocation: css`
672
- color: ${colors.yellow[300]};
673
- `,
674
- detailsContent: css`
675
- padding: ${tokens.size[1.5]} ${tokens.size[2]};
676
- display: flex;
677
- align-items: center;
678
- justify-content: space-between;
679
- font-size: ${font.size.xs};
680
- `,
681
- routeMatchesToggle: css`
682
- display: flex;
683
- align-items: center;
684
- border: 1px solid ${colors.gray[500]};
685
- border-radius: ${border.radius.sm};
686
- overflow: hidden;
687
- `,
688
- routeMatchesToggleBtn: (active, showBorder) => {
689
- const classes = [css`
690
- appearance: none;
691
- border: none;
692
- font-size: 12px;
693
- padding: 4px 8px;
694
- background: transparent;
695
- cursor: pointer;
696
- font-family: ${fontFamily.sans};
697
- font-weight: ${font.weight.medium};
698
- `];
699
- if (active) {
700
- const activeStyles = css`
701
- background: ${colors.darkGray[400]};
702
- color: ${colors.gray[300]};
703
- `;
704
- classes.push(activeStyles);
705
- } else {
706
- const inactiveStyles = css`
707
- color: ${colors.gray[500]};
708
- background: ${colors.darkGray[800]}${alpha[20]};
709
- `;
710
- classes.push(inactiveStyles);
711
- }
712
- if (showBorder) classes.push(css`
713
- border-right: 1px solid ${tokens.colors.gray[500]};
714
- `);
715
- return classes;
716
- },
717
- detailsHeaderInfo: css`
718
- flex: 1;
719
- justify-content: flex-end;
720
- display: flex;
721
- align-items: center;
722
- font-weight: ${font.weight.normal};
723
- color: ${colors.gray[400]};
724
- `,
725
- matchRow: (active) => {
726
- const classes = [css`
727
- display: flex;
728
- border-bottom: 1px solid ${colors.darkGray[400]};
729
- cursor: pointer;
730
- align-items: center;
731
- padding: ${size[1]} ${size[2]};
732
- gap: ${size[2]};
733
- font-size: ${fontSize.xs};
734
- color: ${colors.gray[300]};
735
- `];
736
- if (active) {
737
- const activeStyles = css`
738
- background: ${colors.darkGray[500]};
739
- `;
740
- classes.push(activeStyles);
741
- }
742
- return classes;
743
- },
744
- matchIndicator: (color) => {
745
- const classes = [css`
746
- flex: 0 0 auto;
747
- width: ${size[3]};
748
- height: ${size[3]};
749
- background: ${colors[color][900]};
750
- border: 1px solid ${colors[color][500]};
751
- border-radius: ${border.radius.full};
752
- transition: all 0.25s ease-out;
753
- box-sizing: border-box;
754
- `];
755
- if (color === "gray") {
756
- const grayStyles = css`
757
- background: ${colors.gray[700]};
758
- border-color: ${colors.gray[400]};
759
- `;
760
- classes.push(grayStyles);
761
- }
762
- return classes;
763
- },
764
- matchID: css`
765
- flex: 1;
766
- line-height: ${lineHeight["xs"]};
767
- `,
768
- ageTicker: (showWarning) => {
769
- const classes = [css`
770
- display: flex;
771
- gap: ${size[1]};
772
- font-size: ${fontSize.xs};
773
- color: ${colors.gray[400]};
774
- font-variant-numeric: tabular-nums;
775
- line-height: ${lineHeight["xs"]};
776
- `];
777
- if (showWarning) {
778
- const warningStyles = css`
779
- color: ${colors.yellow[400]};
780
- `;
781
- classes.push(warningStyles);
782
- }
783
- return classes;
784
- },
785
- secondContainer: css`
786
- flex: 1 1 500px;
787
- min-height: 40%;
788
- max-height: 100%;
789
- overflow: auto;
790
- border-right: 1px solid ${colors.gray[700]};
791
- display: flex;
792
- flex-direction: column;
793
- `,
794
- thirdContainer: css`
795
- flex: 1 1 500px;
796
- overflow: auto;
797
- display: flex;
798
- flex-direction: column;
799
- height: 100%;
800
- border-right: 1px solid ${colors.gray[700]};
801
-
802
- @media (max-width: 700px) {
803
- border-top: 2px solid ${colors.gray[700]};
804
- }
805
- `,
806
- fourthContainer: css`
807
- flex: 1 1 500px;
808
- min-height: 40%;
809
- max-height: 100%;
810
- overflow: auto;
811
- display: flex;
812
- flex-direction: column;
813
- `,
814
- routesContainer: css`
815
- overflow-x: auto;
816
- overflow-y: visible;
817
- `,
818
- routesRowContainer: (active, isMatch) => {
819
- const classes = [css`
820
- display: flex;
821
- border-bottom: 1px solid ${colors.darkGray[400]};
822
- align-items: center;
823
- padding: ${size[1]} ${size[2]};
824
- gap: ${size[2]};
825
- font-size: ${fontSize.xs};
826
- color: ${colors.gray[300]};
827
- cursor: ${isMatch ? "pointer" : "default"};
828
- line-height: ${lineHeight["xs"]};
829
- `];
830
- if (active) {
831
- const activeStyles = css`
832
- background: ${colors.darkGray[500]};
833
- `;
834
- classes.push(activeStyles);
835
- }
836
- return classes;
837
- },
838
- routesRow: (isMatch) => {
839
- const classes = [css`
840
- flex: 1 0 auto;
841
- display: flex;
842
- justify-content: space-between;
843
- align-items: center;
844
- font-size: ${fontSize.xs};
845
- line-height: ${lineHeight["xs"]};
846
- `];
847
- if (!isMatch) {
848
- const matchStyles = css`
849
- color: ${colors.gray[400]};
850
- `;
851
- classes.push(matchStyles);
852
- }
853
- return classes;
854
- },
855
- routesRowInner: css`
856
- display: 'flex';
857
- align-items: 'center';
858
- flex-grow: 1;
859
- min-width: 0;
860
- `,
861
- routeParamInfo: css`
862
- color: ${colors.gray[400]};
863
- font-size: ${fontSize.xs};
864
- line-height: ${lineHeight["xs"]};
865
- `,
866
- nestedRouteRow: (isRoot) => {
867
- return css`
868
- margin-left: ${isRoot ? 0 : size[3.5]};
869
- border-left: ${isRoot ? "" : `solid 1px ${colors.gray[700]}`};
870
- `;
871
- },
872
- code: css`
873
- font-size: ${fontSize.xs};
874
- line-height: ${lineHeight["xs"]};
875
- white-space: nowrap;
876
- overflow: hidden;
877
- text-overflow: ellipsis;
878
- `,
879
- matchesContainer: css`
880
- flex: 1 1 auto;
881
- overflow-y: auto;
882
- `,
883
- cachedMatchesContainer: css`
884
- flex: 1 1 auto;
885
- overflow-y: auto;
886
- max-height: 50%;
887
- `,
888
- historyContainer: css`
889
- display: flex;
890
- flex: 1 1 auto;
891
- overflow-y: auto;
892
- max-height: 50%;
893
- `,
894
- historyOverflowContainer: css`
895
- padding: ${size[1]} ${size[2]};
896
- font-size: ${tokens.font.size.xs};
897
- `,
898
- maskedBadgeContainer: css`
899
- flex: 1;
900
- justify-content: flex-end;
901
- display: flex;
902
- `,
903
- matchDetails: css`
904
- display: flex;
905
- flex-direction: column;
906
- padding: ${tokens.size[2]};
907
- font-size: ${tokens.font.size.xs};
908
- color: ${tokens.colors.gray[300]};
909
- line-height: ${tokens.font.lineHeight.sm};
910
- `,
911
- matchStatus: (status, isFetching) => {
912
- const color = isFetching && status === "success" ? isFetching === "beforeLoad" ? "purple" : "blue" : {
913
- pending: "yellow",
914
- success: "green",
915
- error: "red",
916
- notFound: "purple",
917
- redirected: "gray"
918
- }[status];
919
- return css`
920
- display: flex;
921
- justify-content: center;
922
- align-items: center;
923
- height: 40px;
924
- border-radius: ${tokens.border.radius.sm};
925
- font-weight: ${tokens.font.weight.normal};
926
- background-color: ${tokens.colors[color][900]}${tokens.alpha[90]};
927
- color: ${tokens.colors[color][300]};
928
- border: 1px solid ${tokens.colors[color][600]};
929
- margin-bottom: ${tokens.size[2]};
930
- transition: all 0.25s ease-out;
931
- `;
932
- },
933
- matchDetailsInfo: css`
934
- display: flex;
935
- justify-content: flex-end;
936
- flex: 1;
937
- `,
938
- matchDetailsInfoLabel: css`
939
- display: flex;
940
- `,
941
- mainCloseBtn: css`
942
- background: ${colors.darkGray[700]};
943
- padding: ${size[1]} ${size[2]} ${size[1]} ${size[1.5]};
944
- border-radius: ${border.radius.md};
945
- position: fixed;
946
- z-index: 99999;
947
- display: inline-flex;
948
- width: fit-content;
949
- cursor: pointer;
950
- appearance: none;
951
- border: 0;
952
- gap: 8px;
953
- align-items: center;
954
- border: 1px solid ${colors.gray[500]};
955
- font-size: ${font.size.xs};
956
- cursor: pointer;
957
- transition: all 0.25s ease-out;
958
-
959
- &:hover {
960
- background: ${colors.darkGray[500]};
961
- }
962
- `,
963
- mainCloseBtnPosition: (position) => {
964
- return css`
965
- ${position === "top-left" ? `top: ${size[2]}; left: ${size[2]};` : ""}
966
- ${position === "top-right" ? `top: ${size[2]}; right: ${size[2]};` : ""}
967
- ${position === "bottom-left" ? `bottom: ${size[2]}; left: ${size[2]};` : ""}
968
- ${position === "bottom-right" ? `bottom: ${size[2]}; right: ${size[2]};` : ""}
969
- `;
970
- },
971
- mainCloseBtnAnimation: (isOpen) => {
972
- if (!isOpen) return css`
973
- opacity: 1;
974
- pointer-events: auto;
975
- visibility: visible;
976
- `;
977
- return css`
978
- opacity: 0;
979
- pointer-events: none;
980
- visibility: hidden;
981
- `;
982
- },
983
- routerLogoCloseButton: css`
984
- font-weight: ${font.weight.semibold};
985
- font-size: ${font.size.xs};
986
- background: linear-gradient(to right, #98f30c, #00f4a3);
987
- background-clip: text;
988
- -webkit-background-clip: text;
989
- line-height: 1;
990
- -webkit-text-fill-color: transparent;
991
- white-space: nowrap;
992
- `,
993
- mainCloseBtnDivider: css`
994
- width: 1px;
995
- background: ${tokens.colors.gray[600]};
996
- height: 100%;
997
- border-radius: 999999px;
998
- color: transparent;
999
- `,
1000
- mainCloseBtnIconContainer: css`
1001
- position: relative;
1002
- width: ${size[5]};
1003
- height: ${size[5]};
1004
- background: pink;
1005
- border-radius: 999999px;
1006
- overflow: hidden;
1007
- `,
1008
- mainCloseBtnIconOuter: css`
1009
- width: ${size[5]};
1010
- height: ${size[5]};
1011
- position: absolute;
1012
- top: 50%;
1013
- left: 50%;
1014
- transform: translate(-50%, -50%);
1015
- filter: blur(3px) saturate(1.8) contrast(2);
1016
- `,
1017
- mainCloseBtnIconInner: css`
1018
- width: ${size[4]};
1019
- height: ${size[4]};
1020
- position: absolute;
1021
- top: 50%;
1022
- left: 50%;
1023
- transform: translate(-50%, -50%);
1024
- `,
1025
- panelCloseBtn: css`
1026
- position: absolute;
1027
- cursor: pointer;
1028
- z-index: 100001;
1029
- display: flex;
1030
- align-items: center;
1031
- justify-content: center;
1032
- outline: none;
1033
- background-color: ${colors.darkGray[700]};
1034
- &:hover {
1035
- background-color: ${colors.darkGray[500]};
1036
- }
1037
-
1038
- top: 0;
1039
- right: ${size[2]};
1040
- transform: translate(0, -100%);
1041
- border-right: ${colors.darkGray[300]} 1px solid;
1042
- border-left: ${colors.darkGray[300]} 1px solid;
1043
- border-top: ${colors.darkGray[300]} 1px solid;
1044
- border-bottom: none;
1045
- border-radius: ${border.radius.sm} ${border.radius.sm} 0px 0px;
1046
- padding: ${size[1]} ${size[1.5]} ${size[.5]} ${size[1.5]};
1047
-
1048
- &::after {
1049
- content: ' ';
1050
- position: absolute;
1051
- top: 100%;
1052
- left: -${size[2.5]};
1053
- height: ${size[1.5]};
1054
- width: calc(100% + ${size[5]});
1055
- }
1056
- `,
1057
- panelCloseBtnIcon: css`
1058
- color: ${colors.gray[400]};
1059
- width: ${size[2]};
1060
- height: ${size[2]};
1061
- `,
1062
- navigateButton: css`
1063
- background: none;
1064
- border: none;
1065
- padding: 0 0 0 4px;
1066
- margin: 0;
1067
- color: ${colors.gray[400]};
1068
- font-size: ${fontSize.md};
1069
- cursor: pointer;
1070
- line-height: 1;
1071
- vertical-align: middle;
1072
- margin-right: 0.5ch;
1073
- flex-shrink: 0;
1074
- &:hover {
1075
- color: ${colors.blue[300]};
1076
- }
1077
- `
1078
- };
1079
- };
1080
- function useStyles$1() {
1081
- const [_styles] = createSignal(stylesFactory$1(useContext(ShadowDomTargetContext)));
1082
- return _styles;
1083
- }
1084
- const getItem = (key) => {
1085
- try {
1086
- const itemValue = localStorage.getItem(key);
1087
- if (typeof itemValue === "string") return JSON.parse(itemValue);
1088
- return;
1089
- } catch {
1090
- return;
1091
- }
1092
- };
1093
- function useLocalStorage(key, defaultValue) {
1094
- const [value, setValue] = createSignal();
1095
- createEffect(() => {
1096
- const initialValue = getItem(key);
1097
- if (typeof initialValue === "undefined" || initialValue === null) setValue(typeof defaultValue === "function" ? defaultValue() : defaultValue);
1098
- else setValue(initialValue);
1099
- });
1100
- const setter = (updater) => {
1101
- setValue((old) => {
1102
- let newVal = updater;
1103
- if (typeof updater == "function") newVal = updater(old);
1104
- try {
1105
- localStorage.setItem(key, JSON.stringify(newVal));
1106
- } catch {}
1107
- return newVal;
1108
- });
1109
- };
1110
- return [value, setter];
1111
- }
1112
- var _tmpl$$3 = /* @__PURE__ */ template(`<span><svg xmlns=http://www.w3.org/2000/svg width=12 height=12 fill=none viewBox="0 0 24 24"><path stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M9 18l6-6-6-6">`), _tmpl$2$1 = /* @__PURE__ */ template(`<div>`), _tmpl$3$1 = /* @__PURE__ */ template(`<button><span> `), _tmpl$4$1 = /* @__PURE__ */ template(`<div><div><button> [<!> ... <!>]`), _tmpl$5$1 = /* @__PURE__ */ template(`<button><span></span> 🔄 `), _tmpl$6$1 = /* @__PURE__ */ template(`<span>:`), _tmpl$7$1 = /* @__PURE__ */ template(`<span>`);
1113
- const Expander = ({ expanded, style = {} }) => {
1114
- const styles = useStyles();
1115
- return (() => {
1116
- var _el$ = _tmpl$$3(), _el$2 = _el$.firstChild;
1117
- createRenderEffect((_p$) => {
1118
- var _v$ = styles().expander, _v$2 = clsx(styles().expanderIcon(expanded));
1119
- _v$ !== _p$.e && className(_el$, _p$.e = _v$);
1120
- _v$2 !== _p$.t && setAttribute(_el$2, "class", _p$.t = _v$2);
1121
- return _p$;
1122
- }, {
1123
- e: void 0,
1124
- t: void 0
1125
- });
1126
- return _el$;
1127
- })();
1128
- };
1129
- function chunkArray(array, size) {
1130
- if (size < 1) return [];
1131
- let i$1 = 0;
1132
- const result = [];
1133
- while (i$1 < array.length) {
1134
- result.push(array.slice(i$1, i$1 + size));
1135
- i$1 = i$1 + size;
1136
- }
1137
- return result;
1138
- }
1139
- function isIterable(x) {
1140
- return Symbol.iterator in x;
1141
- }
1142
- function Explorer({ value, defaultExpanded, pageSize = 100, filterSubEntries, ...rest }) {
1143
- const [expanded, setExpanded] = createSignal(Boolean(defaultExpanded));
1144
- const toggleExpanded = () => setExpanded((old) => !old);
1145
- const type = createMemo(() => typeof value());
1146
- const subEntries = createMemo(() => {
1147
- let entries = [];
1148
- const makeProperty = (sub) => {
1149
- const subDefaultExpanded = defaultExpanded === true ? { [sub.label]: true } : defaultExpanded?.[sub.label];
1150
- return {
1151
- ...sub,
1152
- value: () => sub.value,
1153
- defaultExpanded: subDefaultExpanded
1154
- };
1155
- };
1156
- if (Array.isArray(value())) entries = value().map((d$1, i$1) => makeProperty({
1157
- label: i$1.toString(),
1158
- value: d$1
1159
- }));
1160
- else if (value() !== null && typeof value() === "object" && isIterable(value()) && typeof value()[Symbol.iterator] === "function") entries = Array.from(value(), (val, i$1) => makeProperty({
1161
- label: i$1.toString(),
1162
- value: val
1163
- }));
1164
- else if (typeof value() === "object" && value() !== null) entries = Object.entries(value()).map(([key, val]) => makeProperty({
1165
- label: key,
1166
- value: val
1167
- }));
1168
- return filterSubEntries ? filterSubEntries(entries) : entries;
1169
- });
1170
- const subEntryPages = createMemo(() => chunkArray(subEntries(), pageSize));
1171
- const [expandedPages, setExpandedPages] = createSignal([]);
1172
- const [valueSnapshot, setValueSnapshot] = createSignal(void 0);
1173
- const styles = useStyles();
1174
- const refreshValueSnapshot = () => {
1175
- setValueSnapshot(value()());
1176
- };
1177
- const handleEntry = (entry) => createComponent(Explorer, mergeProps({
1178
- value,
1179
- filterSubEntries
1180
- }, rest, entry));
1181
- return (() => {
1182
- var _el$3 = _tmpl$2$1();
1183
- insert(_el$3, (() => {
1184
- var _c$ = memo(() => !!subEntryPages().length);
1185
- return () => _c$() ? [(() => {
1186
- var _el$4 = _tmpl$3$1(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild;
1187
- _el$4.$$click = () => toggleExpanded();
1188
- insert(_el$4, createComponent(Expander, { get expanded() {
1189
- return expanded() ?? false;
1190
- } }), _el$5);
1191
- insert(_el$4, () => rest.label, _el$5);
1192
- insert(_el$5, () => String(type).toLowerCase() === "iterable" ? "(Iterable) " : "", _el$6);
1193
- insert(_el$5, () => subEntries().length, _el$6);
1194
- insert(_el$5, () => subEntries().length > 1 ? `items` : `item`, null);
1195
- createRenderEffect((_p$) => {
1196
- var _v$3 = styles().expandButton, _v$4 = styles().info;
1197
- _v$3 !== _p$.e && className(_el$4, _p$.e = _v$3);
1198
- _v$4 !== _p$.t && className(_el$5, _p$.t = _v$4);
1199
- return _p$;
1200
- }, {
1201
- e: void 0,
1202
- t: void 0
1203
- });
1204
- return _el$4;
1205
- })(), memo(() => memo(() => !!(expanded() ?? false))() ? memo(() => subEntryPages().length === 1)() ? (() => {
1206
- var _el$7 = _tmpl$2$1();
1207
- insert(_el$7, () => subEntries().map((entry, index) => handleEntry(entry)));
1208
- createRenderEffect(() => className(_el$7, styles().subEntries));
1209
- return _el$7;
1210
- })() : (() => {
1211
- var _el$8 = _tmpl$2$1();
1212
- insert(_el$8, () => subEntryPages().map((entries, index) => {
1213
- return (() => {
1214
- var _el$9 = _tmpl$4$1(), _el$0 = _el$9.firstChild, _el$1 = _el$0.firstChild, _el$10 = _el$1.firstChild, _el$15 = _el$10.nextSibling, _el$16 = _el$15.nextSibling.nextSibling;
1215
- _el$16.nextSibling;
1216
- _el$1.$$click = () => setExpandedPages((old) => old.includes(index) ? old.filter((d$1) => d$1 !== index) : [...old, index]);
1217
- insert(_el$1, createComponent(Expander, { get expanded() {
1218
- return expandedPages().includes(index);
1219
- } }), _el$10);
1220
- insert(_el$1, index * pageSize, _el$15);
1221
- insert(_el$1, index * pageSize + pageSize - 1, _el$16);
1222
- insert(_el$0, (() => {
1223
- var _c$2 = memo(() => !!expandedPages().includes(index));
1224
- return () => _c$2() ? (() => {
1225
- var _el$17 = _tmpl$2$1();
1226
- insert(_el$17, () => entries.map((entry) => handleEntry(entry)));
1227
- createRenderEffect(() => className(_el$17, styles().subEntries));
1228
- return _el$17;
1229
- })() : null;
1230
- })(), null);
1231
- createRenderEffect((_p$) => {
1232
- var _v$5 = styles().entry, _v$6 = clsx(styles().labelButton, "labelButton");
1233
- _v$5 !== _p$.e && className(_el$0, _p$.e = _v$5);
1234
- _v$6 !== _p$.t && className(_el$1, _p$.t = _v$6);
1235
- return _p$;
1236
- }, {
1237
- e: void 0,
1238
- t: void 0
1239
- });
1240
- return _el$9;
1241
- })();
1242
- }));
1243
- createRenderEffect(() => className(_el$8, styles().subEntries));
1244
- return _el$8;
1245
- })() : null)] : memo(() => type() === "function")() ? createComponent(Explorer, {
1246
- get label() {
1247
- return (() => {
1248
- var _el$18 = _tmpl$5$1(), _el$19 = _el$18.firstChild;
1249
- _el$18.$$click = refreshValueSnapshot;
1250
- insert(_el$19, () => rest.label);
1251
- createRenderEffect(() => className(_el$18, styles().refreshValueBtn));
1252
- return _el$18;
1253
- })();
1254
- },
1255
- value: valueSnapshot,
1256
- defaultExpanded: {}
1257
- }) : [
1258
- (() => {
1259
- var _el$20 = _tmpl$6$1(), _el$21 = _el$20.firstChild;
1260
- insert(_el$20, () => rest.label, _el$21);
1261
- return _el$20;
1262
- })(),
1263
- " ",
1264
- (() => {
1265
- var _el$22 = _tmpl$7$1();
1266
- insert(_el$22, () => displayValue(value()));
1267
- createRenderEffect(() => className(_el$22, styles().value));
1268
- return _el$22;
1269
- })()
1270
- ];
1271
- })());
1272
- createRenderEffect(() => className(_el$3, styles().entry));
1273
- return _el$3;
1274
- })();
1275
- }
1276
- const stylesFactory = (shadowDOMTarget) => {
1277
- const { colors, font, size } = tokens;
1278
- const { fontFamily, lineHeight, size: fontSize } = font;
1279
- const css = shadowDOMTarget ? u.bind({ target: shadowDOMTarget }) : u;
1280
- return {
1281
- entry: css`
1282
- font-family: ${fontFamily.mono};
1283
- font-size: ${fontSize.xs};
1284
- line-height: ${lineHeight.sm};
1285
- outline: none;
1286
- word-break: break-word;
1287
- `,
1288
- labelButton: css`
1289
- cursor: pointer;
1290
- color: inherit;
1291
- font: inherit;
1292
- outline: inherit;
1293
- background: transparent;
1294
- border: none;
1295
- padding: 0;
1296
- `,
1297
- expander: css`
1298
- display: inline-flex;
1299
- align-items: center;
1300
- justify-content: center;
1301
- width: ${size[3]};
1302
- height: ${size[3]};
1303
- padding-left: 3px;
1304
- box-sizing: content-box;
1305
- `,
1306
- expanderIcon: (expanded) => {
1307
- if (expanded) return css`
1308
- transform: rotate(90deg);
1309
- transition: transform 0.1s ease;
1310
- `;
1311
- return css`
1312
- transform: rotate(0deg);
1313
- transition: transform 0.1s ease;
1314
- `;
1315
- },
1316
- expandButton: css`
1317
- display: flex;
1318
- gap: ${size[1]};
1319
- align-items: center;
1320
- cursor: pointer;
1321
- color: inherit;
1322
- font: inherit;
1323
- outline: inherit;
1324
- background: transparent;
1325
- border: none;
1326
- padding: 0;
1327
- `,
1328
- value: css`
1329
- color: ${colors.purple[400]};
1330
- `,
1331
- subEntries: css`
1332
- margin-left: ${size[2]};
1333
- padding-left: ${size[2]};
1334
- border-left: 2px solid ${colors.darkGray[400]};
1335
- `,
1336
- info: css`
1337
- color: ${colors.gray[500]};
1338
- font-size: ${fontSize["2xs"]};
1339
- padding-left: ${size[1]};
1340
- `,
1341
- refreshValueBtn: css`
1342
- appearance: none;
1343
- border: 0;
1344
- cursor: pointer;
1345
- background: transparent;
1346
- color: inherit;
1347
- padding: 0;
1348
- font-family: ${fontFamily.mono};
1349
- font-size: ${fontSize.xs};
1350
- `
1351
- };
1352
- };
1353
- function useStyles() {
1354
- const [_styles] = createSignal(stylesFactory(useContext(ShadowDomTargetContext)));
1355
- return _styles;
1356
- }
1357
- delegateEvents(["click"]);
1358
- var _tmpl$$2 = /* @__PURE__ */ template(`<div><div></div><div>/</div><div></div><div>/</div><div>`);
1359
- function formatTime(ms) {
1360
- const units = [
1361
- "s",
1362
- "min",
1363
- "h",
1364
- "d"
1365
- ];
1366
- const values = [
1367
- ms / 1e3,
1368
- ms / 6e4,
1369
- ms / 36e5,
1370
- ms / 864e5
1371
- ];
1372
- let chosenUnitIndex = 0;
1373
- for (let i$1 = 1; i$1 < values.length; i$1++) {
1374
- if (values[i$1] < 1) break;
1375
- chosenUnitIndex = i$1;
1376
- }
1377
- return new Intl.NumberFormat(navigator.language, {
1378
- compactDisplay: "short",
1379
- notation: "compact",
1380
- maximumFractionDigits: 0
1381
- }).format(values[chosenUnitIndex]) + units[chosenUnitIndex];
1382
- }
1383
- function AgeTicker({ match, router }) {
1384
- const styles = useStyles$1();
1385
- if (!match) return null;
1386
- const route = router().looseRoutesById[match.routeId];
1387
- if (!route.options.loader) return null;
1388
- const age = Date.now() - match.updatedAt;
1389
- const staleTime = route.options.staleTime ?? router().options.defaultStaleTime ?? 0;
1390
- const gcTime = route.options.gcTime ?? router().options.defaultGcTime ?? 1800 * 1e3;
1391
- return (() => {
1392
- var _el$ = _tmpl$$2(), _el$2 = _el$.firstChild, _el$4 = _el$2.nextSibling.nextSibling, _el$6 = _el$4.nextSibling.nextSibling;
1393
- insert(_el$2, () => formatTime(age));
1394
- insert(_el$4, () => formatTime(staleTime));
1395
- insert(_el$6, () => formatTime(gcTime));
1396
- createRenderEffect(() => className(_el$, clsx(styles().ageTicker(age > staleTime))));
1397
- return _el$;
1398
- })();
1399
- }
1400
- var _tmpl$$1 = /* @__PURE__ */ template(`<button type=button>➔`);
1401
- function NavigateButton({ to, params, search, router }) {
1402
- const styles = useStyles$1();
1403
- return (() => {
1404
- var _el$ = _tmpl$$1();
1405
- _el$.$$click = (e$1) => {
1406
- e$1.stopPropagation();
1407
- router().navigate({
1408
- to,
1409
- params,
1410
- search
1411
- });
1412
- };
1413
- setAttribute(_el$, "title", `Navigate to ${to}`);
1414
- createRenderEffect(() => className(_el$, styles().navigateButton));
1415
- return _el$;
1416
- })();
1417
- }
1418
- delegateEvents(["click"]);
1419
- var _tmpl$ = /* @__PURE__ */ template(`<button><div>TANSTACK</div><div>TanStack Router v1`), _tmpl$2 = /* @__PURE__ */ template(`<div style=display:flex;align-items:center;width:100%><div style=flex-grow:1;min-width:0>`), _tmpl$3 = /* @__PURE__ */ template(`<code> `), _tmpl$4 = /* @__PURE__ */ template(`<code>`), _tmpl$5 = /* @__PURE__ */ template(`<div><div role=button><div>`), _tmpl$6 = /* @__PURE__ */ template(`<div>`), _tmpl$7 = /* @__PURE__ */ template(`<div><ul>`), _tmpl$8 = /* @__PURE__ */ template(`<div><button><svg xmlns=http://www.w3.org/2000/svg width=10 height=6 fill=none viewBox="0 0 10 6"><path stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=1.667 d="M1 1l4 4 4-4"></path></svg></button><div><div></div><div><div></div></div></div><div><div><div><span>Pathname</span></div><div><code></code></div><div><div><button type=button>Routes</button><button type=button>Matches</button><button type=button>History</button></div><div><div>age / staleTime / gcTime</div></div></div><div>`), _tmpl$9 = /* @__PURE__ */ template(`<div><span>masked`), _tmpl$0 = /* @__PURE__ */ template(`<div role=button><div>`), _tmpl$1 = /* @__PURE__ */ template(`<li><div>`), _tmpl$10 = /* @__PURE__ */ template(`<li>This panel displays the most recent 15 navigations.`), _tmpl$11 = /* @__PURE__ */ template(`<div><div><div>Cached Matches</div><div>age / staleTime / gcTime</div></div><div>`), _tmpl$12 = /* @__PURE__ */ template(`<div><div>Match Details</div><div><div><div><div></div></div><div><div>ID:</div><div><code></code></div></div><div><div>State:</div><div></div></div><div><div>Last Updated:</div><div></div></div></div></div><div>Explorer</div><div>`), _tmpl$13 = /* @__PURE__ */ template(`<div>Loader Data`), _tmpl$14 = /* @__PURE__ */ template(`<div><div><span>Search Params</span></div><div>`), _tmpl$15 = /* @__PURE__ */ template(`<span style=margin-left:0.5rem>`), _tmpl$16 = /* @__PURE__ */ template(`<button type=button aria-label="Copy value to clipboard"style=cursor:pointer>`);
1420
- const HISTORY_LIMIT = 15;
1421
- function Logo(props) {
1422
- const { className: className$1, ...rest } = props;
1423
- const styles = useStyles$1();
1424
- return (() => {
1425
- var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling;
1426
- spread(_el$, mergeProps(rest, { get ["class"]() {
1427
- return clsx(styles().logo, className$1 ? className$1() : "");
1428
- } }), false, true);
1429
- createRenderEffect((_p$) => {
1430
- var _v$ = styles().tanstackLogo, _v$2 = styles().routerLogo;
1431
- _v$ !== _p$.e && className(_el$2, _p$.e = _v$);
1432
- _v$2 !== _p$.t && className(_el$3, _p$.t = _v$2);
1433
- return _p$;
1434
- }, {
1435
- e: void 0,
1436
- t: void 0
1437
- });
1438
- return _el$;
1439
- })();
1440
- }
1441
- function NavigateLink(props) {
1442
- return (() => {
1443
- var _el$4 = _tmpl$2(), _el$5 = _el$4.firstChild;
1444
- insert(_el$4, () => props.left, _el$5);
1445
- insert(_el$5, () => props.children);
1446
- insert(_el$4, () => props.right, null);
1447
- createRenderEffect(() => className(_el$4, props.class));
1448
- return _el$4;
1449
- })();
1450
- }
1451
- function RouteComp({ routerState, router, route, isRoot, activeId, setActiveId }) {
1452
- const styles = useStyles$1();
1453
- const matches = createMemo(() => routerState().pendingMatches || routerState().matches);
1454
- const match = createMemo(() => routerState().matches.find((d$1) => d$1.routeId === route.id));
1455
- const param = createMemo(() => {
1456
- try {
1457
- if (match()?.params) {
1458
- const p$1 = match()?.params;
1459
- const r$2 = route.path || trimPath(route.id);
1460
- if (r$2.startsWith("$")) {
1461
- const trimmed = r$2.slice(1);
1462
- if (p$1[trimmed]) return `(${p$1[trimmed]})`;
1463
- }
1464
- }
1465
- return "";
1466
- } catch (error) {
1467
- return "";
1468
- }
1469
- });
1470
- const navigationTarget = createMemo(() => {
1471
- if (isRoot) return void 0;
1472
- if (!route.path) return void 0;
1473
- const allParams = Object.assign({}, ...matches().map((m) => m.params));
1474
- const interpolated = interpolatePath({
1475
- path: route.fullPath,
1476
- params: allParams,
1477
- decodeCharMap: router().pathParamsDecodeCharMap
1478
- });
1479
- return !interpolated.isMissingParams ? interpolated.interpolatedPath : void 0;
1480
- });
1481
- return (() => {
1482
- var _el$6 = _tmpl$5(), _el$7 = _el$6.firstChild, _el$8 = _el$7.firstChild;
1483
- _el$7.$$click = () => {
1484
- if (match()) setActiveId(activeId() === route.id ? "" : route.id);
1485
- };
1486
- insert(_el$7, createComponent(NavigateLink, {
1487
- get ["class"]() {
1488
- return clsx(styles().routesRow(!!match()));
1489
- },
1490
- get left() {
1491
- return createComponent(Show, {
1492
- get when() {
1493
- return navigationTarget();
1494
- },
1495
- children: (navigate) => createComponent(NavigateButton, {
1496
- get to() {
1497
- return navigate();
1498
- },
1499
- router
1500
- })
1501
- });
1502
- },
1503
- get right() {
1504
- return createComponent(AgeTicker, {
1505
- get match() {
1506
- return match();
1507
- },
1508
- router
1509
- });
1510
- },
1511
- get children() {
1512
- return [(() => {
1513
- var _el$9 = _tmpl$3(), _el$0 = _el$9.firstChild;
1514
- insert(_el$9, () => isRoot ? rootRouteId : route.path || trimPath(route.id), _el$0);
1515
- createRenderEffect(() => className(_el$9, styles().code));
1516
- return _el$9;
1517
- })(), (() => {
1518
- var _el$1 = _tmpl$4();
1519
- insert(_el$1, param);
1520
- createRenderEffect(() => className(_el$1, styles().routeParamInfo));
1521
- return _el$1;
1522
- })()];
1523
- }
1524
- }), null);
1525
- insert(_el$6, (() => {
1526
- var _c$ = memo(() => !!route.children?.length);
1527
- return () => _c$() ? (() => {
1528
- var _el$10 = _tmpl$6();
1529
- insert(_el$10, () => [...route.children].sort((a$1, b$1) => {
1530
- return a$1.rank - b$1.rank;
1531
- }).map((r$2) => createComponent(RouteComp, {
1532
- routerState,
1533
- router,
1534
- route: r$2,
1535
- activeId,
1536
- setActiveId
1537
- })));
1538
- createRenderEffect(() => className(_el$10, styles().nestedRouteRow(!!isRoot)));
1539
- return _el$10;
1540
- })() : null;
1541
- })(), null);
1542
- createRenderEffect((_p$) => {
1543
- var _v$3 = `Open match details for ${route.id}`, _v$4 = clsx(styles().routesRowContainer(route.id === activeId(), !!match())), _v$5 = clsx(styles().matchIndicator(getRouteStatusColor(matches(), route)));
1544
- _v$3 !== _p$.e && setAttribute(_el$7, "aria-label", _p$.e = _v$3);
1545
- _v$4 !== _p$.t && className(_el$7, _p$.t = _v$4);
1546
- _v$5 !== _p$.a && className(_el$8, _p$.a = _v$5);
1547
- return _p$;
1548
- }, {
1549
- e: void 0,
1550
- t: void 0,
1551
- a: void 0
1552
- });
1553
- return _el$6;
1554
- })();
1555
- }
1556
- const BaseTanStackRouterDevtoolsPanel = function BaseTanStackRouterDevtoolsPanel2({ ...props }) {
1557
- const { isOpen = true, setIsOpen, handleDragStart, router, routerState, shadowDOMTarget, ...panelProps } = props;
1558
- const { onCloseClick } = useDevtoolsOnClose();
1559
- const styles = useStyles$1();
1560
- const { className: className$1, style, ...otherPanelProps } = panelProps;
1561
- invariant(router, "No router was found for the TanStack Router Devtools. Please place the devtools in the <RouterProvider> component tree or pass the router instance to the devtools manually.");
1562
- const [currentTab, setCurrentTab] = useLocalStorage("tanstackRouterDevtoolsActiveTab", "routes");
1563
- const [activeId, setActiveId] = useLocalStorage("tanstackRouterDevtoolsActiveRouteId", "");
1564
- const [history, setHistory] = createSignal([]);
1565
- const [hasHistoryOverflowed, setHasHistoryOverflowed] = createSignal(false);
1566
- createEffect(() => {
1567
- const matches = routerState().matches;
1568
- const currentMatch = matches[matches.length - 1];
1569
- if (!currentMatch) return;
1570
- const historyUntracked = untrack(() => history());
1571
- const lastMatch = historyUntracked[0];
1572
- const sameLocation = lastMatch && lastMatch.pathname === currentMatch.pathname && JSON.stringify(lastMatch.search ?? {}) === JSON.stringify(currentMatch.search ?? {});
1573
- if (!lastMatch || !sameLocation) {
1574
- if (historyUntracked.length >= HISTORY_LIMIT) setHasHistoryOverflowed(true);
1575
- setHistory((prev) => {
1576
- const newHistory = [currentMatch, ...prev];
1577
- newHistory.splice(HISTORY_LIMIT);
1578
- return newHistory;
1579
- });
1580
- }
1581
- });
1582
- const activeMatch = createMemo(() => {
1583
- return [
1584
- ...routerState().pendingMatches ?? [],
1585
- ...routerState().matches,
1586
- ...routerState().cachedMatches
1587
- ].find((d$1) => d$1.routeId === activeId() || d$1.id === activeId());
1588
- });
1589
- const hasSearch = createMemo(() => Object.keys(routerState().location.search).length);
1590
- const explorerState = createMemo(() => {
1591
- return {
1592
- ...router(),
1593
- state: routerState()
1594
- };
1595
- });
1596
- const routerExplorerValue = createMemo(() => Object.fromEntries(multiSortBy(Object.keys(explorerState()), [
1597
- "state",
1598
- "routesById",
1599
- "routesByPath",
1600
- "options",
1601
- "manifest"
1602
- ].map((d$1) => (dd) => dd !== d$1)).map((key) => [key, explorerState()[key]]).filter((d$1) => typeof d$1[1] !== "function" && ![
1603
- "__store",
1604
- "basepath",
1605
- "injectedHtml",
1606
- "subscribers",
1607
- "latestLoadPromise",
1608
- "navigateTimeout",
1609
- "resetNextScroll",
1610
- "tempLocationKey",
1611
- "latestLocation",
1612
- "routeTree",
1613
- "history"
1614
- ].includes(d$1[0]))));
1615
- const activeMatchLoaderData = createMemo(() => activeMatch()?.loaderData);
1616
- const activeMatchValue = createMemo(() => activeMatch());
1617
- const locationSearchValue = createMemo(() => routerState().location.search);
1618
- return (() => {
1619
- var _el$11 = _tmpl$8(), _el$12 = _el$11.firstChild, _el$13 = _el$12.firstChild, _el$14 = _el$12.nextSibling, _el$15 = _el$14.firstChild, _el$16 = _el$15.nextSibling, _el$17 = _el$16.firstChild, _el$18 = _el$14.nextSibling, _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild;
1620
- _el$20.firstChild;
1621
- var _el$22 = _el$20.nextSibling, _el$23 = _el$22.firstChild, _el$24 = _el$22.nextSibling, _el$25 = _el$24.firstChild, _el$26 = _el$25.firstChild, _el$27 = _el$26.nextSibling, _el$28 = _el$27.nextSibling, _el$29 = _el$25.nextSibling, _el$30 = _el$24.nextSibling;
1622
- spread(_el$11, mergeProps({
1623
- get ["class"]() {
1624
- return clsx(styles().devtoolsPanel, "TanStackRouterDevtoolsPanel", className$1 ? className$1() : "");
1625
- },
1626
- get style() {
1627
- return style ? style() : "";
1628
- }
1629
- }, otherPanelProps), false, true);
1630
- insert(_el$11, handleDragStart ? (() => {
1631
- var _el$34 = _tmpl$6();
1632
- addEventListener(_el$34, "mousedown", handleDragStart, true);
1633
- createRenderEffect(() => className(_el$34, styles().dragHandle));
1634
- return _el$34;
1635
- })() : null, _el$12);
1636
- _el$12.$$click = (e$1) => {
1637
- if (setIsOpen) setIsOpen(false);
1638
- onCloseClick(e$1);
1639
- };
1640
- insert(_el$15, createComponent(Logo, {
1641
- "aria-hidden": true,
1642
- onClick: (e$1) => {
1643
- if (setIsOpen) setIsOpen(false);
1644
- onCloseClick(e$1);
1645
- }
1646
- }));
1647
- insert(_el$17, createComponent(Explorer, {
1648
- label: "Router",
1649
- value: routerExplorerValue,
1650
- defaultExpanded: {
1651
- state: {},
1652
- context: {},
1653
- options: {}
1654
- },
1655
- filterSubEntries: (subEntries) => {
1656
- return subEntries.filter((d$1) => typeof d$1.value() !== "function");
1657
- }
1658
- }));
1659
- insert(_el$20, (() => {
1660
- var _c$2 = memo(() => !!routerState().location.maskedLocation);
1661
- return () => _c$2() ? (() => {
1662
- var _el$35 = _tmpl$9(), _el$36 = _el$35.firstChild;
1663
- createRenderEffect((_p$) => {
1664
- var _v$24 = styles().maskedBadgeContainer, _v$25 = styles().maskedBadge;
1665
- _v$24 !== _p$.e && className(_el$35, _p$.e = _v$24);
1666
- _v$25 !== _p$.t && className(_el$36, _p$.t = _v$25);
1667
- return _p$;
1668
- }, {
1669
- e: void 0,
1670
- t: void 0
1671
- });
1672
- return _el$35;
1673
- })() : null;
1674
- })(), null);
1675
- insert(_el$23, () => routerState().location.pathname);
1676
- insert(_el$22, (() => {
1677
- var _c$3 = memo(() => !!routerState().location.maskedLocation);
1678
- return () => _c$3() ? (() => {
1679
- var _el$37 = _tmpl$4();
1680
- insert(_el$37, () => routerState().location.maskedLocation?.pathname);
1681
- createRenderEffect(() => className(_el$37, styles().maskedLocation));
1682
- return _el$37;
1683
- })() : null;
1684
- })(), null);
1685
- _el$26.$$click = () => {
1686
- setCurrentTab("routes");
1687
- };
1688
- _el$27.$$click = () => {
1689
- setCurrentTab("matches");
1690
- };
1691
- _el$28.$$click = () => {
1692
- setCurrentTab("history");
1693
- };
1694
- insert(_el$30, createComponent(Switch, { get children() {
1695
- return [
1696
- createComponent(Match, {
1697
- get when() {
1698
- return currentTab() === "routes";
1699
- },
1700
- get children() {
1701
- return createComponent(RouteComp, {
1702
- routerState,
1703
- router,
1704
- get route() {
1705
- return router().routeTree;
1706
- },
1707
- isRoot: true,
1708
- activeId,
1709
- setActiveId
1710
- });
1711
- }
1712
- }),
1713
- createComponent(Match, {
1714
- get when() {
1715
- return currentTab() === "matches";
1716
- },
1717
- get children() {
1718
- var _el$31 = _tmpl$6();
1719
- insert(_el$31, () => (routerState().pendingMatches?.length ? routerState().pendingMatches : routerState().matches)?.map((match, _i) => {
1720
- return (() => {
1721
- var _el$38 = _tmpl$0(), _el$39 = _el$38.firstChild;
1722
- _el$38.$$click = () => setActiveId(activeId() === match.id ? "" : match.id);
1723
- insert(_el$38, createComponent(NavigateLink, {
1724
- get left() {
1725
- return createComponent(NavigateButton, {
1726
- get to() {
1727
- return match.pathname;
1728
- },
1729
- get params() {
1730
- return match.params;
1731
- },
1732
- get search() {
1733
- return match.search;
1734
- },
1735
- router
1736
- });
1737
- },
1738
- get right() {
1739
- return createComponent(AgeTicker, {
1740
- match,
1741
- router
1742
- });
1743
- },
1744
- get children() {
1745
- var _el$40 = _tmpl$4();
1746
- insert(_el$40, () => `${match.routeId === rootRouteId ? rootRouteId : match.pathname}`);
1747
- createRenderEffect(() => className(_el$40, styles().matchID));
1748
- return _el$40;
1749
- }
1750
- }), null);
1751
- createRenderEffect((_p$) => {
1752
- var _v$26 = `Open match details for ${match.id}`, _v$27 = clsx(styles().matchRow(match === activeMatch())), _v$28 = clsx(styles().matchIndicator(getStatusColor(match)));
1753
- _v$26 !== _p$.e && setAttribute(_el$38, "aria-label", _p$.e = _v$26);
1754
- _v$27 !== _p$.t && className(_el$38, _p$.t = _v$27);
1755
- _v$28 !== _p$.a && className(_el$39, _p$.a = _v$28);
1756
- return _p$;
1757
- }, {
1758
- e: void 0,
1759
- t: void 0,
1760
- a: void 0
1761
- });
1762
- return _el$38;
1763
- })();
1764
- }));
1765
- return _el$31;
1766
- }
1767
- }),
1768
- createComponent(Match, {
1769
- get when() {
1770
- return currentTab() === "history";
1771
- },
1772
- get children() {
1773
- var _el$32 = _tmpl$7(), _el$33 = _el$32.firstChild;
1774
- insert(_el$33, createComponent(For, {
1775
- get each() {
1776
- return history();
1777
- },
1778
- children: (match, index) => (() => {
1779
- var _el$41 = _tmpl$1(), _el$42 = _el$41.firstChild;
1780
- insert(_el$41, createComponent(NavigateLink, {
1781
- get left() {
1782
- return createComponent(NavigateButton, {
1783
- get to() {
1784
- return match.pathname;
1785
- },
1786
- get params() {
1787
- return match.params;
1788
- },
1789
- get search() {
1790
- return match.search;
1791
- },
1792
- router
1793
- });
1794
- },
1795
- get right() {
1796
- return createComponent(AgeTicker, {
1797
- match,
1798
- router
1799
- });
1800
- },
1801
- get children() {
1802
- var _el$43 = _tmpl$4();
1803
- insert(_el$43, () => `${match.routeId === rootRouteId ? rootRouteId : match.pathname}`);
1804
- createRenderEffect(() => className(_el$43, styles().matchID));
1805
- return _el$43;
1806
- }
1807
- }), null);
1808
- createRenderEffect((_p$) => {
1809
- var _v$29 = clsx(styles().matchRow(match === activeMatch())), _v$30 = clsx(styles().matchIndicator(index() === 0 ? "green" : "gray"));
1810
- _v$29 !== _p$.e && className(_el$41, _p$.e = _v$29);
1811
- _v$30 !== _p$.t && className(_el$42, _p$.t = _v$30);
1812
- return _p$;
1813
- }, {
1814
- e: void 0,
1815
- t: void 0
1816
- });
1817
- return _el$41;
1818
- })()
1819
- }), null);
1820
- insert(_el$33, (() => {
1821
- var _c$4 = memo(() => !!hasHistoryOverflowed());
1822
- return () => _c$4() ? (() => {
1823
- var _el$44 = _tmpl$10();
1824
- createRenderEffect(() => className(_el$44, styles().historyOverflowContainer));
1825
- return _el$44;
1826
- })() : null;
1827
- })(), null);
1828
- return _el$32;
1829
- }
1830
- })
1831
- ];
1832
- } }));
1833
- insert(_el$18, (() => {
1834
- var _c$5 = memo(() => !!routerState().cachedMatches.length);
1835
- return () => _c$5() ? (() => {
1836
- var _el$45 = _tmpl$11(), _el$46 = _el$45.firstChild, _el$48 = _el$46.firstChild.nextSibling, _el$49 = _el$46.nextSibling;
1837
- insert(_el$49, () => routerState().cachedMatches.map((match) => {
1838
- return (() => {
1839
- var _el$50 = _tmpl$0(), _el$51 = _el$50.firstChild;
1840
- _el$50.$$click = () => setActiveId(activeId() === match.id ? "" : match.id);
1841
- insert(_el$50, createComponent(NavigateLink, {
1842
- get left() {
1843
- return createComponent(NavigateButton, {
1844
- get to() {
1845
- return match.pathname;
1846
- },
1847
- get params() {
1848
- return match.params;
1849
- },
1850
- get search() {
1851
- return match.search;
1852
- },
1853
- router
1854
- });
1855
- },
1856
- get right() {
1857
- return createComponent(AgeTicker, {
1858
- match,
1859
- router
1860
- });
1861
- },
1862
- get children() {
1863
- var _el$52 = _tmpl$4();
1864
- insert(_el$52, () => `${match.id}`);
1865
- createRenderEffect(() => className(_el$52, styles().matchID));
1866
- return _el$52;
1867
- }
1868
- }), null);
1869
- createRenderEffect((_p$) => {
1870
- var _v$34 = `Open match details for ${match.id}`, _v$35 = clsx(styles().matchRow(match === activeMatch())), _v$36 = clsx(styles().matchIndicator(getStatusColor(match)));
1871
- _v$34 !== _p$.e && setAttribute(_el$50, "aria-label", _p$.e = _v$34);
1872
- _v$35 !== _p$.t && className(_el$50, _p$.t = _v$35);
1873
- _v$36 !== _p$.a && className(_el$51, _p$.a = _v$36);
1874
- return _p$;
1875
- }, {
1876
- e: void 0,
1877
- t: void 0,
1878
- a: void 0
1879
- });
1880
- return _el$50;
1881
- })();
1882
- }));
1883
- createRenderEffect((_p$) => {
1884
- var _v$31 = styles().cachedMatchesContainer, _v$32 = styles().detailsHeader, _v$33 = styles().detailsHeaderInfo;
1885
- _v$31 !== _p$.e && className(_el$45, _p$.e = _v$31);
1886
- _v$32 !== _p$.t && className(_el$46, _p$.t = _v$32);
1887
- _v$33 !== _p$.a && className(_el$48, _p$.a = _v$33);
1888
- return _p$;
1889
- }, {
1890
- e: void 0,
1891
- t: void 0,
1892
- a: void 0
1893
- });
1894
- return _el$45;
1895
- })() : null;
1896
- })(), null);
1897
- insert(_el$11, (() => {
1898
- var _c$6 = memo(() => !!(activeMatch() && activeMatch()?.status));
1899
- return () => _c$6() ? (() => {
1900
- var _el$53 = _tmpl$12(), _el$54 = _el$53.firstChild, _el$55 = _el$54.nextSibling, _el$56 = _el$55.firstChild, _el$57 = _el$56.firstChild, _el$58 = _el$57.firstChild, _el$59 = _el$57.nextSibling, _el$61 = _el$59.firstChild.nextSibling, _el$62 = _el$61.firstChild, _el$63 = _el$59.nextSibling, _el$65 = _el$63.firstChild.nextSibling, _el$66 = _el$63.nextSibling, _el$68 = _el$66.firstChild.nextSibling, _el$69 = _el$55.nextSibling, _el$70 = _el$69.nextSibling;
1901
- insert(_el$58, (() => {
1902
- var _c$8 = memo(() => !!(activeMatch()?.status === "success" && activeMatch()?.isFetching));
1903
- return () => _c$8() ? "fetching" : activeMatch()?.status;
1904
- })());
1905
- insert(_el$62, () => activeMatch()?.id);
1906
- insert(_el$65, (() => {
1907
- var _c$9 = memo(() => !!routerState().pendingMatches?.find((d$1) => d$1.id === activeMatch()?.id));
1908
- return () => _c$9() ? "Pending" : routerState().matches.find((d$1) => d$1.id === activeMatch()?.id) ? "Active" : "Cached";
1909
- })());
1910
- insert(_el$68, (() => {
1911
- var _c$0 = memo(() => !!activeMatch()?.updatedAt);
1912
- return () => _c$0() ? new Date(activeMatch()?.updatedAt).toLocaleTimeString() : "N/A";
1913
- })());
1914
- insert(_el$53, (() => {
1915
- var _c$1 = memo(() => !!activeMatchLoaderData());
1916
- return () => _c$1() ? [(() => {
1917
- var _el$71 = _tmpl$13();
1918
- createRenderEffect(() => className(_el$71, styles().detailsHeader));
1919
- return _el$71;
1920
- })(), (() => {
1921
- var _el$72 = _tmpl$6();
1922
- insert(_el$72, createComponent(Explorer, {
1923
- label: "loaderData",
1924
- value: activeMatchLoaderData,
1925
- defaultExpanded: {}
1926
- }));
1927
- createRenderEffect(() => className(_el$72, styles().detailsContent));
1928
- return _el$72;
1929
- })()] : null;
1930
- })(), _el$69);
1931
- insert(_el$70, createComponent(Explorer, {
1932
- label: "Match",
1933
- value: activeMatchValue,
1934
- defaultExpanded: {}
1935
- }));
1936
- createRenderEffect((_p$) => {
1937
- var _v$37 = styles().thirdContainer, _v$38 = styles().detailsHeader, _v$39 = styles().matchDetails, _v$40 = styles().matchStatus(activeMatch()?.status, activeMatch()?.isFetching), _v$41 = styles().matchDetailsInfoLabel, _v$42 = styles().matchDetailsInfo, _v$43 = styles().matchDetailsInfoLabel, _v$44 = styles().matchDetailsInfo, _v$45 = styles().matchDetailsInfoLabel, _v$46 = styles().matchDetailsInfo, _v$47 = styles().detailsHeader, _v$48 = styles().detailsContent;
1938
- _v$37 !== _p$.e && className(_el$53, _p$.e = _v$37);
1939
- _v$38 !== _p$.t && className(_el$54, _p$.t = _v$38);
1940
- _v$39 !== _p$.a && className(_el$56, _p$.a = _v$39);
1941
- _v$40 !== _p$.o && className(_el$57, _p$.o = _v$40);
1942
- _v$41 !== _p$.i && className(_el$59, _p$.i = _v$41);
1943
- _v$42 !== _p$.n && className(_el$61, _p$.n = _v$42);
1944
- _v$43 !== _p$.s && className(_el$63, _p$.s = _v$43);
1945
- _v$44 !== _p$.h && className(_el$65, _p$.h = _v$44);
1946
- _v$45 !== _p$.r && className(_el$66, _p$.r = _v$45);
1947
- _v$46 !== _p$.d && className(_el$68, _p$.d = _v$46);
1948
- _v$47 !== _p$.l && className(_el$69, _p$.l = _v$47);
1949
- _v$48 !== _p$.u && className(_el$70, _p$.u = _v$48);
1950
- return _p$;
1951
- }, {
1952
- e: void 0,
1953
- t: void 0,
1954
- a: void 0,
1955
- o: void 0,
1956
- i: void 0,
1957
- n: void 0,
1958
- s: void 0,
1959
- h: void 0,
1960
- r: void 0,
1961
- d: void 0,
1962
- l: void 0,
1963
- u: void 0
1964
- });
1965
- return _el$53;
1966
- })() : null;
1967
- })(), null);
1968
- insert(_el$11, (() => {
1969
- var _c$7 = memo(() => !!hasSearch());
1970
- return () => _c$7() ? (() => {
1971
- var _el$73 = _tmpl$14(), _el$74 = _el$73.firstChild;
1972
- _el$74.firstChild;
1973
- var _el$76 = _el$74.nextSibling;
1974
- insert(_el$74, typeof navigator !== "undefined" ? (() => {
1975
- var _el$77 = _tmpl$15();
1976
- insert(_el$77, createComponent(CopyButton, { getValue: () => {
1977
- const search = routerState().location.search;
1978
- return JSON.stringify(search);
1979
- } }));
1980
- return _el$77;
1981
- })() : null, null);
1982
- insert(_el$76, createComponent(Explorer, {
1983
- value: locationSearchValue,
1984
- get defaultExpanded() {
1985
- return Object.keys(routerState().location.search).reduce((obj, next) => {
1986
- obj[next] = {};
1987
- return obj;
1988
- }, {});
1989
- }
1990
- }));
1991
- createRenderEffect((_p$) => {
1992
- var _v$49 = styles().fourthContainer, _v$50 = styles().detailsHeader, _v$51 = styles().detailsContent;
1993
- _v$49 !== _p$.e && className(_el$73, _p$.e = _v$49);
1994
- _v$50 !== _p$.t && className(_el$74, _p$.t = _v$50);
1995
- _v$51 !== _p$.a && className(_el$76, _p$.a = _v$51);
1996
- return _p$;
1997
- }, {
1998
- e: void 0,
1999
- t: void 0,
2000
- a: void 0
2001
- });
2002
- return _el$73;
2003
- })() : null;
2004
- })(), null);
2005
- createRenderEffect((_p$) => {
2006
- var _v$6 = styles().panelCloseBtn, _v$7 = styles().panelCloseBtnIcon, _v$8 = styles().firstContainer, _v$9 = styles().row, _v$0 = styles().routerExplorerContainer, _v$1 = styles().routerExplorer, _v$10 = styles().secondContainer, _v$11 = styles().matchesContainer, _v$12 = styles().detailsHeader, _v$13 = styles().detailsContent, _v$14 = styles().detailsHeader, _v$15 = styles().routeMatchesToggle, _v$16 = currentTab() === "routes", _v$17 = clsx(styles().routeMatchesToggleBtn(currentTab() === "routes", true)), _v$18 = currentTab() === "matches", _v$19 = clsx(styles().routeMatchesToggleBtn(currentTab() === "matches", true)), _v$20 = currentTab() === "history", _v$21 = clsx(styles().routeMatchesToggleBtn(currentTab() === "history", false)), _v$22 = styles().detailsHeaderInfo, _v$23 = clsx(styles().routesContainer);
2007
- _v$6 !== _p$.e && className(_el$12, _p$.e = _v$6);
2008
- _v$7 !== _p$.t && setAttribute(_el$13, "class", _p$.t = _v$7);
2009
- _v$8 !== _p$.a && className(_el$14, _p$.a = _v$8);
2010
- _v$9 !== _p$.o && className(_el$15, _p$.o = _v$9);
2011
- _v$0 !== _p$.i && className(_el$16, _p$.i = _v$0);
2012
- _v$1 !== _p$.n && className(_el$17, _p$.n = _v$1);
2013
- _v$10 !== _p$.s && className(_el$18, _p$.s = _v$10);
2014
- _v$11 !== _p$.h && className(_el$19, _p$.h = _v$11);
2015
- _v$12 !== _p$.r && className(_el$20, _p$.r = _v$12);
2016
- _v$13 !== _p$.d && className(_el$22, _p$.d = _v$13);
2017
- _v$14 !== _p$.l && className(_el$24, _p$.l = _v$14);
2018
- _v$15 !== _p$.u && className(_el$25, _p$.u = _v$15);
2019
- _v$16 !== _p$.c && (_el$26.disabled = _p$.c = _v$16);
2020
- _v$17 !== _p$.w && className(_el$26, _p$.w = _v$17);
2021
- _v$18 !== _p$.m && (_el$27.disabled = _p$.m = _v$18);
2022
- _v$19 !== _p$.f && className(_el$27, _p$.f = _v$19);
2023
- _v$20 !== _p$.y && (_el$28.disabled = _p$.y = _v$20);
2024
- _v$21 !== _p$.g && className(_el$28, _p$.g = _v$21);
2025
- _v$22 !== _p$.p && className(_el$29, _p$.p = _v$22);
2026
- _v$23 !== _p$.b && className(_el$30, _p$.b = _v$23);
2027
- return _p$;
2028
- }, {
2029
- e: void 0,
2030
- t: void 0,
2031
- a: void 0,
2032
- o: void 0,
2033
- i: void 0,
2034
- n: void 0,
2035
- s: void 0,
2036
- h: void 0,
2037
- r: void 0,
2038
- d: void 0,
2039
- l: void 0,
2040
- u: void 0,
2041
- c: void 0,
2042
- w: void 0,
2043
- m: void 0,
2044
- f: void 0,
2045
- y: void 0,
2046
- g: void 0,
2047
- p: void 0,
2048
- b: void 0
2049
- });
2050
- return _el$11;
2051
- })();
2052
- };
2053
- function CopyButton({ getValue }) {
2054
- const [copied, setCopied] = createSignal(false);
2055
- let timeoutId = null;
2056
- const handleCopy = async () => {
2057
- if (typeof navigator === "undefined" || !navigator.clipboard?.writeText) {
2058
- console.warn("TanStack Router Devtools: Clipboard API unavailable");
2059
- return;
2060
- }
2061
- try {
2062
- const value = getValue();
2063
- await navigator.clipboard.writeText(value);
2064
- setCopied(true);
2065
- if (timeoutId) clearTimeout(timeoutId);
2066
- timeoutId = setTimeout(() => setCopied(false), 2500);
2067
- } catch (e$1) {
2068
- console.error("TanStack Router Devtools: Failed to copy", e$1);
2069
- }
2070
- };
2071
- onCleanup(() => {
2072
- if (timeoutId) clearTimeout(timeoutId);
2073
- });
2074
- return (() => {
2075
- var _el$78 = _tmpl$16();
2076
- _el$78.$$click = handleCopy;
2077
- insert(_el$78, () => copied() ? "✅" : "📋");
2078
- createRenderEffect(() => setAttribute(_el$78, "title", copied() ? "Copied!" : "Copy"));
2079
- return _el$78;
2080
- })();
2081
- }
2082
- delegateEvents(["click", "mousedown"]);
2083
- const BaseTanStackRouterDevtoolsPanel$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2084
- __proto__: null,
2085
- BaseTanStackRouterDevtoolsPanel,
2086
- default: BaseTanStackRouterDevtoolsPanel
2087
- }, Symbol.toStringTag, { value: "Module" }));
2088
-
2089
- //#endregion
2090
- export { BaseTanStackRouterDevtoolsPanel as B, useIsMounted as a, useStyles$1 as b, BaseTanStackRouterDevtoolsPanel$1 as c, clsx as t, useLocalStorage as u };