@concavejs/devtools 0.0.1-alpha.14 → 0.0.1-alpha.16
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/README.md +23 -7
- package/dist/{client-Bnix0wGg.js → client-C-ZM0PBC.js} +1371 -1224
- package/dist/client.js +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +1 -1
- package/dist/interceptor/index.d.ts +2 -2
- package/dist/interceptor/websocket-interceptor.d.ts +1 -1
- package/dist/overlay/PerformancePanel.d.ts +2 -1
- package/dist/store/event-store.d.ts +42 -2
- package/package.json +3 -3
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { jsxs as n, jsx as t, Fragment as
|
|
2
|
-
import { createRoot as
|
|
3
|
-
import
|
|
1
|
+
import { jsxs as n, jsx as t, Fragment as nt } from "react/jsx-runtime";
|
|
2
|
+
import { createRoot as me } from "react-dom/client";
|
|
3
|
+
import be, { useState as z, useMemo as V, useEffect as K, useRef as Ct, useCallback as U } from "react";
|
|
4
4
|
let kt = null;
|
|
5
|
-
function
|
|
5
|
+
function Xt() {
|
|
6
6
|
if (kt !== null) return kt;
|
|
7
7
|
try {
|
|
8
8
|
const e = "__concave_test__";
|
|
@@ -12,37 +12,41 @@ function Wt() {
|
|
|
12
12
|
}
|
|
13
13
|
return kt;
|
|
14
14
|
}
|
|
15
|
-
function
|
|
16
|
-
if (!
|
|
15
|
+
function Jt(e) {
|
|
16
|
+
if (!Xt()) return null;
|
|
17
17
|
try {
|
|
18
18
|
return localStorage.getItem(e);
|
|
19
19
|
} catch {
|
|
20
20
|
return null;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
function
|
|
24
|
-
if (
|
|
23
|
+
function Ut(e, r) {
|
|
24
|
+
if (Xt())
|
|
25
25
|
try {
|
|
26
26
|
localStorage.setItem(e, r);
|
|
27
27
|
} catch {
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
function
|
|
31
|
-
if (
|
|
30
|
+
function Zt(e) {
|
|
31
|
+
if (Xt())
|
|
32
32
|
try {
|
|
33
33
|
localStorage.removeItem(e);
|
|
34
34
|
} catch {
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
const
|
|
38
|
-
version:
|
|
39
|
-
},
|
|
40
|
-
|
|
41
|
-
const
|
|
37
|
+
const ge = "0.0.1-alpha.16", te = {
|
|
38
|
+
version: ge
|
|
39
|
+
}, ce = te.version.length > 0 ? te.version : "0.0.0", pe = ce;
|
|
40
|
+
ce.split("-")[0];
|
|
41
|
+
const fe = "concave-devtools-events", we = "concave-devtools-settings", ee = 200, ve = 80;
|
|
42
42
|
class Nt {
|
|
43
43
|
events = [];
|
|
44
44
|
maxEvents;
|
|
45
45
|
listeners = /* @__PURE__ */ new Set();
|
|
46
|
+
batchListeners = /* @__PURE__ */ new Set();
|
|
47
|
+
pendingBatch = [];
|
|
48
|
+
batchTimer = null;
|
|
49
|
+
eventsSnapshot = null;
|
|
46
50
|
focusListeners = /* @__PURE__ */ new Set();
|
|
47
51
|
settingsListeners = /* @__PURE__ */ new Set();
|
|
48
52
|
subscriptions = /* @__PURE__ */ new Map();
|
|
@@ -67,20 +71,20 @@ class Nt {
|
|
|
67
71
|
static MAX_EVENTS = 1e4;
|
|
68
72
|
static MAX_SIMULATED_LATENCY_MS = 5e3;
|
|
69
73
|
constructor(r = 1e3, a = "global") {
|
|
70
|
-
const
|
|
71
|
-
this.storageKey = `${
|
|
74
|
+
const s = typeof r == "number" ? { maxEvents: r, storageScope: a } : r, l = (s.storageScope ?? "global").trim() || "global";
|
|
75
|
+
this.storageKey = `${fe}:${l}`, this.settingsKey = `${we}:${l}`, this.persistenceEnabled = s.enablePersistence !== !1, this.maxEvents = s.maxEvents ?? 1e3, this.persistenceEnabled || (this.settings.persistEvents = !1), this.loadSettings(), this.persistenceEnabled || (this.settings.persistEvents = !1), this.loadPersistedEvents();
|
|
72
76
|
}
|
|
73
77
|
/**
|
|
74
78
|
* Add an event to the store
|
|
75
79
|
*/
|
|
76
80
|
addEvent(r) {
|
|
77
81
|
if (!this.isPaused && !(r.type === "log" && !this.settings.captureLogLines) && !this.recentEventIds.has(r.id)) {
|
|
78
|
-
if (this.recentEventIds.add(r.id), this.recentEventIds.size >
|
|
79
|
-
const a = this.recentEventIds.size -
|
|
80
|
-
for (let
|
|
81
|
-
this.recentEventIds.delete(
|
|
82
|
+
if (this.recentEventIds.add(r.id), this.recentEventIds.size > ee) {
|
|
83
|
+
const a = this.recentEventIds.size - ee, s = this.recentEventIds.values();
|
|
84
|
+
for (let l = 0; l < a; l++)
|
|
85
|
+
this.recentEventIds.delete(s.next().value);
|
|
82
86
|
}
|
|
83
|
-
if (this.reconcilePendingOperation(r), this.events.push(r), this.events.length > this.maxEvents + 100 && (this.events = this.events.slice(-this.maxEvents)), r.type === "subscription")
|
|
87
|
+
if (this.reconcilePendingOperation(r), this.events.push(r), this.eventsSnapshot = null, this.events.length > this.maxEvents + 100 && (this.events = this.events.slice(-this.maxEvents)), r.type === "subscription")
|
|
84
88
|
this.updateSubscription(r);
|
|
85
89
|
else if (r.type === "query" && r.status === "success") {
|
|
86
90
|
const a = this.subscriptions.get(r.queryId);
|
|
@@ -91,17 +95,41 @@ class Nt {
|
|
|
91
95
|
}
|
|
92
96
|
this.settings.autoPauseOnError && !this.isPaused && ("status" in r && r.status === "error" || r.type === "log" && r.level === "error") && (this.isPaused = !0), this.persistenceEnabled && this.settings.persistEvents && !this.persistTimer && (this.persistTimer = setTimeout(() => {
|
|
93
97
|
this.persistTimer = null, this.persistEvents();
|
|
94
|
-
}, 500)), this.
|
|
95
|
-
a(r);
|
|
96
|
-
});
|
|
98
|
+
}, 500)), this.emit(r);
|
|
97
99
|
}
|
|
98
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Notify per-event listeners immediately and enqueue for batched listeners.
|
|
103
|
+
*/
|
|
104
|
+
emit(r) {
|
|
105
|
+
this.listeners.forEach((a) => {
|
|
106
|
+
a(r);
|
|
107
|
+
}), this.batchListeners.size > 0 && (this.pendingBatch.push(r), this.batchTimer || (this.batchTimer = setTimeout(() => this.flushBatch(), ve)));
|
|
108
|
+
}
|
|
109
|
+
flushBatch() {
|
|
110
|
+
if (this.batchTimer = null, this.pendingBatch.length === 0)
|
|
111
|
+
return;
|
|
112
|
+
const r = this.pendingBatch;
|
|
113
|
+
this.pendingBatch = [], this.batchListeners.forEach((a) => {
|
|
114
|
+
a(r);
|
|
115
|
+
});
|
|
116
|
+
}
|
|
99
117
|
/**
|
|
100
118
|
* Subscribe to new events
|
|
101
119
|
*/
|
|
102
120
|
subscribe(r) {
|
|
103
121
|
return this.listeners.add(r), () => this.listeners.delete(r);
|
|
104
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Subscribe to events in coalesced batches (at most one delivery per
|
|
125
|
+
* ~80ms window). Prefer this for UI rendering: per-event subscriptions
|
|
126
|
+
* re-render once per event, which is too often for chatty apps.
|
|
127
|
+
*/
|
|
128
|
+
subscribeBatched(r) {
|
|
129
|
+
return this.batchListeners.add(r), () => {
|
|
130
|
+
this.batchListeners.delete(r), this.batchListeners.size === 0 && this.batchTimer && (clearTimeout(this.batchTimer), this.batchTimer = null, this.pendingBatch = []);
|
|
131
|
+
};
|
|
132
|
+
}
|
|
105
133
|
/**
|
|
106
134
|
* Subscribe to focus/navigation changes across panels
|
|
107
135
|
*/
|
|
@@ -129,10 +157,12 @@ class Nt {
|
|
|
129
157
|
return this.focusedEventId;
|
|
130
158
|
}
|
|
131
159
|
/**
|
|
132
|
-
* Get all events
|
|
160
|
+
* Get all events. The returned array is cached until the store changes,
|
|
161
|
+
* so repeated calls between updates are free and referentially stable
|
|
162
|
+
* (safe for React dependency comparisons).
|
|
133
163
|
*/
|
|
134
164
|
getAllEvents() {
|
|
135
|
-
return [...this.events];
|
|
165
|
+
return this.eventsSnapshot || (this.eventsSnapshot = [...this.events]), this.eventsSnapshot;
|
|
136
166
|
}
|
|
137
167
|
/**
|
|
138
168
|
* Get events by type
|
|
@@ -168,78 +198,113 @@ class Nt {
|
|
|
168
198
|
* Calculate performance metrics
|
|
169
199
|
*/
|
|
170
200
|
getPerformanceMetrics() {
|
|
171
|
-
const r = (
|
|
172
|
-
const
|
|
173
|
-
return !Number.isFinite(
|
|
174
|
-
}, a = (
|
|
175
|
-
const
|
|
176
|
-
for (const
|
|
177
|
-
if (
|
|
178
|
-
const
|
|
179
|
-
|
|
201
|
+
const r = (m) => {
|
|
202
|
+
const k = typeof m == "number" ? m : typeof m == "string" ? Number(m) : Number.NaN;
|
|
203
|
+
return !Number.isFinite(k) || k < 0 ? null : k;
|
|
204
|
+
}, a = (m) => {
|
|
205
|
+
const k = [];
|
|
206
|
+
for (const y of m) {
|
|
207
|
+
if (y.status !== "success") continue;
|
|
208
|
+
const S = r(y.endToEndDurationMs ?? y.duration);
|
|
209
|
+
S !== null && k.push({ event: y, duration: S });
|
|
180
210
|
}
|
|
181
|
-
return
|
|
182
|
-
},
|
|
183
|
-
if (
|
|
184
|
-
const
|
|
185
|
-
return
|
|
211
|
+
return k;
|
|
212
|
+
}, s = a(this.getEventsByType("query")), l = a(this.getEventsByType("mutation")), p = a(this.getEventsByType("action")), d = (m) => m.length === 0 ? 0 : m.reduce((y, S) => y + S, 0) / m.length, u = (m, k) => {
|
|
213
|
+
if (m.length === 0) return 0;
|
|
214
|
+
const y = [...m].sort((I, L) => I - L), S = Math.floor(y.length * k);
|
|
215
|
+
return y[Math.min(S, y.length - 1)] || 0;
|
|
186
216
|
}, w = [
|
|
187
|
-
...
|
|
217
|
+
...s.map(({ event: m, duration: k }) => ({
|
|
188
218
|
type: "query",
|
|
189
|
-
eventId:
|
|
190
|
-
udfPath:
|
|
191
|
-
duration:
|
|
192
|
-
timestamp:
|
|
219
|
+
eventId: m.id,
|
|
220
|
+
udfPath: m.udfPath,
|
|
221
|
+
duration: k,
|
|
222
|
+
timestamp: m.timestamp
|
|
193
223
|
})),
|
|
194
|
-
...
|
|
224
|
+
...l.map(({ event: m, duration: k }) => ({
|
|
195
225
|
type: "mutation",
|
|
196
|
-
eventId:
|
|
197
|
-
udfPath:
|
|
198
|
-
duration:
|
|
199
|
-
timestamp:
|
|
226
|
+
eventId: m.id,
|
|
227
|
+
udfPath: m.udfPath,
|
|
228
|
+
duration: k,
|
|
229
|
+
timestamp: m.timestamp
|
|
200
230
|
})),
|
|
201
|
-
...
|
|
231
|
+
...p.map(({ event: m, duration: k }) => ({
|
|
202
232
|
type: "action",
|
|
203
|
-
eventId:
|
|
204
|
-
udfPath:
|
|
205
|
-
duration:
|
|
206
|
-
timestamp:
|
|
233
|
+
eventId: m.id,
|
|
234
|
+
udfPath: m.udfPath,
|
|
235
|
+
duration: k,
|
|
236
|
+
timestamp: m.timestamp
|
|
207
237
|
}))
|
|
208
|
-
].sort((
|
|
238
|
+
].sort((m, k) => k.duration - m.duration).slice(0, 10), v = s.map(({ duration: m }) => m), C = l.map(({ duration: m }) => m), f = p.map(({ duration: m }) => m);
|
|
209
239
|
return {
|
|
210
|
-
totalQueries:
|
|
211
|
-
totalMutations:
|
|
212
|
-
totalActions:
|
|
213
|
-
avgQueryDuration:
|
|
214
|
-
avgMutationDuration:
|
|
215
|
-
avgActionDuration:
|
|
216
|
-
p50QueryDuration:
|
|
217
|
-
p50MutationDuration:
|
|
218
|
-
p50ActionDuration:
|
|
219
|
-
p90QueryDuration:
|
|
220
|
-
p90MutationDuration:
|
|
221
|
-
p90ActionDuration:
|
|
222
|
-
p95QueryDuration:
|
|
223
|
-
p95MutationDuration:
|
|
224
|
-
p95ActionDuration:
|
|
225
|
-
p99QueryDuration:
|
|
226
|
-
p99MutationDuration:
|
|
227
|
-
p99ActionDuration:
|
|
240
|
+
totalQueries: s.length,
|
|
241
|
+
totalMutations: l.length,
|
|
242
|
+
totalActions: p.length,
|
|
243
|
+
avgQueryDuration: d(v),
|
|
244
|
+
avgMutationDuration: d(C),
|
|
245
|
+
avgActionDuration: d(f),
|
|
246
|
+
p50QueryDuration: u(v, 0.5),
|
|
247
|
+
p50MutationDuration: u(C, 0.5),
|
|
248
|
+
p50ActionDuration: u(f, 0.5),
|
|
249
|
+
p90QueryDuration: u(v, 0.9),
|
|
250
|
+
p90MutationDuration: u(C, 0.9),
|
|
251
|
+
p90ActionDuration: u(f, 0.9),
|
|
252
|
+
p95QueryDuration: u(v, 0.95),
|
|
253
|
+
p95MutationDuration: u(C, 0.95),
|
|
254
|
+
p95ActionDuration: u(f, 0.95),
|
|
255
|
+
p99QueryDuration: u(v, 0.99),
|
|
256
|
+
p99MutationDuration: u(C, 0.99),
|
|
257
|
+
p99ActionDuration: u(f, 0.99),
|
|
228
258
|
slowestOperations: w
|
|
229
259
|
};
|
|
230
260
|
}
|
|
261
|
+
/**
|
|
262
|
+
* Per-function aggregates over the recorded events, sorted by call count.
|
|
263
|
+
* Pending operations are excluded; errors count toward calls and errorRate
|
|
264
|
+
* but not toward duration percentiles (no meaningful duration).
|
|
265
|
+
*/
|
|
266
|
+
getFunctionStats() {
|
|
267
|
+
const r = /* @__PURE__ */ new Map();
|
|
268
|
+
for (const s of this.events) {
|
|
269
|
+
if (!this.isTerminalOperationEvent(s)) continue;
|
|
270
|
+
const l = `${s.type}:${s.udfPath}`;
|
|
271
|
+
let p = r.get(l);
|
|
272
|
+
if (p || (p = {
|
|
273
|
+
stats: {
|
|
274
|
+
udfPath: s.udfPath,
|
|
275
|
+
type: s.type,
|
|
276
|
+
calls: 0,
|
|
277
|
+
errors: 0,
|
|
278
|
+
errorRate: 0,
|
|
279
|
+
avgDuration: 0,
|
|
280
|
+
p50Duration: 0,
|
|
281
|
+
p95Duration: 0,
|
|
282
|
+
maxDuration: 0,
|
|
283
|
+
lastInvoked: 0
|
|
284
|
+
},
|
|
285
|
+
durations: []
|
|
286
|
+
}, r.set(l, p)), p.stats.calls += 1, p.stats.lastInvoked = Math.max(p.stats.lastInvoked, s.timestamp), s.status === "error") {
|
|
287
|
+
p.stats.errors += 1;
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
const d = s.endToEndDurationMs ?? s.duration, u = typeof d == "number" ? d : typeof d == "string" ? Number(d) : Number.NaN;
|
|
291
|
+
Number.isFinite(u) && u >= 0 && p.durations.push(u);
|
|
292
|
+
}
|
|
293
|
+
const a = [];
|
|
294
|
+
for (const { stats: s, durations: l } of r.values())
|
|
295
|
+
s.errorRate = s.calls > 0 ? s.errors / s.calls * 100 : 0, l.length > 0 && (l.sort((p, d) => p - d), s.avgDuration = l.reduce((p, d) => p + d, 0) / l.length, s.p50Duration = l[Math.min(Math.floor(l.length * 0.5), l.length - 1)], s.p95Duration = l[Math.min(Math.floor(l.length * 0.95), l.length - 1)], s.maxDuration = l[l.length - 1]), a.push(s);
|
|
296
|
+
return a.sort((s, l) => l.calls - s.calls), a;
|
|
297
|
+
}
|
|
231
298
|
/**
|
|
232
299
|
* Clear all events
|
|
233
300
|
*/
|
|
234
301
|
clear() {
|
|
235
|
-
this.events = [], this.subscriptions.clear(), this.
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
message: "DevTools cleared"
|
|
242
|
-
});
|
|
302
|
+
this.events = [], this.eventsSnapshot = null, this.subscriptions.clear(), this.setFocusedEventId(null), this.recentEventIds.clear(), Zt(this.storageKey), this.emit({
|
|
303
|
+
id: "clear",
|
|
304
|
+
timestamp: Date.now(),
|
|
305
|
+
type: "log",
|
|
306
|
+
level: "info",
|
|
307
|
+
message: "DevTools cleared"
|
|
243
308
|
});
|
|
244
309
|
}
|
|
245
310
|
/**
|
|
@@ -275,15 +340,13 @@ class Nt {
|
|
|
275
340
|
* Restore from a snapshot
|
|
276
341
|
*/
|
|
277
342
|
restoreSnapshot(r) {
|
|
278
|
-
const a = this.snapshots.find((
|
|
279
|
-
return a ? (this.events = [...a.events], this.subscriptions = new Map(a.subscriptions), this.setFocusedEventId(null), this.
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
message: `Restored to snapshot from ${new Date(r).toLocaleTimeString()}`
|
|
286
|
-
});
|
|
343
|
+
const a = this.snapshots.find((s) => s.timestamp === r);
|
|
344
|
+
return a ? (this.events = [...a.events], this.eventsSnapshot = null, this.subscriptions = new Map(a.subscriptions), this.setFocusedEventId(null), this.recentEventIds.clear(), this.emit({
|
|
345
|
+
id: `restore-${Date.now()}`,
|
|
346
|
+
timestamp: Date.now(),
|
|
347
|
+
type: "log",
|
|
348
|
+
level: "info",
|
|
349
|
+
message: `Restored to snapshot from ${new Date(r).toLocaleTimeString()}`
|
|
287
350
|
}), !0) : !1;
|
|
288
351
|
}
|
|
289
352
|
/**
|
|
@@ -297,13 +360,14 @@ class Nt {
|
|
|
297
360
|
*/
|
|
298
361
|
exportSession() {
|
|
299
362
|
return {
|
|
300
|
-
version:
|
|
363
|
+
version: pe,
|
|
301
364
|
exportedAt: Date.now(),
|
|
302
365
|
events: [...this.events],
|
|
303
366
|
subscriptions: Array.from(this.subscriptions.entries()),
|
|
304
367
|
metadata: {
|
|
305
|
-
|
|
306
|
-
|
|
368
|
+
// Guarded so export also works outside the page (extension panel, tests).
|
|
369
|
+
userAgent: typeof navigator < "u" ? navigator.userAgent : "unknown",
|
|
370
|
+
url: typeof window < "u" ? window.location.href : "unknown"
|
|
307
371
|
}
|
|
308
372
|
};
|
|
309
373
|
}
|
|
@@ -314,20 +378,18 @@ class Nt {
|
|
|
314
378
|
try {
|
|
315
379
|
if (!r || typeof r != "object" || !r.version || !r.events)
|
|
316
380
|
throw new Error("Invalid session format");
|
|
317
|
-
if (this.events = [], this.subscriptions.clear(), this.setFocusedEventId(null), this.events = this.sanitizeEvents(r.events).slice(-this.maxEvents), Array.isArray(r.subscriptions)) {
|
|
381
|
+
if (this.events = [], this.eventsSnapshot = null, this.subscriptions.clear(), this.setFocusedEventId(null), this.recentEventIds.clear(), this.events = this.sanitizeEvents(r.events).slice(-this.maxEvents), this.isPaused = !0, Array.isArray(r.subscriptions)) {
|
|
318
382
|
const a = r.subscriptions.filter(
|
|
319
|
-
(
|
|
383
|
+
(s) => Array.isArray(s) && s.length === 2 && typeof s[0] == "number" && Number.isFinite(s[0]) && typeof s[1] == "object" && s[1] !== null
|
|
320
384
|
);
|
|
321
385
|
this.subscriptions = new Map(a);
|
|
322
386
|
}
|
|
323
|
-
return this.
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
message: `Imported ${this.events.length} events`
|
|
330
|
-
});
|
|
387
|
+
return this.emit({
|
|
388
|
+
id: `import-${Date.now()}`,
|
|
389
|
+
timestamp: Date.now(),
|
|
390
|
+
type: "log",
|
|
391
|
+
level: "info",
|
|
392
|
+
message: `Imported ${this.events.length} events (recording paused)`
|
|
331
393
|
}), !0;
|
|
332
394
|
} catch (a) {
|
|
333
395
|
return console.error("[DevTools] Failed to import session:", a), !1;
|
|
@@ -339,7 +401,7 @@ class Nt {
|
|
|
339
401
|
saveSettings(r) {
|
|
340
402
|
this.settings = { ...this.settings, ...r }, this.persistenceEnabled || (this.settings.persistEvents = !1);
|
|
341
403
|
const a = this.normalizeMaxEvents(this.settings.maxEvents);
|
|
342
|
-
this.settings.maxEvents !== a && (this.settings.maxEvents = a), a !== this.maxEvents && (this.maxEvents = a), this.events.length > this.maxEvents && (this.events = this.events.slice(-this.maxEvents)), this.normalizeLatencySettings(), this.syncLatencyConfig(), this.persistenceEnabled &&
|
|
404
|
+
this.settings.maxEvents !== a && (this.settings.maxEvents = a), a !== this.maxEvents && (this.maxEvents = a), this.events.length > this.maxEvents && (this.events = this.events.slice(-this.maxEvents), this.eventsSnapshot = null), this.normalizeLatencySettings(), this.syncLatencyConfig(), this.persistenceEnabled && Ut(this.settingsKey, JSON.stringify(this.settings)), this.notifySettingsChanged();
|
|
343
405
|
}
|
|
344
406
|
/**
|
|
345
407
|
* Get settings
|
|
@@ -359,7 +421,7 @@ class Nt {
|
|
|
359
421
|
loadSettings() {
|
|
360
422
|
if (this.persistenceEnabled) {
|
|
361
423
|
try {
|
|
362
|
-
const r =
|
|
424
|
+
const r = Jt(this.settingsKey);
|
|
363
425
|
r && (this.settings = { ...this.settings, ...JSON.parse(r) }, this.maxEvents = this.normalizeMaxEvents(this.settings.maxEvents), this.settings.maxEvents = this.maxEvents, this.normalizeLatencySettings());
|
|
364
426
|
} catch (r) {
|
|
365
427
|
console.warn("[DevTools] Failed to load settings:", r);
|
|
@@ -393,7 +455,7 @@ class Nt {
|
|
|
393
455
|
if (!(!this.persistenceEnabled || !this.settings.persistEvents))
|
|
394
456
|
try {
|
|
395
457
|
const r = this.events.slice(-100);
|
|
396
|
-
|
|
458
|
+
Ut(this.storageKey, JSON.stringify(r));
|
|
397
459
|
} catch (r) {
|
|
398
460
|
console.warn("[DevTools] Failed to persist events:", r);
|
|
399
461
|
}
|
|
@@ -404,13 +466,13 @@ class Nt {
|
|
|
404
466
|
loadPersistedEvents() {
|
|
405
467
|
if (!(!this.persistenceEnabled || !this.settings.persistEvents))
|
|
406
468
|
try {
|
|
407
|
-
const r =
|
|
469
|
+
const r = Jt(this.storageKey);
|
|
408
470
|
if (r) {
|
|
409
471
|
const a = this.sanitizeEvents(JSON.parse(r));
|
|
410
|
-
this.events = a.slice(-this.maxEvents);
|
|
472
|
+
this.events = a.slice(-this.maxEvents), this.eventsSnapshot = null;
|
|
411
473
|
}
|
|
412
474
|
} catch (r) {
|
|
413
|
-
console.warn("[DevTools] Failed to load persisted events:", r),
|
|
475
|
+
console.warn("[DevTools] Failed to load persisted events:", r), Zt(this.storageKey);
|
|
414
476
|
}
|
|
415
477
|
}
|
|
416
478
|
/**
|
|
@@ -429,7 +491,7 @@ class Nt {
|
|
|
429
491
|
}) : r.status === "removed" && (this.subscriptions.delete(r.queryId), this.clearPendingQueryEvents(r.queryId, r.timestamp));
|
|
430
492
|
}
|
|
431
493
|
clearPendingQueryEvents(r, a) {
|
|
432
|
-
this.events = this.events.filter((
|
|
494
|
+
this.events = this.events.filter((s) => s.type !== "query" || s.status !== "pending" || s.queryId !== r || typeof a == "number" && s.timestamp > a), this.eventsSnapshot = null;
|
|
433
495
|
}
|
|
434
496
|
sanitizeEvents(r) {
|
|
435
497
|
return Array.isArray(r) ? r.filter((a) => this.isEventLike(a)) : [];
|
|
@@ -443,19 +505,19 @@ class Nt {
|
|
|
443
505
|
const a = typeof r == "number" ? r : Number(r);
|
|
444
506
|
if (!Number.isFinite(a))
|
|
445
507
|
return 1e3;
|
|
446
|
-
const
|
|
447
|
-
return Math.min(Nt.MAX_EVENTS, Math.max(Nt.MIN_EVENTS,
|
|
508
|
+
const s = Math.round(a);
|
|
509
|
+
return Math.min(Nt.MAX_EVENTS, Math.max(Nt.MIN_EVENTS, s));
|
|
448
510
|
}
|
|
449
511
|
normalizeLatencySettings() {
|
|
450
|
-
const r = (
|
|
451
|
-
const
|
|
452
|
-
if (!Number.isFinite(
|
|
512
|
+
const r = (l) => {
|
|
513
|
+
const p = typeof l == "number" ? l : Number(l);
|
|
514
|
+
if (!Number.isFinite(p))
|
|
453
515
|
return 0;
|
|
454
|
-
const
|
|
455
|
-
return Math.min(Nt.MAX_SIMULATED_LATENCY_MS, Math.max(0,
|
|
516
|
+
const d = Math.round(p);
|
|
517
|
+
return Math.min(Nt.MAX_SIMULATED_LATENCY_MS, Math.max(0, d));
|
|
456
518
|
}, a = r(this.settings.wsLatencyMs);
|
|
457
|
-
let
|
|
458
|
-
a > 0 &&
|
|
519
|
+
let s = r(this.settings.wsJitterMs);
|
|
520
|
+
a > 0 && s > a && (s = a), this.settings.wsLatencyMs = a, this.settings.wsJitterMs = s;
|
|
459
521
|
}
|
|
460
522
|
isOperationEvent(r) {
|
|
461
523
|
return r.type === "query" || r.type === "mutation" || r.type === "action";
|
|
@@ -467,21 +529,21 @@ class Nt {
|
|
|
467
529
|
return !this.isOperationEvent(r) || r.type !== a.type || r.status !== "pending" ? !1 : a.type === "query" ? r.type === "query" && r.queryId === a.queryId : r.type !== "query" && r.requestId === a.requestId;
|
|
468
530
|
}
|
|
469
531
|
reconcilePendingOperation(r) {
|
|
470
|
-
this.isTerminalOperationEvent(r) && this.events.length !== 0 && (this.events = this.events.filter((a) => !this.isMatchingPendingOperation(a, r)));
|
|
532
|
+
this.isTerminalOperationEvent(r) && this.events.length !== 0 && (this.events = this.events.filter((a) => !this.isMatchingPendingOperation(a, r)), this.eventsSnapshot = null);
|
|
471
533
|
}
|
|
472
534
|
}
|
|
473
|
-
let
|
|
474
|
-
function
|
|
475
|
-
return
|
|
535
|
+
let jt = null;
|
|
536
|
+
function ye() {
|
|
537
|
+
return jt || (jt = new Nt()), jt;
|
|
476
538
|
}
|
|
477
|
-
const
|
|
478
|
-
function
|
|
539
|
+
const ke = "#f97316", Ne = 6, Ee = "M16 6 Q 9.2 13.3 8 22 Q 16 19 24 22 Q 22.8 13.3 16 6 Z";
|
|
540
|
+
function R(e) {
|
|
479
541
|
const r = document.featurePolicy ?? document.permissionsPolicy;
|
|
480
|
-
(r ? r.allowsFeature("clipboard-write") : !0) && navigator.clipboard?.writeText ? navigator.clipboard.writeText(e).then(
|
|
481
|
-
|
|
482
|
-
}) : (
|
|
542
|
+
(r ? r.allowsFeature("clipboard-write") : !0) && navigator.clipboard?.writeText ? navigator.clipboard.writeText(e).then(Ft, () => {
|
|
543
|
+
re(e), Ft();
|
|
544
|
+
}) : (re(e), Ft());
|
|
483
545
|
}
|
|
484
|
-
function
|
|
546
|
+
function Ft() {
|
|
485
547
|
const e = document.createElement("div");
|
|
486
548
|
e.textContent = "Copied!", e.style.cssText = "position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:99999999;padding:4px 12px;border-radius:6px;font:500 11px/1.4 system-ui,sans-serif;color:#e4e4e7;background:rgba(39,39,42,0.95);border:1px solid rgba(63,63,70,0.6);box-shadow:0 4px 12px rgba(0,0,0,0.4);pointer-events:none;animation:dt-fade-in 0.15s ease-out;opacity:1;transition:opacity 0.2s;", document.body.appendChild(e), setTimeout(() => {
|
|
487
549
|
e.style.opacity = "0";
|
|
@@ -489,7 +551,7 @@ function jt() {
|
|
|
489
551
|
e.remove();
|
|
490
552
|
}, 800);
|
|
491
553
|
}
|
|
492
|
-
function
|
|
554
|
+
function re(e) {
|
|
493
555
|
const r = document.createElement("textarea");
|
|
494
556
|
r.value = e, r.style.cssText = "position:fixed;opacity:0;pointer-events:none;", document.body.appendChild(r), r.select();
|
|
495
557
|
try {
|
|
@@ -498,63 +560,63 @@ function ee(e) {
|
|
|
498
560
|
}
|
|
499
561
|
document.body.removeChild(r);
|
|
500
562
|
}
|
|
501
|
-
function
|
|
563
|
+
function qt() {
|
|
502
564
|
const e = document.getElementById("concave-devtools-host");
|
|
503
565
|
return e ? document.activeElement === e || e.contains(document.activeElement) : !1;
|
|
504
566
|
}
|
|
505
|
-
function
|
|
567
|
+
function ue() {
|
|
506
568
|
return document.getElementById("concave-devtools-host")?.shadowRoot?.activeElement ?? null;
|
|
507
569
|
}
|
|
508
|
-
function
|
|
570
|
+
function pt(e) {
|
|
509
571
|
return Array.isArray(e) && e.length === 1 ? e[0] : e;
|
|
510
572
|
}
|
|
511
|
-
const
|
|
573
|
+
const Ce = {
|
|
512
574
|
maxStringLength: 40,
|
|
513
575
|
stringTailLength: 10,
|
|
514
576
|
maxArrayItems: 2,
|
|
515
577
|
maxObjectEntries: 2,
|
|
516
578
|
maxDepth: 2
|
|
517
579
|
};
|
|
518
|
-
function
|
|
580
|
+
function Me(e, r, a) {
|
|
519
581
|
if (e.length <= r)
|
|
520
582
|
return e;
|
|
521
|
-
const
|
|
583
|
+
const s = Math.max(12, r), l = Math.max(
|
|
522
584
|
4,
|
|
523
|
-
Math.min(a, Math.floor(
|
|
524
|
-
),
|
|
525
|
-
return `${e.slice(0,
|
|
585
|
+
Math.min(a, Math.floor(s / 2))
|
|
586
|
+
), p = Math.max(6, s - l - 1);
|
|
587
|
+
return `${e.slice(0, p)}…${e.slice(-l)}`;
|
|
526
588
|
}
|
|
527
589
|
function Mt(e, r = {}, a = 0) {
|
|
528
|
-
const
|
|
529
|
-
...
|
|
590
|
+
const s = {
|
|
591
|
+
...Ce,
|
|
530
592
|
...r
|
|
531
593
|
};
|
|
532
594
|
if (e === null) return "null";
|
|
533
595
|
if (e === void 0) return "undefined";
|
|
534
596
|
if (typeof e == "string")
|
|
535
|
-
return `"${
|
|
597
|
+
return `"${Me(
|
|
536
598
|
e,
|
|
537
|
-
|
|
538
|
-
|
|
599
|
+
s.maxStringLength,
|
|
600
|
+
s.stringTailLength
|
|
539
601
|
)}"`;
|
|
540
602
|
if (typeof e == "number" || typeof e == "boolean")
|
|
541
603
|
return String(e);
|
|
542
604
|
if (Array.isArray(e)) {
|
|
543
605
|
if (e.length === 0) return "[]";
|
|
544
|
-
if (a >=
|
|
545
|
-
const
|
|
546
|
-
return `[${
|
|
606
|
+
if (a >= s.maxDepth) return "[…]";
|
|
607
|
+
const l = e.slice(0, s.maxArrayItems).map((d) => Mt(d, s, a + 1)), p = e.length > s.maxArrayItems ? ", …" : "";
|
|
608
|
+
return `[${l.join(", ")}${p}]`;
|
|
547
609
|
}
|
|
548
610
|
if (typeof e == "object") {
|
|
549
|
-
const
|
|
550
|
-
if (
|
|
551
|
-
if (a >=
|
|
552
|
-
const
|
|
553
|
-
return `{${
|
|
611
|
+
const l = Object.entries(e);
|
|
612
|
+
if (l.length === 0) return "{}";
|
|
613
|
+
if (a >= s.maxDepth) return "{…}";
|
|
614
|
+
const p = l.slice(0, s.maxObjectEntries).map(([u, w]) => `${u}: ${Mt(w, s, a + 1)}`), d = l.length > s.maxObjectEntries ? ", …" : "";
|
|
615
|
+
return `{${p.join(", ")}${d}}`;
|
|
554
616
|
}
|
|
555
617
|
return String(e);
|
|
556
618
|
}
|
|
557
|
-
function
|
|
619
|
+
function st(e, r = 180) {
|
|
558
620
|
try {
|
|
559
621
|
const a = JSON.stringify(e, null, 2);
|
|
560
622
|
return a ? a.length <= r ? a : `${a.slice(0, r - 1)}…` : "";
|
|
@@ -566,49 +628,49 @@ function Et({
|
|
|
566
628
|
data: e,
|
|
567
629
|
label: r,
|
|
568
630
|
onCopy: a,
|
|
569
|
-
maxHeight:
|
|
631
|
+
maxHeight: s = 300
|
|
570
632
|
}) {
|
|
571
|
-
const [
|
|
572
|
-
|
|
573
|
-
}, f = V(() => JSON.stringify(e, null, 2), [e]),
|
|
633
|
+
const [l, p] = z(!0), [d, u] = z("tree"), [w, v] = z(""), C = () => {
|
|
634
|
+
R(JSON.stringify(e, null, 2)), a?.();
|
|
635
|
+
}, f = V(() => JSON.stringify(e, null, 2), [e]), m = V(() => {
|
|
574
636
|
if (!w) return null;
|
|
575
|
-
const
|
|
576
|
-
function
|
|
577
|
-
if (
|
|
578
|
-
"null".includes(
|
|
637
|
+
const y = /* @__PURE__ */ new Set(), S = w.toLowerCase();
|
|
638
|
+
function I(L, j) {
|
|
639
|
+
if (L === null) {
|
|
640
|
+
"null".includes(S) && y.add(j);
|
|
579
641
|
return;
|
|
580
642
|
}
|
|
581
|
-
if (typeof
|
|
582
|
-
String(
|
|
643
|
+
if (typeof L == "string" || typeof L == "number" || typeof L == "boolean") {
|
|
644
|
+
String(L).toLowerCase().includes(S) && y.add(j);
|
|
583
645
|
return;
|
|
584
646
|
}
|
|
585
|
-
if (Array.isArray(
|
|
586
|
-
for (let
|
|
587
|
-
const q = `${
|
|
588
|
-
|
|
647
|
+
if (Array.isArray(L)) {
|
|
648
|
+
for (let E = 0; E < L.length; E++) {
|
|
649
|
+
const q = `${j}[${E}]`;
|
|
650
|
+
I(L[E], q);
|
|
589
651
|
}
|
|
590
652
|
return;
|
|
591
653
|
}
|
|
592
|
-
if (typeof
|
|
593
|
-
for (const [
|
|
594
|
-
const
|
|
595
|
-
|
|
654
|
+
if (typeof L == "object")
|
|
655
|
+
for (const [E, q] of Object.entries(L)) {
|
|
656
|
+
const H = `${j}.${E}`;
|
|
657
|
+
E.toLowerCase().includes(S) && y.add(H), I(q, H);
|
|
596
658
|
}
|
|
597
659
|
}
|
|
598
|
-
return
|
|
599
|
-
}, [e, w]),
|
|
660
|
+
return I(e, "$"), y;
|
|
661
|
+
}, [e, w]), k = m?.size ?? 0;
|
|
600
662
|
return /* @__PURE__ */ n("div", { className: "flex flex-col gap-1 text-[12px]", role: "region", "aria-label": r || "Data Inspector", children: [
|
|
601
663
|
r && /* @__PURE__ */ n("div", { className: "flex items-center justify-between", children: [
|
|
602
664
|
/* @__PURE__ */ n(
|
|
603
665
|
"button",
|
|
604
666
|
{
|
|
605
667
|
className: "flex items-center gap-1 bg-transparent border-none text-dt-text-tertiary cursor-pointer text-[11px] font-semibold uppercase tracking-wider p-0 hover:text-dt-text-secondary transition-colors",
|
|
606
|
-
onClick: () =>
|
|
607
|
-
"aria-expanded":
|
|
668
|
+
onClick: () => p(!l),
|
|
669
|
+
"aria-expanded": l,
|
|
608
670
|
"aria-controls": `inspector-content-${r}`,
|
|
609
|
-
"aria-label": `${
|
|
671
|
+
"aria-label": `${l ? "Collapse" : "Expand"} ${r}`,
|
|
610
672
|
children: [
|
|
611
|
-
/* @__PURE__ */ t("span", { className: `text-[10px] transition-transform ${
|
|
673
|
+
/* @__PURE__ */ t("span", { className: `text-[10px] transition-transform ${l ? "rotate-90" : ""}`, "aria-hidden": "true", children: "▶" }),
|
|
612
674
|
/* @__PURE__ */ t("span", { children: r })
|
|
613
675
|
]
|
|
614
676
|
}
|
|
@@ -617,22 +679,22 @@ function Et({
|
|
|
617
679
|
/* @__PURE__ */ t(
|
|
618
680
|
"button",
|
|
619
681
|
{
|
|
620
|
-
className: `px-1.5 py-0.5 text-[10px] bg-transparent border border-transparent rounded cursor-pointer transition-all ${
|
|
621
|
-
onClick: () =>
|
|
682
|
+
className: `px-1.5 py-0.5 text-[10px] bg-transparent border border-transparent rounded cursor-pointer transition-all ${d === "tree" ? "bg-white/10 text-dt-text-secondary border-dt-border-light" : "text-dt-text-muted hover:text-dt-text-tertiary"}`,
|
|
683
|
+
onClick: () => u("tree"),
|
|
622
684
|
title: "Tree view",
|
|
623
685
|
"aria-label": "Tree view",
|
|
624
|
-
"aria-pressed":
|
|
686
|
+
"aria-pressed": d === "tree",
|
|
625
687
|
children: "Tree"
|
|
626
688
|
}
|
|
627
689
|
),
|
|
628
690
|
/* @__PURE__ */ t(
|
|
629
691
|
"button",
|
|
630
692
|
{
|
|
631
|
-
className: `px-1.5 py-0.5 text-[10px] bg-transparent border border-transparent rounded cursor-pointer transition-all ${
|
|
632
|
-
onClick: () =>
|
|
693
|
+
className: `px-1.5 py-0.5 text-[10px] bg-transparent border border-transparent rounded cursor-pointer transition-all ${d === "raw" ? "bg-white/10 text-dt-text-secondary border-dt-border-light" : "text-dt-text-muted hover:text-dt-text-tertiary"}`,
|
|
694
|
+
onClick: () => u("raw"),
|
|
633
695
|
title: "Raw JSON",
|
|
634
696
|
"aria-label": "Raw JSON view",
|
|
635
|
-
"aria-pressed":
|
|
697
|
+
"aria-pressed": d === "raw",
|
|
636
698
|
children: "Raw"
|
|
637
699
|
}
|
|
638
700
|
),
|
|
@@ -640,7 +702,7 @@ function Et({
|
|
|
640
702
|
"button",
|
|
641
703
|
{
|
|
642
704
|
className: "p-0.5 bg-transparent border-none text-dt-text-muted cursor-pointer rounded hover:text-dt-text-tertiary transition-colors text-[12px]",
|
|
643
|
-
onClick:
|
|
705
|
+
onClick: C,
|
|
644
706
|
title: "Copy JSON",
|
|
645
707
|
"aria-label": "Copy JSON to clipboard",
|
|
646
708
|
children: /* @__PURE__ */ n("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "currentColor", children: [
|
|
@@ -651,7 +713,7 @@ function Et({
|
|
|
651
713
|
)
|
|
652
714
|
] })
|
|
653
715
|
] }),
|
|
654
|
-
|
|
716
|
+
l && /* @__PURE__ */ n("div", { className: "flex flex-col", children: [
|
|
655
717
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-1.5 px-2 py-1 bg-zinc-950/50 rounded-t border border-b-0 border-dt-border-light", children: [
|
|
656
718
|
/* @__PURE__ */ t(
|
|
657
719
|
"input",
|
|
@@ -660,14 +722,14 @@ function Et({
|
|
|
660
722
|
className: "flex-1 bg-transparent border-none text-[10px] font-mono text-dt-text-secondary placeholder-dt-text-muted/40 outline-none",
|
|
661
723
|
placeholder: "Filter...",
|
|
662
724
|
value: w,
|
|
663
|
-
onChange: (
|
|
725
|
+
onChange: (y) => v(y.target.value)
|
|
664
726
|
}
|
|
665
727
|
),
|
|
666
|
-
w && /* @__PURE__ */ n(
|
|
728
|
+
w && /* @__PURE__ */ n(nt, { children: [
|
|
667
729
|
/* @__PURE__ */ n("span", { className: "text-[9px] text-dt-text-muted/60 font-mono", children: [
|
|
668
|
-
|
|
730
|
+
k,
|
|
669
731
|
" match",
|
|
670
|
-
|
|
732
|
+
k !== 1 ? "es" : ""
|
|
671
733
|
] }),
|
|
672
734
|
/* @__PURE__ */ t(
|
|
673
735
|
"button",
|
|
@@ -685,33 +747,33 @@ function Et({
|
|
|
685
747
|
{
|
|
686
748
|
className: "overflow-auto bg-zinc-950/50 rounded-b border border-dt-border-light p-2 font-mono text-[11px]",
|
|
687
749
|
id: r ? `inspector-content-${r}` : void 0,
|
|
688
|
-
style: { maxHeight:
|
|
750
|
+
style: { maxHeight: s },
|
|
689
751
|
role: "region",
|
|
690
752
|
"aria-label": `${r || "Data"} content`,
|
|
691
|
-
children:
|
|
753
|
+
children: d === "tree" ? /* @__PURE__ */ t(Kt, { data: e, matchingPaths: m, searchTerm: w }) : /* @__PURE__ */ t("pre", { className: "text-dt-text-muted whitespace-pre-wrap break-all m-0", "aria-readonly": "true", children: w ? /* @__PURE__ */ t(Se, { text: f, term: w }) : f })
|
|
692
754
|
}
|
|
693
755
|
)
|
|
694
756
|
] })
|
|
695
757
|
] });
|
|
696
758
|
}
|
|
697
|
-
function
|
|
698
|
-
if (!r) return /* @__PURE__ */ t(
|
|
699
|
-
const a = [],
|
|
700
|
-
let
|
|
701
|
-
for (;
|
|
702
|
-
|
|
703
|
-
/* @__PURE__ */ t("mark", { className: "bg-yellow-400/30 text-yellow-200 rounded-sm px-px", children: e.slice(
|
|
704
|
-
),
|
|
705
|
-
return
|
|
759
|
+
function Se({ text: e, term: r }) {
|
|
760
|
+
if (!r) return /* @__PURE__ */ t(nt, { children: e });
|
|
761
|
+
const a = [], s = e.toLowerCase(), l = r.toLowerCase();
|
|
762
|
+
let p = 0, d = s.indexOf(l, p), u = 0;
|
|
763
|
+
for (; d !== -1; )
|
|
764
|
+
d > p && a.push(e.slice(p, d)), a.push(
|
|
765
|
+
/* @__PURE__ */ t("mark", { className: "bg-yellow-400/30 text-yellow-200 rounded-sm px-px", children: e.slice(d, d + r.length) }, u++)
|
|
766
|
+
), p = d + r.length, d = s.indexOf(l, p);
|
|
767
|
+
return p < e.length && a.push(e.slice(p)), /* @__PURE__ */ t(nt, { children: a });
|
|
706
768
|
}
|
|
707
|
-
function
|
|
708
|
-
const
|
|
769
|
+
function Kt({ data: e, depth: r = 0, path: a = "$", matchingPaths: s, searchTerm: l }) {
|
|
770
|
+
const p = s ? Rt(a, s) : !1, [d, u] = z(r < 2), w = s?.has(a) ?? !1, v = d || !!s && p;
|
|
709
771
|
if (e === null)
|
|
710
772
|
return /* @__PURE__ */ t("span", { className: `italic ${w ? "bg-yellow-400/25 rounded-sm px-0.5 text-yellow-200" : "text-dt-text-muted"}`, children: "null" });
|
|
711
773
|
if (typeof e == "string")
|
|
712
774
|
return /* @__PURE__ */ n("span", { className: w ? "bg-yellow-400/25 rounded-sm px-0.5 text-yellow-200" : "text-dt-success", children: [
|
|
713
775
|
'"',
|
|
714
|
-
|
|
776
|
+
l ? /* @__PURE__ */ t(oe, { text: e, term: l }) : e,
|
|
715
777
|
'"'
|
|
716
778
|
] });
|
|
717
779
|
if (typeof e == "number")
|
|
@@ -725,7 +787,7 @@ function Ut({ data: e, depth: r = 0, path: a = "$", matchingPaths: i, searchTerm
|
|
|
725
787
|
{
|
|
726
788
|
type: "button",
|
|
727
789
|
className: "bg-transparent border-none cursor-pointer p-0 text-inherit font-inherit inline-flex items-center gap-0.5",
|
|
728
|
-
onClick: () =>
|
|
790
|
+
onClick: () => u(!v),
|
|
729
791
|
"aria-expanded": v,
|
|
730
792
|
"aria-label": `${v ? "Collapse" : "Expand"} array with ${e.length} items`,
|
|
731
793
|
children: [
|
|
@@ -739,54 +801,54 @@ function Ut({ data: e, depth: r = 0, path: a = "$", matchingPaths: i, searchTerm
|
|
|
739
801
|
]
|
|
740
802
|
}
|
|
741
803
|
),
|
|
742
|
-
v && /* @__PURE__ */ n(
|
|
743
|
-
/* @__PURE__ */ t("div", { className: "pl-4 border-l border-dt-border-light/30 ml-1", children: e.map((
|
|
744
|
-
const
|
|
745
|
-
return
|
|
804
|
+
v && /* @__PURE__ */ n(nt, { children: [
|
|
805
|
+
/* @__PURE__ */ t("div", { className: "pl-4 border-l border-dt-border-light/30 ml-1", children: e.map((C, f) => {
|
|
806
|
+
const m = `${a}[${f}]`;
|
|
807
|
+
return s && !Rt(m, s) && !s.has(m) ? null : /* @__PURE__ */ n("div", { className: "py-px", children: [
|
|
746
808
|
/* @__PURE__ */ n("span", { className: "text-dt-text-tertiary", children: [
|
|
747
809
|
f,
|
|
748
810
|
":"
|
|
749
811
|
] }),
|
|
750
812
|
" ",
|
|
751
|
-
/* @__PURE__ */ t(
|
|
813
|
+
/* @__PURE__ */ t(Kt, { data: C, depth: r + 1, path: m, matchingPaths: s, searchTerm: l })
|
|
752
814
|
] }, f);
|
|
753
815
|
}) }),
|
|
754
816
|
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: "]" })
|
|
755
817
|
] })
|
|
756
818
|
] });
|
|
757
819
|
if (typeof e == "object") {
|
|
758
|
-
const
|
|
759
|
-
return
|
|
820
|
+
const C = Object.entries(e);
|
|
821
|
+
return C.length === 0 ? /* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: "{}" }) : /* @__PURE__ */ n("div", { className: "inline", children: [
|
|
760
822
|
/* @__PURE__ */ n(
|
|
761
823
|
"button",
|
|
762
824
|
{
|
|
763
825
|
type: "button",
|
|
764
826
|
className: "bg-transparent border-none cursor-pointer p-0 text-inherit font-inherit inline-flex items-center gap-0.5",
|
|
765
|
-
onClick: () =>
|
|
827
|
+
onClick: () => u(!v),
|
|
766
828
|
"aria-expanded": v,
|
|
767
|
-
"aria-label": `${v ? "Collapse" : "Expand"} object with ${
|
|
829
|
+
"aria-label": `${v ? "Collapse" : "Expand"} object with ${C.length} keys`,
|
|
768
830
|
children: [
|
|
769
831
|
/* @__PURE__ */ t("span", { className: `text-[10px] transition-transform inline-block ${v ? "rotate-90" : ""}`, "aria-hidden": "true", children: "▶" }),
|
|
770
832
|
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: "{" }),
|
|
771
833
|
!v && /* @__PURE__ */ n("span", { className: "text-dt-text-muted/60 italic text-[10px]", children: [
|
|
772
|
-
|
|
834
|
+
C.length,
|
|
773
835
|
" keys..."
|
|
774
836
|
] }),
|
|
775
837
|
!v && /* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: "}" })
|
|
776
838
|
]
|
|
777
839
|
}
|
|
778
840
|
),
|
|
779
|
-
v && /* @__PURE__ */ n(
|
|
780
|
-
/* @__PURE__ */ t("div", { className: "pl-4 border-l border-dt-border-light/30 ml-1", children:
|
|
781
|
-
const
|
|
782
|
-
return
|
|
783
|
-
/* @__PURE__ */ n("span", { className:
|
|
841
|
+
v && /* @__PURE__ */ n(nt, { children: [
|
|
842
|
+
/* @__PURE__ */ t("div", { className: "pl-4 border-l border-dt-border-light/30 ml-1", children: C.map(([f, m]) => {
|
|
843
|
+
const k = `${a}.${f}`, y = s?.has(k) && l && f.toLowerCase().includes(l.toLowerCase());
|
|
844
|
+
return s && !Rt(k, s) && !s.has(k) ? null : /* @__PURE__ */ n("div", { className: "py-px", children: [
|
|
845
|
+
/* @__PURE__ */ n("span", { className: y ? "bg-yellow-400/25 rounded-sm px-0.5 text-yellow-200" : "text-dt-text-tertiary", children: [
|
|
784
846
|
'"',
|
|
785
|
-
|
|
847
|
+
l ? /* @__PURE__ */ t(oe, { text: f, term: l }) : f,
|
|
786
848
|
'":'
|
|
787
849
|
] }),
|
|
788
850
|
" ",
|
|
789
|
-
/* @__PURE__ */ t(
|
|
851
|
+
/* @__PURE__ */ t(Kt, { data: m, depth: r + 1, path: k, matchingPaths: s, searchTerm: l })
|
|
790
852
|
] }, f);
|
|
791
853
|
}) }),
|
|
792
854
|
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: "}" })
|
|
@@ -795,29 +857,29 @@ function Ut({ data: e, depth: r = 0, path: a = "$", matchingPaths: i, searchTerm
|
|
|
795
857
|
}
|
|
796
858
|
return /* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: String(e) });
|
|
797
859
|
}
|
|
798
|
-
function
|
|
860
|
+
function Rt(e, r) {
|
|
799
861
|
for (const a of r)
|
|
800
862
|
if (a.startsWith(e) && a !== e) return !0;
|
|
801
863
|
return !1;
|
|
802
864
|
}
|
|
803
|
-
function
|
|
804
|
-
if (!r) return /* @__PURE__ */ t(
|
|
805
|
-
const a = e.toLowerCase(),
|
|
806
|
-
let
|
|
807
|
-
for (;
|
|
808
|
-
|
|
809
|
-
/* @__PURE__ */ t("mark", { className: "bg-yellow-400/30 text-yellow-200 rounded-sm px-px", children: e.slice(
|
|
810
|
-
),
|
|
811
|
-
return
|
|
865
|
+
function oe({ text: e, term: r }) {
|
|
866
|
+
if (!r) return /* @__PURE__ */ t(nt, { children: e });
|
|
867
|
+
const a = e.toLowerCase(), s = r.toLowerCase(), l = [];
|
|
868
|
+
let p = 0, d = a.indexOf(s, p), u = 0;
|
|
869
|
+
for (; d !== -1; )
|
|
870
|
+
d > p && l.push(e.slice(p, d)), l.push(
|
|
871
|
+
/* @__PURE__ */ t("mark", { className: "bg-yellow-400/30 text-yellow-200 rounded-sm px-px", children: e.slice(d, d + r.length) }, u++)
|
|
872
|
+
), p = d + r.length, d = a.indexOf(s, p);
|
|
873
|
+
return p < e.length && l.push(e.slice(p)), /* @__PURE__ */ t(nt, { children: l });
|
|
812
874
|
}
|
|
813
|
-
const
|
|
814
|
-
function
|
|
875
|
+
const ne = "minmax(0,1fr) 56px 56px 62px 34px minmax(150px,1fr)", $e = 140, De = 1e-4;
|
|
876
|
+
function dt(e) {
|
|
815
877
|
return Number.isFinite(e) ? `${Math.max(0, e).toFixed(3).replace(/\.0+$/, "").replace(/(\.\d*?)0+$/, "$1")}ms` : "0ms";
|
|
816
878
|
}
|
|
817
879
|
function gt(e) {
|
|
818
|
-
return `+${
|
|
880
|
+
return `+${dt(Math.max(0, e))}`;
|
|
819
881
|
}
|
|
820
|
-
function
|
|
882
|
+
function he(e) {
|
|
821
883
|
return Number.isFinite(e) ? Math.max(0, Math.min(100, e)) : 0;
|
|
822
884
|
}
|
|
823
885
|
function It(e, r = 40) {
|
|
@@ -825,7 +887,7 @@ function It(e, r = 40) {
|
|
|
825
887
|
const a = Math.max(6, Math.floor((r - 3) / 2));
|
|
826
888
|
return `${e.slice(0, a)}...${e.slice(-a)}`;
|
|
827
889
|
}
|
|
828
|
-
function
|
|
890
|
+
function ae(e) {
|
|
829
891
|
if (typeof e == "string") return e.length > 60 ? `${e.slice(0, 57)}...` : e;
|
|
830
892
|
if (typeof e == "number" || typeof e == "boolean") return String(e);
|
|
831
893
|
if (e === null) return "null";
|
|
@@ -836,164 +898,164 @@ function ne(e) {
|
|
|
836
898
|
return String(e);
|
|
837
899
|
}
|
|
838
900
|
}
|
|
839
|
-
function
|
|
901
|
+
function Ie(e) {
|
|
840
902
|
const r = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map();
|
|
841
|
-
for (const
|
|
842
|
-
const w =
|
|
843
|
-
a.set(
|
|
903
|
+
for (const u of e.spans) {
|
|
904
|
+
const w = u.parentId ?? null;
|
|
905
|
+
a.set(u.id, w);
|
|
844
906
|
const v = r.get(w) ?? [];
|
|
845
|
-
v.push(
|
|
907
|
+
v.push(u), r.set(w, v);
|
|
846
908
|
}
|
|
847
|
-
for (const
|
|
848
|
-
|
|
849
|
-
const
|
|
850
|
-
if (
|
|
851
|
-
|
|
852
|
-
const v = r.get(
|
|
853
|
-
|
|
854
|
-
span:
|
|
909
|
+
for (const u of r.values())
|
|
910
|
+
u.sort((w, v) => w.startMs - v.startMs || w.name.localeCompare(v.name));
|
|
911
|
+
const s = [], l = /* @__PURE__ */ new Set(), p = (u, w) => {
|
|
912
|
+
if (l.has(u.id)) return;
|
|
913
|
+
l.add(u.id);
|
|
914
|
+
const v = r.get(u.id) ?? [], C = v.reduce((f, m) => !Number.isFinite(m.durationMs) || m.durationMs <= 0 ? f : f + m.durationMs, 0);
|
|
915
|
+
s.push({
|
|
916
|
+
span: u,
|
|
855
917
|
depth: w,
|
|
856
918
|
hasChildren: v.length > 0,
|
|
857
|
-
directChildDurationMs:
|
|
919
|
+
directChildDurationMs: C
|
|
858
920
|
});
|
|
859
|
-
for (const f of v)
|
|
860
|
-
},
|
|
861
|
-
|
|
862
|
-
for (const
|
|
863
|
-
for (const
|
|
864
|
-
return { rows:
|
|
921
|
+
for (const f of v) p(f, w + 1);
|
|
922
|
+
}, d = e.spans.find((u) => u.id === e.rootSpanId);
|
|
923
|
+
d && p(d, 0);
|
|
924
|
+
for (const u of r.get(null) ?? []) p(u, 0);
|
|
925
|
+
for (const u of e.spans) p(u, 0);
|
|
926
|
+
return { rows: s, parentById: a, childrenByParent: r };
|
|
865
927
|
}
|
|
866
|
-
function
|
|
867
|
-
const r = e.attributes ? Object.keys(e.attributes).join(" ") : "", a = e.events?.map((
|
|
928
|
+
function Le(e) {
|
|
929
|
+
const r = e.attributes ? Object.keys(e.attributes).join(" ") : "", a = e.events?.map((s) => s.name).join(" ") ?? "";
|
|
868
930
|
return `${e.name} ${e.kind} ${e.status} ${r} ${a}`.toLowerCase();
|
|
869
931
|
}
|
|
870
|
-
function
|
|
871
|
-
const
|
|
872
|
-
return { leftPct:
|
|
932
|
+
function ie(e, r, a, s) {
|
|
933
|
+
const l = Number.isFinite(e) ? e : a, p = Number.isFinite(r) && r > 0 ? r : 0, d = (l - a) / s * 100, u = Math.min(99.8, he(d)), w = p / s * 100, v = Math.max(0.3, 100 - u), C = Math.max(0.3, Math.min(w || 0.3, v));
|
|
934
|
+
return { leftPct: u, widthPct: C };
|
|
873
935
|
}
|
|
874
|
-
function
|
|
936
|
+
function Ht(e, r) {
|
|
875
937
|
const a = e.replace("#", "");
|
|
876
938
|
if (a.length !== 6) return `rgba(59,130,246,${r})`;
|
|
877
|
-
const
|
|
878
|
-
return `rgba(${
|
|
939
|
+
const s = parseInt(a.slice(0, 2), 16), l = parseInt(a.slice(2, 4), 16), p = parseInt(a.slice(4, 6), 16);
|
|
940
|
+
return `rgba(${s}, ${l}, ${p}, ${r})`;
|
|
879
941
|
}
|
|
880
942
|
function xe(e) {
|
|
881
943
|
if (e.status === "error") return "#ef4444";
|
|
882
944
|
const r = e.kind.toLowerCase();
|
|
883
945
|
return r.includes("query") || r.includes("db") || r.includes("scan") || r.includes("read") ? "#60a5fa" : r.includes("mutation") || r.includes("write") || r.includes("commit") ? "#a78bfa" : r.includes("action") || r.includes("http") || r.includes("fetch") || r.includes("network") ? "#34d399" : "#3b82f6";
|
|
884
946
|
}
|
|
885
|
-
function
|
|
947
|
+
function Ae(e, r) {
|
|
886
948
|
const a = xe(e);
|
|
887
949
|
return {
|
|
888
|
-
backgroundColor:
|
|
889
|
-
borderColor:
|
|
950
|
+
backgroundColor: Ht(a, r ? 1 : 0.86),
|
|
951
|
+
borderColor: Ht(a, r ? 1 : 0.65),
|
|
890
952
|
color: "#fff",
|
|
891
953
|
boxShadow: r ? "0 0 0 1px rgba(255,255,255,0.92), 0 0 0 2px rgba(0,0,0,0.45)" : "0 0 0 1px rgba(0,0,0,0.18)",
|
|
892
954
|
zIndex: r ? 6 : 2,
|
|
893
955
|
filter: r ? "brightness(1.06)" : "none"
|
|
894
956
|
};
|
|
895
957
|
}
|
|
896
|
-
function
|
|
958
|
+
function Te(e) {
|
|
897
959
|
const r = xe(e);
|
|
898
960
|
return {
|
|
899
|
-
backgroundColor:
|
|
961
|
+
backgroundColor: Ht(r, 0.95)
|
|
900
962
|
};
|
|
901
963
|
}
|
|
902
|
-
function
|
|
964
|
+
function _e(e) {
|
|
903
965
|
const r = /* @__PURE__ */ new Map();
|
|
904
|
-
for (const
|
|
905
|
-
const
|
|
906
|
-
|
|
966
|
+
for (const s of e) {
|
|
967
|
+
const l = r.get(s.depth) ?? [];
|
|
968
|
+
l.push(s), r.set(s.depth, l);
|
|
907
969
|
}
|
|
908
970
|
const a = [];
|
|
909
|
-
for (const [
|
|
910
|
-
const
|
|
971
|
+
for (const [s] of Array.from(r.entries()).sort((l, p) => l[0] - p[0])) {
|
|
972
|
+
const p = [...r.get(s) ?? []].sort(
|
|
911
973
|
(w, v) => w.span.startMs - v.span.startMs || v.span.durationMs - w.span.durationMs || w.span.name.localeCompare(v.span.name)
|
|
912
|
-
),
|
|
913
|
-
for (const w of
|
|
914
|
-
const v = Number.isFinite(w.span.startMs) ? w.span.startMs : 0,
|
|
915
|
-
let
|
|
916
|
-
for (let
|
|
917
|
-
if (v >=
|
|
918
|
-
|
|
974
|
+
), d = [], u = [];
|
|
975
|
+
for (const w of p) {
|
|
976
|
+
const v = Number.isFinite(w.span.startMs) ? w.span.startMs : 0, C = v + Math.max(0, Number.isFinite(w.span.durationMs) ? w.span.durationMs : 0), f = Number.isFinite(w.span.endMs) ? Math.max(v, w.span.endMs) : C;
|
|
977
|
+
let m = -1;
|
|
978
|
+
for (let k = 0; k < d.length; k++)
|
|
979
|
+
if (v >= d[k] - De) {
|
|
980
|
+
m = k;
|
|
919
981
|
break;
|
|
920
982
|
}
|
|
921
|
-
|
|
983
|
+
m === -1 ? (m = d.length, d.push(f), u.push([])) : d[m] = Math.max(d[m], f), u[m].push(w);
|
|
922
984
|
}
|
|
923
|
-
a.push(...
|
|
985
|
+
a.push(...u);
|
|
924
986
|
}
|
|
925
987
|
return a;
|
|
926
988
|
}
|
|
927
|
-
function
|
|
928
|
-
const [a,
|
|
929
|
-
const
|
|
930
|
-
return Math.max(e.summary.totalDurationMs,
|
|
931
|
-
}, [
|
|
932
|
-
() => e.spans.reduce((
|
|
989
|
+
function ze({ trace: e, maxHeight: r = 680 }) {
|
|
990
|
+
const [a, s] = z(!0), [l, p] = z("waterfall"), [d, u] = z(e.rootSpanId || e.spans[0]?.id || null), [w, v] = z(""), [C, f] = z(!1), [m, k] = z(/* @__PURE__ */ new Set()), [y, S] = z(null), I = V(() => Ie(e), [e]), L = V(() => Math.min(...e.spans.map((c) => c.startMs), 0), [e.spans]), j = V(() => Math.max(...e.spans.map((c) => c.endMs), 0), [e.spans]), E = V(() => {
|
|
991
|
+
const c = Math.max(0, j - L);
|
|
992
|
+
return Math.max(e.summary.totalDurationMs, c, 1);
|
|
993
|
+
}, [j, L, e.summary.totalDurationMs]), q = V(() => Math.max(220, r - 180), [r]), H = V(
|
|
994
|
+
() => e.spans.reduce((c, h) => c + (h.status === "error" ? 1 : 0), 0),
|
|
933
995
|
[e.spans]
|
|
934
|
-
),
|
|
935
|
-
if (!
|
|
936
|
-
const
|
|
937
|
-
let T =
|
|
938
|
-
for (; T && !
|
|
939
|
-
|
|
996
|
+
), b = w.trim().toLowerCase(), x = b.length > 0 || C, i = V(() => {
|
|
997
|
+
if (!x) return null;
|
|
998
|
+
const c = /* @__PURE__ */ new Set(), h = (g) => {
|
|
999
|
+
let T = I.parentById.get(g) ?? null;
|
|
1000
|
+
for (; T && !c.has(T); )
|
|
1001
|
+
c.add(T), T = I.parentById.get(T) ?? null;
|
|
940
1002
|
}, _ = (g) => {
|
|
941
1003
|
const T = [g];
|
|
942
1004
|
for (; T.length > 0; ) {
|
|
943
1005
|
const A = T.pop();
|
|
944
|
-
if (
|
|
945
|
-
|
|
946
|
-
const O =
|
|
947
|
-
for (const
|
|
1006
|
+
if (c.has(A)) continue;
|
|
1007
|
+
c.add(A);
|
|
1008
|
+
const O = I.childrenByParent.get(A) ?? [];
|
|
1009
|
+
for (const F of O) T.push(F.id);
|
|
948
1010
|
}
|
|
949
1011
|
};
|
|
950
1012
|
for (const g of e.spans)
|
|
951
|
-
|
|
952
|
-
return
|
|
953
|
-
}, [
|
|
954
|
-
const
|
|
955
|
-
for (const g of
|
|
1013
|
+
C && g.status !== "error" || b.length > 0 && !Le(g).includes(b) || (h(g.id), _(g.id));
|
|
1014
|
+
return c;
|
|
1015
|
+
}, [x, I.childrenByParent, I.parentById, b, C, e.spans]), N = V(() => {
|
|
1016
|
+
const c = [], h = !x, _ = [];
|
|
1017
|
+
for (const g of I.rows) {
|
|
956
1018
|
for (; _.length > 0 && g.depth <= _[_.length - 1]; )
|
|
957
1019
|
_.pop();
|
|
958
|
-
const T = h && _.length > 0, A = !
|
|
959
|
-
O &&
|
|
1020
|
+
const T = h && _.length > 0, A = !i || i.has(g.span.id), O = !T && A;
|
|
1021
|
+
O && c.push(g), h && O && g.hasChildren && m.has(g.span.id) && _.push(g.depth);
|
|
960
1022
|
}
|
|
961
|
-
return
|
|
962
|
-
}, [
|
|
963
|
-
const
|
|
964
|
-
for (const h of e.spans)
|
|
965
|
-
return
|
|
966
|
-
}, [e.spans]),
|
|
967
|
-
const
|
|
968
|
-
for (const h of
|
|
969
|
-
return
|
|
970
|
-
}, [
|
|
971
|
-
|
|
972
|
-
const
|
|
973
|
-
(!
|
|
974
|
-
}, [
|
|
975
|
-
|
|
976
|
-
}, [
|
|
977
|
-
|
|
978
|
-
}, [
|
|
979
|
-
const
|
|
980
|
-
() =>
|
|
981
|
-
[
|
|
982
|
-
)?.span ?? null,
|
|
983
|
-
const
|
|
984
|
-
return
|
|
985
|
-
})() : null,
|
|
986
|
-
() =>
|
|
987
|
-
[
|
|
988
|
-
), wt = V(() =>
|
|
989
|
-
|
|
1023
|
+
return c;
|
|
1024
|
+
}, [I.rows, x, i, m]), $ = V(() => _e(N), [N]), D = V(() => {
|
|
1025
|
+
const c = /* @__PURE__ */ new Map();
|
|
1026
|
+
for (const h of e.spans) c.set(h.id, h);
|
|
1027
|
+
return c;
|
|
1028
|
+
}, [e.spans]), Q = V(() => {
|
|
1029
|
+
const c = /* @__PURE__ */ new Map();
|
|
1030
|
+
for (const h of I.rows) c.set(h.span.id, h);
|
|
1031
|
+
return c;
|
|
1032
|
+
}, [I.rows]);
|
|
1033
|
+
K(() => {
|
|
1034
|
+
const c = e.rootSpanId || e.spans[0]?.id || null;
|
|
1035
|
+
(!d || !e.spans.some((h) => h.id === d)) && u(c);
|
|
1036
|
+
}, [d, e]), K(() => {
|
|
1037
|
+
N.length !== 0 && (!d || !N.some((c) => c.span.id === d)) && u(N[0].span.id);
|
|
1038
|
+
}, [d, N]), K(() => {
|
|
1039
|
+
S(null);
|
|
1040
|
+
}, []);
|
|
1041
|
+
const Z = V(
|
|
1042
|
+
() => I.rows.find((c) => c.span.id === d) ?? null,
|
|
1043
|
+
[I.rows, d]
|
|
1044
|
+
)?.span ?? null, M = (y ? D.get(y) ?? null : null) ?? Z, J = M ? Q.get(M.id) ?? null : null, tt = J ? Math.max(0, J.span.durationMs - J.directChildDurationMs) : 0, ot = M ? (() => {
|
|
1045
|
+
const c = I.parentById.get(M.id) ?? null;
|
|
1046
|
+
return c ? D.get(c) ?? null : null;
|
|
1047
|
+
})() : null, it = M ? M.startMs - L : 0, mt = V(
|
|
1048
|
+
() => M?.attributes ? Object.entries(M.attributes).slice(0, 20) : [],
|
|
1049
|
+
[M]
|
|
1050
|
+
), wt = V(() => M?.events?.slice(0, 40) ?? [], [M]), vt = (c) => {
|
|
1051
|
+
k((h) => {
|
|
990
1052
|
const _ = new Set(h);
|
|
991
|
-
return _.has(
|
|
1053
|
+
return _.has(c) ? _.delete(c) : _.add(c), _;
|
|
992
1054
|
});
|
|
993
1055
|
}, bt = () => {
|
|
994
|
-
|
|
1056
|
+
k(new Set(I.rows.filter((c) => c.hasChildren).map((c) => c.span.id)));
|
|
995
1057
|
}, St = () => {
|
|
996
|
-
|
|
1058
|
+
k(/* @__PURE__ */ new Set());
|
|
997
1059
|
}, o = () => {
|
|
998
1060
|
v(""), f(!1);
|
|
999
1061
|
};
|
|
@@ -1003,7 +1065,7 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1003
1065
|
"button",
|
|
1004
1066
|
{
|
|
1005
1067
|
className: "flex items-center gap-1 bg-transparent border-none text-dt-text-tertiary cursor-pointer text-[11px] font-semibold uppercase tracking-wider p-0 hover:text-dt-text-secondary",
|
|
1006
|
-
onClick: () =>
|
|
1068
|
+
onClick: () => s((c) => !c),
|
|
1007
1069
|
"aria-expanded": a,
|
|
1008
1070
|
"aria-controls": "trace-viewer-content",
|
|
1009
1071
|
children: [
|
|
@@ -1019,16 +1081,16 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1019
1081
|
}
|
|
1020
1082
|
),
|
|
1021
1083
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-1.5 shrink-0", children: [
|
|
1022
|
-
/* @__PURE__ */ t("span", { className: "hidden sm:inline-flex px-1.5 py-0.5 rounded bg-dt-bg-tertiary text-[10px] font-mono text-dt-text-muted", children:
|
|
1084
|
+
/* @__PURE__ */ t("span", { className: "hidden sm:inline-flex px-1.5 py-0.5 rounded bg-dt-bg-tertiary text-[10px] font-mono text-dt-text-muted", children: dt(e.summary.totalDurationMs) }),
|
|
1023
1085
|
/* @__PURE__ */ n("span", { className: "hidden sm:inline-flex px-1.5 py-0.5 rounded bg-dt-bg-tertiary text-[10px] font-mono text-dt-text-muted", children: [
|
|
1024
|
-
|
|
1086
|
+
H,
|
|
1025
1087
|
" err"
|
|
1026
1088
|
] }),
|
|
1027
1089
|
/* @__PURE__ */ t(
|
|
1028
1090
|
"button",
|
|
1029
1091
|
{
|
|
1030
1092
|
className: "p-0.5 bg-transparent border-none text-dt-text-muted cursor-pointer rounded hover:text-dt-text-tertiary text-[12px]",
|
|
1031
|
-
onClick: () =>
|
|
1093
|
+
onClick: () => R(JSON.stringify(e, null, 2)),
|
|
1032
1094
|
title: "Copy trace JSON",
|
|
1033
1095
|
"aria-label": "Copy trace JSON",
|
|
1034
1096
|
children: /* @__PURE__ */ n("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "currentColor", children: [
|
|
@@ -1052,8 +1114,8 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1052
1114
|
"button",
|
|
1053
1115
|
{
|
|
1054
1116
|
type: "button",
|
|
1055
|
-
onClick: () =>
|
|
1056
|
-
className: `h-6 px-2 text-[10px] font-semibold uppercase tracking-wide ${
|
|
1117
|
+
onClick: () => p("waterfall"),
|
|
1118
|
+
className: `h-6 px-2 text-[10px] font-semibold uppercase tracking-wide ${l === "waterfall" ? "bg-dt-info/15 text-dt-info" : "bg-transparent text-dt-text-muted hover:text-dt-text-secondary"}`,
|
|
1057
1119
|
children: "Waterfall"
|
|
1058
1120
|
}
|
|
1059
1121
|
),
|
|
@@ -1061,8 +1123,8 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1061
1123
|
"button",
|
|
1062
1124
|
{
|
|
1063
1125
|
type: "button",
|
|
1064
|
-
onClick: () =>
|
|
1065
|
-
className: `h-6 px-2 border-l border-dt-border-light text-[10px] font-semibold uppercase tracking-wide ${
|
|
1126
|
+
onClick: () => p("flamegraph"),
|
|
1127
|
+
className: `h-6 px-2 border-l border-dt-border-light text-[10px] font-semibold uppercase tracking-wide ${l === "flamegraph" ? "bg-dt-info/15 text-dt-info" : "bg-transparent text-dt-text-muted hover:text-dt-text-secondary"}`,
|
|
1066
1128
|
children: "Flamegraph"
|
|
1067
1129
|
}
|
|
1068
1130
|
)
|
|
@@ -1072,7 +1134,7 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1072
1134
|
{
|
|
1073
1135
|
type: "text",
|
|
1074
1136
|
value: w,
|
|
1075
|
-
onChange: (
|
|
1137
|
+
onChange: (c) => v(c.target.value),
|
|
1076
1138
|
placeholder: "Filter spans",
|
|
1077
1139
|
className: "h-6 flex-1 min-w-[120px] bg-dt-bg-tertiary border border-dt-border-light rounded px-2 text-[10px] font-mono text-dt-text-secondary placeholder:text-dt-text-muted/50 outline-none focus:border-dt-info/40"
|
|
1078
1140
|
}
|
|
@@ -1081,12 +1143,12 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1081
1143
|
"button",
|
|
1082
1144
|
{
|
|
1083
1145
|
type: "button",
|
|
1084
|
-
onClick: () => f((
|
|
1085
|
-
className: `h-6 px-2 rounded text-[10px] font-semibold uppercase tracking-wide border ${
|
|
1146
|
+
onClick: () => f((c) => !c),
|
|
1147
|
+
className: `h-6 px-2 rounded text-[10px] font-semibold uppercase tracking-wide border ${C ? "bg-dt-error/15 border-dt-error/40 text-dt-error" : "bg-transparent border-dt-border-light text-dt-text-muted hover:text-dt-text-secondary"}`,
|
|
1086
1148
|
children: "Errors"
|
|
1087
1149
|
}
|
|
1088
1150
|
),
|
|
1089
|
-
|
|
1151
|
+
x && /* @__PURE__ */ t(
|
|
1090
1152
|
"button",
|
|
1091
1153
|
{
|
|
1092
1154
|
type: "button",
|
|
@@ -1096,16 +1158,16 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1096
1158
|
}
|
|
1097
1159
|
),
|
|
1098
1160
|
/* @__PURE__ */ n("span", { className: "ml-auto text-[9px] font-mono text-dt-text-muted/70", children: [
|
|
1099
|
-
|
|
1161
|
+
N.length,
|
|
1100
1162
|
"/",
|
|
1101
|
-
|
|
1163
|
+
I.rows.length
|
|
1102
1164
|
] }),
|
|
1103
1165
|
/* @__PURE__ */ t(
|
|
1104
1166
|
"button",
|
|
1105
1167
|
{
|
|
1106
1168
|
type: "button",
|
|
1107
1169
|
onClick: bt,
|
|
1108
|
-
disabled:
|
|
1170
|
+
disabled: x,
|
|
1109
1171
|
className: "text-[9px] uppercase text-dt-text-muted hover:text-dt-text-secondary disabled:opacity-40 disabled:cursor-not-allowed",
|
|
1110
1172
|
children: "Collapse"
|
|
1111
1173
|
}
|
|
@@ -1115,18 +1177,18 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1115
1177
|
{
|
|
1116
1178
|
type: "button",
|
|
1117
1179
|
onClick: St,
|
|
1118
|
-
disabled:
|
|
1180
|
+
disabled: x,
|
|
1119
1181
|
className: "text-[9px] uppercase text-dt-text-muted hover:text-dt-text-secondary disabled:opacity-40 disabled:cursor-not-allowed",
|
|
1120
1182
|
children: "Expand"
|
|
1121
1183
|
}
|
|
1122
1184
|
)
|
|
1123
1185
|
] }),
|
|
1124
|
-
|
|
1186
|
+
l === "waterfall" ? /* @__PURE__ */ n(nt, { children: [
|
|
1125
1187
|
/* @__PURE__ */ n(
|
|
1126
1188
|
"div",
|
|
1127
1189
|
{
|
|
1128
1190
|
className: "grid gap-2 px-2 py-1 border-b border-dt-border-light bg-dt-bg-tertiary/30 text-[9px] uppercase tracking-wider text-dt-text-muted/70 font-mono",
|
|
1129
|
-
style: { gridTemplateColumns:
|
|
1191
|
+
style: { gridTemplateColumns: ne },
|
|
1130
1192
|
children: [
|
|
1131
1193
|
/* @__PURE__ */ t("span", { children: "Span" }),
|
|
1132
1194
|
/* @__PURE__ */ t("span", { className: "text-right", children: "Self" }),
|
|
@@ -1138,35 +1200,35 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1138
1200
|
}
|
|
1139
1201
|
),
|
|
1140
1202
|
/* @__PURE__ */ n("div", { className: "min-h-0 overflow-y-auto p-1 bg-dt-bg-secondary/30", style: { maxHeight: q }, children: [
|
|
1141
|
-
/* @__PURE__ */ t("div", { className: "space-y-0.5", children:
|
|
1142
|
-
const { span: h } =
|
|
1203
|
+
/* @__PURE__ */ t("div", { className: "space-y-0.5", children: N.map((c) => {
|
|
1204
|
+
const { span: h } = c, _ = Number.isFinite(h.durationMs) && h.durationMs > 0 ? h.durationMs : 0, g = Math.max(0, _ - c.directChildDurationMs), T = h.startMs - L, A = h.events?.length ?? 0, { leftPct: O, widthPct: F } = ie(
|
|
1143
1205
|
h.startMs,
|
|
1144
1206
|
_,
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
),
|
|
1207
|
+
L,
|
|
1208
|
+
E
|
|
1209
|
+
), G = d === h.id, W = m.has(h.id);
|
|
1148
1210
|
return /* @__PURE__ */ n(
|
|
1149
1211
|
"div",
|
|
1150
1212
|
{
|
|
1151
|
-
className: `grid gap-2 items-center rounded border px-1 py-[2px] select-none cursor-pointer ${
|
|
1152
|
-
style: { gridTemplateColumns:
|
|
1153
|
-
onMouseDown: (
|
|
1213
|
+
className: `grid gap-2 items-center rounded border px-1 py-[2px] select-none cursor-pointer ${G ? "bg-dt-info/10 border-dt-info/30" : "border-transparent hover:bg-white/[0.03]"}`,
|
|
1214
|
+
style: { gridTemplateColumns: ne },
|
|
1215
|
+
onMouseDown: (et) => et.preventDefault(),
|
|
1154
1216
|
onClick: () => {
|
|
1155
|
-
|
|
1217
|
+
u(h.id), S(h.id);
|
|
1156
1218
|
},
|
|
1157
1219
|
children: [
|
|
1158
|
-
/* @__PURE__ */ n("div", { className: "min-w-0 flex items-center gap-1", style: { paddingLeft: `${
|
|
1159
|
-
|
|
1220
|
+
/* @__PURE__ */ n("div", { className: "min-w-0 flex items-center gap-1", style: { paddingLeft: `${c.depth * 8}px` }, children: [
|
|
1221
|
+
c.hasChildren ? /* @__PURE__ */ t(
|
|
1160
1222
|
"button",
|
|
1161
1223
|
{
|
|
1162
1224
|
type: "button",
|
|
1163
|
-
onMouseDown: (
|
|
1164
|
-
onClick: (
|
|
1165
|
-
|
|
1225
|
+
onMouseDown: (et) => et.preventDefault(),
|
|
1226
|
+
onClick: (et) => {
|
|
1227
|
+
et.stopPropagation(), vt(h.id);
|
|
1166
1228
|
},
|
|
1167
1229
|
className: "w-3 h-3 flex items-center justify-center text-[9px] text-dt-text-muted hover:text-dt-text-secondary",
|
|
1168
|
-
title:
|
|
1169
|
-
children: /* @__PURE__ */ t("span", { className: `inline-block ${
|
|
1230
|
+
title: W ? "Expand" : "Collapse",
|
|
1231
|
+
children: /* @__PURE__ */ t("span", { className: `inline-block ${W ? "" : "rotate-90"}`, children: ">" })
|
|
1170
1232
|
}
|
|
1171
1233
|
) : /* @__PURE__ */ t("span", { className: "w-3 h-3" }),
|
|
1172
1234
|
/* @__PURE__ */ t(
|
|
@@ -1185,15 +1247,15 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1185
1247
|
}
|
|
1186
1248
|
)
|
|
1187
1249
|
] }),
|
|
1188
|
-
/* @__PURE__ */ t("div", { className: "font-mono text-[10px] text-dt-text-muted text-right", children:
|
|
1189
|
-
/* @__PURE__ */ t("div", { className: "font-mono text-[10px] text-dt-text-muted text-right", children:
|
|
1250
|
+
/* @__PURE__ */ t("div", { className: "font-mono text-[10px] text-dt-text-muted text-right", children: dt(g) }),
|
|
1251
|
+
/* @__PURE__ */ t("div", { className: "font-mono text-[10px] text-dt-text-muted text-right", children: dt(_) }),
|
|
1190
1252
|
/* @__PURE__ */ t("div", { className: "font-mono text-[10px] text-dt-text-muted text-right", children: gt(T) }),
|
|
1191
1253
|
/* @__PURE__ */ t("div", { className: "font-mono text-[10px] text-dt-text-muted text-right", children: A }),
|
|
1192
1254
|
/* @__PURE__ */ n("div", { className: "relative h-2 rounded bg-dt-bg-tertiary border border-dt-border-light/50 overflow-hidden", children: [
|
|
1193
|
-
|
|
1255
|
+
G && h.events?.slice(0, 80).map((et, at) => {
|
|
1194
1256
|
const ut = Math.min(
|
|
1195
1257
|
99.8,
|
|
1196
|
-
|
|
1258
|
+
he((et.atMs - L) / E * 100)
|
|
1197
1259
|
);
|
|
1198
1260
|
return /* @__PURE__ */ t(
|
|
1199
1261
|
"span",
|
|
@@ -1201,14 +1263,14 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1201
1263
|
className: "absolute top-0 bottom-0 w-px bg-white/55",
|
|
1202
1264
|
style: { left: `${ut}%` }
|
|
1203
1265
|
},
|
|
1204
|
-
`${h.id}:${
|
|
1266
|
+
`${h.id}:${at}:${et.name}`
|
|
1205
1267
|
);
|
|
1206
1268
|
}),
|
|
1207
1269
|
/* @__PURE__ */ t(
|
|
1208
1270
|
"div",
|
|
1209
1271
|
{
|
|
1210
1272
|
className: "absolute top-0 bottom-0 rounded",
|
|
1211
|
-
style: { left: `${O}%`, width: `${
|
|
1273
|
+
style: { left: `${O}%`, width: `${F}%`, ...Te(h) }
|
|
1212
1274
|
}
|
|
1213
1275
|
)
|
|
1214
1276
|
] })
|
|
@@ -1217,76 +1279,76 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1217
1279
|
h.id
|
|
1218
1280
|
);
|
|
1219
1281
|
}) }),
|
|
1220
|
-
|
|
1282
|
+
N.length === 0 && /* @__PURE__ */ t("div", { className: "mt-2 px-2 py-4 text-[11px] text-dt-text-muted text-center border border-dt-border-light/40 rounded", children: "No spans match the current filter." })
|
|
1221
1283
|
] })
|
|
1222
1284
|
] }) : /* @__PURE__ */ t("div", { className: "flex-1 min-h-0 overflow-auto bg-dt-bg-secondary/30", style: { maxHeight: q }, children: /* @__PURE__ */ n("div", { className: "min-w-[820px] p-2", children: [
|
|
1223
1285
|
/* @__PURE__ */ n("div", { className: "mb-2", children: [
|
|
1224
|
-
/* @__PURE__ */ t("div", { className: "relative h-4 text-[9px] font-mono text-dt-text-muted/70 mb-1", children: [0, 25, 50, 75, 100].map((
|
|
1286
|
+
/* @__PURE__ */ t("div", { className: "relative h-4 text-[9px] font-mono text-dt-text-muted/70 mb-1", children: [0, 25, 50, 75, 100].map((c) => /* @__PURE__ */ t(
|
|
1225
1287
|
"span",
|
|
1226
1288
|
{
|
|
1227
1289
|
className: "absolute top-0",
|
|
1228
1290
|
style: {
|
|
1229
|
-
left: `${
|
|
1230
|
-
transform:
|
|
1291
|
+
left: `${c}%`,
|
|
1292
|
+
transform: c === 0 ? "translateX(0)" : c === 100 ? "translateX(-100%)" : "translateX(-50%)"
|
|
1231
1293
|
},
|
|
1232
|
-
children:
|
|
1294
|
+
children: c === 0 ? "0ms" : dt(E * c / 100)
|
|
1233
1295
|
},
|
|
1234
|
-
`tick-${
|
|
1296
|
+
`tick-${c}`
|
|
1235
1297
|
)) }),
|
|
1236
|
-
/* @__PURE__ */ t("div", { className: "relative h-5 border border-dt-border-light/50 rounded bg-dt-bg-tertiary/40", children: [0, 25, 50, 75, 100].map((
|
|
1298
|
+
/* @__PURE__ */ t("div", { className: "relative h-5 border border-dt-border-light/50 rounded bg-dt-bg-tertiary/40", children: [0, 25, 50, 75, 100].map((c) => /* @__PURE__ */ t("div", { className: "absolute inset-y-0", style: { left: `${c}%` }, children: /* @__PURE__ */ t("div", { className: "absolute inset-y-0 w-px bg-white/10" }) }, `line-${c}`)) })
|
|
1237
1299
|
] }),
|
|
1238
|
-
/* @__PURE__ */ t("div", { className: "mb-2 h-7 rounded border border-dt-border-light/50 bg-dt-bg-tertiary/35 px-2 flex items-center gap-2 text-[10px] font-mono overflow-hidden", children:
|
|
1239
|
-
/* @__PURE__ */ t("span", { className: "text-dt-text-secondary truncate max-w-[38%]", title:
|
|
1240
|
-
/* @__PURE__ */ t("span", { className: "text-dt-text-muted uppercase", children:
|
|
1241
|
-
/* @__PURE__ */ t("span", { className:
|
|
1242
|
-
|
|
1300
|
+
/* @__PURE__ */ t("div", { className: "mb-2 h-7 rounded border border-dt-border-light/50 bg-dt-bg-tertiary/35 px-2 flex items-center gap-2 text-[10px] font-mono overflow-hidden", children: M ? /* @__PURE__ */ n(nt, { children: [
|
|
1301
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-secondary truncate max-w-[38%]", title: M.name, children: M.name }),
|
|
1302
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted uppercase", children: M.kind }),
|
|
1303
|
+
/* @__PURE__ */ t("span", { className: M.status === "error" ? "text-dt-error" : "text-dt-success", children: M.status }),
|
|
1304
|
+
ot && /* @__PURE__ */ n("span", { className: "text-dt-text-muted/80 truncate max-w-[20%]", title: ot.name, children: [
|
|
1243
1305
|
"parent ",
|
|
1244
|
-
It(
|
|
1306
|
+
It(ot.name, 24)
|
|
1245
1307
|
] }),
|
|
1246
1308
|
/* @__PURE__ */ n("span", { className: "ml-auto text-dt-text-muted", children: [
|
|
1247
1309
|
"start ",
|
|
1248
|
-
gt(
|
|
1310
|
+
gt(it)
|
|
1249
1311
|
] }),
|
|
1250
1312
|
/* @__PURE__ */ n("span", { className: "text-dt-text-muted", children: [
|
|
1251
1313
|
"self ",
|
|
1252
|
-
|
|
1314
|
+
dt(tt)
|
|
1253
1315
|
] }),
|
|
1254
1316
|
/* @__PURE__ */ n("span", { className: "text-dt-text-muted", children: [
|
|
1255
1317
|
"total ",
|
|
1256
|
-
|
|
1318
|
+
dt(M.durationMs)
|
|
1257
1319
|
] }),
|
|
1258
1320
|
/* @__PURE__ */ n("span", { className: "text-dt-text-muted", children: [
|
|
1259
1321
|
"evt ",
|
|
1260
|
-
|
|
1322
|
+
M.events?.length ?? 0
|
|
1261
1323
|
] })
|
|
1262
1324
|
] }) : /* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: "Hover a span for details" }) }),
|
|
1263
|
-
/* @__PURE__ */ t("div", { className: "space-y-[3px]", children:
|
|
1325
|
+
/* @__PURE__ */ t("div", { className: "space-y-[3px]", children: $.map((c, h) => /* @__PURE__ */ t(
|
|
1264
1326
|
"div",
|
|
1265
1327
|
{
|
|
1266
1328
|
className: "relative h-5 rounded bg-dt-bg-tertiary/35 border border-dt-border-light/40 overflow-hidden",
|
|
1267
|
-
children:
|
|
1268
|
-
const g = _.span, T = Number.isFinite(g.durationMs) && g.durationMs > 0 ? g.durationMs : 0, { leftPct: A, widthPct: O } =
|
|
1329
|
+
children: c.map((_) => {
|
|
1330
|
+
const g = _.span, T = Number.isFinite(g.durationMs) && g.durationMs > 0 ? g.durationMs : 0, { leftPct: A, widthPct: O } = ie(
|
|
1269
1331
|
g.startMs,
|
|
1270
1332
|
T,
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
),
|
|
1333
|
+
L,
|
|
1334
|
+
E
|
|
1335
|
+
), F = d === g.id, G = O > 24 ? It(g.name, 28) : O > 14 ? g.kind : "";
|
|
1274
1336
|
return /* @__PURE__ */ t(
|
|
1275
1337
|
"button",
|
|
1276
1338
|
{
|
|
1277
1339
|
type: "button",
|
|
1278
|
-
onMouseDown: (
|
|
1279
|
-
onMouseEnter: () =>
|
|
1280
|
-
onMouseLeave: () =>
|
|
1281
|
-
onFocus: () =>
|
|
1282
|
-
onBlur: () =>
|
|
1340
|
+
onMouseDown: (W) => W.preventDefault(),
|
|
1341
|
+
onMouseEnter: () => S(g.id),
|
|
1342
|
+
onMouseLeave: () => S((W) => W === g.id ? null : W),
|
|
1343
|
+
onFocus: () => S(g.id),
|
|
1344
|
+
onBlur: () => S((W) => W === g.id ? null : W),
|
|
1283
1345
|
onClick: () => {
|
|
1284
|
-
|
|
1346
|
+
u(g.id), S(g.id);
|
|
1285
1347
|
},
|
|
1286
1348
|
className: "absolute top-0.5 h-[16px] rounded-sm border px-1 text-[9px] font-mono text-left overflow-hidden whitespace-nowrap text-ellipsis",
|
|
1287
|
-
style: { left: `${A}%`, width: `${O}%`, ...
|
|
1288
|
-
title: `${g.name} (${g.kind}) ${
|
|
1289
|
-
children:
|
|
1349
|
+
style: { left: `${A}%`, width: `${O}%`, ...Ae(g, F) },
|
|
1350
|
+
title: `${g.name} (${g.kind}) ${dt(T)} @ ${gt(g.startMs - L)}`,
|
|
1351
|
+
children: G
|
|
1290
1352
|
},
|
|
1291
1353
|
g.id
|
|
1292
1354
|
);
|
|
@@ -1294,73 +1356,73 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1294
1356
|
},
|
|
1295
1357
|
`lane-${h}`
|
|
1296
1358
|
)) }),
|
|
1297
|
-
|
|
1359
|
+
$.length === 0 && /* @__PURE__ */ t("div", { className: "mt-2 px-2 py-4 text-[11px] text-dt-text-muted text-center border border-dt-border-light/40 rounded", children: "No spans match the current filter." })
|
|
1298
1360
|
] }) }),
|
|
1299
|
-
/* @__PURE__ */ t("div", { className: "border-t border-dt-border bg-dt-bg-secondary", children: /* @__PURE__ */ t("div", { className: "overflow-auto p-2 pr-1", style: { maxHeight:
|
|
1361
|
+
/* @__PURE__ */ t("div", { className: "border-t border-dt-border bg-dt-bg-secondary", children: /* @__PURE__ */ t("div", { className: "overflow-auto p-2 pr-1", style: { maxHeight: $e }, children: M ? /* @__PURE__ */ n("div", { className: "space-y-1.5", children: [
|
|
1300
1362
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-1.5", children: [
|
|
1301
|
-
/* @__PURE__ */ t("span", { className: "font-mono text-[9px] uppercase text-dt-text-muted/70", children:
|
|
1302
|
-
/* @__PURE__ */ t("span", { className: "font-mono text-[11px] text-dt-text-secondary truncate", title:
|
|
1363
|
+
/* @__PURE__ */ t("span", { className: "font-mono text-[9px] uppercase text-dt-text-muted/70", children: M.kind }),
|
|
1364
|
+
/* @__PURE__ */ t("span", { className: "font-mono text-[11px] text-dt-text-secondary truncate", title: M.name, children: M.name }),
|
|
1303
1365
|
/* @__PURE__ */ t(
|
|
1304
1366
|
"span",
|
|
1305
1367
|
{
|
|
1306
|
-
className: `ml-auto text-[9px] uppercase font-semibold ${
|
|
1307
|
-
children:
|
|
1368
|
+
className: `ml-auto text-[9px] uppercase font-semibold ${M.status === "error" ? "text-dt-error" : "text-dt-success"}`,
|
|
1369
|
+
children: M.status
|
|
1308
1370
|
}
|
|
1309
1371
|
)
|
|
1310
1372
|
] }),
|
|
1311
1373
|
/* @__PURE__ */ n("div", { className: "grid grid-cols-2 gap-1 text-[9px] font-mono text-dt-text-muted/80", children: [
|
|
1312
1374
|
/* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 rounded bg-dt-bg-tertiary", children: [
|
|
1313
1375
|
"start ",
|
|
1314
|
-
gt(
|
|
1376
|
+
gt(M.startMs - L)
|
|
1315
1377
|
] }),
|
|
1316
1378
|
/* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 rounded bg-dt-bg-tertiary", children: [
|
|
1317
1379
|
"end ",
|
|
1318
|
-
gt(
|
|
1380
|
+
gt(M.endMs - L)
|
|
1319
1381
|
] }),
|
|
1320
1382
|
/* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 rounded bg-dt-bg-tertiary", children: [
|
|
1321
1383
|
"self ",
|
|
1322
|
-
|
|
1384
|
+
dt(tt)
|
|
1323
1385
|
] }),
|
|
1324
1386
|
/* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 rounded bg-dt-bg-tertiary", children: [
|
|
1325
1387
|
"total ",
|
|
1326
|
-
|
|
1388
|
+
dt(M.durationMs)
|
|
1327
1389
|
] })
|
|
1328
1390
|
] }),
|
|
1329
|
-
|
|
1391
|
+
ot && /* @__PURE__ */ n("div", { className: "text-[9px] font-mono text-dt-text-muted/70", title: ot.name, children: [
|
|
1330
1392
|
"parent ",
|
|
1331
|
-
It(
|
|
1393
|
+
It(ot.name, 56)
|
|
1332
1394
|
] }),
|
|
1333
1395
|
e.requestId && /* @__PURE__ */ n("div", { className: "text-[9px] font-mono text-dt-text-muted/70", title: e.requestId, children: [
|
|
1334
1396
|
"request ",
|
|
1335
1397
|
It(e.requestId, 56)
|
|
1336
1398
|
] }),
|
|
1337
|
-
mt.length > 0 && /* @__PURE__ */ t("div", { className: "flex flex-wrap gap-1", children: mt.map(([
|
|
1399
|
+
mt.length > 0 && /* @__PURE__ */ t("div", { className: "flex flex-wrap gap-1", children: mt.map(([c, h]) => /* @__PURE__ */ n(
|
|
1338
1400
|
"div",
|
|
1339
1401
|
{
|
|
1340
1402
|
className: "px-1.5 py-0.5 rounded bg-dt-bg-tertiary text-[9px] font-mono text-dt-text-muted/90 break-all",
|
|
1341
|
-
title: `${
|
|
1403
|
+
title: `${c}: ${ae(h)}`,
|
|
1342
1404
|
children: [
|
|
1343
1405
|
/* @__PURE__ */ n("span", { className: "text-dt-text-muted/70", children: [
|
|
1344
|
-
|
|
1406
|
+
c,
|
|
1345
1407
|
"="
|
|
1346
1408
|
] }),
|
|
1347
|
-
/* @__PURE__ */ t("span", { className: "text-dt-text-secondary", children:
|
|
1409
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-secondary", children: ae(h) })
|
|
1348
1410
|
]
|
|
1349
1411
|
},
|
|
1350
|
-
|
|
1412
|
+
c
|
|
1351
1413
|
)) }),
|
|
1352
|
-
wt.length > 0 && /* @__PURE__ */ t("div", { className: "space-y-0.5", children: wt.map((
|
|
1414
|
+
wt.length > 0 && /* @__PURE__ */ t("div", { className: "space-y-0.5", children: wt.map((c, h) => /* @__PURE__ */ n(
|
|
1353
1415
|
"div",
|
|
1354
1416
|
{
|
|
1355
1417
|
className: "font-mono text-[10px] text-dt-text-muted/90",
|
|
1356
1418
|
children: [
|
|
1357
|
-
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/70", children: gt(
|
|
1419
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/70", children: gt(c.atMs - L) }),
|
|
1358
1420
|
" ",
|
|
1359
|
-
/* @__PURE__ */ t("span", { className: "text-dt-info/90", children:
|
|
1360
|
-
|
|
1421
|
+
/* @__PURE__ */ t("span", { className: "text-dt-info/90", children: c.name }),
|
|
1422
|
+
c.attributes ? ` ${JSON.stringify(c.attributes)}` : ""
|
|
1361
1423
|
]
|
|
1362
1424
|
},
|
|
1363
|
-
`${
|
|
1425
|
+
`${M.id}:${h}:${c.name}`
|
|
1364
1426
|
)) })
|
|
1365
1427
|
] }) : /* @__PURE__ */ t("div", { className: "flex items-center justify-center text-[11px] text-dt-text-muted min-h-14", children: "Select a span to inspect details." }) }) })
|
|
1366
1428
|
]
|
|
@@ -1368,24 +1430,24 @@ function Te({ trace: e, maxHeight: r = 680 }) {
|
|
|
1368
1430
|
)
|
|
1369
1431
|
] });
|
|
1370
1432
|
}
|
|
1371
|
-
const
|
|
1372
|
-
({ value: e, onValueChange: r, onClear: a, placeholder:
|
|
1373
|
-
const
|
|
1433
|
+
const Gt = be.forwardRef(
|
|
1434
|
+
({ value: e, onValueChange: r, onClear: a, placeholder: s, className: l = "", ...p }, d) => {
|
|
1435
|
+
const u = () => {
|
|
1374
1436
|
a ? a() : r("");
|
|
1375
1437
|
};
|
|
1376
|
-
return /* @__PURE__ */ n("div", { className: `relative flex items-center ${
|
|
1438
|
+
return /* @__PURE__ */ n("div", { className: `relative flex items-center ${l === "stretch" ? "flex-1" : ""}`, role: "search", children: [
|
|
1377
1439
|
/* @__PURE__ */ t(
|
|
1378
1440
|
"input",
|
|
1379
1441
|
{
|
|
1380
|
-
...
|
|
1381
|
-
ref:
|
|
1442
|
+
...p,
|
|
1443
|
+
ref: d,
|
|
1382
1444
|
type: "search",
|
|
1383
1445
|
className: "w-full bg-dt-bg-tertiary/50 border border-dt-border-light rounded-md px-2.5 pr-7 py-1 text-[11px] text-dt-text-secondary placeholder:text-dt-text-muted/50 outline-none focus:border-dt-info/50 focus:bg-dt-bg-tertiary transition-colors font-sans [&::-webkit-search-cancel-button]:hidden",
|
|
1384
1446
|
value: e,
|
|
1385
1447
|
onChange: (w) => r(w.target.value),
|
|
1386
|
-
placeholder:
|
|
1387
|
-
spellCheck:
|
|
1388
|
-
"aria-label":
|
|
1448
|
+
placeholder: s,
|
|
1449
|
+
spellCheck: p.spellCheck ?? !1,
|
|
1450
|
+
"aria-label": p["aria-label"] || s || "Search"
|
|
1389
1451
|
}
|
|
1390
1452
|
),
|
|
1391
1453
|
e && /* @__PURE__ */ t(
|
|
@@ -1393,7 +1455,7 @@ const Xt = me.forwardRef(
|
|
|
1393
1455
|
{
|
|
1394
1456
|
type: "button",
|
|
1395
1457
|
className: "absolute right-1.5 p-0.5 bg-transparent border-none text-dt-text-muted cursor-pointer rounded hover:text-dt-text-tertiary transition-colors",
|
|
1396
|
-
onClick:
|
|
1458
|
+
onClick: u,
|
|
1397
1459
|
"aria-label": "Clear search",
|
|
1398
1460
|
title: "Clear search",
|
|
1399
1461
|
children: /* @__PURE__ */ t("svg", { width: "12", height: "12", viewBox: "0 0 16 16", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ t("path", { d: "M3.646 3.646a.5.5 0 0 1 .708 0L8 7.293l3.646-3.647a.5.5 0 0 1 .708.708L8.707 8l3.647 3.646a.5.5 0 0 1-.708.708L8 8.707l-3.646 3.647a.5.5 0 0 1-.708-.708L7.293 8 3.646 4.354a.5.5 0 0 1 0-.708Z" }) })
|
|
@@ -1402,77 +1464,77 @@ const Xt = me.forwardRef(
|
|
|
1402
1464
|
] });
|
|
1403
1465
|
}
|
|
1404
1466
|
);
|
|
1405
|
-
function
|
|
1406
|
-
const [
|
|
1407
|
-
|
|
1408
|
-
const f =
|
|
1467
|
+
function Yt({ x: e, y: r, items: a, onClose: s }) {
|
|
1468
|
+
const [l, p] = z(-1), d = Ct(null), [u, w] = z({ x: e, y: r });
|
|
1469
|
+
K(() => {
|
|
1470
|
+
const f = d.current;
|
|
1409
1471
|
if (!f) return;
|
|
1410
|
-
const
|
|
1411
|
-
let
|
|
1412
|
-
e +
|
|
1413
|
-
}, [e, r]),
|
|
1414
|
-
const f = (
|
|
1415
|
-
|
|
1416
|
-
},
|
|
1417
|
-
|
|
1418
|
-
},
|
|
1419
|
-
document.addEventListener("mousedown", f), document.addEventListener("contextmenu",
|
|
1472
|
+
const m = 8, k = f.getBoundingClientRect(), y = window.innerWidth, S = window.innerHeight;
|
|
1473
|
+
let I = e, L = r;
|
|
1474
|
+
e + k.width > y - m && (I = Math.max(m, y - k.width - m)), r + k.height > S - m && (L = Math.max(m, S - k.height - m)), (I !== u.x || L !== u.y) && w({ x: I, y: L });
|
|
1475
|
+
}, [e, r, u.x, u.y]), K(() => {
|
|
1476
|
+
const f = (I) => {
|
|
1477
|
+
d.current && !d.current.contains(I.target) && s();
|
|
1478
|
+
}, m = (I) => {
|
|
1479
|
+
d.current && !d.current.contains(I.target) && s();
|
|
1480
|
+
}, k = () => s(), y = () => s(), S = setTimeout(() => {
|
|
1481
|
+
document.addEventListener("mousedown", f), document.addEventListener("contextmenu", m);
|
|
1420
1482
|
}, 0);
|
|
1421
|
-
return window.addEventListener("scroll",
|
|
1422
|
-
clearTimeout(
|
|
1483
|
+
return window.addEventListener("scroll", k, !0), window.addEventListener("blur", y), () => {
|
|
1484
|
+
clearTimeout(S), document.removeEventListener("mousedown", f), document.removeEventListener("contextmenu", m), window.removeEventListener("scroll", k, !0), window.removeEventListener("blur", y);
|
|
1423
1485
|
};
|
|
1424
|
-
}, [
|
|
1425
|
-
const v = a.map((f,
|
|
1486
|
+
}, [s]);
|
|
1487
|
+
const v = a.map((f, m) => ({ ...f, index: m })).filter((f) => !f.disabled), C = U(
|
|
1426
1488
|
(f) => {
|
|
1427
1489
|
if (f.key === "Escape") {
|
|
1428
|
-
f.preventDefault(), f.stopPropagation(),
|
|
1490
|
+
f.preventDefault(), f.stopPropagation(), s();
|
|
1429
1491
|
return;
|
|
1430
1492
|
}
|
|
1431
1493
|
if (f.key === "ArrowDown") {
|
|
1432
|
-
f.preventDefault(),
|
|
1433
|
-
const
|
|
1434
|
-
return v[
|
|
1494
|
+
f.preventDefault(), p((m) => {
|
|
1495
|
+
const k = v.findIndex((S) => S.index === m), y = k < v.length - 1 ? k + 1 : 0;
|
|
1496
|
+
return v[y].index;
|
|
1435
1497
|
});
|
|
1436
1498
|
return;
|
|
1437
1499
|
}
|
|
1438
1500
|
if (f.key === "ArrowUp") {
|
|
1439
|
-
f.preventDefault(),
|
|
1440
|
-
const
|
|
1441
|
-
return v[
|
|
1501
|
+
f.preventDefault(), p((m) => {
|
|
1502
|
+
const k = v.findIndex((S) => S.index === m), y = k > 0 ? k - 1 : v.length - 1;
|
|
1503
|
+
return v[y].index;
|
|
1442
1504
|
});
|
|
1443
1505
|
return;
|
|
1444
1506
|
}
|
|
1445
1507
|
if (f.key === "Enter") {
|
|
1446
|
-
f.preventDefault(),
|
|
1508
|
+
f.preventDefault(), l >= 0 && !a[l].disabled && (a[l].action(), s());
|
|
1447
1509
|
return;
|
|
1448
1510
|
}
|
|
1449
1511
|
},
|
|
1450
|
-
[
|
|
1512
|
+
[s, l, a, v]
|
|
1451
1513
|
);
|
|
1452
|
-
return
|
|
1453
|
-
v.length > 0 &&
|
|
1454
|
-
}, []), /* @__PURE__ */ t(
|
|
1514
|
+
return K(() => (window.addEventListener("keydown", C, !0), () => window.removeEventListener("keydown", C, !0)), [C]), K(() => {
|
|
1515
|
+
v.length > 0 && l === -1 && p(v[0].index);
|
|
1516
|
+
}, [v.length, v[0].index, l]), /* @__PURE__ */ t(
|
|
1455
1517
|
"div",
|
|
1456
1518
|
{
|
|
1457
|
-
ref:
|
|
1519
|
+
ref: d,
|
|
1458
1520
|
className: "fixed z-[9999999] min-w-[180px] max-w-[280px] bg-zinc-900/[0.98] backdrop-blur-lg border border-dt-border rounded-lg shadow-2xl py-1 animate-[dt-fade-in_0.1s_ease-out]",
|
|
1459
|
-
style: { top:
|
|
1521
|
+
style: { top: u.y, left: u.x },
|
|
1460
1522
|
role: "menu",
|
|
1461
1523
|
onContextMenu: (f) => f.preventDefault(),
|
|
1462
|
-
children: a.map((f,
|
|
1463
|
-
f.separator &&
|
|
1524
|
+
children: a.map((f, m) => /* @__PURE__ */ n("div", { children: [
|
|
1525
|
+
f.separator && m > 0 && /* @__PURE__ */ t("div", { className: "border-t border-dt-border-light/40 my-0.5", role: "separator" }),
|
|
1464
1526
|
/* @__PURE__ */ n(
|
|
1465
1527
|
"button",
|
|
1466
1528
|
{
|
|
1467
|
-
className: `flex items-center w-full px-3 py-1.5 text-[12px] text-left bg-transparent border-none cursor-pointer transition-colors ${f.disabled ? "opacity-40 pointer-events-none text-dt-text-muted" :
|
|
1529
|
+
className: `flex items-center w-full px-3 py-1.5 text-[12px] text-left bg-transparent border-none cursor-pointer transition-colors ${f.disabled ? "opacity-40 pointer-events-none text-dt-text-muted" : l === m ? "bg-white/[0.08] text-dt-text-secondary" : "text-dt-text-secondary hover:bg-white/[0.06]"}`,
|
|
1468
1530
|
role: "menuitem",
|
|
1469
1531
|
tabIndex: -1,
|
|
1470
1532
|
disabled: f.disabled,
|
|
1471
1533
|
onMouseEnter: () => {
|
|
1472
|
-
f.disabled ||
|
|
1534
|
+
f.disabled || p(m);
|
|
1473
1535
|
},
|
|
1474
|
-
onClick: (
|
|
1475
|
-
|
|
1536
|
+
onClick: (k) => {
|
|
1537
|
+
k.stopPropagation(), f.disabled || (f.action(), s());
|
|
1476
1538
|
},
|
|
1477
1539
|
children: [
|
|
1478
1540
|
/* @__PURE__ */ t("span", { className: "flex-1 truncate", children: f.label }),
|
|
@@ -1480,34 +1542,34 @@ function Gt({ x: e, y: r, items: a, onClose: i }) {
|
|
|
1480
1542
|
]
|
|
1481
1543
|
}
|
|
1482
1544
|
)
|
|
1483
|
-
] },
|
|
1545
|
+
] }, m))
|
|
1484
1546
|
}
|
|
1485
1547
|
);
|
|
1486
1548
|
}
|
|
1487
|
-
function
|
|
1549
|
+
function Pt(e) {
|
|
1488
1550
|
return e.type === "query" || e.type === "mutation" || e.type === "action";
|
|
1489
1551
|
}
|
|
1490
|
-
function
|
|
1552
|
+
function Qt(e) {
|
|
1491
1553
|
return e.type === "auth";
|
|
1492
1554
|
}
|
|
1493
1555
|
function Lt(e) {
|
|
1494
|
-
return
|
|
1556
|
+
return Pt(e) || Qt(e);
|
|
1495
1557
|
}
|
|
1496
|
-
const
|
|
1558
|
+
const Pe = `
|
|
1497
1559
|
.cdv-json-key { color: var(--color-dt-text-tertiary); }
|
|
1498
1560
|
.cdv-json-string { color: var(--color-dt-success); }
|
|
1499
1561
|
.cdv-json-number { color: var(--color-dt-query); }
|
|
1500
1562
|
.cdv-json-boolean { color: var(--color-dt-mutation); }
|
|
1501
1563
|
.cdv-json-null { color: var(--color-dt-text-muted); }
|
|
1502
1564
|
.cdv-json-value { color: var(--color-dt-text-secondary); }
|
|
1503
|
-
`, At = 100,
|
|
1565
|
+
`, At = 100, se = 100, ft = 4e3, qe = {
|
|
1504
1566
|
maxStringLength: 128,
|
|
1505
1567
|
stringTailLength: 24,
|
|
1506
1568
|
maxArrayItems: 4,
|
|
1507
1569
|
maxObjectEntries: 4,
|
|
1508
1570
|
maxDepth: 3
|
|
1509
1571
|
};
|
|
1510
|
-
function
|
|
1572
|
+
function Bt(e) {
|
|
1511
1573
|
if (e == null) return "";
|
|
1512
1574
|
if (typeof e == "string")
|
|
1513
1575
|
return e.length > ft ? e.slice(0, ft) : e;
|
|
@@ -1519,67 +1581,67 @@ function Rt(e) {
|
|
|
1519
1581
|
return r.length > ft ? r.slice(0, ft) : r;
|
|
1520
1582
|
}
|
|
1521
1583
|
}
|
|
1522
|
-
function
|
|
1584
|
+
function Oe(e) {
|
|
1523
1585
|
const [r, a] = e.split("-", 3);
|
|
1524
1586
|
return r === "query" && a ? `Q${a}` : r === "mutation" && a ? `M${a}` : r === "action" && a ? `A${a}` : e;
|
|
1525
1587
|
}
|
|
1526
|
-
function
|
|
1527
|
-
const [a,
|
|
1528
|
-
v(At),
|
|
1529
|
-
}, []),
|
|
1588
|
+
function je({ eventStore: e, panelConnectionState: r }) {
|
|
1589
|
+
const [a, s] = z([]), [l, p] = z("all"), [d, u] = z(""), [w, v] = z(At), [C, f] = z(null), [m, k] = z(0), [y, S] = z(null), [I, L] = z(null), j = Ct(null), E = C && Pt(C) ? C : null, q = C && Qt(C) ? C : null, H = U(() => {
|
|
1590
|
+
v(At), k(0);
|
|
1591
|
+
}, []), b = U(
|
|
1530
1592
|
(o) => {
|
|
1531
|
-
|
|
1593
|
+
p(o), H();
|
|
1532
1594
|
},
|
|
1533
|
-
[
|
|
1534
|
-
),
|
|
1595
|
+
[H]
|
|
1596
|
+
), x = U(
|
|
1535
1597
|
(o) => {
|
|
1536
|
-
|
|
1598
|
+
u(o), H();
|
|
1537
1599
|
},
|
|
1538
|
-
[
|
|
1600
|
+
[H]
|
|
1539
1601
|
);
|
|
1540
|
-
|
|
1602
|
+
K(() => {
|
|
1541
1603
|
const o = () => {
|
|
1542
|
-
|
|
1543
|
-
},
|
|
1544
|
-
return o(),
|
|
1545
|
-
}, [e]),
|
|
1604
|
+
s(e.getAllEvents());
|
|
1605
|
+
}, c = e.subscribeBatched(o);
|
|
1606
|
+
return o(), c;
|
|
1607
|
+
}, [e]), K(() => {
|
|
1546
1608
|
const o = (h) => {
|
|
1547
1609
|
if (!h) return;
|
|
1548
1610
|
const _ = e.getAllEvents().find((A) => A.id === h);
|
|
1549
1611
|
if (!_ || !Lt(_)) return;
|
|
1550
|
-
|
|
1612
|
+
p("all"), u(""), v(At), S(null), L(null), f(_), k(0);
|
|
1551
1613
|
const T = e.getAllEvents().filter(Lt).sort((A, O) => O.timestamp - A.timestamp).findIndex((A) => A.id === h);
|
|
1552
|
-
T >= 0 && (v((A) => Math.max(A, At, T + 1)),
|
|
1553
|
-
},
|
|
1554
|
-
return o(e.getFocusedEventId()),
|
|
1614
|
+
T >= 0 && (v((A) => Math.max(A, At, T + 1)), k(T));
|
|
1615
|
+
}, c = e.subscribeFocus(o);
|
|
1616
|
+
return o(e.getFocusedEventId()), c;
|
|
1555
1617
|
}, [e]);
|
|
1556
|
-
const
|
|
1557
|
-
const
|
|
1618
|
+
const i = U((o) => {
|
|
1619
|
+
const c = pt(o.args), h = [o.id, o.type, o.status, o.udfPath];
|
|
1558
1620
|
if (o.componentPath && h.push(o.componentPath), o.type === "query")
|
|
1559
1621
|
h.push(String(o.queryId), `q${o.queryId}`), o.triggeredBy && h.push(o.triggeredBy);
|
|
1560
1622
|
else {
|
|
1561
1623
|
const _ = o.type === "mutation" ? "m" : "a";
|
|
1562
1624
|
h.push(String(o.requestId), `${_}${o.requestId}`);
|
|
1563
1625
|
}
|
|
1564
|
-
return h.push(
|
|
1626
|
+
return h.push(Bt(c)), o.result !== void 0 && h.push(Bt(o.result)), o.error && h.push(o.error), o.logLines && o.logLines.length > 0 && h.push(o.logLines.join(`
|
|
1565
1627
|
`)), typeof o.duration == "number" && h.push(`${o.duration}`, `${o.duration}ms`), typeof o.simulatedDelayMs == "number" && o.simulatedDelayMs > 0 && h.push(`simulated ${o.simulatedDelayMs}`, `delay ${o.simulatedDelayMs}ms`), typeof o.endToEndDurationMs == "number" && h.push(`${o.endToEndDurationMs}`, `${o.endToEndDurationMs}ms`, "end-to-end"), h.join(`
|
|
1566
1628
|
`).toLowerCase();
|
|
1567
|
-
}, []),
|
|
1629
|
+
}, []), N = U(
|
|
1568
1630
|
(o) => {
|
|
1569
|
-
if (
|
|
1570
|
-
return
|
|
1571
|
-
const
|
|
1572
|
-
return o.tokenType &&
|
|
1631
|
+
if (Pt(o))
|
|
1632
|
+
return i(o);
|
|
1633
|
+
const c = [o.id, o.type, o.status, o.direction, o.messageType];
|
|
1634
|
+
return o.tokenType && c.push(o.tokenType), o.error && c.push(o.error), o.details !== void 0 && c.push(Bt(o.details)), c.join(`
|
|
1573
1635
|
`).toLowerCase();
|
|
1574
1636
|
},
|
|
1575
|
-
[
|
|
1576
|
-
), { filteredEvents:
|
|
1637
|
+
[i]
|
|
1638
|
+
), { filteredEvents: $, totalMatchCount: D, hasMoreResults: Q } = V(() => {
|
|
1577
1639
|
let o = a.filter(Lt);
|
|
1578
|
-
|
|
1579
|
-
const
|
|
1580
|
-
|
|
1581
|
-
const T =
|
|
1582
|
-
return
|
|
1640
|
+
l !== "all" && (l === "error" ? o = o.filter((g) => g.status === "error") : o = o.filter((g) => g.type === l));
|
|
1641
|
+
const c = d.trim().toLowerCase().split(/\s+/).filter((g) => g.length > 0);
|
|
1642
|
+
c.length > 0 && (o = o.filter((g) => {
|
|
1643
|
+
const T = N(g);
|
|
1644
|
+
return c.every((A) => T.includes(A));
|
|
1583
1645
|
}));
|
|
1584
1646
|
const h = o.sort((g, T) => T.timestamp - g.timestamp), _ = h.slice(0, w);
|
|
1585
1647
|
return {
|
|
@@ -1587,180 +1649,180 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
1587
1649
|
totalMatchCount: h.length,
|
|
1588
1650
|
hasMoreResults: h.length > _.length
|
|
1589
1651
|
};
|
|
1590
|
-
}, [a,
|
|
1591
|
-
|
|
1592
|
-
if (
|
|
1593
|
-
|
|
1652
|
+
}, [a, l, d, w, N]);
|
|
1653
|
+
K(() => {
|
|
1654
|
+
if ($.length === 0) {
|
|
1655
|
+
k(0);
|
|
1594
1656
|
return;
|
|
1595
1657
|
}
|
|
1596
|
-
|
|
1597
|
-
}, [
|
|
1658
|
+
k((o) => Math.min(o, $.length - 1));
|
|
1659
|
+
}, [$.length]);
|
|
1598
1660
|
const B = V(() => {
|
|
1599
|
-
const o = a.filter(Lt),
|
|
1661
|
+
const o = a.filter(Lt), c = o.filter((A) => A.type === "query"), h = o.filter((A) => A.type === "mutation"), _ = o.filter((A) => A.type === "action"), g = o.filter((A) => A.type === "auth"), T = o.filter((A) => A.status === "error").length;
|
|
1600
1662
|
return {
|
|
1601
|
-
queries:
|
|
1663
|
+
queries: c.length,
|
|
1602
1664
|
mutations: h.length,
|
|
1603
1665
|
actions: _.length,
|
|
1604
1666
|
auth: g.length,
|
|
1605
1667
|
errors: T,
|
|
1606
|
-
total:
|
|
1668
|
+
total: c.length + h.length + _.length + g.length
|
|
1607
1669
|
};
|
|
1608
|
-
}, [a]),
|
|
1609
|
-
|
|
1610
|
-
const o = (
|
|
1611
|
-
if (
|
|
1612
|
-
if ((
|
|
1613
|
-
|
|
1670
|
+
}, [a]), Z = !!r?.waitingForConnection && l === "all" && !d;
|
|
1671
|
+
K(() => {
|
|
1672
|
+
const o = (c) => {
|
|
1673
|
+
if (qt()) {
|
|
1674
|
+
if ((c.metaKey || c.ctrlKey) && c.key === "k") {
|
|
1675
|
+
c.preventDefault(), j.current?.focus();
|
|
1614
1676
|
return;
|
|
1615
1677
|
}
|
|
1616
|
-
if (
|
|
1617
|
-
|
|
1678
|
+
if (c.key === "Escape") {
|
|
1679
|
+
c.preventDefault(), C ? f(null) : (l !== "all" || d) && (b("all"), x(""));
|
|
1618
1680
|
return;
|
|
1619
1681
|
}
|
|
1620
|
-
if (
|
|
1621
|
-
if (
|
|
1622
|
-
|
|
1623
|
-
else if (
|
|
1624
|
-
|
|
1625
|
-
else if (
|
|
1626
|
-
|
|
1627
|
-
const h =
|
|
1628
|
-
h && f(
|
|
1682
|
+
if (ue() !== j.current && $.length !== 0) {
|
|
1683
|
+
if (c.key === "ArrowDown")
|
|
1684
|
+
c.preventDefault(), k((h) => Math.min(h + 1, $.length - 1));
|
|
1685
|
+
else if (c.key === "ArrowUp")
|
|
1686
|
+
c.preventDefault(), k((h) => Math.max(h - 1, 0));
|
|
1687
|
+
else if (c.key === "Enter") {
|
|
1688
|
+
c.preventDefault();
|
|
1689
|
+
const h = $[m];
|
|
1690
|
+
h && f(C?.id === h.id ? null : h);
|
|
1629
1691
|
}
|
|
1630
1692
|
}
|
|
1631
1693
|
}
|
|
1632
1694
|
};
|
|
1633
1695
|
return window.addEventListener("keydown", o), () => window.removeEventListener("keydown", o);
|
|
1634
|
-
}, [
|
|
1635
|
-
const
|
|
1696
|
+
}, [$, m, C, l, d, b, x]);
|
|
1697
|
+
const P = (o) => {
|
|
1636
1698
|
if (o == null) return "0";
|
|
1637
|
-
const
|
|
1699
|
+
const c = JSON.stringify(o), h = new Blob([c]).size;
|
|
1638
1700
|
return h < 1024 ? `${h}B` : h < 1024 * 1024 ? `${(h / 1024).toFixed(1)}KB` : `${(h / (1024 * 1024)).toFixed(1)}MB`;
|
|
1639
|
-
},
|
|
1701
|
+
}, M = (o) => !Number.isFinite(o) || o < 0 ? "—" : o < 1e3 ? `${o.toFixed(3)}ms` : o < 6e4 ? `${(o / 1e3).toFixed(3)}s` : o < 36e5 ? `${(o / 6e4).toFixed(1)}m` : `${(o / 36e5).toFixed(2)}h`, J = (o) => typeof o.duration != "number" || !Number.isFinite(o.duration) || o.duration < 0 ? null : o.duration, tt = (o) => typeof o.simulatedDelayMs != "number" || !Number.isFinite(o.simulatedDelayMs) || o.simulatedDelayMs <= 0 ? 0 : o.simulatedDelayMs, ot = (o) => {
|
|
1640
1702
|
if (typeof o.endToEndDurationMs == "number" && Number.isFinite(o.endToEndDurationMs) && o.endToEndDurationMs >= 0)
|
|
1641
1703
|
return o.endToEndDurationMs;
|
|
1642
|
-
const
|
|
1643
|
-
return
|
|
1644
|
-
},
|
|
1645
|
-
const
|
|
1646
|
-
return
|
|
1704
|
+
const c = J(o);
|
|
1705
|
+
return c === null ? null : c + tt(o);
|
|
1706
|
+
}, it = (o) => {
|
|
1707
|
+
const c = Date.now() - o;
|
|
1708
|
+
return c < 2e3 ? "just now" : c < 6e4 ? `${Math.floor(c / 1e3)}s ago` : c < 36e5 ? `${Math.floor(c / 6e4)}m ago` : c < 864e5 ? `${Math.floor(c / 36e5)}h ago` : `${Math.floor(c / 864e5)}d ago`;
|
|
1647
1709
|
}, mt = (o) => new Date(o).toLocaleTimeString([], {
|
|
1648
1710
|
hour: "2-digit",
|
|
1649
1711
|
minute: "2-digit",
|
|
1650
1712
|
second: "2-digit",
|
|
1651
1713
|
fractionalSecondDigits: 3
|
|
1652
|
-
}), wt = (o) => o.type === "query" ? `Q${o.queryId}` : o.type === "mutation" ? `M${o.requestId}` : o.type === "action" ? `A${o.requestId}` : null, vt = (o) =>
|
|
1714
|
+
}), wt = (o) => o.type === "query" ? `Q${o.queryId}` : o.type === "mutation" ? `M${o.requestId}` : o.type === "action" ? `A${o.requestId}` : null, vt = (o) => Pt(o) ? wt(o) ?? o.id : `${o.direction === "client" ? "C" : "S"}:${o.messageType}`, bt = U((o, c) => {
|
|
1653
1715
|
if (typeof window > "u") return null;
|
|
1654
1716
|
const h = 8, _ = 300, g = window.innerWidth, T = window.innerHeight, A = Math.min(260, T - h * 2);
|
|
1655
|
-
let O =
|
|
1656
|
-
O + _ > g - h && (O =
|
|
1657
|
-
let
|
|
1658
|
-
return
|
|
1659
|
-
}, []), St =
|
|
1717
|
+
let O = c.right + h;
|
|
1718
|
+
O + _ > g - h && (O = c.left - _ - h), O < h && (O = Math.max(h, g - _ - h));
|
|
1719
|
+
let F = c.top + c.height / 2 - A / 2;
|
|
1720
|
+
return F < h && (F = h), F + A > T - h && (F = Math.max(h, T - h - A)), { event: o, x: O, y: F };
|
|
1721
|
+
}, []), St = U(
|
|
1660
1722
|
(o) => {
|
|
1661
|
-
if (
|
|
1723
|
+
if (Qt(o)) {
|
|
1662
1724
|
const A = [
|
|
1663
|
-
{ label: "Copy Message Type", action: () =>
|
|
1725
|
+
{ label: "Copy Message Type", action: () => R(o.messageType), shortcut: "⌘C" }
|
|
1664
1726
|
];
|
|
1665
1727
|
return o.error && A.push({
|
|
1666
1728
|
label: "Copy Error",
|
|
1667
|
-
action: () =>
|
|
1729
|
+
action: () => R(o.error)
|
|
1668
1730
|
}), o.details !== void 0 && A.push({
|
|
1669
1731
|
label: "Copy Details",
|
|
1670
|
-
action: () =>
|
|
1732
|
+
action: () => R(JSON.stringify(o.details, null, 2))
|
|
1671
1733
|
}), A.push({
|
|
1672
1734
|
label: "Filter by Type: auth",
|
|
1673
|
-
action: () =>
|
|
1735
|
+
action: () => b("auth"),
|
|
1674
1736
|
separator: !0
|
|
1675
1737
|
}), A.push({
|
|
1676
1738
|
label: "Copy Event ID",
|
|
1677
|
-
action: () =>
|
|
1739
|
+
action: () => R(o.id),
|
|
1678
1740
|
separator: !0
|
|
1679
1741
|
}), A.push({
|
|
1680
1742
|
label: "Copy as JSON",
|
|
1681
|
-
action: () =>
|
|
1743
|
+
action: () => R(JSON.stringify(o, null, 2))
|
|
1682
1744
|
}), A;
|
|
1683
1745
|
}
|
|
1684
|
-
const
|
|
1685
|
-
{ label: "Copy Function Path", action: () =>
|
|
1746
|
+
const c = pt(o.args), h = c != null, _ = o.status === "success" && o.result !== void 0, g = o.status === "error" && !!o.error, T = [
|
|
1747
|
+
{ label: "Copy Function Path", action: () => R(o.udfPath), shortcut: "⌘C" }
|
|
1686
1748
|
];
|
|
1687
1749
|
if (h) {
|
|
1688
|
-
const A = JSON.stringify(
|
|
1750
|
+
const A = JSON.stringify(c);
|
|
1689
1751
|
T.push({
|
|
1690
1752
|
label: "Copy as convex run",
|
|
1691
|
-
action: () =>
|
|
1753
|
+
action: () => R(`npx convex run ${o.udfPath} '${A}'`)
|
|
1692
1754
|
}), T.push({
|
|
1693
1755
|
label: "Copy Arguments",
|
|
1694
|
-
action: () =>
|
|
1756
|
+
action: () => R(JSON.stringify(c, null, 2))
|
|
1695
1757
|
});
|
|
1696
1758
|
}
|
|
1697
1759
|
return _ && T.push({
|
|
1698
1760
|
label: "Copy Result",
|
|
1699
|
-
action: () =>
|
|
1761
|
+
action: () => R(JSON.stringify(o.result, null, 2))
|
|
1700
1762
|
}), g && T.push({
|
|
1701
1763
|
label: "Copy Error",
|
|
1702
|
-
action: () =>
|
|
1764
|
+
action: () => R(o.error)
|
|
1703
1765
|
}), T.push({
|
|
1704
1766
|
label: "Filter by Function",
|
|
1705
|
-
action: () =>
|
|
1767
|
+
action: () => x(o.udfPath),
|
|
1706
1768
|
separator: !0
|
|
1707
1769
|
}), T.push({
|
|
1708
1770
|
label: `Filter by Type: ${o.type}`,
|
|
1709
|
-
action: () =>
|
|
1771
|
+
action: () => b(o.type)
|
|
1710
1772
|
}), T.push({
|
|
1711
1773
|
label: "Copy Event ID",
|
|
1712
|
-
action: () =>
|
|
1774
|
+
action: () => R(o.id),
|
|
1713
1775
|
separator: !0
|
|
1714
1776
|
}), T.push({
|
|
1715
1777
|
label: "Copy as JSON",
|
|
1716
|
-
action: () =>
|
|
1778
|
+
action: () => R(JSON.stringify(o, null, 2))
|
|
1717
1779
|
}), T;
|
|
1718
1780
|
},
|
|
1719
|
-
[
|
|
1781
|
+
[b, x]
|
|
1720
1782
|
);
|
|
1721
1783
|
return /* @__PURE__ */ n("div", { className: "flex flex-col h-full overflow-hidden", children: [
|
|
1722
|
-
/* @__PURE__ */ t("style", { children:
|
|
1784
|
+
/* @__PURE__ */ t("style", { children: Pe }),
|
|
1723
1785
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2 px-3 py-1.5 border-b border-dt-border-light", children: [
|
|
1724
1786
|
/* @__PURE__ */ t("div", { className: "flex gap-[3px] bg-zinc-900/50 p-[3px] rounded-md border border-zinc-700/30", children: ["all", "query", "mutation", "action", "auth", "error"].map((o) => /* @__PURE__ */ t(
|
|
1725
1787
|
"button",
|
|
1726
1788
|
{
|
|
1727
|
-
className: `px-2 py-1 text-[11px] font-mono font-bold uppercase tracking-wide bg-transparent border-none rounded cursor-pointer transition-all ${
|
|
1728
|
-
onClick: () =>
|
|
1789
|
+
className: `px-2 py-1 text-[11px] font-mono font-bold uppercase tracking-wide bg-transparent border-none rounded cursor-pointer transition-all ${l === o ? o === "query" ? "bg-dt-query/25 text-dt-query shadow-[0_0_0_1px_rgba(96,165,250,0.5)]" : o === "mutation" ? "bg-dt-mutation/25 text-dt-mutation shadow-[0_0_0_1px_rgba(167,139,250,0.5)]" : o === "action" ? "bg-dt-action/25 text-dt-action shadow-[0_0_0_1px_rgba(52,211,153,0.5)]" : o === "auth" ? "bg-dt-warning/20 text-dt-warning shadow-[0_0_0_1px_rgba(245,158,11,0.5)]" : o === "error" ? "bg-dt-error/25 text-dt-error shadow-[0_0_0_1px_rgba(239,68,68,0.5)]" : "bg-zinc-500/25 text-dt-text-tertiary shadow-[0_0_0_1px_rgba(161,161,170,0.4)]" : o === "query" ? "text-dt-text-muted hover:bg-dt-query/15 hover:text-dt-query" : o === "mutation" ? "text-dt-text-muted hover:bg-dt-mutation/15 hover:text-dt-mutation" : o === "action" ? "text-dt-text-muted hover:bg-dt-action/15 hover:text-dt-action" : o === "auth" ? "text-dt-text-muted hover:bg-dt-warning/15 hover:text-dt-warning" : o === "error" ? "text-dt-text-muted hover:bg-dt-error/15 hover:text-dt-error" : "text-dt-text-muted hover:bg-white/5 hover:text-dt-text-tertiary"}`,
|
|
1790
|
+
onClick: () => b(o),
|
|
1729
1791
|
children: o === "all" ? `All ${B.total}` : `${o === "auth" ? "C" : o === "error" ? "E" : o.charAt(0).toUpperCase()} ${o === "query" ? B.queries : o === "mutation" ? B.mutations : o === "action" ? B.actions : o === "error" ? B.errors : B.auth}`
|
|
1730
1792
|
},
|
|
1731
1793
|
o
|
|
1732
1794
|
)) }),
|
|
1733
1795
|
/* @__PURE__ */ t(
|
|
1734
|
-
|
|
1796
|
+
Gt,
|
|
1735
1797
|
{
|
|
1736
|
-
ref:
|
|
1737
|
-
value:
|
|
1738
|
-
onValueChange:
|
|
1739
|
-
onClear: () =>
|
|
1798
|
+
ref: j,
|
|
1799
|
+
value: d,
|
|
1800
|
+
onValueChange: x,
|
|
1801
|
+
onClear: () => x(""),
|
|
1740
1802
|
placeholder: "Search path/auth/error/details... (Cmd/Ctrl+K)",
|
|
1741
1803
|
className: "stretch"
|
|
1742
1804
|
}
|
|
1743
1805
|
),
|
|
1744
|
-
/* @__PURE__ */ t("div", { className: "flex items-center gap-1 ml-auto shrink-0", children: (
|
|
1806
|
+
/* @__PURE__ */ t("div", { className: "flex items-center gap-1 ml-auto shrink-0", children: (l !== "all" || d) && /* @__PURE__ */ t(
|
|
1745
1807
|
"button",
|
|
1746
1808
|
{
|
|
1747
1809
|
className: "p-1 bg-transparent border-none text-dt-text-muted cursor-pointer rounded transition-colors hover:text-dt-text-tertiary",
|
|
1748
1810
|
onClick: () => {
|
|
1749
|
-
|
|
1811
|
+
b("all"), x("");
|
|
1750
1812
|
},
|
|
1751
1813
|
title: "Clear filters (Esc)",
|
|
1752
1814
|
children: /* @__PURE__ */ t("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "currentColor", children: /* @__PURE__ */ t("path", { d: "M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z" }) })
|
|
1753
1815
|
}
|
|
1754
1816
|
) })
|
|
1755
1817
|
] }),
|
|
1756
|
-
|
|
1818
|
+
$.length === 0 && /* @__PURE__ */ n("div", { className: "flex flex-col items-center justify-center py-12 text-dt-text-muted gap-2", children: [
|
|
1757
1819
|
/* @__PURE__ */ n("svg", { width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: [
|
|
1758
1820
|
/* @__PURE__ */ t("circle", { cx: "12", cy: "12", r: "10", strokeWidth: "1.5" }),
|
|
1759
1821
|
/* @__PURE__ */ t("path", { d: "M12 6v6l4 2", strokeWidth: "1.5", strokeLinecap: "round" })
|
|
1760
1822
|
] }),
|
|
1761
|
-
|
|
1823
|
+
Z ? /* @__PURE__ */ n(nt, { children: [
|
|
1762
1824
|
/* @__PURE__ */ t("p", { children: "Waiting for Convex WebSocket activity" }),
|
|
1763
|
-
r.needsReload ? /* @__PURE__ */ n(
|
|
1825
|
+
r.needsReload ? /* @__PURE__ */ n(nt, { children: [
|
|
1764
1826
|
/* @__PURE__ */ t("p", { className: "text-[11px] text-dt-text-muted/60 max-w-[360px] text-center", children: "Page was already connected before DevTools attached. Reload to start capturing this connection." }),
|
|
1765
1827
|
/* @__PURE__ */ t(
|
|
1766
1828
|
"button",
|
|
@@ -1782,54 +1844,54 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
1782
1844
|
" ",
|
|
1783
1845
|
r.captureLive ? "live" : r.needsReload ? "reload" : "waiting"
|
|
1784
1846
|
] })
|
|
1785
|
-
] }) : /* @__PURE__ */ n(
|
|
1847
|
+
] }) : /* @__PURE__ */ n(nt, { children: [
|
|
1786
1848
|
/* @__PURE__ */ t("p", { children: "No activity yet" }),
|
|
1787
|
-
/* @__PURE__ */ t("p", { className: "text-[11px] text-dt-text-muted/60", children:
|
|
1849
|
+
/* @__PURE__ */ t("p", { className: "text-[11px] text-dt-text-muted/60", children: l !== "all" || d ? "No activity matches your current filters" : "Execute operations or auth flows to see them here" })
|
|
1788
1850
|
] })
|
|
1789
1851
|
] }),
|
|
1790
|
-
|
|
1852
|
+
$.length > 0 && /* @__PURE__ */ n("div", { className: "flex flex-1 overflow-hidden", children: [
|
|
1791
1853
|
/* @__PURE__ */ n("div", { className: "flex-1 overflow-y-auto", children: [
|
|
1792
|
-
|
|
1854
|
+
Q && /* @__PURE__ */ n("div", { className: "text-center text-[10px] text-dt-text-muted/60 py-1 border-b border-dt-border-light/30", children: [
|
|
1793
1855
|
"Showing ",
|
|
1794
|
-
|
|
1856
|
+
$.length,
|
|
1795
1857
|
" of ",
|
|
1796
|
-
|
|
1858
|
+
D
|
|
1797
1859
|
] }),
|
|
1798
|
-
|
|
1799
|
-
const h =
|
|
1860
|
+
$.map((o, c) => {
|
|
1861
|
+
const h = C?.id === o.id, _ = c === m;
|
|
1800
1862
|
if (o.type === "auth") {
|
|
1801
|
-
const
|
|
1863
|
+
const Y = o.direction === "client" ? "cli" : "srv", ct = o.direction === "client" ? "→" : "←", lt = o.details && typeof o.details == "object" && !Array.isArray(o.details) ? Object.keys(o.details).length : null;
|
|
1802
1864
|
return /* @__PURE__ */ t(
|
|
1803
1865
|
"div",
|
|
1804
1866
|
{
|
|
1805
1867
|
className: `flex flex-col px-3 py-1.5 border-b border-dt-border-light/50 cursor-pointer transition-colors hover:bg-white/[0.03] ${h ? "bg-white/[0.06]" : ""} ${_ ? "bg-white/[0.03] outline outline-1 outline-dt-info/30 -outline-offset-1" : ""} ${o.status === "error" ? "border-l-2 border-l-dt-error/40" : ""}`,
|
|
1806
1868
|
onClick: () => {
|
|
1807
|
-
f(h ? null : o),
|
|
1869
|
+
f(h ? null : o), k(c);
|
|
1808
1870
|
},
|
|
1809
|
-
onKeyDown: (
|
|
1810
|
-
(
|
|
1871
|
+
onKeyDown: (X) => {
|
|
1872
|
+
(X.key === "Enter" || X.key === " ") && (X.preventDefault(), f(h ? null : o), k(c));
|
|
1811
1873
|
},
|
|
1812
|
-
onContextMenu: (
|
|
1813
|
-
|
|
1814
|
-
x:
|
|
1815
|
-
y:
|
|
1874
|
+
onContextMenu: (X) => {
|
|
1875
|
+
X.preventDefault(), S(null), L({
|
|
1876
|
+
x: X.clientX,
|
|
1877
|
+
y: X.clientY,
|
|
1816
1878
|
items: St(o)
|
|
1817
1879
|
});
|
|
1818
1880
|
},
|
|
1819
|
-
onMouseEnter: (
|
|
1820
|
-
const
|
|
1821
|
-
|
|
1881
|
+
onMouseEnter: (X) => {
|
|
1882
|
+
const Ot = X.currentTarget.getBoundingClientRect(), xt = bt(o, Ot);
|
|
1883
|
+
xt && S(xt);
|
|
1822
1884
|
},
|
|
1823
|
-
onMouseMove: (
|
|
1824
|
-
if (
|
|
1825
|
-
const
|
|
1826
|
-
|
|
1827
|
-
(yt) => yt && yt.event.id === o.id && (yt.x !==
|
|
1885
|
+
onMouseMove: (X) => {
|
|
1886
|
+
if (y?.event.id === o.id) {
|
|
1887
|
+
const Ot = X.currentTarget.getBoundingClientRect(), xt = bt(o, Ot);
|
|
1888
|
+
xt && S(
|
|
1889
|
+
(yt) => yt && yt.event.id === o.id && (yt.x !== xt.x || yt.y !== xt.y) ? xt : yt
|
|
1828
1890
|
);
|
|
1829
1891
|
}
|
|
1830
1892
|
},
|
|
1831
1893
|
onMouseLeave: () => {
|
|
1832
|
-
|
|
1894
|
+
S((X) => X && X.event.id === o.id ? null : X);
|
|
1833
1895
|
},
|
|
1834
1896
|
role: "button",
|
|
1835
1897
|
tabIndex: 0,
|
|
@@ -1846,18 +1908,18 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
1846
1908
|
}
|
|
1847
1909
|
),
|
|
1848
1910
|
/* @__PURE__ */ n("span", { className: "font-mono text-[12px] text-dt-text-secondary truncate flex-1", children: [
|
|
1849
|
-
|
|
1911
|
+
ct,
|
|
1850
1912
|
" ",
|
|
1851
1913
|
o.messageType
|
|
1852
1914
|
] }),
|
|
1853
1915
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2 shrink-0 text-[11px] text-dt-text-muted ml-auto", children: [
|
|
1854
1916
|
o.tokenType && /* @__PURE__ */ t("span", { className: "text-dt-text-muted/80 font-mono text-[10px]", children: o.tokenType }),
|
|
1855
|
-
|
|
1856
|
-
|
|
1917
|
+
lt !== null && /* @__PURE__ */ n("span", { className: "text-dt-text-muted/70 font-mono text-[10px]", children: [
|
|
1918
|
+
lt,
|
|
1857
1919
|
"f"
|
|
1858
1920
|
] }),
|
|
1859
1921
|
o.error && /* @__PURE__ */ t("span", { className: "text-dt-error truncate max-w-[180px]", title: o.error, children: o.error }),
|
|
1860
|
-
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/70 font-mono text-[10px]", children:
|
|
1922
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/70 font-mono text-[10px]", children: Y }),
|
|
1861
1923
|
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/60 font-mono", children: mt(o.timestamp) })
|
|
1862
1924
|
] })
|
|
1863
1925
|
] })
|
|
@@ -1865,38 +1927,38 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
1865
1927
|
o.id
|
|
1866
1928
|
);
|
|
1867
1929
|
}
|
|
1868
|
-
const g = o, T =
|
|
1930
|
+
const g = o, T = pt(g.args), A = T !== void 0, O = g.type === "query" ? e.getSubscription(g.queryId) : null, F = O && O.updateCount > 0, G = ot(g), W = J(g), et = tt(g), at = g.type === "query" ? "Query" : g.type === "mutation" ? "Mutation" : "Action", ut = g.status === "success" ? "succeeded" : g.status === "error" ? "failed" : "pending", ht = et > 0 && W !== null, $t = `${at} ${g.udfPath} ${ut}${G !== null ? ` in ${ht ? `e2e ${M(G)}` : `net ${M(G)}`}` : ""}${ht ? ` (${M(W)} net + ${M(et)} simulated)` : ""}`, Dt = F && g.type === "query";
|
|
1869
1931
|
return /* @__PURE__ */ t(
|
|
1870
1932
|
"div",
|
|
1871
1933
|
{
|
|
1872
1934
|
className: `flex flex-col px-3 py-1.5 border-b border-dt-border-light/50 cursor-pointer transition-colors hover:bg-white/[0.03] ${h ? "bg-white/[0.06]" : ""} ${_ ? "bg-white/[0.03] outline outline-1 outline-dt-info/30 -outline-offset-1" : ""} ${g.status === "error" ? "border-l-2 border-l-dt-error/40" : ""} ${Dt ? "border-l-2 border-l-dt-query/30 bg-dt-query/[0.02]" : ""}`,
|
|
1873
1935
|
onClick: () => {
|
|
1874
|
-
f(h ? null : o),
|
|
1936
|
+
f(h ? null : o), k(c);
|
|
1875
1937
|
},
|
|
1876
|
-
onKeyDown: (
|
|
1877
|
-
(
|
|
1938
|
+
onKeyDown: (Y) => {
|
|
1939
|
+
(Y.key === "Enter" || Y.key === " ") && (Y.preventDefault(), f(h ? null : o), k(c));
|
|
1878
1940
|
},
|
|
1879
|
-
onContextMenu: (
|
|
1880
|
-
|
|
1881
|
-
x:
|
|
1882
|
-
y:
|
|
1941
|
+
onContextMenu: (Y) => {
|
|
1942
|
+
Y.preventDefault(), S(null), L({
|
|
1943
|
+
x: Y.clientX,
|
|
1944
|
+
y: Y.clientY,
|
|
1883
1945
|
items: St(g)
|
|
1884
1946
|
});
|
|
1885
1947
|
},
|
|
1886
|
-
onMouseEnter: (
|
|
1887
|
-
const
|
|
1888
|
-
|
|
1948
|
+
onMouseEnter: (Y) => {
|
|
1949
|
+
const ct = Y.currentTarget.getBoundingClientRect(), lt = bt(g, ct);
|
|
1950
|
+
lt && S(lt);
|
|
1889
1951
|
},
|
|
1890
|
-
onMouseMove: (
|
|
1891
|
-
if (
|
|
1892
|
-
const
|
|
1893
|
-
|
|
1894
|
-
(
|
|
1952
|
+
onMouseMove: (Y) => {
|
|
1953
|
+
if (y?.event.id === g.id) {
|
|
1954
|
+
const ct = Y.currentTarget.getBoundingClientRect(), lt = bt(g, ct);
|
|
1955
|
+
lt && S(
|
|
1956
|
+
(X) => X && X.event.id === g.id && (X.x !== lt.x || X.y !== lt.y) ? lt : X
|
|
1895
1957
|
);
|
|
1896
1958
|
}
|
|
1897
1959
|
},
|
|
1898
1960
|
onMouseLeave: () => {
|
|
1899
|
-
|
|
1961
|
+
S((Y) => Y && Y.event.id === g.id ? null : Y);
|
|
1900
1962
|
},
|
|
1901
1963
|
role: "button",
|
|
1902
1964
|
tabIndex: 0,
|
|
@@ -1931,48 +1993,48 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
1931
1993
|
"span",
|
|
1932
1994
|
{
|
|
1933
1995
|
className: "font-mono text-[11px] text-dt-text-muted min-w-0 flex-1 truncate max-w-[min(62vw,760px)]",
|
|
1934
|
-
title:
|
|
1996
|
+
title: st(T, 460),
|
|
1935
1997
|
children: [
|
|
1936
1998
|
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/60", children: "(" }),
|
|
1937
|
-
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: Mt(T,
|
|
1999
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: Mt(T, qe) }),
|
|
1938
2000
|
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/60", children: ")" })
|
|
1939
2001
|
]
|
|
1940
2002
|
}
|
|
1941
2003
|
)
|
|
1942
2004
|
] }),
|
|
1943
2005
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2 shrink-0 text-[11px] text-dt-text-muted ml-auto", children: [
|
|
1944
|
-
|
|
2006
|
+
F && /* @__PURE__ */ n("span", { className: "text-dt-info text-[10px]", title: "Subscription update", children: [
|
|
1945
2007
|
"↻",
|
|
1946
2008
|
O.updateCount
|
|
1947
2009
|
] }),
|
|
1948
|
-
g.status === "success" && "result" in g && g.result !== void 0 && /* @__PURE__ */ n("span", { className: "text-dt-text-muted/80", title:
|
|
2010
|
+
g.status === "success" && "result" in g && g.result !== void 0 && /* @__PURE__ */ n("span", { className: "text-dt-text-muted/80", title: st(g.result), children: [
|
|
1949
2011
|
"↓",
|
|
1950
|
-
|
|
2012
|
+
P(g.result)
|
|
1951
2013
|
] }),
|
|
1952
|
-
|
|
2014
|
+
G !== null && (!F || G > 100) && /* @__PURE__ */ n(
|
|
1953
2015
|
"span",
|
|
1954
2016
|
{
|
|
1955
2017
|
className: "font-mono text-dt-text-muted",
|
|
1956
|
-
title:
|
|
2018
|
+
title: ht ? `E2E ${M(G)} = Net ${M(W)} + Sim ${M(et)}` : `Net ${M(G)}`,
|
|
1957
2019
|
children: [
|
|
1958
|
-
|
|
1959
|
-
|
|
2020
|
+
F && "Δ",
|
|
2021
|
+
ht ? `E2E ${M(G)}` : `Net ${M(G)}`
|
|
1960
2022
|
]
|
|
1961
2023
|
}
|
|
1962
2024
|
),
|
|
1963
2025
|
g.status === "pending" && /* @__PURE__ */ t("span", { className: "font-mono text-dt-warning/90 text-[10px] uppercase", children: "pending" }),
|
|
1964
|
-
|
|
2026
|
+
ht && /* @__PURE__ */ n("span", { className: "font-mono text-dt-text-muted/85 text-[10px]", title: "Server/network round-trip", children: [
|
|
1965
2027
|
"Net ",
|
|
1966
|
-
|
|
2028
|
+
M(W)
|
|
1967
2029
|
] }),
|
|
1968
|
-
|
|
2030
|
+
et > 0 && /* @__PURE__ */ n(
|
|
1969
2031
|
"span",
|
|
1970
2032
|
{
|
|
1971
2033
|
className: "font-mono text-dt-warning/90 text-[10px]",
|
|
1972
2034
|
title: "Devtools simulated client delivery delay",
|
|
1973
2035
|
children: [
|
|
1974
2036
|
"Sim +",
|
|
1975
|
-
|
|
2037
|
+
M(et)
|
|
1976
2038
|
]
|
|
1977
2039
|
}
|
|
1978
2040
|
),
|
|
@@ -1994,29 +2056,29 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
1994
2056
|
o.id
|
|
1995
2057
|
);
|
|
1996
2058
|
}),
|
|
1997
|
-
|
|
2059
|
+
Q && /* @__PURE__ */ n("div", { className: "sticky bottom-0 z-[2] px-3 py-2 border-t border-dt-border-light/40 bg-dt-bg-secondary/85 backdrop-blur-sm flex items-center justify-between gap-2", children: [
|
|
1998
2060
|
/* @__PURE__ */ n("span", { className: "text-[10px] text-dt-text-muted", children: [
|
|
1999
2061
|
"Showing ",
|
|
2000
|
-
|
|
2062
|
+
$.length,
|
|
2001
2063
|
" of ",
|
|
2002
|
-
|
|
2064
|
+
D
|
|
2003
2065
|
] }),
|
|
2004
2066
|
/* @__PURE__ */ n(
|
|
2005
2067
|
"button",
|
|
2006
2068
|
{
|
|
2007
2069
|
type: "button",
|
|
2008
2070
|
className: "px-2 py-1 text-[10px] font-semibold rounded border border-dt-border-light text-dt-text-secondary bg-dt-bg-tertiary hover:bg-white/10 hover:border-dt-border transition-colors",
|
|
2009
|
-
onClick: () => v((o) => Math.min(o +
|
|
2071
|
+
onClick: () => v((o) => Math.min(o + se, D)),
|
|
2010
2072
|
children: [
|
|
2011
2073
|
"Load ",
|
|
2012
|
-
Math.min(
|
|
2074
|
+
Math.min(se, D - $.length),
|
|
2013
2075
|
" more"
|
|
2014
2076
|
]
|
|
2015
2077
|
}
|
|
2016
2078
|
)
|
|
2017
2079
|
] })
|
|
2018
2080
|
] }),
|
|
2019
|
-
|
|
2081
|
+
C && /* @__PURE__ */ n("div", { className: "w-[min(58vw,620px)] min-w-[420px] border-l border-dt-border overflow-y-auto bg-dt-bg-secondary/50 animate-[dt-slide-in_0.2s_ease-out] shrink-0", children: [
|
|
2020
2082
|
/* @__PURE__ */ n("div", { className: "flex items-center justify-between px-3 py-2 border-b border-dt-border-light", children: [
|
|
2021
2083
|
/* @__PURE__ */ t("h4", { className: "text-[12px] font-semibold text-dt-text-secondary m-0", children: "Details" }),
|
|
2022
2084
|
/* @__PURE__ */ t(
|
|
@@ -2029,8 +2091,8 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2029
2091
|
)
|
|
2030
2092
|
] }),
|
|
2031
2093
|
/* @__PURE__ */ n("div", { className: "p-3 flex flex-col gap-3", children: [
|
|
2032
|
-
|
|
2033
|
-
const o = e.getSubscription(
|
|
2094
|
+
C.type === "query" && e.getSubscription(C.queryId) && (() => {
|
|
2095
|
+
const o = e.getSubscription(C.queryId);
|
|
2034
2096
|
if (o.updateCount > 0) {
|
|
2035
2097
|
const h = mt(o.addedAt);
|
|
2036
2098
|
return /* @__PURE__ */ n("div", { className: "flex items-center gap-1 flex-wrap bg-dt-info/5 border border-dt-info/20 rounded-md px-2 py-1 text-[10px] font-mono", children: [
|
|
@@ -2041,7 +2103,7 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2041
2103
|
] }),
|
|
2042
2104
|
/* @__PURE__ */ n("span", { className: "text-dt-text-muted/70", children: [
|
|
2043
2105
|
"since ",
|
|
2044
|
-
|
|
2106
|
+
it(o.addedAt)
|
|
2045
2107
|
] }),
|
|
2046
2108
|
/* @__PURE__ */ t(
|
|
2047
2109
|
"span",
|
|
@@ -2055,25 +2117,25 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2055
2117
|
}
|
|
2056
2118
|
return null;
|
|
2057
2119
|
})(),
|
|
2058
|
-
|
|
2059
|
-
const o =
|
|
2060
|
-
return /* @__PURE__ */ n(
|
|
2120
|
+
E && (() => {
|
|
2121
|
+
const o = E.udfPath, c = E.componentPath, h = new Date(E.timestamp), _ = wt(E), g = ot(E), T = J(E), A = tt(E), O = g !== null ? M(g) : null, F = T !== null ? M(T) : null, G = A > 0 ? M(A) : null, W = pt(E.args), et = E.status === "success" && "result" in E && E.result !== void 0 ? E.result : void 0;
|
|
2122
|
+
return /* @__PURE__ */ n(nt, { children: [
|
|
2061
2123
|
/* @__PURE__ */ n("div", { className: "flex flex-col gap-2", children: [
|
|
2062
2124
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2", children: [
|
|
2063
2125
|
/* @__PURE__ */ t(
|
|
2064
2126
|
"span",
|
|
2065
2127
|
{
|
|
2066
|
-
className: `text-[11px] font-bold uppercase tracking-wider ${
|
|
2067
|
-
children:
|
|
2128
|
+
className: `text-[11px] font-bold uppercase tracking-wider ${E.type === "query" ? "text-dt-query" : E.type === "mutation" ? "text-dt-mutation" : "text-dt-action"}`,
|
|
2129
|
+
children: E.type === "query" ? "Query" : E.type === "mutation" ? "Mutation" : "Action"
|
|
2068
2130
|
}
|
|
2069
2131
|
),
|
|
2070
2132
|
/* @__PURE__ */ n(
|
|
2071
2133
|
"span",
|
|
2072
2134
|
{
|
|
2073
|
-
className: `text-[10px] font-semibold uppercase flex items-center gap-1 ${
|
|
2135
|
+
className: `text-[10px] font-semibold uppercase flex items-center gap-1 ${E.status === "success" ? "text-dt-success" : E.status === "error" ? "text-dt-error" : "text-dt-warning"}`,
|
|
2074
2136
|
children: [
|
|
2075
|
-
/* @__PURE__ */ t(Tt, { status:
|
|
2076
|
-
|
|
2137
|
+
/* @__PURE__ */ t(Tt, { status: E.status }),
|
|
2138
|
+
E.status?.toUpperCase() ?? "PENDING"
|
|
2077
2139
|
]
|
|
2078
2140
|
}
|
|
2079
2141
|
),
|
|
@@ -2082,7 +2144,7 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2082
2144
|
{
|
|
2083
2145
|
className: "text-[10px] text-dt-text-muted ml-auto",
|
|
2084
2146
|
title: h.toLocaleString(),
|
|
2085
|
-
children:
|
|
2147
|
+
children: it(E.timestamp)
|
|
2086
2148
|
}
|
|
2087
2149
|
)
|
|
2088
2150
|
] }),
|
|
@@ -2093,47 +2155,47 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2093
2155
|
"E2E ",
|
|
2094
2156
|
O
|
|
2095
2157
|
] }),
|
|
2096
|
-
|
|
2158
|
+
G && F && /* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children: [
|
|
2097
2159
|
"Net ",
|
|
2098
|
-
|
|
2160
|
+
F
|
|
2099
2161
|
] }),
|
|
2100
|
-
|
|
2162
|
+
G && /* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 bg-dt-warning/15 border border-dt-warning/20 rounded text-[10px] text-dt-warning font-mono", children: [
|
|
2101
2163
|
"Sim +",
|
|
2102
|
-
|
|
2164
|
+
G
|
|
2103
2165
|
] })
|
|
2104
2166
|
] }),
|
|
2105
|
-
|
|
2106
|
-
|
|
2167
|
+
c && /* @__PURE__ */ t("div", { className: "text-[10px] text-dt-text-muted/60 font-mono truncate", title: c, children: c }),
|
|
2168
|
+
E.type === "query" && E.triggeredBy && /* @__PURE__ */ n(
|
|
2107
2169
|
"button",
|
|
2108
2170
|
{
|
|
2109
2171
|
type: "button",
|
|
2110
2172
|
className: "flex items-center gap-1.5 px-2 py-1 bg-dt-mutation/10 border border-dt-mutation/20 rounded text-[10px] text-dt-mutation hover:bg-dt-mutation/20 transition-colors cursor-pointer",
|
|
2111
2173
|
title: "Jump to triggering operation",
|
|
2112
|
-
onClick: () => e.setFocusedEventId(
|
|
2174
|
+
onClick: () => e.setFocusedEventId(E.triggeredBy),
|
|
2113
2175
|
children: [
|
|
2114
2176
|
/* @__PURE__ */ n("span", { children: [
|
|
2115
2177
|
"Triggered by ",
|
|
2116
|
-
|
|
2178
|
+
Oe(E.triggeredBy)
|
|
2117
2179
|
] }),
|
|
2118
2180
|
/* @__PURE__ */ t("span", { className: "text-dt-mutation/70", children: "→" })
|
|
2119
2181
|
]
|
|
2120
2182
|
}
|
|
2121
2183
|
)
|
|
2122
2184
|
] }),
|
|
2123
|
-
"args" in
|
|
2124
|
-
|
|
2125
|
-
|
|
2185
|
+
"args" in E && W !== void 0 && /* @__PURE__ */ t(Et, { data: W, label: "Arguments", maxHeight: 200 }),
|
|
2186
|
+
et !== void 0 && /* @__PURE__ */ t(Et, { data: et, label: "Result", maxHeight: 200 }),
|
|
2187
|
+
E.status === "error" && "error" in E && E.error && /* @__PURE__ */ n("div", { className: "flex flex-col gap-1", children: [
|
|
2126
2188
|
/* @__PURE__ */ t("div", { className: "text-[11px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: "Error" }),
|
|
2127
|
-
/* @__PURE__ */ t("div", { className: "text-[12px] text-dt-error bg-dt-error/10 rounded px-2 py-1.5 font-mono break-words", children:
|
|
2189
|
+
/* @__PURE__ */ t("div", { className: "text-[12px] text-dt-error bg-dt-error/10 rounded px-2 py-1.5 font-mono break-words", children: E.error })
|
|
2128
2190
|
] }),
|
|
2129
|
-
|
|
2191
|
+
E.logLines && E.logLines.length > 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-1", children: [
|
|
2130
2192
|
/* @__PURE__ */ t("div", { className: "text-[11px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: "Console Output" }),
|
|
2131
|
-
/* @__PURE__ */ t("div", { className: "bg-zinc-950/50 rounded border border-dt-border-light p-2 font-mono text-[11px] max-h-[150px] overflow-y-auto", children:
|
|
2193
|
+
/* @__PURE__ */ t("div", { className: "bg-zinc-950/50 rounded border border-dt-border-light p-2 font-mono text-[11px] max-h-[150px] overflow-y-auto", children: E.logLines.map((at, ut) => /* @__PURE__ */ t("div", { className: "text-dt-text-muted leading-relaxed", children: at }, ut)) })
|
|
2132
2194
|
] }),
|
|
2133
|
-
|
|
2195
|
+
E.trace && /* @__PURE__ */ t(ze, { trace: E.trace, maxHeight: 680 })
|
|
2134
2196
|
] });
|
|
2135
2197
|
})(),
|
|
2136
|
-
q && /* @__PURE__ */ n(
|
|
2198
|
+
q && /* @__PURE__ */ n(nt, { children: [
|
|
2137
2199
|
/* @__PURE__ */ n("div", { className: "flex flex-col gap-2", children: [
|
|
2138
2200
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2", children: [
|
|
2139
2201
|
/* @__PURE__ */ t("span", { className: "text-[11px] font-bold uppercase tracking-wider text-dt-warning", children: "Connection" }),
|
|
@@ -2152,7 +2214,7 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2152
2214
|
{
|
|
2153
2215
|
className: "text-[10px] text-dt-text-muted ml-auto",
|
|
2154
2216
|
title: new Date(q.timestamp).toLocaleString(),
|
|
2155
|
-
children:
|
|
2217
|
+
children: it(q.timestamp)
|
|
2156
2218
|
}
|
|
2157
2219
|
)
|
|
2158
2220
|
] }),
|
|
@@ -2175,15 +2237,15 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2175
2237
|
] })
|
|
2176
2238
|
] })
|
|
2177
2239
|
] }),
|
|
2178
|
-
|
|
2179
|
-
const o =
|
|
2240
|
+
y && (() => {
|
|
2241
|
+
const o = y.event;
|
|
2180
2242
|
if (o.type === "auth") {
|
|
2181
|
-
const
|
|
2243
|
+
const Y = o.details !== void 0 ? st(o.details, 200) : null, ct = o.error && o.error.length > 160 ? `${o.error.slice(0, 157)}…` : o.error;
|
|
2182
2244
|
return /* @__PURE__ */ n(
|
|
2183
2245
|
"div",
|
|
2184
2246
|
{
|
|
2185
2247
|
className: "fixed z-[9999999] w-[300px] bg-zinc-900/[0.98] border border-dt-border rounded-lg shadow-2xl p-3 flex flex-col gap-2 pointer-events-none animate-[dt-fade-in_0.15s_ease-out] backdrop-blur-lg",
|
|
2186
|
-
style: { top:
|
|
2248
|
+
style: { top: y.y, left: y.x },
|
|
2187
2249
|
role: "tooltip",
|
|
2188
2250
|
children: [
|
|
2189
2251
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2", children: [
|
|
@@ -2205,28 +2267,28 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2205
2267
|
)
|
|
2206
2268
|
] }),
|
|
2207
2269
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-1 flex-wrap", children: [
|
|
2208
|
-
/* @__PURE__ */ t("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children:
|
|
2270
|
+
/* @__PURE__ */ t("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children: it(o.timestamp) }),
|
|
2209
2271
|
/* @__PURE__ */ t("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children: vt(o) }),
|
|
2210
2272
|
o.tokenType && /* @__PURE__ */ t("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children: o.tokenType })
|
|
2211
2273
|
] }),
|
|
2212
|
-
|
|
2274
|
+
Y && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
|
|
2213
2275
|
/* @__PURE__ */ t("span", { className: "text-[10px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: "Details" }),
|
|
2214
|
-
/* @__PURE__ */ t("pre", { className: "font-mono text-[10px] text-dt-text-muted bg-zinc-950/50 rounded p-1.5 overflow-hidden max-h-[100px] whitespace-pre-wrap break-all m-0", children: /* @__PURE__ */ t(
|
|
2276
|
+
/* @__PURE__ */ t("pre", { className: "font-mono text-[10px] text-dt-text-muted bg-zinc-950/50 rounded p-1.5 overflow-hidden max-h-[100px] whitespace-pre-wrap break-all m-0", children: /* @__PURE__ */ t(Vt, { json: Y }) })
|
|
2215
2277
|
] }),
|
|
2216
|
-
|
|
2278
|
+
ct && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
|
|
2217
2279
|
/* @__PURE__ */ t("span", { className: "text-[10px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: "Error" }),
|
|
2218
|
-
/* @__PURE__ */ t("span", { className: "text-[11px] text-dt-error", title: o.error, children:
|
|
2280
|
+
/* @__PURE__ */ t("span", { className: "text-[11px] text-dt-error", title: o.error, children: ct })
|
|
2219
2281
|
] })
|
|
2220
2282
|
]
|
|
2221
2283
|
}
|
|
2222
2284
|
);
|
|
2223
2285
|
}
|
|
2224
|
-
const
|
|
2286
|
+
const c = vt(o), h = ot(o), _ = J(o), g = tt(o), T = h !== null ? M(h) : null, A = _ !== null ? M(_) : null, O = g > 0 ? M(g) : null, F = pt(o.args), G = F !== void 0 ? st(F) : null, W = F !== void 0 ? P(F) : null, et = F !== void 0 ? st(F) : "", at = o.status === "success" && o.result !== void 0 ? o.result : void 0, ut = at ? st(at) : null, ht = at ? st(at) : "", $t = at ? P(at) : null, Dt = o.status === "error" && o.error ? o.error.length > 160 ? `${o.error.slice(0, 157)}…` : o.error : null;
|
|
2225
2287
|
return /* @__PURE__ */ n(
|
|
2226
2288
|
"div",
|
|
2227
2289
|
{
|
|
2228
2290
|
className: "fixed z-[9999999] w-[300px] bg-zinc-900/[0.98] border border-dt-border rounded-lg shadow-2xl p-3 flex flex-col gap-2 pointer-events-none animate-[dt-fade-in_0.15s_ease-out] backdrop-blur-lg",
|
|
2229
|
-
style: { top:
|
|
2291
|
+
style: { top: y.y, left: y.x },
|
|
2230
2292
|
role: "tooltip",
|
|
2231
2293
|
children: [
|
|
2232
2294
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2", children: [
|
|
@@ -2250,7 +2312,7 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2250
2312
|
)
|
|
2251
2313
|
] }),
|
|
2252
2314
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-1 flex-wrap", children: [
|
|
2253
|
-
/* @__PURE__ */ t("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children:
|
|
2315
|
+
/* @__PURE__ */ t("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children: it(o.timestamp) }),
|
|
2254
2316
|
T && /* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children: [
|
|
2255
2317
|
"E2E ",
|
|
2256
2318
|
T
|
|
@@ -2263,7 +2325,7 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2263
2325
|
"Sim +",
|
|
2264
2326
|
O
|
|
2265
2327
|
] }),
|
|
2266
|
-
/* @__PURE__ */ t("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children:
|
|
2328
|
+
/* @__PURE__ */ t("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children: c }),
|
|
2267
2329
|
o.trace && /* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 bg-dt-info/15 border border-dt-info/20 rounded text-[10px] text-dt-info font-mono", children: [
|
|
2268
2330
|
"T",
|
|
2269
2331
|
o.trace.summary.spanCount
|
|
@@ -2274,21 +2336,21 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2274
2336
|
] })
|
|
2275
2337
|
] }),
|
|
2276
2338
|
o.componentPath && /* @__PURE__ */ t("div", { className: "text-[10px] text-dt-text-muted/60 font-mono truncate", title: o.componentPath, children: o.componentPath }),
|
|
2277
|
-
|
|
2339
|
+
F !== void 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
|
|
2278
2340
|
/* @__PURE__ */ n("div", { className: "flex items-center justify-between", children: [
|
|
2279
2341
|
/* @__PURE__ */ t("span", { className: "text-[10px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: "Args" }),
|
|
2280
|
-
|
|
2342
|
+
W && /* @__PURE__ */ t("span", { className: "text-[9px] text-dt-text-muted/60 font-mono", children: W })
|
|
2281
2343
|
] }),
|
|
2282
2344
|
/* @__PURE__ */ t(
|
|
2283
2345
|
"pre",
|
|
2284
2346
|
{
|
|
2285
2347
|
className: "font-mono text-[10px] text-dt-text-muted bg-zinc-950/50 rounded p-1.5 overflow-hidden max-h-[80px] whitespace-pre-wrap break-all m-0",
|
|
2286
|
-
title:
|
|
2287
|
-
children: /* @__PURE__ */ t(
|
|
2348
|
+
title: G ?? void 0,
|
|
2349
|
+
children: /* @__PURE__ */ t(Vt, { json: et })
|
|
2288
2350
|
}
|
|
2289
2351
|
)
|
|
2290
2352
|
] }),
|
|
2291
|
-
|
|
2353
|
+
at !== void 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
|
|
2292
2354
|
/* @__PURE__ */ n("div", { className: "flex items-center justify-between", children: [
|
|
2293
2355
|
/* @__PURE__ */ t("span", { className: "text-[10px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: "Result" }),
|
|
2294
2356
|
$t && /* @__PURE__ */ t("span", { className: "text-[9px] text-dt-text-muted/60 font-mono", children: $t })
|
|
@@ -2298,7 +2360,7 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2298
2360
|
{
|
|
2299
2361
|
className: "font-mono text-[10px] text-dt-text-muted bg-zinc-950/50 rounded p-1.5 overflow-hidden max-h-[80px] whitespace-pre-wrap break-all m-0",
|
|
2300
2362
|
title: ut ?? void 0,
|
|
2301
|
-
children: /* @__PURE__ */ t(
|
|
2363
|
+
children: /* @__PURE__ */ t(Vt, { json: ht })
|
|
2302
2364
|
}
|
|
2303
2365
|
)
|
|
2304
2366
|
] }),
|
|
@@ -2310,23 +2372,23 @@ function qe({ eventStore: e, panelConnectionState: r }) {
|
|
|
2310
2372
|
}
|
|
2311
2373
|
);
|
|
2312
2374
|
})(),
|
|
2313
|
-
|
|
2314
|
-
|
|
2375
|
+
I && /* @__PURE__ */ t(
|
|
2376
|
+
Yt,
|
|
2315
2377
|
{
|
|
2316
|
-
x:
|
|
2317
|
-
y:
|
|
2318
|
-
items:
|
|
2319
|
-
onClose: () =>
|
|
2378
|
+
x: I.x,
|
|
2379
|
+
y: I.y,
|
|
2380
|
+
items: I.items,
|
|
2381
|
+
onClose: () => L(null)
|
|
2320
2382
|
}
|
|
2321
2383
|
)
|
|
2322
2384
|
] });
|
|
2323
2385
|
}
|
|
2324
|
-
function
|
|
2386
|
+
function Vt({ json: e }) {
|
|
2325
2387
|
const r = V(() => e.replace(
|
|
2326
2388
|
/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?)/g,
|
|
2327
2389
|
(a) => {
|
|
2328
|
-
let
|
|
2329
|
-
return /^"/.test(a) ? /:$/.test(a) ?
|
|
2390
|
+
let s = "cdv-json-value";
|
|
2391
|
+
return /^"/.test(a) ? /:$/.test(a) ? s = "cdv-json-key" : s = "cdv-json-string" : /true|false/.test(a) ? s = "cdv-json-boolean" : /null/.test(a) ? s = "cdv-json-null" : s = "cdv-json-number", `<span class="${s}">${a}</span>`;
|
|
2330
2392
|
}
|
|
2331
2393
|
), [e]);
|
|
2332
2394
|
return /* @__PURE__ */ t("span", { dangerouslySetInnerHTML: { __html: r } });
|
|
@@ -2340,94 +2402,94 @@ function Tt({ status: e }) {
|
|
|
2340
2402
|
/* @__PURE__ */ t("circle", { cx: "8", cy: "8", r: "2" })
|
|
2341
2403
|
] });
|
|
2342
2404
|
}
|
|
2343
|
-
const
|
|
2405
|
+
const le = {
|
|
2344
2406
|
maxStringLength: 96,
|
|
2345
2407
|
stringTailLength: 20,
|
|
2346
2408
|
maxArrayItems: 4,
|
|
2347
2409
|
maxObjectEntries: 4,
|
|
2348
2410
|
maxDepth: 3
|
|
2349
2411
|
};
|
|
2350
|
-
function
|
|
2351
|
-
const [r, a] = z([]), [
|
|
2352
|
-
|
|
2353
|
-
const
|
|
2412
|
+
function Fe({ eventStore: e }) {
|
|
2413
|
+
const [r, a] = z([]), [s, l] = z(null), [p, d] = z(0), [u, w] = z("all"), [v, C] = z(""), [f, m] = z(null), [k, y] = z(null), S = Ct(null);
|
|
2414
|
+
K(() => {
|
|
2415
|
+
const b = () => {
|
|
2354
2416
|
a(e.getActiveSubscriptions());
|
|
2355
|
-
},
|
|
2356
|
-
return
|
|
2417
|
+
}, x = e.subscribeBatched(b);
|
|
2418
|
+
return b(), x;
|
|
2357
2419
|
}, [e]);
|
|
2358
|
-
const
|
|
2359
|
-
let
|
|
2360
|
-
return
|
|
2361
|
-
(
|
|
2362
|
-
)), [...
|
|
2363
|
-
}, [r,
|
|
2364
|
-
|
|
2365
|
-
const
|
|
2366
|
-
if (
|
|
2367
|
-
if ((
|
|
2368
|
-
|
|
2420
|
+
const I = V(() => {
|
|
2421
|
+
let b = r;
|
|
2422
|
+
return u !== "all" && (b = b.filter((x) => x.status === u)), v && (b = b.filter(
|
|
2423
|
+
(x) => x.udfPath.toLowerCase().includes(v.toLowerCase()) || x.componentPath?.toLowerCase().includes(v.toLowerCase())
|
|
2424
|
+
)), [...b].sort((x, i) => x.lastUpdate !== i.lastUpdate ? i.lastUpdate - x.lastUpdate : x.addedAt !== i.addedAt ? i.addedAt - x.addedAt : i.queryId - x.queryId);
|
|
2425
|
+
}, [r, u, v]);
|
|
2426
|
+
K(() => {
|
|
2427
|
+
const b = (x) => {
|
|
2428
|
+
if (qt()) {
|
|
2429
|
+
if ((x.metaKey || x.ctrlKey) && x.key === "k") {
|
|
2430
|
+
x.preventDefault(), S.current?.focus();
|
|
2369
2431
|
return;
|
|
2370
2432
|
}
|
|
2371
|
-
if (
|
|
2372
|
-
|
|
2433
|
+
if (x.key === "Escape") {
|
|
2434
|
+
x.preventDefault(), s !== null ? l(null) : (u !== "all" || v) && (w("all"), C(""));
|
|
2373
2435
|
return;
|
|
2374
2436
|
}
|
|
2375
|
-
if (
|
|
2376
|
-
if (
|
|
2377
|
-
|
|
2378
|
-
else if (
|
|
2379
|
-
|
|
2380
|
-
else if (
|
|
2381
|
-
|
|
2382
|
-
const
|
|
2383
|
-
|
|
2437
|
+
if (ue() !== S.current && I.length !== 0) {
|
|
2438
|
+
if (x.key === "ArrowDown")
|
|
2439
|
+
x.preventDefault(), d((i) => Math.min(i + 1, I.length - 1));
|
|
2440
|
+
else if (x.key === "ArrowUp")
|
|
2441
|
+
x.preventDefault(), d((i) => Math.max(i - 1, 0));
|
|
2442
|
+
else if (x.key === "Enter" || x.key === " ") {
|
|
2443
|
+
x.preventDefault();
|
|
2444
|
+
const i = I[p];
|
|
2445
|
+
i && l(s === i.queryId ? null : i.queryId);
|
|
2384
2446
|
}
|
|
2385
2447
|
}
|
|
2386
2448
|
}
|
|
2387
2449
|
};
|
|
2388
|
-
return window.addEventListener("keydown",
|
|
2389
|
-
}, [
|
|
2390
|
-
|
|
2391
|
-
}, [
|
|
2392
|
-
const
|
|
2393
|
-
|
|
2394
|
-
}, []),
|
|
2450
|
+
return window.addEventListener("keydown", b), () => window.removeEventListener("keydown", b);
|
|
2451
|
+
}, [I, p, s, u, v]), K(() => {
|
|
2452
|
+
d(0);
|
|
2453
|
+
}, []);
|
|
2454
|
+
const L = U((b) => {
|
|
2455
|
+
R(b);
|
|
2456
|
+
}, []), j = U((b, x) => {
|
|
2395
2457
|
if (typeof window > "u") return null;
|
|
2396
|
-
const
|
|
2397
|
-
let B =
|
|
2398
|
-
B +
|
|
2399
|
-
let
|
|
2400
|
-
return
|
|
2401
|
-
}, []),
|
|
2402
|
-
if (
|
|
2403
|
-
const
|
|
2404
|
-
return
|
|
2405
|
-
}, []), q =
|
|
2406
|
-
(
|
|
2407
|
-
const
|
|
2408
|
-
{ label: "Copy Function Path", action: () =>
|
|
2458
|
+
const i = 8, N = 300, $ = window.innerWidth, D = window.innerHeight, Q = Math.min(260, D - i * 2);
|
|
2459
|
+
let B = x.right + i;
|
|
2460
|
+
B + N > $ - i && (B = x.left - N - i), B < i && (B = Math.max(i, $ - N - i));
|
|
2461
|
+
let Z = x.top + x.height / 2 - Q / 2;
|
|
2462
|
+
return Z < i && (Z = i), Z + Q > D - i && (Z = Math.max(i, D - i - Q)), { subscription: b, x: B, y: Z };
|
|
2463
|
+
}, []), E = U((b) => {
|
|
2464
|
+
if (b == null) return "0";
|
|
2465
|
+
const x = JSON.stringify(b), i = new Blob([x]).size;
|
|
2466
|
+
return i < 1024 ? `${i}B` : i < 1024 * 1024 ? `${(i / 1024).toFixed(1)}KB` : `${(i / (1024 * 1024)).toFixed(1)}MB`;
|
|
2467
|
+
}, []), q = U(
|
|
2468
|
+
(b) => {
|
|
2469
|
+
const x = pt(b.args), i = x != null, N = b.currentValue !== void 0, $ = [
|
|
2470
|
+
{ label: "Copy Function Path", action: () => R(b.udfPath), shortcut: "⌘C" }
|
|
2409
2471
|
];
|
|
2410
|
-
return
|
|
2472
|
+
return i && $.push({
|
|
2411
2473
|
label: "Copy Arguments",
|
|
2412
|
-
action: () =>
|
|
2413
|
-
}),
|
|
2474
|
+
action: () => R(JSON.stringify(x, null, 2))
|
|
2475
|
+
}), N && $.push({
|
|
2414
2476
|
label: "Copy Current Value",
|
|
2415
|
-
action: () =>
|
|
2416
|
-
}),
|
|
2477
|
+
action: () => R(JSON.stringify(b.currentValue, null, 2))
|
|
2478
|
+
}), $.push({
|
|
2417
2479
|
label: "Filter by Function",
|
|
2418
|
-
action: () =>
|
|
2480
|
+
action: () => C(b.udfPath),
|
|
2419
2481
|
separator: !0
|
|
2420
|
-
}),
|
|
2482
|
+
}), $.push({
|
|
2421
2483
|
label: "Copy Query ID",
|
|
2422
|
-
action: () =>
|
|
2423
|
-
}),
|
|
2484
|
+
action: () => R(String(b.queryId))
|
|
2485
|
+
}), $;
|
|
2424
2486
|
},
|
|
2425
2487
|
[]
|
|
2426
|
-
),
|
|
2427
|
-
const
|
|
2428
|
-
if (
|
|
2429
|
-
const
|
|
2430
|
-
return
|
|
2488
|
+
), H = (b) => {
|
|
2489
|
+
const x = Math.floor((Date.now() - b) / 1e3);
|
|
2490
|
+
if (x < 60) return `${x}s ago`;
|
|
2491
|
+
const i = Math.floor(x / 60);
|
|
2492
|
+
return i < 60 ? `${i}m ago` : `${Math.floor(i / 60)}h ago`;
|
|
2431
2493
|
};
|
|
2432
2494
|
return /* @__PURE__ */ n("div", { className: "flex flex-col h-full overflow-hidden", children: [
|
|
2433
2495
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2 px-3 py-1.5 border-b border-dt-border-light", children: [
|
|
@@ -2435,118 +2497,118 @@ function Oe({ eventStore: e }) {
|
|
|
2435
2497
|
/* @__PURE__ */ t(
|
|
2436
2498
|
"button",
|
|
2437
2499
|
{
|
|
2438
|
-
className: `px-2 py-1 text-[11px] font-mono font-bold uppercase tracking-wide bg-transparent border-none rounded cursor-pointer transition-all hover:bg-white/5 hover:text-dt-text-tertiary ${
|
|
2500
|
+
className: `px-2 py-1 text-[11px] font-mono font-bold uppercase tracking-wide bg-transparent border-none rounded cursor-pointer transition-all hover:bg-white/5 hover:text-dt-text-tertiary ${u === "all" ? "bg-zinc-500/25 text-dt-text-tertiary shadow-[0_0_0_1px_rgba(161,161,170,0.4)]" : "text-dt-text-muted"}`,
|
|
2439
2501
|
onClick: () => w("all"),
|
|
2440
2502
|
"aria-label": "Show all subscriptions",
|
|
2441
|
-
"aria-pressed":
|
|
2503
|
+
"aria-pressed": u === "all",
|
|
2442
2504
|
children: "All"
|
|
2443
2505
|
}
|
|
2444
2506
|
),
|
|
2445
2507
|
/* @__PURE__ */ t(
|
|
2446
2508
|
"button",
|
|
2447
2509
|
{
|
|
2448
|
-
className: `px-2 py-1 text-[11px] font-mono font-bold uppercase tracking-wide bg-transparent border-none rounded cursor-pointer transition-all ${
|
|
2510
|
+
className: `px-2 py-1 text-[11px] font-mono font-bold uppercase tracking-wide bg-transparent border-none rounded cursor-pointer transition-all ${u === "active" ? "bg-dt-query/25 text-dt-query shadow-[0_0_0_1px_rgba(96,165,250,0.5)]" : "text-dt-text-muted hover:bg-dt-query/15 hover:text-dt-query"}`,
|
|
2449
2511
|
onClick: () => w("active"),
|
|
2450
2512
|
"aria-label": "Show active subscriptions",
|
|
2451
|
-
"aria-pressed":
|
|
2513
|
+
"aria-pressed": u === "active",
|
|
2452
2514
|
children: "Active"
|
|
2453
2515
|
}
|
|
2454
2516
|
),
|
|
2455
2517
|
/* @__PURE__ */ t(
|
|
2456
2518
|
"button",
|
|
2457
2519
|
{
|
|
2458
|
-
className: `px-2 py-1 text-[11px] font-mono font-bold uppercase tracking-wide bg-transparent border-none rounded cursor-pointer transition-all ${
|
|
2520
|
+
className: `px-2 py-1 text-[11px] font-mono font-bold uppercase tracking-wide bg-transparent border-none rounded cursor-pointer transition-all ${u === "error" ? "bg-dt-error/25 text-dt-error shadow-[0_0_0_1px_rgba(239,68,68,0.5)]" : "text-dt-text-muted hover:bg-dt-error/15 hover:text-dt-error"}`,
|
|
2459
2521
|
onClick: () => w("error"),
|
|
2460
2522
|
"aria-label": "Show error subscriptions",
|
|
2461
|
-
"aria-pressed":
|
|
2523
|
+
"aria-pressed": u === "error",
|
|
2462
2524
|
children: "Errors"
|
|
2463
2525
|
}
|
|
2464
2526
|
)
|
|
2465
2527
|
] }),
|
|
2466
2528
|
/* @__PURE__ */ t(
|
|
2467
|
-
|
|
2529
|
+
Gt,
|
|
2468
2530
|
{
|
|
2469
|
-
ref:
|
|
2531
|
+
ref: S,
|
|
2470
2532
|
value: v,
|
|
2471
|
-
onValueChange:
|
|
2472
|
-
onClear: () =>
|
|
2533
|
+
onValueChange: C,
|
|
2534
|
+
onClear: () => C(""),
|
|
2473
2535
|
placeholder: "Search subscriptions... (Cmd/Ctrl+K)",
|
|
2474
2536
|
className: "stretch"
|
|
2475
2537
|
}
|
|
2476
2538
|
)
|
|
2477
2539
|
] }),
|
|
2478
2540
|
/* @__PURE__ */ n("div", { className: "flex-1 overflow-y-auto", children: [
|
|
2479
|
-
|
|
2541
|
+
I.length === 0 && /* @__PURE__ */ n("div", { className: "flex flex-col items-center justify-center py-12 text-dt-text-muted gap-2", children: [
|
|
2480
2542
|
/* @__PURE__ */ t("svg", { width: "32", height: "32", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: /* @__PURE__ */ t("circle", { cx: "12", cy: "12", r: "10", strokeWidth: "1.5" }) }),
|
|
2481
|
-
/* @__PURE__ */ t("p", { children: r.length === 0 ? "No active subscriptions" :
|
|
2482
|
-
|
|
2543
|
+
/* @__PURE__ */ t("p", { children: r.length === 0 ? "No active subscriptions" : u !== "all" || v ? "No subscriptions match your filters" : "No active subscriptions" }),
|
|
2544
|
+
u !== "all" || v ? /* @__PURE__ */ t("p", { className: "text-[11px] text-dt-text-muted/60", children: "Try adjusting your filters or search" }) : null
|
|
2483
2545
|
] }),
|
|
2484
|
-
|
|
2485
|
-
const
|
|
2546
|
+
I.map((b, x) => {
|
|
2547
|
+
const i = s === b.queryId, N = x === p, $ = b.status === "error" ? "error" : "success", D = pt(b.args), Q = D != null, B = JSON.stringify(D ?? null, null, 2), Z = `Subscription ${b.queryId} ${b.udfPath} ${b.status}${Q ? ` with args ${Mt(D, le)}` : ""}`;
|
|
2486
2548
|
return /* @__PURE__ */ n(
|
|
2487
2549
|
"div",
|
|
2488
2550
|
{
|
|
2489
|
-
className: `border-b border-dt-border-light/50 transition-colors ${
|
|
2551
|
+
className: `border-b border-dt-border-light/50 transition-colors ${b.status === "error" ? "border-l-2 border-l-dt-error/40" : ""} ${i ? "bg-white/[0.03]" : ""} ${N ? "bg-white/[0.03] outline outline-1 outline-dt-info/30 -outline-offset-1" : ""}`,
|
|
2490
2552
|
children: [
|
|
2491
2553
|
/* @__PURE__ */ n(
|
|
2492
2554
|
"div",
|
|
2493
2555
|
{
|
|
2494
2556
|
className: "flex items-center gap-2 px-3 py-1.5 cursor-pointer hover:bg-white/[0.03]",
|
|
2495
2557
|
onClick: () => {
|
|
2496
|
-
|
|
2558
|
+
l(i ? null : b.queryId), d(x);
|
|
2497
2559
|
},
|
|
2498
|
-
onKeyDown: (
|
|
2499
|
-
(
|
|
2560
|
+
onKeyDown: (P) => {
|
|
2561
|
+
(P.key === "Enter" || P.key === " ") && (P.preventDefault(), l(i ? null : b.queryId), d(x));
|
|
2500
2562
|
},
|
|
2501
|
-
onContextMenu: (
|
|
2502
|
-
|
|
2503
|
-
x:
|
|
2504
|
-
y:
|
|
2505
|
-
items: q(
|
|
2563
|
+
onContextMenu: (P) => {
|
|
2564
|
+
P.preventDefault(), m(null), y({
|
|
2565
|
+
x: P.clientX,
|
|
2566
|
+
y: P.clientY,
|
|
2567
|
+
items: q(b)
|
|
2506
2568
|
});
|
|
2507
2569
|
},
|
|
2508
|
-
onMouseEnter: (
|
|
2509
|
-
const
|
|
2510
|
-
|
|
2570
|
+
onMouseEnter: (P) => {
|
|
2571
|
+
const M = P.currentTarget.getBoundingClientRect(), J = j(b, M);
|
|
2572
|
+
J && m(J);
|
|
2511
2573
|
},
|
|
2512
|
-
onMouseMove: (
|
|
2513
|
-
if (f?.subscription.queryId ===
|
|
2514
|
-
const
|
|
2515
|
-
|
|
2516
|
-
(
|
|
2574
|
+
onMouseMove: (P) => {
|
|
2575
|
+
if (f?.subscription.queryId === b.queryId) {
|
|
2576
|
+
const M = P.currentTarget.getBoundingClientRect(), J = j(b, M);
|
|
2577
|
+
J && m(
|
|
2578
|
+
(tt) => tt && tt.subscription.queryId === b.queryId && (tt.x !== J.x || tt.y !== J.y) ? J : tt
|
|
2517
2579
|
);
|
|
2518
2580
|
}
|
|
2519
2581
|
},
|
|
2520
2582
|
onMouseLeave: () => {
|
|
2521
|
-
f?.subscription.queryId ===
|
|
2583
|
+
f?.subscription.queryId === b.queryId && m(null);
|
|
2522
2584
|
},
|
|
2523
2585
|
role: "button",
|
|
2524
2586
|
tabIndex: 0,
|
|
2525
|
-
"aria-label":
|
|
2526
|
-
"aria-expanded":
|
|
2527
|
-
"aria-current":
|
|
2587
|
+
"aria-label": Z,
|
|
2588
|
+
"aria-expanded": i,
|
|
2589
|
+
"aria-current": N ? "true" : void 0,
|
|
2528
2590
|
children: [
|
|
2529
2591
|
/* @__PURE__ */ n("span", { className: "text-[10px] font-mono text-dt-text-muted font-semibold shrink-0", children: [
|
|
2530
2592
|
"Q",
|
|
2531
|
-
|
|
2593
|
+
b.queryId
|
|
2532
2594
|
] }),
|
|
2533
|
-
/* @__PURE__ */ t("span", { className: `w-1.5 h-1.5 rounded-full shrink-0 ${
|
|
2595
|
+
/* @__PURE__ */ t("span", { className: `w-1.5 h-1.5 rounded-full shrink-0 ${$ === "error" ? "bg-dt-error" : "bg-dt-success"}` }),
|
|
2534
2596
|
/* @__PURE__ */ n("span", { className: "flex items-center gap-0 min-w-0 flex-1 overflow-hidden", children: [
|
|
2535
2597
|
/* @__PURE__ */ t(
|
|
2536
2598
|
"span",
|
|
2537
2599
|
{
|
|
2538
|
-
className: `font-mono text-[12px] text-dt-text-secondary truncate min-w-0 ${
|
|
2539
|
-
children:
|
|
2600
|
+
className: `font-mono text-[12px] text-dt-text-secondary truncate min-w-0 ${Q ? "max-w-[44%]" : ""}`,
|
|
2601
|
+
children: b.udfPath
|
|
2540
2602
|
}
|
|
2541
2603
|
),
|
|
2542
|
-
|
|
2604
|
+
Q && /* @__PURE__ */ n(
|
|
2543
2605
|
"span",
|
|
2544
2606
|
{
|
|
2545
2607
|
className: "font-mono text-[11px] text-dt-text-muted min-w-0 flex-1 truncate max-w-[min(58vw,680px)]",
|
|
2546
|
-
title:
|
|
2608
|
+
title: st(D, 360),
|
|
2547
2609
|
children: [
|
|
2548
2610
|
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/60", children: "(" }),
|
|
2549
|
-
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: Mt(
|
|
2611
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: Mt(D, le) }),
|
|
2550
2612
|
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/60", children: ")" })
|
|
2551
2613
|
]
|
|
2552
2614
|
}
|
|
@@ -2555,215 +2617,235 @@ function Oe({ eventStore: e }) {
|
|
|
2555
2617
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2 shrink-0 text-[11px] text-dt-text-muted ml-auto", children: [
|
|
2556
2618
|
/* @__PURE__ */ n("span", { className: "text-dt-info font-mono", children: [
|
|
2557
2619
|
"↻",
|
|
2558
|
-
|
|
2620
|
+
b.updateCount
|
|
2559
2621
|
] }),
|
|
2560
|
-
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/60 font-mono", children:
|
|
2561
|
-
/* @__PURE__ */ t("span", { className: "text-[10px] text-dt-text-muted/40", children:
|
|
2622
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/60 font-mono", children: H(b.lastUpdate) }),
|
|
2623
|
+
/* @__PURE__ */ t("span", { className: "text-[10px] text-dt-text-muted/40", children: i ? "▼" : "▶" })
|
|
2562
2624
|
] })
|
|
2563
2625
|
]
|
|
2564
2626
|
}
|
|
2565
2627
|
),
|
|
2566
|
-
|
|
2628
|
+
i && /* @__PURE__ */ n("div", { className: "px-3 py-2 bg-dt-bg-secondary/30 border-t border-dt-border-light/30 flex flex-col gap-2 animate-[dt-fade-in_0.15s_ease-out]", children: [
|
|
2567
2629
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-1 flex-wrap text-[10px] font-mono", children: [
|
|
2568
2630
|
/* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-dt-text-muted", children: [
|
|
2569
2631
|
"Started ",
|
|
2570
|
-
new Date(
|
|
2632
|
+
new Date(b.addedAt).toLocaleTimeString()
|
|
2571
2633
|
] }),
|
|
2572
|
-
|
|
2634
|
+
b.componentPath && /* @__PURE__ */ t(
|
|
2573
2635
|
"span",
|
|
2574
2636
|
{
|
|
2575
2637
|
className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-dt-text-muted truncate max-w-[200px]",
|
|
2576
|
-
title:
|
|
2577
|
-
children:
|
|
2638
|
+
title: b.componentPath,
|
|
2639
|
+
children: b.componentPath
|
|
2578
2640
|
}
|
|
2579
2641
|
)
|
|
2580
2642
|
] }),
|
|
2581
|
-
|
|
2643
|
+
b.status === "error" && b.error && /* @__PURE__ */ t("div", { className: "text-dt-error font-mono text-[11px] bg-dt-error/10 rounded px-2 py-1 break-words", children: b.error }),
|
|
2582
2644
|
/* @__PURE__ */ t(
|
|
2583
2645
|
Et,
|
|
2584
2646
|
{
|
|
2585
|
-
data:
|
|
2647
|
+
data: D ?? null,
|
|
2586
2648
|
label: "Args",
|
|
2587
|
-
onCopy: () =>
|
|
2649
|
+
onCopy: () => L(B ?? "null"),
|
|
2588
2650
|
maxHeight: 200
|
|
2589
2651
|
}
|
|
2590
2652
|
),
|
|
2591
|
-
|
|
2592
|
-
|
|
2653
|
+
b.currentValue !== void 0 && b.previousValue !== void 0 && /* @__PURE__ */ t(Re, { previous: b.previousValue, current: b.currentValue }),
|
|
2654
|
+
b.currentValue !== void 0 && /* @__PURE__ */ t(
|
|
2593
2655
|
Et,
|
|
2594
2656
|
{
|
|
2595
|
-
data:
|
|
2657
|
+
data: b.currentValue,
|
|
2596
2658
|
label: "Current Value",
|
|
2597
|
-
onCopy: () =>
|
|
2659
|
+
onCopy: () => L(JSON.stringify(b.currentValue, null, 2)),
|
|
2598
2660
|
maxHeight: 300
|
|
2599
2661
|
}
|
|
2600
2662
|
)
|
|
2601
2663
|
] })
|
|
2602
2664
|
]
|
|
2603
2665
|
},
|
|
2604
|
-
|
|
2666
|
+
b.queryId
|
|
2605
2667
|
);
|
|
2606
2668
|
})
|
|
2607
2669
|
] }),
|
|
2608
2670
|
f && (() => {
|
|
2609
|
-
const
|
|
2671
|
+
const b = f.subscription, x = pt(b.args), i = x !== void 0 ? st(x) : null, N = x !== void 0 ? E(x) : null, $ = x !== void 0 ? st(x) : "", D = b.currentValue, Q = D !== void 0 ? st(D) : null, B = D !== void 0 ? st(D) : "", Z = D !== void 0 ? E(D) : null, P = b.status === "error" && b.error ? b.error.length > 160 ? `${b.error.slice(0, 157)}…` : b.error : null;
|
|
2610
2672
|
return /* @__PURE__ */ n("div", { className: "fixed z-[9999999] w-[300px] bg-zinc-900/[0.98] border border-dt-border rounded-lg shadow-2xl p-3 flex flex-col gap-2 pointer-events-none animate-[dt-fade-in_0.15s_ease-out] backdrop-blur-lg", style: { top: f.y, left: f.x }, role: "tooltip", children: [
|
|
2611
2673
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2", children: [
|
|
2612
2674
|
/* @__PURE__ */ t("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-[3px] bg-dt-query/20 text-dt-query text-[9px] font-bold shrink-0 shadow-[0_1px_2px_rgba(96,165,250,0.35)]", children: "Q" }),
|
|
2613
|
-
/* @__PURE__ */ t("span", { className: "font-mono text-[12px] text-dt-text truncate flex-1", title:
|
|
2614
|
-
/* @__PURE__ */ n("span", { className: `text-[9px] font-bold uppercase flex items-center gap-0.5 px-1.5 py-0.5 rounded-full ${
|
|
2615
|
-
|
|
2616
|
-
|
|
2675
|
+
/* @__PURE__ */ t("span", { className: "font-mono text-[12px] text-dt-text truncate flex-1", title: b.udfPath, children: b.udfPath }),
|
|
2676
|
+
/* @__PURE__ */ n("span", { className: `text-[9px] font-bold uppercase flex items-center gap-0.5 px-1.5 py-0.5 rounded-full ${b.status === "error" ? "bg-dt-error/15 text-dt-error" : "bg-dt-success/15 text-dt-success"}`, children: [
|
|
2677
|
+
b.status === "error" ? "❌" : "✓",
|
|
2678
|
+
b.status.toUpperCase()
|
|
2617
2679
|
] })
|
|
2618
2680
|
] }),
|
|
2619
2681
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-1 flex-wrap", children: [
|
|
2620
2682
|
/* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children: [
|
|
2621
2683
|
"Q",
|
|
2622
|
-
|
|
2684
|
+
b.queryId
|
|
2623
2685
|
] }),
|
|
2624
2686
|
/* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children: [
|
|
2625
2687
|
"↻ ",
|
|
2626
|
-
|
|
2688
|
+
b.updateCount,
|
|
2627
2689
|
" updates"
|
|
2628
2690
|
] }),
|
|
2629
|
-
/* @__PURE__ */ t("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children:
|
|
2691
|
+
/* @__PURE__ */ t("span", { className: "px-1.5 py-0.5 bg-dt-bg-tertiary rounded text-[10px] text-dt-text-muted font-mono", children: H(b.lastUpdate) })
|
|
2630
2692
|
] }),
|
|
2631
|
-
|
|
2632
|
-
|
|
2693
|
+
b.componentPath && /* @__PURE__ */ t("div", { className: "text-[10px] text-dt-text-muted/60 font-mono truncate", title: b.componentPath, children: b.componentPath }),
|
|
2694
|
+
x !== void 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
|
|
2633
2695
|
/* @__PURE__ */ n("div", { className: "flex items-center justify-between", children: [
|
|
2634
2696
|
/* @__PURE__ */ t("span", { className: "text-[10px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: "Args" }),
|
|
2635
|
-
|
|
2697
|
+
N && /* @__PURE__ */ t("span", { className: "text-[9px] text-dt-text-muted/60 font-mono", children: N })
|
|
2636
2698
|
] }),
|
|
2637
|
-
/* @__PURE__ */ t("pre", { className: "font-mono text-[10px] text-dt-text-muted bg-zinc-950/50 rounded p-1.5 overflow-hidden max-h-[80px] whitespace-pre-wrap break-all m-0", title:
|
|
2699
|
+
/* @__PURE__ */ t("pre", { className: "font-mono text-[10px] text-dt-text-muted bg-zinc-950/50 rounded p-1.5 overflow-hidden max-h-[80px] whitespace-pre-wrap break-all m-0", title: i ?? void 0, children: $ })
|
|
2638
2700
|
] }),
|
|
2639
|
-
|
|
2701
|
+
D !== void 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
|
|
2640
2702
|
/* @__PURE__ */ n("div", { className: "flex items-center justify-between", children: [
|
|
2641
2703
|
/* @__PURE__ */ t("span", { className: "text-[10px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: "Current Value" }),
|
|
2642
|
-
|
|
2704
|
+
Z && /* @__PURE__ */ t("span", { className: "text-[9px] text-dt-text-muted/60 font-mono", children: Z })
|
|
2643
2705
|
] }),
|
|
2644
|
-
/* @__PURE__ */ t("pre", { className: "font-mono text-[10px] text-dt-text-muted bg-zinc-950/50 rounded p-1.5 overflow-hidden max-h-[80px] whitespace-pre-wrap break-all m-0", title:
|
|
2706
|
+
/* @__PURE__ */ t("pre", { className: "font-mono text-[10px] text-dt-text-muted bg-zinc-950/50 rounded p-1.5 overflow-hidden max-h-[80px] whitespace-pre-wrap break-all m-0", title: Q ?? void 0, children: B })
|
|
2645
2707
|
] }),
|
|
2646
|
-
|
|
2708
|
+
P && /* @__PURE__ */ n("div", { className: "flex flex-col gap-0.5", children: [
|
|
2647
2709
|
/* @__PURE__ */ t("span", { className: "text-[10px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: "Error" }),
|
|
2648
|
-
/* @__PURE__ */ t("span", { className: "text-[11px] text-dt-error", title:
|
|
2710
|
+
/* @__PURE__ */ t("span", { className: "text-[11px] text-dt-error", title: b.error, children: P })
|
|
2649
2711
|
] })
|
|
2650
2712
|
] });
|
|
2651
2713
|
})(),
|
|
2652
|
-
|
|
2653
|
-
|
|
2714
|
+
k && /* @__PURE__ */ t(
|
|
2715
|
+
Yt,
|
|
2654
2716
|
{
|
|
2655
|
-
x:
|
|
2656
|
-
y:
|
|
2657
|
-
items:
|
|
2658
|
-
onClose: () =>
|
|
2717
|
+
x: k.x,
|
|
2718
|
+
y: k.y,
|
|
2719
|
+
items: k.items,
|
|
2720
|
+
onClose: () => y(null)
|
|
2659
2721
|
}
|
|
2660
2722
|
)
|
|
2661
2723
|
] });
|
|
2662
2724
|
}
|
|
2663
|
-
function
|
|
2664
|
-
const [a,
|
|
2665
|
-
return
|
|
2725
|
+
function Re({ previous: e, current: r }) {
|
|
2726
|
+
const [a, s] = z(!0), l = V(() => Wt(e, r), [e, r]);
|
|
2727
|
+
return l.length === 0 ? null : /* @__PURE__ */ n("div", { className: "flex flex-col gap-1", children: [
|
|
2666
2728
|
/* @__PURE__ */ n(
|
|
2667
2729
|
"button",
|
|
2668
2730
|
{
|
|
2669
2731
|
className: "flex items-center gap-1 bg-transparent border-none text-dt-text-tertiary cursor-pointer text-[11px] font-semibold uppercase tracking-wider p-0 hover:text-dt-text-secondary transition-colors",
|
|
2670
|
-
onClick: () =>
|
|
2732
|
+
onClick: () => s(!a),
|
|
2671
2733
|
children: [
|
|
2672
2734
|
/* @__PURE__ */ t("span", { className: `text-[10px] transition-transform ${a ? "rotate-90" : ""}`, children: "▶" }),
|
|
2673
2735
|
/* @__PURE__ */ n("span", { children: [
|
|
2674
2736
|
"Changes (",
|
|
2675
|
-
|
|
2737
|
+
l.length,
|
|
2676
2738
|
")"
|
|
2677
2739
|
] })
|
|
2678
2740
|
]
|
|
2679
2741
|
}
|
|
2680
2742
|
),
|
|
2681
|
-
a && /* @__PURE__ */ t("div", { className: "bg-zinc-950/50 rounded border border-dt-border-light p-2 font-mono text-[11px] max-h-[200px] overflow-y-auto", children:
|
|
2682
|
-
/* @__PURE__ */ t("span", { className: "select-none opacity-60 mr-1", children:
|
|
2743
|
+
a && /* @__PURE__ */ t("div", { className: "bg-zinc-950/50 rounded border border-dt-border-light p-2 font-mono text-[11px] max-h-[200px] overflow-y-auto", children: l.map((p, d) => /* @__PURE__ */ n("div", { className: `py-px ${p.type === "added" ? "text-dt-success bg-dt-success/5" : p.type === "removed" ? "text-dt-error bg-dt-error/5" : "text-dt-warning bg-dt-warning/5"}`, children: [
|
|
2744
|
+
/* @__PURE__ */ t("span", { className: "select-none opacity-60 mr-1", children: p.type === "added" ? "+" : p.type === "removed" ? "-" : "~" }),
|
|
2683
2745
|
/* @__PURE__ */ n("span", { className: "text-dt-text-muted", children: [
|
|
2684
|
-
|
|
2746
|
+
p.path,
|
|
2685
2747
|
":"
|
|
2686
2748
|
] }),
|
|
2687
2749
|
" ",
|
|
2688
|
-
|
|
2689
|
-
/* @__PURE__ */ t("span", { className: "text-dt-error line-through opacity-70", children:
|
|
2750
|
+
p.type === "changed" ? /* @__PURE__ */ n(nt, { children: [
|
|
2751
|
+
/* @__PURE__ */ t("span", { className: "text-dt-error line-through opacity-70", children: p.oldVal }),
|
|
2690
2752
|
" → ",
|
|
2691
|
-
/* @__PURE__ */ t("span", { className: "text-dt-success", children:
|
|
2692
|
-
] }) : /* @__PURE__ */ t("span", { children:
|
|
2693
|
-
] },
|
|
2753
|
+
/* @__PURE__ */ t("span", { className: "text-dt-success", children: p.newVal })
|
|
2754
|
+
] }) : /* @__PURE__ */ t("span", { children: p.value })
|
|
2755
|
+
] }, d)) })
|
|
2694
2756
|
] });
|
|
2695
2757
|
}
|
|
2696
|
-
function
|
|
2697
|
-
const
|
|
2698
|
-
const
|
|
2699
|
-
return
|
|
2758
|
+
function Wt(e, r, a = "$") {
|
|
2759
|
+
const s = [], l = (p) => {
|
|
2760
|
+
const d = JSON.stringify(p);
|
|
2761
|
+
return d && d.length > 80 ? d.slice(0, 77) + "…" : d;
|
|
2700
2762
|
};
|
|
2701
|
-
if (e === r) return
|
|
2763
|
+
if (e === r) return s;
|
|
2702
2764
|
if (e === null || r === null || typeof e != typeof r || typeof e != "object" || typeof r != "object")
|
|
2703
|
-
return
|
|
2765
|
+
return s.push({ type: "changed", path: a, oldVal: l(e), newVal: l(r) }), s;
|
|
2704
2766
|
if (Array.isArray(e) && Array.isArray(r)) {
|
|
2705
|
-
const
|
|
2706
|
-
for (let
|
|
2707
|
-
|
|
2708
|
-
return
|
|
2767
|
+
const p = Math.max(e.length, r.length);
|
|
2768
|
+
for (let d = 0; d < p && s.length < 50; d++)
|
|
2769
|
+
d >= e.length ? s.push({ type: "added", path: `${a}[${d}]`, value: l(r[d]) }) : d >= r.length ? s.push({ type: "removed", path: `${a}[${d}]`, value: l(e[d]) }) : s.push(...Wt(e[d], r[d], `${a}[${d}]`));
|
|
2770
|
+
return s;
|
|
2709
2771
|
}
|
|
2710
2772
|
if (!Array.isArray(e) && !Array.isArray(r)) {
|
|
2711
|
-
const
|
|
2712
|
-
for (const w of
|
|
2713
|
-
if (
|
|
2714
|
-
w in
|
|
2773
|
+
const p = e, d = r, u = /* @__PURE__ */ new Set([...Object.keys(p), ...Object.keys(d)]);
|
|
2774
|
+
for (const w of u) {
|
|
2775
|
+
if (s.length >= 50) break;
|
|
2776
|
+
w in p ? w in d ? s.push(...Wt(p[w], d[w], `${a}.${w}`)) : s.push({ type: "removed", path: `${a}.${w}`, value: l(p[w]) }) : s.push({ type: "added", path: `${a}.${w}`, value: l(d[w]) });
|
|
2715
2777
|
}
|
|
2716
2778
|
}
|
|
2717
|
-
return
|
|
2779
|
+
return s;
|
|
2718
2780
|
}
|
|
2719
|
-
function
|
|
2720
|
-
const [a,
|
|
2721
|
-
|
|
2722
|
-
const
|
|
2723
|
-
|
|
2724
|
-
},
|
|
2725
|
-
return
|
|
2726
|
-
}, [e])
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
2781
|
+
function Be({ eventStore: e, onNavigate: r }) {
|
|
2782
|
+
const [a, s] = z(null), [l, p] = z([]), [d, u] = z([]), [w, v] = z("calls"), [C, f] = z(() => Date.now());
|
|
2783
|
+
K(() => {
|
|
2784
|
+
const i = () => {
|
|
2785
|
+
s(e.getPerformanceMetrics()), p(e.getFunctionStats()), u(e.getAllEvents());
|
|
2786
|
+
}, N = e.subscribeBatched(i);
|
|
2787
|
+
return i(), N;
|
|
2788
|
+
}, [e]), K(() => {
|
|
2789
|
+
const i = setInterval(() => f(Date.now()), 1e3);
|
|
2790
|
+
return () => clearInterval(i);
|
|
2791
|
+
}, []);
|
|
2792
|
+
const m = V(() => {
|
|
2793
|
+
const i = (P) => {
|
|
2794
|
+
const M = typeof P == "number" ? P : typeof P == "string" ? Number(P) : Number.NaN;
|
|
2795
|
+
return !Number.isFinite(M) || M < 0 ? null : M;
|
|
2796
|
+
}, N = C, $ = 6e4, D = 60, Q = $ / D, B = d.flatMap((P) => {
|
|
2797
|
+
if (P?.type !== "query" && P?.type !== "mutation" && P?.type !== "action")
|
|
2733
2798
|
return [];
|
|
2734
|
-
const
|
|
2735
|
-
return
|
|
2736
|
-
}),
|
|
2737
|
-
const
|
|
2738
|
-
for (const
|
|
2739
|
-
if (
|
|
2740
|
-
const
|
|
2741
|
-
if (
|
|
2742
|
-
const
|
|
2743
|
-
|
|
2799
|
+
const M = typeof P.timestamp == "number" && Number.isFinite(P.timestamp) ? P.timestamp : null, J = i(P.endToEndDurationMs ?? P.duration);
|
|
2800
|
+
return M === null || J === null ? [] : [{ type: P.type, timestamp: M, duration: J }];
|
|
2801
|
+
}), Z = (P) => {
|
|
2802
|
+
const M = new Array(D).fill(0), J = new Array(D).fill(0);
|
|
2803
|
+
for (const tt of B) {
|
|
2804
|
+
if (P && tt.type !== P) continue;
|
|
2805
|
+
const ot = N - tt.timestamp;
|
|
2806
|
+
if (ot > $ || ot < 0) continue;
|
|
2807
|
+
const it = Math.min(D - 1, Math.floor(($ - ot) / Q));
|
|
2808
|
+
it < 0 || it >= D || (M[it] += tt.duration, J[it]++);
|
|
2744
2809
|
}
|
|
2745
|
-
return
|
|
2810
|
+
return M.map((tt, ot) => J[ot] > 0 ? tt / J[ot] : 0);
|
|
2746
2811
|
};
|
|
2747
2812
|
return {
|
|
2748
|
-
all:
|
|
2749
|
-
query:
|
|
2750
|
-
mutation:
|
|
2751
|
-
action:
|
|
2813
|
+
all: Z(),
|
|
2814
|
+
query: Z("query"),
|
|
2815
|
+
mutation: Z("mutation"),
|
|
2816
|
+
action: Z("action")
|
|
2752
2817
|
};
|
|
2753
|
-
}, [d]),
|
|
2754
|
-
|
|
2755
|
-
|
|
2818
|
+
}, [d, C]), k = V(() => {
|
|
2819
|
+
let i = 0, N = 0;
|
|
2820
|
+
for (const $ of d)
|
|
2821
|
+
$.type !== "query" && $.type !== "mutation" && $.type !== "action" || $.status !== "pending" && (N += 1, $.status === "error" && (i += 1));
|
|
2822
|
+
return { errors: i, errorRate: N > 0 ? i / N * 100 : 0 };
|
|
2823
|
+
}, [d]), y = V(() => {
|
|
2824
|
+
const i = [...l];
|
|
2825
|
+
return i.sort((N, $) => $[w] - N[w]), i.slice(0, 20);
|
|
2826
|
+
}, [l, w]), S = U((i) => {
|
|
2827
|
+
e.setFocusedEventId(i), r?.("activity");
|
|
2828
|
+
}, [e, r]), I = U((i) => {
|
|
2829
|
+
const N = e.getAllEvents();
|
|
2830
|
+
for (let $ = N.length - 1; $ >= 0; $--) {
|
|
2831
|
+
const D = N[$];
|
|
2832
|
+
if (D.type === i.type && "udfPath" in D && D.udfPath === i.udfPath) {
|
|
2833
|
+
S(D.id);
|
|
2834
|
+
return;
|
|
2835
|
+
}
|
|
2836
|
+
}
|
|
2837
|
+
}, [e, S]);
|
|
2756
2838
|
if (!a)
|
|
2757
2839
|
return /* @__PURE__ */ t("div", { className: "flex flex-col h-full overflow-hidden p-3 gap-3", children: "Loading..." });
|
|
2758
|
-
const
|
|
2759
|
-
(
|
|
2760
|
-
), E = a.totalQueries + a.totalMutations + a.totalActions,
|
|
2840
|
+
const L = a.totalQueries + a.totalMutations + a.totalActions + k.errors > 0, j = d.some(
|
|
2841
|
+
(i) => (i?.type === "query" || i?.type === "mutation" || i?.type === "action") && typeof i.simulatedDelayMs == "number" && (i.simulatedDelayMs ?? 0) > 0
|
|
2842
|
+
), E = a.totalQueries + a.totalMutations + a.totalActions, q = E > 0 ? a.totalQueries / E * 100 : 0, H = E > 0 ? a.totalMutations / E * 100 : 0, b = E > 0 ? a.totalActions / E * 100 : 0, x = Math.max(a.slowestOperations[0]?.duration ?? 0, 1);
|
|
2761
2843
|
return /* @__PURE__ */ t("div", { className: "flex flex-col h-full overflow-hidden", children: /* @__PURE__ */ n("div", { className: "flex-1 min-h-0 overflow-y-auto p-3 flex flex-col gap-3", children: [
|
|
2762
|
-
!
|
|
2844
|
+
!L && /* @__PURE__ */ n("div", { className: "flex flex-col items-center justify-center py-12 text-dt-text-muted gap-2", children: [
|
|
2763
2845
|
/* @__PURE__ */ t("svg", { width: "32", height: "32", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: /* @__PURE__ */ t("path", { d: "M13 2L3 14h9l-1 8 10-12h-9l1-8z", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }),
|
|
2764
2846
|
/* @__PURE__ */ t("p", { children: "No performance data yet" })
|
|
2765
2847
|
] }),
|
|
2766
|
-
|
|
2848
|
+
L && /* @__PURE__ */ n(nt, { children: [
|
|
2767
2849
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-1 text-[11px] font-mono flex-wrap px-1", children: [
|
|
2768
2850
|
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: "Total:" }),
|
|
2769
2851
|
/* @__PURE__ */ t("span", { className: "font-semibold text-dt-text-secondary", children: E }),
|
|
@@ -2772,7 +2854,7 @@ function Fe({ eventStore: e, onNavigate: r }) {
|
|
|
2772
2854
|
/* @__PURE__ */ t("span", { className: "font-semibold text-dt-query", children: a.totalQueries }),
|
|
2773
2855
|
/* @__PURE__ */ n("span", { className: "text-dt-text-muted/60 text-[10px]", children: [
|
|
2774
2856
|
"(",
|
|
2775
|
-
|
|
2857
|
+
q.toFixed(0),
|
|
2776
2858
|
"%)"
|
|
2777
2859
|
] }),
|
|
2778
2860
|
/* @__PURE__ */ t("span", { className: "text-dt-border mx-0.5", children: "|" }),
|
|
@@ -2780,7 +2862,7 @@ function Fe({ eventStore: e, onNavigate: r }) {
|
|
|
2780
2862
|
/* @__PURE__ */ t("span", { className: "font-semibold text-dt-mutation", children: a.totalMutations }),
|
|
2781
2863
|
/* @__PURE__ */ n("span", { className: "text-dt-text-muted/60 text-[10px]", children: [
|
|
2782
2864
|
"(",
|
|
2783
|
-
|
|
2865
|
+
H.toFixed(0),
|
|
2784
2866
|
"%)"
|
|
2785
2867
|
] }),
|
|
2786
2868
|
/* @__PURE__ */ t("span", { className: "text-dt-border mx-0.5", children: "|" }),
|
|
@@ -2788,19 +2870,27 @@ function Fe({ eventStore: e, onNavigate: r }) {
|
|
|
2788
2870
|
/* @__PURE__ */ t("span", { className: "font-semibold text-dt-action", children: a.totalActions }),
|
|
2789
2871
|
/* @__PURE__ */ n("span", { className: "text-dt-text-muted/60 text-[10px]", children: [
|
|
2790
2872
|
"(",
|
|
2791
|
-
|
|
2873
|
+
b.toFixed(0),
|
|
2874
|
+
"%)"
|
|
2875
|
+
] }),
|
|
2876
|
+
/* @__PURE__ */ t("span", { className: "text-dt-border mx-0.5", children: "|" }),
|
|
2877
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: "Errors:" }),
|
|
2878
|
+
/* @__PURE__ */ t("span", { className: `font-semibold ${k.errors > 0 ? "text-dt-error" : "text-dt-text-secondary"}`, children: k.errors }),
|
|
2879
|
+
k.errors > 0 && /* @__PURE__ */ n("span", { className: "text-dt-error/70 text-[10px]", children: [
|
|
2880
|
+
"(",
|
|
2881
|
+
k.errorRate.toFixed(1),
|
|
2792
2882
|
"%)"
|
|
2793
2883
|
] })
|
|
2794
2884
|
] }),
|
|
2795
2885
|
/* @__PURE__ */ n("div", { className: "flex flex-col gap-2", children: [
|
|
2796
2886
|
/* @__PURE__ */ n("div", { className: "text-[11px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: [
|
|
2797
2887
|
"Latency (60s window)",
|
|
2798
|
-
|
|
2888
|
+
j && /* @__PURE__ */ t("span", { className: "ml-2 text-[10px] normal-case font-normal text-dt-warning/90", children: "includes simulated delay" })
|
|
2799
2889
|
] }),
|
|
2800
|
-
/* @__PURE__ */ t(
|
|
2801
|
-
/* @__PURE__ */ t(
|
|
2802
|
-
/* @__PURE__ */ t(
|
|
2803
|
-
/* @__PURE__ */ t(
|
|
2890
|
+
/* @__PURE__ */ t(zt, { label: "All", data: m.all, color: "#e4e4e7" }),
|
|
2891
|
+
/* @__PURE__ */ t(zt, { label: "Query", data: m.query, color: "#60a5fa" }),
|
|
2892
|
+
/* @__PURE__ */ t(zt, { label: "Mutation", data: m.mutation, color: "#a78bfa" }),
|
|
2893
|
+
/* @__PURE__ */ t(zt, { label: "Action", data: m.action, color: "#34d399" })
|
|
2804
2894
|
] }),
|
|
2805
2895
|
/* @__PURE__ */ n("div", { className: "flex flex-col border border-dt-border-light rounded-lg overflow-hidden", children: [
|
|
2806
2896
|
/* @__PURE__ */ n("div", { className: "grid grid-cols-6 gap-0 px-2 py-1.5 bg-dt-bg-tertiary/50 text-[10px] font-semibold text-dt-text-muted uppercase tracking-wider", children: [
|
|
@@ -2813,202 +2903,259 @@ function Fe({ eventStore: e, onNavigate: r }) {
|
|
|
2813
2903
|
] }),
|
|
2814
2904
|
/* @__PURE__ */ n("div", { className: "grid grid-cols-6 gap-0 px-2 py-1.5 border-t border-dt-border-light/50 text-[11px] font-mono text-dt-text-secondary", children: [
|
|
2815
2905
|
/* @__PURE__ */ t("span", { className: "text-dt-query font-bold", children: "Q" }),
|
|
2816
|
-
/* @__PURE__ */ t("span", { children:
|
|
2817
|
-
/* @__PURE__ */ t("span", { children:
|
|
2818
|
-
/* @__PURE__ */ t("span", { children:
|
|
2819
|
-
/* @__PURE__ */ t("span", { children:
|
|
2820
|
-
/* @__PURE__ */ t("span", { children:
|
|
2906
|
+
/* @__PURE__ */ t("span", { children: rt(a.avgQueryDuration) }),
|
|
2907
|
+
/* @__PURE__ */ t("span", { children: rt(a.p50QueryDuration) }),
|
|
2908
|
+
/* @__PURE__ */ t("span", { children: rt(a.p90QueryDuration) }),
|
|
2909
|
+
/* @__PURE__ */ t("span", { children: rt(a.p95QueryDuration) }),
|
|
2910
|
+
/* @__PURE__ */ t("span", { children: rt(a.p99QueryDuration) })
|
|
2821
2911
|
] }),
|
|
2822
2912
|
/* @__PURE__ */ n("div", { className: "grid grid-cols-6 gap-0 px-2 py-1.5 border-t border-dt-border-light/50 text-[11px] font-mono text-dt-text-secondary", children: [
|
|
2823
2913
|
/* @__PURE__ */ t("span", { className: "text-dt-mutation font-bold", children: "M" }),
|
|
2824
|
-
/* @__PURE__ */ t("span", { children:
|
|
2825
|
-
/* @__PURE__ */ t("span", { children:
|
|
2826
|
-
/* @__PURE__ */ t("span", { children:
|
|
2827
|
-
/* @__PURE__ */ t("span", { children:
|
|
2828
|
-
/* @__PURE__ */ t("span", { children:
|
|
2914
|
+
/* @__PURE__ */ t("span", { children: rt(a.avgMutationDuration) }),
|
|
2915
|
+
/* @__PURE__ */ t("span", { children: rt(a.p50MutationDuration) }),
|
|
2916
|
+
/* @__PURE__ */ t("span", { children: rt(a.p90MutationDuration) }),
|
|
2917
|
+
/* @__PURE__ */ t("span", { children: rt(a.p95MutationDuration) }),
|
|
2918
|
+
/* @__PURE__ */ t("span", { children: rt(a.p99MutationDuration) })
|
|
2829
2919
|
] }),
|
|
2830
2920
|
/* @__PURE__ */ n("div", { className: "grid grid-cols-6 gap-0 px-2 py-1.5 border-t border-dt-border-light/50 text-[11px] font-mono text-dt-text-secondary", children: [
|
|
2831
2921
|
/* @__PURE__ */ t("span", { className: "text-dt-action font-bold", children: "A" }),
|
|
2832
|
-
/* @__PURE__ */ t("span", { children:
|
|
2833
|
-
/* @__PURE__ */ t("span", { children:
|
|
2834
|
-
/* @__PURE__ */ t("span", { children:
|
|
2835
|
-
/* @__PURE__ */ t("span", { children:
|
|
2836
|
-
/* @__PURE__ */ t("span", { children:
|
|
2922
|
+
/* @__PURE__ */ t("span", { children: rt(a.avgActionDuration) }),
|
|
2923
|
+
/* @__PURE__ */ t("span", { children: rt(a.p50ActionDuration) }),
|
|
2924
|
+
/* @__PURE__ */ t("span", { children: rt(a.p90ActionDuration) }),
|
|
2925
|
+
/* @__PURE__ */ t("span", { children: rt(a.p95ActionDuration) }),
|
|
2926
|
+
/* @__PURE__ */ t("span", { children: rt(a.p99ActionDuration) })
|
|
2927
|
+
] })
|
|
2928
|
+
] }),
|
|
2929
|
+
y.length > 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-1", children: [
|
|
2930
|
+
/* @__PURE__ */ n("div", { className: "text-[11px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: [
|
|
2931
|
+
"By Function",
|
|
2932
|
+
/* @__PURE__ */ t("span", { className: "ml-1 font-normal normal-case text-dt-text-muted/60", children: "(top 20)" })
|
|
2933
|
+
] }),
|
|
2934
|
+
/* @__PURE__ */ n("div", { className: "flex flex-col border border-dt-border-light rounded-lg overflow-hidden", children: [
|
|
2935
|
+
/* @__PURE__ */ n("div", { className: "grid grid-cols-[1fr_repeat(4,52px)] gap-1 px-2 py-1.5 bg-dt-bg-tertiary/50 text-[10px] font-semibold text-dt-text-muted uppercase tracking-wider", children: [
|
|
2936
|
+
/* @__PURE__ */ t("span", { children: "Function" }),
|
|
2937
|
+
/* @__PURE__ */ t(_t, { label: "Calls", sortKey: "calls", current: w, onSort: v }),
|
|
2938
|
+
/* @__PURE__ */ t(_t, { label: "Avg", sortKey: "avgDuration", current: w, onSort: v }),
|
|
2939
|
+
/* @__PURE__ */ t(_t, { label: "P95", sortKey: "p95Duration", current: w, onSort: v }),
|
|
2940
|
+
/* @__PURE__ */ t(_t, { label: "Err", sortKey: "errors", current: w, onSort: v })
|
|
2941
|
+
] }),
|
|
2942
|
+
y.map((i) => /* @__PURE__ */ n(
|
|
2943
|
+
"button",
|
|
2944
|
+
{
|
|
2945
|
+
type: "button",
|
|
2946
|
+
className: "grid grid-cols-[1fr_repeat(4,52px)] gap-1 px-2 py-1 border-t border-dt-border-light/50 text-[11px] font-mono text-left bg-transparent border-x-0 border-b-0 cursor-pointer hover:bg-white/[0.04] focus:outline-none focus:ring-1 focus:ring-dt-info/40",
|
|
2947
|
+
onClick: () => I(i),
|
|
2948
|
+
title: "Open latest invocation in Activity",
|
|
2949
|
+
children: [
|
|
2950
|
+
/* @__PURE__ */ n("span", { className: "flex items-center gap-1.5 min-w-0", children: [
|
|
2951
|
+
/* @__PURE__ */ t("span", { className: `shrink-0 inline-flex w-3 font-bold ${i.type === "query" ? "text-dt-query" : i.type === "mutation" ? "text-dt-mutation" : "text-dt-action"}`, children: i.type[0].toUpperCase() }),
|
|
2952
|
+
/* @__PURE__ */ t("span", { className: "truncate text-dt-text-secondary", children: i.udfPath })
|
|
2953
|
+
] }),
|
|
2954
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: i.calls }),
|
|
2955
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: rt(i.avgDuration) }),
|
|
2956
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted", children: rt(i.p95Duration) }),
|
|
2957
|
+
/* @__PURE__ */ t("span", { className: i.errors > 0 ? "text-dt-error" : "text-dt-text-muted/40", children: i.errors > 0 ? `${i.errors} (${i.errorRate.toFixed(0)}%)` : "0" })
|
|
2958
|
+
]
|
|
2959
|
+
},
|
|
2960
|
+
`${i.type}:${i.udfPath}`
|
|
2961
|
+
))
|
|
2837
2962
|
] })
|
|
2838
2963
|
] }),
|
|
2839
2964
|
a.slowestOperations.length > 0 && /* @__PURE__ */ n("div", { className: "flex flex-col gap-1", children: [
|
|
2840
2965
|
/* @__PURE__ */ t("div", { className: "text-[11px] font-semibold text-dt-text-tertiary uppercase tracking-wider", children: "Slowest Operations" }),
|
|
2841
|
-
/* @__PURE__ */ t("div", { className: "flex flex-col gap-0.5", children: a.slowestOperations.map((
|
|
2966
|
+
/* @__PURE__ */ t("div", { className: "flex flex-col gap-0.5", children: a.slowestOperations.map((i, N) => /* @__PURE__ */ n(
|
|
2842
2967
|
"button",
|
|
2843
2968
|
{
|
|
2844
2969
|
className: "flex items-center gap-2 text-[11px] py-0.5 px-1 bg-transparent border-none text-left cursor-pointer rounded hover:bg-white/[0.04] focus:outline-none focus:ring-1 focus:ring-dt-info/40",
|
|
2845
|
-
onClick: () =>
|
|
2970
|
+
onClick: () => S(i.eventId),
|
|
2846
2971
|
title: "Open operation in Activity",
|
|
2847
2972
|
type: "button",
|
|
2848
2973
|
children: [
|
|
2849
|
-
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/40 w-4 text-right font-mono text-[10px]", children:
|
|
2850
|
-
/* @__PURE__ */ t("span", { className: `inline-flex items-center justify-center w-4 h-4 rounded text-[9px] font-bold ${
|
|
2851
|
-
/* @__PURE__ */ t("span", { className: "font-mono text-dt-text-secondary truncate flex-1", children:
|
|
2852
|
-
/* @__PURE__ */ t("span", { className: "font-mono text-dt-text-muted shrink-0", children:
|
|
2974
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/40 w-4 text-right font-mono text-[10px]", children: N + 1 }),
|
|
2975
|
+
/* @__PURE__ */ t("span", { className: `inline-flex items-center justify-center w-4 h-4 rounded text-[9px] font-bold ${i.type === "query" ? "text-dt-query" : i.type === "mutation" ? "text-dt-mutation" : "text-dt-action"}`, children: i.type[0].toUpperCase() }),
|
|
2976
|
+
/* @__PURE__ */ t("span", { className: "font-mono text-dt-text-secondary truncate flex-1", children: i.udfPath }),
|
|
2977
|
+
/* @__PURE__ */ t("span", { className: "font-mono text-dt-text-muted shrink-0", children: rt(i.duration) }),
|
|
2853
2978
|
/* @__PURE__ */ t("div", { className: "w-16 h-1.5 bg-dt-bg-tertiary rounded-full overflow-hidden shrink-0", children: /* @__PURE__ */ t(
|
|
2854
2979
|
"div",
|
|
2855
2980
|
{
|
|
2856
|
-
className: `h-full rounded-full ${
|
|
2857
|
-
style: { width: `${Math.min(100, Math.max(2,
|
|
2981
|
+
className: `h-full rounded-full ${i.type === "query" ? "bg-dt-query" : i.type === "mutation" ? "bg-dt-mutation" : "bg-dt-action"}`,
|
|
2982
|
+
style: { width: `${Math.min(100, Math.max(2, i.duration / x * 100))}%` }
|
|
2858
2983
|
}
|
|
2859
2984
|
) })
|
|
2860
2985
|
]
|
|
2861
2986
|
},
|
|
2862
|
-
|
|
2987
|
+
i.eventId
|
|
2863
2988
|
)) })
|
|
2864
2989
|
] })
|
|
2865
2990
|
] })
|
|
2866
2991
|
] }) });
|
|
2867
2992
|
}
|
|
2868
|
-
function _t({
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2993
|
+
function _t({
|
|
2994
|
+
label: e,
|
|
2995
|
+
sortKey: r,
|
|
2996
|
+
current: a,
|
|
2997
|
+
onSort: s
|
|
2998
|
+
}) {
|
|
2999
|
+
const l = a === r;
|
|
3000
|
+
return /* @__PURE__ */ n(
|
|
3001
|
+
"button",
|
|
3002
|
+
{
|
|
3003
|
+
type: "button",
|
|
3004
|
+
className: `bg-transparent border-none p-0 text-left text-[10px] font-semibold uppercase tracking-wider cursor-pointer ${l ? "text-dt-info" : "text-dt-text-muted hover:text-dt-text-tertiary"}`,
|
|
3005
|
+
onClick: () => s(r),
|
|
3006
|
+
title: `Sort by ${e.toLowerCase()}`,
|
|
3007
|
+
"aria-pressed": l,
|
|
3008
|
+
children: [
|
|
3009
|
+
e,
|
|
3010
|
+
l ? " ↓" : ""
|
|
3011
|
+
]
|
|
3012
|
+
}
|
|
3013
|
+
);
|
|
3014
|
+
}
|
|
3015
|
+
function zt({ label: e, data: r, color: a }) {
|
|
3016
|
+
const s = r.map(
|
|
3017
|
+
(d) => typeof d == "number" && Number.isFinite(d) && d > 0 ? d : 0
|
|
3018
|
+
), l = Math.max(...s, 1), p = s[s.length - 1] || 0;
|
|
2872
3019
|
return /* @__PURE__ */ n("div", { className: "flex items-center gap-2", children: [
|
|
2873
3020
|
/* @__PURE__ */ t("span", { className: "text-[10px] font-mono text-dt-text-muted w-14 shrink-0", children: e }),
|
|
2874
|
-
/* @__PURE__ */ t("div", { className: "flex-1 h-5 flex items-end gap-px", children:
|
|
3021
|
+
/* @__PURE__ */ t("div", { className: "flex-1 h-5 flex items-end gap-px", children: s.map((d, u) => /* @__PURE__ */ t(
|
|
2875
3022
|
"div",
|
|
2876
3023
|
{
|
|
2877
3024
|
className: "flex-1 rounded-t-sm min-h-px",
|
|
2878
3025
|
style: {
|
|
2879
|
-
height: `${Math.max(1,
|
|
2880
|
-
backgroundColor:
|
|
2881
|
-
opacity:
|
|
3026
|
+
height: `${Math.max(1, d / l * 100)}%`,
|
|
3027
|
+
backgroundColor: d > 0 ? a : "rgba(63,63,70,0.3)",
|
|
3028
|
+
opacity: d > 0 ? 0.5 + u / s.length * 0.5 : 0.2
|
|
2882
3029
|
}
|
|
2883
3030
|
},
|
|
2884
|
-
|
|
3031
|
+
u
|
|
2885
3032
|
)) }),
|
|
2886
|
-
/* @__PURE__ */ t("span", { className: "text-[10px] font-mono text-dt-text-muted w-14 text-right shrink-0", children:
|
|
3033
|
+
/* @__PURE__ */ t("span", { className: "text-[10px] font-mono text-dt-text-muted w-14 text-right shrink-0", children: p > 0 ? rt(p) : "—" })
|
|
2887
3034
|
] });
|
|
2888
3035
|
}
|
|
2889
|
-
function
|
|
2890
|
-
return !Number.isFinite(e) || e < 0 ? "—" : e <
|
|
3036
|
+
function rt(e) {
|
|
3037
|
+
return !Number.isFinite(e) || e < 0 ? "—" : e < 1 ? `${e.toFixed(2)}ms` : e < 10 ? `${e.toFixed(1)}ms` : e < 1e3 ? `${Math.round(e)}ms` : `${(e / 1e3).toFixed(2)}s`;
|
|
2891
3038
|
}
|
|
2892
|
-
function
|
|
3039
|
+
function Ve(e) {
|
|
2893
3040
|
return e.type === "query" || e.type === "mutation" || e.type === "action";
|
|
2894
3041
|
}
|
|
2895
|
-
function
|
|
3042
|
+
function de(e) {
|
|
2896
3043
|
return e.type === "query" ? `Q${e.queryId}` : e.type === "mutation" ? `M${e.requestId}` : `A${e.requestId}`;
|
|
2897
3044
|
}
|
|
2898
|
-
function
|
|
2899
|
-
const [a,
|
|
2900
|
-
(
|
|
2901
|
-
|
|
3045
|
+
function Je({ eventStore: e, onNavigate: r }) {
|
|
3046
|
+
const [a, s] = z([]), [l, p] = z(/* @__PURE__ */ new Map()), [d, u] = z(!0), [w, v] = z("all"), [C, f] = z(""), [m, k] = z(null), [y, S] = z(null), I = Ct(null), L = Ct(null), j = U(
|
|
3047
|
+
(i) => {
|
|
3048
|
+
i && (e.setFocusedEventId(i), r?.("activity"));
|
|
2902
3049
|
},
|
|
2903
3050
|
[e, r]
|
|
2904
3051
|
);
|
|
2905
|
-
|
|
2906
|
-
const
|
|
2907
|
-
const
|
|
2908
|
-
for (const B of
|
|
3052
|
+
K(() => {
|
|
3053
|
+
const i = () => {
|
|
3054
|
+
const $ = e.getAllEvents(), D = /* @__PURE__ */ new Map(), Q = [];
|
|
3055
|
+
for (const B of $) {
|
|
2909
3056
|
if (B.type === "log") {
|
|
2910
|
-
|
|
3057
|
+
Q.push(B);
|
|
2911
3058
|
continue;
|
|
2912
3059
|
}
|
|
2913
|
-
|
|
3060
|
+
Ve(B) && D.set(B.id, B);
|
|
2914
3061
|
}
|
|
2915
|
-
|
|
2916
|
-
},
|
|
2917
|
-
return
|
|
3062
|
+
s(Q), p(D);
|
|
3063
|
+
}, N = e.subscribeBatched(i);
|
|
3064
|
+
return i(), N;
|
|
2918
3065
|
}, [e]);
|
|
2919
|
-
const
|
|
2920
|
-
const
|
|
2921
|
-
return a.filter((
|
|
2922
|
-
if (w !== "all" &&
|
|
2923
|
-
if (
|
|
2924
|
-
const
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
3066
|
+
const E = V(() => {
|
|
3067
|
+
const i = C.trim().toLowerCase().split(/\s+/).filter((N) => N.length > 0);
|
|
3068
|
+
return a.filter((N) => {
|
|
3069
|
+
if (w !== "all" && N.level !== w) return !1;
|
|
3070
|
+
if (i.length === 0) return !0;
|
|
3071
|
+
const $ = N.relatedEventId ? l.get(N.relatedEventId) : void 0, D = [
|
|
3072
|
+
N.message,
|
|
3073
|
+
N.level,
|
|
3074
|
+
N.relatedEventId ?? "",
|
|
3075
|
+
$?.udfPath ?? "",
|
|
3076
|
+
$?.type ?? "",
|
|
3077
|
+
$ ? de($) : ""
|
|
2931
3078
|
].join(`
|
|
2932
3079
|
`).toLowerCase();
|
|
2933
|
-
return
|
|
3080
|
+
return i.every((Q) => D.includes(Q));
|
|
2934
3081
|
});
|
|
2935
|
-
}, [a, w,
|
|
2936
|
-
|
|
2937
|
-
}, []),
|
|
3082
|
+
}, [a, w, C, l]), q = U((i) => {
|
|
3083
|
+
R(i.message), S(i.id), setTimeout(() => S(null), 300);
|
|
3084
|
+
}, []), H = U((i) => `[${new Date(i.timestamp).toLocaleTimeString([], {
|
|
2938
3085
|
hour: "2-digit",
|
|
2939
3086
|
minute: "2-digit",
|
|
2940
3087
|
second: "2-digit",
|
|
2941
3088
|
fractionalSecondDigits: 3
|
|
2942
|
-
})}] [${
|
|
2943
|
-
const
|
|
3089
|
+
})}] [${i.level.toUpperCase()}] ${i.message}`, []), b = U(() => {
|
|
3090
|
+
const i = E.map(H).join(`
|
|
2944
3091
|
`);
|
|
2945
|
-
|
|
2946
|
-
}, [
|
|
2947
|
-
|
|
2948
|
-
const
|
|
2949
|
-
if (
|
|
2950
|
-
if ((
|
|
2951
|
-
|
|
3092
|
+
R(i);
|
|
3093
|
+
}, [E, H]);
|
|
3094
|
+
K(() => {
|
|
3095
|
+
const i = (N) => {
|
|
3096
|
+
if (qt()) {
|
|
3097
|
+
if ((N.metaKey || N.ctrlKey) && N.key === "k") {
|
|
3098
|
+
N.preventDefault(), I.current?.focus();
|
|
2952
3099
|
return;
|
|
2953
3100
|
}
|
|
2954
|
-
|
|
3101
|
+
N.key === "Escape" && (w !== "all" || C) && (N.preventDefault(), v("all"), f(""));
|
|
2955
3102
|
}
|
|
2956
3103
|
};
|
|
2957
|
-
return window.addEventListener("keydown",
|
|
2958
|
-
}, [w,
|
|
2959
|
-
|
|
2960
|
-
}, [
|
|
2961
|
-
const
|
|
2962
|
-
(
|
|
2963
|
-
const
|
|
3104
|
+
return window.addEventListener("keydown", i), () => window.removeEventListener("keydown", i);
|
|
3105
|
+
}, [w, C]), K(() => {
|
|
3106
|
+
d && L.current && L.current.scrollIntoView({ behavior: "smooth" });
|
|
3107
|
+
}, [d]);
|
|
3108
|
+
const x = U(
|
|
3109
|
+
(i) => {
|
|
3110
|
+
const N = i.relatedEventId ? l.get(i.relatedEventId) : void 0, $ = new Date(i.timestamp).toLocaleTimeString([], {
|
|
2964
3111
|
hour: "2-digit",
|
|
2965
3112
|
minute: "2-digit",
|
|
2966
3113
|
second: "2-digit",
|
|
2967
3114
|
fractionalSecondDigits: 3
|
|
2968
|
-
}),
|
|
2969
|
-
{ label: "Copy Message", action: () =>
|
|
2970
|
-
{ label: "Copy Timestamp", action: () =>
|
|
3115
|
+
}), D = [
|
|
3116
|
+
{ label: "Copy Message", action: () => R(i.message), shortcut: "⌘C" },
|
|
3117
|
+
{ label: "Copy Timestamp", action: () => R($) }
|
|
2971
3118
|
];
|
|
2972
|
-
return
|
|
2973
|
-
label: `Filter by Level: ${
|
|
2974
|
-
action: () => v(
|
|
3119
|
+
return D.push({
|
|
3120
|
+
label: `Filter by Level: ${i.level}`,
|
|
3121
|
+
action: () => v(i.level),
|
|
2975
3122
|
separator: !0
|
|
2976
|
-
}),
|
|
3123
|
+
}), i.relatedEventId && D.push({
|
|
2977
3124
|
label: "Copy Related Event ID",
|
|
2978
|
-
action: () =>
|
|
2979
|
-
}),
|
|
3125
|
+
action: () => R(i.relatedEventId)
|
|
3126
|
+
}), N && (D.push({
|
|
2980
3127
|
label: "Copy Related Function Path",
|
|
2981
|
-
action: () =>
|
|
2982
|
-
}),
|
|
3128
|
+
action: () => R(N.udfPath)
|
|
3129
|
+
}), D.push({
|
|
2983
3130
|
label: "Filter by Related Function",
|
|
2984
|
-
action: () => f(
|
|
2985
|
-
})),
|
|
3131
|
+
action: () => f(N.udfPath)
|
|
3132
|
+
})), i.relatedEventId && r && D.push({
|
|
2986
3133
|
label: "Go to Related Event",
|
|
2987
|
-
action: () =>
|
|
2988
|
-
}),
|
|
3134
|
+
action: () => j(i.relatedEventId)
|
|
3135
|
+
}), D.push({
|
|
2989
3136
|
label: "Copy as JSON",
|
|
2990
|
-
action: () =>
|
|
3137
|
+
action: () => R(JSON.stringify(i, null, 2)),
|
|
2991
3138
|
separator: !0
|
|
2992
|
-
}),
|
|
3139
|
+
}), D;
|
|
2993
3140
|
},
|
|
2994
|
-
[
|
|
3141
|
+
[j, r, l]
|
|
2995
3142
|
);
|
|
2996
3143
|
return /* @__PURE__ */ n("div", { className: "flex flex-col h-full overflow-hidden", children: [
|
|
2997
3144
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2 px-3 py-1.5 border-b border-dt-border-light", children: [
|
|
2998
|
-
/* @__PURE__ */ t("div", { className: "flex items-center gap-0.5", children: ["all", "log", "info", "warn", "error"].map((
|
|
3145
|
+
/* @__PURE__ */ t("div", { className: "flex items-center gap-0.5", children: ["all", "log", "info", "warn", "error"].map((i) => /* @__PURE__ */ t(
|
|
2999
3146
|
"button",
|
|
3000
3147
|
{
|
|
3001
|
-
className: `px-2 py-1 text-[11px] bg-transparent border rounded-md cursor-pointer transition-all ${w ===
|
|
3002
|
-
onClick: () => v(
|
|
3003
|
-
children:
|
|
3148
|
+
className: `px-2 py-1 text-[11px] bg-transparent border rounded-md cursor-pointer transition-all ${w === i ? i === "info" ? "bg-dt-info/20 text-dt-info border-dt-info/30 font-medium" : i === "warn" ? "bg-dt-warning/20 text-dt-warning border-dt-warning/30 font-medium" : i === "error" ? "bg-dt-error/20 text-dt-error border-dt-error/30 font-medium" : "bg-white/10 text-dt-text-secondary border-dt-border-light font-medium" : i === "info" ? "border-transparent text-dt-text-muted hover:bg-dt-info/15 hover:text-dt-info" : i === "warn" ? "border-transparent text-dt-text-muted hover:bg-dt-warning/15 hover:text-dt-warning" : i === "error" ? "border-transparent text-dt-text-muted hover:bg-dt-error/15 hover:text-dt-error" : "border-transparent text-dt-text-muted hover:bg-white/5 hover:text-dt-text-tertiary"}`,
|
|
3149
|
+
onClick: () => v(i),
|
|
3150
|
+
children: i.charAt(0).toUpperCase() + i.slice(1)
|
|
3004
3151
|
},
|
|
3005
|
-
|
|
3152
|
+
i
|
|
3006
3153
|
)) }),
|
|
3007
3154
|
/* @__PURE__ */ t(
|
|
3008
|
-
|
|
3155
|
+
Gt,
|
|
3009
3156
|
{
|
|
3010
|
-
ref:
|
|
3011
|
-
value:
|
|
3157
|
+
ref: I,
|
|
3158
|
+
value: C,
|
|
3012
3159
|
onValueChange: f,
|
|
3013
3160
|
onClear: () => f(""),
|
|
3014
3161
|
placeholder: "Search msg/path/id... (Cmd/Ctrl+K)",
|
|
@@ -3020,118 +3167,118 @@ function Be({ eventStore: e, onNavigate: r }) {
|
|
|
3020
3167
|
"button",
|
|
3021
3168
|
{
|
|
3022
3169
|
className: "px-2 py-1 text-[11px] bg-transparent border border-dt-border-light rounded-md cursor-pointer text-dt-text-muted hover:text-dt-text-secondary hover:bg-white/5 transition-colors disabled:opacity-30 disabled:cursor-default disabled:hover:bg-transparent disabled:hover:text-dt-text-muted",
|
|
3023
|
-
onClick:
|
|
3024
|
-
disabled:
|
|
3170
|
+
onClick: b,
|
|
3171
|
+
disabled: E.length === 0,
|
|
3025
3172
|
title: "Copy all visible logs as plain text",
|
|
3026
3173
|
children: [
|
|
3027
3174
|
"Copy all (",
|
|
3028
|
-
|
|
3175
|
+
E.length,
|
|
3029
3176
|
")"
|
|
3030
3177
|
]
|
|
3031
3178
|
}
|
|
3032
3179
|
),
|
|
3033
3180
|
/* @__PURE__ */ n("label", { className: "flex items-center gap-1.5 text-[11px] text-dt-text-muted cursor-pointer select-none", children: [
|
|
3034
|
-
/* @__PURE__ */ t("input", { type: "checkbox", checked:
|
|
3181
|
+
/* @__PURE__ */ t("input", { type: "checkbox", checked: d, onChange: (i) => u(i.target.checked) }),
|
|
3035
3182
|
"Auto-scroll"
|
|
3036
3183
|
] })
|
|
3037
3184
|
] })
|
|
3038
3185
|
] }),
|
|
3039
3186
|
/* @__PURE__ */ n("div", { className: "flex-1 overflow-y-auto p-1", children: [
|
|
3040
|
-
|
|
3187
|
+
E.length === 0 && /* @__PURE__ */ n("div", { className: "flex flex-col items-center justify-center py-12 text-dt-text-muted gap-2", children: [
|
|
3041
3188
|
/* @__PURE__ */ t("p", { children: "No logs yet" }),
|
|
3042
3189
|
/* @__PURE__ */ t("p", { className: "text-[11px] text-dt-text-muted/60", children: "Console output from functions will appear here" })
|
|
3043
3190
|
] }),
|
|
3044
|
-
|
|
3045
|
-
const
|
|
3191
|
+
E.map((i) => {
|
|
3192
|
+
const N = i.relatedEventId ? l.get(i.relatedEventId) : void 0, $ = N ? de(N) : null;
|
|
3046
3193
|
return /* @__PURE__ */ n(
|
|
3047
3194
|
"div",
|
|
3048
3195
|
{
|
|
3049
|
-
className: `flex items-start gap-2 px-2 py-1 text-[11px] font-mono border-b border-dt-border-light/30 cursor-pointer select-none transition-colors duration-300 ${
|
|
3050
|
-
onClick: () => q(
|
|
3051
|
-
onContextMenu: (
|
|
3052
|
-
|
|
3053
|
-
x:
|
|
3054
|
-
y:
|
|
3055
|
-
items:
|
|
3196
|
+
className: `flex items-start gap-2 px-2 py-1 text-[11px] font-mono border-b border-dt-border-light/30 cursor-pointer select-none transition-colors duration-300 ${y === i.id ? "bg-white/10" : `hover:bg-white/[0.02] ${i.level === "warn" ? "bg-dt-warning/5" : i.level === "error" ? "bg-dt-error/5" : ""}`}`,
|
|
3197
|
+
onClick: () => q(i),
|
|
3198
|
+
onContextMenu: (D) => {
|
|
3199
|
+
D.preventDefault(), k({
|
|
3200
|
+
x: D.clientX,
|
|
3201
|
+
y: D.clientY,
|
|
3202
|
+
items: x(i)
|
|
3056
3203
|
});
|
|
3057
3204
|
},
|
|
3058
3205
|
children: [
|
|
3059
|
-
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/60 shrink-0", children: new Date(
|
|
3206
|
+
/* @__PURE__ */ t("span", { className: "text-dt-text-muted/60 shrink-0", children: new Date(i.timestamp).toLocaleTimeString([], {
|
|
3060
3207
|
hour: "2-digit",
|
|
3061
3208
|
minute: "2-digit",
|
|
3062
3209
|
second: "2-digit",
|
|
3063
3210
|
fractionalSecondDigits: 3
|
|
3064
3211
|
}) }),
|
|
3065
|
-
/* @__PURE__ */ t("span", { className: `font-semibold shrink-0 w-10 uppercase text-[10px] ${
|
|
3212
|
+
/* @__PURE__ */ t("span", { className: `font-semibold shrink-0 w-10 uppercase text-[10px] ${i.level === "info" ? "text-dt-info" : i.level === "warn" ? "text-dt-warning" : i.level === "error" ? "text-dt-error" : "text-dt-text-muted"}`, children: i.level.toUpperCase() }),
|
|
3066
3213
|
/* @__PURE__ */ n("div", { className: "flex-1 min-w-0", children: [
|
|
3067
|
-
/* @__PURE__ */ t("div", { className: "text-dt-text-secondary break-all", children:
|
|
3068
|
-
|
|
3069
|
-
|
|
3214
|
+
/* @__PURE__ */ t("div", { className: "text-dt-text-secondary break-all", children: i.message }),
|
|
3215
|
+
N && /* @__PURE__ */ n("div", { className: "text-[10px] text-dt-text-muted/70 truncate", title: `${N.type} ${N.udfPath}`, children: [
|
|
3216
|
+
N.type,
|
|
3070
3217
|
" ",
|
|
3071
|
-
|
|
3218
|
+
N.udfPath
|
|
3072
3219
|
] })
|
|
3073
3220
|
] }),
|
|
3074
|
-
|
|
3221
|
+
i.relatedEventId && /* @__PURE__ */ t(
|
|
3075
3222
|
"button",
|
|
3076
3223
|
{
|
|
3077
3224
|
className: "shrink-0 px-1 py-0.5 bg-transparent border border-dt-border-light/50 rounded text-[9px] font-mono text-dt-text-muted cursor-pointer hover:text-dt-info hover:border-dt-info/30 transition-colors",
|
|
3078
|
-
onClick: (
|
|
3079
|
-
|
|
3225
|
+
onClick: (D) => {
|
|
3226
|
+
D.stopPropagation(), j(i.relatedEventId);
|
|
3080
3227
|
},
|
|
3081
|
-
title:
|
|
3082
|
-
children:
|
|
3228
|
+
title: N ? `Open ${N.udfPath}` : `From: ${i.relatedEventId}`,
|
|
3229
|
+
children: $ ?? i.relatedEventId.split("-")[0]
|
|
3083
3230
|
}
|
|
3084
3231
|
)
|
|
3085
3232
|
]
|
|
3086
3233
|
},
|
|
3087
|
-
|
|
3234
|
+
i.id
|
|
3088
3235
|
);
|
|
3089
3236
|
}),
|
|
3090
|
-
/* @__PURE__ */ t("div", { ref:
|
|
3237
|
+
/* @__PURE__ */ t("div", { ref: L })
|
|
3091
3238
|
] }),
|
|
3092
|
-
|
|
3093
|
-
|
|
3239
|
+
m && /* @__PURE__ */ t(
|
|
3240
|
+
Yt,
|
|
3094
3241
|
{
|
|
3095
|
-
x:
|
|
3096
|
-
y:
|
|
3097
|
-
items:
|
|
3098
|
-
onClose: () =>
|
|
3242
|
+
x: m.x,
|
|
3243
|
+
y: m.y,
|
|
3244
|
+
items: m.items,
|
|
3245
|
+
onClose: () => k(null)
|
|
3099
3246
|
}
|
|
3100
3247
|
)
|
|
3101
3248
|
] });
|
|
3102
3249
|
}
|
|
3103
|
-
function
|
|
3104
|
-
const [r, a] = z(e.getSettings()), [
|
|
3105
|
-
|
|
3106
|
-
a(
|
|
3250
|
+
function Ue({ eventStore: e }) {
|
|
3251
|
+
const [r, a] = z(e.getSettings()), [s, l] = z(e.getSnapshots()), p = e.isPausedState(), d = e.isPersistenceEnabled();
|
|
3252
|
+
K(() => (a(e.getSettings()), e.subscribeSettings((S) => {
|
|
3253
|
+
a(S);
|
|
3107
3254
|
})), [e]);
|
|
3108
|
-
const
|
|
3109
|
-
e.saveSettings({ [
|
|
3255
|
+
const u = (y, S) => {
|
|
3256
|
+
e.saveSettings({ [y]: S });
|
|
3110
3257
|
}, w = () => {
|
|
3111
|
-
const
|
|
3258
|
+
const y = e.exportSession(), S = new Blob([JSON.stringify(y, null, 2)], {
|
|
3112
3259
|
type: "application/json"
|
|
3113
|
-
}),
|
|
3114
|
-
|
|
3260
|
+
}), I = URL.createObjectURL(S), L = document.createElement("a");
|
|
3261
|
+
L.href = I, L.download = `concave-devtools-${Date.now()}.json`, L.click(), URL.revokeObjectURL(I);
|
|
3115
3262
|
}, v = () => {
|
|
3116
|
-
const
|
|
3117
|
-
|
|
3118
|
-
const
|
|
3119
|
-
if (
|
|
3263
|
+
const y = document.createElement("input");
|
|
3264
|
+
y.type = "file", y.accept = ".json", y.onchange = async (S) => {
|
|
3265
|
+
const I = S.target.files?.[0];
|
|
3266
|
+
if (I)
|
|
3120
3267
|
try {
|
|
3121
|
-
const
|
|
3122
|
-
alert(
|
|
3123
|
-
} catch (
|
|
3124
|
-
alert(`Failed to import session: ${
|
|
3268
|
+
const L = await I.text(), j = JSON.parse(L), E = e.importSession(j);
|
|
3269
|
+
alert(E ? "Session imported successfully!" : "Failed to import session. Invalid format.");
|
|
3270
|
+
} catch (L) {
|
|
3271
|
+
alert(`Failed to import session: ${L}`);
|
|
3125
3272
|
}
|
|
3126
|
-
},
|
|
3127
|
-
},
|
|
3128
|
-
e.createSnapshot(),
|
|
3129
|
-
}, f = (
|
|
3130
|
-
confirm("Restore to this snapshot? Current state will be replaced.") && e.restoreSnapshot(
|
|
3131
|
-
},
|
|
3132
|
-
|
|
3133
|
-
},
|
|
3134
|
-
e.clear(),
|
|
3273
|
+
}, y.click();
|
|
3274
|
+
}, C = () => {
|
|
3275
|
+
e.createSnapshot(), l(e.getSnapshots());
|
|
3276
|
+
}, f = (y) => {
|
|
3277
|
+
confirm("Restore to this snapshot? Current state will be replaced.") && e.restoreSnapshot(y) && l(e.getSnapshots());
|
|
3278
|
+
}, m = () => {
|
|
3279
|
+
p ? e.resume() : e.pause(), a({ ...e.getSettings() });
|
|
3280
|
+
}, k = () => {
|
|
3281
|
+
e.clear(), l(e.getSnapshots());
|
|
3135
3282
|
};
|
|
3136
3283
|
return /* @__PURE__ */ n("div", { className: "flex flex-col h-full overflow-y-auto p-3 gap-3", children: [
|
|
3137
3284
|
/* @__PURE__ */ n("div", { className: "flex flex-col gap-1.5", children: [
|
|
@@ -3140,18 +3287,18 @@ function Ve({ eventStore: e }) {
|
|
|
3140
3287
|
/* @__PURE__ */ t(
|
|
3141
3288
|
"span",
|
|
3142
3289
|
{
|
|
3143
|
-
className: `px-1.5 py-0.5 rounded text-[10px] font-semibold uppercase tracking-wide ${
|
|
3144
|
-
children:
|
|
3290
|
+
className: `px-1.5 py-0.5 rounded text-[10px] font-semibold uppercase tracking-wide ${p ? "bg-dt-warning/20 text-dt-warning" : "bg-dt-success/20 text-dt-success"}`,
|
|
3291
|
+
children: p ? "Paused" : "Live"
|
|
3145
3292
|
}
|
|
3146
3293
|
),
|
|
3147
|
-
/* @__PURE__ */ t("span", { className: "text-[11px] text-dt-text-muted", children:
|
|
3294
|
+
/* @__PURE__ */ t("span", { className: "text-[11px] text-dt-text-muted", children: p ? "No new events" : "Capturing events" }),
|
|
3148
3295
|
/* @__PURE__ */ t(
|
|
3149
3296
|
"button",
|
|
3150
3297
|
{
|
|
3151
3298
|
type: "button",
|
|
3152
|
-
className: `ml-auto px-2.5 py-1 rounded-md text-[11px] font-medium cursor-pointer border transition-all ${
|
|
3153
|
-
onClick:
|
|
3154
|
-
children:
|
|
3299
|
+
className: `ml-auto px-2.5 py-1 rounded-md text-[11px] font-medium cursor-pointer border transition-all ${p ? "bg-dt-success/15 text-dt-success border-dt-success/30 hover:bg-dt-success/25" : "bg-dt-error/15 text-dt-error border-dt-error/30 hover:bg-dt-error/25"}`,
|
|
3300
|
+
onClick: m,
|
|
3301
|
+
children: p ? "Resume" : "Pause"
|
|
3155
3302
|
}
|
|
3156
3303
|
)
|
|
3157
3304
|
] })
|
|
@@ -3161,19 +3308,19 @@ function Ve({ eventStore: e }) {
|
|
|
3161
3308
|
/* @__PURE__ */ n(
|
|
3162
3309
|
"label",
|
|
3163
3310
|
{
|
|
3164
|
-
className: `flex items-center gap-2 px-2 py-1.5 rounded-md border border-dt-border-light/30 text-[12px] ${
|
|
3311
|
+
className: `flex items-center gap-2 px-2 py-1.5 rounded-md border border-dt-border-light/30 text-[12px] ${d ? "cursor-pointer" : "cursor-not-allowed opacity-70"}`,
|
|
3165
3312
|
children: [
|
|
3166
3313
|
/* @__PURE__ */ t(
|
|
3167
3314
|
"input",
|
|
3168
3315
|
{
|
|
3169
3316
|
type: "checkbox",
|
|
3170
3317
|
checked: r.persistEvents,
|
|
3171
|
-
disabled: !
|
|
3172
|
-
onChange: (
|
|
3318
|
+
disabled: !d,
|
|
3319
|
+
onChange: (y) => u("persistEvents", y.target.checked)
|
|
3173
3320
|
}
|
|
3174
3321
|
),
|
|
3175
3322
|
/* @__PURE__ */ t("span", { className: "text-dt-text-secondary", children: "Persist events" }),
|
|
3176
|
-
/* @__PURE__ */ t("span", { className: "ml-auto text-[10px] text-dt-text-muted", children:
|
|
3323
|
+
/* @__PURE__ */ t("span", { className: "ml-auto text-[10px] text-dt-text-muted", children: d ? "localStorage" : "disabled in panel" })
|
|
3177
3324
|
]
|
|
3178
3325
|
}
|
|
3179
3326
|
),
|
|
@@ -3183,7 +3330,7 @@ function Ve({ eventStore: e }) {
|
|
|
3183
3330
|
{
|
|
3184
3331
|
type: "checkbox",
|
|
3185
3332
|
checked: r.captureLogLines,
|
|
3186
|
-
onChange: (
|
|
3333
|
+
onChange: (y) => u("captureLogLines", y.target.checked)
|
|
3187
3334
|
}
|
|
3188
3335
|
),
|
|
3189
3336
|
/* @__PURE__ */ t("span", { className: "text-dt-text-secondary", children: "Capture console logs" })
|
|
@@ -3194,7 +3341,7 @@ function Ve({ eventStore: e }) {
|
|
|
3194
3341
|
{
|
|
3195
3342
|
type: "checkbox",
|
|
3196
3343
|
checked: r.autoPauseOnError,
|
|
3197
|
-
onChange: (
|
|
3344
|
+
onChange: (y) => u("autoPauseOnError", y.target.checked)
|
|
3198
3345
|
}
|
|
3199
3346
|
),
|
|
3200
3347
|
/* @__PURE__ */ t("span", { className: "text-dt-text-secondary", children: "Auto-pause on error" })
|
|
@@ -3207,7 +3354,7 @@ function Ve({ eventStore: e }) {
|
|
|
3207
3354
|
type: "number",
|
|
3208
3355
|
className: "w-20 bg-dt-bg-tertiary border border-dt-border-light rounded px-2 py-1 text-[12px] text-dt-text-secondary font-mono outline-none focus:border-dt-info/50",
|
|
3209
3356
|
value: r.maxEvents,
|
|
3210
|
-
onChange: (
|
|
3357
|
+
onChange: (y) => u("maxEvents", parseInt(y.target.value, 10) || 1e3),
|
|
3211
3358
|
min: "100",
|
|
3212
3359
|
max: "10000",
|
|
3213
3360
|
step: "100"
|
|
@@ -3226,7 +3373,7 @@ function Ve({ eventStore: e }) {
|
|
|
3226
3373
|
type: "number",
|
|
3227
3374
|
className: "w-20 bg-dt-bg-tertiary border border-dt-border-light rounded px-2 py-1 text-[12px] text-dt-text-secondary font-mono outline-none focus:border-dt-info/50",
|
|
3228
3375
|
value: r.wsLatencyMs,
|
|
3229
|
-
onChange: (
|
|
3376
|
+
onChange: (y) => u("wsLatencyMs", Math.max(0, parseInt(y.target.value, 10) || 0)),
|
|
3230
3377
|
min: "0",
|
|
3231
3378
|
max: "10000",
|
|
3232
3379
|
step: "50"
|
|
@@ -3242,7 +3389,7 @@ function Ve({ eventStore: e }) {
|
|
|
3242
3389
|
type: "number",
|
|
3243
3390
|
className: "w-20 bg-dt-bg-tertiary border border-dt-border-light rounded px-2 py-1 text-[12px] text-dt-text-secondary font-mono outline-none focus:border-dt-info/50",
|
|
3244
3391
|
value: r.wsJitterMs,
|
|
3245
|
-
onChange: (
|
|
3392
|
+
onChange: (y) => u("wsJitterMs", Math.max(0, parseInt(y.target.value, 10) || 0)),
|
|
3246
3393
|
min: "0",
|
|
3247
3394
|
max: "5000",
|
|
3248
3395
|
step: "25"
|
|
@@ -3296,7 +3443,7 @@ function Ve({ eventStore: e }) {
|
|
|
3296
3443
|
{
|
|
3297
3444
|
type: "button",
|
|
3298
3445
|
className: "px-2.5 py-1 bg-dt-bg-tertiary border border-dt-border-light rounded-md text-[11px] text-dt-text-secondary cursor-pointer transition-all hover:bg-dt-error/15 hover:text-dt-error hover:border-dt-error/30",
|
|
3299
|
-
onClick:
|
|
3446
|
+
onClick: k,
|
|
3300
3447
|
children: "Clear"
|
|
3301
3448
|
}
|
|
3302
3449
|
)
|
|
@@ -3310,16 +3457,16 @@ function Ve({ eventStore: e }) {
|
|
|
3310
3457
|
{
|
|
3311
3458
|
type: "button",
|
|
3312
3459
|
className: "px-2.5 py-1 bg-dt-bg-tertiary border border-dt-border-light rounded-md text-[11px] text-dt-text-secondary cursor-pointer transition-all hover:bg-white/10 hover:border-dt-border",
|
|
3313
|
-
onClick:
|
|
3460
|
+
onClick: C,
|
|
3314
3461
|
children: "Snapshot"
|
|
3315
3462
|
}
|
|
3316
3463
|
),
|
|
3317
3464
|
/* @__PURE__ */ n("span", { className: "px-1.5 py-0.5 rounded bg-dt-bg-tertiary text-[10px] text-dt-text-muted font-mono", children: [
|
|
3318
|
-
|
|
3465
|
+
s.length,
|
|
3319
3466
|
" saved"
|
|
3320
3467
|
] })
|
|
3321
3468
|
] }),
|
|
3322
|
-
|
|
3469
|
+
s.length > 0 ? /* @__PURE__ */ t("div", { className: "flex flex-col gap-1 max-h-[180px] overflow-y-auto pr-1", children: [...s].reverse().map((y) => /* @__PURE__ */ n(
|
|
3323
3470
|
"div",
|
|
3324
3471
|
{
|
|
3325
3472
|
className: "flex items-center gap-2 px-2 py-1 bg-dt-bg-tertiary/50 rounded border border-dt-border-light/30 text-[11px]",
|
|
@@ -3328,8 +3475,8 @@ function Ve({ eventStore: e }) {
|
|
|
3328
3475
|
"span",
|
|
3329
3476
|
{
|
|
3330
3477
|
className: "text-dt-text-secondary font-mono",
|
|
3331
|
-
title: new Date(
|
|
3332
|
-
children: new Date(
|
|
3478
|
+
title: new Date(y.timestamp).toLocaleString(),
|
|
3479
|
+
children: new Date(y.timestamp).toLocaleTimeString([], {
|
|
3333
3480
|
hour: "2-digit",
|
|
3334
3481
|
minute: "2-digit",
|
|
3335
3482
|
second: "2-digit"
|
|
@@ -3337,7 +3484,7 @@ function Ve({ eventStore: e }) {
|
|
|
3337
3484
|
}
|
|
3338
3485
|
),
|
|
3339
3486
|
/* @__PURE__ */ n("span", { className: "text-dt-text-muted", children: [
|
|
3340
|
-
|
|
3487
|
+
y.events.length,
|
|
3341
3488
|
"e"
|
|
3342
3489
|
] }),
|
|
3343
3490
|
/* @__PURE__ */ t(
|
|
@@ -3345,13 +3492,13 @@ function Ve({ eventStore: e }) {
|
|
|
3345
3492
|
{
|
|
3346
3493
|
type: "button",
|
|
3347
3494
|
className: "ml-auto px-1.5 py-0.5 bg-dt-info/15 text-dt-info border border-dt-info/30 rounded text-[10px] font-medium cursor-pointer hover:bg-dt-info/25",
|
|
3348
|
-
onClick: () => f(
|
|
3495
|
+
onClick: () => f(y.timestamp),
|
|
3349
3496
|
children: "Restore"
|
|
3350
3497
|
}
|
|
3351
3498
|
)
|
|
3352
3499
|
]
|
|
3353
3500
|
},
|
|
3354
|
-
|
|
3501
|
+
y.timestamp
|
|
3355
3502
|
)) }) : /* @__PURE__ */ t("p", { className: "text-[11px] text-dt-text-muted/60 m-0", children: "No snapshots" })
|
|
3356
3503
|
] }),
|
|
3357
3504
|
/* @__PURE__ */ n("div", { className: "flex flex-col gap-1.5", children: [
|
|
@@ -3382,111 +3529,111 @@ function Ve({ eventStore: e }) {
|
|
|
3382
3529
|
" ",
|
|
3383
3530
|
/* @__PURE__ */ n("span", { children: [
|
|
3384
3531
|
"v",
|
|
3385
|
-
|
|
3532
|
+
pe
|
|
3386
3533
|
] })
|
|
3387
3534
|
] })
|
|
3388
3535
|
] })
|
|
3389
3536
|
] });
|
|
3390
3537
|
}
|
|
3391
|
-
function
|
|
3538
|
+
function Ke({
|
|
3392
3539
|
eventStore: e,
|
|
3393
3540
|
position: r = "bottom-right",
|
|
3394
3541
|
mode: a = "overlay",
|
|
3395
|
-
panelConnectionState:
|
|
3542
|
+
panelConnectionState: s
|
|
3396
3543
|
}) {
|
|
3397
|
-
const
|
|
3398
|
-
if (
|
|
3399
|
-
const
|
|
3400
|
-
return
|
|
3401
|
-
}), [
|
|
3402
|
-
|
|
3403
|
-
const
|
|
3404
|
-
|
|
3544
|
+
const l = a === "panel", [p, d] = z(() => {
|
|
3545
|
+
if (l) return !0;
|
|
3546
|
+
const x = Jt("concave-devtools-open");
|
|
3547
|
+
return x ? JSON.parse(x) : !0;
|
|
3548
|
+
}), [u, w] = z("activity"), [v, C] = z([]), [f, m] = z(!1);
|
|
3549
|
+
K(() => {
|
|
3550
|
+
const x = e.subscribeBatched(() => {
|
|
3551
|
+
C(e.getAllEvents()), m(e.isPausedState());
|
|
3405
3552
|
});
|
|
3406
|
-
return
|
|
3407
|
-
}, [e]),
|
|
3408
|
-
|
|
3409
|
-
}, [
|
|
3410
|
-
const
|
|
3411
|
-
e.clear(),
|
|
3412
|
-
}, [e]),
|
|
3413
|
-
|
|
3414
|
-
}, []),
|
|
3415
|
-
const
|
|
3553
|
+
return C(e.getAllEvents()), m(e.isPausedState()), x;
|
|
3554
|
+
}, [e]), K(() => {
|
|
3555
|
+
l || Ut("concave-devtools-open", JSON.stringify(p));
|
|
3556
|
+
}, [p, l]);
|
|
3557
|
+
const k = U(() => {
|
|
3558
|
+
e.clear(), C([]);
|
|
3559
|
+
}, [e]), y = U(() => {
|
|
3560
|
+
d(!1);
|
|
3561
|
+
}, []), S = U(() => {
|
|
3562
|
+
const x = e.exportSession(), i = new Blob([JSON.stringify(x, null, 2)], {
|
|
3416
3563
|
type: "application/json"
|
|
3417
|
-
}),
|
|
3418
|
-
|
|
3419
|
-
}, [e]),
|
|
3420
|
-
e.isPausedState() ? (e.resume(),
|
|
3564
|
+
}), N = URL.createObjectURL(i), $ = document.createElement("a");
|
|
3565
|
+
$.href = N, $.download = `concave-devtools-${Date.now()}.json`, $.click(), URL.revokeObjectURL(N);
|
|
3566
|
+
}, [e]), I = U(() => {
|
|
3567
|
+
e.isPausedState() ? (e.resume(), m(!1)) : (e.pause(), m(!0));
|
|
3421
3568
|
}, [e]);
|
|
3422
|
-
|
|
3423
|
-
const
|
|
3424
|
-
if ((
|
|
3425
|
-
|
|
3569
|
+
K(() => {
|
|
3570
|
+
const x = (i) => {
|
|
3571
|
+
if ((i.metaKey || i.ctrlKey) && i.shiftKey && i.key === "D") {
|
|
3572
|
+
i.preventDefault(), d((N) => !N);
|
|
3426
3573
|
return;
|
|
3427
3574
|
}
|
|
3428
|
-
|
|
3575
|
+
qt() && ((i.metaKey || i.ctrlKey) && i.key === "e" && (i.preventDefault(), S()), (i.metaKey || i.ctrlKey) && i.key === "p" && (i.preventDefault(), I()));
|
|
3429
3576
|
};
|
|
3430
|
-
return window.addEventListener("keydown",
|
|
3431
|
-
}, [
|
|
3432
|
-
const
|
|
3577
|
+
return window.addEventListener("keydown", x), () => window.removeEventListener("keydown", x);
|
|
3578
|
+
}, [S, I]);
|
|
3579
|
+
const L = {
|
|
3433
3580
|
"bottom-right": "bottom-4 right-4",
|
|
3434
3581
|
"bottom-left": "bottom-4 left-4",
|
|
3435
3582
|
"top-right": "top-4 right-4",
|
|
3436
3583
|
"top-left": "top-4 left-4"
|
|
3437
|
-
}[r],
|
|
3438
|
-
(
|
|
3439
|
-
),
|
|
3440
|
-
{ id: "activity", label: "Activity", count:
|
|
3441
|
-
{ id: "subscriptions", label: "Subscriptions", count:
|
|
3584
|
+
}[r], j = v.filter(
|
|
3585
|
+
(x) => x.type === "query" || x.type === "mutation" || x.type === "action" || x.type === "auth"
|
|
3586
|
+
), E = e.getActiveSubscriptions().length, q = v.filter((x) => x.type === "log"), H = j.filter((x) => "status" in x && x.status === "error"), b = [
|
|
3587
|
+
{ id: "activity", label: "Activity", count: j.length, hasError: H.length > 0 },
|
|
3588
|
+
{ id: "subscriptions", label: "Subscriptions", count: E, hasError: !1 },
|
|
3442
3589
|
{ id: "performance", label: "Performance", count: 0, hasError: !1 },
|
|
3443
3590
|
{ id: "logs", label: "Logs", count: q.length, hasError: !1 },
|
|
3444
3591
|
{ id: "settings", label: "Settings", count: 0, hasError: !1 }
|
|
3445
3592
|
];
|
|
3446
|
-
return /* @__PURE__ */ n("div", { className:
|
|
3447
|
-
!
|
|
3593
|
+
return /* @__PURE__ */ n("div", { className: l ? "w-full h-full bg-dt-bg font-sans text-[13px] leading-normal text-dt-text-secondary antialiased" : `fixed z-[999999] font-sans text-[13px] leading-normal text-dt-text-secondary antialiased ${L}`, children: [
|
|
3594
|
+
!l && !p && /* @__PURE__ */ n(
|
|
3448
3595
|
"button",
|
|
3449
3596
|
{
|
|
3450
3597
|
className: "flex items-center gap-2.5 px-[18px] py-3 bg-gradient-to-br from-zinc-900/[0.98] to-zinc-800/95 backdrop-blur-[20px] border border-dt-border rounded-[14px] text-dt-text-tertiary cursor-pointer shadow-lg relative overflow-hidden hover:scale-[1.02] hover:-translate-y-0.5 transition-all",
|
|
3451
|
-
onClick: () =>
|
|
3598
|
+
onClick: () => d(!0),
|
|
3452
3599
|
title: "Open Concave DevTools (Cmd/Ctrl+Shift+D)",
|
|
3453
3600
|
"aria-label": "Open Concave DevTools",
|
|
3454
3601
|
"aria-expanded": "false",
|
|
3455
3602
|
children: [
|
|
3456
3603
|
/* @__PURE__ */ n("svg", { width: "20", height: "20", viewBox: "0 0 32 32", fill: "none", children: [
|
|
3457
|
-
/* @__PURE__ */ t("rect", { width: "32", height: "32", rx:
|
|
3458
|
-
/* @__PURE__ */ t("path", { d:
|
|
3604
|
+
/* @__PURE__ */ t("rect", { width: "32", height: "32", rx: Ne, fill: ke }),
|
|
3605
|
+
/* @__PURE__ */ t("path", { d: Ee, fill: "white" })
|
|
3459
3606
|
] }),
|
|
3460
|
-
|
|
3607
|
+
H.length > 0 ? /* @__PURE__ */ t("span", { className: "bg-gradient-to-br from-red-500 to-red-600 text-white px-2 py-0.5 rounded-full text-[10px] font-bold tracking-wide shadow-md min-w-5 text-center", children: H.length }) : j.length > 0 ? /* @__PURE__ */ t("span", { className: "bg-gradient-to-br from-blue-500 to-blue-600 text-white px-2 py-0.5 rounded-full text-[10px] font-bold tracking-wide shadow-md min-w-5 text-center", children: j.length }) : null
|
|
3461
3608
|
]
|
|
3462
3609
|
}
|
|
3463
3610
|
),
|
|
3464
|
-
(
|
|
3611
|
+
(l || p) && /* @__PURE__ */ n("div", { className: l ? "w-full h-full bg-dt-bg flex flex-col overflow-hidden outline-none" : "w-[min(860px,calc(100vw-32px))] min-w-[300px] max-w-[calc(100vw-24px)] h-[min(620px,calc(100vh-32px))] min-h-[360px] max-h-[calc(100vh-24px)] bg-zinc-950/98 border border-dt-border rounded-2xl shadow-2xl flex flex-col overflow-hidden outline-none", role: "dialog", "aria-label": "Concave DevTools", "aria-modal": "false", tabIndex: -1, children: [
|
|
3465
3612
|
/* @__PURE__ */ n("div", { className: "flex items-center justify-between border-b border-dt-border px-0 bg-dt-bg-secondary", children: [
|
|
3466
|
-
/* @__PURE__ */ t("div", { className: "flex items-center gap-0 flex-1 overflow-x-auto", role: "tablist", "aria-label": "DevTools panels", children:
|
|
3613
|
+
/* @__PURE__ */ t("div", { className: "flex items-center gap-0 flex-1 overflow-x-auto", role: "tablist", "aria-label": "DevTools panels", children: b.map((x) => /* @__PURE__ */ n(
|
|
3467
3614
|
"button",
|
|
3468
3615
|
{
|
|
3469
|
-
id: `tab-${
|
|
3470
|
-
className:
|
|
3471
|
-
onClick: () => w(
|
|
3472
|
-
"aria-label": `${
|
|
3473
|
-
"aria-selected":
|
|
3616
|
+
id: `tab-${x.id}`,
|
|
3617
|
+
className: `px-3 py-[7px] bg-transparent border-none text-[12px] cursor-pointer transition-colors whitespace-nowrap border-b-2 ${u === x.id ? "text-dt-info border-b-dt-info" : "text-dt-text-tertiary border-b-transparent hover:text-dt-text-secondary hover:bg-white/5"}`,
|
|
3618
|
+
onClick: () => w(x.id),
|
|
3619
|
+
"aria-label": `${x.label} panel`,
|
|
3620
|
+
"aria-selected": u === x.id,
|
|
3474
3621
|
role: "tab",
|
|
3475
|
-
"aria-controls": `panel-${
|
|
3622
|
+
"aria-controls": `panel-${x.id}`,
|
|
3476
3623
|
children: [
|
|
3477
|
-
/* @__PURE__ */ t("span", { children:
|
|
3478
|
-
|
|
3624
|
+
/* @__PURE__ */ t("span", { children: x.label }),
|
|
3625
|
+
x.count > 0 && /* @__PURE__ */ t("span", { className: `ml-1.5 px-1.5 py-0 rounded-full text-[10px] font-medium ${x.hasError ? "bg-dt-error/20 text-dt-error" : "bg-dt-bg-tertiary text-dt-text-tertiary"}`, children: x.count })
|
|
3479
3626
|
]
|
|
3480
3627
|
},
|
|
3481
|
-
|
|
3628
|
+
x.id
|
|
3482
3629
|
)) }),
|
|
3483
|
-
/* @__PURE__ */ n("div", { className:
|
|
3630
|
+
/* @__PURE__ */ n("div", { className: l ? "flex items-center gap-0.5 ml-auto pr-1" : "flex items-center gap-1.5 ml-auto", role: "toolbar", "aria-label": "DevTools quick actions", children: [
|
|
3484
3631
|
/* @__PURE__ */ t(
|
|
3485
3632
|
"button",
|
|
3486
3633
|
{
|
|
3487
3634
|
type: "button",
|
|
3488
|
-
className:
|
|
3489
|
-
onClick:
|
|
3635
|
+
className: l ? `flex items-center justify-center w-7 h-7 p-0 bg-transparent border-none rounded cursor-pointer transition-colors hover:bg-white/10 ${f ? "text-dt-text-muted hover:text-dt-text-secondary" : "text-dt-error hover:text-dt-error"}` : `flex items-center justify-center w-7 h-7 p-0 bg-transparent border-none rounded-md cursor-pointer transition-all relative hover:bg-zinc-600/20 active:scale-[0.94] ${f ? "text-dt-text-muted hover:text-dt-text-secondary" : "text-dt-error bg-dt-error/10 hover:bg-dt-error/15 hover:text-dt-error"}`,
|
|
3636
|
+
onClick: I,
|
|
3490
3637
|
title: f ? "Start recording (Cmd/Ctrl+P)" : "Stop recording (Cmd/Ctrl+P)",
|
|
3491
3638
|
"aria-label": f ? "Start recording" : "Stop recording",
|
|
3492
3639
|
"aria-pressed": !f,
|
|
@@ -3497,8 +3644,8 @@ function Je({
|
|
|
3497
3644
|
"button",
|
|
3498
3645
|
{
|
|
3499
3646
|
type: "button",
|
|
3500
|
-
className:
|
|
3501
|
-
onClick:
|
|
3647
|
+
className: l ? "flex items-center justify-center w-7 h-7 p-0 bg-transparent border-none rounded text-dt-text-tertiary cursor-pointer transition-colors hover:bg-white/10 hover:text-dt-text-secondary" : "flex items-center justify-center w-7 h-7 p-0 bg-transparent border-none rounded-md text-dt-text-muted cursor-pointer transition-all relative hover:bg-zinc-600/20 hover:text-dt-text-secondary active:scale-[0.94]",
|
|
3648
|
+
onClick: S,
|
|
3502
3649
|
title: "Export Session (Cmd/Ctrl+E)",
|
|
3503
3650
|
"aria-label": "Export session",
|
|
3504
3651
|
children: /* @__PURE__ */ n("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "currentColor", children: [
|
|
@@ -3511,8 +3658,8 @@ function Je({
|
|
|
3511
3658
|
"button",
|
|
3512
3659
|
{
|
|
3513
3660
|
type: "button",
|
|
3514
|
-
className:
|
|
3515
|
-
onClick:
|
|
3661
|
+
className: l ? "flex items-center justify-center w-7 h-7 p-0 bg-transparent border-none rounded text-dt-text-tertiary cursor-pointer transition-colors hover:bg-white/10 hover:text-dt-text-secondary" : "flex items-center justify-center w-7 h-7 p-0 bg-transparent border-none rounded-md text-dt-text-muted cursor-pointer transition-all relative hover:bg-zinc-600/20 hover:text-dt-text-secondary active:scale-[0.94]",
|
|
3662
|
+
onClick: k,
|
|
3516
3663
|
title: "Clear all data",
|
|
3517
3664
|
"aria-label": "Clear all data",
|
|
3518
3665
|
children: /* @__PURE__ */ n("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
|
|
@@ -3521,12 +3668,12 @@ function Je({
|
|
|
3521
3668
|
] })
|
|
3522
3669
|
}
|
|
3523
3670
|
),
|
|
3524
|
-
!
|
|
3671
|
+
!l && /* @__PURE__ */ t(
|
|
3525
3672
|
"button",
|
|
3526
3673
|
{
|
|
3527
3674
|
type: "button",
|
|
3528
3675
|
className: "flex items-center justify-center w-7 h-7 p-0 bg-transparent border-none rounded-md text-dt-text-muted cursor-pointer transition-all relative hover:bg-red-500/15 hover:text-dt-error active:scale-[0.94]",
|
|
3529
|
-
onClick:
|
|
3676
|
+
onClick: y,
|
|
3530
3677
|
title: "Close (Cmd/Ctrl+Shift+D)",
|
|
3531
3678
|
"aria-label": "Close DevTools",
|
|
3532
3679
|
children: /* @__PURE__ */ t("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "currentColor", children: /* @__PURE__ */ t("path", { d: "M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z" }) })
|
|
@@ -3535,59 +3682,59 @@ function Je({
|
|
|
3535
3682
|
] })
|
|
3536
3683
|
] }),
|
|
3537
3684
|
/* @__PURE__ */ n("div", { className: "flex-1 min-h-0 flex flex-col", children: [
|
|
3538
|
-
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
3685
|
+
u === "activity" && /* @__PURE__ */ t("div", { id: "panel-activity", className: "flex-1 min-h-0 flex flex-col", role: "tabpanel", "aria-labelledby": "tab-activity", children: /* @__PURE__ */ t(je, { eventStore: e, panelConnectionState: l ? s : void 0 }) }),
|
|
3686
|
+
u === "subscriptions" && /* @__PURE__ */ t("div", { id: "panel-subscriptions", className: "flex-1 min-h-0 flex flex-col", role: "tabpanel", "aria-labelledby": "tab-subscriptions", children: /* @__PURE__ */ t(Fe, { eventStore: e }) }),
|
|
3687
|
+
u === "performance" && /* @__PURE__ */ t("div", { id: "panel-performance", className: "flex-1 min-h-0 flex flex-col", role: "tabpanel", "aria-labelledby": "tab-performance", children: /* @__PURE__ */ t(Be, { eventStore: e, onNavigate: w }) }),
|
|
3688
|
+
u === "logs" && /* @__PURE__ */ t("div", { id: "panel-logs", className: "flex-1 min-h-0 flex flex-col", role: "tabpanel", "aria-labelledby": "tab-logs", children: /* @__PURE__ */ t(Je, { eventStore: e, onNavigate: w }) }),
|
|
3689
|
+
u === "settings" && /* @__PURE__ */ t("div", { id: "panel-settings", className: "flex-1 min-h-0 flex flex-col", role: "tabpanel", "aria-labelledby": "tab-settings", children: /* @__PURE__ */ t(Ue, { eventStore: e }) })
|
|
3543
3690
|
] })
|
|
3544
3691
|
] })
|
|
3545
3692
|
] });
|
|
3546
3693
|
}
|
|
3547
|
-
const Ue = '@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:"Fira Code","Monaco","Consolas",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-400:oklch(85.2% .199 91.936);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-white:#fff;--spacing:.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-2xl:1rem;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-dt-bg:#121214fa;--color-dt-bg-secondary:#18181bf2;--color-dt-bg-tertiary:#27272a99;--color-dt-border:#3f3f4699;--color-dt-border-light:#3f3f4666;--color-dt-text:#f4f4f5;--color-dt-text-secondary:#e4e4e7;--color-dt-text-tertiary:#a1a1aa;--color-dt-text-muted:#71717a;--color-dt-success:#22c55e;--color-dt-error:#ef4444;--color-dt-warning:#f59e0b;--color-dt-info:#3b82f6;--color-dt-query:#60a5fa;--color-dt-mutation:#a78bfa;--color-dt-action:#34d399}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-0\\.5{top:calc(var(--spacing)*.5)}.top-1\\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.right-1\\.5{right:calc(var(--spacing)*1.5)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-4{bottom:calc(var(--spacing)*4)}.left-4{left:calc(var(--spacing)*4)}.z-\\[2\\]{z-index:2}.z-\\[999999\\]{z-index:999999}.z-\\[9999999\\]{z-index:9999999}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.mx-0\\.5{margin-inline:calc(var(--spacing)*.5)}.my-0\\.5{margin-block:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mr-1{margin-right:calc(var(--spacing)*1)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-\\[16px\\]{height:16px}.h-\\[min\\(620px\\,calc\\(100vh-32px\\)\\)\\]{height:min(620px,100vh - 32px)}.h-full{height:100%}.max-h-\\[80px\\]{max-height:80px}.max-h-\\[100px\\]{max-height:100px}.max-h-\\[150px\\]{max-height:150px}.max-h-\\[180px\\]{max-height:180px}.max-h-\\[200px\\]{max-height:200px}.max-h-\\[calc\\(100vh-24px\\)\\]{max-height:calc(100vh - 24px)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-14{min-height:calc(var(--spacing)*14)}.min-h-\\[360px\\]{min-height:360px}.min-h-px{min-height:1px}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-7{width:calc(var(--spacing)*7)}.w-10{width:calc(var(--spacing)*10)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-\\[300px\\]{width:300px}.w-\\[min\\(58vw\\,620px\\)\\]{width:min(58vw,620px)}.w-\\[min\\(860px\\,calc\\(100vw-32px\\)\\)\\]{width:min(860px,100vw - 32px)}.w-full{width:100%}.w-px{width:1px}.max-w-\\[20\\%\\]{max-width:20%}.max-w-\\[38\\%\\]{max-width:38%}.max-w-\\[44\\%\\]{max-width:44%}.max-w-\\[150px\\]{max-width:150px}.max-w-\\[180px\\]{max-width:180px}.max-w-\\[200px\\]{max-width:200px}.max-w-\\[280px\\]{max-width:280px}.max-w-\\[360px\\]{max-width:360px}.max-w-\\[calc\\(100vw-24px\\)\\]{max-width:calc(100vw - 24px)}.max-w-\\[min\\(58vw\\,680px\\)\\]{max-width:min(58vw,680px)}.max-w-\\[min\\(62vw\\,760px\\)\\]{max-width:min(62vw,760px)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-\\[120px\\]{min-width:120px}.min-w-\\[180px\\]{min-width:180px}.min-w-\\[300px\\]{min-width:300px}.min-w-\\[420px\\]{min-width:420px}.min-w-\\[820px\\]{min-width:820px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-150{--tw-scale-x:150%;--tw-scale-y:150%;--tw-scale-z:150%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-\\[dt-fade-in_0\\.1s_ease-out\\]{animation:.1s ease-out dt-fade-in}.animate-\\[dt-fade-in_0\\.15s_ease-out\\]{animation:.15s ease-out dt-fade-in}.animate-\\[dt-slide-in_0\\.2s_ease-out\\]{animation:.2s ease-out dt-slide-in}.animate-pulse{animation:var(--animate-pulse)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-\\[3px\\]{gap:3px}.gap-px{gap:1px}:where(.space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-\\[3px\\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(3px*var(--tw-space-y-reverse));margin-block-end:calc(3px*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-sm{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-none{--tw-border-style:none;border-style:none}.border-dt-border{border-color:var(--color-dt-border)}.border-dt-border-light{border-color:var(--color-dt-border-light)}.border-dt-border-light\\/30{border-color:#3f3f461f}@supports (color:color-mix(in lab,red,red)){.border-dt-border-light\\/30{border-color:color-mix(in oklab,var(--color-dt-border-light)30%,transparent)}}.border-dt-border-light\\/40{border-color:#3f3f4629}@supports (color:color-mix(in lab,red,red)){.border-dt-border-light\\/40{border-color:color-mix(in oklab,var(--color-dt-border-light)40%,transparent)}}.border-dt-border-light\\/50{border-color:#3f3f4633}@supports (color:color-mix(in lab,red,red)){.border-dt-border-light\\/50{border-color:color-mix(in oklab,var(--color-dt-border-light)50%,transparent)}}.border-dt-error\\/30{border-color:#ef44444d}@supports (color:color-mix(in lab,red,red)){.border-dt-error\\/30{border-color:color-mix(in oklab,var(--color-dt-error)30%,transparent)}}.border-dt-error\\/40{border-color:#ef444466}@supports (color:color-mix(in lab,red,red)){.border-dt-error\\/40{border-color:color-mix(in oklab,var(--color-dt-error)40%,transparent)}}.border-dt-info\\/20{border-color:#3b82f633}@supports (color:color-mix(in lab,red,red)){.border-dt-info\\/20{border-color:color-mix(in oklab,var(--color-dt-info)20%,transparent)}}.border-dt-info\\/30{border-color:#3b82f64d}@supports (color:color-mix(in lab,red,red)){.border-dt-info\\/30{border-color:color-mix(in oklab,var(--color-dt-info)30%,transparent)}}.border-dt-mutation\\/20{border-color:#a78bfa33}@supports (color:color-mix(in lab,red,red)){.border-dt-mutation\\/20{border-color:color-mix(in oklab,var(--color-dt-mutation)20%,transparent)}}.border-dt-success\\/30{border-color:#22c55e4d}@supports (color:color-mix(in lab,red,red)){.border-dt-success\\/30{border-color:color-mix(in oklab,var(--color-dt-success)30%,transparent)}}.border-dt-warning\\/20{border-color:#f59e0b33}@supports (color:color-mix(in lab,red,red)){.border-dt-warning\\/20{border-color:color-mix(in oklab,var(--color-dt-warning)20%,transparent)}}.border-dt-warning\\/30{border-color:#f59e0b4d}@supports (color:color-mix(in lab,red,red)){.border-dt-warning\\/30{border-color:color-mix(in oklab,var(--color-dt-warning)30%,transparent)}}.border-transparent{border-color:#0000}.border-zinc-700\\/30{border-color:#3f3f464d}@supports (color:color-mix(in lab,red,red)){.border-zinc-700\\/30{border-color:color-mix(in oklab,var(--color-zinc-700)30%,transparent)}}.border-b-dt-info{border-bottom-color:var(--color-dt-info)}.border-b-transparent{border-bottom-color:#0000}.border-l-dt-error\\/40{border-left-color:#ef444466}@supports (color:color-mix(in lab,red,red)){.border-l-dt-error\\/40{border-left-color:color-mix(in oklab,var(--color-dt-error)40%,transparent)}}.border-l-dt-query\\/30{border-left-color:#60a5fa4d}@supports (color:color-mix(in lab,red,red)){.border-l-dt-query\\/30{border-left-color:color-mix(in oklab,var(--color-dt-query)30%,transparent)}}.bg-dt-action{background-color:var(--color-dt-action)}.bg-dt-action\\/20{background-color:#34d39933}@supports (color:color-mix(in lab,red,red)){.bg-dt-action\\/20{background-color:color-mix(in oklab,var(--color-dt-action)20%,transparent)}}.bg-dt-action\\/25{background-color:#34d39940}@supports (color:color-mix(in lab,red,red)){.bg-dt-action\\/25{background-color:color-mix(in oklab,var(--color-dt-action)25%,transparent)}}.bg-dt-bg{background-color:var(--color-dt-bg)}.bg-dt-bg-secondary{background-color:var(--color-dt-bg-secondary)}.bg-dt-bg-secondary\\/30{background-color:#18181b49}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-secondary\\/30{background-color:color-mix(in oklab,var(--color-dt-bg-secondary)30%,transparent)}}.bg-dt-bg-secondary\\/50{background-color:#18181b79}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-secondary\\/50{background-color:color-mix(in oklab,var(--color-dt-bg-secondary)50%,transparent)}}.bg-dt-bg-secondary\\/85{background-color:#18181bce}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-secondary\\/85{background-color:color-mix(in oklab,var(--color-dt-bg-secondary)85%,transparent)}}.bg-dt-bg-tertiary{background-color:var(--color-dt-bg-tertiary)}.bg-dt-bg-tertiary\\/30{background-color:#27272a2e}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-tertiary\\/30{background-color:color-mix(in oklab,var(--color-dt-bg-tertiary)30%,transparent)}}.bg-dt-bg-tertiary\\/35{background-color:#27272a36}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-tertiary\\/35{background-color:color-mix(in oklab,var(--color-dt-bg-tertiary)35%,transparent)}}.bg-dt-bg-tertiary\\/40{background-color:#27272a3d}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-tertiary\\/40{background-color:color-mix(in oklab,var(--color-dt-bg-tertiary)40%,transparent)}}.bg-dt-bg-tertiary\\/50{background-color:#27272a4d}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-tertiary\\/50{background-color:color-mix(in oklab,var(--color-dt-bg-tertiary)50%,transparent)}}.bg-dt-error{background-color:var(--color-dt-error)}.bg-dt-error\\/5{background-color:#ef44440d}@supports (color:color-mix(in lab,red,red)){.bg-dt-error\\/5{background-color:color-mix(in oklab,var(--color-dt-error)5%,transparent)}}.bg-dt-error\\/10{background-color:#ef44441a}@supports (color:color-mix(in lab,red,red)){.bg-dt-error\\/10{background-color:color-mix(in oklab,var(--color-dt-error)10%,transparent)}}.bg-dt-error\\/15{background-color:#ef444426}@supports (color:color-mix(in lab,red,red)){.bg-dt-error\\/15{background-color:color-mix(in oklab,var(--color-dt-error)15%,transparent)}}.bg-dt-error\\/20{background-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.bg-dt-error\\/20{background-color:color-mix(in oklab,var(--color-dt-error)20%,transparent)}}.bg-dt-error\\/25{background-color:#ef444440}@supports (color:color-mix(in lab,red,red)){.bg-dt-error\\/25{background-color:color-mix(in oklab,var(--color-dt-error)25%,transparent)}}.bg-dt-info\\/5{background-color:#3b82f60d}@supports (color:color-mix(in lab,red,red)){.bg-dt-info\\/5{background-color:color-mix(in oklab,var(--color-dt-info)5%,transparent)}}.bg-dt-info\\/10{background-color:#3b82f61a}@supports (color:color-mix(in lab,red,red)){.bg-dt-info\\/10{background-color:color-mix(in oklab,var(--color-dt-info)10%,transparent)}}.bg-dt-info\\/15{background-color:#3b82f626}@supports (color:color-mix(in lab,red,red)){.bg-dt-info\\/15{background-color:color-mix(in oklab,var(--color-dt-info)15%,transparent)}}.bg-dt-info\\/20{background-color:#3b82f633}@supports (color:color-mix(in lab,red,red)){.bg-dt-info\\/20{background-color:color-mix(in oklab,var(--color-dt-info)20%,transparent)}}.bg-dt-mutation{background-color:var(--color-dt-mutation)}.bg-dt-mutation\\/10{background-color:#a78bfa1a}@supports (color:color-mix(in lab,red,red)){.bg-dt-mutation\\/10{background-color:color-mix(in oklab,var(--color-dt-mutation)10%,transparent)}}.bg-dt-mutation\\/20{background-color:#a78bfa33}@supports (color:color-mix(in lab,red,red)){.bg-dt-mutation\\/20{background-color:color-mix(in oklab,var(--color-dt-mutation)20%,transparent)}}.bg-dt-mutation\\/25{background-color:#a78bfa40}@supports (color:color-mix(in lab,red,red)){.bg-dt-mutation\\/25{background-color:color-mix(in oklab,var(--color-dt-mutation)25%,transparent)}}.bg-dt-query{background-color:var(--color-dt-query)}.bg-dt-query\\/20{background-color:#60a5fa33}@supports (color:color-mix(in lab,red,red)){.bg-dt-query\\/20{background-color:color-mix(in oklab,var(--color-dt-query)20%,transparent)}}.bg-dt-query\\/25{background-color:#60a5fa40}@supports (color:color-mix(in lab,red,red)){.bg-dt-query\\/25{background-color:color-mix(in oklab,var(--color-dt-query)25%,transparent)}}.bg-dt-query\\/\\[0\\.02\\]{background-color:#60a5fa05}@supports (color:color-mix(in lab,red,red)){.bg-dt-query\\/\\[0\\.02\\]{background-color:color-mix(in oklab,var(--color-dt-query)2%,transparent)}}.bg-dt-success{background-color:var(--color-dt-success)}.bg-dt-success\\/5{background-color:#22c55e0d}@supports (color:color-mix(in lab,red,red)){.bg-dt-success\\/5{background-color:color-mix(in oklab,var(--color-dt-success)5%,transparent)}}.bg-dt-success\\/15{background-color:#22c55e26}@supports (color:color-mix(in lab,red,red)){.bg-dt-success\\/15{background-color:color-mix(in oklab,var(--color-dt-success)15%,transparent)}}.bg-dt-success\\/20{background-color:#22c55e33}@supports (color:color-mix(in lab,red,red)){.bg-dt-success\\/20{background-color:color-mix(in oklab,var(--color-dt-success)20%,transparent)}}.bg-dt-warning{background-color:var(--color-dt-warning)}.bg-dt-warning\\/5{background-color:#f59e0b0d}@supports (color:color-mix(in lab,red,red)){.bg-dt-warning\\/5{background-color:color-mix(in oklab,var(--color-dt-warning)5%,transparent)}}.bg-dt-warning\\/15{background-color:#f59e0b26}@supports (color:color-mix(in lab,red,red)){.bg-dt-warning\\/15{background-color:color-mix(in oklab,var(--color-dt-warning)15%,transparent)}}.bg-dt-warning\\/20{background-color:#f59e0b33}@supports (color:color-mix(in lab,red,red)){.bg-dt-warning\\/20{background-color:color-mix(in oklab,var(--color-dt-warning)20%,transparent)}}.bg-transparent{background-color:#0000}.bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-white\\/55{background-color:#ffffff8c}@supports (color:color-mix(in lab,red,red)){.bg-white\\/55{background-color:color-mix(in oklab,var(--color-white)55%,transparent)}}.bg-white\\/\\[0\\.03\\]{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.03\\]{background-color:color-mix(in oklab,var(--color-white)3%,transparent)}}.bg-white\\/\\[0\\.06\\]{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.06\\]{background-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.bg-white\\/\\[0\\.08\\]{background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.08\\]{background-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.bg-yellow-400\\/25{background-color:#fac80040}@supports (color:color-mix(in lab,red,red)){.bg-yellow-400\\/25{background-color:color-mix(in oklab,var(--color-yellow-400)25%,transparent)}}.bg-yellow-400\\/30{background-color:#fac8004d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-400\\/30{background-color:color-mix(in oklab,var(--color-yellow-400)30%,transparent)}}.bg-zinc-500\\/25{background-color:#71717b40}@supports (color:color-mix(in lab,red,red)){.bg-zinc-500\\/25{background-color:color-mix(in oklab,var(--color-zinc-500)25%,transparent)}}.bg-zinc-900\\/50{background-color:#18181b80}@supports (color:color-mix(in lab,red,red)){.bg-zinc-900\\/50{background-color:color-mix(in oklab,var(--color-zinc-900)50%,transparent)}}.bg-zinc-900\\/\\[0\\.98\\]{background-color:#18181bfa}@supports (color:color-mix(in lab,red,red)){.bg-zinc-900\\/\\[0\\.98\\]{background-color:color-mix(in oklab,var(--color-zinc-900)98%,transparent)}}.bg-zinc-950\\/50{background-color:#09090b80}@supports (color:color-mix(in lab,red,red)){.bg-zinc-950\\/50{background-color:color-mix(in oklab,var(--color-zinc-950)50%,transparent)}}.bg-zinc-950\\/98{background-color:#09090bfa}@supports (color:color-mix(in lab,red,red)){.bg-zinc-950\\/98{background-color:color-mix(in oklab,var(--color-zinc-950)98%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-red-500{--tw-gradient-from:var(--color-red-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-zinc-900\\/\\[0\\.98\\]{--tw-gradient-from:#18181bfa}@supports (color:color-mix(in lab,red,red)){.from-zinc-900\\/\\[0\\.98\\]{--tw-gradient-from:color-mix(in oklab,var(--color-zinc-900)98%,transparent)}}.from-zinc-900\\/\\[0\\.98\\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-blue-600{--tw-gradient-to:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-red-600{--tw-gradient-to:var(--color-red-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-zinc-800\\/95{--tw-gradient-to:#27272af2}@supports (color:color-mix(in lab,red,red)){.to-zinc-800\\/95{--tw-gradient-to:color-mix(in oklab,var(--color-zinc-800)95%,transparent)}}.to-zinc-800\\/95{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.p-0{padding:calc(var(--spacing)*0)}.p-0\\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-\\[3px\\]{padding:3px}.px-0{padding-inline:calc(var(--spacing)*0)}.px-0\\.5{padding-inline:calc(var(--spacing)*.5)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-\\[18px\\]{padding-inline:18px}.px-px{padding-inline:1px}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-12{padding-block:calc(var(--spacing)*12)}.py-\\[2px\\]{padding-block:2px}.py-\\[7px\\]{padding-block:7px}.py-px{padding-block:1px}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-7{padding-right:calc(var(--spacing)*7)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-dt-action{color:var(--color-dt-action)}.text-dt-border{color:var(--color-dt-border)}.text-dt-error{color:var(--color-dt-error)}.text-dt-info{color:var(--color-dt-info)}.text-dt-info\\/90{color:#3b82f6e6}@supports (color:color-mix(in lab,red,red)){.text-dt-info\\/90{color:color-mix(in oklab,var(--color-dt-info)90%,transparent)}}.text-dt-mutation{color:var(--color-dt-mutation)}.text-dt-mutation\\/70{color:#a78bfab3}@supports (color:color-mix(in lab,red,red)){.text-dt-mutation\\/70{color:color-mix(in oklab,var(--color-dt-mutation)70%,transparent)}}.text-dt-query{color:var(--color-dt-query)}.text-dt-success{color:var(--color-dt-success)}.text-dt-text{color:var(--color-dt-text)}.text-dt-text-muted{color:var(--color-dt-text-muted)}.text-dt-text-muted\\/40{color:#71717a66}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/40{color:color-mix(in oklab,var(--color-dt-text-muted)40%,transparent)}}.text-dt-text-muted\\/60{color:#71717a99}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/60{color:color-mix(in oklab,var(--color-dt-text-muted)60%,transparent)}}.text-dt-text-muted\\/70{color:#71717ab3}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/70{color:color-mix(in oklab,var(--color-dt-text-muted)70%,transparent)}}.text-dt-text-muted\\/80{color:#71717acc}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/80{color:color-mix(in oklab,var(--color-dt-text-muted)80%,transparent)}}.text-dt-text-muted\\/85{color:#71717ad9}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/85{color:color-mix(in oklab,var(--color-dt-text-muted)85%,transparent)}}.text-dt-text-muted\\/90{color:#71717ae6}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/90{color:color-mix(in oklab,var(--color-dt-text-muted)90%,transparent)}}.text-dt-text-secondary{color:var(--color-dt-text-secondary)}.text-dt-text-tertiary{color:var(--color-dt-text-tertiary)}.text-dt-warning{color:var(--color-dt-warning)}.text-dt-warning\\/90{color:#f59e0be6}@supports (color:color-mix(in lab,red,red)){.text-dt-warning\\/90{color:color-mix(in oklab,var(--color-dt-warning)90%,transparent)}}.text-inherit{color:inherit}.text-white{color:var(--color-white)}.text-yellow-200{color:var(--color-yellow-200)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-dt-text-muted\\/40::placeholder{color:#71717a66}@supports (color:color-mix(in lab,red,red)){.placeholder-dt-text-muted\\/40::placeholder{color:color-mix(in oklab,var(--color-dt-text-muted)40%,transparent)}}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(52\\,211\\,153\\,0\\.5\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#34d39980);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(96\\,165\\,250\\,0\\.5\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#60a5fa80);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(161\\,161\\,170\\,0\\.4\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#a1a1aa66);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(167\\,139\\,250\\,0\\.5\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#a78bfa80);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(239\\,68\\,68\\,0\\.5\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#ef444480);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(245\\,158\\,11\\,0\\.5\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#f59e0b80);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_1px_2px_rgba\\(52\\,211\\,153\\,0\\.35\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#34d39959);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_1px_2px_rgba\\(96\\,165\\,250\\,0\\.35\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#60a5fa59);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_1px_2px_rgba\\(167\\,139\\,250\\,0\\.35\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#a78bfa59);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_1px_2px_rgba\\(245\\,158\\,11\\,0\\.35\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#f59e0b59);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-dt-info{--tw-ring-color:var(--color-dt-info)}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.-outline-offset-1{outline-offset:-1px}.outline-dt-info\\/30{outline-color:#3b82f64d}@supports (color:color-mix(in lab,red,red)){.outline-dt-info\\/30{outline-color:color-mix(in oklab,var(--color-dt-info)30%,transparent)}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-\\[20px\\]{--tw-backdrop-blur:blur(20px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.placeholder\\:text-dt-text-muted\\/50::placeholder{color:#71717a80}@supports (color:color-mix(in lab,red,red)){.placeholder\\:text-dt-text-muted\\/50::placeholder{color:color-mix(in oklab,var(--color-dt-text-muted)50%,transparent)}}@media(hover:hover){.hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\\:scale-150:hover{--tw-scale-x:150%;--tw-scale-y:150%;--tw-scale-z:150%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:scale-\\[1\\.02\\]:hover{scale:1.02}.hover\\:border-dt-border:hover{border-color:var(--color-dt-border)}.hover\\:border-dt-border-light:hover{border-color:var(--color-dt-border-light)}.hover\\:border-dt-error\\/30:hover{border-color:#ef44444d}@supports (color:color-mix(in lab,red,red)){.hover\\:border-dt-error\\/30:hover{border-color:color-mix(in oklab,var(--color-dt-error)30%,transparent)}}.hover\\:border-dt-info\\/30:hover{border-color:#3b82f64d}@supports (color:color-mix(in lab,red,red)){.hover\\:border-dt-info\\/30:hover{border-color:color-mix(in oklab,var(--color-dt-info)30%,transparent)}}.hover\\:bg-dt-action\\/15:hover{background-color:#34d39926}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-action\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-action)15%,transparent)}}.hover\\:bg-dt-error\\/15:hover{background-color:#ef444426}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-error\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-error)15%,transparent)}}.hover\\:bg-dt-error\\/25:hover{background-color:#ef444440}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-error\\/25:hover{background-color:color-mix(in oklab,var(--color-dt-error)25%,transparent)}}.hover\\:bg-dt-info\\/15:hover{background-color:#3b82f626}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-info\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-info)15%,transparent)}}.hover\\:bg-dt-info\\/25:hover{background-color:#3b82f640}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-info\\/25:hover{background-color:color-mix(in oklab,var(--color-dt-info)25%,transparent)}}.hover\\:bg-dt-mutation\\/15:hover{background-color:#a78bfa26}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-mutation\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-mutation)15%,transparent)}}.hover\\:bg-dt-mutation\\/20:hover{background-color:#a78bfa33}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-mutation\\/20:hover{background-color:color-mix(in oklab,var(--color-dt-mutation)20%,transparent)}}.hover\\:bg-dt-query\\/15:hover{background-color:#60a5fa26}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-query\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-query)15%,transparent)}}.hover\\:bg-dt-success\\/25:hover{background-color:#22c55e40}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-success\\/25:hover{background-color:color-mix(in oklab,var(--color-dt-success)25%,transparent)}}.hover\\:bg-dt-warning\\/15:hover{background-color:#f59e0b26}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-warning\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-warning)15%,transparent)}}.hover\\:bg-dt-warning\\/25:hover{background-color:#f59e0b40}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-warning\\/25:hover{background-color:color-mix(in oklab,var(--color-dt-warning)25%,transparent)}}.hover\\:bg-red-500\\/15:hover{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-red-500\\/15:hover{background-color:color-mix(in oklab,var(--color-red-500)15%,transparent)}}.hover\\:bg-white\\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\\:bg-white\\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\\:bg-white\\/\\[0\\.02\\]:hover{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/\\[0\\.02\\]:hover{background-color:color-mix(in oklab,var(--color-white)2%,transparent)}}.hover\\:bg-white\\/\\[0\\.03\\]:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/\\[0\\.03\\]:hover{background-color:color-mix(in oklab,var(--color-white)3%,transparent)}}.hover\\:bg-white\\/\\[0\\.04\\]:hover{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/\\[0\\.04\\]:hover{background-color:color-mix(in oklab,var(--color-white)4%,transparent)}}.hover\\:bg-white\\/\\[0\\.06\\]:hover{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/\\[0\\.06\\]:hover{background-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.hover\\:bg-zinc-600\\/20:hover{background-color:#52525c33}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-zinc-600\\/20:hover{background-color:color-mix(in oklab,var(--color-zinc-600)20%,transparent)}}.hover\\:text-dt-action:hover{color:var(--color-dt-action)}.hover\\:text-dt-error:hover{color:var(--color-dt-error)}.hover\\:text-dt-info:hover{color:var(--color-dt-info)}.hover\\:text-dt-mutation:hover{color:var(--color-dt-mutation)}.hover\\:text-dt-query:hover{color:var(--color-dt-query)}.hover\\:text-dt-text-secondary:hover{color:var(--color-dt-text-secondary)}.hover\\:text-dt-text-tertiary:hover{color:var(--color-dt-text-tertiary)}.hover\\:text-dt-warning:hover{color:var(--color-dt-warning)}}.focus\\:border-dt-info\\/40:focus{border-color:#3b82f666}@supports (color:color-mix(in lab,red,red)){.focus\\:border-dt-info\\/40:focus{border-color:color-mix(in oklab,var(--color-dt-info)40%,transparent)}}.focus\\:border-dt-info\\/50:focus{border-color:#3b82f680}@supports (color:color-mix(in lab,red,red)){.focus\\:border-dt-info\\/50:focus{border-color:color-mix(in oklab,var(--color-dt-info)50%,transparent)}}.focus\\:bg-dt-bg-tertiary:focus{background-color:var(--color-dt-bg-tertiary)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-dt-info\\/40:focus{--tw-ring-color:#3b82f666}@supports (color:color-mix(in lab,red,red)){.focus\\:ring-dt-info\\/40:focus{--tw-ring-color:color-mix(in oklab,var(--color-dt-info)40%,transparent)}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\\:scale-\\[0\\.94\\]:active{scale:.94}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-40:disabled{opacity:.4}@media(hover:hover){.disabled\\:hover\\:bg-transparent:disabled:hover{background-color:#0000}.disabled\\:hover\\:text-dt-text-muted:disabled:hover{color:var(--color-dt-text-muted)}}@media(min-width:40rem){.sm\\:inline-flex{display:inline-flex}}.\\[\\&\\:\\:-webkit-search-cancel-button\\]\\:hidden::-webkit-search-cancel-button{display:none}}@keyframes dt-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes dt-slide-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}html{color-scheme:dark;background-color:#121214}:host{--sb-thumb:#71717a80;--sb-track:transparent}*{scrollbar-width:thin;scrollbar-color:var(--sb-thumb)var(--sb-track)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--sb-track)}::-webkit-scrollbar-thumb{background-color:var(--sb-thumb);border-radius:3px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}';
|
|
3548
|
-
function
|
|
3694
|
+
const He = '@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:"Fira Code","Monaco","Consolas",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-400:oklch(85.2% .199 91.936);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-white:#fff;--spacing:.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-2xl:1rem;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-dt-bg:#121214fa;--color-dt-bg-secondary:#18181bf2;--color-dt-bg-tertiary:#27272a99;--color-dt-border:#3f3f4699;--color-dt-border-light:#3f3f4666;--color-dt-text:#f4f4f5;--color-dt-text-secondary:#e4e4e7;--color-dt-text-tertiary:#a1a1aa;--color-dt-text-muted:#71717a;--color-dt-success:#22c55e;--color-dt-error:#ef4444;--color-dt-warning:#f59e0b;--color-dt-info:#3b82f6;--color-dt-query:#60a5fa;--color-dt-mutation:#a78bfa;--color-dt-action:#34d399}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-y-0{inset-block:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-0\\.5{top:calc(var(--spacing)*.5)}.top-1\\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.right-1\\.5{right:calc(var(--spacing)*1.5)}.right-4{right:calc(var(--spacing)*4)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-4{bottom:calc(var(--spacing)*4)}.left-4{left:calc(var(--spacing)*4)}.z-\\[2\\]{z-index:2}.z-\\[999999\\]{z-index:999999}.z-\\[9999999\\]{z-index:9999999}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.mx-0\\.5{margin-inline:calc(var(--spacing)*.5)}.my-0\\.5{margin-block:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mr-1{margin-right:calc(var(--spacing)*1)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-1\\.5{margin-left:calc(var(--spacing)*1.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-\\[16px\\]{height:16px}.h-\\[min\\(620px\\,calc\\(100vh-32px\\)\\)\\]{height:min(620px,100vh - 32px)}.h-full{height:100%}.max-h-\\[80px\\]{max-height:80px}.max-h-\\[100px\\]{max-height:100px}.max-h-\\[150px\\]{max-height:150px}.max-h-\\[180px\\]{max-height:180px}.max-h-\\[200px\\]{max-height:200px}.max-h-\\[calc\\(100vh-24px\\)\\]{max-height:calc(100vh - 24px)}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-14{min-height:calc(var(--spacing)*14)}.min-h-\\[360px\\]{min-height:360px}.min-h-px{min-height:1px}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-7{width:calc(var(--spacing)*7)}.w-10{width:calc(var(--spacing)*10)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-\\[300px\\]{width:300px}.w-\\[min\\(58vw\\,620px\\)\\]{width:min(58vw,620px)}.w-\\[min\\(860px\\,calc\\(100vw-32px\\)\\)\\]{width:min(860px,100vw - 32px)}.w-full{width:100%}.w-px{width:1px}.max-w-\\[20\\%\\]{max-width:20%}.max-w-\\[38\\%\\]{max-width:38%}.max-w-\\[44\\%\\]{max-width:44%}.max-w-\\[150px\\]{max-width:150px}.max-w-\\[180px\\]{max-width:180px}.max-w-\\[200px\\]{max-width:200px}.max-w-\\[280px\\]{max-width:280px}.max-w-\\[360px\\]{max-width:360px}.max-w-\\[calc\\(100vw-24px\\)\\]{max-width:calc(100vw - 24px)}.max-w-\\[min\\(58vw\\,680px\\)\\]{max-width:min(58vw,680px)}.max-w-\\[min\\(62vw\\,760px\\)\\]{max-width:min(62vw,760px)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-\\[120px\\]{min-width:120px}.min-w-\\[180px\\]{min-width:180px}.min-w-\\[300px\\]{min-width:300px}.min-w-\\[420px\\]{min-width:420px}.min-w-\\[820px\\]{min-width:820px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-y-1\\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-150{--tw-scale-x:150%;--tw-scale-y:150%;--tw-scale-z:150%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-\\[dt-fade-in_0\\.1s_ease-out\\]{animation:.1s ease-out dt-fade-in}.animate-\\[dt-fade-in_0\\.15s_ease-out\\]{animation:.15s ease-out dt-fade-in}.animate-\\[dt-slide-in_0\\.2s_ease-out\\]{animation:.2s ease-out dt-slide-in}.animate-pulse{animation:var(--animate-pulse)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:calc(var(--spacing)*0)}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-\\[3px\\]{gap:3px}.gap-px{gap:1px}:where(.space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-\\[3px\\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(3px*var(--tw-space-y-reverse));margin-block-end:calc(3px*calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\\[3px\\]{border-radius:3px}.rounded-\\[14px\\]{border-radius:14px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-sm{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-none{--tw-border-style:none;border-style:none}.border-dt-border{border-color:var(--color-dt-border)}.border-dt-border-light{border-color:var(--color-dt-border-light)}.border-dt-border-light\\/30{border-color:#3f3f461f}@supports (color:color-mix(in lab,red,red)){.border-dt-border-light\\/30{border-color:color-mix(in oklab,var(--color-dt-border-light)30%,transparent)}}.border-dt-border-light\\/40{border-color:#3f3f4629}@supports (color:color-mix(in lab,red,red)){.border-dt-border-light\\/40{border-color:color-mix(in oklab,var(--color-dt-border-light)40%,transparent)}}.border-dt-border-light\\/50{border-color:#3f3f4633}@supports (color:color-mix(in lab,red,red)){.border-dt-border-light\\/50{border-color:color-mix(in oklab,var(--color-dt-border-light)50%,transparent)}}.border-dt-error\\/30{border-color:#ef44444d}@supports (color:color-mix(in lab,red,red)){.border-dt-error\\/30{border-color:color-mix(in oklab,var(--color-dt-error)30%,transparent)}}.border-dt-error\\/40{border-color:#ef444466}@supports (color:color-mix(in lab,red,red)){.border-dt-error\\/40{border-color:color-mix(in oklab,var(--color-dt-error)40%,transparent)}}.border-dt-info\\/20{border-color:#3b82f633}@supports (color:color-mix(in lab,red,red)){.border-dt-info\\/20{border-color:color-mix(in oklab,var(--color-dt-info)20%,transparent)}}.border-dt-info\\/30{border-color:#3b82f64d}@supports (color:color-mix(in lab,red,red)){.border-dt-info\\/30{border-color:color-mix(in oklab,var(--color-dt-info)30%,transparent)}}.border-dt-mutation\\/20{border-color:#a78bfa33}@supports (color:color-mix(in lab,red,red)){.border-dt-mutation\\/20{border-color:color-mix(in oklab,var(--color-dt-mutation)20%,transparent)}}.border-dt-success\\/30{border-color:#22c55e4d}@supports (color:color-mix(in lab,red,red)){.border-dt-success\\/30{border-color:color-mix(in oklab,var(--color-dt-success)30%,transparent)}}.border-dt-warning\\/20{border-color:#f59e0b33}@supports (color:color-mix(in lab,red,red)){.border-dt-warning\\/20{border-color:color-mix(in oklab,var(--color-dt-warning)20%,transparent)}}.border-dt-warning\\/30{border-color:#f59e0b4d}@supports (color:color-mix(in lab,red,red)){.border-dt-warning\\/30{border-color:color-mix(in oklab,var(--color-dt-warning)30%,transparent)}}.border-transparent{border-color:#0000}.border-zinc-700\\/30{border-color:#3f3f464d}@supports (color:color-mix(in lab,red,red)){.border-zinc-700\\/30{border-color:color-mix(in oklab,var(--color-zinc-700)30%,transparent)}}.border-b-dt-info{border-bottom-color:var(--color-dt-info)}.border-b-transparent{border-bottom-color:#0000}.border-l-dt-error\\/40{border-left-color:#ef444466}@supports (color:color-mix(in lab,red,red)){.border-l-dt-error\\/40{border-left-color:color-mix(in oklab,var(--color-dt-error)40%,transparent)}}.border-l-dt-query\\/30{border-left-color:#60a5fa4d}@supports (color:color-mix(in lab,red,red)){.border-l-dt-query\\/30{border-left-color:color-mix(in oklab,var(--color-dt-query)30%,transparent)}}.bg-dt-action{background-color:var(--color-dt-action)}.bg-dt-action\\/20{background-color:#34d39933}@supports (color:color-mix(in lab,red,red)){.bg-dt-action\\/20{background-color:color-mix(in oklab,var(--color-dt-action)20%,transparent)}}.bg-dt-action\\/25{background-color:#34d39940}@supports (color:color-mix(in lab,red,red)){.bg-dt-action\\/25{background-color:color-mix(in oklab,var(--color-dt-action)25%,transparent)}}.bg-dt-bg{background-color:var(--color-dt-bg)}.bg-dt-bg-secondary{background-color:var(--color-dt-bg-secondary)}.bg-dt-bg-secondary\\/30{background-color:#18181b49}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-secondary\\/30{background-color:color-mix(in oklab,var(--color-dt-bg-secondary)30%,transparent)}}.bg-dt-bg-secondary\\/50{background-color:#18181b79}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-secondary\\/50{background-color:color-mix(in oklab,var(--color-dt-bg-secondary)50%,transparent)}}.bg-dt-bg-secondary\\/85{background-color:#18181bce}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-secondary\\/85{background-color:color-mix(in oklab,var(--color-dt-bg-secondary)85%,transparent)}}.bg-dt-bg-tertiary{background-color:var(--color-dt-bg-tertiary)}.bg-dt-bg-tertiary\\/30{background-color:#27272a2e}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-tertiary\\/30{background-color:color-mix(in oklab,var(--color-dt-bg-tertiary)30%,transparent)}}.bg-dt-bg-tertiary\\/35{background-color:#27272a36}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-tertiary\\/35{background-color:color-mix(in oklab,var(--color-dt-bg-tertiary)35%,transparent)}}.bg-dt-bg-tertiary\\/40{background-color:#27272a3d}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-tertiary\\/40{background-color:color-mix(in oklab,var(--color-dt-bg-tertiary)40%,transparent)}}.bg-dt-bg-tertiary\\/50{background-color:#27272a4d}@supports (color:color-mix(in lab,red,red)){.bg-dt-bg-tertiary\\/50{background-color:color-mix(in oklab,var(--color-dt-bg-tertiary)50%,transparent)}}.bg-dt-error{background-color:var(--color-dt-error)}.bg-dt-error\\/5{background-color:#ef44440d}@supports (color:color-mix(in lab,red,red)){.bg-dt-error\\/5{background-color:color-mix(in oklab,var(--color-dt-error)5%,transparent)}}.bg-dt-error\\/10{background-color:#ef44441a}@supports (color:color-mix(in lab,red,red)){.bg-dt-error\\/10{background-color:color-mix(in oklab,var(--color-dt-error)10%,transparent)}}.bg-dt-error\\/15{background-color:#ef444426}@supports (color:color-mix(in lab,red,red)){.bg-dt-error\\/15{background-color:color-mix(in oklab,var(--color-dt-error)15%,transparent)}}.bg-dt-error\\/20{background-color:#ef444433}@supports (color:color-mix(in lab,red,red)){.bg-dt-error\\/20{background-color:color-mix(in oklab,var(--color-dt-error)20%,transparent)}}.bg-dt-error\\/25{background-color:#ef444440}@supports (color:color-mix(in lab,red,red)){.bg-dt-error\\/25{background-color:color-mix(in oklab,var(--color-dt-error)25%,transparent)}}.bg-dt-info\\/5{background-color:#3b82f60d}@supports (color:color-mix(in lab,red,red)){.bg-dt-info\\/5{background-color:color-mix(in oklab,var(--color-dt-info)5%,transparent)}}.bg-dt-info\\/10{background-color:#3b82f61a}@supports (color:color-mix(in lab,red,red)){.bg-dt-info\\/10{background-color:color-mix(in oklab,var(--color-dt-info)10%,transparent)}}.bg-dt-info\\/15{background-color:#3b82f626}@supports (color:color-mix(in lab,red,red)){.bg-dt-info\\/15{background-color:color-mix(in oklab,var(--color-dt-info)15%,transparent)}}.bg-dt-info\\/20{background-color:#3b82f633}@supports (color:color-mix(in lab,red,red)){.bg-dt-info\\/20{background-color:color-mix(in oklab,var(--color-dt-info)20%,transparent)}}.bg-dt-mutation{background-color:var(--color-dt-mutation)}.bg-dt-mutation\\/10{background-color:#a78bfa1a}@supports (color:color-mix(in lab,red,red)){.bg-dt-mutation\\/10{background-color:color-mix(in oklab,var(--color-dt-mutation)10%,transparent)}}.bg-dt-mutation\\/20{background-color:#a78bfa33}@supports (color:color-mix(in lab,red,red)){.bg-dt-mutation\\/20{background-color:color-mix(in oklab,var(--color-dt-mutation)20%,transparent)}}.bg-dt-mutation\\/25{background-color:#a78bfa40}@supports (color:color-mix(in lab,red,red)){.bg-dt-mutation\\/25{background-color:color-mix(in oklab,var(--color-dt-mutation)25%,transparent)}}.bg-dt-query{background-color:var(--color-dt-query)}.bg-dt-query\\/20{background-color:#60a5fa33}@supports (color:color-mix(in lab,red,red)){.bg-dt-query\\/20{background-color:color-mix(in oklab,var(--color-dt-query)20%,transparent)}}.bg-dt-query\\/25{background-color:#60a5fa40}@supports (color:color-mix(in lab,red,red)){.bg-dt-query\\/25{background-color:color-mix(in oklab,var(--color-dt-query)25%,transparent)}}.bg-dt-query\\/\\[0\\.02\\]{background-color:#60a5fa05}@supports (color:color-mix(in lab,red,red)){.bg-dt-query\\/\\[0\\.02\\]{background-color:color-mix(in oklab,var(--color-dt-query)2%,transparent)}}.bg-dt-success{background-color:var(--color-dt-success)}.bg-dt-success\\/5{background-color:#22c55e0d}@supports (color:color-mix(in lab,red,red)){.bg-dt-success\\/5{background-color:color-mix(in oklab,var(--color-dt-success)5%,transparent)}}.bg-dt-success\\/15{background-color:#22c55e26}@supports (color:color-mix(in lab,red,red)){.bg-dt-success\\/15{background-color:color-mix(in oklab,var(--color-dt-success)15%,transparent)}}.bg-dt-success\\/20{background-color:#22c55e33}@supports (color:color-mix(in lab,red,red)){.bg-dt-success\\/20{background-color:color-mix(in oklab,var(--color-dt-success)20%,transparent)}}.bg-dt-warning{background-color:var(--color-dt-warning)}.bg-dt-warning\\/5{background-color:#f59e0b0d}@supports (color:color-mix(in lab,red,red)){.bg-dt-warning\\/5{background-color:color-mix(in oklab,var(--color-dt-warning)5%,transparent)}}.bg-dt-warning\\/15{background-color:#f59e0b26}@supports (color:color-mix(in lab,red,red)){.bg-dt-warning\\/15{background-color:color-mix(in oklab,var(--color-dt-warning)15%,transparent)}}.bg-dt-warning\\/20{background-color:#f59e0b33}@supports (color:color-mix(in lab,red,red)){.bg-dt-warning\\/20{background-color:color-mix(in oklab,var(--color-dt-warning)20%,transparent)}}.bg-transparent{background-color:#0000}.bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-white\\/55{background-color:#ffffff8c}@supports (color:color-mix(in lab,red,red)){.bg-white\\/55{background-color:color-mix(in oklab,var(--color-white)55%,transparent)}}.bg-white\\/\\[0\\.03\\]{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.03\\]{background-color:color-mix(in oklab,var(--color-white)3%,transparent)}}.bg-white\\/\\[0\\.06\\]{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.06\\]{background-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.bg-white\\/\\[0\\.08\\]{background-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.bg-white\\/\\[0\\.08\\]{background-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.bg-yellow-400\\/25{background-color:#fac80040}@supports (color:color-mix(in lab,red,red)){.bg-yellow-400\\/25{background-color:color-mix(in oklab,var(--color-yellow-400)25%,transparent)}}.bg-yellow-400\\/30{background-color:#fac8004d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-400\\/30{background-color:color-mix(in oklab,var(--color-yellow-400)30%,transparent)}}.bg-zinc-500\\/25{background-color:#71717b40}@supports (color:color-mix(in lab,red,red)){.bg-zinc-500\\/25{background-color:color-mix(in oklab,var(--color-zinc-500)25%,transparent)}}.bg-zinc-900\\/50{background-color:#18181b80}@supports (color:color-mix(in lab,red,red)){.bg-zinc-900\\/50{background-color:color-mix(in oklab,var(--color-zinc-900)50%,transparent)}}.bg-zinc-900\\/\\[0\\.98\\]{background-color:#18181bfa}@supports (color:color-mix(in lab,red,red)){.bg-zinc-900\\/\\[0\\.98\\]{background-color:color-mix(in oklab,var(--color-zinc-900)98%,transparent)}}.bg-zinc-950\\/50{background-color:#09090b80}@supports (color:color-mix(in lab,red,red)){.bg-zinc-950\\/50{background-color:color-mix(in oklab,var(--color-zinc-950)50%,transparent)}}.bg-zinc-950\\/98{background-color:#09090bfa}@supports (color:color-mix(in lab,red,red)){.bg-zinc-950\\/98{background-color:color-mix(in oklab,var(--color-zinc-950)98%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-red-500{--tw-gradient-from:var(--color-red-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-zinc-900\\/\\[0\\.98\\]{--tw-gradient-from:#18181bfa}@supports (color:color-mix(in lab,red,red)){.from-zinc-900\\/\\[0\\.98\\]{--tw-gradient-from:color-mix(in oklab,var(--color-zinc-900)98%,transparent)}}.from-zinc-900\\/\\[0\\.98\\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-blue-600{--tw-gradient-to:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-red-600{--tw-gradient-to:var(--color-red-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-zinc-800\\/95{--tw-gradient-to:#27272af2}@supports (color:color-mix(in lab,red,red)){.to-zinc-800\\/95{--tw-gradient-to:color-mix(in oklab,var(--color-zinc-800)95%,transparent)}}.to-zinc-800\\/95{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.p-0{padding:calc(var(--spacing)*0)}.p-0\\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-\\[3px\\]{padding:3px}.px-0{padding-inline:calc(var(--spacing)*0)}.px-0\\.5{padding-inline:calc(var(--spacing)*.5)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-\\[18px\\]{padding-inline:18px}.px-px{padding-inline:1px}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-12{padding-block:calc(var(--spacing)*12)}.py-\\[2px\\]{padding-block:2px}.py-\\[7px\\]{padding-block:7px}.py-px{padding-block:1px}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-7{padding-right:calc(var(--spacing)*7)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-dt-action{color:var(--color-dt-action)}.text-dt-border{color:var(--color-dt-border)}.text-dt-error{color:var(--color-dt-error)}.text-dt-info{color:var(--color-dt-info)}.text-dt-info\\/90{color:#3b82f6e6}@supports (color:color-mix(in lab,red,red)){.text-dt-info\\/90{color:color-mix(in oklab,var(--color-dt-info)90%,transparent)}}.text-dt-mutation{color:var(--color-dt-mutation)}.text-dt-mutation\\/70{color:#a78bfab3}@supports (color:color-mix(in lab,red,red)){.text-dt-mutation\\/70{color:color-mix(in oklab,var(--color-dt-mutation)70%,transparent)}}.text-dt-query{color:var(--color-dt-query)}.text-dt-success{color:var(--color-dt-success)}.text-dt-text{color:var(--color-dt-text)}.text-dt-text-muted{color:var(--color-dt-text-muted)}.text-dt-text-muted\\/40{color:#71717a66}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/40{color:color-mix(in oklab,var(--color-dt-text-muted)40%,transparent)}}.text-dt-text-muted\\/60{color:#71717a99}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/60{color:color-mix(in oklab,var(--color-dt-text-muted)60%,transparent)}}.text-dt-text-muted\\/70{color:#71717ab3}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/70{color:color-mix(in oklab,var(--color-dt-text-muted)70%,transparent)}}.text-dt-text-muted\\/80{color:#71717acc}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/80{color:color-mix(in oklab,var(--color-dt-text-muted)80%,transparent)}}.text-dt-text-muted\\/85{color:#71717ad9}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/85{color:color-mix(in oklab,var(--color-dt-text-muted)85%,transparent)}}.text-dt-text-muted\\/90{color:#71717ae6}@supports (color:color-mix(in lab,red,red)){.text-dt-text-muted\\/90{color:color-mix(in oklab,var(--color-dt-text-muted)90%,transparent)}}.text-dt-text-secondary{color:var(--color-dt-text-secondary)}.text-dt-text-tertiary{color:var(--color-dt-text-tertiary)}.text-dt-warning{color:var(--color-dt-warning)}.text-dt-warning\\/90{color:#f59e0be6}@supports (color:color-mix(in lab,red,red)){.text-dt-warning\\/90{color:color-mix(in oklab,var(--color-dt-warning)90%,transparent)}}.text-inherit{color:inherit}.text-white{color:var(--color-white)}.text-yellow-200{color:var(--color-yellow-200)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-dt-text-muted\\/40::placeholder{color:#71717a66}@supports (color:color-mix(in lab,red,red)){.placeholder-dt-text-muted\\/40::placeholder{color:color-mix(in oklab,var(--color-dt-text-muted)40%,transparent)}}.opacity-40{opacity:.4}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(52\\,211\\,153\\,0\\.5\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#34d39980);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(96\\,165\\,250\\,0\\.5\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#60a5fa80);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(161\\,161\\,170\\,0\\.4\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#a1a1aa66);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(167\\,139\\,250\\,0\\.5\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#a78bfa80);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(239\\,68\\,68\\,0\\.5\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#ef444480);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_0_1px_rgba\\(245\\,158\\,11\\,0\\.5\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#f59e0b80);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_1px_2px_rgba\\(52\\,211\\,153\\,0\\.35\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#34d39959);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_1px_2px_rgba\\(96\\,165\\,250\\,0\\.35\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#60a5fa59);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_1px_2px_rgba\\(167\\,139\\,250\\,0\\.35\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#a78bfa59);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_1px_2px_rgba\\(245\\,158\\,11\\,0\\.35\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#f59e0b59);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-dt-info{--tw-ring-color:var(--color-dt-info)}.outline,.outline-1{outline-style:var(--tw-outline-style);outline-width:1px}.-outline-offset-1{outline-offset:-1px}.outline-dt-info\\/30{outline-color:#3b82f64d}@supports (color:color-mix(in lab,red,red)){.outline-dt-info\\/30{outline-color:color-mix(in oklab,var(--color-dt-info)30%,transparent)}}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-\\[20px\\]{--tw-backdrop-blur:blur(20px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.placeholder\\:text-dt-text-muted\\/50::placeholder{color:#71717a80}@supports (color:color-mix(in lab,red,red)){.placeholder\\:text-dt-text-muted\\/50::placeholder{color:color-mix(in oklab,var(--color-dt-text-muted)50%,transparent)}}@media(hover:hover){.hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\\:scale-150:hover{--tw-scale-x:150%;--tw-scale-y:150%;--tw-scale-z:150%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:scale-\\[1\\.02\\]:hover{scale:1.02}.hover\\:border-dt-border:hover{border-color:var(--color-dt-border)}.hover\\:border-dt-border-light:hover{border-color:var(--color-dt-border-light)}.hover\\:border-dt-error\\/30:hover{border-color:#ef44444d}@supports (color:color-mix(in lab,red,red)){.hover\\:border-dt-error\\/30:hover{border-color:color-mix(in oklab,var(--color-dt-error)30%,transparent)}}.hover\\:border-dt-info\\/30:hover{border-color:#3b82f64d}@supports (color:color-mix(in lab,red,red)){.hover\\:border-dt-info\\/30:hover{border-color:color-mix(in oklab,var(--color-dt-info)30%,transparent)}}.hover\\:bg-dt-action\\/15:hover{background-color:#34d39926}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-action\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-action)15%,transparent)}}.hover\\:bg-dt-error\\/15:hover{background-color:#ef444426}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-error\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-error)15%,transparent)}}.hover\\:bg-dt-error\\/25:hover{background-color:#ef444440}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-error\\/25:hover{background-color:color-mix(in oklab,var(--color-dt-error)25%,transparent)}}.hover\\:bg-dt-info\\/15:hover{background-color:#3b82f626}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-info\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-info)15%,transparent)}}.hover\\:bg-dt-info\\/25:hover{background-color:#3b82f640}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-info\\/25:hover{background-color:color-mix(in oklab,var(--color-dt-info)25%,transparent)}}.hover\\:bg-dt-mutation\\/15:hover{background-color:#a78bfa26}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-mutation\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-mutation)15%,transparent)}}.hover\\:bg-dt-mutation\\/20:hover{background-color:#a78bfa33}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-mutation\\/20:hover{background-color:color-mix(in oklab,var(--color-dt-mutation)20%,transparent)}}.hover\\:bg-dt-query\\/15:hover{background-color:#60a5fa26}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-query\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-query)15%,transparent)}}.hover\\:bg-dt-success\\/25:hover{background-color:#22c55e40}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-success\\/25:hover{background-color:color-mix(in oklab,var(--color-dt-success)25%,transparent)}}.hover\\:bg-dt-warning\\/15:hover{background-color:#f59e0b26}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-warning\\/15:hover{background-color:color-mix(in oklab,var(--color-dt-warning)15%,transparent)}}.hover\\:bg-dt-warning\\/25:hover{background-color:#f59e0b40}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-dt-warning\\/25:hover{background-color:color-mix(in oklab,var(--color-dt-warning)25%,transparent)}}.hover\\:bg-red-500\\/15:hover{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-red-500\\/15:hover{background-color:color-mix(in oklab,var(--color-red-500)15%,transparent)}}.hover\\:bg-white\\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\\:bg-white\\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\\:bg-white\\/\\[0\\.02\\]:hover{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/\\[0\\.02\\]:hover{background-color:color-mix(in oklab,var(--color-white)2%,transparent)}}.hover\\:bg-white\\/\\[0\\.03\\]:hover{background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/\\[0\\.03\\]:hover{background-color:color-mix(in oklab,var(--color-white)3%,transparent)}}.hover\\:bg-white\\/\\[0\\.04\\]:hover{background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/\\[0\\.04\\]:hover{background-color:color-mix(in oklab,var(--color-white)4%,transparent)}}.hover\\:bg-white\\/\\[0\\.06\\]:hover{background-color:#ffffff0f}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-white\\/\\[0\\.06\\]:hover{background-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.hover\\:bg-zinc-600\\/20:hover{background-color:#52525c33}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-zinc-600\\/20:hover{background-color:color-mix(in oklab,var(--color-zinc-600)20%,transparent)}}.hover\\:text-dt-action:hover{color:var(--color-dt-action)}.hover\\:text-dt-error:hover{color:var(--color-dt-error)}.hover\\:text-dt-info:hover{color:var(--color-dt-info)}.hover\\:text-dt-mutation:hover{color:var(--color-dt-mutation)}.hover\\:text-dt-query:hover{color:var(--color-dt-query)}.hover\\:text-dt-text-secondary:hover{color:var(--color-dt-text-secondary)}.hover\\:text-dt-text-tertiary:hover{color:var(--color-dt-text-tertiary)}.hover\\:text-dt-warning:hover{color:var(--color-dt-warning)}}.focus\\:border-dt-info\\/40:focus{border-color:#3b82f666}@supports (color:color-mix(in lab,red,red)){.focus\\:border-dt-info\\/40:focus{border-color:color-mix(in oklab,var(--color-dt-info)40%,transparent)}}.focus\\:border-dt-info\\/50:focus{border-color:#3b82f680}@supports (color:color-mix(in lab,red,red)){.focus\\:border-dt-info\\/50:focus{border-color:color-mix(in oklab,var(--color-dt-info)50%,transparent)}}.focus\\:bg-dt-bg-tertiary:focus{background-color:var(--color-dt-bg-tertiary)}.focus\\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-dt-info\\/40:focus{--tw-ring-color:#3b82f666}@supports (color:color-mix(in lab,red,red)){.focus\\:ring-dt-info\\/40:focus{--tw-ring-color:color-mix(in oklab,var(--color-dt-info)40%,transparent)}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\\:scale-\\[0\\.94\\]:active{scale:.94}.disabled\\:cursor-default:disabled{cursor:default}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-30:disabled{opacity:.3}.disabled\\:opacity-40:disabled{opacity:.4}@media(hover:hover){.disabled\\:hover\\:bg-transparent:disabled:hover{background-color:#0000}.disabled\\:hover\\:text-dt-text-muted:disabled:hover{color:var(--color-dt-text-muted)}}@media(min-width:40rem){.sm\\:inline-flex{display:inline-flex}}.\\[\\&\\:\\:-webkit-search-cancel-button\\]\\:hidden::-webkit-search-cancel-button{display:none}}@keyframes dt-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes dt-slide-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}html{color-scheme:dark;background-color:#121214}:host{--sb-thumb:#71717a80;--sb-track:transparent}*{scrollbar-width:thin;scrollbar-color:var(--sb-thumb)var(--sb-track)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--sb-track)}::-webkit-scrollbar-thumb{background-color:var(--sb-thumb);border-radius:3px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}';
|
|
3695
|
+
function Qe(e = {}) {
|
|
3549
3696
|
if (window.__concaveDevToolsInstalled) {
|
|
3550
3697
|
console.warn("[DevTools] Already initialized");
|
|
3551
3698
|
return;
|
|
3552
3699
|
}
|
|
3553
3700
|
window.__concaveDevToolsInstalled = !0, console.log("[DevTools] Initializing UI...");
|
|
3554
|
-
const r =
|
|
3555
|
-
console.log(`[DevTools] Loading ${a.length} captured events`), a.forEach((
|
|
3556
|
-
r.addEvent(
|
|
3701
|
+
const r = ye(), a = window.__concaveDevToolsEvents || [];
|
|
3702
|
+
console.log(`[DevTools] Loading ${a.length} captured events`), a.forEach((p) => {
|
|
3703
|
+
r.addEvent(p);
|
|
3557
3704
|
});
|
|
3558
|
-
let
|
|
3705
|
+
let s = a.length;
|
|
3559
3706
|
setInterval(() => {
|
|
3560
|
-
const
|
|
3561
|
-
|
|
3562
|
-
r.addEvent(
|
|
3563
|
-
}),
|
|
3707
|
+
const p = window.__concaveDevToolsEvents || [];
|
|
3708
|
+
p.length > s && (p.slice(s).forEach((u) => {
|
|
3709
|
+
r.addEvent(u);
|
|
3710
|
+
}), s = p.length);
|
|
3564
3711
|
}, 100);
|
|
3565
|
-
const
|
|
3566
|
-
const
|
|
3567
|
-
|
|
3568
|
-
const
|
|
3569
|
-
|
|
3712
|
+
const l = () => {
|
|
3713
|
+
const p = document.createElement("div");
|
|
3714
|
+
p.id = "concave-devtools-host", p.style.cssText = "position:fixed;z-index:999999;bottom:16px;right:16px;pointer-events:none;", document.body.appendChild(p);
|
|
3715
|
+
const d = p.attachShadow({ mode: "open" }), u = document.createElement("style");
|
|
3716
|
+
u.textContent = He, d.appendChild(u);
|
|
3570
3717
|
const w = document.createElement("div");
|
|
3571
|
-
w.id = "concave-devtools-root", w.style.cssText = "pointer-events:auto;",
|
|
3718
|
+
w.id = "concave-devtools-root", w.style.cssText = "pointer-events:auto;", d.appendChild(w), me(w).render(/* @__PURE__ */ t(Ke, { eventStore: r, position: e.position })), console.log("[DevTools] UI mounted successfully");
|
|
3572
3719
|
};
|
|
3573
|
-
document.readyState === "loading" ? document.addEventListener("DOMContentLoaded",
|
|
3720
|
+
document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", l) : l(), window.__concaveDevTools = {
|
|
3574
3721
|
eventStore: r
|
|
3575
3722
|
};
|
|
3576
3723
|
}
|
|
3577
3724
|
if (typeof window < "u") {
|
|
3578
3725
|
const e = window.__concaveDevToolsConfig || {};
|
|
3579
3726
|
e.autoInit !== !1 && setTimeout(() => {
|
|
3580
|
-
|
|
3727
|
+
Qe(e);
|
|
3581
3728
|
}, 100);
|
|
3582
3729
|
}
|
|
3583
3730
|
export {
|
|
3584
|
-
|
|
3731
|
+
Ke as D,
|
|
3585
3732
|
Nt as E,
|
|
3586
|
-
|
|
3587
|
-
|
|
3588
|
-
|
|
3589
|
-
|
|
3733
|
+
Je as L,
|
|
3734
|
+
Be as P,
|
|
3735
|
+
Fe as S,
|
|
3736
|
+
Ue as a,
|
|
3590
3737
|
Et as b,
|
|
3591
|
-
|
|
3592
|
-
|
|
3738
|
+
ye as g,
|
|
3739
|
+
Qe as i
|
|
3593
3740
|
};
|